@topogram/cli 0.3.62 → 0.3.64

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.
Files changed (121) hide show
  1. package/package.json +1 -1
  2. package/src/adoption/plan.d.ts +6 -0
  3. package/src/adoption/reporting.d.ts +10 -0
  4. package/src/adoption/review-groups.d.ts +6 -0
  5. package/src/agent-brief.d.ts +3 -0
  6. package/src/agent-brief.js +495 -0
  7. package/src/agent-ops/query-builders.d.ts +26 -0
  8. package/src/archive/archive.d.ts +2 -0
  9. package/src/archive/compact.d.ts +1 -0
  10. package/src/archive/unarchive.d.ts +1 -0
  11. package/src/catalog.d.ts +10 -0
  12. package/src/catalog.js +62 -66
  13. package/src/cli/catalog-alias.d.ts +1 -0
  14. package/src/cli/command-parser.js +38 -0
  15. package/src/cli/command-parsers/core.js +102 -0
  16. package/src/cli/command-parsers/generator.js +39 -0
  17. package/src/cli/command-parsers/import.js +44 -0
  18. package/src/cli/command-parsers/legacy-workflow.js +21 -0
  19. package/src/cli/command-parsers/project.js +47 -0
  20. package/src/cli/command-parsers/sdlc.js +47 -0
  21. package/src/cli/command-parsers/shared.js +51 -0
  22. package/src/cli/command-parsers/template.js +48 -0
  23. package/src/cli/commands/agent.js +47 -0
  24. package/src/cli/commands/catalog.js +617 -0
  25. package/src/cli/commands/check.js +268 -0
  26. package/src/cli/commands/doctor.js +268 -0
  27. package/src/cli/commands/emit.js +149 -0
  28. package/src/cli/commands/generate.js +96 -0
  29. package/src/cli/commands/generator-policy.js +785 -0
  30. package/src/cli/commands/generator.js +443 -0
  31. package/src/cli/commands/import-runner.js +157 -0
  32. package/src/cli/commands/import.js +1734 -0
  33. package/src/cli/commands/inspect.js +55 -0
  34. package/src/cli/commands/new.js +94 -0
  35. package/src/cli/commands/package.js +815 -0
  36. package/src/cli/commands/query.js +1302 -0
  37. package/src/cli/commands/release-rollout.js +257 -0
  38. package/src/cli/commands/release-shared.js +528 -0
  39. package/src/cli/commands/release-status.js +429 -0
  40. package/src/cli/commands/release.js +107 -0
  41. package/src/cli/commands/sdlc.js +168 -0
  42. package/src/cli/commands/setup.js +76 -0
  43. package/src/cli/commands/source.js +291 -0
  44. package/src/cli/commands/template-runner.js +198 -0
  45. package/src/cli/commands/template.js +2145 -0
  46. package/src/cli/commands/trust.js +219 -0
  47. package/src/cli/commands/version.js +40 -0
  48. package/src/cli/commands/widget.js +168 -0
  49. package/src/cli/commands/workflow.js +63 -0
  50. package/src/cli/dispatcher.js +392 -0
  51. package/src/cli/help-dispatch.js +188 -0
  52. package/src/cli/help.js +296 -0
  53. package/src/cli/migration-guidance.js +59 -0
  54. package/src/cli/options.js +96 -0
  55. package/src/cli/output-safety.js +107 -0
  56. package/src/cli/path-normalization.js +29 -0
  57. package/src/cli.js +47 -11711
  58. package/src/example-implementation.d.ts +2 -0
  59. package/src/format.d.ts +1 -0
  60. package/src/generator/check.d.ts +1 -0
  61. package/src/generator/context/bundle.d.ts +1 -0
  62. package/src/generator/context/shared.d.ts +2 -0
  63. package/src/generator/native/parity-bundle.js +2 -1
  64. package/src/generator/surfaces/web/html-escape.js +22 -0
  65. package/src/generator/surfaces/web/react.js +10 -8
  66. package/src/generator/surfaces/web/sveltekit.js +7 -5
  67. package/src/generator/surfaces/web/vanilla.js +8 -4
  68. package/src/generator.d.ts +2 -0
  69. package/src/github-client.js +520 -0
  70. package/src/import/core/shared.js +20 -62
  71. package/src/import/extractors/api/flutter-dio.js +4 -8
  72. package/src/import/extractors/api/react-native-repository.js +4 -8
  73. package/src/import/index.d.ts +4 -0
  74. package/src/import/provenance.d.ts +4 -0
  75. package/src/new-project.js +100 -11
  76. package/src/npm-safety.js +79 -0
  77. package/src/parser.d.ts +1 -0
  78. package/src/path-helpers.d.ts +1 -0
  79. package/src/path-helpers.js +20 -0
  80. package/src/project-config.js +1 -0
  81. package/src/reconcile/docs.d.ts +8 -0
  82. package/src/reconcile/journeys.d.ts +1 -0
  83. package/src/resolver.d.ts +1 -0
  84. package/src/runtime-support.js +29 -0
  85. package/src/sdlc/adopt.d.ts +1 -0
  86. package/src/sdlc/check.d.ts +1 -0
  87. package/src/sdlc/explain.d.ts +1 -0
  88. package/src/sdlc/release.d.ts +1 -0
  89. package/src/sdlc/scaffold.d.ts +1 -0
  90. package/src/sdlc/transition.d.ts +1 -0
  91. package/src/text-helpers.d.ts +6 -0
  92. package/src/text-helpers.js +245 -0
  93. package/src/topogram-config.js +306 -0
  94. package/src/validator.d.ts +2 -0
  95. package/src/workflows/adoption/index.js +26 -0
  96. package/src/workflows/docs-generate.js +262 -0
  97. package/src/workflows/docs-scan.js +703 -0
  98. package/src/workflows/docs.js +15 -0
  99. package/src/workflows/import-app/api.js +799 -0
  100. package/src/workflows/import-app/db.js +538 -0
  101. package/src/workflows/import-app/index.js +30 -0
  102. package/src/workflows/import-app/shared.js +218 -0
  103. package/src/workflows/import-app/ui.js +443 -0
  104. package/src/workflows/import-app/workflow.js +159 -0
  105. package/src/workflows/reconcile/adoption-plan.js +742 -0
  106. package/src/workflows/reconcile/auth.js +692 -0
  107. package/src/workflows/reconcile/bundle-core.js +600 -0
  108. package/src/workflows/reconcile/bundle-shared.js +75 -0
  109. package/src/workflows/reconcile/candidate-model.js +477 -0
  110. package/src/workflows/reconcile/canonical-surface.js +264 -0
  111. package/src/workflows/reconcile/gap-report.js +333 -0
  112. package/src/workflows/reconcile/ids.js +6 -0
  113. package/src/workflows/reconcile/impacts.js +625 -0
  114. package/src/workflows/reconcile/index.js +7 -0
  115. package/src/workflows/reconcile/renderers.js +461 -0
  116. package/src/workflows/reconcile/summary.js +90 -0
  117. package/src/workflows/reconcile/workflow.js +309 -0
  118. package/src/workflows/shared.js +189 -0
  119. package/src/workflows/types.d.ts +93 -0
  120. package/src/workflows.d.ts +1 -0
  121. package/src/workflows.js +10 -7652
