netjes 0.0.2 → 0.0.3

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 (148) hide show
  1. package/README.md +11 -11
  2. package/cli/agents.mjs +25 -2
  3. package/cli/commands.mjs +56 -6
  4. package/cli/help.mjs +7 -2
  5. package/cli/info.mjs +7 -2
  6. package/cli/scaffold.mjs +31 -4
  7. package/dist/actions.d.ts +7 -2
  8. package/dist/actions.d.ts.map +1 -1
  9. package/dist/actions.js +9 -3
  10. package/dist/actions.js.map +1 -1
  11. package/dist/client-entry.d.ts +1 -0
  12. package/dist/client-entry.d.ts.map +1 -1
  13. package/dist/client-entry.js +19 -2
  14. package/dist/client-entry.js.map +1 -1
  15. package/dist/deferred.d.ts +11 -0
  16. package/dist/deferred.d.ts.map +1 -1
  17. package/dist/deferred.js +15 -1
  18. package/dist/deferred.js.map +1 -1
  19. package/dist/document.d.ts.map +1 -1
  20. package/dist/document.js +10 -1
  21. package/dist/document.js.map +1 -1
  22. package/dist/errors.d.ts +7 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/errors.js +11 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/form.d.ts +5 -5
  27. package/dist/form.d.ts.map +1 -1
  28. package/dist/form.js +5 -2
  29. package/dist/form.js.map +1 -1
  30. package/dist/href.d.ts +24 -3
  31. package/dist/href.d.ts.map +1 -1
  32. package/dist/href.js +117 -7
  33. package/dist/href.js.map +1 -1
  34. package/dist/image.d.ts +3 -3
  35. package/dist/image.d.ts.map +1 -1
  36. package/dist/image.js.map +1 -1
  37. package/dist/index.d.ts +2 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/link.d.ts +15 -7
  42. package/dist/link.d.ts.map +1 -1
  43. package/dist/link.js +38 -7
  44. package/dist/link.js.map +1 -1
  45. package/dist/metadata.d.ts +8 -2
  46. package/dist/metadata.d.ts.map +1 -1
  47. package/dist/metadata.js +14 -5
  48. package/dist/metadata.js.map +1 -1
  49. package/dist/modules.d.ts +15 -1
  50. package/dist/modules.d.ts.map +1 -1
  51. package/dist/modules.js.map +1 -1
  52. package/dist/navigation-focus.d.ts +38 -0
  53. package/dist/navigation-focus.d.ts.map +1 -0
  54. package/dist/navigation-focus.js +71 -0
  55. package/dist/navigation-focus.js.map +1 -0
  56. package/dist/query.d.ts +5 -2
  57. package/dist/query.d.ts.map +1 -1
  58. package/dist/query.js +11 -8
  59. package/dist/query.js.map +1 -1
  60. package/dist/render-document.d.ts +60 -0
  61. package/dist/render-document.d.ts.map +1 -0
  62. package/dist/render-document.js +330 -0
  63. package/dist/render-document.js.map +1 -0
  64. package/dist/route-announcer.d.ts +18 -0
  65. package/dist/route-announcer.d.ts.map +1 -0
  66. package/dist/route-announcer.js +58 -0
  67. package/dist/route-announcer.js.map +1 -0
  68. package/dist/route-tree.d.ts +6 -2
  69. package/dist/route-tree.d.ts.map +1 -1
  70. package/dist/route-tree.js +17 -7
  71. package/dist/route-tree.js.map +1 -1
  72. package/dist/router.d.ts +28 -5
  73. package/dist/router.d.ts.map +1 -1
  74. package/dist/router.js +71 -26
  75. package/dist/router.js.map +1 -1
  76. package/dist/script.d.ts +28 -5
  77. package/dist/script.d.ts.map +1 -1
  78. package/dist/script.js +192 -21
  79. package/dist/script.js.map +1 -1
  80. package/dist/server-render.d.ts.map +1 -1
  81. package/dist/server-render.js +4 -1
  82. package/dist/server-render.js.map +1 -1
  83. package/dist/testing-vitest.d.ts +8 -0
  84. package/dist/testing-vitest.d.ts.map +1 -0
  85. package/dist/testing-vitest.js +26 -0
  86. package/dist/testing-vitest.js.map +1 -0
  87. package/dist/testing.d.ts +11 -1
  88. package/dist/testing.d.ts.map +1 -1
  89. package/dist/testing.js +17 -3
  90. package/dist/testing.js.map +1 -1
  91. package/dist/zod-jitless.d.ts +2 -0
  92. package/dist/zod-jitless.d.ts.map +1 -0
  93. package/dist/zod-jitless.js +4 -0
  94. package/dist/zod-jitless.js.map +1 -0
  95. package/package.json +1 -1
  96. package/sidecar/server.mjs +73 -6
  97. package/skills/netjes/SKILL.md +13 -6
  98. package/skills/netjes/references/caching-and-streaming.md +37 -4
  99. package/skills/netjes/references/data-and-actions.md +9 -5
  100. package/skills/netjes/references/deployment.md +7 -3
  101. package/skills/netjes/references/routing.md +18 -6
  102. package/skills/netjes/references/testing.md +23 -7
  103. package/src/actions.tsx +9 -3
  104. package/src/client-entry.tsx +20 -2
  105. package/src/deferred.ts +14 -1
  106. package/src/document.tsx +22 -3
  107. package/src/errors.ts +12 -0
  108. package/src/form.tsx +10 -7
  109. package/src/href.ts +123 -8
  110. package/src/image.tsx +3 -3
  111. package/src/index.ts +2 -1
  112. package/src/link.tsx +47 -13
  113. package/src/metadata.tsx +19 -6
  114. package/src/modules.ts +15 -2
  115. package/src/navigation-focus.ts +75 -0
  116. package/src/query.tsx +14 -8
  117. package/src/render-document.tsx +386 -0
  118. package/src/route-announcer.tsx +69 -0
  119. package/src/route-tree.tsx +17 -6
  120. package/src/router.tsx +116 -31
  121. package/src/script.tsx +214 -23
  122. package/src/server-render.tsx +4 -1
  123. package/src/testing-vitest.ts +37 -0
  124. package/src/testing.tsx +31 -5
  125. package/src/virtual.d.ts +2 -0
  126. package/src/zod-jitless.ts +15 -0
  127. package/template/.dockerignore +3 -0
  128. package/template/Dockerfile +11 -1
  129. package/template/README.md +11 -7
  130. package/template/_AGENTS.md +36 -8
  131. package/template/__NAME__.csproj +2 -0
  132. package/template/app/document.test.ts +29 -0
  133. package/template/app/error.tsx +3 -2
  134. package/template/app/layout.tsx +10 -1
  135. package/template/docker-compose.override.yml +4 -3
  136. package/template/docker-compose.prod.yml +2 -1
  137. package/template/e2e/home.spec.ts +32 -0
  138. package/template/generated/netjes.ts +43 -14
  139. package/template/package.json +4 -1
  140. package/template/playwright.config.ts +36 -0
  141. package/template/tests/__NAME__.Tests/AppFactory.cs +31 -0
  142. package/template/tests/__NAME__.Tests/HomePageTests.cs +55 -0
  143. package/template/tests/__NAME__.Tests/__NAME__.Tests.csproj +30 -0
  144. package/template/tsconfig.app.json +20 -0
  145. package/template/tsconfig.json +2 -17
  146. package/template/tsconfig.node.json +8 -0
  147. package/vite/plugin.d.ts +9 -1
  148. package/vite/plugin.mjs +17 -5
