@agility-luhn/cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/bin/luhn.js +2 -0
- package/dist/commands/compile.d.ts +3 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +68 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +205 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/package.json +64 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
## 1.0.0 (2026-07-07)
|
package/bin/luhn.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDpC,wBAAgB,cAAc,IAAI,OAAO,CAyBxC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.compileCommand = compileCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const compiler_1 = require("@agility-luhn/compiler");
|
|
9
|
+
const promises_1 = require("fs/promises");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
function hasErrors(result) {
|
|
12
|
+
return result.diagnostics.some(d => d.severity === 'error');
|
|
13
|
+
}
|
|
14
|
+
function printDiagnostics(result) {
|
|
15
|
+
for (const diagnostic of result.diagnostics) {
|
|
16
|
+
const position = `${diagnostic.span.filePath}:${diagnostic.span.startLine}:${diagnostic.span.startColumn}`;
|
|
17
|
+
const prefix = diagnostic.severity === 'error' ? 'ERROR' : 'WARN';
|
|
18
|
+
console.log(`${prefix} ${diagnostic.code} ${position} ${diagnostic.message}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function sanitizeArtifactPath(artifactPath) {
|
|
22
|
+
const normalized = path_1.default.normalize(artifactPath).replace(/^([A-Za-z]:)?[\\/]+/, '');
|
|
23
|
+
if (normalized.startsWith('..')) {
|
|
24
|
+
throw new Error(`Caminho de artefato invalido: ${artifactPath}`);
|
|
25
|
+
}
|
|
26
|
+
return normalized;
|
|
27
|
+
}
|
|
28
|
+
async function writeArtifacts(outDir, result) {
|
|
29
|
+
for (const artifact of result.artifacts) {
|
|
30
|
+
const safeRelativePath = sanitizeArtifactPath(artifact.path);
|
|
31
|
+
const targetPath = path_1.default.join(outDir, safeRelativePath);
|
|
32
|
+
await (0, promises_1.mkdir)(path_1.default.dirname(targetPath), { recursive: true });
|
|
33
|
+
await (0, promises_1.writeFile)(targetPath, artifact.content, 'utf8');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function buildCompileOptions(options) {
|
|
37
|
+
return {
|
|
38
|
+
typescript: options.noTypescript !== true,
|
|
39
|
+
openapi: options.noOpenapi !== true,
|
|
40
|
+
databaseSchema: options.noDatabaseSchema !== true,
|
|
41
|
+
metadata: options.noMetadata !== true,
|
|
42
|
+
canonicalMapping: options.noCanonicalMapping !== true
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function compileCommand() {
|
|
46
|
+
return new commander_1.Command('compile')
|
|
47
|
+
.description('Compila uma aplicacao LUHN e grava os artefatos em disco')
|
|
48
|
+
.argument('[sourceDir]', 'Diretorio que contem os arquivos .luhn', './src/luhn')
|
|
49
|
+
.option('-o, --out <dir>', 'Diretorio de saida para artefatos', './src/luhn-generated')
|
|
50
|
+
.option('--no-typescript', 'Nao gera artefatos TypeScript')
|
|
51
|
+
.option('--no-openapi', 'Nao gera OpenAPI')
|
|
52
|
+
.option('--no-database-schema', 'Nao gera schema de banco')
|
|
53
|
+
.option('--no-metadata', 'Nao gera metadata')
|
|
54
|
+
.option('--no-canonical-mapping', 'Nao gera canonical mapping')
|
|
55
|
+
.action(async (sourceDir, options) => {
|
|
56
|
+
const sourcePath = path_1.default.resolve(process.cwd(), sourceDir);
|
|
57
|
+
const outPath = path_1.default.resolve(process.cwd(), options.out);
|
|
58
|
+
const compileOptions = buildCompileOptions(options);
|
|
59
|
+
const result = await (0, compiler_1.compile)(sourcePath, compileOptions);
|
|
60
|
+
printDiagnostics(result);
|
|
61
|
+
if (hasErrors(result)) {
|
|
62
|
+
throw new Error('Compilacao abortada por diagnosticos de erro.');
|
|
63
|
+
}
|
|
64
|
+
await writeArtifacts(outPath, result);
|
|
65
|
+
console.log(`Compilacao concluida. ${result.artifacts.length} artefatos gravados em ${outPath}.`);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuIpC,wBAAgB,WAAW,IAAI,OAAO,CAkGrC"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.initCommand = initCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const promises_1 = require("fs/promises");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const fs_1 = require("fs");
|
|
11
|
+
const child_process_1 = require("child_process");
|
|
12
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
13
|
+
async function exists(targetPath) {
|
|
14
|
+
try {
|
|
15
|
+
await (0, promises_1.access)(targetPath, fs_1.constants.F_OK);
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async function isDirectoryEmpty(targetPath) {
|
|
23
|
+
try {
|
|
24
|
+
const entries = await import('fs/promises').then(m => m.readdir(targetPath));
|
|
25
|
+
return entries.length === 0;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function runCommand(command, args, cwd) {
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
const child = (0, child_process_1.spawn)(command, args, {
|
|
34
|
+
cwd,
|
|
35
|
+
stdio: 'inherit',
|
|
36
|
+
shell: process.platform === 'win32'
|
|
37
|
+
});
|
|
38
|
+
child.on('error', reject);
|
|
39
|
+
child.on('close', code => {
|
|
40
|
+
if (code === 0) {
|
|
41
|
+
resolve();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
reject(new Error(`Falha ao executar: ${command} ${args.join(' ')} (codigo ${String(code)})`));
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async function askInitQuestions(defaultTargetDir, forceDefault) {
|
|
49
|
+
const answers = await (0, prompts_1.default)([
|
|
50
|
+
{
|
|
51
|
+
type: 'text',
|
|
52
|
+
name: 'projectName',
|
|
53
|
+
message: 'Nome do projeto',
|
|
54
|
+
initial: path_1.default.basename(path_1.default.resolve(process.cwd(), defaultTargetDir)) || 'meu-projeto-luhn',
|
|
55
|
+
validate: (value) => value.trim().length > 0 || 'Informe um nome de projeto valido.'
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: 'text',
|
|
59
|
+
name: 'targetDir',
|
|
60
|
+
message: 'Diretorio de destino',
|
|
61
|
+
initial: defaultTargetDir,
|
|
62
|
+
validate: (value) => value.trim().length > 0 || 'Informe um diretorio de destino valido.'
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: 'select',
|
|
66
|
+
name: 'packageManager',
|
|
67
|
+
message: 'Gerenciador de pacotes',
|
|
68
|
+
choices: [
|
|
69
|
+
{ title: 'pnpm', value: 'pnpm' },
|
|
70
|
+
{ title: 'npm', value: 'npm' },
|
|
71
|
+
{ title: 'yarn', value: 'yarn' }
|
|
72
|
+
],
|
|
73
|
+
initial: 0
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'multiselect',
|
|
77
|
+
name: 'features',
|
|
78
|
+
message: 'Marque as opcoes para o bootstrap',
|
|
79
|
+
choices: [
|
|
80
|
+
{ title: 'Instalar @agility-luhn/compiler', value: 'installCompiler', selected: true },
|
|
81
|
+
{ title: 'Instalar @agility-luhn/cli localmente (devDependency)', value: 'installCli', selected: true },
|
|
82
|
+
{ title: 'Criar README.md', value: 'createReadme', selected: true },
|
|
83
|
+
{ title: 'Inicializar git', value: 'initGit', selected: true },
|
|
84
|
+
{ title: 'Instalar dependencias agora', value: 'installDeps', selected: true }
|
|
85
|
+
],
|
|
86
|
+
instructions: false,
|
|
87
|
+
min: 0
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'toggle',
|
|
91
|
+
name: 'force',
|
|
92
|
+
message: 'Permitir criar em diretorio nao vazio?',
|
|
93
|
+
initial: forceDefault,
|
|
94
|
+
active: 'sim',
|
|
95
|
+
inactive: 'nao'
|
|
96
|
+
}
|
|
97
|
+
], {
|
|
98
|
+
onCancel: () => {
|
|
99
|
+
throw new Error('Bootstrap cancelado pelo usuario.');
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return {
|
|
103
|
+
projectName: String(answers.projectName ?? '').trim(),
|
|
104
|
+
targetDir: String(answers.targetDir ?? '').trim(),
|
|
105
|
+
packageManager: (answers.packageManager ?? 'pnpm'),
|
|
106
|
+
features: Array.isArray(answers.features) ? answers.features.map(String) : [],
|
|
107
|
+
force: Boolean(answers.force)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function installCommandFor(pm) {
|
|
111
|
+
if (pm === 'npm') {
|
|
112
|
+
return { cmd: 'npm', args: ['install'] };
|
|
113
|
+
}
|
|
114
|
+
if (pm === 'yarn') {
|
|
115
|
+
return { cmd: 'yarn', args: ['install'] };
|
|
116
|
+
}
|
|
117
|
+
return { cmd: 'pnpm', args: ['install'] };
|
|
118
|
+
}
|
|
119
|
+
function initCommand() {
|
|
120
|
+
return new commander_1.Command('init')
|
|
121
|
+
.alias('create')
|
|
122
|
+
.description('Bootstrap interativo de projeto LUHN (diretorio, template, deps e scripts)')
|
|
123
|
+
.argument('[targetDir]', 'Diretorio de destino', '.')
|
|
124
|
+
.option('-f, --force', 'Permite criar em diretorio que ja possui arquivo app.luhn')
|
|
125
|
+
.action(async (targetDir, options) => {
|
|
126
|
+
const answers = await askInitQuestions(targetDir, options.force === true);
|
|
127
|
+
const root = path_1.default.resolve(process.cwd(), answers.targetDir);
|
|
128
|
+
const luhnDir = path_1.default.join(root, 'src', 'luhn');
|
|
129
|
+
const appFile = path_1.default.join(luhnDir, 'app.luhn');
|
|
130
|
+
const readmeFile = path_1.default.join(root, 'README.md');
|
|
131
|
+
const packageJsonFile = path_1.default.join(root, 'package.json');
|
|
132
|
+
const generatedDir = path_1.default.join(root, 'src', 'luhn-generated');
|
|
133
|
+
const createReadme = answers.features.includes('createReadme');
|
|
134
|
+
const installDeps = answers.features.includes('installDeps');
|
|
135
|
+
const installCompiler = answers.features.includes('installCompiler');
|
|
136
|
+
const installCli = answers.features.includes('installCli');
|
|
137
|
+
const initGit = answers.features.includes('initGit');
|
|
138
|
+
const existsRoot = await exists(root);
|
|
139
|
+
const emptyRoot = await isDirectoryEmpty(root);
|
|
140
|
+
if (existsRoot && !emptyRoot && !answers.force) {
|
|
141
|
+
throw new Error(`Diretorio ${root} nao esta vazio. Marque a opcao de forcar para continuar.`);
|
|
142
|
+
}
|
|
143
|
+
if (!answers.force && (await exists(appFile))) {
|
|
144
|
+
throw new Error(`Ja existe um arquivo em ${appFile}. Use --force para sobrescrever.`);
|
|
145
|
+
}
|
|
146
|
+
await (0, promises_1.mkdir)(luhnDir, { recursive: true });
|
|
147
|
+
await (0, promises_1.mkdir)(generatedDir, { recursive: true });
|
|
148
|
+
const appTemplate = [
|
|
149
|
+
`application ${answers.projectName}`,
|
|
150
|
+
' modules [core]',
|
|
151
|
+
'',
|
|
152
|
+
'module core',
|
|
153
|
+
'',
|
|
154
|
+
'business pessoa "Pessoas"',
|
|
155
|
+
' nome: string 120',
|
|
156
|
+
' ativo: boolean = true'
|
|
157
|
+
].join('\n');
|
|
158
|
+
const readmeTemplate = [
|
|
159
|
+
`# ${answers.projectName}`,
|
|
160
|
+
'',
|
|
161
|
+
'## Comandos',
|
|
162
|
+
'',
|
|
163
|
+
'- `npm run luhn:compile`',
|
|
164
|
+
'',
|
|
165
|
+
'## Estrutura',
|
|
166
|
+
'',
|
|
167
|
+
'- `src/luhn`: arquivos da DSL',
|
|
168
|
+
'- `src/luhn-generated`: artefatos gerados'
|
|
169
|
+
].join('\n');
|
|
170
|
+
const dependencies = {};
|
|
171
|
+
const devDependencies = {};
|
|
172
|
+
if (installCompiler) {
|
|
173
|
+
dependencies['@agility-luhn/compiler'] = '^1.1.0';
|
|
174
|
+
}
|
|
175
|
+
if (installCli) {
|
|
176
|
+
devDependencies['@agility-luhn/cli'] = '^0.1.0';
|
|
177
|
+
}
|
|
178
|
+
const packageJson = {
|
|
179
|
+
name: answers.projectName.toLowerCase().replace(/[^a-z0-9-_]/g, '-'),
|
|
180
|
+
version: '0.1.0',
|
|
181
|
+
private: true,
|
|
182
|
+
scripts: {
|
|
183
|
+
'luhn:compile': 'luhn compile ./src/luhn --out ./src/luhn-generated'
|
|
184
|
+
},
|
|
185
|
+
...(Object.keys(dependencies).length > 0 ? { dependencies } : {}),
|
|
186
|
+
...(Object.keys(devDependencies).length > 0 ? { devDependencies } : {})
|
|
187
|
+
};
|
|
188
|
+
await (0, promises_1.writeFile)(appFile, `${appTemplate}\n`, 'utf8');
|
|
189
|
+
await (0, promises_1.writeFile)(packageJsonFile, `${JSON.stringify(packageJson, null, 2)}\n`, 'utf8');
|
|
190
|
+
if (createReadme && !(await exists(readmeFile))) {
|
|
191
|
+
await (0, promises_1.writeFile)(readmeFile, `${readmeTemplate}\n`, 'utf8');
|
|
192
|
+
}
|
|
193
|
+
if (initGit) {
|
|
194
|
+
await runCommand('git', ['init'], root);
|
|
195
|
+
}
|
|
196
|
+
if (installDeps) {
|
|
197
|
+
const installer = installCommandFor(answers.packageManager);
|
|
198
|
+
await runCommand(installer.cmd, installer.args, root);
|
|
199
|
+
}
|
|
200
|
+
console.log(`Projeto inicializado em ${root}`);
|
|
201
|
+
console.log(`Arquivo de dominio criado em ${appFile}`);
|
|
202
|
+
console.log('Script de compilacao pronto: npm run luhn:compile');
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const commander_1 = require("commander");
|
|
4
|
+
const init_1 = require("./commands/init");
|
|
5
|
+
const compile_1 = require("./commands/compile");
|
|
6
|
+
commander_1.program
|
|
7
|
+
.name('luhn')
|
|
8
|
+
.description('CLI oficial para inicializar e compilar projetos LUHN')
|
|
9
|
+
.version('0.1.0');
|
|
10
|
+
commander_1.program.addCommand((0, init_1.initCommand)());
|
|
11
|
+
commander_1.program.addCommand((0, compile_1.compileCommand)());
|
|
12
|
+
commander_1.program.parseAsync(process.argv).catch((error) => {
|
|
13
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
14
|
+
console.error(`Erro: ${message}`);
|
|
15
|
+
process.exitCode = 1;
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,0CAA8C;AAC9C,gDAAoD;AAEpD,mBAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,mBAAO,CAAC,UAAU,CAAC,IAAA,kBAAW,GAAE,CAAC,CAAC;AAClC,mBAAO,CAAC,UAAU,CAAC,IAAA,wBAAc,GAAE,CAAC,CAAC;AAErC,mBAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@agility-luhn/cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "CLI oficial para inicializacao e compilacao de projetos LUHN.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "commonjs",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"bin": {
|
|
11
|
+
"luhn": "bin/luhn.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"bin",
|
|
15
|
+
"dist",
|
|
16
|
+
"CHANGELOG.md"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/flaviorafaelo-agility/luhn-workspace.git"
|
|
24
|
+
},
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/flaviorafaelo-agility/luhn-workspace/issues"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://github.com/flaviorafaelo-agility/luhn-workspace#readme",
|
|
29
|
+
"keywords": [
|
|
30
|
+
"luhn",
|
|
31
|
+
"dsl",
|
|
32
|
+
"compiler",
|
|
33
|
+
"cli"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
37
|
+
"build": "pnpm run clean && tsc -p tsconfig.json",
|
|
38
|
+
"prepack": "pnpm run build",
|
|
39
|
+
"release:dry-run": "semantic-release --config ./release.config.cjs --dry-run",
|
|
40
|
+
"release": "semantic-release --config ./release.config.cjs"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@agility-luhn/compiler": "^1.1.0",
|
|
44
|
+
"commander": "^12.1.0",
|
|
45
|
+
"prompts": "^2.4.2"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
49
|
+
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
50
|
+
"@semantic-release/git": "^10.0.1",
|
|
51
|
+
"@semantic-release/github": "^11.0.6",
|
|
52
|
+
"@semantic-release/npm": "^12.0.2",
|
|
53
|
+
"@semantic-release/release-notes-generator": "^14.1.1",
|
|
54
|
+
"@types/node": "^25.9.4",
|
|
55
|
+
"@types/prompts": "^2.4.9",
|
|
56
|
+
"conventional-changelog-conventionalcommits": "10.2.1",
|
|
57
|
+
"semantic-release": "^24.2.9",
|
|
58
|
+
"typescript": "^5.9.3"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=22"
|
|
62
|
+
},
|
|
63
|
+
"packageManager": "pnpm@10.20.0+sha512.cf9998222162dd85864d0a8102e7892e7ba4ceadebbf5a31f9c2fce48dfce317a9c53b9f6464d1ef9042cba2e02ae02a9f7c143a2b438cd93c91840f0192b9dd"
|
|
64
|
+
}
|