@@ -0,0 +1,392 @@
1
+ // @ts-check
2
+
3
+ import { buildDoctorPayload, printDoctor } from "./commands/doctor.js";
4
+ import { buildVersionPayload, printVersion } from "./commands/version.js";
5
+ import { runAgentBriefCommand } from "./commands/agent.js";
6
+ import { runCatalogCommand } from "./commands/catalog.js";
7
+ import { runCheckCommand } from "./commands/check.js";
8
+ import { runEmitCommand } from "./commands/emit.js";
9
+ import { runGenerateAppCommand } from "./commands/generate.js";
10
+ import { runGeneratorCommand } from "./commands/generator.js";
11
+ import { runGeneratorPolicyCommand } from "./commands/generator-policy.js";
12
+ import { runImportCommand } from "./commands/import-runner.js";
13
+ import { runNewProjectCommand } from "./commands/new.js";
14
+ import { runPackageCommand } from "./commands/package.js";
15
+ import { runParseCommand, runResolveCommand } from "./commands/inspect.js";
16
+ import {
17
+ buildQueryListPayload,
18
+ buildQueryShowPayload,
19
+ printQueryDefinition,
20
+ printQueryList,
21
+ runQueryCommand
22
+ } from "./commands/query.js";
23
+ import { runReleaseCommand } from "./commands/release.js";
24
+ import { runSdlcCommand } from "./commands/sdlc.js";
25
+ import { runSourceCommand } from "./commands/source.js";
26
+ import { runTemplateCommand } from "./commands/template-runner.js";
27
+ import { runTrustCommand } from "./commands/trust.js";
28
+ import {
29
+ runWidgetBehaviorCommand,
30
+ runWidgetCheckCommand
31
+ } from "./commands/widget.js";
32
+ import {
33
+ runLegacyWorkflowCommand,
34
+ runValidateCommand
35
+ } from "./commands/workflow.js";
36
+ import { artifactTargetMigrationError } from "./migration-guidance.js";
37
+ import {
38
+ normalizeProjectRoot,
39
+ normalizeTopogramPath
40
+ } from "./path-normalization.js";
41
+ import { printQueryHelp, printUsage } from "./help-dispatch.js";
42
+ import { stableStringify } from "../format.js";
43
+
44
+ /**
45
+ * @typedef {Record<string, any>} CommandArgs
46
+ * @typedef {Record<string, any>} CliOptions
47
+ */
48
+
49
+ /**
50
+ * Preserve legacy runtime behavior while satisfying the checked JS boundary.
51
+ * Some command paths intentionally let downstream commands produce the missing
52
+ * argument diagnostic.
53
+ *
54
+ * @param {string|null|undefined} value
55
+ * @returns {string}
56
+ */
57
+ function commandInputPath(value) {
58
+ return /** @type {string} */ (value);
59
+ }
60
+
61
+ /**
62
+ * @param {{
63
+ * args: string[],
64
+ * commandArgs: CommandArgs|null,
65
+ * inputPath: string|null|undefined,
66
+ * cliOptions: CliOptions,
67
+ * executablePath: string
68
+ * }} context
69
+ * @returns {Promise<number>}
70
+ */
71
+ export async function runCliDispatch(context) {
72
+ const { args, commandArgs, cliOptions, executablePath } = context;
73
+ let inputPath = context.inputPath;
74
+ const {
75
+ emitJson,
76
+ shouldForce,
77
+ shouldValidate,
78
+ shouldResolve,
79
+ generateTarget,
80
+ workflowName,
81
+ workflowId,
82
+ fromValue,
83
+ adoptValue,
84
+ reasonValue,
85
+ modeId,
86
+ profileId,
87
+ providerId,
88
+ presetId,
89
+ templateName,
90
+ catalogSource,
91
+ requestedVersion,
92
+ bundleSlug,
93
+ laneId,
94
+ fromSnapshotPath,
95
+ fromTopogramPath,
96
+ shouldWrite,
97
+ refreshAdopted,
98
+ outPath,
99
+ effectiveOutDir
100
+ } = cliOptions;
101
+ const {
102
+ shapeId,
103
+ capabilityId,
104
+ projectionId,
105
+ widgetId: componentId,
106
+ entityId,
107
+ journeyId,
108
+ surfaceId,
109
+ domainId,
110
+ seamId,
111
+ taskId,
112
+ pitchId,
113
+ requirementId,
114
+ acceptanceId,
115
+ bugId,
116
+ documentId,
117
+ kind: sdlcKind,
118
+ appVersion: sdlcAppVersion,
119
+ sinceTag: sdlcSinceTag,
120
+ includeArchived: sdlcIncludeArchived
121
+ } = cliOptions.selectors;
122
+ const shouldVersion = Boolean(commandArgs?.version);
123
+ const shouldDoctor = Boolean(commandArgs?.doctor);
124
+ const shouldCheck = Boolean(commandArgs?.check);
125
+ const shouldWidgetCheck = Boolean(commandArgs?.widgetCheck);
126
+ const shouldWidgetBehavior = Boolean(commandArgs?.widgetBehavior);
127
+ const shouldAgentBrief = Boolean(commandArgs?.agentBrief);
128
+ const shouldQueryList = Boolean(commandArgs?.queryList);
129
+ const shouldQueryShow = Boolean(commandArgs?.queryShow);
130
+ const targetMigrationError = artifactTargetMigrationError(generateTarget);
131
+ if (targetMigrationError) {
132
+ console.error(targetMigrationError);
133
+ return 1;
134
+ }
135
+
136
+ if ((shouldCheck || shouldWidgetCheck || shouldWidgetBehavior || commandArgs?.generatorPolicyCommand || shouldValidate || commandArgs?.trustCommand || commandArgs?.sourceCommand || generateTarget === "app-bundle") && !inputPath) {
137
+ console.error("Missing required <path>.");
138
+ printUsage();
139
+ return 1;
140
+ }
141
+
142
+ if (shouldQueryShow && !commandArgs?.queryShowName) {
143
+ console.error("Missing required <name>.");
144
+ printQueryHelp();
145
+ return 1;
146
+ }
147
+
148
+ if ((shouldCheck || shouldWidgetCheck || shouldWidgetBehavior || shouldAgentBrief || shouldValidate || commandArgs?.generatorPolicyCommand || commandArgs?.trustCommand || generateTarget === "app-bundle") && inputPath) {
149
+ inputPath = normalizeTopogramPath(inputPath);
150
+ }
151
+ const effectiveInputPath = commandInputPath(inputPath);
152
+
153
+ if (shouldVersion) {
154
+ const payload = buildVersionPayload({ executablePath });
155
+ if (emitJson) {
156
+ console.log(stableStringify(payload));
157
+ } else {
158
+ printVersion(payload);
159
+ }
160
+ return 0;
161
+ }
162
+
163
+ if (shouldDoctor) {
164
+ const payload = buildDoctorPayload(catalogSource || inputPath || null);
165
+ if (emitJson) {
166
+ console.log(stableStringify(payload));
167
+ } else {
168
+ printDoctor(payload);
169
+ }
170
+ return payload.ok ? 0 : 1;
171
+ }
172
+
173
+ if (shouldAgentBrief) {
174
+ return runAgentBriefCommand(effectiveInputPath, { json: emitJson });
175
+ }
176
+
177
+ if (commandArgs?.releaseCommand) {
178
+ return runReleaseCommand({ commandArgs, args, json: emitJson });
179
+ }
180
+
181
+ if (shouldQueryList) {
182
+ const payload = buildQueryListPayload();
183
+ if (emitJson) {
184
+ console.log(stableStringify(payload));
185
+ } else {
186
+ printQueryList(payload);
187
+ }
188
+ return 0;
189
+ }
190
+
191
+ if (shouldQueryShow) {
192
+ const payload = buildQueryShowPayload(/** @type {string} */ (commandArgs?.queryShowName));
193
+ if (emitJson) {
194
+ console.log(stableStringify(payload));
195
+ } else {
196
+ printQueryDefinition(payload);
197
+ }
198
+ return 0;
199
+ }
200
+
201
+ if (shouldWidgetCheck) {
202
+ return runWidgetCheckCommand(effectiveInputPath, {
203
+ json: emitJson,
204
+ projectionId,
205
+ widgetId: componentId
206
+ });
207
+ }
208
+
209
+ if (shouldWidgetBehavior) {
210
+ return runWidgetBehaviorCommand(effectiveInputPath, {
211
+ json: emitJson,
212
+ projectionId,
213
+ widgetId: componentId
214
+ });
215
+ }
216
+
217
+ if (commandArgs?.generatorCommand) {
218
+ return runGeneratorCommand({
219
+ commandArgs,
220
+ inputPath,
221
+ json: emitJson,
222
+ cwd: process.cwd()
223
+ });
224
+ }
225
+
226
+ if (commandArgs?.generatorPolicyCommand) {
227
+ return runGeneratorPolicyCommand({ commandArgs, inputPath, json: emitJson });
228
+ }
229
+
230
+ if (commandArgs?.catalogCommand) {
231
+ return runCatalogCommand({
232
+ commandArgs,
233
+ inputPath,
234
+ catalogSource,
235
+ requestedVersion,
236
+ json: emitJson
237
+ });
238
+ }
239
+
240
+ if (commandArgs?.packageCommand) {
241
+ return runPackageCommand({ commandArgs, inputPath, json: emitJson });
242
+ }
243
+
244
+ if (commandArgs?.importCommand) {
245
+ return runImportCommand({
246
+ commandArgs,
247
+ inputPath,
248
+ outPath,
249
+ fromValue,
250
+ reasonValue,
251
+ refreshAdopted,
252
+ dryRun: args.includes("--dry-run"),
253
+ write: shouldWrite,
254
+ force: shouldForce,
255
+ json: emitJson
256
+ });
257
+ }
258
+
259
+ if (commandArgs?.sourceCommand) {
260
+ return runSourceCommand({ commandArgs, inputPath, args, json: emitJson });
261
+ }
262
+
263
+ if (commandArgs?.newProject) {
264
+ return runNewProjectCommand(effectiveInputPath, { templateName, catalogSource, cwd: process.cwd() });
265
+ }
266
+
267
+ if (commandArgs?.templateCommand) {
268
+ return runTemplateCommand({
269
+ commandArgs,
270
+ args,
271
+ inputPath,
272
+ catalogSource,
273
+ templateName,
274
+ outPath,
275
+ json: emitJson
276
+ });
277
+ }
278
+
279
+ if (commandArgs?.trustCommand) {
280
+ return runTrustCommand({ commandArgs, inputPath, json: emitJson });
281
+ }
282
+
283
+ if (shouldCheck) {
284
+ return runCheckCommand(effectiveInputPath, { json: emitJson });
285
+ }
286
+
287
+ if (commandArgs?.queryName || commandArgs?.workflowPresetCommand) {
288
+ return (await runQueryCommand({
289
+ commandArgs,
290
+ inputPath,
291
+ capabilityId,
292
+ workflowId,
293
+ projectionId,
294
+ componentId,
295
+ entityId,
296
+ journeyId,
297
+ surfaceId,
298
+ domainId,
299
+ seamId,
300
+ modeId,
301
+ providerId,
302
+ presetId,
303
+ bundleSlug,
304
+ laneId,
305
+ fromTopogramPath,
306
+ shouldWrite,
307
+ outPath
308
+ })) || 0;
309
+ }
310
+
311
+ if (commandArgs?.sdlcCommand) {
312
+ return runSdlcCommand({ commandArgs, args, inputPath });
313
+ }
314
+
315
+ if (workflowName) {
316
+ return runLegacyWorkflowCommand({
317
+ workflowName,
318
+ inputPath,
319
+ from: fromValue,
320
+ adopt: adoptValue,
321
+ write: shouldWrite,
322
+ refreshAdopted,
323
+ outDir: effectiveOutDir
324
+ });
325
+ }
326
+
327
+ if (generateTarget === "app-bundle" && shouldWrite && !commandArgs?.emitArtifact) {
328
+ return runGenerateAppCommand({
329
+ inputPath: effectiveInputPath,
330
+ projectRoot: normalizeProjectRoot(effectiveInputPath),
331
+ outDir: effectiveOutDir,
332
+ profileId
333
+ });
334
+ }
335
+
336
+ if (generateTarget) {
337
+ return runEmitCommand({
338
+ inputPath: effectiveInputPath,
339
+ projectRoot: normalizeProjectRoot(effectiveInputPath),
340
+ target: generateTarget,
341
+ write: shouldWrite,
342
+ outDir: effectiveOutDir,
343
+ profileId,
344
+ fromSnapshotPath,
345
+ fromTopogramPath,
346
+ selectors: {
347
+ shapeId,
348
+ capabilityId,
349
+ workflowId,
350
+ projectionId,
351
+ widgetId: componentId,
352
+ componentId,
353
+ entityId,
354
+ journeyId,
355
+ surfaceId,
356
+ domainId,
357
+ taskId,
358
+ pitchId,
359
+ requirementId,
360
+ acceptanceId,
361
+ bugId,
362
+ documentId,
363
+ kind: sdlcKind,
364
+ appVersion: sdlcAppVersion,
365
+ sinceTag: sdlcSinceTag,
366
+ includeArchived: sdlcIncludeArchived,
367
+ modeId
368
+ },
369
+ outputSelectors: {
370
+ shapeId,
371
+ capabilityId,
372
+ workflowId,
373
+ projectionId,
374
+ componentId,
375
+ entityId,
376
+ journeyId,
377
+ taskId,
378
+ modeId
379
+ }
380
+ });
381
+ }
382
+
383
+ if (shouldResolve) {
384
+ return runResolveCommand(inputPath);
385
+ }
386
+
387
+ if (shouldValidate) {
388
+ return runValidateCommand(inputPath);
389
+ }
390
+
391
+ return runParseCommand(inputPath, { json: emitJson });
392
+ }
@@ -0,0 +1,188 @@
1
+ // @ts-check
2
+
3
+ import {
4
+ printAgentHelp
5
+ } from "./commands/agent.js";
6
+ import {
7
+ printCatalogHelp
8
+ } from "./commands/catalog.js";
9
+ import {
10
+ printCheckHelp
11
+ } from "./commands/check.js";
12
+ import {
13
+ printDoctorHelp
14
+ } from "./commands/doctor.js";
15
+ import {
16
+ printGeneratorHelp
17
+ } from "./commands/generator.js";
18
+ import {
19
+ printImportHelp
20
+ } from "./commands/import.js";
21
+ import {
22
+ printPackageHelp
23
+ } from "./commands/package.js";
24
+ import {
25
+ printQueryHelp
26
+ } from "./commands/query.js";
27
+ import {
28
+ printReleaseHelp
29
+ } from "./commands/release.js";
30
+ import {
31
+ printSetupHelp
32
+ } from "./commands/setup.js";
33
+ import {
34
+ printSourceHelp
35
+ } from "./commands/source.js";
36
+ import {
37
+ printTemplateHelp
38
+ } from "./commands/template.js";
39
+ import {
40
+ printTrustHelp
41
+ } from "./commands/trust.js";
42
+ import {
43
+ printEmitHelp,
44
+ printGenerateHelp,
45
+ printNewHelp,
46
+ printUsage,
47
+ printWidgetHelp
48
+ } from "./help.js";
49
+
50
+ /**
51
+ * @param {string|undefined} command
52
+ * @returns {boolean}
53
+ */
54
+ export function printCommandHelp(command) {
55
+ if (command === "new" || command === "create") {
56
+ printNewHelp();
57
+ return true;
58
+ }
59
+ if (command === "generate") {
60
+ printGenerateHelp();
61
+ return true;
62
+ }
63
+ if (command === "emit") {
64
+ printEmitHelp();
65
+ return true;
66
+ }
67
+ if (command === "widget") {
68
+ printWidgetHelp();
69
+ return true;
70
+ }
71
+ if (command === "query") {
72
+ printQueryHelp();
73
+ return true;
74
+ }
75
+ if (command === "agent") {
76
+ printAgentHelp();
77
+ return true;
78
+ }
79
+ if (command === "generator") {
80
+ printGeneratorHelp();
81
+ return true;
82
+ }
83
+ if (command === "template") {
84
+ printTemplateHelp();
85
+ return true;
86
+ }
87
+ if (command === "catalog") {
88
+ printCatalogHelp();
89
+ return true;
90
+ }
91
+ if (command === "doctor") {
92
+ printDoctorHelp();
93
+ return true;
94
+ }
95
+ if (command === "setup") {
96
+ printSetupHelp();
97
+ return true;
98
+ }
99
+ if (command === "package") {
100
+ printPackageHelp();
101
+ return true;
102
+ }
103
+ if (command === "release") {
104
+ printReleaseHelp();
105
+ return true;
106
+ }
107
+ if (command === "source") {
108
+ printSourceHelp();
109
+ return true;
110
+ }
111
+ if (command === "trust") {
112
+ printTrustHelp();
113
+ return true;
114
+ }
115
+ if (command === "import") {
116
+ printImportHelp();
117
+ return true;
118
+ }
119
+ if (command === "check") {
120
+ printCheckHelp();
121
+ return true;
122
+ }
123
+ return false;
124
+ }
125
+
126
+ /**
127
+ * @param {string[]} args
128
+ * @returns {number|null}
129
+ */
130
+ export function handleGlobalHelp(args) {
131
+ if (args[0] === "help" && args[1] && args[1] !== "all" && printCommandHelp(args[1])) {
132
+ return 0;
133
+ }
134
+
135
+ if (args[0] !== "version" && (args.includes("--help") || args.includes("-h")) && printCommandHelp(args[0])) {
136
+ return 0;
137
+ }
138
+
139
+ if (args.length === 0 || (args[0] !== "version" && args.includes("--help")) || args.includes("-h") || args[0] === "help") {
140
+ printUsage({ all: args[1] === "all" || args.includes("--all") });
141
+ return args.length === 0 ? 1 : 0;
142
+ }
143
+
144
+ if (args[0] === "help-all") {
145
+ printUsage({ all: true });
146
+ return 0;
147
+ }
148
+
149
+ return null;
150
+ }
151
+
152
+ /**
153
+ * @param {string[]} args
154
+ * @returns {number|null}
155
+ */
156
+ export function handleUnparsedCommandHelp(args) {
157
+ if (args[0] === "widget") {
158
+ printWidgetHelp();
159
+ return args[1] ? 1 : 0;
160
+ }
161
+ if (args[0] === "agent") {
162
+ printAgentHelp();
163
+ return args[1] ? 1 : 0;
164
+ }
165
+ if (args[0] === "generator") {
166
+ printGeneratorHelp();
167
+ return args[1] ? 1 : 0;
168
+ }
169
+ if (args[0] === "template") {
170
+ printTemplateHelp();
171
+ return args[1] ? 1 : 0;
172
+ }
173
+ if (args[0] === "import") {
174
+ printImportHelp();
175
+ return args[1] ? 1 : 0;
176
+ }
177
+ if (args[0] === "query") {
178
+ printQueryHelp();
179
+ return args[1] ? 1 : 0;
180
+ }
181
+ return null;
182
+ }
183
+
184
+ export {
185
+ printEmitHelp,
186
+ printQueryHelp,
187
+ printUsage
188
+ };