package/dist/link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAc,CAAC;AAezF,MAAM,IAAI,GAAG,uBAAuB,CAAC;AAErC,SAAS,aAAa,CAAC,IAAY,EAAE,QAAgB;IACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC;IAC3C,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoC;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;IACnC,OAAO,CACL,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QAC7C,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,cAAc,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,EAAa;IAC1K,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,cAAc;YAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC,CAAC;IAEF,OAAO,CACL,YACE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,kBACpB,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAC5D,IAAI,EACR,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,KAAK,CAAC,gBAAgB,IAAI,cAAc,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAAE,OAAO;YACjF,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAO;YAClF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,EACD,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC;QACT,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,EAAE,CAAC;QACT,CAAC,EACD,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC;QACT,CAAC,GACD,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- /** A title, or a layout's `default` and `template` (`'%s · Site'`), or an `absolute` title that skips templates. */
1
+ /**
2
+ * A title, a layout's `template` (`'%s · Site'`) and `default`, or an `absolute` title that skips templates. A
3
+ * `default`, on a layout or a page, goes through the nearest `template` of the layouts above it like a string title,
4
+ * never through the one beside it; a layout's `default` is also the title of the pages below it that set none.
5
+ */
2
6
  export type MetadataTitle = string | {
3
7
  default?: string;
4
8
  template?: string;
@@ -72,7 +76,9 @@ export type ResolvedMetadata = Omit<Metadata, 'title' | 'openGraph' | 'twitter'>
72
76
  };
