@nestjs/cli 9.3.0 → 9.4.1
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/.circleci/config.yml +2 -2
- package/README.md +1 -3
- package/actions/generate.action.js +7 -2
- package/actions/start.action.d.ts +1 -1
- package/actions/start.action.js +4 -8
- package/commands/generate.command.js +5 -0
- package/lib/compiler/helpers/get-value-or-default.d.ts +1 -1
- package/lib/compiler/helpers/manual-restart.d.ts +2 -0
- package/lib/compiler/helpers/manual-restart.js +18 -0
- package/lib/compiler/watch-compiler.js +10 -2
- package/lib/configuration/configuration.d.ts +3 -0
- package/lib/configuration/defaults.js +1 -0
- package/lib/utils/project-utils.d.ts +1 -0
- package/lib/utils/project-utils.js +13 -1
- package/package.json +20 -20
package/.circleci/config.yml
CHANGED
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
build:
|
|
22
22
|
working_directory: ~/nest
|
|
23
23
|
docker:
|
|
24
|
-
- image: cimg/node:19.
|
|
24
|
+
- image: cimg/node:19.9
|
|
25
25
|
steps:
|
|
26
26
|
- checkout
|
|
27
27
|
- run:
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
unit_tests:
|
|
44
44
|
working_directory: ~/nest
|
|
45
45
|
docker:
|
|
46
|
-
- image: cimg/node:19.
|
|
46
|
+
- image: cimg/node:19.9
|
|
47
47
|
steps:
|
|
48
48
|
- checkout
|
|
49
49
|
- *restore-cache
|
package/README.md
CHANGED
|
@@ -7,8 +7,6 @@
|
|
|
7
7
|
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/v/@nestjs/cli.svg" alt="NPM Version" /></a>
|
|
8
8
|
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/l/@nestjs/cli.svg" alt="Package License" /></a>
|
|
9
9
|
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/dm/@nestjs/cli.svg" alt="NPM Downloads" /></a>
|
|
10
|
-
<a href="https://travis-ci.org/nestjs/nest"><img src="https://api.travis-ci.org/nestjs/nest.svg?branch=master" alt="Travis" /></a>
|
|
11
|
-
<a href="https://travis-ci.org/nestjs/nest"><img src="https://img.shields.io/travis/nestjs/nest/master.svg?label=linux" alt="Linux" /></a>
|
|
12
10
|
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
|
|
13
11
|
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
|
14
12
|
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
|
@@ -42,4 +40,4 @@ Learn more in the [official documentation](https://docs.nestjs.com/cli/overview)
|
|
|
42
40
|
|
|
43
41
|
## License
|
|
44
42
|
|
|
45
|
-
Nest is [MIT licensed](LICENSE).
|
|
43
|
+
Nest is [MIT licensed](LICENSE).
|
|
@@ -34,6 +34,7 @@ const generateFiles = (inputs) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
34
34
|
.value;
|
|
35
35
|
const spec = inputs.find((option) => option.name === 'spec');
|
|
36
36
|
const flat = inputs.find((option) => option.name === 'flat');
|
|
37
|
+
const specFileSuffix = inputs.find((option) => option.name === 'specFileSuffix');
|
|
37
38
|
const collection = schematics_1.CollectionFactory.create(collectionOption || configuration.collection || schematics_1.Collection.NESTJS);
|
|
38
39
|
const schematicOptions = mapSchematicOptions(inputs);
|
|
39
40
|
schematicOptions.push(new schematics_1.SchematicOption('language', configuration.language));
|
|
@@ -42,10 +43,12 @@ const generateFiles = (inputs) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
42
43
|
? (0, get_value_or_default_1.getValueOrDefault)(configuration, 'sourceRoot', appName)
|
|
43
44
|
: configuration.sourceRoot;
|
|
44
45
|
const specValue = spec.value;
|
|
45
|
-
const flatValue = !!flat;
|
|
46
|
+
const flatValue = !!(flat === null || flat === void 0 ? void 0 : flat.value);
|
|
47
|
+
const specFileSuffixValue = specFileSuffix.value;
|
|
46
48
|
const specOptions = spec.options;
|
|
47
49
|
let generateSpec = (0, project_utils_1.shouldGenerateSpec)(configuration, schematic, appName, specValue, specOptions.passedAsInput);
|
|
48
50
|
let generateFlat = (0, project_utils_1.shouldGenerateFlat)(configuration, appName, flatValue);
|
|
51
|
+
let generateSpecFileSuffix = (0, project_utils_1.getSpecFileSuffix)(configuration, appName, specFileSuffixValue);
|
|
49
52
|
// If you only add a `lib` we actually don't have monorepo: true BUT we do have "projects"
|
|
50
53
|
// Ensure we don't run for new app/libs schematics
|
|
51
54
|
if ((0, project_utils_1.shouldAskForProject)(schematic, configurationProjects, appName)) {
|
|
@@ -67,11 +70,13 @@ const generateFiles = (inputs) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
67
70
|
// Only overwrite if the appName is not the default- as it has already been loaded above
|
|
68
71
|
generateSpec = (0, project_utils_1.shouldGenerateSpec)(configuration, schematic, answers.appName, specValue, specOptions.passedAsInput);
|
|
69
72
|
generateFlat = (0, project_utils_1.shouldGenerateFlat)(configuration, answers.appNames, flatValue);
|
|
73
|
+
generateSpecFileSuffix = (0, project_utils_1.getSpecFileSuffix)(configuration, appName, specFileSuffixValue);
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
schematicOptions.push(new schematics_1.SchematicOption('sourceRoot', sourceRoot));
|
|
73
77
|
schematicOptions.push(new schematics_1.SchematicOption('spec', generateSpec));
|
|
74
78
|
schematicOptions.push(new schematics_1.SchematicOption('flat', generateFlat));
|
|
79
|
+
schematicOptions.push(new schematics_1.SchematicOption('specFileSuffix', generateSpecFileSuffix));
|
|
75
80
|
try {
|
|
76
81
|
const schematicInput = inputs.find((input) => input.name === 'schematic');
|
|
77
82
|
if (!schematicInput) {
|
|
@@ -86,7 +91,7 @@ const generateFiles = (inputs) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
86
91
|
}
|
|
87
92
|
});
|
|
88
93
|
const mapSchematicOptions = (inputs) => {
|
|
89
|
-
const excludedInputNames = ['schematic', 'spec', 'flat'];
|
|
94
|
+
const excludedInputNames = ['schematic', 'spec', 'flat', 'specFileSuffix'];
|
|
90
95
|
const options = [];
|
|
91
96
|
inputs.forEach((input) => {
|
|
92
97
|
if (!excludedInputNames.includes(input.name) && input.value !== undefined) {
|
|
@@ -2,7 +2,7 @@ import { Input } from '../commands';
|
|
|
2
2
|
import { BuildAction } from './build.action';
|
|
3
3
|
export declare class StartAction extends BuildAction {
|
|
4
4
|
handle(inputs: Input[], options: Input[]): Promise<void>;
|
|
5
|
-
createOnSuccessHook(entryFile: string, sourceRoot: string, debugFlag: boolean | string | undefined, outDirName: string, binaryToRun
|
|
5
|
+
createOnSuccessHook(entryFile: string, sourceRoot: string, debugFlag: boolean | string | undefined, outDirName: string, binaryToRun: string): () => void;
|
|
6
6
|
private spawnChildProcess;
|
|
7
7
|
private isSourceMapSupportPkgAvailable;
|
|
8
8
|
}
|
package/actions/start.action.js
CHANGED
|
@@ -22,7 +22,6 @@ const ui_1 = require("../lib/ui");
|
|
|
22
22
|
const build_action_1 = require("./build.action");
|
|
23
23
|
class StartAction extends build_action_1.BuildAction {
|
|
24
24
|
handle(inputs, options) {
|
|
25
|
-
var _a, _b;
|
|
26
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
26
|
try {
|
|
28
27
|
const configFileName = options.find((option) => option.name === 'config')
|
|
@@ -31,20 +30,17 @@ class StartAction extends build_action_1.BuildAction {
|
|
|
31
30
|
const appName = inputs.find((input) => input.name === 'app')
|
|
32
31
|
.value;
|
|
33
32
|
const pathToTsconfig = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'compilerOptions.tsConfigPath', appName, 'path', options);
|
|
34
|
-
const binaryToRunOption = options.find((option) => option.name === 'exec');
|
|
35
33
|
const debugModeOption = options.find((option) => option.name === 'debug');
|
|
36
34
|
const watchModeOption = options.find((option) => option.name === 'watch');
|
|
37
35
|
const isWatchEnabled = !!(watchModeOption && watchModeOption.value);
|
|
38
36
|
const watchAssetsModeOption = options.find((option) => option.name === 'watchAssets');
|
|
39
37
|
const isWatchAssetsEnabled = !!(watchAssetsModeOption && watchAssetsModeOption.value);
|
|
40
38
|
const debugFlag = debugModeOption && debugModeOption.value;
|
|
41
|
-
const binaryToRun =
|
|
39
|
+
const binaryToRun = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'exec', appName, 'exec', options, defaults_1.defaultConfiguration.exec);
|
|
42
40
|
const { options: tsOptions } = this.tsConfigProvider.getByConfigFilename(pathToTsconfig);
|
|
43
41
|
const outDir = tsOptions.outDir || defaults_1.defaultOutDir;
|
|
44
|
-
const entryFile = (
|
|
45
|
-
|
|
46
|
-
const sourceRoot = ((_b = options.find((option) => option.name === 'sourceRoot')) === null || _b === void 0 ? void 0 : _b.value) ||
|
|
47
|
-
(0, get_value_or_default_1.getValueOrDefault)(configuration, 'sourceRoot', appName, undefined, undefined, defaults_1.defaultConfiguration.sourceRoot);
|
|
42
|
+
const entryFile = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'entryFile', appName, 'entryFile', options, defaults_1.defaultConfiguration.entryFile);
|
|
43
|
+
const sourceRoot = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'sourceRoot', appName, 'sourceRoot', options, defaults_1.defaultConfiguration.sourceRoot);
|
|
48
44
|
const onSuccess = this.createOnSuccessHook(entryFile, sourceRoot, debugFlag, outDir, binaryToRun);
|
|
49
45
|
yield this.runBuild(inputs, options, isWatchEnabled, isWatchAssetsEnabled, !!debugFlag, onSuccess);
|
|
50
46
|
}
|
|
@@ -58,7 +54,7 @@ class StartAction extends build_action_1.BuildAction {
|
|
|
58
54
|
}
|
|
59
55
|
});
|
|
60
56
|
}
|
|
61
|
-
createOnSuccessHook(entryFile, sourceRoot, debugFlag, outDirName, binaryToRun
|
|
57
|
+
createOnSuccessHook(entryFile, sourceRoot, debugFlag, outDirName, binaryToRun) {
|
|
62
58
|
let childProcessRef;
|
|
63
59
|
process.on('exit', () => childProcessRef && (0, tree_kill_1.treeKillSync)(childProcessRef.pid));
|
|
64
60
|
return () => {
|
|
@@ -29,6 +29,7 @@ class GenerateCommand extends abstract_command_1.AbstractCommand {
|
|
|
29
29
|
.option('--spec', 'Enforce spec files generation.', () => {
|
|
30
30
|
return { value: true, passedAsInput: true };
|
|
31
31
|
}, true)
|
|
32
|
+
.option('--spec-file-suffix [suffix]', 'Use a custom suffix for spec files.')
|
|
32
33
|
.option('--skip-import', 'Skip importing', () => true, false)
|
|
33
34
|
.option('--no-spec', 'Disable spec files generation.', () => {
|
|
34
35
|
return { value: false, passedAsInput: true };
|
|
@@ -51,6 +52,10 @@ class GenerateCommand extends abstract_command_1.AbstractCommand {
|
|
|
51
52
|
: command.spec.passedAsInput,
|
|
52
53
|
},
|
|
53
54
|
});
|
|
55
|
+
options.push({
|
|
56
|
+
name: 'specFileSuffix',
|
|
57
|
+
value: command.specFileSuffix,
|
|
58
|
+
});
|
|
54
59
|
options.push({
|
|
55
60
|
name: 'collection',
|
|
56
61
|
value: command.collection,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Input } from '../../../commands';
|
|
2
2
|
import { Configuration } from '../../configuration';
|
|
3
|
-
export declare function getValueOrDefault<T = any>(configuration: Required<Configuration>, propertyPath: string, appName: string, key?: 'path' | 'webpack' | 'webpackPath', options?: Input[], defaultValue?: T): T;
|
|
3
|
+
export declare function getValueOrDefault<T = any>(configuration: Required<Configuration>, propertyPath: string, appName: string, key?: 'path' | 'webpack' | 'webpackPath' | 'entryFile' | 'sourceRoot' | 'exec', options?: Input[], defaultValue?: T): T;
|
|
4
4
|
export declare function getValueOfPath<T = any>(object: Record<string, any>, propertyPath: string): T;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.displayManualRestartTip = exports.listenForManualRestart = void 0;
|
|
4
|
+
const chalk = require("chalk");
|
|
5
|
+
function listenForManualRestart(callback) {
|
|
6
|
+
const stdinListener = (data) => {
|
|
7
|
+
if (data.toString().trim() === 'rs') {
|
|
8
|
+
process.stdin.removeListener('data', stdinListener);
|
|
9
|
+
callback();
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
process.stdin.on('data', stdinListener);
|
|
13
|
+
}
|
|
14
|
+
exports.listenForManualRestart = listenForManualRestart;
|
|
15
|
+
function displayManualRestartTip() {
|
|
16
|
+
console.log(`To restart at any time, enter ${chalk.gray('rs')}.\n`);
|
|
17
|
+
}
|
|
18
|
+
exports.displayManualRestartTip = displayManualRestartTip;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WatchCompiler = void 0;
|
|
4
4
|
const errors_1 = require("../ui/errors");
|
|
5
5
|
const get_value_or_default_1 = require("./helpers/get-value-or-default");
|
|
6
|
+
const manual_restart_1 = require("./helpers/manual-restart");
|
|
6
7
|
const tsconfig_paths_hook_1 = require("./hooks/tsconfig-paths.hook");
|
|
7
8
|
class WatchCompiler {
|
|
8
9
|
constructor(pluginsLoader, tsConfigProvider, typescriptLoader) {
|
|
@@ -27,7 +28,10 @@ class WatchCompiler {
|
|
|
27
28
|
host.createProgram = (rootNames, options,
|
|
28
29
|
// tslint:disable-next-line:no-shadowed-variable
|
|
29
30
|
host, oldProgram) => {
|
|
30
|
-
|
|
31
|
+
(0, manual_restart_1.displayManualRestartTip)();
|
|
32
|
+
const tsconfigPathsPlugin = options
|
|
33
|
+
? (0, tsconfig_paths_hook_1.tsconfigPathsBeforeHookFactory)(options)
|
|
34
|
+
: null;
|
|
31
35
|
const program = origCreateProgram(rootNames, options, host, oldProgram, undefined, projectReferences);
|
|
32
36
|
const origProgramEmit = program.emit;
|
|
33
37
|
program.emit = (targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) => {
|
|
@@ -46,7 +50,11 @@ class WatchCompiler {
|
|
|
46
50
|
};
|
|
47
51
|
return program;
|
|
48
52
|
};
|
|
49
|
-
tsBin.createWatchProgram(host);
|
|
53
|
+
const watchProgram = tsBin.createWatchProgram(host);
|
|
54
|
+
(0, manual_restart_1.listenForManualRestart)(() => {
|
|
55
|
+
watchProgram.close();
|
|
56
|
+
this.run(configuration, configFilename, appName, tsCompilerOptions, onSuccess);
|
|
57
|
+
});
|
|
50
58
|
}
|
|
51
59
|
createDiagnosticReporter(diagnosticReporter) {
|
|
52
60
|
return function (diagnostic, ...args) {
|
|
@@ -29,11 +29,13 @@ interface PluginOptions {
|
|
|
29
29
|
interface GenerateOptions {
|
|
30
30
|
spec?: boolean | Record<string, boolean>;
|
|
31
31
|
flat?: boolean;
|
|
32
|
+
specFileSuffix?: string;
|
|
32
33
|
}
|
|
33
34
|
export interface ProjectConfiguration {
|
|
34
35
|
type?: string;
|
|
35
36
|
root?: string;
|
|
36
37
|
entryFile?: string;
|
|
38
|
+
exec?: string;
|
|
37
39
|
sourceRoot?: string;
|
|
38
40
|
compilerOptions?: CompilerOptions;
|
|
39
41
|
}
|
|
@@ -43,6 +45,7 @@ export interface Configuration {
|
|
|
43
45
|
collection?: string;
|
|
44
46
|
sourceRoot?: string;
|
|
45
47
|
entryFile?: string;
|
|
48
|
+
exec?: string;
|
|
46
49
|
monorepo?: boolean;
|
|
47
50
|
compilerOptions?: CompilerOptions;
|
|
48
51
|
generateOptions?: GenerateOptions;
|
|
@@ -6,6 +6,7 @@ export declare function shouldAskForProject(schematic: string, configurationProj
|
|
|
6
6
|
}, appName: string): boolean;
|
|
7
7
|
export declare function shouldGenerateSpec(configuration: Required<Configuration>, schematic: string, appName: string, specValue: boolean, specPassedAsInput?: boolean): any;
|
|
8
8
|
export declare function shouldGenerateFlat(configuration: Required<Configuration>, appName: string, flatValue: boolean): boolean;
|
|
9
|
+
export declare function getSpecFileSuffix(configuration: Required<Configuration>, appName: string, specFileSuffixValue: string): string;
|
|
9
10
|
export declare function askForProjectName(promptQuestion: string, projects: string[]): Promise<Answers>;
|
|
10
11
|
export declare function moveDefaultProjectToStart(configuration: Configuration, defaultProjectName: string, defaultLabel: string): string[];
|
|
11
12
|
export declare function hasValidOptionFlag(queriedOptionName: string, options: Input[], queriedValue?: string | number | boolean): boolean;
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.hasValidOptionFlag = exports.moveDefaultProjectToStart = exports.askForProjectName = exports.shouldGenerateFlat = exports.shouldGenerateSpec = exports.shouldAskForProject = void 0;
|
|
12
|
+
exports.hasValidOptionFlag = exports.moveDefaultProjectToStart = exports.askForProjectName = exports.getSpecFileSuffix = exports.shouldGenerateFlat = exports.shouldGenerateSpec = exports.shouldAskForProject = void 0;
|
|
13
13
|
const inquirer = require("inquirer");
|
|
14
14
|
const get_value_or_default_1 = require("../compiler/helpers/get-value-or-default");
|
|
15
15
|
const questions_1 = require("../questions/questions");
|
|
@@ -60,6 +60,18 @@ function shouldGenerateFlat(configuration, appName, flatValue) {
|
|
|
60
60
|
return flatValue;
|
|
61
61
|
}
|
|
62
62
|
exports.shouldGenerateFlat = shouldGenerateFlat;
|
|
63
|
+
function getSpecFileSuffix(configuration, appName, specFileSuffixValue) {
|
|
64
|
+
// CLI parameters have the highest priority
|
|
65
|
+
if (specFileSuffixValue) {
|
|
66
|
+
return specFileSuffixValue;
|
|
67
|
+
}
|
|
68
|
+
const specFileSuffixConfiguration = (0, get_value_or_default_1.getValueOrDefault)(configuration, 'generateOptions.specFileSuffix', appName || '', undefined, undefined, 'spec');
|
|
69
|
+
if (typeof specFileSuffixConfiguration === 'string') {
|
|
70
|
+
return specFileSuffixConfiguration;
|
|
71
|
+
}
|
|
72
|
+
return specFileSuffixValue;
|
|
73
|
+
}
|
|
74
|
+
exports.getSpecFileSuffix = getSpecFileSuffix;
|
|
63
75
|
function askForProjectName(promptQuestion, projects) {
|
|
64
76
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
77
|
const questions = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs/cli",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.1",
|
|
4
4
|
"description": "Nest - modern, fast, powerful node.js web framework (@cli)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://github.com/nestjs/nest-cli#readme",
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@angular-devkit/core": "15.2.
|
|
42
|
-
"@angular-devkit/schematics": "15.2.
|
|
43
|
-
"@angular-devkit/schematics-cli": "15.2.
|
|
41
|
+
"@angular-devkit/core": "15.2.6",
|
|
42
|
+
"@angular-devkit/schematics": "15.2.6",
|
|
43
|
+
"@angular-devkit/schematics-cli": "15.2.6",
|
|
44
44
|
"@nestjs/schematics": "^9.0.4",
|
|
45
45
|
"chalk": "4.1.2",
|
|
46
46
|
"chokidar": "3.5.3",
|
|
@@ -51,38 +51,38 @@
|
|
|
51
51
|
"node-emoji": "1.11.0",
|
|
52
52
|
"ora": "5.4.1",
|
|
53
53
|
"os-name": "4.0.1",
|
|
54
|
-
"rimraf": "4.4.
|
|
54
|
+
"rimraf": "4.4.1",
|
|
55
55
|
"shelljs": "0.8.5",
|
|
56
56
|
"source-map-support": "0.5.21",
|
|
57
57
|
"tree-kill": "1.2.2",
|
|
58
|
-
"tsconfig-paths": "4.
|
|
58
|
+
"tsconfig-paths": "4.2.0",
|
|
59
59
|
"tsconfig-paths-webpack-plugin": "4.0.1",
|
|
60
60
|
"typescript": "4.9.5",
|
|
61
|
-
"webpack": "5.
|
|
61
|
+
"webpack": "5.79.0",
|
|
62
62
|
"webpack-node-externals": "3.0.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@commitlint/cli": "17.
|
|
66
|
-
"@commitlint/config-angular": "17.
|
|
65
|
+
"@commitlint/cli": "17.6.1",
|
|
66
|
+
"@commitlint/config-angular": "17.6.1",
|
|
67
67
|
"@types/inquirer": "8.2.6",
|
|
68
|
-
"@types/jest": "29.5.
|
|
69
|
-
"@types/node": "18.15.
|
|
68
|
+
"@types/jest": "29.5.1",
|
|
69
|
+
"@types/node": "18.15.12",
|
|
70
70
|
"@types/node-emoji": "1.8.2",
|
|
71
|
-
"@types/shelljs": "0.8.
|
|
71
|
+
"@types/shelljs": "0.8.12",
|
|
72
72
|
"@types/webpack-node-externals": "3.0.0",
|
|
73
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
74
|
-
"@typescript-eslint/parser": "5.
|
|
73
|
+
"@typescript-eslint/eslint-plugin": "5.59.0",
|
|
74
|
+
"@typescript-eslint/parser": "5.59.0",
|
|
75
75
|
"delete-empty": "3.0.0",
|
|
76
|
-
"eslint": "8.
|
|
77
|
-
"eslint-config-prettier": "8.
|
|
76
|
+
"eslint": "8.38.0",
|
|
77
|
+
"eslint-config-prettier": "8.8.0",
|
|
78
78
|
"gulp": "4.0.2",
|
|
79
79
|
"gulp-clean": "0.4.0",
|
|
80
80
|
"husky": "8.0.3",
|
|
81
81
|
"jest": "29.5.0",
|
|
82
|
-
"lint-staged": "13.2.
|
|
83
|
-
"prettier": "2.8.
|
|
84
|
-
"release-it": "15.
|
|
85
|
-
"ts-jest": "29.0
|
|
82
|
+
"lint-staged": "13.2.1",
|
|
83
|
+
"prettier": "2.8.7",
|
|
84
|
+
"release-it": "15.10.1",
|
|
85
|
+
"ts-jest": "29.1.0",
|
|
86
86
|
"ts-loader": "9.4.2"
|
|
87
87
|
},
|
|
88
88
|
"lint-staged": {
|