@jskit-ai/jskit-cli 0.2.26 → 0.2.28
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/package.json +3 -2
- package/src/server/cliRuntime/appState.js +226 -0
- package/src/server/cliRuntime/capabilitySupport.js +194 -0
- package/src/server/cliRuntime/descriptorValidation.js +150 -0
- package/src/server/cliRuntime/ioAndMigrations.js +381 -0
- package/src/server/cliRuntime/localPackageSupport.js +390 -0
- package/src/server/cliRuntime/mutationApplication.js +9 -0
- package/src/server/cliRuntime/mutationWhen.js +285 -0
- package/src/server/cliRuntime/mutations/fileMutations.js +247 -0
- package/src/server/cliRuntime/mutations/installMigrationMutation.js +213 -0
- package/src/server/cliRuntime/mutations/mutationPathUtils.js +12 -0
- package/src/server/cliRuntime/mutations/surfaceTargets.js +155 -0
- package/src/server/cliRuntime/mutations/templateContext.js +171 -0
- package/src/server/cliRuntime/mutations/textMutations.js +250 -0
- package/src/server/cliRuntime/packageInstallFlow.js +489 -0
- package/src/server/cliRuntime/packageIntrospection/exportEntries.js +259 -0
- package/src/server/cliRuntime/packageIntrospection/exportedSymbols.js +216 -0
- package/src/server/cliRuntime/packageIntrospection/placementNormalization.js +98 -0
- package/src/server/cliRuntime/packageIntrospection/providerBindingIntrospection.js +377 -0
- package/src/server/cliRuntime/packageIntrospection.js +137 -0
- package/src/server/cliRuntime/packageOptions.js +299 -0
- package/src/server/cliRuntime/packageRegistries.js +343 -0
- package/src/server/cliRuntime/packageTemplateResolution.js +131 -0
- package/src/server/cliRuntime/viteProxy.js +356 -0
- package/src/server/commandHandlers/health.js +292 -0
- package/src/server/commandHandlers/list.js +292 -0
- package/src/server/commandHandlers/package.js +23 -0
- package/src/server/commandHandlers/packageCommands/add.js +282 -0
- package/src/server/commandHandlers/packageCommands/create.js +155 -0
- package/src/server/commandHandlers/packageCommands/generate.js +116 -0
- package/src/server/commandHandlers/packageCommands/migrations.js +155 -0
- package/src/server/commandHandlers/packageCommands/position.js +103 -0
- package/src/server/commandHandlers/packageCommands/remove.js +181 -0
- package/src/server/commandHandlers/packageCommands/update.js +40 -0
- package/src/server/commandHandlers/shared.js +314 -0
- package/src/server/commandHandlers/show/payloads.js +92 -0
- package/src/server/commandHandlers/show/renderBundleText.js +16 -0
- package/src/server/commandHandlers/show/renderHelpers.js +82 -0
- package/src/server/commandHandlers/show/renderPackageCapabilities.js +124 -0
- package/src/server/commandHandlers/show/renderPackageExports.js +203 -0
- package/src/server/commandHandlers/show/renderPackageText.js +332 -0
- package/src/server/commandHandlers/show.js +114 -0
- package/src/server/core/argParser.js +144 -0
- package/src/server/{runtimeDeps.js → core/buildCommandDeps.js} +2 -1
- package/src/server/core/commandCatalog.js +47 -0
- package/src/server/core/createCliRunner.js +150 -0
- package/src/server/core/createCommandHandlers.js +43 -0
- package/src/server/{runCli.js → core/dispatchCli.js} +14 -1
- package/src/server/core/usageHelp.js +344 -0
- package/src/server/index.js +1 -1
- package/src/server/{optionInterpolation.js → shared/optionInterpolation.js} +12 -1
- package/src/server/{pathResolution.js → shared/pathResolution.js} +1 -1
- package/src/server/argParser.js +0 -206
- package/src/server/cliRuntime.js +0 -4853
- package/src/server/commandHandlers.js +0 -2109
- /package/src/server/{cliError.js → shared/cliError.js} +0 -0
- /package/src/server/{collectionUtils.js → shared/collectionUtils.js} +0 -0
- /package/src/server/{outputFormatting.js → shared/outputFormatting.js} +0 -0
- /package/src/server/{packageIdHelpers.js → shared/packageIdHelpers.js} +0 -0
package/src/server/argParser.js
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
const KNOWN_COMMANDS = new Set([
|
|
2
|
-
"help",
|
|
3
|
-
"create",
|
|
4
|
-
"generate",
|
|
5
|
-
"list",
|
|
6
|
-
"show",
|
|
7
|
-
"view",
|
|
8
|
-
"migrations",
|
|
9
|
-
"add",
|
|
10
|
-
"position",
|
|
11
|
-
"update",
|
|
12
|
-
"remove",
|
|
13
|
-
"doctor",
|
|
14
|
-
"lint-descriptors"
|
|
15
|
-
]);
|
|
16
|
-
|
|
17
|
-
const COMMAND_ALIASES = Object.freeze({
|
|
18
|
-
view: "show",
|
|
19
|
-
ls: "list",
|
|
20
|
-
gen: "generate"
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
function resolveCommandAlias(rawCommand) {
|
|
24
|
-
const command = String(rawCommand || "").trim();
|
|
25
|
-
if (!command) {
|
|
26
|
-
return "";
|
|
27
|
-
}
|
|
28
|
-
return COMMAND_ALIASES[command] || command;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function parseArgs(argv, { createCliError } = {}) {
|
|
32
|
-
if (typeof createCliError !== "function") {
|
|
33
|
-
throw new TypeError("parseArgs requires createCliError.");
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const args = Array.isArray(argv) ? [...argv] : [];
|
|
37
|
-
const firstToken = String(args[0] || "").trim();
|
|
38
|
-
if (firstToken === "--help" || firstToken === "-h") {
|
|
39
|
-
args.shift();
|
|
40
|
-
return {
|
|
41
|
-
command: "help",
|
|
42
|
-
options: {
|
|
43
|
-
dryRun: false,
|
|
44
|
-
noInstall: false,
|
|
45
|
-
full: false,
|
|
46
|
-
expanded: false,
|
|
47
|
-
details: false,
|
|
48
|
-
debugExports: false,
|
|
49
|
-
checkDiLabels: false,
|
|
50
|
-
verbose: false,
|
|
51
|
-
json: false,
|
|
52
|
-
all: false,
|
|
53
|
-
help: true,
|
|
54
|
-
inlineOptions: {}
|
|
55
|
-
},
|
|
56
|
-
positional: []
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const rawCommand = String(args.shift() || "help").trim() || "help";
|
|
61
|
-
const command = resolveCommandAlias(rawCommand);
|
|
62
|
-
|
|
63
|
-
if (!KNOWN_COMMANDS.has(command)) {
|
|
64
|
-
throw createCliError(`Unknown command: ${rawCommand}`, { showUsage: true });
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const options = {
|
|
68
|
-
dryRun: false,
|
|
69
|
-
noInstall: false,
|
|
70
|
-
full: false,
|
|
71
|
-
expanded: false,
|
|
72
|
-
details: false,
|
|
73
|
-
debugExports: false,
|
|
74
|
-
checkDiLabels: false,
|
|
75
|
-
verbose: false,
|
|
76
|
-
json: false,
|
|
77
|
-
all: false,
|
|
78
|
-
help: false,
|
|
79
|
-
inlineOptions: {}
|
|
80
|
-
};
|
|
81
|
-
const positional = [];
|
|
82
|
-
|
|
83
|
-
while (args.length > 0) {
|
|
84
|
-
const token = String(args.shift() || "");
|
|
85
|
-
|
|
86
|
-
if (token === "--dry-run") {
|
|
87
|
-
options.dryRun = true;
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if (token === "--no-install") {
|
|
91
|
-
options.noInstall = true;
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
if (token === "--full") {
|
|
95
|
-
options.full = true;
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
if (token === "--expanded") {
|
|
99
|
-
options.expanded = true;
|
|
100
|
-
continue;
|
|
101
|
-
}
|
|
102
|
-
if (token === "--details") {
|
|
103
|
-
options.details = true;
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
if (token === "--debug-exports") {
|
|
107
|
-
options.debugExports = true;
|
|
108
|
-
continue;
|
|
109
|
-
}
|
|
110
|
-
if (token === "--check-di-labels") {
|
|
111
|
-
options.checkDiLabels = true;
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (token === "--verbose") {
|
|
115
|
-
options.verbose = true;
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
if (token === "--json") {
|
|
119
|
-
options.json = true;
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
if (token === "--all") {
|
|
123
|
-
options.all = true;
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
if (token === "--help" || token === "-h") {
|
|
127
|
-
options.help = true;
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (token.startsWith("--")) {
|
|
132
|
-
const withoutPrefix = token.slice(2);
|
|
133
|
-
const hasInlineValue = withoutPrefix.includes("=");
|
|
134
|
-
const optionName = hasInlineValue ? withoutPrefix.slice(0, withoutPrefix.indexOf("=")) : withoutPrefix;
|
|
135
|
-
const optionValueRaw = hasInlineValue
|
|
136
|
-
? withoutPrefix.slice(withoutPrefix.indexOf("=") + 1)
|
|
137
|
-
: args.shift();
|
|
138
|
-
|
|
139
|
-
if (!/^[a-z][a-z0-9-]*$/.test(optionName)) {
|
|
140
|
-
throw createCliError(`Unknown option: ${token}`, { showUsage: true });
|
|
141
|
-
}
|
|
142
|
-
if (typeof optionValueRaw !== "string") {
|
|
143
|
-
throw createCliError(`--${optionName} requires a value.`, { showUsage: true });
|
|
144
|
-
}
|
|
145
|
-
const optionValue = optionValueRaw.trim();
|
|
146
|
-
if (!hasInlineValue && optionValue.startsWith("-")) {
|
|
147
|
-
throw createCliError(`--${optionName} requires a value.`, { showUsage: true });
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
options.inlineOptions[optionName] = optionValue;
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
if (token.startsWith("-")) {
|
|
155
|
-
throw createCliError(`Unknown option: ${token}`, { showUsage: true });
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
positional.push(token);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
if (options.debugExports) {
|
|
162
|
-
options.details = true;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
return {
|
|
166
|
-
command,
|
|
167
|
-
options,
|
|
168
|
-
positional
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
function printUsage(stream = process.stderr) {
|
|
173
|
-
stream.write("Usage: jskit <command> [options]\n\n");
|
|
174
|
-
stream.write("Commands:\n");
|
|
175
|
-
stream.write(" create package <name> Scaffold app-local package under packages/ and install it\n");
|
|
176
|
-
stream.write(" list [bundles [all]|packages|generators] List available bundles/runtime packages/generators and installed status\n");
|
|
177
|
-
stream.write(" lint-descriptors Validate bundle/package descriptor files\n");
|
|
178
|
-
stream.write(" add bundle <bundleId> Add one bundle (bundle is a package shortcut)\n");
|
|
179
|
-
stream.write(" add package <packageId> Add one runtime package to current app (catalog/app-local/installed external)\n");
|
|
180
|
-
stream.write(" generate <packageId> Run one generator package\n");
|
|
181
|
-
stream.write(" position element <packageId> Re-apply positioning mutations for one installed package\n");
|
|
182
|
-
stream.write(" show <id> Show details for bundle id or package id\n");
|
|
183
|
-
stream.write(" view <id> Alias of show <id>\n");
|
|
184
|
-
stream.write(" migrations <scope> Generate managed migrations only (scope: all | changed | package <packageId>)\n");
|
|
185
|
-
stream.write(" update package <packageId> Re-apply one installed package\n");
|
|
186
|
-
stream.write(" remove package <packageId> Remove one installed package\n");
|
|
187
|
-
stream.write(" doctor Validate lockfile + managed files\n");
|
|
188
|
-
stream.write("\n");
|
|
189
|
-
stream.write("Options:\n");
|
|
190
|
-
stream.write(" --dry-run Print planned changes only\n");
|
|
191
|
-
stream.write(" --no-install Skip npm install during create/add/generate/update/remove\n");
|
|
192
|
-
stream.write(" --scope <scope> (create package) override generated package scope\n");
|
|
193
|
-
stream.write(" --package-id <id> (create package) explicit @scope/name package id\n");
|
|
194
|
-
stream.write(" --description <text> (create package) descriptor description text\n");
|
|
195
|
-
stream.write(" --full Show bundle package ids (declared packages)\n");
|
|
196
|
-
stream.write(" --expanded Show expanded/transitive package ids\n");
|
|
197
|
-
stream.write(" --details Show extra capability detail in show output\n");
|
|
198
|
-
stream.write(" --debug-exports Show export provenance/re-export source details in show output\n");
|
|
199
|
-
stream.write(" --check-di-labels (lint-descriptors) verify DI labels used by providers match descriptor container tokens\n");
|
|
200
|
-
stream.write(" --verbose Show verbose informational diagnostics\n");
|
|
201
|
-
stream.write(" --<option> <value> Package option (for packages requiring input)\n");
|
|
202
|
-
stream.write(" --json Print structured output\n");
|
|
203
|
-
stream.write(" -h, --help Show help\n");
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
export { parseArgs, printUsage };
|