@metaobjectsdev/cli 1.0.12 → 1.1.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/README.md +32 -22
- package/dist/bin/meta.js +14 -2
- package/dist/bin/meta.js.map +1 -1
- package/dist/src/commands/docs.d.ts +1 -14
- package/dist/src/commands/docs.d.ts.map +1 -1
- package/dist/src/commands/docs.js +11 -835
- package/dist/src/commands/docs.js.map +1 -1
- package/dist/src/commands/eject.d.ts +24 -1
- package/dist/src/commands/eject.d.ts.map +1 -1
- package/dist/src/commands/eject.js +240 -69
- package/dist/src/commands/eject.js.map +1 -1
- package/dist/src/commands/gen.d.ts +7 -0
- package/dist/src/commands/gen.d.ts.map +1 -1
- package/dist/src/commands/gen.js +91 -21
- package/dist/src/commands/gen.js.map +1 -1
- package/dist/src/commands/generator.js +2 -2
- package/dist/src/commands/generator.js.map +1 -1
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +71 -36
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/migrate.d.ts +1 -1
- package/dist/src/commands/migrate.d.ts.map +1 -1
- package/dist/src/commands/migrate.js +224 -125
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/types.d.ts.map +1 -1
- package/dist/src/commands/types.js +16 -2
- package/dist/src/commands/types.js.map +1 -1
- package/dist/src/commands/upgrade.d.ts.map +1 -1
- package/dist/src/commands/upgrade.js +4 -1
- package/dist/src/commands/upgrade.js.map +1 -1
- package/dist/src/commands/verify.d.ts.map +1 -1
- package/dist/src/commands/verify.js +189 -125
- package/dist/src/commands/verify.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +59 -72
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/agent-context-staleness.d.ts +8 -1
- package/dist/src/lib/agent-context-staleness.d.ts.map +1 -1
- package/dist/src/lib/agent-context-staleness.js +20 -5
- package/dist/src/lib/agent-context-staleness.js.map +1 -1
- package/dist/src/lib/agent-schema.d.ts +9 -0
- package/dist/src/lib/agent-schema.d.ts.map +1 -0
- package/dist/src/lib/agent-schema.js +61 -0
- package/dist/src/lib/agent-schema.js.map +1 -0
- package/dist/src/lib/allow.d.ts +6 -0
- package/dist/src/lib/allow.d.ts.map +1 -1
- package/dist/src/lib/allow.js +49 -5
- package/dist/src/lib/allow.js.map +1 -1
- package/dist/src/lib/anti-patterns.d.ts.map +1 -1
- package/dist/src/lib/anti-patterns.js +4 -2
- package/dist/src/lib/anti-patterns.js.map +1 -1
- package/dist/src/lib/args.d.ts +51 -10
- package/dist/src/lib/args.d.ts.map +1 -1
- package/dist/src/lib/args.js +44 -18
- package/dist/src/lib/args.js.map +1 -1
- package/dist/src/lib/catalog-listing.d.ts +21 -1
- package/dist/src/lib/catalog-listing.d.ts.map +1 -1
- package/dist/src/lib/catalog-listing.js +85 -16
- package/dist/src/lib/catalog-listing.js.map +1 -1
- package/dist/src/lib/catalog.d.ts +30 -0
- package/dist/src/lib/catalog.d.ts.map +1 -1
- package/dist/src/lib/catalog.js +40 -5
- package/dist/src/lib/catalog.js.map +1 -1
- package/dist/src/lib/codegen-drift.d.ts +31 -2
- package/dist/src/lib/codegen-drift.d.ts.map +1 -1
- package/dist/src/lib/codegen-drift.js +109 -4
- package/dist/src/lib/codegen-drift.js.map +1 -1
- package/dist/src/lib/collection-load-options.d.ts +1 -1
- package/dist/src/lib/collection-load-options.d.ts.map +1 -1
- package/dist/src/lib/collection-load-options.js +1 -0
- package/dist/src/lib/collection-load-options.js.map +1 -1
- package/dist/src/lib/config.d.ts +4 -2
- package/dist/src/lib/config.d.ts.map +1 -1
- package/dist/src/lib/config.js +4 -2
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/decimal-precision-advisory.d.ts +10 -0
- package/dist/src/lib/decimal-precision-advisory.d.ts.map +1 -0
- package/dist/src/lib/decimal-precision-advisory.js +34 -0
- package/dist/src/lib/decimal-precision-advisory.js.map +1 -0
- package/dist/src/lib/deprecation-lint.d.ts.map +1 -1
- package/dist/src/lib/deprecation-lint.js +17 -26
- package/dist/src/lib/deprecation-lint.js.map +1 -1
- package/dist/src/lib/docs-removed.d.ts +13 -0
- package/dist/src/lib/docs-removed.d.ts.map +1 -0
- package/dist/src/lib/docs-removed.js +31 -0
- package/dist/src/lib/docs-removed.js.map +1 -0
- package/dist/src/lib/docs-site-eject.d.ts +13 -0
- package/dist/src/lib/docs-site-eject.d.ts.map +1 -0
- package/dist/src/lib/docs-site-eject.js +40 -0
- package/dist/src/lib/docs-site-eject.js.map +1 -0
- package/dist/src/lib/field-lint.d.ts +25 -0
- package/dist/src/lib/field-lint.d.ts.map +1 -0
- package/dist/src/lib/field-lint.js +102 -0
- package/dist/src/lib/field-lint.js.map +1 -0
- package/dist/src/lib/fk-index-advisory.d.ts +1 -2
- package/dist/src/lib/fk-index-advisory.d.ts.map +1 -1
- package/dist/src/lib/fk-index-advisory.js +4 -3
- package/dist/src/lib/fk-index-advisory.js.map +1 -1
- package/dist/src/lib/format.d.ts +7 -0
- package/dist/src/lib/format.d.ts.map +1 -1
- package/dist/src/lib/format.js +13 -0
- package/dist/src/lib/format.js.map +1 -1
- package/dist/src/lib/gen-migrate-advice.d.ts +3 -1
- package/dist/src/lib/gen-migrate-advice.d.ts.map +1 -1
- package/dist/src/lib/gen-migrate-advice.js +3 -4
- package/dist/src/lib/gen-migrate-advice.js.map +1 -1
- package/dist/src/lib/install-set.d.ts +10 -1
- package/dist/src/lib/install-set.d.ts.map +1 -1
- package/dist/src/lib/install-set.js +20 -2
- package/dist/src/lib/install-set.js.map +1 -1
- package/dist/src/lib/load-metaobjects-config.d.ts +13 -11
- package/dist/src/lib/load-metaobjects-config.d.ts.map +1 -1
- package/dist/src/lib/load-metaobjects-config.js +53 -75
- package/dist/src/lib/load-metaobjects-config.js.map +1 -1
- package/dist/src/lib/manifest-ignored-check.d.ts +4 -1
- package/dist/src/lib/manifest-ignored-check.d.ts.map +1 -1
- package/dist/src/lib/manifest-ignored-check.js +9 -4
- package/dist/src/lib/manifest-ignored-check.js.map +1 -1
- package/dist/src/lib/output.d.ts +15 -0
- package/dist/src/lib/output.d.ts.map +1 -1
- package/dist/src/lib/output.js +9 -1
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/payload-field-tree.d.ts +4 -5
- package/dist/src/lib/payload-field-tree.d.ts.map +1 -1
- package/dist/src/lib/payload-field-tree.js +16 -31
- package/dist/src/lib/payload-field-tree.js.map +1 -1
- package/dist/src/lib/requirement-check.d.ts +7 -0
- package/dist/src/lib/requirement-check.d.ts.map +1 -1
- package/dist/src/lib/requirement-check.js +14 -7
- package/dist/src/lib/requirement-check.js.map +1 -1
- package/dist/src/lib/strict-args.d.ts +28 -0
- package/dist/src/lib/strict-args.d.ts.map +1 -0
- package/dist/src/lib/strict-args.js +49 -0
- package/dist/src/lib/strict-args.js.map +1 -0
- package/dist/src/lib/template-eject.d.ts +108 -0
- package/dist/src/lib/template-eject.d.ts.map +1 -0
- package/dist/src/lib/template-eject.js +438 -0
- package/dist/src/lib/template-eject.js.map +1 -0
- package/dist/src/lib/version.d.ts +9 -0
- package/dist/src/lib/version.d.ts.map +1 -1
- package/dist/src/lib/version.js +15 -0
- package/dist/src/lib/version.js.map +1 -1
- package/package.json +10 -10
- package/src/commands/docs.ts +11 -952
- package/src/commands/eject.ts +318 -73
- package/src/commands/gen.ts +94 -22
- package/src/commands/generator.ts +2 -2
- package/src/commands/init.ts +80 -38
- package/src/commands/migrate.ts +248 -117
- package/src/commands/types.ts +18 -2
- package/src/commands/upgrade.ts +5 -1
- package/src/commands/verify.ts +229 -136
- package/src/index.ts +59 -72
- package/src/lib/agent-context-staleness.ts +20 -5
- package/src/lib/agent-schema.ts +74 -0
- package/src/lib/allow.ts +57 -6
- package/src/lib/anti-patterns.ts +4 -2
- package/src/lib/args.ts +83 -28
- package/src/lib/catalog-listing.ts +105 -25
- package/src/lib/catalog.ts +51 -6
- package/src/lib/codegen-drift.ts +138 -3
- package/src/lib/collection-load-options.ts +2 -1
- package/src/lib/config.ts +5 -3
- package/src/lib/decimal-precision-advisory.ts +50 -0
- package/src/lib/deprecation-lint.ts +16 -24
- package/src/lib/docs-removed.ts +41 -0
- package/src/lib/docs-site-eject.ts +48 -0
- package/src/lib/field-lint.ts +122 -0
- package/src/lib/fk-index-advisory.ts +4 -4
- package/src/lib/format.ts +12 -0
- package/src/lib/gen-migrate-advice.ts +6 -4
- package/src/lib/install-set.ts +20 -1
- package/src/lib/load-metaobjects-config.ts +57 -78
- package/src/lib/manifest-ignored-check.ts +14 -10
- package/src/lib/output.ts +18 -1
- package/src/lib/payload-field-tree.ts +18 -35
- package/src/lib/requirement-check.ts +21 -6
- package/src/lib/strict-args.ts +52 -0
- package/src/lib/template-eject.ts +526 -0
- package/src/lib/version.ts +18 -0
- package/dist/src/lib/docs-drift.d.ts +0 -42
- package/dist/src/lib/docs-drift.d.ts.map +0 -1
- package/dist/src/lib/docs-drift.js +0 -264
- package/dist/src/lib/docs-drift.js.map +0 -1
- package/src/lib/docs-drift.ts +0 -312
package/src/commands/types.ts
CHANGED
|
@@ -25,6 +25,7 @@ import { defaultLoadMemoryProviders } from "@metaobjectsdev/sdk";
|
|
|
25
25
|
import { log } from "../lib/log.js";
|
|
26
26
|
import { emitStructured, type OutputFormat } from "../lib/format.js";
|
|
27
27
|
import { describeError } from "../lib/error-text.js";
|
|
28
|
+
import { unknownFlagMessage } from "../lib/strict-args.js";
|
|
28
29
|
|
|
29
30
|
interface TypesFlags {
|
|
30
31
|
query: string | null;
|
|
@@ -73,6 +74,21 @@ three TEXT display controls — do not change it. The terse line's [base] / [ts-
|
|
|
73
74
|
markers are the sharedRoot / tsOnly fields there, a closed-enum attr carries its
|
|
74
75
|
allowedValues, and no match is an empty matches list rather than a prose hint.`;
|
|
75
76
|
|
|
77
|
+
/** The flags `parse` below accepts, for the unknown-flag refusal. */
|
|
78
|
+
const TYPES_FLAGS: readonly string[] = ["--all", "--desc", "--detail", "--no-headers", "--limit", "--type", "--kind"];
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* `--limit <N>`: a non-negative integer, 0 meaning unlimited. Anything else is refused
|
|
82
|
+
* (exit 2) rather than read as a number: `Number("abc") || 0` used to turn a typo into
|
|
83
|
+
* `0`, the UNLIMITED sentinel, so `--limit abc` silently printed all 500-odd rows.
|
|
84
|
+
*/
|
|
85
|
+
function parseTypesLimit(raw: string | undefined): number {
|
|
86
|
+
if (raw === undefined || !/^\d+$/.test(raw)) {
|
|
87
|
+
throw new Error(`invalid --limit '${raw ?? ""}'; expected a non-negative integer (0 = unlimited)`);
|
|
88
|
+
}
|
|
89
|
+
return Number(raw);
|
|
90
|
+
}
|
|
91
|
+
|
|
76
92
|
function parse(args: string[]): TypesFlags {
|
|
77
93
|
const f: TypesFlags = {
|
|
78
94
|
query: null, desc: false, kind: new Set(), type: null,
|
|
@@ -91,12 +107,12 @@ function parse(args: string[]): TypesFlags {
|
|
|
91
107
|
// one the removed `--json` broke.
|
|
92
108
|
else if (a === "--format") i++;
|
|
93
109
|
else if (a.startsWith("--format=")) { /* value is inline; nothing to consume */ }
|
|
94
|
-
else if (a === "--limit") { f.limit =
|
|
110
|
+
else if (a === "--limit") { f.limit = parseTypesLimit(args[++i]); f.limitExplicit = true; }
|
|
95
111
|
else if (a === "--type") f.type = (args[++i] ?? "").toLowerCase() || null;
|
|
96
112
|
else if (a === "--kind") {
|
|
97
113
|
for (const k of (args[++i] ?? "").split(","))
|
|
98
114
|
if (k === "type" || k === "subtype" || k === "attr") f.kind.add(k);
|
|
99
|
-
} else if (a.startsWith("-")) throw new Error(
|
|
115
|
+
} else if (a.startsWith("-")) throw new Error(unknownFlagMessage("types", a, TYPES_FLAGS));
|
|
100
116
|
else if (f.query === null) f.query = a;
|
|
101
117
|
else throw new Error(`unexpected argument: ${a}`);
|
|
102
118
|
}
|
package/src/commands/upgrade.ts
CHANGED
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
} from "@metaobjectsdev/metadata";
|
|
31
31
|
import { log } from "../lib/log.js";
|
|
32
32
|
import { describeError } from "../lib/error-text.js";
|
|
33
|
+
import { unknownFlagMessage } from "../lib/strict-args.js";
|
|
33
34
|
|
|
34
35
|
/** YAML authoring (ADR-0006). Rewritten by the `yaml`-backed arm, loaded on demand below. */
|
|
35
36
|
const YAML_EXTENSIONS = new Set([".yaml", ".yml"]);
|
|
@@ -40,6 +41,9 @@ interface UpgradeFlags {
|
|
|
40
41
|
projectRoot?: string;
|
|
41
42
|
}
|
|
42
43
|
|
|
44
|
+
/** The flags `parseArgs` below accepts, for the unknown-flag refusal. */
|
|
45
|
+
const UPGRADE_FLAGS: readonly string[] = ["--apply", "--to"];
|
|
46
|
+
|
|
43
47
|
function parseArgs(argv: string[]): UpgradeFlags {
|
|
44
48
|
const flags: UpgradeFlags = { apply: false };
|
|
45
49
|
for (let i = 0; i < argv.length; i++) {
|
|
@@ -52,7 +56,7 @@ function parseArgs(argv: string[]): UpgradeFlags {
|
|
|
52
56
|
} else if (a.startsWith("--to=")) flags.maxVersion = a.slice("--to=".length);
|
|
53
57
|
else if (a === "--help" || a === "-h") throw new Error("__help__");
|
|
54
58
|
else if (!a.startsWith("-")) flags.projectRoot = a;
|
|
55
|
-
else throw new Error(
|
|
59
|
+
else throw new Error(unknownFlagMessage("upgrade", a, UPGRADE_FLAGS));
|
|
56
60
|
}
|
|
57
61
|
return flags;
|
|
58
62
|
}
|