complete-cli 1.4.1 → 1.5.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/dist/commands/MetadataCommand.js.map +1 -1
- package/dist/commands/init/vsCodeInit.js +3 -8
- package/dist/commands/init/vsCodeInit.js.map +1 -1
- package/file-templates/static/.vscode/settings.json +4 -1
- package/file-templates/static/scripts/lint.ts +1 -3
- package/package.json +5 -5
- package/src/commands/MetadataCommand.ts +2 -2
- package/src/commands/init/vsCodeInit.ts +4 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataCommand.js","sourceRoot":"","sources":["../../../../src/commands/MetadataCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAC1C,MAAM,CAAU,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C,iCAAiC;IACjC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,CAAU,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACpC,WAAW,EACT,wIAAwI;KAC3I,CAAC,CAAC;IAEH,KAAK,CAAC,OAAO;QACX,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAC5E,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEhE,IAAI,eAAwC,CAAC;QAC7C,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,uBAAuB,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"MetadataCommand.js","sourceRoot":"","sources":["../../../../src/commands/MetadataCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAC1C,MAAM,CAAU,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C,iCAAiC;IACjC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,CAAU,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACpC,WAAW,EACT,wIAAwI;KAC3I,CAAC,CAAC;IAEH,KAAK,CAAC,OAAO;QACX,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAC5E,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEhE,IAAI,eAAwC,CAAC;QAC7C,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,uBAAuB,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,sBAAsB,GAAY,IAAI,CAAC,KAAK,CAChD,uBAAuB,CACxB,CAAC;YACF,YAAY,CACV,sBAAsB,EACtB,yCAAyC,mBAAmB,EAAE,CAC/D,CAAC;YACF,eAAe,GAAG,sBAAsB,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,eAAe,GAAG;gBAChB,SAAS,EACP,mIAAmI;aACtI,CAAC;QACJ,CAAC;QAED,IAAI,YAAqC,CAAC;QAC1C,IAAI,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YAC9C,mEAAmE;YACnE,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,EAAE,CAAC;YAClB,eAAe,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACjD,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG;YAClC,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;SACjC,CAAC;QAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,KAAK,mBAAmB,EAAE,CAAC,CAAC;IAC9D,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertObject } from "complete-common";
|
|
1
|
+
import { assertObject, isArrayString } from "complete-common";
|
|
2
2
|
import { $, $q, commandExists, getJSONC, isFile } from "complete-node";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { getInputYesNo, promptError, promptLog } from "../../prompt.js";
|
|
@@ -48,13 +48,8 @@ async function getExtensionsFromJSON(projectPath) {
|
|
|
48
48
|
const extensionsJSON = await getJSONC(extensionsJSONPath);
|
|
49
49
|
assertObject(extensionsJSON, `The "${extensionsJSONPath}" file is not an object.`);
|
|
50
50
|
const { recommendations } = extensionsJSON;
|
|
51
|
-
if (!
|
|
52
|
-
promptError('The "recommendations" field in the "extensions.json" file is not an array.');
|
|
53
|
-
}
|
|
54
|
-
for (const recommendation of recommendations) {
|
|
55
|
-
if (typeof recommendation !== "string") {
|
|
56
|
-
promptError('One of the entries in the "recommendations" field in the "extensions.json" file is not a string.');
|
|
57
|
-
}
|
|
51
|
+
if (!isArrayString(recommendations)) {
|
|
52
|
+
promptError('The "recommendations" field in the "extensions.json" file is not an array of strings.');
|
|
58
53
|
}
|
|
59
54
|
return recommendations;
|
|
60
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsCodeInit.js","sourceRoot":"","sources":["../../../../../src/commands/init/vsCodeInit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"vsCodeInit.js","sourceRoot":"","sources":["../../../../../src/commands/init/vsCodeInit.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,12 @@
|
|
|
12
12
|
".env*": "shellscript", // e.g. ".env.example" is the same as ".env".
|
|
13
13
|
},
|
|
14
14
|
|
|
15
|
-
//
|
|
15
|
+
// Always use "lf" to be consistent with all platforms.
|
|
16
16
|
"files.eol": "\n",
|
|
17
17
|
|
|
18
|
+
// Automatically insert a trailing newline when saving a file to match the POSIX standard.
|
|
19
|
+
"files.insertFinalNewline": true,
|
|
20
|
+
|
|
18
21
|
// Automatically remove all trailing whitespace when saving a file.
|
|
19
22
|
"files.trimTrailingWhitespace": true,
|
|
20
23
|
|
|
@@ -14,11 +14,9 @@ await lintCommands(import.meta.dirname, [
|
|
|
14
14
|
"prettier --log-level=warn --check .",
|
|
15
15
|
|
|
16
16
|
// Use Knip to check for unused files, exports, and dependencies.
|
|
17
|
-
// - "--no-progress" - Don't show dynamic progress updates. Progress is automatically disabled in
|
|
18
|
-
// CI environments.
|
|
19
17
|
// - "--treat-config-hints-as-errors" - Exit with non-zero code (1) if there are any configuration
|
|
20
18
|
// hints.
|
|
21
|
-
"knip --
|
|
19
|
+
"knip --treat-config-hints-as-errors",
|
|
22
20
|
|
|
23
21
|
// Use CSpell to spell check every file.
|
|
24
22
|
// - "--no-progress" and "--no-summary" make it only output errors.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "complete-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "A command line tool for bootstrapping TypeScript projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript"
|
|
@@ -34,20 +34,20 @@
|
|
|
34
34
|
"@clack/prompts": "0.11.0",
|
|
35
35
|
"chalk": "5.6.2",
|
|
36
36
|
"clipanion": "4.0.0-rc.4",
|
|
37
|
-
"complete-common": "2.
|
|
38
|
-
"complete-node": "12.2.
|
|
37
|
+
"complete-common": "2.8.0",
|
|
38
|
+
"complete-node": "12.2.1",
|
|
39
39
|
"klaw-sync": "7.0.0",
|
|
40
40
|
"source-map-support": "0.5.21",
|
|
41
41
|
"yaml": "2.8.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/klaw-sync": "6.0.5",
|
|
45
|
-
"@types/node": "24.7.
|
|
45
|
+
"@types/node": "24.7.2",
|
|
46
46
|
"@types/source-map-support": "0.5.10",
|
|
47
47
|
"ts-loader": "9.5.4",
|
|
48
48
|
"tsconfig-paths-webpack-plugin": "4.2.0",
|
|
49
49
|
"typescript": "5.9.3",
|
|
50
|
-
"typescript-eslint": "8.46.
|
|
50
|
+
"typescript-eslint": "8.46.1",
|
|
51
51
|
"webpack": "5.102.1",
|
|
52
52
|
"webpack-cli": "6.0.1",
|
|
53
53
|
"webpack-shebang-plugin": "1.1.8"
|
|
@@ -29,9 +29,9 @@ export class MetadataCommand extends Command {
|
|
|
29
29
|
let packageMetadata: Record<string, unknown>;
|
|
30
30
|
if (packageMetadataExists) {
|
|
31
31
|
const packageMetadataContents = await readFile(packageMetadataPath);
|
|
32
|
-
const packageMetadataUnknown = JSON.parse(
|
|
32
|
+
const packageMetadataUnknown: unknown = JSON.parse(
|
|
33
33
|
packageMetadataContents,
|
|
34
|
-
)
|
|
34
|
+
);
|
|
35
35
|
assertObject(
|
|
36
36
|
packageMetadataUnknown,
|
|
37
37
|
`Failed to parse the metadata file at: ${packageMetadataPath}`,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertObject } from "complete-common";
|
|
1
|
+
import { assertObject, isArrayString } from "complete-common";
|
|
2
2
|
import { $, $q, commandExists, getJSONC, isFile } from "complete-node";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { getInputYesNo, promptError, promptLog } from "../../prompt.js";
|
|
@@ -82,21 +82,13 @@ async function getExtensionsFromJSON(
|
|
|
82
82
|
);
|
|
83
83
|
|
|
84
84
|
const { recommendations } = extensionsJSON;
|
|
85
|
-
if (!
|
|
85
|
+
if (!isArrayString(recommendations)) {
|
|
86
86
|
promptError(
|
|
87
|
-
'The "recommendations" field in the "extensions.json" file is not an array.',
|
|
87
|
+
'The "recommendations" field in the "extensions.json" file is not an array of strings.',
|
|
88
88
|
);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
if (typeof recommendation !== "string") {
|
|
93
|
-
promptError(
|
|
94
|
-
'One of the entries in the "recommendations" field in the "extensions.json" file is not a string.',
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return recommendations as string[];
|
|
91
|
+
return recommendations;
|
|
100
92
|
}
|
|
101
93
|
|
|
102
94
|
async function promptVSCode(
|