@metaobjectsdev/cli 1.0.0-rc.4 → 1.0.0-rc.6

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 (116) hide show
  1. package/dist/src/commands/docs.d.ts.map +1 -1
  2. package/dist/src/commands/docs.js +41 -9
  3. package/dist/src/commands/docs.js.map +1 -1
  4. package/dist/src/commands/gen.d.ts +8 -0
  5. package/dist/src/commands/gen.d.ts.map +1 -1
  6. package/dist/src/commands/gen.js +17 -4
  7. package/dist/src/commands/gen.js.map +1 -1
  8. package/dist/src/commands/init.d.ts.map +1 -1
  9. package/dist/src/commands/init.js +181 -35
  10. package/dist/src/commands/init.js.map +1 -1
  11. package/dist/src/commands/migrate.d.ts +6 -0
  12. package/dist/src/commands/migrate.d.ts.map +1 -1
  13. package/dist/src/commands/migrate.js +11 -5
  14. package/dist/src/commands/migrate.js.map +1 -1
  15. package/dist/src/commands/prompt-snapshot.d.ts.map +1 -1
  16. package/dist/src/commands/prompt-snapshot.js +2 -1
  17. package/dist/src/commands/prompt-snapshot.js.map +1 -1
  18. package/dist/src/commands/types.d.ts.map +1 -1
  19. package/dist/src/commands/types.js +12 -3
  20. package/dist/src/commands/types.js.map +1 -1
  21. package/dist/src/commands/upgrade.d.ts.map +1 -1
  22. package/dist/src/commands/upgrade.js +38 -4
  23. package/dist/src/commands/upgrade.js.map +1 -1
  24. package/dist/src/commands/verify.d.ts.map +1 -1
  25. package/dist/src/commands/verify.js +108 -30
  26. package/dist/src/commands/verify.js.map +1 -1
  27. package/dist/src/index.d.ts +2 -0
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/index.js +55 -8
  30. package/dist/src/index.js.map +1 -1
  31. package/dist/src/lib/advisory.d.ts +6 -0
  32. package/dist/src/lib/advisory.d.ts.map +1 -1
  33. package/dist/src/lib/advisory.js +13 -0
  34. package/dist/src/lib/advisory.js.map +1 -1
  35. package/dist/src/lib/anti-patterns.d.ts.map +1 -1
  36. package/dist/src/lib/anti-patterns.js +2 -4
  37. package/dist/src/lib/anti-patterns.js.map +1 -1
  38. package/dist/src/lib/args.d.ts +251 -12
  39. package/dist/src/lib/args.d.ts.map +1 -1
  40. package/dist/src/lib/args.js +119 -92
  41. package/dist/src/lib/args.js.map +1 -1
  42. package/dist/src/lib/base-url-advisory.d.ts +37 -0
  43. package/dist/src/lib/base-url-advisory.d.ts.map +1 -0
  44. package/dist/src/lib/base-url-advisory.js +162 -0
  45. package/dist/src/lib/base-url-advisory.js.map +1 -0
  46. package/dist/src/lib/codegen-drift.d.ts +8 -0
  47. package/dist/src/lib/codegen-drift.d.ts.map +1 -1
  48. package/dist/src/lib/codegen-drift.js +43 -10
  49. package/dist/src/lib/codegen-drift.js.map +1 -1
  50. package/dist/src/lib/detect-stack.d.ts +17 -0
  51. package/dist/src/lib/detect-stack.d.ts.map +1 -1
  52. package/dist/src/lib/detect-stack.js +64 -2
  53. package/dist/src/lib/detect-stack.js.map +1 -1
  54. package/dist/src/lib/docs-drift.d.ts +12 -1
  55. package/dist/src/lib/docs-drift.d.ts.map +1 -1
  56. package/dist/src/lib/docs-drift.js +85 -16
  57. package/dist/src/lib/docs-drift.js.map +1 -1
  58. package/dist/src/lib/git-ignore.d.ts +59 -0
  59. package/dist/src/lib/git-ignore.d.ts.map +1 -0
  60. package/dist/src/lib/git-ignore.js +120 -0
  61. package/dist/src/lib/git-ignore.js.map +1 -0
  62. package/dist/src/lib/ignored-scaffold-check.d.ts +12 -0
  63. package/dist/src/lib/ignored-scaffold-check.d.ts.map +1 -0
  64. package/dist/src/lib/ignored-scaffold-check.js +75 -0
  65. package/dist/src/lib/ignored-scaffold-check.js.map +1 -0
  66. package/dist/src/lib/load-error.d.ts +46 -0
  67. package/dist/src/lib/load-error.d.ts.map +1 -0
  68. package/dist/src/lib/load-error.js +51 -0
  69. package/dist/src/lib/load-error.js.map +1 -0
  70. package/dist/src/lib/load-metaobjects-config.d.ts.map +1 -1
  71. package/dist/src/lib/load-metaobjects-config.js +65 -1
  72. package/dist/src/lib/load-metaobjects-config.js.map +1 -1
  73. package/dist/src/lib/manifest-ignored-check.d.ts.map +1 -1
  74. package/dist/src/lib/manifest-ignored-check.js +23 -36
  75. package/dist/src/lib/manifest-ignored-check.js.map +1 -1
  76. package/dist/src/lib/output.d.ts +22 -1
  77. package/dist/src/lib/output.d.ts.map +1 -1
  78. package/dist/src/lib/output.js +39 -12
  79. package/dist/src/lib/output.js.map +1 -1
  80. package/dist/src/lib/rel-posix.d.ts +5 -0
  81. package/dist/src/lib/rel-posix.d.ts.map +1 -0
  82. package/dist/src/lib/rel-posix.js +23 -0
  83. package/dist/src/lib/rel-posix.js.map +1 -0
  84. package/dist/src/lib/replay-remedy.d.ts +2 -0
  85. package/dist/src/lib/replay-remedy.d.ts.map +1 -0
  86. package/dist/src/lib/replay-remedy.js +69 -0
  87. package/dist/src/lib/replay-remedy.js.map +1 -0
  88. package/dist/src/lib/requirement-lint.d.ts.map +1 -1
  89. package/dist/src/lib/requirement-lint.js +25 -5
  90. package/dist/src/lib/requirement-lint.js.map +1 -1
  91. package/package.json +10 -10
  92. package/src/commands/docs.ts +51 -12
  93. package/src/commands/gen.ts +19 -4
  94. package/src/commands/init.ts +188 -39
  95. package/src/commands/migrate.ts +13 -5
  96. package/src/commands/prompt-snapshot.ts +2 -1
  97. package/src/commands/types.ts +12 -3
  98. package/src/commands/upgrade.ts +44 -4
  99. package/src/commands/verify.ts +120 -32
  100. package/src/index.ts +55 -8
  101. package/src/lib/advisory.ts +15 -0
  102. package/src/lib/anti-patterns.ts +2 -5
  103. package/src/lib/args.ts +154 -109
  104. package/src/lib/base-url-advisory.ts +173 -0
  105. package/src/lib/codegen-drift.ts +52 -9
  106. package/src/lib/detect-stack.ts +73 -2
  107. package/src/lib/docs-drift.ts +107 -17
  108. package/src/lib/git-ignore.ts +159 -0
  109. package/src/lib/ignored-scaffold-check.ts +78 -0
  110. package/src/lib/load-error.ts +89 -0
  111. package/src/lib/load-metaobjects-config.ts +58 -1
  112. package/src/lib/manifest-ignored-check.ts +25 -33
  113. package/src/lib/output.ts +64 -11
  114. package/src/lib/rel-posix.ts +25 -0
  115. package/src/lib/replay-remedy.ts +78 -0
  116. package/src/lib/requirement-lint.ts +26 -5