73
77
  /**
74
78
  * Merges the layouts' metadata (outermost first), the page's, and the server's. A layout's `title.template` applies
75
- * to titles below it, `title.default` is used when nothing below sets one, `title.absolute` skips templates.
79
+ * to the titles below it. `title.default`, on a layout or a page, goes through the templates above it like a string
80
+ * title and never through its own; on a layout it is the title when nothing below sets one. `title.absolute` skips
81
+ * templates.
76
82
  */
77
83
  export declare function resolveMetadata(layouts: readonly (Metadata | undefined)[], page: Metadata | undefined, server?: Metadata): ResolvedMetadata;
78
84
  /** The tags for resolved metadata; rendered anywhere, React puts them in <head>. */
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.tsx"],"names":[],"mappings":"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"}
package/dist/metadata.js CHANGED
@@ -2,15 +2,21 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  // The Next.js Metadata API: `export const metadata` from pages and layouts, plus metadata sent by the C# loader
3
3
  // (`.WithMetadata(...)`, the counterpart of generateMetadata). React 19 hoists the tags into <head>.
4
4
  import { Fragment } from 'react';
5
+ /**
6
+ * The title that `title` stands for, given the template from the layouts above it. A string and a `default` go
7
+ * through the template, an `absolute` title does not, and an object with no `default` and no `absolute` (a layout
8
+ * that only sets a template) has no title of its own.
9
+ */
5
10
  function titleOf(title, template) {
6
11
  if (title === undefined)
7
12
  return undefined;
8
13
  // A function replacer: a title such as "Save $& now" must not be read as a replacement pattern.
14
+ const inTemplate = (text) => (template ? template.replace('%s', () => text) : text);
9
15
  if (typeof title === 'string')
10
- return template ? template.replace('%s', () => title) : title;
16
+ return inTemplate(title);
11
17
  if (title.absolute !== undefined)
12
18
  return title.absolute;
13
- return title.default;
19
+ return title.default === undefined ? undefined : inTemplate(title.default);
14
20
  }
15
21
  /** The images as a list of descriptors with string URLs; like Next.js, a null image or one without a URL is left out. */
