@topogram/cli 0.3.64 → 0.3.66
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 +1 -1
- package/src/adoption/plan/index.js +716 -0
- package/src/adoption/plan.js +12 -703
- package/src/adoption/reporting.js +1 -1
- package/src/agent-brief.js +7 -21
- package/src/agent-ops/query-builders/auth.js +375 -0
- package/src/agent-ops/query-builders/change-risk/change-plan.js +123 -0
- package/src/agent-ops/query-builders/change-risk/import-plan.js +49 -0
- package/src/agent-ops/query-builders/change-risk/maintained.js +286 -0
- package/src/agent-ops/query-builders/change-risk/review-packets.js +123 -0
- package/src/agent-ops/query-builders/change-risk/risk.js +189 -0
- package/src/agent-ops/query-builders/change-risk.js +25 -0
- package/src/agent-ops/query-builders/common.js +149 -0
- package/src/agent-ops/query-builders/maintained-risk.js +539 -0
- package/src/agent-ops/query-builders/maintained-shared.js +120 -0
- package/src/agent-ops/query-builders/multi-agent.js +547 -0
- package/src/agent-ops/query-builders/projection-impacts.js +514 -0
- package/src/agent-ops/query-builders/work-packets.js +417 -0
- package/src/agent-ops/query-builders/workflow-context-shared.js +300 -0
- package/src/agent-ops/query-builders/workflow-context.js +398 -0
- package/src/agent-ops/query-builders/workflow-presets-core.js +677 -0
- package/src/agent-ops/query-builders/workflow-presets.js +341 -0
- package/src/agent-ops/query-builders.d.ts +26 -26
- package/src/agent-ops/query-builders.js +42 -5021
- package/src/archive/jsonl.js +2 -2
- package/src/archive/resolver-bridge.js +1 -1
- package/src/archive/unarchive.js +2 -1
- package/src/catalog/constants.js +10 -0
- package/src/catalog/copy.js +65 -0
- package/src/catalog/diagnostics.js +15 -0
- package/src/catalog/entries.js +42 -0
- package/src/catalog/files.js +67 -0
- package/src/catalog/provenance.js +123 -0
- package/src/catalog/source.js +150 -0
- package/src/catalog/validation.js +252 -0
- package/src/catalog.d.ts +2 -0
- package/src/catalog.js +18 -746
- package/src/cli/command-parsers/project.js +3 -0
- package/src/cli/command-parsers/shared.js +1 -1
- package/src/cli/commands/agent.js +2 -2
- package/src/cli/commands/catalog/check.js +31 -0
- package/src/cli/commands/catalog/copy.js +59 -0
- package/src/cli/commands/catalog/doctor.js +248 -0
- package/src/cli/commands/catalog/help.js +21 -0
- package/src/cli/commands/catalog/list.js +52 -0
- package/src/cli/commands/catalog/runner.js +92 -0
- package/src/cli/commands/catalog/shared.js +17 -0
- package/src/cli/commands/catalog/show.js +134 -0
- package/src/cli/commands/catalog.js +30 -615
- package/src/cli/commands/check.js +3 -3
- package/src/cli/commands/doctor.js +2 -9
- package/src/cli/commands/generator-policy/package-info.js +162 -0
- package/src/cli/commands/generator-policy/payloads.js +372 -0
- package/src/cli/commands/generator-policy/printers.js +159 -0
- package/src/cli/commands/generator-policy/runner.js +81 -0
- package/src/cli/commands/generator-policy/shared.js +39 -0
- package/src/cli/commands/generator-policy.js +15 -783
- package/src/cli/commands/import/adopt.js +170 -0
- package/src/cli/commands/import/check.js +91 -0
- package/src/cli/commands/import/diff.js +84 -0
- package/src/cli/commands/import/help.js +47 -0
- package/src/cli/commands/import/paths.js +269 -0
- package/src/cli/commands/import/plan.js +292 -0
- package/src/cli/commands/import/refresh.js +471 -0
- package/src/cli/commands/import/status-history.js +196 -0
- package/src/cli/commands/import/workspace.js +233 -0
- package/src/cli/commands/import.js +33 -1732
- package/src/cli/commands/migrate.js +153 -0
- package/src/cli/commands/package/constants.js +17 -0
- package/src/cli/commands/package/doctor.js +240 -0
- package/src/cli/commands/package/help.js +27 -0
- package/src/cli/commands/package/lockfile.js +135 -0
- package/src/cli/commands/package/npm.js +97 -0
- package/src/cli/commands/package/reporting.js +35 -0
- package/src/cli/commands/package/runner.js +33 -0
- package/src/cli/commands/package/shared.js +9 -0
- package/src/cli/commands/package/update-cli.js +252 -0
- package/src/cli/commands/package/versions.js +35 -0
- package/src/cli/commands/package.js +29 -813
- package/src/cli/commands/query/change-plan.js +68 -0
- package/src/cli/commands/query/definitions.js +202 -0
- package/src/cli/commands/query/import-adopt.js +121 -0
- package/src/cli/commands/query/runner/artifacts.js +102 -0
- package/src/cli/commands/query/runner/boundaries.js +211 -0
- package/src/cli/commands/query/runner/change.js +182 -0
- package/src/cli/commands/query/runner/import-adopt.js +111 -0
- package/src/cli/commands/query/runner/index.js +31 -0
- package/src/cli/commands/query/runner/output.js +12 -0
- package/src/cli/commands/query/runner/workflow.js +241 -0
- package/src/cli/commands/query/runner.js +3 -0
- package/src/cli/commands/query/workflow-context.js +5 -0
- package/src/cli/commands/query/workspace.js +270 -0
- package/src/cli/commands/query.js +9 -1300
- package/src/cli/commands/source.js +3 -12
- package/src/cli/commands/template/baseline.js +100 -0
- package/src/cli/commands/template/check.js +467 -0
- package/src/cli/commands/template/constants.js +8 -0
- package/src/cli/commands/template/diagnostics.js +26 -0
- package/src/cli/commands/template/help.js +28 -0
- package/src/cli/commands/template/lifecycle.js +404 -0
- package/src/cli/commands/template/list-show.js +287 -0
- package/src/cli/commands/template/policy.js +422 -0
- package/src/cli/commands/template/shared.js +127 -0
- package/src/cli/commands/template/updates.js +352 -0
- package/src/cli/commands/template-runner.js +6 -6
- package/src/cli/commands/template.js +41 -2143
- package/src/cli/commands/trust.js +1 -1
- package/src/cli/commands/workflow.js +6 -1
- package/src/cli/dispatcher.js +6 -1
- package/src/cli/help.js +15 -14
- package/src/cli/migration-guidance.js +1 -1
- package/src/cli/output-safety.js +2 -1
- package/src/cli/path-normalization.js +3 -13
- package/src/generator/api/contracts.js +497 -0
- package/src/generator/api/metadata.js +221 -0
- package/src/generator/api/openapi.js +559 -0
- package/src/generator/api/schema.js +124 -0
- package/src/generator/api/types.d.ts +98 -0
- package/src/generator/api.js +3 -1195
- package/src/generator/context/domain-page.js +1 -1
- package/src/generator/context/shared/domain-sdlc.js +282 -0
- package/src/generator/context/shared/maintained-boundary.js +665 -0
- package/src/generator/context/shared/metrics.js +85 -0
- package/src/generator/context/shared/primitives.js +64 -0
- package/src/generator/context/shared/relationships.js +453 -0
- package/src/generator/context/shared/summaries.js +263 -0
- package/src/generator/context/shared/types.d.ts +207 -0
- package/src/generator/context/shared.d.ts +42 -0
- package/src/generator/context/shared.js +80 -1390
- package/src/generator/context/slice/core.js +397 -0
- package/src/generator/context/slice/sdlc.js +417 -0
- package/src/generator/context/slice/ui-packets.js +183 -0
- package/src/generator/context/slice.js +2 -859
- package/src/generator/context/task-mode.js +2 -2
- package/src/generator/registry/index.js +507 -0
- package/src/generator/registry.js +18 -504
- package/src/generator/runtime/environment/index.js +666 -0
- package/src/generator/runtime/environment.js +4 -666
- package/src/generator/runtime/runtime-check/index.js +554 -0
- package/src/generator/runtime/runtime-check.js +4 -554
- package/src/generator/runtime/shared/index.js +572 -0
- package/src/generator/runtime/shared.js +19 -570
- package/src/generator/sdlc/doc-page.js +1 -1
- package/src/generator/shared.d.ts +2 -0
- package/src/generator/surfaces/databases/lifecycle-shared.js +1 -1
- package/src/generator/surfaces/native/swiftui-templates/README.generated.md +1 -1
- package/src/generator/surfaces/shared.d.ts +3 -0
- package/src/generator/widget-conformance/behavior-report.js +258 -0
- package/src/generator/widget-conformance/checks.js +371 -0
- package/src/generator/widget-conformance/projection-context.js +200 -0
- package/src/generator/widget-conformance/report.js +166 -0
- package/src/generator/widget-conformance/types.d.ts +121 -0
- package/src/generator/widget-conformance.js +3 -824
- package/src/import/core/context.d.ts +3 -0
- package/src/import/core/context.js +5 -7
- package/src/import/core/contracts.d.ts +1 -0
- package/src/import/core/registry.d.ts +4 -0
- package/src/import/core/runner/candidates.js +337 -0
- package/src/import/core/runner/options.js +22 -0
- package/src/import/core/runner/reports.js +51 -0
- package/src/import/core/runner/run.js +79 -0
- package/src/import/core/runner/tracks.js +150 -0
- package/src/import/core/runner/ui-drafts.js +393 -0
- package/src/import/core/runner.js +3 -698
- package/src/import/core/shared/api-routes.js +221 -0
- package/src/import/core/shared/candidates.js +97 -0
- package/src/import/core/shared/files.js +177 -0
- package/src/import/core/shared/next-app.js +389 -0
- package/src/import/core/shared/types.d.ts +51 -0
- package/src/import/core/shared/ui-routes.js +230 -0
- package/src/import/core/shared.js +60 -861
- package/src/new-project/constants.js +128 -0
- package/src/new-project/create.js +90 -0
- package/src/new-project/json.js +28 -0
- package/src/new-project/metadata.js +96 -0
- package/src/new-project/package-spec.js +161 -0
- package/src/new-project/project-files.js +351 -0
- package/src/new-project/template-policy.js +269 -0
- package/src/new-project/template-resolution.js +370 -0
- package/src/new-project/template-snapshots.js +442 -0
- package/src/new-project/template-updates.js +512 -0
- package/src/new-project/types.d.ts +83 -0
- package/src/new-project.js +6 -2277
- package/src/parser.d.ts +87 -1
- package/src/parser.js +118 -0
- package/src/policy/review-boundaries.d.ts +15 -0
- package/src/project-config/index.js +591 -0
- package/src/project-config.js +19 -561
- package/src/resolver/enrich/acceptance-criterion.js +2 -0
- package/src/resolver/enrich/bug.js +2 -0
- package/src/resolver/enrich/pitch.js +2 -0
- package/src/resolver/enrich/requirement.js +2 -0
- package/src/resolver/enrich/task.js +2 -0
- package/src/resolver/index.js +19 -2089
- package/src/resolver/normalize.js +384 -1
- package/src/resolver/plans.js +168 -0
- package/src/resolver/projections-api.js +494 -0
- package/src/resolver/projections-db.js +133 -0
- package/src/resolver/projections-ui.js +317 -0
- package/src/resolver/shapes.js +251 -0
- package/src/resolver/shared.js +278 -0
- package/src/resolver/widgets.js +132 -0
- package/src/sdlc/adopt.js +6 -5
- package/src/sdlc/paths.js +3 -5
- package/src/sdlc/scaffold.js +2 -1
- package/src/template-trust/constants.js +62 -0
- package/src/template-trust/content.js +258 -0
- package/src/template-trust/diff.js +92 -0
- package/src/template-trust/policy.js +61 -0
- package/src/template-trust/record.js +90 -0
- package/src/template-trust/status.js +182 -0
- package/src/template-trust.js +24 -687
- package/src/text-helpers.d.ts +1 -0
- package/src/topogram-types.d.ts +69 -0
- package/src/validator/common.js +488 -0
- package/src/validator/data-model.js +237 -0
- package/src/validator/docs.js +167 -0
- package/src/validator/expressions.js +146 -1
- package/src/validator/index.d.ts +23 -0
- package/src/validator/index.js +32 -3585
- package/src/validator/kinds.d.ts +41 -0
- package/src/validator/kinds.js +2 -0
- package/src/validator/model-helpers.js +46 -0
- package/src/validator/per-kind/acceptance-criterion.js +5 -0
- package/src/validator/per-kind/bug.js +6 -0
- package/src/validator/per-kind/domain.js +15 -2
- package/src/validator/per-kind/pitch.js +7 -0
- package/src/validator/per-kind/requirement.js +5 -0
- package/src/validator/per-kind/task.js +7 -0
- package/src/validator/per-kind/widget.js +14 -0
- package/src/validator/projections/api-http-async.js +410 -0
- package/src/validator/projections/api-http-authz.js +88 -0
- package/src/validator/projections/api-http-core.js +205 -0
- package/src/validator/projections/api-http-policies.js +339 -0
- package/src/validator/projections/api-http-responses.js +233 -0
- package/src/validator/projections/api-http.js +44 -0
- package/src/validator/projections/db.js +353 -0
- package/src/validator/projections/generator-defaults.js +45 -0
- package/src/validator/projections/helpers.js +87 -0
- package/src/validator/projections/ui-helpers.js +214 -0
- package/src/validator/projections/ui-navigation.js +344 -0
- package/src/validator/projections/ui-structure.js +364 -0
- package/src/validator/projections/ui-widgets.js +493 -0
- package/src/validator/projections/ui.js +46 -0
- package/src/validator/registry.js +48 -1
- package/src/validator/utils.d.ts +20 -0
- package/src/validator/utils.js +115 -12
- package/src/widget-behavior.d.ts +1 -0
- package/src/workflows/import-app/api/collect.js +221 -0
- package/src/workflows/import-app/api/openapi.js +257 -0
- package/src/workflows/import-app/api/routes.js +327 -0
- package/src/workflows/import-app/api/sources.js +22 -0
- package/src/workflows/import-app/api.js +2 -797
- package/src/workflows/reconcile/adoption-plan/build.js +212 -0
- package/src/workflows/reconcile/adoption-plan/dependencies.js +75 -0
- package/src/workflows/reconcile/adoption-plan/outputs.js +153 -0
- package/src/workflows/reconcile/adoption-plan/paths.js +58 -0
- package/src/workflows/reconcile/adoption-plan/projection-patches.js +177 -0
- package/src/workflows/reconcile/adoption-plan/reasons.js +107 -0
- package/src/workflows/reconcile/adoption-plan.js +30 -740
- package/src/workflows/reconcile/auth/closures.js +115 -0
- package/src/workflows/reconcile/auth/formatters.js +142 -0
- package/src/workflows/reconcile/auth/inference.js +330 -0
- package/src/workflows/reconcile/auth/roles.js +122 -0
- package/src/workflows/reconcile/auth.js +35 -690
- package/src/workflows/reconcile/bundle-core/index.js +600 -0
- package/src/workflows/reconcile/bundle-core.js +12 -598
- package/src/workflows/reconcile/candidate-model.js +18 -2
- package/src/workflows/reconcile/canonical-surface.js +1 -1
- package/src/workflows/reconcile/impacts/adoption-plan.js +196 -0
- package/src/workflows/reconcile/impacts/indexes.js +105 -0
- package/src/workflows/reconcile/impacts/patches.js +252 -0
- package/src/workflows/reconcile/impacts/reports.js +80 -0
- package/src/workflows/reconcile/impacts.js +14 -623
- package/src/workflows/reconcile/renderers.js +41 -6
- package/src/workflows/shared.js +5 -11
- package/src/workspace-docs.d.ts +29 -0
- package/src/workspace-paths.js +328 -0
|
@@ -205,7 +205,7 @@ export function runTrustDiffCommand(inputPath, options = {}) {
|
|
|
205
205
|
* @returns {number}
|
|
206
206
|
*/
|
|
207
207
|
export function runTrustCommand(context) {
|
|
208
|
-
const inputPath = context.inputPath || "./
|
|
208
|
+
const inputPath = context.inputPath || "./topo";
|
|
209
209
|
if (context.commandArgs.trustCommand === "template") {
|
|
210
210
|
return runTrustTemplateCommand(inputPath, { force: Boolean(context.commandArgs.force) });
|
|
211
211
|
}
|
|
@@ -6,6 +6,7 @@ import path from "node:path";
|
|
|
6
6
|
import { stableStringify } from "../../format.js";
|
|
7
7
|
import { parsePath } from "../../parser.js";
|
|
8
8
|
import { formatValidationErrors, validateWorkspace } from "../../validator.js";
|
|
9
|
+
import { resolveTopoRoot } from "../../workspace-paths.js";
|
|
9
10
|
import { runWorkflow } from "../../workflows.js";
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -13,7 +14,11 @@ import { runWorkflow } from "../../workflows.js";
|
|
|
13
14
|
* @returns {number}
|
|
14
15
|
*/
|
|
15
16
|
export function runValidateCommand(inputPath) {
|
|
16
|
-
const
|
|
17
|
+
const requestedPath = inputPath || ".";
|
|
18
|
+
const targetPath = fs.existsSync(requestedPath) && fs.statSync(requestedPath).isFile()
|
|
19
|
+
? requestedPath
|
|
20
|
+
: resolveTopoRoot(requestedPath);
|
|
21
|
+
const ast = parsePath(targetPath);
|
|
17
22
|
const result = validateWorkspace(ast);
|
|
18
23
|
if (!result.ok) {
|
|
19
24
|
console.error(formatValidationErrors(result));
|
package/src/cli/dispatcher.js
CHANGED
|
@@ -10,6 +10,7 @@ import { runGenerateAppCommand } from "./commands/generate.js";
|
|
|
10
10
|
import { runGeneratorCommand } from "./commands/generator.js";
|
|
11
11
|
import { runGeneratorPolicyCommand } from "./commands/generator-policy.js";
|
|
12
12
|
import { runImportCommand } from "./commands/import-runner.js";
|
|
13
|
+
import { runMigrateCommand } from "./commands/migrate.js";
|
|
13
14
|
import { runNewProjectCommand } from "./commands/new.js";
|
|
14
15
|
import { runPackageCommand } from "./commands/package.js";
|
|
15
16
|
import { runParseCommand, runResolveCommand } from "./commands/inspect.js";
|
|
@@ -145,7 +146,7 @@ export async function runCliDispatch(context) {
|
|
|
145
146
|
return 1;
|
|
146
147
|
}
|
|
147
148
|
|
|
148
|
-
if ((shouldCheck || shouldWidgetCheck || shouldWidgetBehavior || shouldAgentBrief || shouldValidate || commandArgs?.generatorPolicyCommand || commandArgs?.trustCommand ||
|
|
149
|
+
if ((shouldCheck || shouldWidgetCheck || shouldWidgetBehavior || shouldAgentBrief || shouldValidate || commandArgs?.generatorPolicyCommand || commandArgs?.trustCommand || commandArgs?.queryName || commandArgs?.workflowPresetCommand || generateTarget) && inputPath) {
|
|
149
150
|
inputPath = normalizeTopogramPath(inputPath);
|
|
150
151
|
}
|
|
151
152
|
const effectiveInputPath = commandInputPath(inputPath);
|
|
@@ -241,6 +242,10 @@ export async function runCliDispatch(context) {
|
|
|
241
242
|
return runPackageCommand({ commandArgs, inputPath, json: emitJson });
|
|
242
243
|
}
|
|
243
244
|
|
|
245
|
+
if (commandArgs?.migrateCommand) {
|
|
246
|
+
return runMigrateCommand(inputPath, { write: shouldWrite, json: emitJson });
|
|
247
|
+
}
|
|
248
|
+
|
|
244
249
|
if (commandArgs?.importCommand) {
|
|
245
250
|
return runImportCommand({
|
|
246
251
|
commandArgs,
|
package/src/cli/help.js
CHANGED
|
@@ -28,6 +28,7 @@ export function printUsage(options = {}) {
|
|
|
28
28
|
console.log(" or: topogram catalog doctor [--json] [--catalog <path-or-source>]");
|
|
29
29
|
console.log(" or: topogram catalog check <path-or-url> [--json]");
|
|
30
30
|
console.log(" or: topogram catalog copy <id> <target> [--version <version>] [--json] [--catalog <path-or-source>]");
|
|
31
|
+
console.log(" or: topogram migrate workspace-folder [path] [--dry-run|--write] [--json]");
|
|
31
32
|
console.log(" or: topogram package update-cli <version|--latest> [--json]");
|
|
32
33
|
console.log(" or: topogram import <app-path> --out <target> [--from <track[,track]>] [--json]");
|
|
33
34
|
console.log(" or: topogram import refresh [path] [--from <app-path>] [--dry-run] [--json]");
|
|
@@ -79,9 +80,9 @@ export function printUsage(options = {}) {
|
|
|
79
80
|
console.log(" topogram agent brief --json");
|
|
80
81
|
console.log(" topogram query list");
|
|
81
82
|
console.log(" topogram query show widget-behavior");
|
|
82
|
-
console.log(" topogram query widget-behavior ./
|
|
83
|
+
console.log(" topogram query widget-behavior ./topo --projection proj_web_surface --json");
|
|
83
84
|
console.log(" topogram emit ui-widget-contract --widget widget_data_grid --json");
|
|
84
|
-
console.log(" topogram emit widget-conformance-report ./
|
|
85
|
+
console.log(" topogram emit widget-conformance-report ./topo --projection proj_web_surface --json");
|
|
85
86
|
console.log(" topogram generator list");
|
|
86
87
|
console.log(" topogram generator show @topogram/generator-react-web");
|
|
87
88
|
console.log(" topogram generator check ./generator-package");
|
|
@@ -136,7 +137,7 @@ export function printUsage(options = {}) {
|
|
|
136
137
|
console.log(" topogram template update --check");
|
|
137
138
|
console.log(" topogram template update --apply");
|
|
138
139
|
console.log("");
|
|
139
|
-
console.log("Defaults: check/generate use ./
|
|
140
|
+
console.log("Defaults: check/generate use ./topo, and generate writes ./app.");
|
|
140
141
|
console.log("Default starter: hello-web from the catalog. Run `topogram template list` for catalog aliases.");
|
|
141
142
|
console.log("Generated app commands are emitted into the output package.json.");
|
|
142
143
|
console.log("Run `topogram help <command>` for command-specific help.");
|
|
@@ -231,13 +232,13 @@ export function printGenerateHelp() {
|
|
|
231
232
|
console.log("Usage: topogram generate [path] [--out <path>]");
|
|
232
233
|
console.log(" or: topogram generate app [path] [--out <path>]");
|
|
233
234
|
console.log("");
|
|
234
|
-
console.log("Defaults: path is ./
|
|
235
|
+
console.log("Defaults: path is ./topo and app generation writes ./app.");
|
|
235
236
|
console.log("Use `topogram emit <target>` for contracts, reports, snapshots, migration plans, and other artifacts.");
|
|
236
237
|
console.log("");
|
|
237
238
|
console.log("Examples:");
|
|
238
239
|
console.log(" topogram generate");
|
|
239
|
-
console.log(" topogram generate ./
|
|
240
|
-
console.log(" topogram generate app ./
|
|
240
|
+
console.log(" topogram generate ./topo --out ./app");
|
|
241
|
+
console.log(" topogram generate app ./topo --out ./app");
|
|
241
242
|
}
|
|
242
243
|
|
|
243
244
|
/**
|
|
@@ -249,7 +250,7 @@ export function printEmitHelp() {
|
|
|
249
250
|
console.log("");
|
|
250
251
|
console.log("Emits named contracts, reports, snapshots, migration plans, and other artifacts.");
|
|
251
252
|
console.log("");
|
|
252
|
-
console.log("Defaults: path is ./
|
|
253
|
+
console.log("Defaults: path is ./topo. Emit prints to stdout unless --write is passed. --write writes ./artifacts unless --out-dir is supplied.");
|
|
253
254
|
console.log("");
|
|
254
255
|
console.log("Common artifact targets:");
|
|
255
256
|
console.log(" ui-widget-contract");
|
|
@@ -268,10 +269,10 @@ export function printEmitHelp() {
|
|
|
268
269
|
console.log("");
|
|
269
270
|
console.log("Examples:");
|
|
270
271
|
console.log(" topogram emit ui-widget-contract --widget widget_data_grid --json");
|
|
271
|
-
console.log(" topogram emit widget-conformance-report ./
|
|
272
|
-
console.log(" topogram emit widget-behavior-report ./
|
|
273
|
-
console.log(" topogram emit db-schema-snapshot ./
|
|
274
|
-
console.log(" topogram emit sql-migration ./
|
|
272
|
+
console.log(" topogram emit widget-conformance-report ./topo --projection proj_web_surface --json");
|
|
273
|
+
console.log(" topogram emit widget-behavior-report ./topo --projection proj_web_surface --json");
|
|
274
|
+
console.log(" topogram emit db-schema-snapshot ./topo --projection proj_db_postgres --json");
|
|
275
|
+
console.log(" topogram emit sql-migration ./topo --projection proj_db_postgres --from-snapshot ./state/current.json");
|
|
275
276
|
console.log(" topogram emit ui-widget-contract --write --out-dir ./contracts");
|
|
276
277
|
}
|
|
277
278
|
|
|
@@ -284,13 +285,13 @@ export function printWidgetHelp() {
|
|
|
284
285
|
console.log("");
|
|
285
286
|
console.log("Checks projection widget_bindings usage against reusable widget contracts and behavior realizations.");
|
|
286
287
|
console.log("");
|
|
287
|
-
console.log("Defaults: path is ./
|
|
288
|
+
console.log("Defaults: path is ./topo.");
|
|
288
289
|
console.log("");
|
|
289
290
|
console.log("Examples:");
|
|
290
291
|
console.log(" topogram widget check");
|
|
291
292
|
console.log(" topogram widget check --projection proj_web_surface");
|
|
292
|
-
console.log(" topogram widget check ./
|
|
293
|
+
console.log(" topogram widget check ./topo --widget widget_data_grid --json");
|
|
293
294
|
console.log(" topogram widget behavior");
|
|
294
295
|
console.log(" topogram widget behavior --projection proj_web_surface");
|
|
295
|
-
console.log(" topogram widget behavior ./
|
|
296
|
+
console.log(" topogram widget behavior ./topo --widget widget_data_grid --json");
|
|
296
297
|
}
|
|
@@ -17,7 +17,7 @@ const RENAMED_GENERATE_TARGETS = new Map([
|
|
|
17
17
|
* @param {string} [fallback]
|
|
18
18
|
* @returns {string}
|
|
19
19
|
*/
|
|
20
|
-
function commandPath(args, index, fallback = "./
|
|
20
|
+
function commandPath(args, index, fallback = "./topo") {
|
|
21
21
|
const value = args[index];
|
|
22
22
|
return value && !value.startsWith("-") ? value : fallback;
|
|
23
23
|
}
|
package/src/cli/output-safety.js
CHANGED
|
@@ -5,6 +5,7 @@ import os from "node:os";
|
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
|
|
7
7
|
import { outputOwnershipForPath } from "../project-config.js";
|
|
8
|
+
import { DEFAULT_TOPO_FOLDER_NAME } from "../workspace-paths.js";
|
|
8
9
|
|
|
9
10
|
export const GENERATED_OUTPUT_SENTINEL = ".topogram-generated.json";
|
|
10
11
|
|
|
@@ -103,5 +104,5 @@ export function topogramInputPathForGeneration(inputPath) {
|
|
|
103
104
|
if (isSameOrInside(REPO_ROOT, absolute)) {
|
|
104
105
|
return `./${path.relative(REPO_ROOT, absolute).replace(/\\/g, "/")}`;
|
|
105
106
|
}
|
|
106
|
-
return path.basename(absolute) ===
|
|
107
|
+
return path.basename(absolute) === DEFAULT_TOPO_FOLDER_NAME ? `./${DEFAULT_TOPO_FOLDER_NAME}` : ".";
|
|
107
108
|
}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import path from "node:path";
|
|
3
|
+
import { resolveTopoRoot, resolveWorkspaceContext } from "../workspace-paths.js";
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* @param {string} inputPath
|
|
8
7
|
* @returns {string}
|
|
9
8
|
*/
|
|
10
9
|
export function normalizeTopogramPath(inputPath) {
|
|
11
|
-
|
|
12
|
-
if (path.basename(absolute) === "topogram") {
|
|
13
|
-
return absolute;
|
|
14
|
-
}
|
|
15
|
-
const candidate = path.join(absolute, "topogram");
|
|
16
|
-
return fs.existsSync(candidate) ? candidate : absolute;
|
|
10
|
+
return resolveTopoRoot(inputPath);
|
|
17
11
|
}
|
|
18
12
|
|
|
19
13
|
/**
|
|
@@ -21,9 +15,5 @@ export function normalizeTopogramPath(inputPath) {
|
|
|
21
15
|
* @returns {string}
|
|
22
16
|
*/
|
|
23
17
|
export function normalizeProjectRoot(inputPath) {
|
|
24
|
-
|
|
25
|
-
if (path.basename(absolute) === "topogram") {
|
|
26
|
-
return path.dirname(absolute);
|
|
27
|
-
}
|
|
28
|
-
return absolute;
|
|
18
|
+
return resolveWorkspaceContext(inputPath).projectRoot;
|
|
29
19
|
}
|