jamdesk 1.1.200 → 1.1.202

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 (30) hide show
  1. package/dist/__tests__/unit/migrate-risky-expression-warning.test.d.ts +2 -0
  2. package/dist/__tests__/unit/migrate-risky-expression-warning.test.d.ts.map +1 -0
  3. package/dist/__tests__/unit/migrate-risky-expression-warning.test.js +47 -0
  4. package/dist/__tests__/unit/migrate-risky-expression-warning.test.js.map +1 -0
  5. package/dist/commands/migrate/convert-mdx.d.ts.map +1 -1
  6. package/dist/commands/migrate/convert-mdx.js +5 -1
  7. package/dist/commands/migrate/convert-mdx.js.map +1 -1
  8. package/dist/commands/validate.d.ts.map +1 -1
  9. package/dist/commands/validate.js +7 -1
  10. package/dist/commands/validate.js.map +1 -1
  11. package/dist/lib/risky-expression-scanner.d.ts.map +1 -1
  12. package/dist/lib/risky-expression-scanner.js +53 -0
  13. package/dist/lib/risky-expression-scanner.js.map +1 -1
  14. package/dist/lib/validate-risky-expressions.d.ts +6 -0
  15. package/dist/lib/validate-risky-expressions.d.ts.map +1 -1
  16. package/dist/lib/validate-risky-expressions.js +5 -1
  17. package/dist/lib/validate-risky-expressions.js.map +1 -1
  18. package/package.json +1 -1
  19. package/vendored/app/globals.css +19 -0
  20. package/vendored/components/theme/ThemeToggle.tsx +4 -1
  21. package/vendored/lib/mdx-inline-components.ts +4 -0
  22. package/vendored/lib/openapi-isr.ts +57 -42
  23. package/vendored/lib/preprocess-mdx.ts +19 -1
  24. package/vendored/lib/render-doc-page.tsx +30 -6
  25. package/vendored/lib/risky-expression-scanner.ts +60 -0
  26. package/vendored/lib/snippet-compiler-isr.ts +11 -1
  27. package/vendored/lib/snippet-loader-isr.ts +95 -2
  28. package/vendored/lib/strip-event-handlers.ts +159 -0
  29. package/vendored/lib/user-utility-css.ts +250 -0
  30. package/vendored/workspace-package-lock.json +84 -57
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migrate-risky-expression-warning.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-risky-expression-warning.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/migrate-risky-expression-warning.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * `jamdesk migrate` renders its OWN wording for risky expressions instead of
3
+ * using `issue.message`, and that wording is specific to the bare-brace class
4
+ * ("wrap in backticks or escape as \{…\}").
5
+ *
6
+ * `findRiskyExpressions` also reports stripped `on*` event handlers, whose fix
7
+ * is completely different. Without the `undefinedRefs` filter in convert-mdx.ts
8
+ * a page whose only issue is an `onClick` gets told to escape braces it does not
9
+ * have — wrong advice, pointing at a non-existent expression.
10
+ */
11
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
12
+ import { promises as fs } from 'fs';
13
+ import os from 'os';
14
+ import path from 'path';
15
+ import { migrateMdxFiles } from '../../commands/migrate/convert-mdx.js';
16
+ let dir;
17
+ beforeEach(async () => {
18
+ dir = await fs.mkdtemp(path.join(os.tmpdir(), 'jd-migrate-risky-'));
19
+ });
20
+ afterEach(async () => {
21
+ await fs.rm(dir, { recursive: true, force: true });
22
+ });
23
+ async function warningsFor(body) {
24
+ await fs.writeFile(path.join(dir, 'page.mdx'), body, 'utf-8');
25
+ const summary = await migrateMdxFiles(dir);
26
+ return summary.results.flatMap((r) => r.warnings ?? []);
27
+ }
28
+ describe('migrate risky-expression warning', () => {
29
+ it('does not emit the brace-escaping advice for a page whose only issue is an event handler', async () => {
30
+ const warnings = await warningsFor('---\ntitle: T\n---\n\n<form onSubmit={() => alert(1)}>\n <input name="q" />\n</form>\n');
31
+ expect(warnings.join('\n')).not.toContain('escape as');
32
+ expect(warnings.join('\n')).not.toContain("won't render");
33
+ });
34
+ // Guards the other direction: the filter must not silence the real thing.
35
+ it('still emits it for a genuine bare `{…}` with an undefined reference', async () => {
36
+ const warnings = await warningsFor('---\ntitle: T\n---\n\nCoordinates {x, y} in prose.\n');
37
+ expect(warnings.join('\n')).toContain('escape as');
38
+ });
39
+ it('reports only the brace issue when a page has both, and counts just that one', async () => {
40
+ const warnings = await warningsFor('---\ntitle: T\n---\n\nCoordinates {x, y} here.\n\n<button onClick={() => 1}>Go</button>\n');
41
+ const risky = warnings.filter((w) => w.includes('escape as'));
42
+ expect(risky).toHaveLength(1);
43
+ expect(risky[0]).toContain('1 bare');
44
+ expect(risky[0]).not.toContain('onClick');
45
+ });
46
+ });
47
+ //# sourceMappingURL=migrate-risky-expression-warning.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-risky-expression-warning.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/migrate-risky-expression-warning.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,IAAI,GAAW,CAAC;AAEhB,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,yFAAyF,CAC1F,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,sDAAsD,CAAC,CAAC;QAC3F,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,2FAA2F,CAC5F,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert-mdx.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/convert-mdx.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAMjF,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAQvC;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CA2Bf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA+B5F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB3F;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOjE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkE/E"}
1
+ {"version":3,"file":"convert-mdx.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/convert-mdx.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAMjF,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAQvC;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CA2Bf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA+B5F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB3F;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOjE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwE/E"}
@@ -159,8 +159,12 @@ export async function migrateMdxFiles(dir) {
159
159
  // surfaces the same `risky_expression` diagnostic. A file with no `{` can
160
160
  // hold no expression, so skip the full MDX parse for those (the common case).
161
161
  try {
162
+ // Only the bare-brace class. `findRiskyExpressions` also reports stripped
163
+ // event handlers (`onClick={…}`), whose fix is nothing like "escape the
164
+ // braces" — those carry `undefinedRefs: []` and are surfaced with their
165
+ // own wording by `jamdesk validate` and the build warning instead.
162
166
  const risky = finalContent.includes('{')
163
- ? findRiskyExpressions(finalContent, path.relative(dir, file))
167
+ ? findRiskyExpressions(finalContent, path.relative(dir, file)).filter((issue) => issue.undefinedRefs.length > 0)
164
168
  : [];
165
169
  if (risky.length > 0) {
166
170
  warnings.push(`${risky.length} bare {…} expression(s) won't render (e.g. \`{${risky[0].expression}}\`) — ` +
@@ -1 +1 @@
1
- {"version":3,"file":"convert-mdx.js","sourceRoot":"","sources":["../../../src/commands/migrate/convert-mdx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert-mdx.js","sourceRoot":"","sources":["../../../src/commands/migrate/convert-mdx.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAUD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA2XtE"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAUD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiYtE"}
@@ -282,7 +282,13 @@ export async function validate(options) {
282
282
  console.log(` - ${w.file}: ${w.message}`);
283
283
  }
284
284
  console.log('');
285
- output.hint("MDX reads `{...}` as JavaScript. For literal braces, escape them (`\\{x, y\\}`) or quote them (`{'{x, y}'}`).");
285
+ // Only for the bare-`{…}` class. The scanner also reports stripped `on*`
286
+ // handlers, and telling their author to escape braces sends them looking
287
+ // for braces they never wrote — each handler's own message already says
288
+ // what to do.
289
+ if (riskyExpressionWarnings.some((w) => w.isBraceExpression)) {
290
+ output.hint("MDX reads `{...}` as JavaScript. For literal braces, escape them (`\\{x, y\\}`) or quote them (`{'{x, y}'}`).");
291
+ }
286
292
  }
287
293
  // Step 4: Validate OpenAPI specs if configured
288
294
  const config = result.config;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"risky-expression-scanner.d.ts","sourceRoot":"","sources":["../../src/lib/risky-expression-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AAwJD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAuD9F"}
1
+ {"version":3,"file":"risky-expression-scanner.d.ts","sourceRoot":"","sources":["../../src/lib/risky-expression-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyBH,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AAwJD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAmG9F"}
@@ -13,6 +13,21 @@ import remarkParse from 'remark-parse';
13
13
  import remarkMdx from 'remark-mdx';
14
14
  import { visit as visitMdast } from 'unist-util-visit';
15
15
  import { visit as visitEstree } from 'estree-util-visit';
16
+ /**
17
+ * Event-handler prop test — a DELIBERATE copy of the canonical one in
18
+ * `lib/strip-event-handlers.ts`, kept in sync by
19
+ * `__tests__/lib/event-handler-predicate-parity.test.ts`.
20
+ *
21
+ * Not imported, because this file is vendored standalone into `cli/src/lib/`
22
+ * (see cli/scripts/vendor.js) where no sibling module exists and the CLI's
23
+ * `node16` resolution would reject the extensionless path. Every other
24
+ * build-service file synced there is self-contained for the same reason —
25
+ * adding a second file to that chain would mean touching vendor.js,
26
+ * verify-shared-sync.sh and the drift test for one regex.
27
+ */
28
+ function isEventHandlerProp(name) {
29
+ return /^on[A-Z]/.test(name);
30
+ }
16
31
  /**
17
32
  * Identifiers always available to an MDX expression at render that are NOT
18
33
  * file-level bindings: JS globals plus the MDX-provided scope. Whitelisted so a
@@ -224,6 +239,44 @@ export function findRiskyExpressions(content, pagePath) {
224
239
  `define ${refList}.`,
225
240
  });
226
241
  });
242
+ // Pass 3: author event handlers (`onClick={…}`, `onSubmit={…}`). These are
243
+ // removed at compile time by `recmaStripEventHandlers` /
244
+ // `babelStripEventHandlers` — a Server Component cannot pass a function across
245
+ // the RSC boundary, and before the strip existed such a prop returned HTTP 500
246
+ // from the serializer (see lib/strip-event-handlers.ts).
247
+ //
248
+ // Unlike pass 2 this needs no scope modelling and has no precision tradeoff:
249
+ // the name alone decides it, and the prop is ALWAYS dropped, so the warning is
250
+ // never a false positive.
251
+ const jsxElementTypes = new Set(['mdxJsxFlowElement', 'mdxJsxTextElement']);
252
+ visitMdast(tree, (node) => {
253
+ if (!jsxElementTypes.has(node.type) || !node.attributes)
254
+ return;
255
+ for (const attr of node.attributes) {
256
+ // `mdxJsxExpressionAttribute` is a spread (`{...props}`) — no static
257
+ // name, so it is neither strippable nor warnable.
258
+ if (attr.type !== 'mdxJsxAttribute' || !attr.name)
259
+ continue;
260
+ if (!isEventHandlerProp(attr.name))
261
+ continue;
262
+ const el = node.name ? `<${node.name}>` : 'an element';
263
+ issues.push({
264
+ expression: attr.name,
265
+ undefinedRefs: [],
266
+ // Deliberately does NOT suggest a `'use client'` snippet. Snippets are
267
+ // compiled by the same server pipeline (and `isClientComponent` is
268
+ // computed but never read), so the strip applies there too — the
269
+ // handler would be just as dead, only silently. It DOES still work
270
+ // under `jamdesk dev`, which makes that the worst possible advice:
271
+ // works locally, inert in production.
272
+ message: `\`${attr.name}\` on ${el} in \`${pagePath}\` was removed. ` +
273
+ `Documentation pages render on the server, where React cannot pass ` +
274
+ `event handlers, so the handler never ran. Use a link, or one of the ` +
275
+ `built-in interactive components — a custom handler cannot run on a ` +
276
+ `hosted documentation page, including inside a snippet.`,
277
+ });
278
+ }
279
+ });
227
280
  return issues;
228
281
  }
229
282
  //# sourceMappingURL=risky-expression-scanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"risky-expression-scanner.js","sourceRoot":"","sources":["../../src/lib/risky-expression-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"risky-expression-scanner.js","sourceRoot":"","sources":["../../src/lib/risky-expression-scanner.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,12 @@ export interface RiskyExpressionWarning {
20
20
  file: string;
21
21
  /** Author-facing guidance message (identical to the cloud build warning). */
22
22
  message: string;
23
+ /**
24
+ * True for the bare-`{…}` class, false for a stripped `on*` event handler.
25
+ * The scanner reports both; only the former is fixed by escaping braces, so
26
+ * the caller needs this to decide which closing hint to print.
27
+ */
28
+ isBraceExpression: boolean;
23
29
  }
24
30
  /**
25
31
  * Validate risky `{…}` expressions across the project's MDX files.
@@ -1 +1 @@
1
- {"version":3,"file":"validate-risky-expressions.d.ts","sourceRoot":"","sources":["../../src/lib/validate-risky-expressions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAuBnC"}
1
+ {"version":3,"file":"validate-risky-expressions.d.ts","sourceRoot":"","sources":["../../src/lib/validate-risky-expressions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAID;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA2BnC"}
@@ -46,7 +46,11 @@ export async function validateRiskyExpressions(projectDir, mdxFiles) {
46
46
  for (const issue of issues) {
47
47
  if (warnings.length >= RISKY_EXPRESSION_WARNING_CAP)
48
48
  break;
49
- warnings.push({ file: relFile, message: issue.message });
49
+ warnings.push({
50
+ file: relFile,
51
+ message: issue.message,
52
+ isBraceExpression: issue.undefinedRefs.length > 0,
53
+ });
50
54
  }
51
55
  }
52
56
  return warnings;
@@ -1 +1 @@
1
- {"version":3,"file":"validate-risky-expressions.js","sourceRoot":"","sources":["../../src/lib/validate-risky-expressions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AASrE,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,QAAkB;IAElB,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,4BAA4B;YAAE,MAAM;QAE3D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,0CAA0C;QACtD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,4BAA4B;gBAAE,MAAM;YAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"validate-risky-expressions.js","sourceRoot":"","sources":["../../src/lib/validate-risky-expressions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAerE,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,QAAkB;IAElB,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,4BAA4B;YAAE,MAAM;QAE3D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,0CAA0C;QACtD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,4BAA4B;gBAAE,MAAM;YAC3D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jamdesk",
3
- "version": "1.1.200",
3
+ "version": "1.1.202",
4
4
  "description": "CLI for Jamdesk — build, preview, and deploy documentation sites from MDX. Dev server with hot reload, 50+ components, OpenAPI support, AI search, and Mintlify migration",
5
5
  "keywords": [
6
6
  "jamdesk",
@@ -12,6 +12,25 @@
12
12
  /* Import base shared styles */
13
13
  @import "../themes/base.css";
14
14
 
15
+ /*
16
+ * Tailwind's preflight resets `button` to `cursor: default`, so every button —
17
+ * platform chrome and author-written alike — showed an arrow instead of a hand.
18
+ * Platform components are meant to carry `cursor-pointer` individually (see
19
+ * builder/CLAUDE.md "UI rule"), but author MDX cannot be expected to know that,
20
+ * and in practice the platform's own hotspots kept missing it too.
21
+ *
22
+ * `@layer base` is load-bearing, NOT tidiness. The @import above is UNLAYERED,
23
+ * and unlayered rules beat layered ones regardless of specificity — so writing
24
+ * this into base.css would silently outrank the `cursor-default` and
25
+ * `disabled:cursor-not-allowed` utilities the chat components rely on. In
26
+ * `@layer base` those utilities win, which is the behaviour we want.
27
+ */
28
+ @layer base {
29
+ button:not(:disabled):not([aria-disabled="true"]) {
30
+ cursor: pointer;
31
+ }
32
+ }
33
+
15
34
  /*
16
35
  * Theme loading strategy:
17
36
  * - Jam theme (default): loaded here via @import
@@ -100,7 +100,10 @@ export function ThemeToggleCycle() {
100
100
 
101
101
  if (!mounted) {
102
102
  return (
103
- <button className="p-1.5 bg-[var(--color-bg-secondary)]/50 border border-[var(--color-border)]/50 rounded-md">
103
+ // Pre-hydration placeholder: `disabled` matches the sibling placeholder
104
+ // above and keeps globals.css's enabled-button `cursor: pointer` off an
105
+ // element that has no onClick yet.
106
+ <button type="button" disabled aria-hidden="true" className="p-1.5 bg-[var(--color-bg-secondary)]/50 border border-[var(--color-border)]/50 rounded-md">
104
107
  <div className="w-4 h-4" />
105
108
  </button>
106
109
  );
@@ -25,6 +25,7 @@
25
25
  import React from 'react';
26
26
  import * as jsxRuntime from 'react/jsx-runtime';
27
27
  import { transform } from '@babel/standalone';
28
+ import { babelStripEventHandlers } from './strip-event-handlers';
28
29
  import {
29
30
  mdxEvalGuardPlugin,
30
31
  guardPropertyKey,
@@ -72,6 +73,9 @@ function transpileJsx(jsxSource: string): string {
72
73
  // that could reach the host realm from inside the new Function below.
73
74
  plugins: [
74
75
  mdxEvalGuardPlugin,
76
+ // An author `on*` on an inline page component is unserializable in RSC and
77
+ // 500s the page — same class as the snippet path (lib/strip-event-handlers.ts).
78
+ babelStripEventHandlers,
75
79
  ['transform-react-jsx', { runtime: 'automatic', importSource: 'react' }],
76
80
  ],
77
81
  });
@@ -17,32 +17,58 @@ interface OpenApiSpec {
17
17
  [key: string]: unknown;
18
18
  }
19
19
 
20
- // Cache for OpenAPI specs (longer TTL since specs change infrequently)
21
- const specCache = new Map<string, { spec: OpenApiSpec; timestamp: number }>();
20
+ // Cache for OpenAPI specs (longer TTL since specs change infrequently).
21
+ //
22
+ // Stores the in-flight PROMISE rather than the resolved value, and stores it
23
+ // BEFORE awaiting. Next.js resolves `generateMetadata` and renders the page
24
+ // component for the same request, and both paths resolve the same spec
25
+ // (render-doc-page.tsx buildDocMetadata + renderDocPage). With a value cache
26
+ // populated only after the await, both missed and both paid a full R2 fetch
27
+ // AND a full SwaggerParser.dereference — the dereference being the expensive
28
+ // half. Caching the promise makes the second caller join the first.
29
+ const specCache = new Map<string, { spec: Promise<OpenApiSpec>; timestamp: number }>();
22
30
  const CACHE_TTL = 600_000; // 10 minutes
23
31
 
24
- /** Fetch OpenAPI spec from external URL. */
25
- export async function fetchOpenApiSpec(url: string): Promise<OpenApiSpec> {
26
- // Check cache
27
- const cached = specCache.get(url);
32
+ /**
33
+ * Memoize one spec load on `cacheKey` for CACHE_TTL, de-duplicating concurrent
34
+ * callers. A rejected load is evicted instead of being served for the rest of
35
+ * the TTL, so one transient R2 failure cannot pin a project's specs broken for
36
+ * ten minutes.
37
+ */
38
+ function cachedSpec(
39
+ cacheKey: string,
40
+ produce: () => Promise<OpenApiSpec>,
41
+ ): Promise<OpenApiSpec> {
42
+ const cached = specCache.get(cacheKey);
28
43
  if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
29
44
  return cached.spec;
30
45
  }
31
46
 
32
- const response = await fetch(url, {
33
- headers: { Accept: 'application/json' },
47
+ const spec = produce();
48
+ specCache.set(cacheKey, { spec, timestamp: Date.now() });
49
+ // Evict on failure. The identity check means a later successful entry is
50
+ // never deleted by an earlier failure resolving after it. Attaching a
51
+ // handler here also keeps this bookkeeping from surfacing as an unhandled
52
+ // rejection; the caller still sees the throw from its own await.
53
+ spec.catch(() => {
54
+ if (specCache.get(cacheKey)?.spec === spec) specCache.delete(cacheKey);
34
55
  });
56
+ return spec;
57
+ }
35
58
 
36
- if (!response.ok) {
37
- throw new Error(`Failed to fetch OpenAPI spec: ${response.status}`);
38
- }
39
-
40
- const spec = (await response.json()) as OpenApiSpec;
41
-
42
- // Cache it
43
- specCache.set(url, { spec, timestamp: Date.now() });
59
+ /** Fetch OpenAPI spec from external URL. */
60
+ export function fetchOpenApiSpec(url: string): Promise<OpenApiSpec> {
61
+ return cachedSpec(url, async () => {
62
+ const response = await fetch(url, {
63
+ headers: { Accept: 'application/json' },
64
+ });
65
+
66
+ if (!response.ok) {
67
+ throw new Error(`Failed to fetch OpenAPI spec: ${response.status}`);
68
+ }
44
69
 
45
- return spec;
70
+ return (await response.json()) as OpenApiSpec;
71
+ });
46
72
  }
47
73
 
48
74
  /**
@@ -51,34 +77,23 @@ export async function fetchOpenApiSpec(url: string): Promise<OpenApiSpec> {
51
77
  * Handles both YAML and JSON formats, and resolves all internal $ref
52
78
  * references (matching the static mode behavior of SwaggerParser.validate).
53
79
  */
54
- export async function fetchOpenApiSpecFromR2(
80
+ export function fetchOpenApiSpecFromR2(
55
81
  projectSlug: string,
56
82
  specPath: string
57
83
  ): Promise<OpenApiSpec> {
58
- const cacheKey = `r2:${projectSlug}:${specPath}`;
59
-
60
- // Check cache
61
- const cached = specCache.get(cacheKey);
62
- if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
63
- return cached.spec;
64
- }
65
-
66
- const content = await fetchOpenApiFile(projectSlug, specPath);
67
-
68
- // Parse YAML or JSON into a plain object
69
- const isYaml = /\.ya?ml$/i.test(specPath);
70
- const raw = isYaml ? yamlLoad(content) : JSON.parse(content);
71
-
72
- // Dereference all $ref pointers (matching static mode's SwaggerParser.validate behavior).
73
- // SwaggerParser.dereference accepts a loose Document type that does not line up with
74
- // our internal OpenApiSpec; intermediate `any` cast is required at this library boundary.
75
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- SwaggerParser type interop (see CLAUDE.md memory)
76
- const spec = await SwaggerParser.dereference(raw as any) as unknown as OpenApiSpec;
77
-
78
- // Cache it
79
- specCache.set(cacheKey, { spec, timestamp: Date.now() });
80
-
81
- return spec;
84
+ return cachedSpec(`r2:${projectSlug}:${specPath}`, async () => {
85
+ const content = await fetchOpenApiFile(projectSlug, specPath);
86
+
87
+ // Parse YAML or JSON into a plain object
88
+ const isYaml = /\.ya?ml$/i.test(specPath);
89
+ const raw = isYaml ? yamlLoad(content) : JSON.parse(content);
90
+
91
+ // Dereference all $ref pointers (matching static mode's SwaggerParser.validate behavior).
92
+ // SwaggerParser.dereference accepts a loose Document type that does not line up with
93
+ // our internal OpenApiSpec; intermediate `any` cast is required at this library boundary.
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- SwaggerParser type interop (see CLAUDE.md memory)
95
+ return await SwaggerParser.dereference(raw as any) as unknown as OpenApiSpec;
96
+ });
82
97
  }
83
98
 
84
99
  /**
@@ -27,6 +27,24 @@ export {
27
27
  const FENCED_CODE_BLOCK_RE =
28
28
  /^( *)(```+|~~~+)[^\n]*\n([\s\S]*?)\n\1\2\s*$/gm;
29
29
 
30
+ /**
31
+ * Remove fenced code blocks so a scanner sees only real content, using the
32
+ * strict `FENCED_CODE_BLOCK_RE` above (``` and ~~~, indentation-aware).
33
+ *
34
+ * Exported because two scanners must agree on it: snippet-import scanning here,
35
+ * and author class-name scanning in `lib/user-utility-css.ts`. A second copy of
36
+ * the regex would drift, and both failure modes are silent — phantom R2 fetches
37
+ * for a documented import, or CSS generated for a class that only ever appears
38
+ * inside a ```html example.
39
+ *
40
+ * NOTE there is a second, laxer `stripFencedCodeBlocks` further down this file
41
+ * (backticks only, no ~~~) used by the wrapper-detection helpers. The two are
42
+ * not interchangeable; this is the strict one.
43
+ */
44
+ export function stripFencedBlocks(content: string): string {
45
+ return content.replace(FENCED_CODE_BLOCK_RE, '');
46
+ }
47
+
30
48
  /**
31
49
  * Strip snippet import statements from MDX content.
32
50
  *
@@ -61,7 +79,7 @@ export function extractSnippetImports(content: string): Array<{
61
79
  path: string;
62
80
  }> {
63
81
  const results: Array<{ statement: string; imports: string[]; path: string }> = [];
64
- const scanContent = content.replace(FENCED_CODE_BLOCK_RE, '');
82
+ const scanContent = stripFencedBlocks(content);
65
83
  const importPattern = /^(import\s+(?:(?:\{([^}]*)\}|(\w+)|\*\s+as\s+(\w+))\s+from\s+)?["']((?:\.\.\/)*\/?snippets\/[^"']+)["'];?\s*)$/gm;
66
84
 
67
85
  let match;