@@ -1,21 +1,23 @@
1
1
  import { parseArgs } from "node:util";
2
2
  import { parseAdvisoryLimit } from "./advisory.js";
3
+ /** The flag table `parseInitArgs` parses. Exported so the help text can be gated against it. */
4
+ export const INIT_OPTIONS = {
5
+ force: { type: "boolean", default: false },
6
+ quiet: { type: "boolean", default: false },
7
+ "print-only": { type: "boolean", default: false },
8
+ "refresh-docs": { type: "boolean", default: false },
9
+ d1: { type: "boolean", default: false },
10
+ server: { type: "string", multiple: true },
11
+ client: { type: "string", multiple: true },
12
+ "no-skills": { type: "boolean", default: false },
13
+ "no-wire-root": { type: "boolean", default: false },
14
+ "docs-only": { type: "boolean", default: false },
15
+ "config-only": { type: "boolean", default: false },
16
+ };
3
17
  export function parseInitArgs(argv) {
4
18
  const { values } = parseArgs({
5
19
  args: argv,
6
- options: {
7
- force: { type: "boolean", default: false },
8
- quiet: { type: "boolean", default: false },
9
- "print-only": { type: "boolean", default: false },
10
- "refresh-docs": { type: "boolean", default: false },
11
- d1: { type: "boolean", default: false },
12
- server: { type: "string", multiple: true },
13
- client: { type: "string", multiple: true },
14
- "no-skills": { type: "boolean", default: false },
15
- "no-wire-root": { type: "boolean", default: false },
16
- "docs-only": { type: "boolean", default: false },
17
- "config-only": { type: "boolean", default: false },
18
- },
20
+ options: INIT_OPTIONS,
19
21
  strict: true,
20
22
  allowPositionals: false,
21
23
  });
@@ -33,16 +35,18 @@ export function parseInitArgs(argv) {
33
35
  configOnly: !!values["config-only"],
34
36
  };
35
37
  }