16
22
  function imagesOf(images) {
@@ -26,7 +32,9 @@ function withImages(group) {
26
32
  }
27
33
  /**
28
34
  * Merges the layouts' metadata (outermost first), the page's, and the server's. A layout's `title.template` applies
29
- * to titles below it, `title.default` is used when nothing below sets one, `title.absolute` skips templates.
35
+ * to the titles below it. `title.default`, on a layout or a page, goes through the templates above it like a string
36
+ * title and never through its own; on a layout it is the title when nothing below sets one. `title.absolute` skips
37
+ * templates.
30
38
  */
31
39
  export function resolveMetadata(layouts, page, server) {
32
40
  let resolved = {};
@@ -37,8 +45,9 @@ export function resolveMetadata(layouts, page, server) {
37
45
  const { title, openGraph, twitter, alternates, icons, other, ...rest } = metadata;
38
46
  resolved = { ...resolved, ...rest };
39
47
  if (title !== undefined) {
40
- // A layout's own default is not put through its own template, only templates from above.
41
- const own = titleOf(title, typeof title === 'string' || title.default === undefined ? template : undefined);
48
+ // The template from above applies to every title but an absolute one, a default included. This title's own
49
+ // template is stored after its title is written, so it applies only to the titles below.
50
+ const own = titleOf(title, template);
42
51
  if (own !== undefined)
43
52
  resolved.title = own;
44
53
  if (typeof title === 'object' && title.template)
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.tsx"],"names":[],"mappings":"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"}
package/dist/modules.d.ts CHANGED
@@ -8,10 +8,24 @@ export type LayoutProps = {
8
8
  params: Params;
9
9
  };
10
10
  export type LayoutComponent = ComponentType<LayoutProps & Record<string, unknown>>;
11
- /** The props of an `error.tsx`: what was thrown, and a way to try rendering the segment again. */
11
+ /**
12
+ * The props of an `error.tsx`: what was thrown, and a way to try again.
13
+ *
14
+ * - `error.status` is the HTTP status of a server answer behind the error: the status of the error page the server
15
+ * rendered, or of a server action call that failed. An error thrown in the browser has none.
16
+ * - `error.withheld` is true when the message is Netjes's stand-in for one it does not show: the server's reason
17
+ * phrase for an exception while error details are off, "Something went wrong" for a `Page.Defer` failure the server
18
+ * withheld or a thrown value that has no message, or Netjes's own text for a server action whose answer had no
19
+ * message. Render `error.message` only when `!error.withheld`.
20
+ * - `error.stack` is the server's stack when error details are on, and undefined for a server error sent without one.
21
+ * - `reset()` renders the segment again after an error a segment's boundary caught. On an error page the server
22
+ * rendered it loads the page from the server again (`router.refresh()`), and on the page the router's own boundary
23
+ * shows it does nothing: offer a link or a full reload there.
24
+ */
12
25
  export type ErrorPageProps = {
13
26
  error: Error & {
14
27
  status?: number;
28
+ withheld?: boolean;
15
29
  };
16
30
  reset: () => void;
17
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,+IAA+I;AAC/I,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACnF,kGAAkG;AAClG,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,KAAK,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtC,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC,CAAC;CAClE,CAAC;AAEF,iGAAiG;AACjG,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE9G,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,yDAAyD;IACzD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACnG,CAAC;AAEF,2GAA2G;AAC3G,qBAAa,kBAAmB,SAAQ,KAAK;IAClC,IAAI,SAAwB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,YAAY,IAAI,EAAE,MAAM,EAGvB;CACF;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAC/B,IAAI,SAAqB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,YAAY,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAGvC;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAOF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CA2DtG"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,+IAA+I;AAC/I,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACnF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,KAAK,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAE3G,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtC,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC,CAAC;CAClE,CAAC;AAEF,iGAAiG;AACjG,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE9G,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,yDAAyD;IACzD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACnG,CAAC;AAEF,2GAA2G;AAC3G,qBAAa,kBAAmB,SAAQ,KAAK;IAClC,IAAI,SAAwB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,YAAY,IAAI,EAAE,MAAM,EAGvB;CACF;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAC/B,IAAI,SAAqB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,YAAY,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAGvC;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAOF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CA2DtG"}
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAgDA,2GAA2G;AAC3G,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,oBAAoB,CAAC;IAC5B,IAAI,CAAS;IACtB,YAAY,IAAY;QACtB,KAAK,CAAC,yBAAyB,IAAI,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,GAAG,iBAAiB,CAAC;IACzB,IAAI,CAAS;IACtB,YAAY,IAAY,EAAE,KAAc;QACtC,KAAK,CAAC,WAAW,IAAI,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAWD,SAAS,WAAW,CAAC,KAAc;IACjC,kFAAkF;IAClF,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,UAAU,IAAI,KAAK,CAAC,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAkB,EAAE,OAAO,GAAwB,EAAE;IACtF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE7C,SAAS,IAAI,CAAC,IAAY;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,IAAI,CAC7B,CAAC,MAAM,EAAE,EAAE;YACT,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACpH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,uDAAuD,CAAC,CAAC;YACrH,MAAM,QAAQ,GAAI,MAAiC,CAAC,QAAQ,CAAC;YAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;gBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAoB,CAAC,CAAC;YAChG,OAAO,SAAS,CAAC;QACnB,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7E,CAAC,CACF,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACxC,KAAK,CAAC,SAAS,CAAC,KAAK;YACnB,MAAM,QAAQ,GAAG,CAAC,IAAwB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAChG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBACpC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBACnC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1D,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CACjF,CAAC;oBACF,MAAM,MAAM,GAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAU,CAAC,CAC3G,CAAC;wBACF,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAwC,CAAC;oBACpF,CAAC;oBACD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjF,IAAI,cAAc;wBAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC;oBACrD,IAAI,MAAM;wBAAE,MAAM,CAAC,MAAM,GAAG,MAAyB,CAAC;oBACtD,IAAI,QAAQ;wBAAE,MAAM,CAAC,QAAQ,GAAG,QAA8C,CAAC;oBAC/E,IAAI,OAAO;wBAAE,MAAM,CAAC,OAAO,GAAG,OAAwB,CAAC;oBACvD,IAAI,KAAK;wBAAE,MAAM,CAAC,KAAK,GAAG,KAAsC,CAAC;oBACjE,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CACH;aACF,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,CAAyB,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/G,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ /** Whether the user types into the element, or picks a value in it from the keyboard: a text field, a select, editable content. */
2
+ export declare function isEditable(element: Element): boolean;
3
+ /**
4
+ * Focuses an element without scrolling to it. One that takes no focus of its own, such as a heading or `main`, gets
5
+ * `tabindex="-1"` for it, which goes again when it loses the focus. Returns whether the element has the focus.
6
+ */
7
+ export declare function focusElement(element: HTMLElement): boolean;
8
+ /**
9
+ * Starts the focus over at the top of the document, as a page load does: the next Tab goes to the first element that
10
+ * takes the focus, such as a skip link. `body` takes the focus for this only, without scrolling, and gets its own
11
+ * `tabindex` back, or none.
12
+ */
13
+ export declare function resetFocus(): void;
14
+ export type NavigationFocus = {
15
+ /** The element the URL's fragment names, which the router scrolled to; null without a fragment, or when none matched. */
16
+ target: HTMLElement | null;
17
+ /** The page on screen is another one: its page key changed. */
18
+ replaced: boolean;
19
+ /** The navigation keeps the scroll position: `scroll={false}`. */
20
+ keep: boolean;
21
+ /** What had the focus when the navigation started. */
22
+ focusedAtStart: Element | null;
23
+ };
24
+ /**
25
+ * Moves the focus after a navigation, once the router has scrolled, by the first of these rules that applies:
26
+ *
27
+ * 1. The fragment's target takes it, on this page or on another. One that cannot (a hidden element) leaves it to the
28
+ * rules below.
29
+ * 2. It stays on the same page: a query that changed, a refresh, a post that stays on its page, a modal opening or
30
+ * closing over the page under it.
31
+ * 3. It stays where it went while the navigation ran: to the new page (`autoFocus`), or where the user or a handler
32
+ * of the app (a menu that closes) put it.
33
+ * 4. It stays on what had it when the navigation started, with `scroll={false}` or in a field the user types into,
34
+ * such as a search box in a layout that navigates as the user types.
35
+ * 5. Otherwise it starts over at the top of the document, as after a page load.
36
+ */
37
+ export declare function moveFocusAfterNavigation({ target, replaced, keep, focusedAtStart }: NavigationFocus): void;
38
+ //# sourceMappingURL=navigation-focus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-focus.d.ts","sourceRoot":"","sources":["../src/navigation-focus.ts"],"names":[],"mappings":"AAGA,mIAAmI;AACnI,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAIpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAa1D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,SAOzB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,yHAAyH;IACzH,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,IAAI,EAAE,OAAO,CAAC;IACd,sDAAsD;IACtD,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,eAAe,QAOnG"}
@@ -0,0 +1,71 @@
1
+ /** Input types the user does not type into: the focus can leave them when the page they are on is replaced. */
2
+ const NOT_TYPED_IN = new Set(['button', 'checkbox', 'color', 'file', 'hidden', 'image', 'radio', 'range', 'reset', 'submit']);
3
+ /** Whether the user types into the element, or picks a value in it from the keyboard: a text field, a select, editable content. */
4
+ export function isEditable(element) {
5
+ if (element instanceof HTMLTextAreaElement || element instanceof HTMLSelectElement)
6
+ return true;
7
+ if (element instanceof HTMLInputElement)
8
+ return !NOT_TYPED_IN.has(element.type);
9
+ return element instanceof HTMLElement && element.isContentEditable;
10
+ }
11
+ /**
12
+ * Focuses an element without scrolling to it. One that takes no focus of its own, such as a heading or `main`, gets
13
+ * `tabindex="-1"` for it, which goes again when it loses the focus. Returns whether the element has the focus.
14
+ */
15
+ export function focusElement(element) {
16
+ element.focus({ preventScroll: true });
17
+ if (document.activeElement === element)
18
+ return true;
19
+ // A tabindex of the app's own did not help (a hidden or inert element): leave it as it is.
20
+ if (element.hasAttribute('tabindex'))
21
+ return false;
22
+ element.setAttribute('tabindex', '-1');
23
+ element.focus({ preventScroll: true });
24
+ if (document.activeElement !== element) {
25
+ element.removeAttribute('tabindex');
26
+ return false;
27
+ }
28
+ element.addEventListener('blur', () => element.removeAttribute('tabindex'), { once: true });
29
+ return true;
30
+ }
31
+ /**
32
+ * Starts the focus over at the top of the document, as a page load does: the next Tab goes to the first element that
33
+ * takes the focus, such as a skip link. `body` takes the focus for this only, without scrolling, and gets its own
34
+ * `tabindex` back, or none.
35
+ */
36
+ export function resetFocus() {
37
+ const body = document.body;
38
+ const own = body.getAttribute('tabindex');
39
+ body.tabIndex = -1;
40
+ body.focus({ preventScroll: true, focusVisible: false });
41
+ if (own === null)
42
+ body.removeAttribute('tabindex');
43
+ else
44
+ body.setAttribute('tabindex', own);
45
+ }
46
+ /**
47
+ * Moves the focus after a navigation, once the router has scrolled, by the first of these rules that applies:
48
+ *
49
+ * 1. The fragment's target takes it, on this page or on another. One that cannot (a hidden element) leaves it to the
50
+ * rules below.
51
+ * 2. It stays on the same page: a query that changed, a refresh, a post that stays on its page, a modal opening or
52
+ * closing over the page under it.
53
+ * 3. It stays where it went while the navigation ran: to the new page (`autoFocus`), or where the user or a handler
54
+ * of the app (a menu that closes) put it.
55
+ * 4. It stays on what had it when the navigation started, with `scroll={false}` or in a field the user types into,
56
+ * such as a search box in a layout that navigates as the user types.
57
+ * 5. Otherwise it starts over at the top of the document, as after a page load.
58
+ */
59
+ export function moveFocusAfterNavigation({ target, replaced, keep, focusedAtStart }) {
60
+ if (target && focusElement(target))
61
+ return;
62
+ if (!replaced)
63
+ return;
64
+ const focused = document.activeElement;
65
+ if (focused && focused !== document.body && focused !== focusedAtStart)
66
+ return;
67
+ if (focused && focused === focusedAtStart && (keep || isEditable(focused)))
68
+ return;
69
+ resetFocus();
70
+ }
71
+ //# sourceMappingURL=navigation-focus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-focus.js","sourceRoot":"","sources":["../src/navigation-focus.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE9H,mIAAmI;AACnI,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,IAAI,OAAO,YAAY,mBAAmB,IAAI,OAAO,YAAY,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAChG,IAAI,OAAO,YAAY,gBAAgB;QAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,OAAO,YAAY,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,aAAa,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACpD,2FAA2F;IAC3F,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,IAAI;QAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;;QAC9C,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAaD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAmB;IAClG,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;QAAE,OAAO;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;IACvC,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,OAAO,KAAK,cAAc;QAAE,OAAO;IAC/E,IAAI,OAAO,IAAI,OAAO,KAAK,cAAc,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO;IACnF,UAAU,EAAE,CAAC;AACf,CAAC"}
package/dist/query.d.ts CHANGED
@@ -5,8 +5,11 @@ export type QueryShellOptions = {
5
5
  /** Merged over the Netjes defaults (`staleTime` of one minute, so seeded data is not refetched straight away). */
6
6
  defaultOptions?: DefaultOptions;
7
7
  };
8
- /** The Netjes defaults with the app's options merged over them, as the built-in client and the test harness use. */
9
- export declare function mergeOptions(options: DefaultOptions | undefined): DefaultOptions;
8
+ /**
9
+ * The Netjes defaults with each layer of options merged over the ones before it, query and mutation options one by
10
+ * one: the built-in client merges the app's options, and the test harness more layers.
11
+ */
12
+ export declare function mergeOptions(...layers: ReadonlyArray<DefaultOptions | undefined>): DefaultOptions;
10
13
  /**
11
14
  * Turns the payload's seeded queries into TanStack's dehydrated state, using only public APIs. Server timestamps
12
15
  * are moved onto the browser clock, so freshness and "newer data wins" compare like with like.
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAkE,MAAM,uBAAuB,CAAC;AAClJ,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,kHAAkH;IAClH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAIF,oHAAoH;AACpH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,CAOhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,EAAE,WAAW,SAAI,GAAG,eAAe,GAAG,SAAS,CAO3H;AAUD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,kBAGrB;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,iCA8BjE"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAkE,MAAM,uBAAuB,CAAC;AAClJ,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,kHAAkH;IAClH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAIF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,cAAc,GAAG,SAAS,CAAC,GAAG,cAAc,CAUjG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,EAAE,WAAW,SAAI,GAAG,eAAe,GAAG,SAAS,CAO3H;AAUD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,kBAGrB;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,iCA8BjE"}
package/dist/query.js CHANGED
@@ -4,14 +4,17 @@ import { useContext, useEffect, useMemo, useState } from 'react';
4
4
  import { RenderCleanupContext } from './render-cleanup.js';
5
5
  import { useInternalRouter, usePagePayload } from './router.js';
6
6
  const DEFAULTS = { queries: { staleTime: 60_000 } };
7
- /** The Netjes defaults with the app's options merged over them, as the built-in client and the test harness use. */
8
- export function mergeOptions(options) {
9
- return {
10
- ...DEFAULTS,
11
- ...options,
12
- queries: { ...DEFAULTS.queries, ...options?.queries },
13
- mutations: { ...DEFAULTS.mutations, ...options?.mutations },
14
- };
7
+ /**
8
+ * The Netjes defaults with each layer of options merged over the ones before it, query and mutation options one by
9
+ * one: the built-in client merges the app's options, and the test harness more layers.
10
+ */
11
+ export function mergeOptions(...layers) {
12
+ return [DEFAULTS, ...layers].reduce((merged, layer) => ({
13
+ ...merged,
14
+ ...layer,
15
+ queries: { ...merged.queries, ...layer?.queries },
16
+ mutations: { ...merged.mutations, ...layer?.mutations },
17
+ }), {});
15
18
  }
16
19
  /**
17
20
  * Turns the payload's seeded queries into TanStack's dehydrated state, using only public APIs. Server timestamps
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA6C,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClJ,OAAO,EAAkB,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAc,CAAC;AAOjE,MAAM,QAAQ,GAAmB,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;AAEpE,oHAAoH;AACpH,MAAM,UAAU,YAAY,CAAC,OAAmC;IAC9D,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,OAAO;QACV,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;QACrD,SAAS,EAAE,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE;KAC5D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2C,EAAE,WAAW,GAAG,CAAC;IAC5F,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO;QAAE,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC,CAAC;IACvH,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,OAAuB;IACvC,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC;AAC3F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAO,GAAsB,EAAE;IAC9D,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5D,OAAO,SAAS,UAAU,CAAC,EAAE,QAAQ,EAA2B;QAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;YAC/H,gGAAgG;YAChG,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,uFAAuF;QACvF,SAAS,CACP,GAAG,EAAE,CACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE;gBAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvF,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE;gBAAE,KAAK,MAAM,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChG,CAAC,CAAC,EACJ,CAAC,MAAM,EAAE,MAAM,CAAC,CACjB,CAAC;QACF,gHAAgH;QAChH,gHAAgH;QAChH,wCAAwC;QACxC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACjF,OAAO,CACL,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,YACjC,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAqB,GAC3C,CACvB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { InitialPayload, Params } from './payload.ts';
2
+ /** What {@link renderDocument} renders a page with: what the server would send with it. */
3
+ export type RenderDocumentOptions = {
4
+ /** The page's props, as its C# loader sends them. A Promise anywhere in them is a `Page.Defer` value. */
5
+ props?: Record<string, unknown>;
6
+ /** The route values, as `useParams()` returns them: a string per segment, an array per catch-all. Default none. */
7
+ params?: Params;
8
+ /** The page's URL, its path and query. Default `/`. */
9
+ url?: string;
10
+ /**
11
+ * The props of each layout's C# layout loader, by the layout's file, such as `app/blog/layout.tsx`. A Promise in
12
+ * them is a `Page.Defer` value. A layout that is not named here gets none.
13
+ */
14
+ layouts?: Record<string, Record<string, unknown>>;
15
+ /** What the server sends as the shared props (`UseSharedProps`). Default `null`. */
16
+ shared?: unknown;
17
+ /**
18
+ * The page's status. Default 200, or the status the server gives the file: 404 for a not-found file, 403 for a
19
+ * forbidden one, 401 for an unauthorized one and 500 for an error or global-error one.
20
+ */
21
+ status?: number;
22
+ /** A Content-Security-Policy nonce, which goes on every script and stylesheet, as for a policy with `{nonce}`. */
23
+ nonce?: string;
24
+ /** The `lang` of `<html>`. Default `en`, as `NetjesOptions.Lang`. */
25
+ lang?: string;
26
+ /** What `usePublicConfig()` reads, as the `Netjes:PublicConfig` section. */
27
+ publicConfig?: Record<string, unknown>;
28
+ /** The page files, keyed `/app/...` as `import.meta.glob` keys them. Default: the app's, from the `netjes()` plugin. */
29
+ modules?: Record<string, () => Promise<unknown>>;
30
+ /** Stops the render, which then rejects with the signal's reason: for a page that waits on a Promise that never settles. */
31
+ signal?: AbortSignal;
32
+ };
33
+ /** The options {@link documentPayload} reads, with any Promise in the props already a placeholder. */
34
+ type DocumentOptions = Omit<RenderDocumentOptions, 'modules' | 'signal'>;
35
+ /**
36
+ * The payload the server sends with the document of `page`, a file of the pages map named without its leading slash,
37
+ * for the values in `options`: the route, kind, status and segments by the server's rules, and a build with no
38
+ * stylesheets or scripts. Throws for a file it cannot render: one not in `files`, a layout, or a page in a private
39
+ * folder or under a parallel route slot.
40
+ */
41
+ export declare function documentPayload(page: string, options: DocumentOptions, files: readonly string[], appDir: string): InitialPayload;
42
+ /**
43
+ * Renders a page's whole document, from `<!DOCTYPE html>` to `</html>`, as the Node sidecar renders it for a crawler:
44
+ * the page from `page`, a file of the pages map such as `app/blog/[slug]/page.tsx`, inside the layouts the server
45
+ * would wrap it in, with the head, Netjes's inline scripts and the payload. It waits for every Suspense boundary, and
46
+ * a Promise in the props or in a layout's props is a `Page.Defer` value: rendered in place once it resolves, left as its
47
+ * Suspense fallback when it rejects. The build's stylesheets and scripts, development styles and an antiforgery token
48
+ * are left out, and no C# runs: the props come from `options`. Runs in Vitest's node environment, with the `netjes()`
49
+ * plugin, which provides the pages map, the app's folder and the query shell, also when `modules` is given.
50
+ */
51
+ export declare function renderDocument(page: string, options?: RenderDocumentOptions): Promise<string>;
52
+ /**
53
+ * The hash-sources, `'sha256-…'` in their quotes, of the inline scripts in `html` that a browser runs and checks
54
+ * against a Content-Security-Policy's script sources: each script element without `src` whose type a browser runs
55
+ * (none, a JavaScript type, `module`, `importmap` or `speculationrules`), with text. Each hash is listed once, in the
56
+ * order of the first script with it. Data blocks such as the page payload (`application/json`) are left out.
57
+ */
58
+ export declare function inlineScriptHashes(html: string): Promise<string[]>;
59
+ export {};
60
+ //# sourceMappingURL=render-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-document.d.ts","sourceRoot":"","sources":["../src/render-document.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,EAAc,MAAM,cAAc,CAAC;AAEjF,2FAA2F;AAC3F,MAAM,MAAM,qBAAqB,GAAG;IAClC,yGAAyG;IACzG,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,mHAAmH;IACnH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,wHAAwH;IACxH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,4HAA4H;IAC5H,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,sGAAsG;AACtG,KAAK,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AA6HzE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAsDhI;AAwCD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BvG;AA+DD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWxE"}