@jasonshimmy/vite-plugin-cer-app 0.28.2 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +2 -0
  2. package/dist/cli/adapters/cloudflare.d.ts +2 -2
  3. package/dist/cli/adapters/cloudflare.d.ts.map +1 -1
  4. package/dist/cli/adapters/cloudflare.js +83 -159
  5. package/dist/cli/adapters/cloudflare.js.map +1 -1
  6. package/dist/cli/adapters/deployment-mode.d.ts +10 -0
  7. package/dist/cli/adapters/deployment-mode.d.ts.map +1 -0
  8. package/dist/cli/adapters/deployment-mode.js +59 -0
  9. package/dist/cli/adapters/deployment-mode.js.map +1 -0
  10. package/dist/cli/adapters/netlify.d.ts +5 -4
  11. package/dist/cli/adapters/netlify.d.ts.map +1 -1
  12. package/dist/cli/adapters/netlify.js +26 -150
  13. package/dist/cli/adapters/netlify.js.map +1 -1
  14. package/dist/cli/adapters/vercel.d.ts +2 -3
  15. package/dist/cli/adapters/vercel.d.ts.map +1 -1
  16. package/dist/cli/adapters/vercel.js +36 -111
  17. package/dist/cli/adapters/vercel.js.map +1 -1
  18. package/dist/cli/adapters/web-bridge.d.ts +3 -0
  19. package/dist/cli/adapters/web-bridge.d.ts.map +1 -0
  20. package/dist/cli/adapters/web-bridge.js +110 -0
  21. package/dist/cli/adapters/web-bridge.js.map +1 -0
  22. package/dist/cli/checks/lighthouse.d.ts +7 -1
  23. package/dist/cli/checks/lighthouse.d.ts.map +1 -1
  24. package/dist/cli/checks/lighthouse.js +49 -44
  25. package/dist/cli/checks/lighthouse.js.map +1 -1
  26. package/dist/cli/checks/links.js.map +1 -1
  27. package/dist/cli/checks/performance.d.ts +3 -0
  28. package/dist/cli/checks/performance.d.ts.map +1 -1
  29. package/dist/cli/checks/performance.js +56 -15
  30. package/dist/cli/checks/performance.js.map +1 -1
  31. package/dist/cli/checks/quality.d.ts +35 -0
  32. package/dist/cli/checks/quality.d.ts.map +1 -0
  33. package/dist/cli/checks/quality.js +72 -0
  34. package/dist/cli/checks/quality.js.map +1 -0
  35. package/dist/cli/checks/seo.d.ts +9 -0
  36. package/dist/cli/checks/seo.d.ts.map +1 -0
  37. package/dist/cli/checks/seo.js +40 -0
  38. package/dist/cli/checks/seo.js.map +1 -0
  39. package/dist/cli/commands/adapt.js.map +1 -1
  40. package/dist/cli/commands/build.d.ts.map +1 -1
  41. package/dist/cli/commands/build.js +2 -51
  42. package/dist/cli/commands/build.js.map +1 -1
  43. package/dist/cli/commands/check.d.ts.map +1 -1
  44. package/dist/cli/commands/check.js +12 -0
  45. package/dist/cli/commands/check.js.map +1 -1
  46. package/dist/cli/commands/dev.d.ts +4 -0
  47. package/dist/cli/commands/dev.d.ts.map +1 -1
  48. package/dist/cli/commands/dev.js +1 -72
  49. package/dist/cli/commands/dev.js.map +1 -1
  50. package/dist/cli/commands/generate.d.ts +1 -4
  51. package/dist/cli/commands/generate.d.ts.map +1 -1
  52. package/dist/cli/commands/generate.js +4 -73
  53. package/dist/cli/commands/generate.js.map +1 -1
  54. package/dist/cli/commands/preview-paths.d.ts +3 -0
  55. package/dist/cli/commands/preview-paths.d.ts.map +1 -0
  56. package/dist/cli/commands/preview-paths.js +8 -0
  57. package/dist/cli/commands/preview-paths.js.map +1 -0
  58. package/dist/cli/commands/preview.d.ts +11 -0
  59. package/dist/cli/commands/preview.d.ts.map +1 -1
  60. package/dist/cli/commands/preview.js +124 -458
  61. package/dist/cli/commands/preview.js.map +1 -1
  62. package/dist/cli/config.d.ts +3 -0
  63. package/dist/cli/config.d.ts.map +1 -0
  64. package/dist/cli/config.js +68 -0
  65. package/dist/cli/config.js.map +1 -0
  66. package/dist/cli/create/index.js.map +1 -1
  67. package/dist/cli/create/templates/spa/package.json.tpl +1 -1
  68. package/dist/cli/create/templates/ssg/package.json.tpl +1 -1
  69. package/dist/cli/create/templates/ssr/package.json.tpl +1 -1
  70. package/dist/plugin/build-ssg.d.ts.map +1 -1
  71. package/dist/plugin/build-ssg.js +81 -15
  72. package/dist/plugin/build-ssg.js.map +1 -1
  73. package/dist/plugin/build-ssr.d.ts.map +1 -1
  74. package/dist/plugin/build-ssr.js +3 -1
  75. package/dist/plugin/build-ssr.js.map +1 -1
  76. package/dist/plugin/content/scanner.d.ts.map +1 -1
  77. package/dist/plugin/content/scanner.js +2 -7
  78. package/dist/plugin/content/scanner.js.map +1 -1
  79. package/dist/plugin/dev-server.d.ts +8 -0
  80. package/dist/plugin/dev-server.d.ts.map +1 -1
  81. package/dist/plugin/dev-server.js.map +1 -1
  82. package/dist/plugin/dts-generator.d.ts.map +1 -1
  83. package/dist/plugin/dts-generator.js +4 -1
  84. package/dist/plugin/dts-generator.js.map +1 -1
  85. package/dist/plugin/file-scanner.d.ts +4 -0
  86. package/dist/plugin/file-scanner.d.ts.map +1 -0
  87. package/dist/plugin/file-scanner.js +59 -0
  88. package/dist/plugin/file-scanner.js.map +1 -0
  89. package/dist/plugin/html-post-process.d.ts +1 -1
  90. package/dist/plugin/html-post-process.d.ts.map +1 -1
  91. package/dist/plugin/html-post-process.js +7 -5
  92. package/dist/plugin/html-post-process.js.map +1 -1
  93. package/dist/plugin/index.d.ts +1 -4
  94. package/dist/plugin/index.d.ts.map +1 -1
  95. package/dist/plugin/index.js +26 -8
  96. package/dist/plugin/index.js.map +1 -1
  97. package/dist/plugin/path-utils.js.map +1 -1
  98. package/dist/plugin/scanner.d.ts +2 -2
  99. package/dist/plugin/scanner.d.ts.map +1 -1
  100. package/dist/plugin/scanner.js +4 -10
  101. package/dist/plugin/scanner.js.map +1 -1
  102. package/dist/plugin/server-content.d.ts +3 -0
  103. package/dist/plugin/server-content.d.ts.map +1 -0
  104. package/dist/plugin/server-content.js +25 -0
  105. package/dist/plugin/server-content.js.map +1 -0
  106. package/dist/plugin/transforms/auto-import.d.ts.map +1 -1
  107. package/dist/plugin/transforms/auto-import.js +6 -5
  108. package/dist/plugin/transforms/auto-import.js.map +1 -1
  109. package/dist/plugin/transforms/head-inject.d.ts.map +1 -1
  110. package/dist/plugin/virtual/composables.js +1 -1
  111. package/dist/plugin/virtual/composables.js.map +1 -1
  112. package/dist/plugin/virtual/content-components.d.ts +3 -1
  113. package/dist/plugin/virtual/content-components.d.ts.map +1 -1
  114. package/dist/plugin/virtual/content-components.js +105 -22
  115. package/dist/plugin/virtual/content-components.js.map +1 -1
  116. package/dist/plugin/virtual/layouts.js +1 -1
  117. package/dist/plugin/virtual/layouts.js.map +1 -1
  118. package/dist/plugin/virtual/middleware.js +1 -1
  119. package/dist/plugin/virtual/middleware.js.map +1 -1
  120. package/dist/plugin/virtual/plugins.js +1 -1
  121. package/dist/plugin/virtual/plugins.js.map +1 -1
  122. package/dist/plugin/virtual/routes.js +1 -1
  123. package/dist/plugin/virtual/routes.js.map +1 -1
  124. package/dist/plugin/virtual/server-api.js +1 -1
  125. package/dist/plugin/virtual/server-api.js.map +1 -1
  126. package/dist/plugin/virtual/server-middleware.js +1 -1
  127. package/dist/plugin/virtual/server-middleware.js.map +1 -1
  128. package/dist/runtime/app-template.d.ts.map +1 -1
  129. package/dist/runtime/app-template.js +18 -8
  130. package/dist/runtime/app-template.js.map +1 -1
  131. package/dist/runtime/composables/index.d.ts +2 -0
  132. package/dist/runtime/composables/index.d.ts.map +1 -1
  133. package/dist/runtime/composables/index.js +1 -0
  134. package/dist/runtime/composables/index.js.map +1 -1
  135. package/dist/runtime/composables/render-content.d.ts +10 -0
  136. package/dist/runtime/composables/render-content.d.ts.map +1 -0
  137. package/dist/runtime/composables/render-content.js +21 -0
  138. package/dist/runtime/composables/render-content.js.map +1 -0
  139. package/dist/runtime/composables/use-active-headings.js.map +1 -1
  140. package/dist/runtime/composables/use-auth.d.ts.map +1 -1
  141. package/dist/runtime/composables/use-auth.js +14 -6
  142. package/dist/runtime/composables/use-auth.js.map +1 -1
  143. package/dist/runtime/composables/use-content-page.d.ts +2 -0
  144. package/dist/runtime/composables/use-content-page.d.ts.map +1 -1
  145. package/dist/runtime/composables/use-content-page.js +1 -1
  146. package/dist/runtime/composables/use-content-page.js.map +1 -1
  147. package/dist/runtime/composables/use-content.d.ts.map +1 -1
  148. package/dist/runtime/composables/use-content.js.map +1 -1
  149. package/dist/runtime/composables/use-cookie.js.map +1 -1
  150. package/dist/runtime/composables/use-runtime-config.js.map +1 -1
  151. package/dist/runtime/composables/use-session.js.map +1 -1
  152. package/dist/runtime/content/client.d.ts +2 -3
  153. package/dist/runtime/content/client.d.ts.map +1 -1
  154. package/dist/runtime/content/client.js +4 -5
  155. package/dist/runtime/content/client.js.map +1 -1
  156. package/dist/runtime/entry-server-template.d.ts.map +1 -1
  157. package/dist/runtime/entry-server-template.js +45 -15
  158. package/dist/runtime/entry-server-template.js.map +1 -1
  159. package/dist/runtime/isr-handler.d.ts +4 -15
  160. package/dist/runtime/isr-handler.d.ts.map +1 -1
  161. package/dist/runtime/isr-handler.js +64 -45
  162. package/dist/runtime/isr-handler.js.map +1 -1
  163. package/dist/runtime/request-dispatcher.d.ts +31 -0
  164. package/dist/runtime/request-dispatcher.d.ts.map +1 -0
  165. package/dist/runtime/request-dispatcher.js +152 -0
  166. package/dist/runtime/request-dispatcher.js.map +1 -0
  167. package/dist/runtime/route-matching.d.ts +20 -0
  168. package/dist/runtime/route-matching.d.ts.map +1 -0
  169. package/dist/runtime/route-matching.js +45 -0
  170. package/dist/runtime/route-matching.js.map +1 -0
  171. package/dist/types/api.d.ts +3 -0
  172. package/dist/types/api.d.ts.map +1 -1
  173. package/dist/types/config.d.ts +27 -0
  174. package/dist/types/config.d.ts.map +1 -1
  175. package/dist/types/config.js.map +1 -1
  176. package/dist/types/content.d.ts +2 -0
  177. package/dist/types/content.d.ts.map +1 -1
  178. package/dist/types/page.d.ts +11 -7
  179. package/dist/types/page.d.ts.map +1 -1
  180. package/package.json +30 -16
  181. package/dist/cli/commands/preview-isr.d.ts +0 -66
  182. package/dist/cli/commands/preview-isr.d.ts.map +0 -1
  183. package/dist/cli/commands/preview-isr.js +0 -132
  184. package/dist/cli/commands/preview-isr.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AA+YA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AA0aA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -60,6 +60,8 @@ export interface ContentLinkContext {
60
60
  export type ContentLinkRel = string | ((link: ContentLinkContext) => string | null | undefined | false);
61
61
  /** Content layer configuration. Controls parsing, directory, and draft behaviour. */
62
62
  export interface CerContentConfig {
63
+ /** Download policy for content registration modules; independent of hydration. */
64
+ components?: Record<string, 'load' | 'visible' | 'none'>;
63
65
  /**
64
66
  * Content directory relative to the project root. Defaults to `'content'`,
65
67
  * which resolves to `{root}/content/` — at the same level as `app/`, `server/`, and `public/`.
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"AAAA,uIAAuI;AACvI,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,qFAAqF;IACrF,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,KAAK,EAAE,UAAU,GAAG,MAAM,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iCAAiC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAA;IACb,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,GAAG,EAAE,cAAc,EAAE,CAAA;IACrB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,kBAAkB,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,CAAA;AAErE,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"AAAA,uIAAuI;AACvI,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,qFAAqF;IACrF,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,KAAK,EAAE,UAAU,GAAG,MAAM,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iCAAiC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAA;IACb,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,GAAG,EAAE,cAAc,EAAE,CAAA;IACrB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,kBAAkB,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,CAAA;AAErE,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,CAAA;IACxD;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB"}
@@ -66,9 +66,9 @@ export interface PageMeta {
66
66
  *
67
67
  * - `'server'` — always render server-side, never pre-render. In SSG mode
68
68
  * the route is skipped during the static build.
69
- * - `'static'` — always serve pre-rendered static HTML. In the SSR preview
70
- * server the pre-rendered file is served from disk; falls back to SSR if
71
- * not found.
69
+ * - `'static'` — eligible for SSG. The shared dispatcher serves known generated
70
+ * documents unless ISR is configured; other documents follow the build's
71
+ * fallback policy. An SSR-only build still renders this route on request.
72
72
  * - `'spa'` — client-only. In SSR mode the server returns the SPA shell
73
73
  * (index.html) without rendering. In SSG mode the route is skipped.
74
74
  *
@@ -78,23 +78,27 @@ export interface PageMeta {
78
78
  }
79
79
  /**
80
80
  * Context object passed to a page's `loader` function.
81
- * Available on the server only — the loader runs before the page component renders.
81
+ * Runs before the page renders during SSR/SSG, and in the browser during
82
+ * SPA startup and client navigation. Keep page loaders browser-safe.
82
83
  */
83
84
  export interface PageLoaderContext<P extends Record<string, string> = Record<string, string>> {
84
85
  params: P;
85
86
  query: Record<string, string>;
86
87
  /** Present during SSR/SSG server render. Absent (`undefined`) during client-side navigation. */
87
88
  req?: IncomingMessage;
89
+ /** Browser navigation cancellation. Pass to fetch(); absent during server rendering. */
90
+ signal?: AbortSignal;
88
91
  }
89
92
  /**
90
- * Server-side data loader for a page. Export as `export const loader` (or `export async function loader`)
93
+ * Universal data loader for a page. Export as `export const loader` (or `export async function loader`)
91
94
  * from any page file. The returned object is:
92
95
  * - Made available via `usePageData()` inside the page component.
93
96
  * - Primitive values are also forwarded as element attributes so `useProps()` works.
94
- * - Serialized into `window.__CER_DATA__` for client-side hydration.
97
+ * - Serialized into `window.__CER_DATA__` for hydrating pages (omitted for hydrate: 'none').
95
98
  *
96
99
  * Throwing an error (with an optional `.status` property) renders the page's error component
97
- * and sets the HTTP response status code.
100
+ * and sets the HTTP response status code during server rendering; browser
101
+ * navigation uses the error boundary without changing a completed HTTP response.
98
102
  *
99
103
  * @example
100
104
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/types/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;AAElE,qHAAqH;AACrH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,6GAA6G;AAC7G,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,EAAE,CAAA;IAC5D;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,GAAG,CAAC,EAAE,aAAa,CAAA;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC7B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAA;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAA;IACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,gGAAgG;IAChG,GAAG,CAAC,EAAE,eAAe,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzD,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACzB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/types/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;AAElE,qHAAqH;AACrH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,6GAA6G;AAC7G,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,EAAE,CAAA;IAC5D;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,GAAG,CAAC,EAAE,aAAa,CAAA;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC7B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAA;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAA;IACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,gGAAgG;IAChG,GAAG,CAAC,EAAE,eAAe,CAAA;IACrB,wFAAwF;IACxF,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzD,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACzB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jasonshimmy/vite-plugin-cer-app",
3
- "version": "0.28.2",
3
+ "version": "0.29.0",
4
4
  "description": "Nuxt-style meta-framework for @jasonshimmy/custom-elements-runtime",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -51,6 +51,14 @@
51
51
  "./oauth": {
52
52
  "import": "./dist/runtime/oauth/index.js",
53
53
  "types": "./dist/runtime/oauth/index.d.ts"
54
+ },
55
+ "./server": {
56
+ "types": "./dist/runtime/request-dispatcher.d.ts",
57
+ "import": "./dist/runtime/request-dispatcher.js"
58
+ },
59
+ "./quality": {
60
+ "types": "./dist/cli/checks/quality.d.ts",
61
+ "import": "./dist/cli/checks/quality.js"
54
62
  }
55
63
  },
56
64
  "bin": {
@@ -74,6 +82,8 @@
74
82
  "e2e:build:ssg": "npm run e2e:clean && node dist/cli/index.js build --mode ssg --root e2e/kitchen-sink",
75
83
  "e2e:adapt:netlify": "node dist/cli/index.js adapt --platform netlify --root e2e/kitchen-sink",
76
84
  "e2e:integration:netlify": "npm run e2e:build:ssr && npm run e2e:adapt:netlify && vitest run src/__tests__/cli/adapters/netlify-bridge.integration.test.ts",
85
+ "e2e:integration:vercel": "npm run e2e:build:ssr && node dist/cli/index.js adapt --platform vercel --root e2e/kitchen-sink && vitest run src/__tests__/cli/adapters/vercel-launcher.integration.test.ts",
86
+ "e2e:integration:cloudflare": "npm run e2e:build:ssr && node dist/cli/index.js adapt --platform cloudflare --root e2e/kitchen-sink && vitest run src/__tests__/cli/adapters/cloudflare-worker.integration.test.ts",
77
87
  "e2e:serve:spa": "node dist/cli/index.js preview --root e2e/kitchen-sink --port 4174",
78
88
  "e2e:serve:ssr": "node dist/cli/index.js preview --root e2e/kitchen-sink --port 4175 --ssr",
79
89
  "e2e:serve:ssg": "node dist/cli/index.js preview --root e2e/kitchen-sink --port 4176",
@@ -87,40 +97,44 @@
87
97
  "e2e:ssg": "npm run e2e:build:ssg && start-server-and-test e2e:serve:ssg http://localhost:4176 e2e:run:ssg",
88
98
  "e2e:dev": "npm run e2e:clean && start-server-and-test e2e:serve:dev http://localhost:4177 e2e:run:dev",
89
99
  "e2e": "npm run e2e:ssr && npm run e2e:ssg && npm run e2e:spa && npm run e2e:dev",
90
- "cypress:open": "cypress open"
100
+ "cypress:open": "cypress open",
101
+ "e2e:integration:cloudflare:workers": "npm run e2e:build:ssr && node dist/cli/index.js adapt --platform cloudflare --root e2e/kitchen-sink && node e2e/scripts/check-cloudflare-worker.mjs"
91
102
  },
92
103
  "peerDependencies": {
93
- "@jasonshimmy/custom-elements-runtime": ">=3.11.1",
104
+ "@jasonshimmy/custom-elements-runtime": ">=3.12.0",
94
105
  "vite": ">=5.0.0"
95
106
  },
96
107
  "dependencies": {
97
108
  "commander": "^15.0.0",
98
- "fast-glob": "^3.3.3",
99
- "magic-string": "^1.3.1",
100
- "marked": "^18.0.13",
109
+ "magic-string": "^1.4.3",
110
+ "marked": "^18.1.0",
101
111
  "minisearch": "^7.2.0",
102
112
  "pathe": "^2.0.3",
103
113
  "yaml": "^2.9.1"
104
114
  },
105
115
  "devDependencies": {
106
- "@jasonshimmy/custom-elements-runtime": "^3.11.1",
107
- "@types/node": "^24.13.4",
116
+ "@jasonshimmy/custom-elements-runtime": "^3.12.0",
117
+ "@types/node": "^26.6.4",
118
+ "@typescript/native": "npm:typescript@^7.0.2",
108
119
  "@vitest/coverage-v8": "^5.0.0",
109
- "cypress": "^16.0.0",
110
- "eslint": "^10.10.0",
120
+ "cypress": "^16.1.1",
121
+ "eslint": "^10.12.0",
111
122
  "happy-dom": "^20.14.5",
112
123
  "jiti": "^2.7.0",
113
- "start-server-and-test": "^3.0.12",
114
- "typescript": "^6.0.3",
115
- "typescript-eslint": "^8.70.0",
116
- "vite": "^8.3.0",
124
+ "start-server-and-test": "^3.0.13",
125
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
126
+ "typescript-eslint": "^8.71.1",
127
+ "vite": "^8.3.3",
117
128
  "vitest": "^5.0.0"
118
129
  },
119
130
  "publishConfig": {
120
131
  "access": "public"
121
132
  },
122
133
  "allowScripts": {
123
- "cypress@16.0.0": true,
124
- "fsevents@2.3.3": true
134
+ "fsevents@2.3.3": true,
135
+ "cypress@16.1.1": true
136
+ },
137
+ "engines": {
138
+ "node": ">=22.12.0"
125
139
  }
126
140
  }
@@ -1,66 +0,0 @@
1
- /**
2
- * ISR (Incremental Static Regeneration) helpers for the preview server.
3
- *
4
- * Extracted into their own module so they can be unit-tested independently
5
- * from the HTTP server wiring in preview.ts.
6
- */
7
- import type { IncomingMessage, ServerResponse } from 'node:http';
8
- export interface IsrCacheEntry {
9
- html: string;
10
- headers: Record<string, string>;
11
- statusCode: number;
12
- builtAt: number;
13
- revalidate: number;
14
- /** True while a background re-render is in flight (stale-while-revalidate). */
15
- revalidating: boolean;
16
- }
17
- export type IsrCacheStatus = 'HIT' | 'STALE' | 'MISS';
18
- export type SsrHandlerFn = (req: IncomingMessage, res: ServerResponse) => void | Promise<void>;
19
- /**
20
- * Returns `true` when `urlPath` joined onto `rootDir` resolves to a path that
21
- * is strictly inside (or equal to) `rootDir`. A traversal attempt such as
22
- * `../../../../etc/passwd` would resolve outside `rootDir` and return `false`.
23
- */
24
- export declare function isPathBounded(rootDir: string, urlPath: string): boolean;
25
- /**
26
- * Tests whether a route path pattern matches a URL path string.
27
- * Normalises trailing slashes and supports `:param` and `:param*` (catch-all)
28
- * segments using a simple regex conversion — no external dependencies needed.
29
- *
30
- * @example
31
- * matchRoutePattern('/blog/:slug', '/blog/hello') // true
32
- * matchRoutePattern('/:all*', '/any/deep/path') // true
33
- * matchRoutePattern('/about', '/contact') // false
34
- */
35
- export declare function matchRoutePattern(pattern: string, urlPath: string): boolean;
36
- /**
37
- * Returns the per-route `render` strategy ('static' | 'server' | 'spa') for
38
- * the route that best matches `urlPath`, or `null` when no route matches or
39
- * none declares a render mode.
40
- */
41
- export declare function findRenderMode(routes: Array<{
42
- path: string;
43
- meta?: Record<string, unknown>;
44
- }>, urlPath: string): 'static' | 'server' | 'spa' | null;
45
- /**
46
- * Looks up the `meta.ssg.revalidate` TTL (in seconds) for the route that best
47
- * matches `urlPath`. Returns `null` when no route matches or none defines
48
- * `revalidate`.
49
- */
50
- export declare function findRevalidate(routes: Array<{
51
- path: string;
52
- meta?: Record<string, unknown>;
53
- }>, urlPath: string): number | null;
54
- /**
55
- * Renders a URL path through `handler` using a synthetic IncomingMessage and a
56
- * fake ServerResponse that captures the output in memory.
57
- *
58
- * Returns an `IsrCacheEntry` on success, or `null` if the handler throws.
59
- */
60
- export declare function renderForIsr(urlPath: string, handler: SsrHandlerFn, revalidate: number): Promise<IsrCacheEntry | null>;
61
- /**
62
- * Writes a cached ISR entry to the real HTTP response, forwarding all captured
63
- * headers and setting the `X-Cache` diagnostic header.
64
- */
65
- export declare function serveFromIsrCache(entry: IsrCacheEntry, res: ServerResponse, cacheStatus: IsrCacheStatus): void;
66
- //# sourceMappingURL=preview-isr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview-isr.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/preview-isr.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAIhE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAErD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAI9F;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAIvE;AAID;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAW3E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,EAC/D,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CASpC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,EAC/D,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAQf;AAID;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAsC/B;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,cAAc,GAC1B,IAAI,CAON"}
@@ -1,132 +0,0 @@
1
- /**
2
- * ISR (Incremental Static Regeneration) helpers for the preview server.
3
- *
4
- * Extracted into their own module so they can be unit-tested independently
5
- * from the HTTP server wiring in preview.ts.
6
- */
7
- import { resolve, join } from 'pathe';
8
- import { Readable } from 'node:stream';
9
- // ─── Path traversal guard ─────────────────────────────────────────────────────
10
- /**
11
- * Returns `true` when `urlPath` joined onto `rootDir` resolves to a path that
12
- * is strictly inside (or equal to) `rootDir`. A traversal attempt such as
13
- * `../../../../etc/passwd` would resolve outside `rootDir` and return `false`.
14
- */
15
- export function isPathBounded(rootDir, urlPath) {
16
- const safeRoot = resolve(rootDir);
17
- const resolved = resolve(join(rootDir, urlPath));
18
- return resolved === safeRoot || resolved.startsWith(safeRoot + '/');
19
- }
20
- // ─── Route pattern matching ───────────────────────────────────────────────────
21
- /**
22
- * Tests whether a route path pattern matches a URL path string.
23
- * Normalises trailing slashes and supports `:param` and `:param*` (catch-all)
24
- * segments using a simple regex conversion — no external dependencies needed.
25
- *
26
- * @example
27
- * matchRoutePattern('/blog/:slug', '/blog/hello') // true
28
- * matchRoutePattern('/:all*', '/any/deep/path') // true
29
- * matchRoutePattern('/about', '/contact') // false
30
- */
31
- export function matchRoutePattern(pattern, urlPath) {
32
- const norm = (s) => s.replace(/\/+$/, '') || '/';
33
- if (norm(pattern) === norm(urlPath))
34
- return true;
35
- const regexStr = '^' +
36
- norm(pattern)
37
- .replace(/[.+?^${}()|[\]\\]/g, '\\$&') // escape regex special chars in static segments
38
- .replace(/:[^/]+\*/g, '.*')
39
- .replace(/:[^/]+/g, '[^/]+') +
40
- '$';
41
- return new RegExp(regexStr).test(norm(urlPath));
42
- }
43
- /**
44
- * Returns the per-route `render` strategy ('static' | 'server' | 'spa') for
45
- * the route that best matches `urlPath`, or `null` when no route matches or
46
- * none declares a render mode.
47
- */
48
- export function findRenderMode(routes, urlPath) {
49
- for (const route of routes) {
50
- if (matchRoutePattern(route.path, urlPath)) {
51
- const render = route.meta?.render;
52
- if (render === 'static' || render === 'server' || render === 'spa')
53
- return render;
54
- return null;
55
- }
56
- }
57
- return null;
58
- }
59
- /**
60
- * Looks up the `meta.ssg.revalidate` TTL (in seconds) for the route that best
61
- * matches `urlPath`. Returns `null` when no route matches or none defines
62
- * `revalidate`.
63
- */
64
- export function findRevalidate(routes, urlPath) {
65
- for (const route of routes) {
66
- if (matchRoutePattern(route.path, urlPath)) {
67
- const ssg = route.meta?.ssg;
68
- if (typeof ssg?.revalidate === 'number')
69
- return ssg.revalidate;
70
- }
71
- }
72
- return null;
73
- }
74
- // ─── Response capture ─────────────────────────────────────────────────────────
75
- /**
76
- * Renders a URL path through `handler` using a synthetic IncomingMessage and a
77
- * fake ServerResponse that captures the output in memory.
78
- *
79
- * Returns an `IsrCacheEntry` on success, or `null` if the handler throws.
80
- */
81
- export async function renderForIsr(urlPath, handler, revalidate) {
82
- const req = Object.assign(new Readable({ read() { } }), {
83
- url: urlPath,
84
- method: 'GET',
85
- headers: {},
86
- socket: null,
87
- });
88
- return new Promise((resolve) => {
89
- const chunks = [];
90
- const headers = {};
91
- let capturedStatus = 200;
92
- const fakeRes = {
93
- get statusCode() { return capturedStatus; },
94
- set statusCode(v) { capturedStatus = v; },
95
- headersSent: false,
96
- setHeader(name, value) {
97
- headers[name.toLowerCase()] = Array.isArray(value) ? value.join(', ') : String(value);
98
- return this;
99
- },
100
- getHeader(name) { return headers[name.toLowerCase()]; },
101
- write(chunk) {
102
- if (chunk != null)
103
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
104
- return true;
105
- },
106
- end(chunk) {
107
- if (chunk != null)
108
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
109
- const html = Buffer.concat(chunks).toString('utf-8');
110
- resolve({ html, headers, statusCode: capturedStatus, builtAt: Date.now(), revalidate, revalidating: false });
111
- return this;
112
- },
113
- };
114
- // Use Promise.resolve().then() so synchronous throws in the handler are
115
- // also caught by the .catch() handler.
116
- Promise.resolve().then(() => handler(req, fakeRes)).catch(() => resolve(null));
117
- });
118
- }
119
- // ─── Cache serving ────────────────────────────────────────────────────────────
120
- /**
121
- * Writes a cached ISR entry to the real HTTP response, forwarding all captured
122
- * headers and setting the `X-Cache` diagnostic header.
123
- */
124
- export function serveFromIsrCache(entry, res, cacheStatus) {
125
- for (const [name, value] of Object.entries(entry.headers)) {
126
- res.setHeader(name, value);
127
- }
128
- res.setHeader('X-Cache', cacheStatus);
129
- res.statusCode = entry.statusCode;
130
- res.end(entry.html);
131
- }
132
- //# sourceMappingURL=preview-isr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview-isr.js","sourceRoot":"","sources":["../../../src/cli/commands/preview-isr.ts"],"names":[],"mappings":"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"}