38
+ /** The flag table `parseAgentDocsArgs` parses. Exported so the help text can be gated against it. */
39
+ export const AGENT_DOCS_OPTIONS = {
40
+ server: { type: "string", multiple: true },
41
+ client: { type: "string", multiple: true },
42
+ out: { type: "string" },
43
+ "no-skills": { type: "boolean", default: false },
44
+ "no-wire-root": { type: "boolean", default: false },
45
+ };
36
46
  export function parseAgentDocsArgs(argv) {
37
47
  const { values } = parseArgs({
38
48
  args: argv,
39
- options: {
40
- server: { type: "string", multiple: true },
41
- client: { type: "string", multiple: true },
42
- out: { type: "string" },
43
- "no-skills": { type: "boolean", default: false },
44
- "no-wire-root": { type: "boolean", default: false },
45
- },
49
+ options: AGENT_DOCS_OPTIONS,
46
50
  strict: true,
47
51
  allowPositionals: false,
48
52
  });
@@ -54,22 +58,27 @@ export function parseAgentDocsArgs(argv) {
54
58
  wireRoot: !values["no-wire-root"],
55
59
  };
56
60
  }
61
+ /** The flag table `parseGenArgs` parses. Exported so the help text can be gated against it. */
62
+ export const GEN_OPTIONS = {
63
+ "dry-run": { type: "boolean", default: false },
64
+ "baseline": { type: "string" },
65
+ "list": { type: "boolean", default: false },
66
+ "no-antipatterns": { type: "boolean", default: false },
67
+ "limit": { type: "string" },
68
+ };
57
69
  export function parseGenArgs(argv) {
58
70
  const { values, positionals } = parseArgs({
59
71
  args: argv,
60
- options: {
61
- "dry-run": { type: "boolean", default: false },
62
- "baseline": { type: "string" },
63
- "list": { type: "boolean", default: false },
64
- "no-antipatterns": { type: "boolean", default: false },
65
- "limit": { type: "string" },
66
- },
72
+ options: GEN_OPTIONS,
67
73
  strict: true,
68
74
  allowPositionals: true,
69
75
  });
70
76
  const baselineRaw = values.baseline;
71
- if (baselineRaw !== undefined && baselineRaw !== "default" && baselineRaw !== "fresh") {
72
- throw new Error(`invalid --baseline '${baselineRaw}'; expected 'default' or 'fresh'`);
77
+ if (baselineRaw !== undefined &&
78
+ baselineRaw !== "default" &&
79
+ baselineRaw !== "fresh" &&
80
+ baselineRaw !== "adopt") {
81
+ throw new Error(`invalid --baseline '${baselineRaw}'; expected 'default', 'adopt' or 'fresh'`);
73
82
  }
74
83
  return {
75
84
  dryRun: !!values["dry-run"],
@@ -82,12 +91,14 @@ export function parseGenArgs(argv) {
82
91
  limit: parseAdvisoryLimit(values.limit),
83
92
  };
84
93
  }
94
+ /** The flag table `parseExportArgs` parses. Exported so the help text can be gated against it. */
95
+ export const EXPORT_OPTIONS = {
96
+ out: { type: "string" },
97
+ };
85
98
  export function parseExportArgs(argv) {
86
99
  const { values } = parseArgs({
87
100
  args: argv,
88
- options: {
89
- out: { type: "string" },
90
- },
101
+ options: EXPORT_OPTIONS,
91
102
  strict: true,
92
103
  allowPositionals: false,
93
104
  });
@@ -145,27 +156,53 @@ export const ALLOW_TOKENS = [
145
156
  // rather than by `diff()`'s status pass; see AllowOptions.dropUnmanaged.
146
157
  "drop-unmanaged",
147
158
  ];
159
+ /** The flag table `parseVerifyArgs` parses. Exported so the help text can be gated against it. */
160
+ export const VERIFY_OPTIONS = {
161
+ prompts: { type: "string" },
162
+ db: { type: "string" },
163
+ dialect: { type: "string" },
164
+ allow: { type: "string", multiple: true },
165
+ "skip-schema": { type: "boolean", default: false },
166
+ templates: { type: "boolean", default: false },
167
+ codegen: { type: "boolean", default: false },
168
+ docs: { type: "boolean", default: false },
169
+ replay: { type: "boolean", default: false },
170
+ "replay-snapshot": { type: "boolean", default: false },
171
+ "no-antipatterns": { type: "boolean", default: false },
172
+ "no-requirement-lint": { type: "boolean", default: false },
173
+ lax: { type: "boolean", default: false },
174
+ "d1": { type: "string" },
175
+ "remote": { type: "boolean", default: false },
176
+ "limit": { type: "string" },
177
+ };
178
+ /**
179
+ * The `--allow` tokens for one invocation, from EVERY occurrence of the flag.
180
+ *
181
+ * `--allow` is comma-separated, and repeating it is the natural reading (it is what
182
+ * `--server` does). It used to take the LAST occurrence only, so
183
+ * `--allow drop-fk --allow drop-view` silently discarded `drop-fk` and then printed
184
+ * "re-run with --allow drop-fk to apply" seven times — an instruction the user had just
185
+ * followed. Both spellings, and any mixture of them, now mean the union.
186
+ *
187
+ * Duplicates collapse: asking for the same permission twice is one permission.
188
+ */
189
+ function parseAllowTokens(raw) {
190
+ const occurrences = raw === undefined ? [] : Array.isArray(raw) ? raw : [raw];
191
+ const seen = new Set();
192
+ for (const occurrence of occurrences) {
193
+ for (const tok of occurrence.split(",").map((t) => t.trim()).filter((t) => t.length > 0)) {
194
+ if (!ALLOW_TOKENS.includes(tok)) {
195
+ throw new Error(`invalid --allow token '${tok}'; expected one of: ${ALLOW_TOKENS.join(", ")}`);
196
+ }
197
+ seen.add(tok);
198
+ }
199
+ }
200
+ return [...seen];
201
+ }
148
202
  export function parseVerifyArgs(argv) {
149
203
  const { values } = parseArgs({
150
204
  args: argv,
151
- options: {
152
- prompts: { type: "string" },
153
- db: { type: "string" },
154
- dialect: { type: "string" },
155
- allow: { type: "string" },
156
- "skip-schema": { type: "boolean", default: false },
157
- templates: { type: "boolean", default: false },
158
- codegen: { type: "boolean", default: false },
159
- docs: { type: "boolean", default: false },
160
- replay: { type: "boolean", default: false },
161
- "replay-snapshot": { type: "boolean", default: false },
162
- "no-antipatterns": { type: "boolean", default: false },
163
- "no-requirement-lint": { type: "boolean", default: false },
164
- lax: { type: "boolean", default: false },
165
- "d1": { type: "string" },
166
- "remote": { type: "boolean", default: false },
167
- "limit": { type: "string" },
168
- },
205
+ options: VERIFY_OPTIONS,
169
206
  strict: true,
170
207
  allowPositionals: false,
171
208
  });
@@ -173,15 +210,7 @@ export function parseVerifyArgs(argv) {
173
210
  if (dialect !== undefined && !DIALECTS.includes(dialect)) {
174
211
  throw new Error(`invalid --dialect '${dialect}'; expected: ${DIALECTS.join(", ")}`);
175
212
  }
176
- const allowRaw = values.allow ?? "";
177
- const allowTokens = allowRaw.length === 0
178
- ? []
179
- : allowRaw.split(",").map((s) => s.trim()).filter((s) => s.length > 0);
180
- for (const tok of allowTokens) {
181
- if (!ALLOW_TOKENS.includes(tok)) {
182
- throw new Error(`invalid --allow token '${tok}'; expected one of: ${ALLOW_TOKENS.join(", ")}`);
183
- }
184
- }
213
+ const allowTokens = parseAllowTokens(values.allow);
185
214
  const templates = !!values.templates;
186
215
  const codegen = !!values.codegen;
187
216
  const docs = !!values.docs;
@@ -215,13 +244,15 @@ export function parseVerifyArgs(argv) {
215
244
  limit: parseAdvisoryLimit(values.limit),
216
245
  };
217
246
  }
247
+ /** The flag table `parsePromptSnapshotArgs` parses. Exported so the help text can be gated against it. */
248
+ export const PROMPT_SNAPSHOT_OPTIONS = {
249
+ check: { type: "boolean", default: false },
250
+ prompts: { type: "string" },
251
+ };
218
252
  export function parsePromptSnapshotArgs(argv) {
219
253
  const { values } = parseArgs({
220
254
  args: argv,
221
- options: {
222
- check: { type: "boolean", default: false },
223
- prompts: { type: "string" },
224
- },
255
+ options: PROMPT_SNAPSHOT_OPTIONS,
225
256
  strict: true,
226
257
  allowPositionals: false,
227
258
  });
@@ -234,25 +265,27 @@ export function parsePromptSnapshotArgs(argv) {
234
265
  // migrate flags
235
266
  // ---------------------------------------------------------------------------
236
267
  const ON_AMBIGUOUS = ["abort", "rename", "drop-add"];
268
+ /** The flag table `parseMigrateArgs` parses. Exported so the help text can be gated against it. */
269
+ export const MIGRATE_OPTIONS = {
270
+ "db": { type: "string" },
271
+ "dialect": { type: "string" },
272
+ "migration-format": { type: "string" },
273
+ "out-dir": { type: "string" },
274
+ "slug": { type: "string" },
275
+ "allow": { type: "string", multiple: true },
276
+ "on-ambiguous": { type: "string" },
277
+ "dry-run": { type: "boolean", default: false },
278
+ "from-db": { type: "boolean", default: false },
279
+ "d1": { type: "string" },
280
+ "remote": { type: "boolean", default: false },
281
+ "apply": { type: "boolean", default: false },
282
+ "rollback": { type: "string" },
283
+ "yes": { type: "boolean", default: false },
284
+ };
237
285
  export function parseMigrateArgs(argv) {
238
286
  const { values, positionals } = parseArgs({
239
287
  args: argv,
240
- options: {
241
- "db": { type: "string" },
242
- "dialect": { type: "string" },
243
- "migration-format": { type: "string" },
244
- "out-dir": { type: "string" },
245
- "slug": { type: "string" },
246
- "allow": { type: "string" },
247
- "on-ambiguous": { type: "string" },
248
- "dry-run": { type: "boolean", default: false },
249
- "from-db": { type: "boolean", default: false },
250
- "d1": { type: "string" },
251
- "remote": { type: "boolean", default: false },
252
- "apply": { type: "boolean", default: false },
253
- "rollback": { type: "string" },
254
- "yes": { type: "boolean", default: false },
255
- },
288
+ options: MIGRATE_OPTIONS,
256
289
  strict: true,
257
290
  allowPositionals: true,
258
291
  });
@@ -278,15 +311,7 @@ export function parseMigrateArgs(argv) {
278
311
  if (onAmb !== undefined && !ON_AMBIGUOUS.includes(onAmb)) {
279
312
  throw new Error(`invalid --on-ambiguous '${onAmb}'; expected: ${ON_AMBIGUOUS.join(", ")}`);
280
313
  }
281
- const allowRaw = values.allow ?? "";
282
- const allowTokens = allowRaw.length === 0
283
- ? []
284
- : allowRaw.split(",").map((s) => s.trim()).filter((s) => s.length > 0);
285
- for (const tok of allowTokens) {
286
- if (!ALLOW_TOKENS.includes(tok)) {
287
- throw new Error(`invalid --allow token '${tok}'; expected one of: ${ALLOW_TOKENS.join(", ")}`);
288
- }
289
- }
314
+ const allowTokens = parseAllowTokens(values.allow);
290
315
  return {
291
316
  db: values.db,
292
317
  dialect: dialect,
@@ -306,13 +331,15 @@ export function parseMigrateArgs(argv) {
306
331
  applyPending,
307
332
  };
308
333
  }
334
+ /** The flag table `parseEjectArgs` parses. Exported so the help text can be gated against it. */
335
+ export const EJECT_OPTIONS = {
336
+ "list": { type: "boolean", default: false },
337
+ "force": { type: "boolean", default: false },
338
+ };
309
339
  export function parseEjectArgs(argv) {
310
340
  const { values, positionals } = parseArgs({
311
341
  args: argv,
312
- options: {
313
- "list": { type: "boolean", default: false },
314
- "force": { type: "boolean", default: false },
315
- },
342
+ options: EJECT_OPTIONS,
316
343
  strict: true,
317
344
  allowPositionals: true,
318
345
  });
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/lib/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/lib/args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * F52 — a provider mounted with no `baseUrl` on a project whose `apiPrefix` is not empty.
3
+ *
4
+ * 1.0 moved `$apiPrefix` out of the entity descriptor: a browser's base URL is a
5
+ * DEPLOYMENT fact, so the provider supplies it at runtime. The migration note argues the
6
+ * rename is safe because `<EntityFetcherProvider value={…}>` no longer typechecks — and
7
+ * that is true for the adopter who leaves `value` alone. It says nothing about the
8
+ * adopter who reads the note, renames `value` → `fetcher`, and stops: `baseUrl` is
9
+ * OPTIONAL with default `""`, so that tree compiles clean and every generated hook has
10
+ * quietly lost its `/api` segment. Nothing at the type level can see it, and on the
11
+ * estate where this was found nothing else could either — `vite build` transpiles without
12
+ * typechecking, so `build`, 150 tests and every `meta verify` gate were green over a
13
+ * storefront and an admin app whose entire generated CRUD surface would have 404'd.
14
+ *
15
+ * So this is the only gate that can catch it, and it is a WARNING: `baseUrl` is genuinely
16
+ * optional, a project may serve its API at the origin root, and a prefix can legitimately
17
+ * come from somewhere this scan cannot read. It never touches an exit code.
18
+ *
19
+ * It fires ONLY when `apiPrefix` is non-empty — the `meta init` scaffold sets `""`, which
20
+ * is exactly why the trap is easy to ship: the default-configured project is the one the
21
+ * design was reasoned about.
22
+ */
23
+ export interface BaseUrlFinding {
24
+ file: string;
25
+ line: number;
26
+ /** The provider construct found without a base. */
27
+ construct: string;
28
+ message: string;
29
+ }
30
+ /**
31
+ * Scan a project tree for providers mounted without a base.
32
+ *
33
+ * Returns [] when `apiPrefix` is empty — there is nothing to lose then, and warning would
34
+ * fire on every scaffolded project.
35
+ */
36
+ export declare function scanForMissingBaseUrl(root: string, apiPrefix: string): BaseUrlFinding[];
37
+ //# sourceMappingURL=base-url-advisory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-url-advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/base-url-advisory.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAiID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAKvF"}
@@ -0,0 +1,162 @@
1
+ import { readdirSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { relPosix } from "./rel-posix.js";
4
+ const IGNORE_SEGMENTS = new Set([
5
+ "node_modules", ".git", "dist", "build", ".next", ".turbo", ".output",
6
+ "coverage", ".metaobjects", ".wrangler",
7
+ ]);
8
+ const SCAN_EXT = /\.(?:ts|tsx|js|jsx|mjs)$/;
9
+ const SKIP_FILE = /(?:\.d\.ts$|\.test\.|\.spec\.)/;
10
+ /**
11
+ * The two ways a base is supplied, one per client tier.
12
+ *
13
+ * Matched across the WHOLE opening construct rather than a single line, because a JSX
14
+ * provider is nearly always written multi-line — a per-line rule (which is what the
15
+ * anti-pattern scan uses) would miss the formatting every real codebase has.
16
+ */
17
+ const PROVIDERS = [
18
+ { construct: "<EntityFetcherProvider>", open: /<EntityFetcherProvider\b/g, kind: "jsx" },
19
+ { construct: "provideEntityFetcher()", open: /provideEntityFetcher\s*\(/g, kind: "call" },
20
+ ];
21
+ /**
22
+ * The text of the opening construct that begins at `start`.
23
+ *
24
+ * JSX: up to the `>` that closes the opening TAG. Call this a one-file tokenizer rather
25
+ * than a bracket count, because a bracket count is what the first version was and it was
26
+ * wrong in both directions:
27
+ *
28
+ * <EntityFetcherProvider title="a > b" fetcher={f} baseUrl="/api">
29
+ * → the `>` inside the STRING ended the tag before `baseUrl`, warning about a
30
+ * correct provider.
31
+ * <EntityFetcherProvider fetcher={mk(")")}>
32
+ * → the unbalanced `)` inside a string meant depth never returned to 0, so the
33
+ * 4000-char cap swallowed an unrelated `baseUrl` later in the file and SUPPRESSED
34
+ * a real finding.
35
+ *
36
+ * So string literals (all three quote styles, with escapes), line comments and block
37
+ * comments are skipped rather than counted. A regex literal is deliberately NOT handled —
38
+ * telling `/` division from a regex needs real parsing, and a regex inside a JSX opening
39
+ * tag is vanishingly rare next to the cost of getting it wrong.
40
+ *
41
+ * Call: to the `)` balancing the argument list, so a nested object or arrow does not end
42
+ * it early.
43
+ *
44
+ * Both bail after a generous cap rather than scanning a whole minified file when a
45
+ * construct is unterminated.
46
+ */
47
+ function constructText(src, start, kind) {
48
+ const limit = Math.min(src.length, start + 4000);
49
+ let depth = 0;
50
+ for (let i = start; i < limit; i++) {
51
+ const c = src[i];
52
+ // --- skip what is not code -------------------------------------------------
53
+ if (c === '"' || c === "'" || c === "`") {
54
+ i++;
55
+ while (i < limit && src[i] !== c) {
56
+ if (src[i] === "\\")
57
+ i++;
58
+ i++;
59
+ }
60
+ continue;
61
+ }
62
+ if (c === "/" && src[i + 1] === "/") {
63
+ while (i < limit && src[i] !== "\n")
64
+ i++;
65
+ continue;
66
+ }
67
+ if (c === "/" && src[i + 1] === "*") {
68
+ i += 2;
69
+ while (i < limit && !(src[i] === "*" && src[i + 1] === "/"))
70
+ i++;
71
+ i++;
72
+ continue;
73
+ }
74
+ // --- code ------------------------------------------------------------------
75
+ if (kind === "jsx" && c === ">" && depth === 0)
76
+ return src.slice(start, i + 1);
77
+ if (c === "{" || c === "(" || c === "[")
78
+ depth++;
79
+ else if (c === "}" || c === ")" || c === "]") {
80
+ if (kind === "call" && depth === 1 && c === ")")
81
+ return src.slice(start, i + 1);
82
+ depth--;
83
+ }
84
+ }
85
+ return src.slice(start, limit);
86
+ }
87
+ function scanFile(rel, src, apiPrefix) {
88
+ const out = [];
89
+ for (const { construct, open, kind } of PROVIDERS) {
90
+ open.lastIndex = 0;
91
+ let m;
92
+ while ((m = open.exec(src)) !== null) {
93
+ const text = constructText(src, m.index, kind);
94
+ if (/\bbaseUrl\b/.test(text))
95
+ continue;
96
+ const line = src.slice(0, m.index).split("\n").length;
97
+ out.push({
98
+ file: rel, line, construct,
99
+ message: `${rel}:${line} — ${construct} is mounted with no baseUrl, but this project's ` +
100
+ `apiPrefix is "${apiPrefix}". Every generated hook fetches a path RELATIVE to ` +
101
+ `baseUrl, which defaults to "", so those requests go to the origin root and miss ` +
102
+ `"${apiPrefix}". Pass baseUrl (a literal, or your build's env var). If the API ` +
103
+ `really is served at the root here, this is a false positive — ignore it.`,
104
+ });
105
+ }
106
+ }
107
+ return out;
108
+ }
109
+ function walk(dir, root, acc, apiPrefix) {
110
+ let entries;
111
+ try {
112
+ entries = readdirSync(dir, { withFileTypes: true });
113
+ }
114
+ catch {
115
+ return;
116
+ }
117
+ for (const e of entries) {
118
+ if (IGNORE_SEGMENTS.has(e.name))
119
+ continue;
120
+ const abs = join(dir, e.name);
121
+ // Symlinked directories are NOT followed — same as the anti-pattern scan beside it.
122
+ //
123
+ // The first version did follow them, with a comment claiming it "never re-enters
124
+ // one". There was no visited set, so `src/loop -> <root>` produced 41 findings for a
125
+ // single file (`src/loop/src/loop/…`), terminating only because Linux's 40-symlink
126
+ // ELOOP limit made readdirSync throw into the catch below. It also meant a link
127
+ // pointing outside the project — a monorepo sibling, a linked package — got walked on
128
+ // every `meta verify`. A provider reachable only through a symlink is reachable
129
+ // through its real path too, so following them buys nothing and the duplicates
130
+ // inflate the count the header prints.
131
+ if (e.isDirectory()) {
132
+ walk(abs, root, acc, apiPrefix);
133
+ continue;
134
+ }
135
+ if (!SCAN_EXT.test(e.name) || SKIP_FILE.test(e.name))
136
+ continue;
137
+ let src;
138
+ try {
139
+ src = readFileSync(abs, "utf8");
140
+ }
141
+ catch {
142
+ continue;
143
+ }
144
+ if (!src.includes("EntityFetcher"))
145
+ continue;
146
+ acc.push(...scanFile(relPosix(root, abs), src, apiPrefix));
147
+ }
148
+ }
149
+ /**
150
+ * Scan a project tree for providers mounted without a base.
151
+ *
152
+ * Returns [] when `apiPrefix` is empty — there is nothing to lose then, and warning would
153
+ * fire on every scaffolded project.
154
+ */
155
+ export function scanForMissingBaseUrl(root, apiPrefix) {
156
+ if (apiPrefix === "")
157
+ return [];
158
+ const acc = [];
159
+ walk(root, root, acc, apiPrefix);
160
+ return acc;
161
+ }
162
+ //# sourceMappingURL=base-url-advisory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-url-advisory.js","sourceRoot":"","sources":["../../../src/lib/base-url-advisory.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ export interface CodegenDriftResult {
7
7
  driftedFiles: string[];
8
8
  /** Human-readable, one-line-per-file drift summary. */
9
9
  lines: string[];
10
+ /**
11
+ * The subset of `driftedFiles` convicted for being a HAND-EDITED names artifact,
12
+ * sorted. Reported rather than left to the caller to re-derive, because the remedy
13
+ * differs in kind: `meta gen` MERGES a hand edit and exits 0, so prescribing it for
14
+ * one of these is an unbreakable loop — the same loop the hand-edit exemption exists
15
+ * to end. Two doors asking one question must not answer it twice.
16
+ */
17
+ handEditedNames: string[];
10
18
  /** Set when the gate could not run (e.g. no outDir to compare against). */
11
19
  error?: string;
12
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codegen-drift.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen-drift.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMzD,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAwI7B"}
1
+ {"version":3,"file":"codegen-drift.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen-drift.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMzD,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA0K7B"}