build: 构建脚本更新
This commit is contained in:
parent
6768b1399f
commit
dc2df57553
195
.github/workflows/build.yml
vendored
195
.github/workflows/build.yml
vendored
|
|
@ -1,6 +1,12 @@
|
|||
name: Build
|
||||
name: Build and Release
|
||||
|
||||
on: [push, pull_request]
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
|
@ -10,7 +16,6 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
|
||||
- name: Setup JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
|
|
@ -18,11 +23,185 @@ jobs:
|
|||
java-version: '21'
|
||||
distribution: 'temurin'
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
|
||||
- name: Make gradlew excutable
|
||||
- name: Make gradlew executable
|
||||
run: chmod +x ./gradlew
|
||||
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew build
|
||||
run: ./gradlew build
|
||||
|
||||
- name: Prepare release files
|
||||
run: |
|
||||
mkdir -p release-files
|
||||
cp build/libs/*.jar release-files/ 2>/dev/null || true
|
||||
echo "准备发布的文件:"
|
||||
ls -la release-files/
|
||||
|
||||
- name: Upload release artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: release-files
|
||||
path: release-files/
|
||||
retention-days: 7
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
|
||||
steps:
|
||||
- name: Checkout with full history
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: release-files
|
||||
path: ./dist
|
||||
|
||||
- name: Generate CZ-compliant changelog
|
||||
id: generate_changelog
|
||||
run: |
|
||||
CURRENT_TAG="${{ github.ref_name }}"
|
||||
PREV_TAG=$(git describe --tags --abbrev=0 $(git rev-list --tags --skip=1 --max-count=1) 2>/dev/null || echo "")
|
||||
|
||||
# 创建临时文件
|
||||
TEMP_FILE=$(mktemp)
|
||||
|
||||
echo "# 🚀 版本 $CURRENT_TAG 发布" > $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
echo "## 📋 变更摘要" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
|
||||
if [ -z "$PREV_TAG" ]; then
|
||||
echo "### 初始版本发布" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
echo "这是项目的第一个正式版本。" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
# 获取所有提交并按类型分组
|
||||
git log --pretty=format:"%s" --reverse | while read -r line; do
|
||||
echo "- $line" >> $TEMP_FILE
|
||||
done
|
||||
else
|
||||
echo "### 从 $PREV_TAG 到 $CURRENT_TAG 的变更" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
|
||||
# 定义符合CZ规范的提交类型映射
|
||||
declare -A commit_types
|
||||
commit_types=(
|
||||
["✨ 新功能"]="^(feat|feature)(\(.*\))?:"
|
||||
["🐛 修复"]="^(fix|bugfix)(\(.*\))?:"
|
||||
["📝 文档"]="^(docs|documentation)(\(.*\))?:"
|
||||
["🎨 样式"]="^(style)(\(.*\))?:"
|
||||
["🔨 重构"]="^(refactor)(\(.*\))?:"
|
||||
["⚡️ 性能"]="^(perf|performance)(\(.*\))?:"
|
||||
["✅ 测试"]="^(test)(\(.*\))?:"
|
||||
["🔧 构建"]="^(build)(\(.*\))?:"
|
||||
["👷 CI"]="^(ci)(\(.*\))?:"
|
||||
["📦 依赖"]="^(chore|deps)(\(.*\))?:"
|
||||
["⏪ 回退"]="^(revert)(\(.*\))?:"
|
||||
)
|
||||
|
||||
# 获取所有提交
|
||||
COMMITS=$(git log --pretty=format:"%s" $PREV_TAG..HEAD)
|
||||
|
||||
# 处理每种类型的提交
|
||||
for type_name in "${!commit_types[@]}"; do
|
||||
pattern="${commit_types[$type_name]}"
|
||||
|
||||
# 提取匹配的提交
|
||||
matched_commits=$(echo "$COMMITS" | grep -E "$pattern" || true)
|
||||
|
||||
if [ -n "$matched_commits" ]; then
|
||||
echo "#### $type_name" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
|
||||
# 处理每条提交,提取scope和subject
|
||||
echo "$matched_commits" | while read -r commit; do
|
||||
# 解析scope和subject
|
||||
if [[ $commit =~ ^[a-z]+\((.*)\):\ (.*) ]]; then
|
||||
scope="${BASH_REMATCH[1]}"
|
||||
subject="${BASH_REMATCH[2]}"
|
||||
echo "- **$scope**: $subject" >> $TEMP_FILE
|
||||
elif [[ $commit =~ ^[a-z]+:\ (.*) ]]; then
|
||||
subject="${BASH_REMATCH[1]}"
|
||||
echo "- $subject" >> $TEMP_FILE
|
||||
else
|
||||
echo "- $commit" >> $TEMP_FILE
|
||||
fi
|
||||
done
|
||||
echo "" >> $TEMP_FILE
|
||||
fi
|
||||
done
|
||||
|
||||
# 处理破坏性变更(BREAKING CHANGE)
|
||||
breaking_changes=$(git log --pretty=format:"%b" $PREV_TAG..HEAD | grep -i "BREAKING CHANGE" || true)
|
||||
if [ -n "$breaking_changes" ]; then
|
||||
echo "#### ⚠️ 破坏性变更" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
echo "$breaking_changes" | while read -r line; do
|
||||
echo "- $line" >> $TEMP_FILE
|
||||
done
|
||||
echo "" >> $TEMP_FILE
|
||||
fi
|
||||
|
||||
# 处理未分类的提交
|
||||
uncategorized="$COMMITS"
|
||||
for pattern in "${commit_types[@]}"; do
|
||||
uncategorized=$(echo "$uncategorized" | grep -v -E "$pattern" || true)
|
||||
done
|
||||
|
||||
if [ -n "$uncategorized" ]; then
|
||||
echo "#### 📝 其他更改" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
echo "$uncategorized" | while read -r commit; do
|
||||
echo "- $commit" >> $TEMP_FILE
|
||||
done
|
||||
echo "" >> $TEMP_FILE
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "## 📊 统计信息" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
|
||||
if [ -z "$PREV_TAG" ]; then
|
||||
TOTAL_COMMITS=$(git rev-list --count HEAD)
|
||||
echo "- 总提交数: $TOTAL_COMMITS" >> $TEMP_FILE
|
||||
echo "- 首次发布" >> $TEMP_FILE
|
||||
else
|
||||
COMMITS=$(git rev-list --count $PREV_TAG..HEAD)
|
||||
echo "- 本次发布提交数: $COMMITS" >> $TEMP_FILE
|
||||
echo "- 上一个版本: $PREV_TAG" >> $TEMP_FILE
|
||||
fi
|
||||
|
||||
echo "- 发布日期: $(date '+%Y年%m月%d日')" >> $TEMP_FILE
|
||||
echo "- 当前版本: $CURRENT_TAG" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
echo "---" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
echo "### 📜 详细提交历史" >> $TEMP_FILE
|
||||
echo "" >> $TEMP_FILE
|
||||
|
||||
# 显示所有提交的详细列表,包含scope信息
|
||||
if [ -z "$PREV_TAG" ]; then
|
||||
git log --pretty=format:"- **%h** %s - %an (%ad)" --date=short --reverse | head -100 >> $TEMP_FILE
|
||||
else
|
||||
git log --pretty=format:"- **%h** %s - %an (%ad)" --date=short $PREV_TAG..HEAD | head -100 >> $TEMP_FILE
|
||||
fi
|
||||
|
||||
# 将文件内容输出到变量
|
||||
CHANGELOG_CONTENT=$(cat $TEMP_FILE)
|
||||
echo "changelog<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$CHANGELOG_CONTENT" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Create Release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
artifacts: "dist/*.jar"
|
||||
tag: ${{ github.ref_name }}
|
||||
name: "版本 ${{ github.ref_name }}"
|
||||
body: ${{ steps.generate_changelog.outputs.changelog }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
391
build.gradle
391
build.gradle
|
|
@ -1,99 +1,93 @@
|
|||
//file:noinspection GroovyAssignabilityCheck
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'idea'
|
||||
id 'java-library'
|
||||
id 'maven-publish'
|
||||
id 'net.neoforged.moddev' version '2.0.78'
|
||||
id 'idea'
|
||||
id 'com.github.johnrengelman.shadow' version '8.1.1'
|
||||
id 'net.neoforged.moddev.legacyforge' version '2.0.103'
|
||||
id 'com.dorongold.task-tree' version '2.1.1'
|
||||
}
|
||||
|
||||
apply from: 'gradle/jni-heads.gradle'
|
||||
|
||||
java {
|
||||
toolchain.languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
|
||||
tasks.named('wrapper', Wrapper).configure {
|
||||
// Define wrapper values here so as to not have to always do so when updating gradlew.properties.
|
||||
// Switching this to Wrapper.DistributionType.ALL will download the full gradle sources that comes with
|
||||
// documentation attached on cursor hover of gradle classes and methods. However, this comes with increased
|
||||
// file size for Gradle. If you do switch this to ALL, run the Gradle wrapper task twice afterwards.
|
||||
// (Verify by checking gradle/wrapper/gradle-wrapper.properties to see if distributionUrl now points to `-all`)
|
||||
distributionType = Wrapper.DistributionType.BIN
|
||||
}
|
||||
|
||||
version = mod_version
|
||||
version = "${minecraft_version}-${mod_version}"
|
||||
group = mod_group_id
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven { url = "https://libraries.minecraft.net/" }
|
||||
maven { url = "https://neoforged.forgecdn.net/releases" }
|
||||
maven { url = "https://neoforged.forgecdn.net/mojang-meta" }
|
||||
maven { url = "https://maven.neoforged.net/releases" }
|
||||
maven {
|
||||
name = "LTD Maven"
|
||||
url = "https://nexus.bot.leisuretimedock.top/repository/maven-public/"
|
||||
}
|
||||
flatDir {
|
||||
dir "libs"
|
||||
}
|
||||
}
|
||||
|
||||
base {
|
||||
archivesName = "$mod_id-neoforge-$minecraft_version"
|
||||
archivesName = mod_id
|
||||
}
|
||||
|
||||
// Mojang ships Java 21 to end users starting in 1.20.5, so mods should target Java 21.
|
||||
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
|
||||
// Mojang ships Java 17 to end users in 1.20.1, so mods should target Java 17.
|
||||
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
||||
|
||||
neoForge {
|
||||
// Specify the version of NeoForge to use.
|
||||
version = project.neo_version
|
||||
legacyForge {
|
||||
// Specify the version of MinecraftForge to use.
|
||||
version = project.minecraft_version + '-' + project.forge_version
|
||||
|
||||
parchment {
|
||||
mappingsVersion = project.parchment_mappings_version
|
||||
minecraftVersion = project.parchment_minecraft_version
|
||||
}
|
||||
|
||||
// This line is optional. Access Transformers are automatically detected
|
||||
// accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg')
|
||||
|
||||
// Default run configurations.
|
||||
// These can be tweaked, removed, or duplicated as needed.
|
||||
runs {
|
||||
client {
|
||||
client()
|
||||
|
||||
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
|
||||
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
|
||||
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
|
||||
}
|
||||
clientAuth{
|
||||
devLogin = true
|
||||
client()
|
||||
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
|
||||
}
|
||||
|
||||
server {
|
||||
server()
|
||||
programArgument '--nogui'
|
||||
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
|
||||
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
|
||||
}
|
||||
|
||||
// This run config launches GameTestServer and runs all registered gametests, then exits.
|
||||
// By default, the server will crash when no gametests are provided.
|
||||
// The gametest system is also enabled by default for other run configs under the /test command.
|
||||
gameTestServer {
|
||||
type = "gameTestServer"
|
||||
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
|
||||
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
|
||||
}
|
||||
|
||||
data {
|
||||
data()
|
||||
|
||||
// example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it
|
||||
// gameDirectory = project.file('run-data')
|
||||
|
||||
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
|
||||
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
|
||||
}
|
||||
|
||||
// applies to all the run configs above
|
||||
configureEach {
|
||||
// Recommended logging data for a userdev environment
|
||||
// The markers can be added/remove as needed separated by commas.
|
||||
// "SCAN": For mods scan.
|
||||
// "REGISTRIES": For firing of registry events.
|
||||
// "REGISTRYDUMP": For getting the contents of all registries.
|
||||
systemProperty 'forge.logging.markers', 'REGISTRIES'
|
||||
|
||||
// Recommended logging level for the console
|
||||
// You can set various levels here.
|
||||
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
|
||||
logLevel = org.slf4j.event.Level.DEBUG
|
||||
}
|
||||
}
|
||||
|
||||
mods {
|
||||
// define mod <-> source bindings
|
||||
// these are used to tell the game which sources are for which mod
|
||||
// multi mod projects should define one per mod
|
||||
"${mod_id}" {
|
||||
sourceSet(sourceSets.main)
|
||||
}
|
||||
|
|
@ -103,87 +97,306 @@ neoForge {
|
|||
// Include resources generated by data generators.
|
||||
sourceSets.main.resources { srcDir 'src/generated/resources' }
|
||||
|
||||
// Sets up a dependency configuration called 'localRuntime'.
|
||||
// This configuration should be used instead of 'runtimeOnly' to declare
|
||||
// a dependency that will be present for runtime testing but that is
|
||||
// "optional", meaning it will not be pulled by dependents of this mod.
|
||||
configurations {
|
||||
runtimeClasspath.extendsFrom localRuntime
|
||||
}
|
||||
obfuscation {
|
||||
createRemappingConfiguration(configurations.localRuntime)
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Example optional mod dependency with JEI
|
||||
// The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
|
||||
// compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}"
|
||||
// compileOnly "mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}"
|
||||
// We add the full version to localRuntime, not runtimeOnly, so that we do not publish a dependency on it
|
||||
// localRuntime "mezz.jei:jei-${mc_version}-neoforge:${jei_version}"
|
||||
|
||||
// Example mod dependency using a mod jar from ./libs with a flat dir repository
|
||||
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
|
||||
// The group id is ignored when searching -- in this case, it is "blank"
|
||||
// implementation "blank:coolmod-${mc_version}:${coolmod_version}"
|
||||
}
|
||||
|
||||
// Example mod dependency using a file as dependency
|
||||
// implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar")
|
||||
|
||||
// Example project dependency using a sister or child project:
|
||||
// implementation project(":myproject")
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
|
||||
// For more info:
|
||||
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
|
||||
// http://www.gradle.org/docs/current/userguide/dependency_management.html
|
||||
// 显示测试输出
|
||||
testLogging {
|
||||
events "passed", "skipped", "failed"
|
||||
showStandardStreams = true
|
||||
}
|
||||
|
||||
// 设置类路径
|
||||
classpath = sourceSets.test.runtimeClasspath
|
||||
}
|
||||
|
||||
// This block of code expands all declared replace properties in the specified resource targets.
|
||||
// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
|
||||
var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
|
||||
var replaceProperties = [
|
||||
minecraft_version : minecraft_version,
|
||||
minecraft_version_range: minecraft_version_range,
|
||||
neo_version : neo_version,
|
||||
neo_version_range : neo_version_range,
|
||||
loader_version_range : loader_version_range,
|
||||
mod_id : mod_id,
|
||||
mod_name : mod_name,
|
||||
mod_license : mod_license,
|
||||
mod_version : mod_version,
|
||||
mod_authors : mod_authors,
|
||||
mod_description : mod_description
|
||||
minecraft_version : minecraft_version,
|
||||
minecraft_version_range : minecraft_version_range,
|
||||
forge_version : forge_version,
|
||||
forge_version_range : forge_version_range,
|
||||
loader_version_range : loader_version_range,
|
||||
mod_id : mod_id,
|
||||
mod_name : mod_name,
|
||||
mod_license : mod_license,
|
||||
mod_version : mod_version,
|
||||
mod_authors : mod_authors,
|
||||
mod_description : mod_description,
|
||||
mod_credits : mod_credits
|
||||
]
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
inputs.properties replaceProperties
|
||||
expand replaceProperties
|
||||
from "src/main/templates"
|
||||
into "build/generated/sources/modMetadata"
|
||||
}
|
||||
// Include the output of "generateModMetadata" as an input directory for the build
|
||||
// this works with both building through Gradle and the IDE.
|
||||
sourceSets.main.resources.srcDir generateModMetadata
|
||||
// To avoid having to run "generateModMetadata" manually, make it run on every project reload
|
||||
neoForge.ideSyncTask generateModMetadata
|
||||
|
||||
// Example configuration to allow publishing using the maven-publish plugin
|
||||
sourceSets.main.resources.srcDir generateModMetadata
|
||||
legacyForge.ideSyncTask generateModMetadata
|
||||
|
||||
// ==================== Javadoc 配置 ====================
|
||||
javadoc {
|
||||
options {
|
||||
encoding = 'UTF-8'
|
||||
charSet = 'UTF-8'
|
||||
author = true
|
||||
version = true
|
||||
windowTitle = "RedEnvelope ${project.mod_version}"
|
||||
docTitle = "RedEnvelope ${project.mod_version}"
|
||||
memberLevel = JavadocMemberLevel.PROTECTED
|
||||
links = [
|
||||
'https://docs.oracle.com/javase/8/docs/api/'
|
||||
]
|
||||
addBooleanOption('Xdoclint:none', true)
|
||||
addBooleanOption('html5', true)
|
||||
}
|
||||
|
||||
// 确保有源代码可供生成文档
|
||||
if (sourceSets.main.allJava.files.any { it.exists() }) {
|
||||
source = sourceSets.main.allJava
|
||||
}
|
||||
classpath = configurations.compileClasspath
|
||||
exclude '**/test/**'
|
||||
exclude '**/internal/**'
|
||||
|
||||
// 确保输出目录存在
|
||||
doFirst {
|
||||
destinationDir.mkdirs()
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register('javadocJar', Jar) {
|
||||
archiveFileName = "${mod_id}-${minecraft_version}-${mod_version}-javadoc.jar"
|
||||
archiveClassifier.set("javadoc")
|
||||
from tasks.javadoc
|
||||
dependsOn tasks.javadoc
|
||||
}
|
||||
|
||||
tasks.register('sourceJar', Jar) {
|
||||
from(sourceSets.main.allSource) // java
|
||||
archiveFileName = "${mod_id}-${minecraft_version}-${mod_version}-sources.jar"
|
||||
archiveClassifier.set("sources")
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
manifest {
|
||||
attributes([
|
||||
'Specification-Title' : mod_id,
|
||||
'Specification-Vendor' : mod_authors,
|
||||
'Specification-Version' : '1',
|
||||
'Implementation-Title' : project.name,
|
||||
'Implementation-Version' : archiveVersion,
|
||||
'Implementation-Vendor' : mod_authors,
|
||||
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
|
||||
'MixinConfigs' : "${mod_id}.mixins.json"
|
||||
])
|
||||
}
|
||||
dependsOn classes
|
||||
}
|
||||
|
||||
|
||||
tasks.named('publish') {
|
||||
dependsOn build
|
||||
}
|
||||
|
||||
|
||||
// ==================== 发布配置 ====================
|
||||
publishing {
|
||||
publications {
|
||||
register('mavenJava', MavenPublication) {
|
||||
from components.java
|
||||
mavenJava(MavenPublication) {
|
||||
artifactId = mod_id
|
||||
artifact reobfJar
|
||||
artifact sourceJar
|
||||
artifact javadocJar
|
||||
|
||||
pom {
|
||||
name = 'RedEnvelope'
|
||||
description = 'A mod allows you to send red envelopes (also hongbao) to other players.'
|
||||
url = 'https://github.com/3944Realms/lib39'
|
||||
|
||||
properties = [
|
||||
'minecraft.version': project.minecraft_version,
|
||||
'mod.version': project.mod_version,
|
||||
'forge.version': project.forge_version,
|
||||
'java.version': '17'
|
||||
]
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name = 'Camellia License'
|
||||
url = 'https://raw.githubusercontent.com/LeisureTimeDock/RedEnvelope/refs/heads/master/LICENSE.md'
|
||||
distribution = 'repo'
|
||||
}
|
||||
}
|
||||
|
||||
developers {
|
||||
developer {
|
||||
id = 'R3944Realms'
|
||||
name = "${mod_authors}"
|
||||
email = 'f256198830@hotmail.com'
|
||||
}
|
||||
}
|
||||
|
||||
scm {
|
||||
connection = 'scm:git:https://github.com/3944Realms/lib39.git'
|
||||
developerConnection = 'scm:git:ssh://git@github.com:3944Realms/lib39.git'
|
||||
url = 'https://github.com/3944Realms/lib39'
|
||||
tag = 'main'
|
||||
}
|
||||
|
||||
issueManagement {
|
||||
system = 'GitHub'
|
||||
url = 'https://github.com/3944Realms/lib39/issues'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
// 本地仓库
|
||||
maven {
|
||||
url "file://${project.projectDir}/repo"
|
||||
name = 'local'
|
||||
url = layout.buildDirectory.dir("repo")
|
||||
}
|
||||
|
||||
// Nexus 远程仓库
|
||||
maven {
|
||||
name = 'LTDNexus'
|
||||
url = 'https://nexus.bot.leisuretimedock.top/repository/maven-releases/'
|
||||
credentials {
|
||||
username = System.getenv('LTDNexusUsername') ?: ''
|
||||
password = System.getenv('LTDNexusPassword') ?: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ==================== 任务配置 ====================
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8'
|
||||
options.compilerArgs += ['-Xlint:unchecked', '-Xlint:deprecation']
|
||||
}
|
||||
|
||||
// 配置 Javadoc JAR - 使用标准 javadoc 任务输出
|
||||
tasks.named('javadocJar') {
|
||||
from javadoc.destinationDir
|
||||
}
|
||||
// ==================== 验证任务 ====================
|
||||
tasks.register('verifyNexusCredentials') {
|
||||
doLast {
|
||||
def username = System.getenv('LTDNexusUsername')
|
||||
def password = System.getenv('LTDNexusPassword')
|
||||
|
||||
// 安全地显示用户名和密码(只显示最后两位)
|
||||
def displayUsername = username ? "***${username.length() > 2 ? username.substring(username.length() - 2) : '**'}" : 'NOT SET'
|
||||
def displayPassword = password ? "***${password.length() > 2 ? password.substring(password.length() - 2) : '**'}" : 'NOT SET'
|
||||
|
||||
println "Nexus Username: ${displayUsername}"
|
||||
println "Nexus Password: ${displayPassword}"
|
||||
|
||||
if (!username || !password) {
|
||||
throw new GradleException('LTDNexusUsername or LTDNexusPassword environment variables are not set')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
|
||||
tasks.register('checkPublicationContents') {
|
||||
doLast {
|
||||
def publication = publishing.publications.mavenJava
|
||||
println "=== Publication Details ==="
|
||||
println "Group: ${publication.groupId}"
|
||||
println "Artifact: ${publication.artifactId}"
|
||||
println "Version: ${publication.version}"
|
||||
println "Artifacts:"
|
||||
publication.artifacts.each { artifact ->
|
||||
def file = artifact.file
|
||||
def exists = file.exists()
|
||||
println " - ${file.name} (${artifact.classifier ?: 'main'}) - Exists: ${exists}"
|
||||
|
||||
if (!exists) {
|
||||
throw new GradleException("Publication artifact missing: ${file.absolutePath}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior.
|
||||
// ==================== 任务依赖 ====================
|
||||
tasks.named('publishMavenJavaPublicationToLTDNexusRepository') {
|
||||
dependsOn verifyNexusCredentials
|
||||
dependsOn checkPublicationContents
|
||||
}
|
||||
|
||||
tasks.withType(PublishToMavenRepository) {
|
||||
dependsOn assemble
|
||||
dependsOn javadocJar
|
||||
}
|
||||
|
||||
// ==================== 便捷任务 ====================
|
||||
tasks.register('publishToNexus') {
|
||||
group = 'publishing'
|
||||
description = 'Publishes all publications to LTD Nexus'
|
||||
dependsOn 'publishMavenJavaPublicationToLTDNexusRepository'
|
||||
}
|
||||
tasks.named('build') {
|
||||
dependsOn javadocJar, sourceJar
|
||||
}
|
||||
|
||||
|
||||
tasks.register('publishLocal') {
|
||||
group = 'publishing'
|
||||
description = 'Publishes all publications to the local Maven repository'
|
||||
dependsOn 'publishToMavenLocal'
|
||||
}
|
||||
|
||||
tasks.register('cleanRepo', Delete) {
|
||||
delete layout.buildDirectory.dir("repo")
|
||||
}
|
||||
|
||||
tasks.named('clean') {
|
||||
dependsOn cleanRepo
|
||||
}
|
||||
|
||||
// ==================== IDEA 配置 ====================
|
||||
idea {
|
||||
module {
|
||||
downloadSources = true
|
||||
downloadJavadoc = true
|
||||
}
|
||||
}
|
||||
|
||||
// 禁用模块元数据生成
|
||||
tasks.withType(GenerateModuleMetadata) {
|
||||
enabled = false
|
||||
}
|
||||
tasks.register('showTaskTree') {
|
||||
doLast {
|
||||
def showTaskDeps
|
||||
showTaskDeps = { task, prefix = '' ->
|
||||
println "${prefix}${task.name}"
|
||||
task.getTaskDependencies().getDependencies(task).each { dep ->
|
||||
showTaskDeps(dep, prefix + ' ')
|
||||
}
|
||||
}
|
||||
|
||||
def targetTask = tasks.findByName('build')
|
||||
if (targetTask) {
|
||||
println "构建任务依赖树:"
|
||||
showTaskDeps(targetTask)
|
||||
} else {
|
||||
println "未找到 build 任务"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,24 +1,46 @@
|
|||
org.gradle.jvmargs=-Xmx1G
|
||||
org.gradle.daemon=true
|
||||
org.gradle.parallel=true
|
||||
org.gradle.caching=true
|
||||
org.gradle.configuration-cache=true
|
||||
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
|
||||
org.gradle.jvmargs=-Xmx3G
|
||||
org.gradle.daemon=false
|
||||
org.gradle.parallel=false
|
||||
org.gradle.caching=false
|
||||
org.gradle.configuration-cache=false
|
||||
|
||||
parchment_minecraft_version=1.21.1
|
||||
parchment_mappings_version=2024.11.17
|
||||
#read more on this at https://github.com/neoforged/ModDevGradle?tab=readme-ov-file#better-minecraft-parameter-names--javadoc-parchment
|
||||
# you can also find the latest versions at: https://parchmentmc.org/docs/getting-started
|
||||
parchment_minecraft_version=1.20.1
|
||||
parchment_mappings_version=2023.09.03
|
||||
# Environment Properties
|
||||
minecraft_version=1.21.1
|
||||
minecraft_version_range=(1.21,1.21.1]
|
||||
neo_version=21.1.117
|
||||
neo_version_range=[21.0.0,)
|
||||
loader_version_range=[1,)
|
||||
# You can find the latest versions here: https://files.minecraftforge.net/net/minecraftforge/forge/index_1.20.1.html
|
||||
# The Minecraft version must agree with the Forge version to get a valid artifact
|
||||
minecraft_version=1.20.1
|
||||
# The Minecraft version range can use any release version of Minecraft as bounds.
|
||||
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
|
||||
# as they do not follow standard versioning conventions.
|
||||
minecraft_version_range=[1.20.1, 1.21)
|
||||
# The Forge version must agree with the Minecraft version to get a valid artifact
|
||||
forge_version=47.1.3
|
||||
# The Forge version range can use any version of Forge as bounds
|
||||
forge_version_range=[47.1.3,)
|
||||
# The loader version range can only use the major version of FML as bounds
|
||||
loader_version_range=[47,)
|
||||
|
||||
## Mod Properties
|
||||
mod_id=red_envelope
|
||||
# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63}
|
||||
# Must match the String constant located in the main mod class annotated with @Mod.
|
||||
mod_id=redenvelope
|
||||
# The human-readable display name for the mod.
|
||||
mod_name=Red Envelope
|
||||
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
||||
mod_license=Camellia License
|
||||
# The mod version. See https://semver.org/
|
||||
mod_version=1.0.0
|
||||
|
||||
mod_group_id=org.hiedacamellia
|
||||
mod_authors=HiedaCamellia, Houraisan Kaguya
|
||||
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
|
||||
# This should match the base package used for the mod sources.
|
||||
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
mod_group_id=top.leisuretimedock
|
||||
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
|
||||
mod_authors=R3944Realms, HiedaCamellia, Houraisan Kaguya
|
||||
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.
|
||||
mod_description=A mod allows you to send red envelopes (also hongbao) to other players.
|
||||
|
||||
mod_credits=
|
||||
21
gradle/.jni-config.groovy
Normal file
21
gradle/.jni-config.groovy
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
ext.jniConfig = {
|
||||
// 输出目录
|
||||
outputDir = project.file("native/include")
|
||||
|
||||
// 配置文件路径
|
||||
configFile = project.file("jni/jni-classes.txt")
|
||||
|
||||
// 是否在构建时自动生成
|
||||
autoGenerateOnBuild = true
|
||||
|
||||
// 是否启用详细日志
|
||||
verbose = true
|
||||
|
||||
// 自定义匹配模式
|
||||
defaultPatterns = [
|
||||
'.*Native.*',
|
||||
'.*JNI.*',
|
||||
'.*native.*',
|
||||
'com\\.mymod\\..*Impl' // 匹配特定包下的实现类
|
||||
]
|
||||
}
|
||||
458
gradle/jni-heads.gradle
Normal file
458
gradle/jni-heads.gradle
Normal file
|
|
@ -0,0 +1,458 @@
|
|||
// 配置
|
||||
def outputDir = project.file("cpp/header")
|
||||
def configFile = project.file("config/jni-classes.txt")
|
||||
|
||||
// 日志函数
|
||||
def log(msg) {
|
||||
println "[JNI] $msg"
|
||||
}
|
||||
|
||||
def logError(msg) {
|
||||
println "[JNI ERROR] $msg"
|
||||
}
|
||||
|
||||
def logWarn(msg) {
|
||||
println "[JNI WARN] $msg"
|
||||
}
|
||||
|
||||
// 创建配置任务
|
||||
tasks.register('createJniConfig') {
|
||||
group = 'jni'
|
||||
description = '创建 JNI 配置文件模板'
|
||||
|
||||
doLast {
|
||||
configFile.parentFile.mkdirs()
|
||||
if (!configFile.exists()) {
|
||||
configFile.text = """# JNI 头文件生成配置
|
||||
# 每行一个类全限定名,例如:
|
||||
# com.example.MyNativeClass
|
||||
# com.example.NativeUtils
|
||||
|
||||
# 或者使用正则表达式自动匹配:
|
||||
# #auto:.*Native.*
|
||||
"""
|
||||
log "配置文件已创建: ${configFile.absolutePath}"
|
||||
log "请编辑此文件并添加包含 native 方法的类"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 生成头文件任务
|
||||
tasks.register('generateJniHeaders') {
|
||||
group = 'jni'
|
||||
description = '生成 JNI 头文件'
|
||||
|
||||
dependsOn 'compileJava'
|
||||
|
||||
doLast {
|
||||
// 确保目录存在
|
||||
outputDir.mkdirs()
|
||||
|
||||
// 读取配置
|
||||
def targetClasses = []
|
||||
if (configFile.exists()) {
|
||||
configFile.eachLine { line ->
|
||||
def trimmed = line.trim()
|
||||
if (trimmed && !trimmed.startsWith('#')) {
|
||||
targetClasses.add(trimmed)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (targetClasses.isEmpty()) {
|
||||
logError "没有配置任何 JNI 类"
|
||||
logError "请先运行: ./gradlew createJniConfig"
|
||||
logError "然后编辑 ${configFile.absolutePath} 添加类名"
|
||||
return
|
||||
}
|
||||
|
||||
log "开始生成 JNI 头文件..."
|
||||
log "目标类 (${targetClasses.size()} 个):"
|
||||
targetClasses.eachWithIndex { className, i ->
|
||||
log " ${i + 1}. $className"
|
||||
}
|
||||
|
||||
// 准备类路径
|
||||
def classesDir = project.sourceSets.main.output.classesDirs.singleFile
|
||||
def classpath = project.configurations.runtimeClasspath.asPath +
|
||||
File.pathSeparator +
|
||||
classesDir.absolutePath
|
||||
|
||||
// 查找对应的 Java 源文件
|
||||
def sourceFiles = []
|
||||
def sourceDirs = project.sourceSets.main.java.srcDirs
|
||||
|
||||
targetClasses.each { className ->
|
||||
def found = false
|
||||
def relativePath = className.replace('.', '/') + '.java'
|
||||
|
||||
sourceDirs.each { srcDir ->
|
||||
def sourceFile = new File(srcDir, relativePath)
|
||||
if (sourceFile.exists()) {
|
||||
sourceFiles.add(sourceFile)
|
||||
found = true
|
||||
log "找到源文件: ${sourceFile.absolutePath}"
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
logWarn "警告: 未找到类 $className 的源文件"
|
||||
}
|
||||
}
|
||||
|
||||
if (sourceFiles.isEmpty()) {
|
||||
logError "错误: 未找到任何源文件"
|
||||
logError "请确保源文件存在于 src/main/java/ 目录中"
|
||||
return
|
||||
}
|
||||
|
||||
// 使用 javac -h 命令(正确的方式)
|
||||
def javaHome = System.getProperty('java.home')
|
||||
def javacPath = "${javaHome}/bin/javac"
|
||||
|
||||
if (!new File(javacPath).exists()) {
|
||||
javacPath = "${javaHome}/bin/javac"
|
||||
}
|
||||
|
||||
log "使用 javac -h 生成头文件..."
|
||||
|
||||
// 构建临时目录用于编译输出
|
||||
def tempOutputDir = new File(project.buildDir, "tmp/jni-headers")
|
||||
tempOutputDir.mkdirs()
|
||||
|
||||
try {
|
||||
// 方式1:逐个类生成(更可靠)
|
||||
def successCount = 0
|
||||
def failCount = 0
|
||||
|
||||
sourceFiles.each { sourceFile ->
|
||||
try {
|
||||
// 构建 javac 命令
|
||||
def processArgs = [
|
||||
javacPath,
|
||||
'-h', outputDir.absolutePath, // 头文件输出目录
|
||||
'-cp', classpath, // 类路径
|
||||
'-d', tempOutputDir.absolutePath, // 类文件输出目录
|
||||
sourceFile.absolutePath // 源文件
|
||||
]
|
||||
|
||||
log "处理: ${sourceFile.name}"
|
||||
|
||||
def process = processArgs.execute()
|
||||
def stdout = new StringBuilder()
|
||||
def stderr = new StringBuilder()
|
||||
|
||||
process.consumeProcessOutput(stdout, stderr)
|
||||
def exitCode = process.waitFor()
|
||||
|
||||
if (exitCode == 0) {
|
||||
successCount++
|
||||
if (stdout.length() > 0) {
|
||||
log " 输出: ${stdout.toString().trim()}"
|
||||
}
|
||||
} else {
|
||||
failCount++
|
||||
logError " 处理失败: ${sourceFile.name}"
|
||||
if (stderr.length() > 0) {
|
||||
logError " 错误: ${stderr.toString().trim()}"
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
failCount++
|
||||
logError " 处理异常: ${e.message}"
|
||||
}
|
||||
}
|
||||
|
||||
log "处理完成: 成功 ${successCount} 个, 失败 ${failCount} 个"
|
||||
|
||||
if (successCount > 0) {
|
||||
// 检查生成了哪些头文件
|
||||
def headerFiles = outputDir.listFiles({ dir, name -> name.endsWith('.h') } as FilenameFilter)
|
||||
if (headerFiles && headerFiles.size() > 0) {
|
||||
log "=" * 60
|
||||
log "JNI 头文件生成成功!"
|
||||
log "=" * 60
|
||||
log "输出目录: ${outputDir.absolutePath}"
|
||||
log "生成的头文件 (${headerFiles.size()} 个):"
|
||||
|
||||
headerFiles.sort { it.name }.each { file ->
|
||||
def size = file.length()
|
||||
def sizeStr = size < 1024 ? "${size} B" : "${String.format("%.1f", size / 1024.0)} KB"
|
||||
log " ✓ ${file.name} ($sizeStr)"
|
||||
|
||||
// 显示文件开头几行
|
||||
try {
|
||||
def lines = file.readLines()
|
||||
if (lines.size() > 0) {
|
||||
def headerGuard = lines.find { it.contains('#ifndef') }
|
||||
if (headerGuard) {
|
||||
log " 头文件保护: ${headerGuard.trim()}"
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 忽略读取错误
|
||||
}
|
||||
}
|
||||
|
||||
log "=" * 60
|
||||
log "🎉 头文件已成功生成!"
|
||||
log ""
|
||||
log "使用建议:"
|
||||
log " 1. 将生成的头文件复制到你的 C/C++ 项目中"
|
||||
log " 2. 在 C/C++ 源文件中包含这些头文件"
|
||||
log " 3. 实现头文件中声明的 JNI 函数"
|
||||
log ""
|
||||
log "示例 C++ 代码:"
|
||||
log " #include \"${headerFiles[0].name}\""
|
||||
log " JNIEXPORT void JNICALL Java_com_example_MyClass_nativeMethod(JNIEnv* env, jobject obj) {"
|
||||
log " // 你的实现代码"
|
||||
log " }"
|
||||
|
||||
} else {
|
||||
logWarn "警告: 未生成任何 .h 头文件"
|
||||
logWarn "可能的原因:"
|
||||
logWarn " 1. 源文件中没有 native 方法声明"
|
||||
logWarn " 2. javac 版本不支持 -h 选项"
|
||||
logWarn " 3. 类路径配置不正确"
|
||||
}
|
||||
} else {
|
||||
logError "所有处理都失败,未生成任何头文件"
|
||||
}
|
||||
|
||||
} finally {
|
||||
// 清理临时目录
|
||||
tempOutputDir.deleteDir()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 备选方案:使用传统 javah(如果 javac -h 失败)
|
||||
tasks.register('generateJniHeadersLegacy') {
|
||||
group = 'jni'
|
||||
description = '使用传统 javah 生成 JNI 头文件'
|
||||
|
||||
dependsOn 'compileJava'
|
||||
|
||||
doLast {
|
||||
outputDir.mkdirs()
|
||||
|
||||
def targetClasses = []
|
||||
if (configFile.exists()) {
|
||||
configFile.eachLine { line ->
|
||||
def trimmed = line.trim()
|
||||
if (trimmed && !trimmed.startsWith('#')) {
|
||||
targetClasses.add(trimmed)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (targetClasses.isEmpty()) {
|
||||
logError "没有配置任何 JNI 类"
|
||||
return
|
||||
}
|
||||
|
||||
log "使用传统 javah 生成头文件..."
|
||||
|
||||
def classesDir = project.sourceSets.main.output.classesDirs.singleFile
|
||||
def classpath = project.configurations.runtimeClasspath.asPath +
|
||||
File.pathSeparator +
|
||||
classesDir.absolutePath
|
||||
|
||||
def javaHome = System.getProperty('java.home')
|
||||
def javahPath = "${javaHome}/bin/javah"
|
||||
|
||||
if (!new File(javahPath).exists()) {
|
||||
javahPath = "${javaHome}/../bin/javah"
|
||||
}
|
||||
|
||||
if (!new File(javahPath).exists()) {
|
||||
logError "找不到 javah 工具"
|
||||
logError "请使用 Java 8-9 或使用 generateJniHeaders 任务"
|
||||
return
|
||||
}
|
||||
|
||||
def processArgs = [javahPath, '-classpath', classpath, '-d', outputDir.absolutePath]
|
||||
processArgs.addAll(targetClasses)
|
||||
|
||||
log "执行命令: ${processArgs.join(' ')}"
|
||||
|
||||
def process = processArgs.execute()
|
||||
def exitCode = process.waitFor()
|
||||
|
||||
if (exitCode == 0) {
|
||||
def files = outputDir.listFiles({ dir, name -> name.endsWith('.h') } as FilenameFilter)
|
||||
log "生成成功!创建了 ${files?.size() ?: 0} 个头文件"
|
||||
if (files) {
|
||||
files.each { log " - ${it.name}" }
|
||||
}
|
||||
} else {
|
||||
logError "生成失败"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 扫描 native 方法任务
|
||||
tasks.register('scanForNativeMethods') {
|
||||
group = 'jni'
|
||||
description = '扫描项目中的 native 方法'
|
||||
|
||||
doLast {
|
||||
log "扫描项目中可能包含 native 方法的类..."
|
||||
|
||||
def sourceDirs = project.sourceSets.main.java.srcDirs
|
||||
def foundClasses = []
|
||||
|
||||
sourceDirs.each { srcDir ->
|
||||
if (srcDir.exists()) {
|
||||
srcDir.eachFileRecurse(groovy.io.FileType.FILES) { file ->
|
||||
if (file.name.endsWith('.java')) {
|
||||
def content = file.text
|
||||
if (content.contains('native ') || content.contains(' native')) {
|
||||
// 提取类名
|
||||
def packageMatch = content =~ /package\s+([\w.]+)\s*;/
|
||||
def classMatch = content =~ /class\s+(\w+)/
|
||||
|
||||
if (packageMatch.find() && classMatch.find()) {
|
||||
def packageName = packageMatch.group(1)
|
||||
def className = classMatch.group(1)
|
||||
def fullClassName = "${packageName}.${className}"
|
||||
|
||||
if (!foundClasses.contains(fullClassName)) {
|
||||
foundClasses.add(fullClassName)
|
||||
log "发现: $fullClassName"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (foundClasses.isEmpty()) {
|
||||
log "未发现包含 native 方法的类"
|
||||
} else {
|
||||
log "=" * 60
|
||||
log "发现 ${foundClasses.size()} 个可能包含 native 方法的类:"
|
||||
foundClasses.sort().eachWithIndex { cls, i ->
|
||||
log " ${i + 1}. $cls"
|
||||
}
|
||||
log ""
|
||||
log "你可以将这些类添加到 ${configFile.name} 中"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 清理任务
|
||||
tasks.register('cleanJniHeaders', Delete) {
|
||||
group = 'jni'
|
||||
description = '清理 JNI 头文件'
|
||||
delete outputDir
|
||||
|
||||
doLast {
|
||||
log "已清理 JNI 头文件目录: ${outputDir.absolutePath}"
|
||||
}
|
||||
}
|
||||
|
||||
// 验证任务
|
||||
tasks.register('verifyJniSetup') {
|
||||
group = 'jni'
|
||||
description = '验证 JNI 配置'
|
||||
|
||||
doLast {
|
||||
log "验证 JNI 配置..."
|
||||
log "Java 版本: ${System.getProperty('java.version')}"
|
||||
log "Java Home: ${System.getProperty('java.home')}"
|
||||
|
||||
// 检查 javac
|
||||
def javaHome = System.getProperty('java.home')
|
||||
def javacPath = "${javaHome}/bin/javac"
|
||||
def javacExists = new File(javacPath).exists() || new File("${javaHome}/../bin/javac").exists()
|
||||
log "javac 工具: ${javacExists ? '找到 ✓' : '未找到 ✗'}"
|
||||
|
||||
// 检查 javah(传统方式)
|
||||
def javahPath = "${javaHome}/bin/javah"
|
||||
def javahExists = new File(javahPath).exists() || new File("${javaHome}/../bin/javah").exists()
|
||||
log "javah 工具: ${javahExists ? '找到 ✓' : '未找到 ✗'}"
|
||||
|
||||
// 检查配置文件
|
||||
if (configFile.exists()) {
|
||||
def classes = configFile.readLines()
|
||||
.findAll { it.trim() && !it.trim().startsWith('#') }
|
||||
log "配置文件: 已找到 (${classes.size()} 个类)"
|
||||
if (classes.size() > 0) {
|
||||
classes.each { log " - $it" }
|
||||
}
|
||||
} else {
|
||||
log "配置文件: 未找到 ✗"
|
||||
}
|
||||
|
||||
// 检查输出目录
|
||||
log "输出目录: ${outputDir.absolutePath}"
|
||||
}
|
||||
}
|
||||
|
||||
// 帮助任务
|
||||
tasks.register('jniHelp') {
|
||||
group = 'help'
|
||||
description = 'JNI 帮助'
|
||||
|
||||
doLast {
|
||||
println """
|
||||
${'=' * 70}
|
||||
JNI 头文件生成系统
|
||||
${'=' * 70}
|
||||
|
||||
📋 概述:
|
||||
为包含 native 方法的 Java 类生成 C/C++ 头文件。
|
||||
|
||||
🚀 快速开始:
|
||||
1. ./gradlew createJniConfig # 创建配置文件
|
||||
2. 编辑 config/jni-classes.txt # 添加你的 JNI 类
|
||||
3. ./gradlew generateJniHeaders # 生成头文件(推荐)
|
||||
4. 头文件输出到: cpp/header/
|
||||
|
||||
🔧 可用任务:
|
||||
jniHelp - 显示此帮助
|
||||
createJniConfig - 创建配置文件
|
||||
generateJniHeaders - 生成头文件(现代方式)
|
||||
generateJniHeadersLegacy - 传统方式(Java 8-9)
|
||||
scanForNativeMethods - 扫描 native 方法
|
||||
verifyJniSetup - 验证配置
|
||||
cleanJniHeaders - 清理生成的文件
|
||||
|
||||
📝 配置文件格式 (config/jni-classes.txt):
|
||||
# 注释
|
||||
com.example.MyNativeClass # 直接指定类名
|
||||
#auto:.*Native.* # 自动匹配(以 #auto: 开头)
|
||||
|
||||
⚠️ 注意事项:
|
||||
• 确保类中包含 native 方法声明
|
||||
• 先编译项目再生成头文件
|
||||
• 对于 Java 10+ 使用 generateJniHeaders
|
||||
• 对于 Java 8-9 使用 generateJniHeadersLegacy
|
||||
|
||||
🔍 调试:
|
||||
• 运行 verifyJniSetup 检查环境
|
||||
• 运行 scanForNativeMethods 发现 native 类
|
||||
• 确保源文件中有 native 关键字
|
||||
|
||||
${'=' * 70}
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
// 可选:自动集成到构建
|
||||
// tasks.named('build') {
|
||||
// dependsOn tasks.named('generateJniHeaders')
|
||||
// }
|
||||
|
||||
// 清理时包含 JNI 头文件
|
||||
tasks.named('clean') {
|
||||
dependsOn tasks.named('cleanJniHeaders')
|
||||
}
|
||||
|
||||
log "JNI 模块已加载"
|
||||
log "输出目录: ${outputDir.absolutePath}"
|
||||
log "配置文件: ${configFile.absolutePath}"
|
||||
log "使用 ./gradlew jniHelp 查看详细帮助"
|
||||
16
node_modules/.bin/commitizen
generated
vendored
Normal file
16
node_modules/.bin/commitizen
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../commitizen/bin/commitizen" "$@"
|
||||
else
|
||||
exec node "$basedir/../commitizen/bin/commitizen" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/commitizen.cmd
generated
vendored
Normal file
17
node_modules/.bin/commitizen.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\commitizen\bin\commitizen" %*
|
||||
28
node_modules/.bin/commitizen.ps1
generated
vendored
Normal file
28
node_modules/.bin/commitizen.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../commitizen/bin/commitizen" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../commitizen/bin/commitizen" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../commitizen/bin/commitizen" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../commitizen/bin/commitizen" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/conventional-commits-parser
generated
vendored
Normal file
16
node_modules/.bin/conventional-commits-parser
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../conventional-commits-parser/dist/cli/index.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../conventional-commits-parser/dist/cli/index.js" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/conventional-commits-parser.cmd
generated
vendored
Normal file
17
node_modules/.bin/conventional-commits-parser.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\conventional-commits-parser\dist\cli\index.js" %*
|
||||
28
node_modules/.bin/conventional-commits-parser.ps1
generated
vendored
Normal file
28
node_modules/.bin/conventional-commits-parser.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../conventional-commits-parser/dist/cli/index.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../conventional-commits-parser/dist/cli/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../conventional-commits-parser/dist/cli/index.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../conventional-commits-parser/dist/cli/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/cz
generated
vendored
Normal file
16
node_modules/.bin/cz
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../commitizen/bin/git-cz" "$@"
|
||||
else
|
||||
exec node "$basedir/../commitizen/bin/git-cz" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/cz.cmd
generated
vendored
Normal file
17
node_modules/.bin/cz.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\commitizen\bin\git-cz" %*
|
||||
28
node_modules/.bin/cz.ps1
generated
vendored
Normal file
28
node_modules/.bin/cz.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/git-cz
generated
vendored
Normal file
16
node_modules/.bin/git-cz
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../commitizen/bin/git-cz" "$@"
|
||||
else
|
||||
exec node "$basedir/../commitizen/bin/git-cz" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/git-cz.cmd
generated
vendored
Normal file
17
node_modules/.bin/git-cz.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\commitizen\bin\git-cz" %*
|
||||
28
node_modules/.bin/git-cz.ps1
generated
vendored
Normal file
28
node_modules/.bin/git-cz.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../commitizen/bin/git-cz" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/jiti
generated
vendored
Normal file
16
node_modules/.bin/jiti
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../jiti/lib/jiti-cli.mjs" "$@"
|
||||
else
|
||||
exec node "$basedir/../jiti/lib/jiti-cli.mjs" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/jiti.cmd
generated
vendored
Normal file
17
node_modules/.bin/jiti.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jiti\lib\jiti-cli.mjs" %*
|
||||
28
node_modules/.bin/jiti.ps1
generated
vendored
Normal file
28
node_modules/.bin/jiti.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../jiti/lib/jiti-cli.mjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/js-yaml
generated
vendored
Normal file
16
node_modules/.bin/js-yaml
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/js-yaml.cmd
generated
vendored
Normal file
17
node_modules/.bin/js-yaml.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %*
|
||||
28
node_modules/.bin/js-yaml.ps1
generated
vendored
Normal file
28
node_modules/.bin/js-yaml.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/tsc
generated
vendored
Normal file
16
node_modules/.bin/tsc
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
|
||||
else
|
||||
exec node "$basedir/../typescript/bin/tsc" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/tsc.cmd
generated
vendored
Normal file
17
node_modules/.bin/tsc.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsc" %*
|
||||
28
node_modules/.bin/tsc.ps1
generated
vendored
Normal file
28
node_modules/.bin/tsc.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../typescript/bin/tsc" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../typescript/bin/tsc" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/tsserver
generated
vendored
Normal file
16
node_modules/.bin/tsserver
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
|
||||
else
|
||||
exec node "$basedir/../typescript/bin/tsserver" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/tsserver.cmd
generated
vendored
Normal file
17
node_modules/.bin/tsserver.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsserver" %*
|
||||
28
node_modules/.bin/tsserver.ps1
generated
vendored
Normal file
28
node_modules/.bin/tsserver.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../typescript/bin/tsserver" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../typescript/bin/tsserver" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/which
generated
vendored
Normal file
16
node_modules/.bin/which
generated
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../which/bin/which" "$@"
|
||||
else
|
||||
exec node "$basedir/../which/bin/which" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/which.cmd
generated
vendored
Normal file
17
node_modules/.bin/which.cmd
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\which" %*
|
||||
28
node_modules/.bin/which.ps1
generated
vendored
Normal file
28
node_modules/.bin/which.ps1
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../which/bin/which" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../which/bin/which" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../which/bin/which" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../which/bin/which" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
2039
node_modules/.package-lock.json
generated
vendored
Normal file
2039
node_modules/.package-lock.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
22
node_modules/@babel/code-frame/LICENSE
generated
vendored
Normal file
22
node_modules/@babel/code-frame/LICENSE
generated
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
19
node_modules/@babel/code-frame/README.md
generated
vendored
Normal file
19
node_modules/@babel/code-frame/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# @babel/code-frame
|
||||
|
||||
> Generate errors that contain a code frame that point to source locations.
|
||||
|
||||
See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save-dev @babel/code-frame
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/code-frame --dev
|
||||
```
|
||||
217
node_modules/@babel/code-frame/lib/index.js
generated
vendored
Normal file
217
node_modules/@babel/code-frame/lib/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var picocolors = require('picocolors');
|
||||
var jsTokens = require('js-tokens');
|
||||
var helperValidatorIdentifier = require('@babel/helper-validator-identifier');
|
||||
|
||||
function isColorSupported() {
|
||||
return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported
|
||||
);
|
||||
}
|
||||
const compose = (f, g) => v => f(g(v));
|
||||
function buildDefs(colors) {
|
||||
return {
|
||||
keyword: colors.cyan,
|
||||
capitalized: colors.yellow,
|
||||
jsxIdentifier: colors.yellow,
|
||||
punctuator: colors.yellow,
|
||||
number: colors.magenta,
|
||||
string: colors.green,
|
||||
regex: colors.magenta,
|
||||
comment: colors.gray,
|
||||
invalid: compose(compose(colors.white, colors.bgRed), colors.bold),
|
||||
gutter: colors.gray,
|
||||
marker: compose(colors.red, colors.bold),
|
||||
message: compose(colors.red, colors.bold),
|
||||
reset: colors.reset
|
||||
};
|
||||
}
|
||||
const defsOn = buildDefs(picocolors.createColors(true));
|
||||
const defsOff = buildDefs(picocolors.createColors(false));
|
||||
function getDefs(enabled) {
|
||||
return enabled ? defsOn : defsOff;
|
||||
}
|
||||
|
||||
const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
|
||||
const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
|
||||
const BRACKET = /^[()[\]{}]$/;
|
||||
let tokenize;
|
||||
const JSX_TAG = /^[a-z][\w-]*$/i;
|
||||
const getTokenType = function (token, offset, text) {
|
||||
if (token.type === "name") {
|
||||
const tokenValue = token.value;
|
||||
if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) {
|
||||
return "keyword";
|
||||
}
|
||||
if (JSX_TAG.test(tokenValue) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
|
||||
return "jsxIdentifier";
|
||||
}
|
||||
const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));
|
||||
if (firstChar !== firstChar.toLowerCase()) {
|
||||
return "capitalized";
|
||||
}
|
||||
}
|
||||
if (token.type === "punctuator" && BRACKET.test(token.value)) {
|
||||
return "bracket";
|
||||
}
|
||||
if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
|
||||
return "punctuator";
|
||||
}
|
||||
return token.type;
|
||||
};
|
||||
tokenize = function* (text) {
|
||||
let match;
|
||||
while (match = jsTokens.default.exec(text)) {
|
||||
const token = jsTokens.matchToToken(match);
|
||||
yield {
|
||||
type: getTokenType(token, match.index, text),
|
||||
value: token.value
|
||||
};
|
||||
}
|
||||
};
|
||||
function highlight(text) {
|
||||
if (text === "") return "";
|
||||
const defs = getDefs(true);
|
||||
let highlighted = "";
|
||||
for (const {
|
||||
type,
|
||||
value
|
||||
} of tokenize(text)) {
|
||||
if (type in defs) {
|
||||
highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n");
|
||||
} else {
|
||||
highlighted += value;
|
||||
}
|
||||
}
|
||||
return highlighted;
|
||||
}
|
||||
|
||||
let deprecationWarningShown = false;
|
||||
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
||||
function getMarkerLines(loc, source, opts, startLineBaseZero) {
|
||||
const startLoc = Object.assign({
|
||||
column: 0,
|
||||
line: -1
|
||||
}, loc.start);
|
||||
const endLoc = Object.assign({}, startLoc, loc.end);
|
||||
const {
|
||||
linesAbove = 2,
|
||||
linesBelow = 3
|
||||
} = opts || {};
|
||||
const startLine = startLoc.line - startLineBaseZero;
|
||||
const startColumn = startLoc.column;
|
||||
const endLine = endLoc.line - startLineBaseZero;
|
||||
const endColumn = endLoc.column;
|
||||
let start = Math.max(startLine - (linesAbove + 1), 0);
|
||||
let end = Math.min(source.length, endLine + linesBelow);
|
||||
if (startLine === -1) {
|
||||
start = 0;
|
||||
}
|
||||
if (endLine === -1) {
|
||||
end = source.length;
|
||||
}
|
||||
const lineDiff = endLine - startLine;
|
||||
const markerLines = {};
|
||||
if (lineDiff) {
|
||||
for (let i = 0; i <= lineDiff; i++) {
|
||||
const lineNumber = i + startLine;
|
||||
if (!startColumn) {
|
||||
markerLines[lineNumber] = true;
|
||||
} else if (i === 0) {
|
||||
const sourceLength = source[lineNumber - 1].length;
|
||||
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
|
||||
} else if (i === lineDiff) {
|
||||
markerLines[lineNumber] = [0, endColumn];
|
||||
} else {
|
||||
const sourceLength = source[lineNumber - i].length;
|
||||
markerLines[lineNumber] = [0, sourceLength];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (startColumn === endColumn) {
|
||||
if (startColumn) {
|
||||
markerLines[startLine] = [startColumn, 0];
|
||||
} else {
|
||||
markerLines[startLine] = true;
|
||||
}
|
||||
} else {
|
||||
markerLines[startLine] = [startColumn, endColumn - startColumn];
|
||||
}
|
||||
}
|
||||
return {
|
||||
start,
|
||||
end,
|
||||
markerLines
|
||||
};
|
||||
}
|
||||
function codeFrameColumns(rawLines, loc, opts = {}) {
|
||||
const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
|
||||
const startLineBaseZero = (opts.startLine || 1) - 1;
|
||||
const defs = getDefs(shouldHighlight);
|
||||
const lines = rawLines.split(NEWLINE);
|
||||
const {
|
||||
start,
|
||||
end,
|
||||
markerLines
|
||||
} = getMarkerLines(loc, lines, opts, startLineBaseZero);
|
||||
const hasColumns = loc.start && typeof loc.start.column === "number";
|
||||
const numberMaxWidth = String(end + startLineBaseZero).length;
|
||||
const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
|
||||
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
|
||||
const number = start + 1 + index;
|
||||
const paddedNumber = ` ${number + startLineBaseZero}`.slice(-numberMaxWidth);
|
||||
const gutter = ` ${paddedNumber} |`;
|
||||
const hasMarker = markerLines[number];
|
||||
const lastMarkerLine = !markerLines[number + 1];
|
||||
if (hasMarker) {
|
||||
let markerLine = "";
|
||||
if (Array.isArray(hasMarker)) {
|
||||
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
|
||||
const numberOfMarkers = hasMarker[1] || 1;
|
||||
markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join("");
|
||||
if (lastMarkerLine && opts.message) {
|
||||
markerLine += " " + defs.message(opts.message);
|
||||
}
|
||||
}
|
||||
return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
|
||||
} else {
|
||||
return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`;
|
||||
}
|
||||
}).join("\n");
|
||||
if (opts.message && !hasColumns) {
|
||||
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
|
||||
}
|
||||
if (shouldHighlight) {
|
||||
return defs.reset(frame);
|
||||
} else {
|
||||
return frame;
|
||||
}
|
||||
}
|
||||
function index (rawLines, lineNumber, colNumber, opts = {}) {
|
||||
if (!deprecationWarningShown) {
|
||||
deprecationWarningShown = true;
|
||||
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
|
||||
if (process.emitWarning) {
|
||||
process.emitWarning(message, "DeprecationWarning");
|
||||
} else {
|
||||
const deprecationError = new Error(message);
|
||||
deprecationError.name = "DeprecationWarning";
|
||||
console.warn(new Error(message));
|
||||
}
|
||||
}
|
||||
colNumber = Math.max(colNumber, 0);
|
||||
const location = {
|
||||
start: {
|
||||
column: colNumber,
|
||||
line: lineNumber
|
||||
}
|
||||
};
|
||||
return codeFrameColumns(rawLines, location, opts);
|
||||
}
|
||||
|
||||
exports.codeFrameColumns = codeFrameColumns;
|
||||
exports.default = index;
|
||||
exports.highlight = highlight;
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@babel/code-frame/lib/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/code-frame/lib/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
32
node_modules/@babel/code-frame/package.json
generated
vendored
Normal file
32
node_modules/@babel/code-frame/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"name": "@babel/code-frame",
|
||||
"version": "7.29.0",
|
||||
"description": "Generate errors that contain a code frame that point to source locations.",
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"homepage": "https://babel.dev/docs/en/next/babel-code-frame",
|
||||
"bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-code-frame"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.28.5",
|
||||
"js-tokens": "^4.0.0",
|
||||
"picocolors": "^1.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"charcodes": "^0.2.0",
|
||||
"import-meta-resolve": "^4.1.0",
|
||||
"strip-ansi": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"type": "commonjs"
|
||||
}
|
||||
22
node_modules/@babel/helper-validator-identifier/LICENSE
generated
vendored
Normal file
22
node_modules/@babel/helper-validator-identifier/LICENSE
generated
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
19
node_modules/@babel/helper-validator-identifier/README.md
generated
vendored
Normal file
19
node_modules/@babel/helper-validator-identifier/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# @babel/helper-validator-identifier
|
||||
|
||||
> Validate identifier/keywords name
|
||||
|
||||
See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save @babel/helper-validator-identifier
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/helper-validator-identifier
|
||||
```
|
||||
70
node_modules/@babel/helper-validator-identifier/lib/identifier.js
generated
vendored
Normal file
70
node_modules/@babel/helper-validator-identifier/lib/identifier.js
generated
vendored
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.isIdentifierChar = isIdentifierChar;
|
||||
exports.isIdentifierName = isIdentifierName;
|
||||
exports.isIdentifierStart = isIdentifierStart;
|
||||
let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
|
||||
let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
|
||||
const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
|
||||
const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
|
||||
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
|
||||
const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];
|
||||
const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
|
||||
function isInAstralSet(code, set) {
|
||||
let pos = 0x10000;
|
||||
for (let i = 0, length = set.length; i < length; i += 2) {
|
||||
pos += set[i];
|
||||
if (pos > code) return false;
|
||||
pos += set[i + 1];
|
||||
if (pos >= code) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function isIdentifierStart(code) {
|
||||
if (code < 65) return code === 36;
|
||||
if (code <= 90) return true;
|
||||
if (code < 97) return code === 95;
|
||||
if (code <= 122) return true;
|
||||
if (code <= 0xffff) {
|
||||
return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
|
||||
}
|
||||
return isInAstralSet(code, astralIdentifierStartCodes);
|
||||
}
|
||||
function isIdentifierChar(code) {
|
||||
if (code < 48) return code === 36;
|
||||
if (code < 58) return true;
|
||||
if (code < 65) return false;
|
||||
if (code <= 90) return true;
|
||||
if (code < 97) return code === 95;
|
||||
if (code <= 122) return true;
|
||||
if (code <= 0xffff) {
|
||||
return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
|
||||
}
|
||||
return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
|
||||
}
|
||||
function isIdentifierName(name) {
|
||||
let isFirst = true;
|
||||
for (let i = 0; i < name.length; i++) {
|
||||
let cp = name.charCodeAt(i);
|
||||
if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
|
||||
const trail = name.charCodeAt(++i);
|
||||
if ((trail & 0xfc00) === 0xdc00) {
|
||||
cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
|
||||
}
|
||||
}
|
||||
if (isFirst) {
|
||||
isFirst = false;
|
||||
if (!isIdentifierStart(cp)) {
|
||||
return false;
|
||||
}
|
||||
} else if (!isIdentifierChar(cp)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return !isFirst;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=identifier.js.map
|
||||
1
node_modules/@babel/helper-validator-identifier/lib/identifier.js.map
generated
vendored
Normal file
1
node_modules/@babel/helper-validator-identifier/lib/identifier.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
57
node_modules/@babel/helper-validator-identifier/lib/index.js
generated
vendored
Normal file
57
node_modules/@babel/helper-validator-identifier/lib/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierChar", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierChar;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierName", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierName;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierStart", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierStart;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isKeyword", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isKeyword;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictBindOnlyReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictBindReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictBindReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictReservedWord;
|
||||
}
|
||||
});
|
||||
var _identifier = require("./identifier.js");
|
||||
var _keyword = require("./keyword.js");
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@babel/helper-validator-identifier/lib/index.js.map
generated
vendored
Normal file
1
node_modules/@babel/helper-validator-identifier/lib/index.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
|
||||
35
node_modules/@babel/helper-validator-identifier/lib/keyword.js
generated
vendored
Normal file
35
node_modules/@babel/helper-validator-identifier/lib/keyword.js
generated
vendored
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.isKeyword = isKeyword;
|
||||
exports.isReservedWord = isReservedWord;
|
||||
exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
|
||||
exports.isStrictBindReservedWord = isStrictBindReservedWord;
|
||||
exports.isStrictReservedWord = isStrictReservedWord;
|
||||
const reservedWords = {
|
||||
keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
|
||||
strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
|
||||
strictBind: ["eval", "arguments"]
|
||||
};
|
||||
const keywords = new Set(reservedWords.keyword);
|
||||
const reservedWordsStrictSet = new Set(reservedWords.strict);
|
||||
const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
|
||||
function isReservedWord(word, inModule) {
|
||||
return inModule && word === "await" || word === "enum";
|
||||
}
|
||||
function isStrictReservedWord(word, inModule) {
|
||||
return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
|
||||
}
|
||||
function isStrictBindOnlyReservedWord(word) {
|
||||
return reservedWordsStrictBindSet.has(word);
|
||||
}
|
||||
function isStrictBindReservedWord(word, inModule) {
|
||||
return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
|
||||
}
|
||||
function isKeyword(word) {
|
||||
return keywords.has(word);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=keyword.js.map
|
||||
1
node_modules/@babel/helper-validator-identifier/lib/keyword.js.map
generated
vendored
Normal file
1
node_modules/@babel/helper-validator-identifier/lib/keyword.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]}
|
||||
31
node_modules/@babel/helper-validator-identifier/package.json
generated
vendored
Normal file
31
node_modules/@babel/helper-validator-identifier/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"name": "@babel/helper-validator-identifier",
|
||||
"version": "7.28.5",
|
||||
"description": "Validate identifier/keywords name",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-helper-validator-identifier"
|
||||
},
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./lib/index.d.ts",
|
||||
"default": "./lib/index.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@unicode/unicode-17.0.0": "^1.6.10",
|
||||
"charcodes": "^0.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"type": "commonjs"
|
||||
}
|
||||
105
node_modules/@commitlint/config-validator/lib/commitlint.schema.json
generated
vendored
Normal file
105
node_modules/@commitlint/config-validator/lib/commitlint.schema.json
generated
vendored
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"type": "object",
|
||||
"definitions": {
|
||||
"rule": {
|
||||
"oneOf": [
|
||||
{
|
||||
"description": "A rule",
|
||||
"type": "array",
|
||||
"items": [
|
||||
{
|
||||
"description": "Level: 0 disables the rule. For 1 it will be considered a warning, for 2 an error",
|
||||
"type": "number",
|
||||
"enum": [0, 1, 2]
|
||||
},
|
||||
{
|
||||
"description": "Applicable: always|never: never inverts the rule",
|
||||
"type": "string",
|
||||
"enum": ["always", "never"]
|
||||
},
|
||||
{
|
||||
"description": "Value: the value for this rule"
|
||||
}
|
||||
],
|
||||
"minItems": 1,
|
||||
"maxItems": 3,
|
||||
"additionalItems": false
|
||||
},
|
||||
{
|
||||
"description": "A rule",
|
||||
"typeof": "function"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"extends": {
|
||||
"description": "Resolveable ids to commitlint configurations to extend",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
{ "type": "string" }
|
||||
]
|
||||
},
|
||||
"parserPreset": {
|
||||
"description": "Resolveable id to conventional-changelog parser preset to import and use",
|
||||
"oneOf": [
|
||||
{ "type": "string" },
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"path": { "type": "string" },
|
||||
"parserOpts": {}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
{ "typeof": "function" }
|
||||
]
|
||||
},
|
||||
"helpUrl": {
|
||||
"description": "Custom URL to show upon failure",
|
||||
"type": "string"
|
||||
},
|
||||
"formatter": {
|
||||
"description": "Resolveable id to package, from node_modules, which formats the output",
|
||||
"type": "string"
|
||||
},
|
||||
"rules": {
|
||||
"description": "Rules to check against",
|
||||
"type": "object",
|
||||
"propertyNames": { "type": "string" },
|
||||
"additionalProperties": { "$ref": "#/definitions/rule" }
|
||||
},
|
||||
"plugins": {
|
||||
"description": "Resolveable ids of commitlint plugins from node_modules",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{ "type": "string" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["rules"],
|
||||
"properties": {
|
||||
"rules": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ignores": {
|
||||
"type": "array",
|
||||
"items": { "typeof": "function" },
|
||||
"description": "Additional commits to ignore, defined by ignore matchers"
|
||||
},
|
||||
"defaultIgnores": {
|
||||
"description": "Whether commitlint uses the default ignore rules",
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
node_modules/@commitlint/config-validator/lib/formatErrors.d.ts
generated
vendored
Normal file
9
node_modules/@commitlint/config-validator/lib/formatErrors.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import type { ErrorObject } from "ajv";
|
||||
/**
|
||||
* Formats an array of schema validation errors.
|
||||
* @param errors An array of error messages to format.
|
||||
* @returns Formatted error message
|
||||
* Based on https://github.com/eslint/eslint/blob/master/lib/shared/config-validator.js#L237-L261
|
||||
*/
|
||||
export declare function formatErrors(errors: ErrorObject[]): string;
|
||||
//# sourceMappingURL=formatErrors.d.ts.map
|
||||
1
node_modules/@commitlint/config-validator/lib/formatErrors.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/config-validator/lib/formatErrors.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"formatErrors.d.ts","sourceRoot":"","sources":["../src/formatErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAoC1D"}
|
||||
35
node_modules/@commitlint/config-validator/lib/formatErrors.js
generated
vendored
Normal file
35
node_modules/@commitlint/config-validator/lib/formatErrors.js
generated
vendored
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/**
|
||||
* Formats an array of schema validation errors.
|
||||
* @param errors An array of error messages to format.
|
||||
* @returns Formatted error message
|
||||
* Based on https://github.com/eslint/eslint/blob/master/lib/shared/config-validator.js#L237-L261
|
||||
*/
|
||||
export function formatErrors(errors) {
|
||||
return errors
|
||||
.map((error) => {
|
||||
if (error.keyword === "additionalProperties" &&
|
||||
"additionalProperty" in error.params) {
|
||||
const formattedPropertyPath = error.instancePath.length
|
||||
? `${error.instancePath.slice(1)}.${error.params.additionalProperty}`
|
||||
: error.params.additionalProperty;
|
||||
return `Unexpected top-level property "${formattedPropertyPath}"`;
|
||||
}
|
||||
if (error.keyword === "type") {
|
||||
const formattedField = error.instancePath.slice(1);
|
||||
if (!formattedField) {
|
||||
return `Config has the wrong type - ${error.message}`;
|
||||
}
|
||||
return `Property "${formattedField}" has the wrong type - ${error.message}`;
|
||||
}
|
||||
const field = (error.instancePath[0] === "."
|
||||
? error.instancePath.slice(1)
|
||||
: error.instancePath) || "Config";
|
||||
if (error.keyword === "typeof") {
|
||||
return `"${field}" should be a ${error.schema}. Value: ${JSON.stringify(error.data)}`;
|
||||
}
|
||||
return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`;
|
||||
})
|
||||
.map((message) => `\t- ${message}.\n`)
|
||||
.join("");
|
||||
}
|
||||
//# sourceMappingURL=formatErrors.js.map
|
||||
1
node_modules/@commitlint/config-validator/lib/formatErrors.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/config-validator/lib/formatErrors.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"formatErrors.js","sourceRoot":"","sources":["../src/formatErrors.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IACjD,OAAO,MAAM;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,IACC,KAAK,CAAC,OAAO,KAAK,sBAAsB;YACxC,oBAAoB,IAAI,KAAK,CAAC,MAAM,EACnC,CAAC;YACF,MAAM,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM;gBACtD,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;gBACrE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAEnC,OAAO,kCAAkC,qBAAqB,GAAG,CAAC;QACnE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrB,OAAO,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC;YACvD,CAAC;YACD,OAAO,aAAa,cAAc,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GACV,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,GAAG;YAC7B,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC;QACpC,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,IAAI,KAAK,iBAAiB,KAAK,CAAC,MAAM,YAAY,IAAI,CAAC,SAAS,CACtE,KAAK,CAAC,IAAI,CACV,EAAE,CAAC;QACL,CAAC;QAED,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,YAAY,IAAI,CAAC,SAAS,CAC3D,KAAK,CAAC,IAAI,CACV,EAAE,CAAC;IACL,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,CAAC;SACrC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC"}
|
||||
3
node_modules/@commitlint/config-validator/lib/validate.d.ts
generated
vendored
Normal file
3
node_modules/@commitlint/config-validator/lib/validate.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import { UserConfig } from "@commitlint/types";
|
||||
export declare function validateConfig(source: string, config: unknown): asserts config is UserConfig;
|
||||
//# sourceMappingURL=validate.d.ts.map
|
||||
1
node_modules/@commitlint/config-validator/lib/validate.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/config-validator/lib/validate.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsB/C,wBAAgB,cAAc,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACb,OAAO,CAAC,MAAM,IAAI,UAAU,CA4B9B"}
|
||||
39
node_modules/@commitlint/config-validator/lib/validate.js
generated
vendored
Normal file
39
node_modules/@commitlint/config-validator/lib/validate.js
generated
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import { createRequire } from "node:module";
|
||||
import _Ajv from "ajv";
|
||||
import { formatErrors } from "./formatErrors.js";
|
||||
const require = createRequire(import.meta.url);
|
||||
const schema = require("./commitlint.schema.json");
|
||||
const TYPE_OF = [
|
||||
"undefined",
|
||||
"string",
|
||||
"number",
|
||||
"object",
|
||||
"function",
|
||||
"boolean",
|
||||
"symbol",
|
||||
];
|
||||
// FIXME: https://github.com/ajv-validator/ajv/issues/2132
|
||||
const Ajv = _Ajv;
|
||||
export function validateConfig(source, config) {
|
||||
const ajv = new Ajv({
|
||||
meta: false,
|
||||
strict: false,
|
||||
useDefaults: true,
|
||||
validateSchema: false,
|
||||
verbose: true,
|
||||
});
|
||||
ajv.addKeyword({
|
||||
keyword: "typeof",
|
||||
validate: function typeOfFunc(schema, data) {
|
||||
return typeof data === schema;
|
||||
},
|
||||
metaSchema: { type: "string", enum: TYPE_OF },
|
||||
schema: true,
|
||||
});
|
||||
const validate = ajv.compile(schema);
|
||||
const isValid = validate(config);
|
||||
if (!isValid && validate.errors && validate.errors.length) {
|
||||
throw new Error(`Commitlint configuration in ${source} is invalid:\n${formatErrors(validate.errors)}`);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=validate.js.map
|
||||
1
node_modules/@commitlint/config-validator/lib/validate.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/config-validator/lib/validate.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,IAAI,MAAM,KAAK,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,MAAM,GAA8C,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAE9F,MAAM,OAAO,GAAG;IACf,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,QAAQ;CACR,CAAC;AAEF,0DAA0D;AAC1D,MAAM,GAAG,GAAG,IAAsC,CAAC;AAEnD,MAAM,UAAU,cAAc,CAC7B,MAAc,EACd,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QACnB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,GAAG,CAAC,UAAU,CAAC;QACd,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,SAAS,UAAU,CAAC,MAAW,EAAE,IAAS;YACnD,OAAO,OAAO,IAAI,KAAK,MAAM,CAAC;QAC/B,CAAC;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;QAC7C,MAAM,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACd,+BAA+B,MAAM,iBAAiB,YAAY,CACjE,QAAQ,CAAC,MAAM,CACf,EAAE,CACH,CAAC;IACH,CAAC;AACF,CAAC"}
|
||||
21
node_modules/@commitlint/config-validator/license.md
generated
vendored
Normal file
21
node_modules/@commitlint/config-validator/license.md
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 - present Mario Nebl
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
46
node_modules/@commitlint/config-validator/package.json
generated
vendored
Normal file
46
node_modules/@commitlint/config-validator/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"name": "@commitlint/config-validator",
|
||||
"type": "module",
|
||||
"version": "20.4.0",
|
||||
"description": "config validator for commitlint.config.js",
|
||||
"main": "lib/validate.js",
|
||||
"types": "lib/validate.d.ts",
|
||||
"files": [
|
||||
"lib/"
|
||||
],
|
||||
"scripts": {
|
||||
"deps": "dep-check",
|
||||
"pkg": "pkg-check --skip-import"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v18"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/conventional-changelog/commitlint.git",
|
||||
"directory": "@commitlint/config-validator"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/conventional-changelog/commitlint/issues"
|
||||
},
|
||||
"homepage": "https://commitlint.js.org/",
|
||||
"keywords": [
|
||||
"conventional-changelog",
|
||||
"commitlint",
|
||||
"library",
|
||||
"core"
|
||||
],
|
||||
"author": {
|
||||
"name": "Mario Nebl",
|
||||
"email": "hello@herebecode.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@commitlint/utils": "^20.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@commitlint/types": "^20.4.0",
|
||||
"ajv": "^8.11.0"
|
||||
},
|
||||
"gitHead": "c68de5e24b010e38eac171f35ba18d31bb1fd3dd"
|
||||
}
|
||||
7
node_modules/@commitlint/execute-rule/lib/index.d.ts
generated
vendored
Normal file
7
node_modules/@commitlint/execute-rule/lib/index.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
type Rule<T> = readonly [string, Config<T>];
|
||||
type Config<T> = T | Promise<T> | ExectableConfig<T>;
|
||||
type ExectableConfig<T> = (() => T) | (() => Promise<T>);
|
||||
type ExecutedRule<T> = readonly [string, T];
|
||||
export default execute;
|
||||
export declare function execute<T = unknown>(rule?: Rule<T>): Promise<ExecutedRule<T> | null>;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
1
node_modules/@commitlint/execute-rule/lib/index.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/execute-rule/lib/index.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACrD,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,KAAK,YAAY,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE5C,eAAe,OAAO,CAAC;AAEvB,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACxC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GACZ,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAUjC"}
|
||||
13
node_modules/@commitlint/execute-rule/lib/index.js
generated
vendored
Normal file
13
node_modules/@commitlint/execute-rule/lib/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
export default execute;
|
||||
export async function execute(rule) {
|
||||
if (!Array.isArray(rule)) {
|
||||
return null;
|
||||
}
|
||||
const [name, config] = rule;
|
||||
const fn = executable(config) ? config : async () => config;
|
||||
return [name, await fn()];
|
||||
}
|
||||
function executable(config) {
|
||||
return typeof config === "function";
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@commitlint/execute-rule/lib/index.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/execute-rule/lib/index.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,eAAe,OAAO,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,IAAc;IAEd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE5B,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;IAE5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAI,MAAiB;IACvC,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC;AACrC,CAAC"}
|
||||
21
node_modules/@commitlint/execute-rule/license.md
generated
vendored
Normal file
21
node_modules/@commitlint/execute-rule/license.md
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 - present Mario Nebl
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
42
node_modules/@commitlint/execute-rule/package.json
generated
vendored
Normal file
42
node_modules/@commitlint/execute-rule/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"name": "@commitlint/execute-rule",
|
||||
"type": "module",
|
||||
"version": "20.0.0",
|
||||
"description": "Lint your commit messages",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"files": [
|
||||
"lib/"
|
||||
],
|
||||
"scripts": {
|
||||
"deps": "dep-check",
|
||||
"pkg": "pkg-check"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v18"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/conventional-changelog/commitlint.git",
|
||||
"directory": "@commitlint/execute-rule"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/conventional-changelog/commitlint/issues"
|
||||
},
|
||||
"homepage": "https://commitlint.js.org/",
|
||||
"keywords": [
|
||||
"conventional-changelog",
|
||||
"commitlint",
|
||||
"library",
|
||||
"core"
|
||||
],
|
||||
"author": {
|
||||
"name": "Mario Nebl",
|
||||
"email": "hello@herebecode.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@commitlint/utils": "^20.0.0"
|
||||
},
|
||||
"gitHead": "407be6c96b1a108ee012ed5330b0d80a165952d5"
|
||||
}
|
||||
15
node_modules/@commitlint/load/README.md
generated
vendored
Normal file
15
node_modules/@commitlint/load/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# @commitlint/load
|
||||
|
||||
Load shared commitlint configuration
|
||||
|
||||
## Getting started
|
||||
|
||||
```shell
|
||||
npm install --save-dev @commitlint/load
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
Consult [API docs](https://commitlint.js.org/api/load) for comprehensive documentation.
|
||||
|
||||
Documentation generated from [`docs` folder](../../docs/api/format.md).
|
||||
5
node_modules/@commitlint/load/lib/load.d.ts
generated
vendored
Normal file
5
node_modules/@commitlint/load/lib/load.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import { resolveFrom, resolveFromSilent, resolveGlobalSilent } from "@commitlint/resolve-extends";
|
||||
import { LoadOptions, QualifiedConfig, UserConfig } from "@commitlint/types";
|
||||
export default function load(seed?: UserConfig, options?: LoadOptions): Promise<QualifiedConfig>;
|
||||
export { resolveFrom, resolveFromSilent, resolveGlobalSilent };
|
||||
//# sourceMappingURL=load.d.ts.map
|
||||
1
node_modules/@commitlint/load/lib/load.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/load.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"AAIA,OAAuB,EACtB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,WAAW,EAEX,eAAe,EAEf,UAAU,EACV,MAAM,mBAAmB,CAAC;AAmB3B,wBAA8B,IAAI,CACjC,IAAI,GAAE,UAAe,EACrB,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,CAoG1B;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC"}
|
||||
97
node_modules/@commitlint/load/lib/load.js
generated
vendored
Normal file
97
node_modules/@commitlint/load/lib/load.js
generated
vendored
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
import path from "node:path";
|
||||
import { validateConfig } from "@commitlint/config-validator";
|
||||
import executeRule from "@commitlint/execute-rule";
|
||||
import resolveExtends, { resolveFrom, resolveFromSilent, resolveGlobalSilent, loadParserPreset, } from "@commitlint/resolve-extends";
|
||||
import isPlainObject from "is-plain-obj";
|
||||
import mergeWith from "lodash.mergewith";
|
||||
import { loadConfig } from "./utils/load-config.js";
|
||||
import { loadParserOpts } from "./utils/load-parser-opts.js";
|
||||
import loadPlugin from "./utils/load-plugin.js";
|
||||
/**
|
||||
* formatter should be kept as is when unable to resolve it from config directory
|
||||
*/
|
||||
const resolveFormatter = (formatter, parent) => {
|
||||
try {
|
||||
return resolveFrom(formatter, parent);
|
||||
}
|
||||
catch (error) {
|
||||
return formatter;
|
||||
}
|
||||
};
|
||||
export default async function load(seed = {}, options = {}) {
|
||||
const cwd = typeof options.cwd === "undefined" ? process.cwd() : options.cwd;
|
||||
const loaded = await loadConfig(cwd, options.file);
|
||||
const baseDirectory = loaded?.filepath ? path.dirname(loaded.filepath) : cwd;
|
||||
const configFilePath = loaded?.filepath;
|
||||
let config = {};
|
||||
if (loaded) {
|
||||
validateConfig(loaded.filepath || "", loaded.config);
|
||||
config = loaded.config;
|
||||
}
|
||||
// Merge passed config with file based options
|
||||
config = mergeWith({
|
||||
extends: [],
|
||||
plugins: [],
|
||||
rules: {},
|
||||
}, config, seed);
|
||||
// Resolve parserPreset key
|
||||
if (typeof config.parserPreset === "string") {
|
||||
const resolvedParserPreset = resolveFrom(config.parserPreset, configFilePath);
|
||||
config.parserPreset = {
|
||||
name: config.parserPreset,
|
||||
...(await loadParserPreset(resolvedParserPreset)),
|
||||
};
|
||||
}
|
||||
// Resolve extends key
|
||||
const extended = await resolveExtends(config, {
|
||||
prefix: "commitlint-config",
|
||||
cwd: baseDirectory,
|
||||
parserPreset: await config.parserPreset,
|
||||
});
|
||||
if (!extended.formatter || typeof extended.formatter !== "string") {
|
||||
extended.formatter = "@commitlint/format";
|
||||
}
|
||||
let plugins = {};
|
||||
if (Array.isArray(extended.plugins)) {
|
||||
const deduplicatedPlugins = [...new Set(extended.plugins)];
|
||||
for (const plugin of deduplicatedPlugins) {
|
||||
if (typeof plugin === "string") {
|
||||
plugins = await loadPlugin(plugins, plugin, process.env.DEBUG === "true");
|
||||
}
|
||||
else {
|
||||
plugins.local = plugin;
|
||||
}
|
||||
}
|
||||
}
|
||||
const rules = (await Promise.all(Object.entries(extended.rules || {}).map((entry) => executeRule(entry)))).reduce((registry, item) => {
|
||||
// type of `item` can be null, but Object.entries always returns key pair
|
||||
const [key, value] = item;
|
||||
registry[key] = value;
|
||||
return registry;
|
||||
}, {});
|
||||
const helpUrl = typeof extended.helpUrl === "string"
|
||||
? extended.helpUrl
|
||||
: typeof config.helpUrl === "string"
|
||||
? config.helpUrl
|
||||
: "https://github.com/conventional-changelog/commitlint/#what-is-commitlint";
|
||||
const prompt = extended.prompt && isPlainObject(extended.prompt) ? extended.prompt : {};
|
||||
return {
|
||||
extends: Array.isArray(extended.extends)
|
||||
? extended.extends
|
||||
: typeof extended.extends === "string"
|
||||
? [extended.extends]
|
||||
: [],
|
||||
// Resolve config-relative formatter module
|
||||
formatter: resolveFormatter(extended.formatter, configFilePath),
|
||||
// Resolve parser-opts from preset
|
||||
parserPreset: await loadParserOpts(extended.parserPreset),
|
||||
ignores: extended.ignores,
|
||||
defaultIgnores: extended.defaultIgnores,
|
||||
plugins: plugins,
|
||||
rules: rules,
|
||||
helpUrl: helpUrl,
|
||||
prompt,
|
||||
};
|
||||
}
|
||||
export { resolveFrom, resolveFromSilent, resolveGlobalSilent };
|
||||
//# sourceMappingURL=load.js.map
|
||||
1
node_modules/@commitlint/load/lib/load.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/load.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"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"}
|
||||
9
node_modules/@commitlint/load/lib/utils/load-config.d.ts
generated
vendored
Normal file
9
node_modules/@commitlint/load/lib/utils/load-config.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
export interface LoadConfigResult {
|
||||
config: unknown;
|
||||
filepath: string;
|
||||
isEmpty?: boolean;
|
||||
}
|
||||
export declare function loadConfig(cwd: string, configPath?: string): Promise<LoadConfigResult | null>;
|
||||
export declare const isDynamicAwaitSupported: () => boolean;
|
||||
export declare const isEsmModule: (cwd: string) => boolean;
|
||||
//# sourceMappingURL=load-config.d.ts.map
|
||||
1
node_modules/@commitlint/load/lib/utils/load-config.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/load-config.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../src/utils/load-config.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAKD,wBAAsB,UAAU,CAC/B,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA6DlC;AAKD,eAAO,MAAM,uBAAuB,eAOnC,CAAC;AAGF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,YAStC,CAAC"}
|
||||
81
node_modules/@commitlint/load/lib/utils/load-config.js
generated
vendored
Normal file
81
node_modules/@commitlint/load/lib/utils/load-config.js
generated
vendored
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
import { existsSync, readFileSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
import { cosmiconfig, defaultLoadersSync, defaultLoaders, } from "cosmiconfig";
|
||||
import { TypeScriptLoader } from "cosmiconfig-typescript-loader";
|
||||
const moduleName = "commitlint";
|
||||
const searchStrategy = "global";
|
||||
export async function loadConfig(cwd, configPath) {
|
||||
let tsLoaderInstance;
|
||||
const tsLoader = (...args) => {
|
||||
if (!tsLoaderInstance) {
|
||||
tsLoaderInstance = TypeScriptLoader();
|
||||
}
|
||||
return tsLoaderInstance(...args);
|
||||
};
|
||||
// If dynamic await is supported (Node >= v20.8.0) or directory uses ESM, support
|
||||
// async js/cjs loaders (dynamic import). Otherwise, use synchronous js/cjs loaders.
|
||||
const loaders = isDynamicAwaitSupported() || isEsmModule(cwd)
|
||||
? defaultLoaders
|
||||
: defaultLoadersSync;
|
||||
const explorer = cosmiconfig(moduleName, {
|
||||
searchStrategy,
|
||||
searchPlaces: [
|
||||
// cosmiconfig overrides default searchPlaces if any new search place is added (For e.g. `*.ts` files),
|
||||
// we need to manually merge default searchPlaces from https://github.com/davidtheclark/cosmiconfig#searchplaces
|
||||
"package.json",
|
||||
"package.yaml",
|
||||
`.${moduleName}rc`,
|
||||
`.${moduleName}rc.json`,
|
||||
`.${moduleName}rc.yaml`,
|
||||
`.${moduleName}rc.yml`,
|
||||
`.${moduleName}rc.js`,
|
||||
`.${moduleName}rc.cjs`,
|
||||
`.${moduleName}rc.mjs`,
|
||||
`${moduleName}.config.js`,
|
||||
`${moduleName}.config.cjs`,
|
||||
`${moduleName}.config.mjs`,
|
||||
// files supported by TypescriptLoader
|
||||
`.${moduleName}rc.ts`,
|
||||
`.${moduleName}rc.cts`,
|
||||
`.${moduleName}rc.mts`,
|
||||
`${moduleName}.config.ts`,
|
||||
`${moduleName}.config.cts`,
|
||||
`${moduleName}.config.mts`,
|
||||
],
|
||||
loaders: {
|
||||
".ts": tsLoader,
|
||||
".cts": tsLoader,
|
||||
".mts": tsLoader,
|
||||
".cjs": loaders[".cjs"],
|
||||
".js": loaders[".js"],
|
||||
},
|
||||
});
|
||||
const explicitPath = configPath ? path.resolve(cwd, configPath) : undefined;
|
||||
const explore = explicitPath ? explorer.load : explorer.search;
|
||||
const searchPath = explicitPath ? explicitPath : cwd;
|
||||
const local = await explore(searchPath);
|
||||
if (local) {
|
||||
return local;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
// See the following issues for more context, contributing to failing Jest tests:
|
||||
// - Issue: https://github.com/nodejs/node/issues/40058
|
||||
// - Resolution: https://github.com/nodejs/node/pull/48510 (Node v20.8.0)
|
||||
export const isDynamicAwaitSupported = () => {
|
||||
const [major, minor] = process.version
|
||||
.replace("v", "")
|
||||
.split(".")
|
||||
.map((val) => parseInt(val));
|
||||
return major >= 20 && minor >= 8;
|
||||
};
|
||||
// Is the given directory set up to use ESM (ECMAScript Modules)?
|
||||
export const isEsmModule = (cwd) => {
|
||||
const packagePath = path.join(cwd, "package.json");
|
||||
if (!existsSync(packagePath)) {
|
||||
return false;
|
||||
}
|
||||
const packageJSON = readFileSync(packagePath, { encoding: "utf-8" });
|
||||
return JSON.parse(packageJSON)?.type === "module";
|
||||
};
|
||||
//# sourceMappingURL=load-config.js.map
|
||||
1
node_modules/@commitlint/load/lib/utils/load-config.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/load-config.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../src/utils/load-config.ts"],"names":[],"mappings":"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"}
|
||||
5
node_modules/@commitlint/load/lib/utils/load-parser-opts.d.ts
generated
vendored
Normal file
5
node_modules/@commitlint/load/lib/utils/load-parser-opts.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import { ParserPreset } from "@commitlint/types";
|
||||
type Awaitable<T> = T | PromiseLike<T>;
|
||||
export declare function loadParserOpts(pendingParser: string | Awaitable<ParserPreset> | (() => Awaitable<ParserPreset>) | undefined): Promise<ParserPreset | undefined>;
|
||||
export {};
|
||||
//# sourceMappingURL=load-parser-opts.d.ts.map
|
||||
1
node_modules/@commitlint/load/lib/utils/load-parser-opts.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/load-parser-opts.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load-parser-opts.d.ts","sourceRoot":"","sources":["../../src/utils/load-parser-opts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAgBvC,wBAAsB,cAAc,CACnC,aAAa,EACV,MAAM,GACN,SAAS,CAAC,YAAY,CAAC,GACvB,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC,GAC/B,SAAS,GACV,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CA0DnC"}
|
||||
56
node_modules/@commitlint/load/lib/utils/load-parser-opts.js
generated
vendored
Normal file
56
node_modules/@commitlint/load/lib/utils/load-parser-opts.js
generated
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
function isObjectLike(obj) {
|
||||
return Boolean(obj) && typeof obj === "object"; // typeof null === 'object'
|
||||
}
|
||||
function isParserOptsFunction(obj) {
|
||||
return typeof obj.parserOpts === "function";
|
||||
}
|
||||
export async function loadParserOpts(pendingParser) {
|
||||
if (typeof pendingParser === "function") {
|
||||
return loadParserOpts(pendingParser());
|
||||
}
|
||||
if (!pendingParser || typeof pendingParser !== "object") {
|
||||
return undefined;
|
||||
}
|
||||
// Await for the module, loaded with require
|
||||
const parser = await pendingParser;
|
||||
// exit early, no opts to resolve
|
||||
if (!parser.parserOpts) {
|
||||
return parser;
|
||||
}
|
||||
// Pull nested parserOpts, might happen if overwritten with a module in main config
|
||||
if (typeof parser.parserOpts === "object") {
|
||||
// Await parser opts if applicable
|
||||
parser.parserOpts = await parser.parserOpts;
|
||||
if (isObjectLike(parser.parserOpts) &&
|
||||
isObjectLike(parser.parserOpts.parserOpts)) {
|
||||
parser.parserOpts = parser.parserOpts.parserOpts;
|
||||
}
|
||||
return parser;
|
||||
}
|
||||
// Create parser opts from factory
|
||||
if (isParserOptsFunction(parser) &&
|
||||
typeof parser.name === "string" &&
|
||||
parser.name.startsWith("conventional-changelog-")) {
|
||||
return new Promise((resolve) => {
|
||||
const result = parser.parserOpts((_, opts) => {
|
||||
resolve({
|
||||
...parser,
|
||||
parserOpts: opts?.parserOpts,
|
||||
});
|
||||
});
|
||||
// If result has data or a promise, the parser doesn't support factory-init
|
||||
// due to https://github.com/nodejs/promises-debugging/issues/16 it just quits, so let's use this fallback
|
||||
if (result) {
|
||||
Promise.resolve(result).then((opts) => {
|
||||
resolve({
|
||||
...parser,
|
||||
parserOpts: opts?.parserOpts || opts?.parser,
|
||||
});
|
||||
});
|
||||
}
|
||||
return;
|
||||
});
|
||||
}
|
||||
return parser;
|
||||
}
|
||||
//# sourceMappingURL=load-parser-opts.js.map
|
||||
1
node_modules/@commitlint/load/lib/utils/load-parser-opts.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/load-parser-opts.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load-parser-opts.js","sourceRoot":"","sources":["../../src/utils/load-parser-opts.ts"],"names":[],"mappings":"AAIA,SAAS,YAAY,CAAC,GAAY;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,2BAA2B;AAC5E,CAAC;AAED,SAAS,oBAAoB,CAC5B,GAAM;IAMN,OAAO,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,aAIY;IAEZ,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,4CAA4C;IAC5C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;IAEnC,iCAAiC;IACjC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,mFAAmF;IACnF,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3C,kCAAkC;QAClC,MAAM,CAAC,UAAU,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;QAC5C,IACC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;YAC/B,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EACzC,CAAC;YACF,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,kCAAkC;IAClC,IACC,oBAAoB,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAChD,CAAC;QACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAQ,EAAE,IAAI,EAAE,EAAE;gBACnD,OAAO,CAAC;oBACP,GAAG,MAAM;oBACT,UAAU,EAAE,IAAI,EAAE,UAAU;iBAC5B,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,2EAA2E;YAC3E,0GAA0G;YAC1G,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrC,OAAO,CAAC;wBACP,GAAG,MAAM;wBACT,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM;qBAC5C,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACJ,CAAC;YACD,OAAO;QACR,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
||||
3
node_modules/@commitlint/load/lib/utils/load-plugin.d.ts
generated
vendored
Normal file
3
node_modules/@commitlint/load/lib/utils/load-plugin.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import { PluginRecords } from "@commitlint/types";
|
||||
export default function loadPlugin(plugins: PluginRecords, pluginName: string, debug?: boolean): Promise<PluginRecords>;
|
||||
//# sourceMappingURL=load-plugin.d.ts.map
|
||||
1
node_modules/@commitlint/load/lib/utils/load-plugin.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/load-plugin.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load-plugin.d.ts","sourceRoot":"","sources":["../../src/utils/load-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAU,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAiB1D,wBAA8B,UAAU,CACvC,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,OAAe,GACpB,OAAO,CAAC,aAAa,CAAC,CA8DxB"}
|
||||
63
node_modules/@commitlint/load/lib/utils/load-plugin.js
generated
vendored
Normal file
63
node_modules/@commitlint/load/lib/utils/load-plugin.js
generated
vendored
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
import { createRequire } from "node:module";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath, pathToFileURL } from "node:url";
|
||||
import pc from "picocolors";
|
||||
import { normalizePackageName, getShorthandName } from "./plugin-naming.js";
|
||||
import { WhitespacePluginError, MissingPluginError } from "./plugin-errors.js";
|
||||
const require = createRequire(import.meta.url);
|
||||
const __dirname = path.resolve(fileURLToPath(import.meta.url), "..");
|
||||
const dynamicImport = async (id) => {
|
||||
const imported = await import(path.isAbsolute(id) ? pathToFileURL(id).toString() : id);
|
||||
return ("default" in imported && imported.default) || imported;
|
||||
};
|
||||
export default async function loadPlugin(plugins, pluginName, debug = false) {
|
||||
const longName = normalizePackageName(pluginName);
|
||||
const shortName = getShorthandName(longName);
|
||||
let plugin;
|
||||
if (pluginName.match(/\s+/u)) {
|
||||
throw new WhitespacePluginError(pluginName, {
|
||||
pluginName: longName,
|
||||
});
|
||||
}
|
||||
const pluginKey = longName === pluginName ? shortName : pluginName;
|
||||
if (!plugins[pluginKey]) {
|
||||
try {
|
||||
plugin = await dynamicImport(longName);
|
||||
}
|
||||
catch (pluginLoadErr) {
|
||||
try {
|
||||
// Check whether the plugin exists
|
||||
require.resolve(longName);
|
||||
}
|
||||
catch (error) {
|
||||
// If the plugin can't be resolved, display the missing plugin error (usually a config or install error)
|
||||
console.error(pc.red(`Failed to load plugin ${longName}.`));
|
||||
const message = error?.message || "Unknown error occurred";
|
||||
throw new MissingPluginError(pluginName, message, {
|
||||
pluginName: longName,
|
||||
commitlintPath: path.resolve(__dirname, "../.."),
|
||||
});
|
||||
}
|
||||
// Otherwise, the plugin exists and is throwing on module load for some reason, so print the stack trace.
|
||||
throw pluginLoadErr;
|
||||
}
|
||||
// This step is costly, so skip if debug is disabled
|
||||
if (debug) {
|
||||
const resolvedPath = require.resolve(longName);
|
||||
let version = null;
|
||||
try {
|
||||
version = require(`${longName}/package.json`).version;
|
||||
}
|
||||
catch (e) {
|
||||
// Do nothing
|
||||
}
|
||||
const loadedPluginAndVersion = version
|
||||
? `${longName}@${version}`
|
||||
: `${longName}, version unknown`;
|
||||
console.log(pc.blue(`Loaded plugin ${pluginName} (${loadedPluginAndVersion}) (from ${resolvedPath})`));
|
||||
}
|
||||
plugins[pluginKey] = plugin;
|
||||
}
|
||||
return plugins;
|
||||
}
|
||||
//# sourceMappingURL=load-plugin.js.map
|
||||
1
node_modules/@commitlint/load/lib/utils/load-plugin.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/load-plugin.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"load-plugin.js","sourceRoot":"","sources":["../../src/utils/load-plugin.ts"],"names":[],"mappings":"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"}
|
||||
13
node_modules/@commitlint/load/lib/utils/plugin-errors.d.ts
generated
vendored
Normal file
13
node_modules/@commitlint/load/lib/utils/plugin-errors.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
export declare class WhitespacePluginError extends Error {
|
||||
__proto__: ErrorConstructor;
|
||||
messageTemplate: string;
|
||||
messageData: any;
|
||||
constructor(pluginName?: string, data?: any);
|
||||
}
|
||||
export declare class MissingPluginError extends Error {
|
||||
__proto__: ErrorConstructor;
|
||||
messageTemplate: string;
|
||||
messageData: any;
|
||||
constructor(pluginName?: string, errorMessage?: string, data?: any);
|
||||
}
|
||||
//# sourceMappingURL=plugin-errors.d.ts.map
|
||||
1
node_modules/@commitlint/load/lib/utils/plugin-errors.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/plugin-errors.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"plugin-errors.d.ts","sourceRoot":"","sources":["../../src/utils/plugin-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAsB,SAAQ,KAAK;IAC/C,SAAS,mBAAS;IAEX,eAAe,EAAE,MAAM,CAAsB;IAC7C,WAAW,EAAE,GAAG,CAAM;gBAEjB,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ;CAO/C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,SAAS,mBAAS;IAEX,eAAe,EAAE,MAAM,CAAoB;IAC3C,WAAW,EAAE,GAAG,CAAC;gBAEZ,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,EAAE,IAAI,GAAE,GAAQ;CAO1E"}
|
||||
21
node_modules/@commitlint/load/lib/utils/plugin-errors.js
generated
vendored
Normal file
21
node_modules/@commitlint/load/lib/utils/plugin-errors.js
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
export class WhitespacePluginError extends Error {
|
||||
__proto__ = Error;
|
||||
messageTemplate = "whitespace-found";
|
||||
messageData = {};
|
||||
constructor(pluginName, data = {}) {
|
||||
super(`Whitespace found in plugin name '${pluginName}'`);
|
||||
this.messageData = data;
|
||||
Object.setPrototypeOf(this, WhitespacePluginError.prototype);
|
||||
}
|
||||
}
|
||||
export class MissingPluginError extends Error {
|
||||
__proto__ = Error;
|
||||
messageTemplate = "plugin-missing";
|
||||
messageData;
|
||||
constructor(pluginName, errorMessage = "", data = {}) {
|
||||
super(`Failed to load plugin ${pluginName}: ${errorMessage}`);
|
||||
this.messageData = data;
|
||||
Object.setPrototypeOf(this, MissingPluginError.prototype);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=plugin-errors.js.map
|
||||
1
node_modules/@commitlint/load/lib/utils/plugin-errors.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/plugin-errors.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"plugin-errors.js","sourceRoot":"","sources":["../../src/utils/plugin-errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC/C,SAAS,GAAG,KAAK,CAAC;IAEX,eAAe,GAAW,kBAAkB,CAAC;IAC7C,WAAW,GAAQ,EAAE,CAAC;IAE7B,YAAY,UAAmB,EAAE,OAAY,EAAE;QAC9C,KAAK,CAAC,oCAAoC,UAAU,GAAG,CAAC,CAAC;QAEzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACD;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC5C,SAAS,GAAG,KAAK,CAAC;IAEX,eAAe,GAAW,gBAAgB,CAAC;IAC3C,WAAW,CAAM;IAExB,YAAY,UAAmB,EAAE,eAAuB,EAAE,EAAE,OAAY,EAAE;QACzE,KAAK,CAAC,yBAAyB,UAAU,KAAK,YAAY,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACD"}
|
||||
20
node_modules/@commitlint/load/lib/utils/plugin-naming.d.ts
generated
vendored
Normal file
20
node_modules/@commitlint/load/lib/utils/plugin-naming.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* Brings package name to correct format based on prefix
|
||||
* @param {string} name The name of the package.
|
||||
* @returns {string} Normalized name of the package
|
||||
* @private
|
||||
*/
|
||||
export declare function normalizePackageName(name: string): string;
|
||||
/**
|
||||
* Removes the prefix from a fullname.
|
||||
* @param {string} fullname The term which may have the prefix.
|
||||
* @returns {string} The term without prefix.
|
||||
*/
|
||||
export declare function getShorthandName(fullname: string): string;
|
||||
/**
|
||||
* Gets the scope (namespace) of a term.
|
||||
* @param {string} term The term which may have the namespace.
|
||||
* @returns {string} The namepace of the term if it has one.
|
||||
*/
|
||||
export declare function getNamespaceFromTerm(term: string): string;
|
||||
//# sourceMappingURL=plugin-naming.d.ts.map
|
||||
1
node_modules/@commitlint/load/lib/utils/plugin-naming.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/plugin-naming.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"plugin-naming.d.ts","sourceRoot":"","sources":["../../src/utils/plugin-naming.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,UA2ChD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,UAiBhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,UAIhD"}
|
||||
80
node_modules/@commitlint/load/lib/utils/plugin-naming.js
generated
vendored
Normal file
80
node_modules/@commitlint/load/lib/utils/plugin-naming.js
generated
vendored
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
import path from "node:path";
|
||||
// largely adapted from eslint's plugin system
|
||||
const NAMESPACE_REGEX = /^@.*\//u;
|
||||
// In eslint this is a parameter - we don't need to support the extra options
|
||||
const prefix = "commitlint-plugin";
|
||||
// Replace Windows with posix style paths
|
||||
function convertPathToPosix(filepath) {
|
||||
const normalizedFilepath = path.normalize(filepath);
|
||||
const posixFilepath = normalizedFilepath.replace(/\\/gu, "/");
|
||||
return posixFilepath;
|
||||
}
|
||||
/**
|
||||
* Brings package name to correct format based on prefix
|
||||
* @param {string} name The name of the package.
|
||||
* @returns {string} Normalized name of the package
|
||||
* @private
|
||||
*/
|
||||
export function normalizePackageName(name) {
|
||||
let normalizedName = name;
|
||||
/**
|
||||
* On Windows, name can come in with Windows slashes instead of Unix slashes.
|
||||
* Normalize to Unix first to avoid errors later on.
|
||||
* https://github.com/eslint/eslint/issues/5644
|
||||
*/
|
||||
if (normalizedName.indexOf("\\") > -1) {
|
||||
normalizedName = convertPathToPosix(normalizedName);
|
||||
}
|
||||
if (normalizedName.charAt(0) === "@") {
|
||||
/**
|
||||
* it's a scoped package
|
||||
* package name is the prefix, or just a username
|
||||
*/
|
||||
const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"), scopedPackageNameRegex = new RegExp(`^${prefix}(?:-|$)`, "u");
|
||||
if (scopedPackageShortcutRegex.test(normalizedName)) {
|
||||
normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`);
|
||||
}
|
||||
else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) {
|
||||
/**
|
||||
* for scoped packages, insert the prefix after the first / unless
|
||||
* the path is already @scope/eslint or @scope/eslint-xxx-yyy
|
||||
*/
|
||||
normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`);
|
||||
}
|
||||
}
|
||||
else if (normalizedName.indexOf(`${prefix}-`) !== 0) {
|
||||
normalizedName = `${prefix}-${normalizedName}`;
|
||||
}
|
||||
return normalizedName;
|
||||
}
|
||||
/**
|
||||
* Removes the prefix from a fullname.
|
||||
* @param {string} fullname The term which may have the prefix.
|
||||
* @returns {string} The term without prefix.
|
||||
*/
|
||||
export function getShorthandName(fullname) {
|
||||
if (fullname[0] === "@") {
|
||||
let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname);
|
||||
if (matchResult) {
|
||||
return matchResult[1];
|
||||
}
|
||||
matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname);
|
||||
if (matchResult) {
|
||||
return `${matchResult[1]}/${matchResult[2]}`;
|
||||
}
|
||||
}
|
||||
else if (fullname.startsWith(`${prefix}-`)) {
|
||||
return fullname.slice(prefix.length + 1);
|
||||
}
|
||||
return fullname;
|
||||
}
|
||||
/**
|
||||
* Gets the scope (namespace) of a term.
|
||||
* @param {string} term The term which may have the namespace.
|
||||
* @returns {string} The namepace of the term if it has one.
|
||||
*/
|
||||
export function getNamespaceFromTerm(term) {
|
||||
const match = NAMESPACE_REGEX.exec(term);
|
||||
return match ? match[0] : "";
|
||||
}
|
||||
//# sourceMappingURL=plugin-naming.js.map
|
||||
1
node_modules/@commitlint/load/lib/utils/plugin-naming.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/load/lib/utils/plugin-naming.js.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"plugin-naming.js","sourceRoot":"","sources":["../../src/utils/plugin-naming.ts"],"names":[],"mappings":"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"}
|
||||
21
node_modules/@commitlint/load/license.md
generated
vendored
Normal file
21
node_modules/@commitlint/load/license.md
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 - present Mario Nebl
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
57
node_modules/@commitlint/load/package.json
generated
vendored
Normal file
57
node_modules/@commitlint/load/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"name": "@commitlint/load",
|
||||
"type": "module",
|
||||
"version": "20.4.0",
|
||||
"description": "Load shared commitlint configuration",
|
||||
"main": "lib/load.js",
|
||||
"types": "lib/load.d.ts",
|
||||
"files": [
|
||||
"lib/"
|
||||
],
|
||||
"scripts": {
|
||||
"deps": "dep-check",
|
||||
"pkg": "pkg-check --skip-import"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v18"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/conventional-changelog/commitlint.git",
|
||||
"directory": "@commitlint/load"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/conventional-changelog/commitlint/issues"
|
||||
},
|
||||
"homepage": "https://commitlint.js.org/",
|
||||
"keywords": [
|
||||
"conventional-changelog",
|
||||
"commitlint",
|
||||
"library",
|
||||
"core"
|
||||
],
|
||||
"author": {
|
||||
"name": "Mario Nebl",
|
||||
"email": "hello@herebecode.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@commitlint/test": "^20.4.0",
|
||||
"@types/lodash.mergewith": "^4.6.8",
|
||||
"@types/node": "^18.19.17",
|
||||
"conventional-changelog-atom": "^5.0.0",
|
||||
"typescript": "^5.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@commitlint/config-validator": "^20.4.0",
|
||||
"@commitlint/execute-rule": "^20.0.0",
|
||||
"@commitlint/resolve-extends": "^20.4.0",
|
||||
"@commitlint/types": "^20.4.0",
|
||||
"cosmiconfig": "^9.0.0",
|
||||
"cosmiconfig-typescript-loader": "^6.1.0",
|
||||
"is-plain-obj": "^4.1.0",
|
||||
"lodash.mergewith": "^4.6.2",
|
||||
"picocolors": "^1.1.1"
|
||||
},
|
||||
"gitHead": "c68de5e24b010e38eac171f35ba18d31bb1fd3dd"
|
||||
}
|
||||
29
node_modules/@commitlint/resolve-extends/lib/index.d.ts
generated
vendored
Normal file
29
node_modules/@commitlint/resolve-extends/lib/index.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
import type { ParserPreset, UserConfig } from "@commitlint/types";
|
||||
/**
|
||||
* @see moduleResolve
|
||||
*/
|
||||
export declare const resolveFrom: (lookup: string, parent?: string) => string;
|
||||
/**
|
||||
*
|
||||
* @param resolvedParserPreset path resolved by {@link resolveFrom}
|
||||
* @returns path and parserOpts function retrieved from `resolvedParserPreset`
|
||||
*/
|
||||
export declare const loadParserPreset: (resolvedParserPreset: string) => Promise<Pick<ParserPreset, "path" | "parserOpts">>;
|
||||
export interface ResolveExtendsContext {
|
||||
cwd?: string;
|
||||
parserPreset?: string | ParserPreset;
|
||||
prefix?: string;
|
||||
resolve?(id: string, ctx?: {
|
||||
prefix?: string;
|
||||
cwd?: string;
|
||||
}): string;
|
||||
resolveGlobal?: (id: string) => string;
|
||||
dynamicImport?<T>(id: string): T | Promise<T>;
|
||||
}
|
||||
export default function resolveExtends(config?: UserConfig, context?: ResolveExtendsContext): Promise<UserConfig>;
|
||||
export declare function resolveFromSilent(specifier: string, parent: string): string | void;
|
||||
/**
|
||||
* @see https://github.com/sindresorhus/resolve-global/blob/682a6bb0bd8192b74a6294219bb4c536b3708b65/index.js#L7
|
||||
*/
|
||||
export declare function resolveGlobalSilent(specifier: string): string | void;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
1
node_modules/@commitlint/resolve-extends/lib/index.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/resolve-extends/lib/index.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0BlE;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,MAuC7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC5B,sBAAsB,MAAM,KAC1B,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAC,CASnD,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IACtE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9C;AAED,wBAA8B,cAAc,CAC3C,MAAM,GAAE,UAAe,EACvB,OAAO,GAAE,qBAA0B,GACjC,OAAO,CAAC,UAAU,CAAC,CAiBrB;AAiGD,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAIf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASpE"}
|
||||
176
node_modules/@commitlint/resolve-extends/lib/index.js
generated
vendored
Normal file
176
node_modules/@commitlint/resolve-extends/lib/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
import { createRequire } from "node:module";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { pathToFileURL, fileURLToPath } from "node:url";
|
||||
import globalDirectory from "global-directory";
|
||||
import { moduleResolve } from "import-meta-resolve";
|
||||
import mergeWith from "lodash.mergewith";
|
||||
import resolveFrom_ from "resolve-from";
|
||||
import { validateConfig } from "@commitlint/config-validator";
|
||||
const dynamicImport = async (id) => {
|
||||
if (id.endsWith(".json")) {
|
||||
const require = createRequire(import.meta.url);
|
||||
return require(id);
|
||||
}
|
||||
const imported = await import(path.isAbsolute(id) ? pathToFileURL(id).toString() : id);
|
||||
return ("default" in imported && imported.default) || imported;
|
||||
};
|
||||
const pathSuffixes = [
|
||||
"",
|
||||
".js",
|
||||
".json",
|
||||
`${path.sep}index.js`,
|
||||
`${path.sep}index.json`,
|
||||
];
|
||||
const specifierSuffixes = ["", ".js", ".json", "/index.js", "/index.json"];
|
||||
const conditions = new Set(["import", "node"]);
|
||||
/**
|
||||
* @see moduleResolve
|
||||
*/
|
||||
export const resolveFrom = (lookup, parent) => {
|
||||
if (path.isAbsolute(lookup)) {
|
||||
for (const suffix of pathSuffixes) {
|
||||
const filename = lookup + suffix;
|
||||
if (fs.existsSync(filename)) {
|
||||
return filename;
|
||||
}
|
||||
}
|
||||
}
|
||||
let resolveError;
|
||||
const base = pathToFileURL(parent
|
||||
? fs.statSync(parent).isDirectory()
|
||||
? path.join(parent, "noop.js")
|
||||
: parent
|
||||
: import.meta.url);
|
||||
for (const suffix of specifierSuffixes) {
|
||||
try {
|
||||
return fileURLToPath(moduleResolve(lookup + suffix, base, conditions));
|
||||
}
|
||||
catch (err) {
|
||||
if (!resolveError) {
|
||||
resolveError = err;
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
/**
|
||||
* Yarn P'n'P does not support pure ESM well, this is only a workaround for
|
||||
* @see https://github.com/conventional-changelog/commitlint/issues/3936
|
||||
*/
|
||||
return resolveFrom_(path.dirname(fileURLToPath(base)), lookup);
|
||||
}
|
||||
catch {
|
||||
throw resolveError;
|
||||
}
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @param resolvedParserPreset path resolved by {@link resolveFrom}
|
||||
* @returns path and parserOpts function retrieved from `resolvedParserPreset`
|
||||
*/
|
||||
export const loadParserPreset = async (resolvedParserPreset) => {
|
||||
const finalParserOpts = await dynamicImport(resolvedParserPreset);
|
||||
const relativeParserPath = path.relative(process.cwd(), resolvedParserPreset);
|
||||
return {
|
||||
path: `./${relativeParserPath}`.split(path.sep).join("/"),
|
||||
parserOpts: finalParserOpts,
|
||||
};
|
||||
};
|
||||
export default async function resolveExtends(config = {}, context = {}) {
|
||||
const { extends: e } = config;
|
||||
const extended = await loadExtends(config, context);
|
||||
extended.push(config);
|
||||
return extended.reduce((r, { extends: _, ...c }) => mergeWith(r, c, (objValue, srcValue, key) => {
|
||||
if (key === "plugins") {
|
||||
if (Array.isArray(objValue)) {
|
||||
return objValue.concat(srcValue);
|
||||
}
|
||||
}
|
||||
else if (Array.isArray(objValue)) {
|
||||
return srcValue;
|
||||
}
|
||||
}), e ? { extends: e } : {});
|
||||
}
|
||||
async function loadExtends(config = {}, context = {}) {
|
||||
const { extends: e } = config;
|
||||
const ext = e ? (Array.isArray(e) ? e : [e]) : [];
|
||||
return await ext.reduce(async (configs, raw) => {
|
||||
const resolved = resolveConfig(raw, context);
|
||||
const c = await (context.dynamicImport || dynamicImport)(resolved);
|
||||
const cwd = path.dirname(resolved);
|
||||
const ctx = { ...context, cwd };
|
||||
// Resolve parser preset if none was present before
|
||||
if (!context.parserPreset &&
|
||||
typeof c === "object" &&
|
||||
typeof c.parserPreset === "string") {
|
||||
const resolvedParserPreset = resolveFrom(c.parserPreset, cwd);
|
||||
const parserPreset = {
|
||||
name: c.parserPreset,
|
||||
...(await loadParserPreset(resolvedParserPreset)),
|
||||
};
|
||||
ctx.parserPreset = parserPreset;
|
||||
config.parserPreset = parserPreset;
|
||||
}
|
||||
validateConfig(resolved, config);
|
||||
return [...(await configs), ...(await loadExtends(c, ctx)), c];
|
||||
}, Promise.resolve([]));
|
||||
}
|
||||
function getId(raw = "", prefix = "") {
|
||||
const first = raw.charAt(0);
|
||||
const scoped = first === "@";
|
||||
const relative = first === ".";
|
||||
const absolute = path.isAbsolute(raw);
|
||||
if (scoped) {
|
||||
return raw.includes("/") ? raw : [raw, prefix].filter(String).join("/");
|
||||
}
|
||||
return relative || absolute ? raw : [prefix, raw].filter(String).join("-");
|
||||
}
|
||||
function resolveConfig(raw, context = {}) {
|
||||
const resolve = context.resolve || resolveId;
|
||||
const id = getId(raw, context.prefix);
|
||||
let resolved;
|
||||
try {
|
||||
resolved = resolve(id, context);
|
||||
}
|
||||
catch (err) {
|
||||
const legacy = getId(raw, "conventional-changelog-lint-config");
|
||||
resolved = resolve(legacy, context);
|
||||
console.warn(`Resolving ${raw} to legacy config ${legacy}. To silence this warning raise an issue at 'npm repo ${legacy}' to rename to ${id}.`);
|
||||
}
|
||||
return resolved;
|
||||
}
|
||||
function resolveId(specifier, context = {}) {
|
||||
const cwd = context.cwd || process.cwd();
|
||||
const localPath = resolveFromSilent(specifier, cwd);
|
||||
if (typeof localPath === "string") {
|
||||
return localPath;
|
||||
}
|
||||
const resolveGlobal = context.resolveGlobal || resolveGlobalSilent;
|
||||
const globalPath = resolveGlobal(specifier);
|
||||
if (typeof globalPath === "string") {
|
||||
return globalPath;
|
||||
}
|
||||
const err = new Error(`Cannot find module "${specifier}" from "${cwd}"`);
|
||||
throw Object.assign(err, { code: "MODULE_NOT_FOUND" });
|
||||
}
|
||||
export function resolveFromSilent(specifier, parent) {
|
||||
try {
|
||||
return resolveFrom(specifier, parent);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
/**
|
||||
* @see https://github.com/sindresorhus/resolve-global/blob/682a6bb0bd8192b74a6294219bb4c536b3708b65/index.js#L7
|
||||
*/
|
||||
export function resolveGlobalSilent(specifier) {
|
||||
for (const globalPackages of [
|
||||
globalDirectory.npm.packages,
|
||||
globalDirectory.yarn.packages,
|
||||
]) {
|
||||
try {
|
||||
return resolveFrom(specifier, globalPackages);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@commitlint/resolve-extends/lib/index.js.map
generated
vendored
Normal file
1
node_modules/@commitlint/resolve-extends/lib/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
21
node_modules/@commitlint/resolve-extends/license.md
generated
vendored
Normal file
21
node_modules/@commitlint/resolve-extends/license.md
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 - present Mario Nebl
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
51
node_modules/@commitlint/resolve-extends/package.json
generated
vendored
Normal file
51
node_modules/@commitlint/resolve-extends/package.json
generated
vendored
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"name": "@commitlint/resolve-extends",
|
||||
"type": "module",
|
||||
"version": "20.4.0",
|
||||
"description": "Lint your commit messages",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"files": [
|
||||
"lib/"
|
||||
],
|
||||
"scripts": {
|
||||
"deps": "dep-check",
|
||||
"pkg": "pkg-check"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v18"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/conventional-changelog/commitlint.git",
|
||||
"directory": "@commitlint/resolve-extends"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/conventional-changelog/commitlint/issues"
|
||||
},
|
||||
"homepage": "https://commitlint.js.org/",
|
||||
"keywords": [
|
||||
"conventional-changelog",
|
||||
"commitlint",
|
||||
"library",
|
||||
"core"
|
||||
],
|
||||
"author": {
|
||||
"name": "Mario Nebl",
|
||||
"email": "hello@herebecode.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@commitlint/utils": "^20.0.0",
|
||||
"@types/lodash.mergewith": "^4.6.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"@commitlint/config-validator": "^20.4.0",
|
||||
"@commitlint/types": "^20.4.0",
|
||||
"global-directory": "^4.0.1",
|
||||
"import-meta-resolve": "^4.0.0",
|
||||
"lodash.mergewith": "^4.6.2",
|
||||
"resolve-from": "^5.0.0"
|
||||
},
|
||||
"gitHead": "c68de5e24b010e38eac171f35ba18d31bb1fd3dd"
|
||||
}
|
||||
2
node_modules/@commitlint/types/lib/ensure.d.ts
generated
vendored
Normal file
2
node_modules/@commitlint/types/lib/ensure.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
export type TargetCaseType = "camel-case" | "kebab-case" | "snake-case" | "pascal-case" | "start-case" | "upper-case" | "uppercase" | "sentence-case" | "sentencecase" | "lower-case" | "lowercase" | "lowerCase";
|
||||
//# sourceMappingURL=ensure.d.ts.map
|
||||
1
node_modules/@commitlint/types/lib/ensure.d.ts.map
generated
vendored
Normal file
1
node_modules/@commitlint/types/lib/ensure.d.ts.map
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACvB,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,eAAe,GACf,cAAc,GACd,YAAY,GACZ,WAAW,GACX,WAAW,CAAC"}
|
||||
2
node_modules/@commitlint/types/lib/ensure.js
generated
vendored
Normal file
2
node_modules/@commitlint/types/lib/ensure.js
generated
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
export {};
|
||||
//# sourceMappingURL=ensure.js.map
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user