@jasonshimmy/vite-plugin-cer-app 0.23.1 → 0.24.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 (397) hide show
  1. package/dist/cli/checks/lighthouse.d.ts +26 -0
  2. package/dist/cli/checks/lighthouse.d.ts.map +1 -0
  3. package/dist/cli/checks/lighthouse.js +121 -0
  4. package/dist/cli/checks/lighthouse.js.map +1 -0
  5. package/dist/cli/checks/links.d.ts +12 -0
  6. package/dist/cli/checks/links.d.ts.map +1 -0
  7. package/dist/cli/checks/links.js +89 -0
  8. package/dist/cli/checks/links.js.map +1 -0
  9. package/dist/cli/checks/performance.d.ts +17 -0
  10. package/dist/cli/checks/performance.d.ts.map +1 -0
  11. package/dist/cli/checks/performance.js +61 -0
  12. package/dist/cli/checks/performance.js.map +1 -0
  13. package/dist/cli/commands/check.d.ts +3 -0
  14. package/dist/cli/commands/check.d.ts.map +1 -0
  15. package/dist/cli/commands/check.js +85 -0
  16. package/dist/cli/commands/check.js.map +1 -0
  17. package/dist/cli/commands/preview.d.ts.map +1 -1
  18. package/dist/cli/commands/preview.js +37 -4
  19. package/dist/cli/commands/preview.js.map +1 -1
  20. package/dist/cli/create/index.d.ts +11 -1
  21. package/dist/cli/create/index.d.ts.map +1 -1
  22. package/dist/cli/create/index.js +135 -65
  23. package/dist/cli/create/index.js.map +1 -1
  24. package/dist/cli/create/templates/spa/package.json.tpl +5 -3
  25. package/dist/cli/create/templates/ssg/cer.config.ts.tpl +2 -0
  26. package/dist/cli/create/templates/ssg/package.json.tpl +5 -3
  27. package/dist/cli/create/templates/ssr/package.json.tpl +5 -3
  28. package/dist/cli/index.js +2 -0
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/index.d.ts +3 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/plugin/build-ssg.d.ts +22 -4
  33. package/dist/plugin/build-ssg.d.ts.map +1 -1
  34. package/dist/plugin/build-ssg.js +273 -13
  35. package/dist/plugin/build-ssg.js.map +1 -1
  36. package/dist/plugin/content/parser.d.ts.map +1 -1
  37. package/dist/plugin/content/parser.js +54 -10
  38. package/dist/plugin/content/parser.js.map +1 -1
  39. package/dist/plugin/dev-server.d.ts +6 -1
  40. package/dist/plugin/dev-server.d.ts.map +1 -1
  41. package/dist/plugin/dev-server.js.map +1 -1
  42. package/dist/plugin/dts-generator.d.ts.map +1 -1
  43. package/dist/plugin/dts-generator.js +50 -8
  44. package/dist/plugin/dts-generator.js.map +1 -1
  45. package/dist/plugin/generated-dir.d.ts +2 -0
  46. package/dist/plugin/generated-dir.d.ts.map +1 -1
  47. package/dist/plugin/generated-dir.js +17 -6
  48. package/dist/plugin/generated-dir.js.map +1 -1
  49. package/dist/plugin/html-post-process.d.ts +35 -0
  50. package/dist/plugin/html-post-process.d.ts.map +1 -0
  51. package/dist/plugin/html-post-process.js +112 -0
  52. package/dist/plugin/html-post-process.js.map +1 -0
  53. package/dist/plugin/index.d.ts +9 -0
  54. package/dist/plugin/index.d.ts.map +1 -1
  55. package/dist/plugin/index.js +89 -14
  56. package/dist/plugin/index.js.map +1 -1
  57. package/dist/plugin/transforms/auto-import.d.ts.map +1 -1
  58. package/dist/plugin/transforms/auto-import.js +7 -0
  59. package/dist/plugin/transforms/auto-import.js.map +1 -1
  60. package/dist/plugin/transforms/prune-runtime-css.d.ts +8 -0
  61. package/dist/plugin/transforms/prune-runtime-css.d.ts.map +1 -0
  62. package/dist/plugin/transforms/prune-runtime-css.js +40 -0
  63. package/dist/plugin/transforms/prune-runtime-css.js.map +1 -0
  64. package/dist/runtime/app-template.d.ts +1 -4
  65. package/dist/runtime/app-template.d.ts.map +1 -1
  66. package/dist/runtime/app-template.js +211 -40
  67. package/dist/runtime/app-template.js.map +1 -1
  68. package/dist/runtime/composables/index.d.ts +4 -0
  69. package/dist/runtime/composables/index.d.ts.map +1 -1
  70. package/dist/runtime/composables/index.js +2 -0
  71. package/dist/runtime/composables/index.js.map +1 -1
  72. package/dist/runtime/composables/use-active-headings.d.ts +24 -0
  73. package/dist/runtime/composables/use-active-headings.d.ts.map +1 -0
  74. package/dist/runtime/composables/use-active-headings.js +112 -0
  75. package/dist/runtime/composables/use-active-headings.js.map +1 -0
  76. package/dist/runtime/composables/use-content-page.d.ts +45 -0
  77. package/dist/runtime/composables/use-content-page.d.ts.map +1 -0
  78. package/dist/runtime/composables/use-content-page.js +179 -0
  79. package/dist/runtime/composables/use-content-page.js.map +1 -0
  80. package/dist/runtime/composables/use-content-search.d.ts.map +1 -1
  81. package/dist/runtime/composables/use-content-search.js +1 -5
  82. package/dist/runtime/composables/use-content-search.js.map +1 -1
  83. package/dist/runtime/composables/use-fetch.d.ts +2 -1
  84. package/dist/runtime/composables/use-fetch.d.ts.map +1 -1
  85. package/dist/runtime/composables/use-fetch.js +112 -43
  86. package/dist/runtime/composables/use-fetch.js.map +1 -1
  87. package/dist/runtime/composables/use-head.d.ts.map +1 -1
  88. package/dist/runtime/composables/use-head.js +30 -6
  89. package/dist/runtime/composables/use-head.js.map +1 -1
  90. package/dist/runtime/composables/use-route.d.ts.map +1 -1
  91. package/dist/runtime/composables/use-route.js +39 -11
  92. package/dist/runtime/composables/use-route.js.map +1 -1
  93. package/dist/runtime/content/client.js +2 -2
  94. package/dist/runtime/content/client.js.map +1 -1
  95. package/dist/runtime/entry-server-template.d.ts +16 -1
  96. package/dist/runtime/entry-server-template.d.ts.map +1 -1
  97. package/dist/runtime/entry-server-template.js +120 -13
  98. package/dist/runtime/entry-server-template.js.map +1 -1
  99. package/dist/types/config.d.ts +53 -4
  100. package/dist/types/config.d.ts.map +1 -1
  101. package/dist/types/config.js.map +1 -1
  102. package/dist/types/middleware.d.ts +2 -2
  103. package/dist/types/middleware.d.ts.map +1 -1
  104. package/package.json +22 -19
  105. package/.github/copilot-instructions.md +0 -169
  106. package/.github/workflows/publish.yml +0 -257
  107. package/.nvmrc +0 -1
  108. package/CHANGELOG.md +0 -232
  109. package/CLAUDE.md +0 -113
  110. package/commits.txt +0 -1
  111. package/cypress.config.ts +0 -16
  112. package/docs/authentication.md +0 -285
  113. package/docs/cli.md +0 -324
  114. package/docs/components.md +0 -237
  115. package/docs/composables.md +0 -907
  116. package/docs/configuration.md +0 -667
  117. package/docs/content.md +0 -570
  118. package/docs/data-loading.md +0 -336
  119. package/docs/getting-started.md +0 -237
  120. package/docs/head-management.md +0 -212
  121. package/docs/i18n.md +0 -159
  122. package/docs/layouts.md +0 -224
  123. package/docs/middleware.md +0 -234
  124. package/docs/plugins.md +0 -170
  125. package/docs/rendering-modes.md +0 -377
  126. package/docs/routing.md +0 -485
  127. package/docs/server-api.md +0 -253
  128. package/docs/testing.md +0 -455
  129. package/docs/use-fetch.md +0 -183
  130. package/e2e/cypress/e2e/api.cy.ts +0 -123
  131. package/e2e/cypress/e2e/async-component.cy.ts +0 -27
  132. package/e2e/cypress/e2e/component-splitting.cy.ts +0 -50
  133. package/e2e/cypress/e2e/content.cy.ts +0 -425
  134. package/e2e/cypress/e2e/cookie.cy.ts +0 -85
  135. package/e2e/cypress/e2e/data.cy.ts +0 -158
  136. package/e2e/cypress/e2e/error-boundary.cy.ts +0 -88
  137. package/e2e/cypress/e2e/fouc.cy.ts +0 -254
  138. package/e2e/cypress/e2e/group-meta.cy.ts +0 -36
  139. package/e2e/cypress/e2e/head.cy.ts +0 -89
  140. package/e2e/cypress/e2e/i18n.cy.ts +0 -79
  141. package/e2e/cypress/e2e/interactive.cy.ts +0 -137
  142. package/e2e/cypress/e2e/isr-nested-runtime.cy.ts +0 -102
  143. package/e2e/cypress/e2e/jit-css-custom-colors.cy.ts +0 -43
  144. package/e2e/cypress/e2e/middleware-chain.cy.ts +0 -89
  145. package/e2e/cypress/e2e/middleware-status.cy.ts +0 -30
  146. package/e2e/cypress/e2e/middleware.cy.ts +0 -45
  147. package/e2e/cypress/e2e/navigate.cy.ts +0 -39
  148. package/e2e/cypress/e2e/observability.cy.ts +0 -77
  149. package/e2e/cypress/e2e/per-route-error.cy.ts +0 -42
  150. package/e2e/cypress/e2e/per-route-render.cy.ts +0 -70
  151. package/e2e/cypress/e2e/preview-hardening.cy.ts +0 -88
  152. package/e2e/cypress/e2e/routes.cy.ts +0 -128
  153. package/e2e/cypress/e2e/seo-meta.cy.ts +0 -108
  154. package/e2e/cypress/e2e/server-middleware.cy.ts +0 -46
  155. package/e2e/cypress/e2e/session-rotation.cy.ts +0 -25
  156. package/e2e/cypress/e2e/session.cy.ts +0 -73
  157. package/e2e/cypress/e2e/ssr-render-error.cy.ts +0 -68
  158. package/e2e/cypress/e2e/synthetic-404.cy.ts +0 -45
  159. package/e2e/cypress/e2e/use-page-data.cy.ts +0 -122
  160. package/e2e/cypress/e2e/use-state.cy.ts +0 -138
  161. package/e2e/cypress/support/commands.ts +0 -120
  162. package/e2e/cypress/support/e2e.ts +0 -10
  163. package/e2e/cypress/tsconfig.json +0 -14
  164. package/e2e/kitchen-sink/app/components/ks-badge.ts +0 -8
  165. package/e2e/kitchen-sink/app/composables/useKsCounter.ts +0 -9
  166. package/e2e/kitchen-sink/app/error.ts +0 -18
  167. package/e2e/kitchen-sink/app/layouts/admin.ts +0 -13
  168. package/e2e/kitchen-sink/app/layouts/default.ts +0 -25
  169. package/e2e/kitchen-sink/app/layouts/group.ts +0 -9
  170. package/e2e/kitchen-sink/app/layouts/minimal.ts +0 -7
  171. package/e2e/kitchen-sink/app/loading.ts +0 -9
  172. package/e2e/kitchen-sink/app/middleware/auth.ts +0 -9
  173. package/e2e/kitchen-sink/app/middleware/custom-log.ts +0 -4
  174. package/e2e/kitchen-sink/app/middleware/group-auth.ts +0 -7
  175. package/e2e/kitchen-sink/app/middleware/logger.ts +0 -14
  176. package/e2e/kitchen-sink/app/pages/(auth)/login.ts +0 -13
  177. package/e2e/kitchen-sink/app/pages/(auth)/protected.ts +0 -16
  178. package/e2e/kitchen-sink/app/pages/404.ts +0 -9
  179. package/e2e/kitchen-sink/app/pages/about.ts +0 -17
  180. package/e2e/kitchen-sink/app/pages/admin/_layout.ts +0 -1
  181. package/e2e/kitchen-sink/app/pages/admin/dashboard.ts +0 -11
  182. package/e2e/kitchen-sink/app/pages/async-component-error-test.ts +0 -18
  183. package/e2e/kitchen-sink/app/pages/async-component-test.ts +0 -18
  184. package/e2e/kitchen-sink/app/pages/blog/[slug].ts +0 -59
  185. package/e2e/kitchen-sink/app/pages/blog/index.ts +0 -51
  186. package/e2e/kitchen-sink/app/pages/content-blog.ts +0 -37
  187. package/e2e/kitchen-sink/app/pages/content-doc.ts +0 -42
  188. package/e2e/kitchen-sink/app/pages/content-fallback.ts +0 -36
  189. package/e2e/kitchen-sink/app/pages/content-guides.ts +0 -35
  190. package/e2e/kitchen-sink/app/pages/content-index.ts +0 -39
  191. package/e2e/kitchen-sink/app/pages/content-search.ts +0 -36
  192. package/e2e/kitchen-sink/app/pages/cookie-test.ts +0 -22
  193. package/e2e/kitchen-sink/app/pages/counter.ts +0 -17
  194. package/e2e/kitchen-sink/app/pages/group-auth-blocked.ts +0 -9
  195. package/e2e/kitchen-sink/app/pages/group-meta-test/_layout.ts +0 -6
  196. package/e2e/kitchen-sink/app/pages/group-meta-test/custom-mw.ts +0 -14
  197. package/e2e/kitchen-sink/app/pages/group-meta-test/page.ts +0 -9
  198. package/e2e/kitchen-sink/app/pages/group-meta-test/protected.ts +0 -8
  199. package/e2e/kitchen-sink/app/pages/head.ts +0 -20
  200. package/e2e/kitchen-sink/app/pages/i18n-test.ts +0 -14
  201. package/e2e/kitchen-sink/app/pages/index.ts +0 -27
  202. package/e2e/kitchen-sink/app/pages/isr-test.ts +0 -17
  203. package/e2e/kitchen-sink/app/pages/items/[id].ts +0 -20
  204. package/e2e/kitchen-sink/app/pages/jit-css-custom-colors-test.ts +0 -14
  205. package/e2e/kitchen-sink/app/pages/loader-error-test.ts +0 -13
  206. package/e2e/kitchen-sink/app/pages/loader-props-test.ts +0 -19
  207. package/e2e/kitchen-sink/app/pages/loader-response-error-test.ts +0 -13
  208. package/e2e/kitchen-sink/app/pages/middleware-chain-test.ts +0 -12
  209. package/e2e/kitchen-sink/app/pages/middleware-status-test.ts +0 -9
  210. package/e2e/kitchen-sink/app/pages/navigate-test.ts +0 -16
  211. package/e2e/kitchen-sink/app/pages/observability-test.ts +0 -25
  212. package/e2e/kitchen-sink/app/pages/per-route-error-test.error.ts +0 -13
  213. package/e2e/kitchen-sink/app/pages/per-route-error-test.ts +0 -15
  214. package/e2e/kitchen-sink/app/pages/plugin-dsd-test.ts +0 -10
  215. package/e2e/kitchen-sink/app/pages/render-error-test.ts +0 -12
  216. package/e2e/kitchen-sink/app/pages/render-server-test.ts +0 -12
  217. package/e2e/kitchen-sink/app/pages/render-spa-test.ts +0 -12
  218. package/e2e/kitchen-sink/app/pages/route-info.ts +0 -14
  219. package/e2e/kitchen-sink/app/pages/seo-test.ts +0 -23
  220. package/e2e/kitchen-sink/app/pages/session-rotation-test.ts +0 -25
  221. package/e2e/kitchen-sink/app/pages/use-state-test.ts +0 -37
  222. package/e2e/kitchen-sink/app/plugins/01.setup.ts +0 -7
  223. package/e2e/kitchen-sink/app/plugins/02.ks-plugin-components.ts +0 -27
  224. package/e2e/kitchen-sink/cer-auto-imports.d.ts +0 -51
  225. package/e2e/kitchen-sink/cer-env.d.ts +0 -35
  226. package/e2e/kitchen-sink/cer-tsconfig.json +0 -30
  227. package/e2e/kitchen-sink/cer.config.ts +0 -43
  228. package/e2e/kitchen-sink/content/01.guides/01.index.md +0 -8
  229. package/e2e/kitchen-sink/content/01.guides/02.intro.md +0 -8
  230. package/e2e/kitchen-sink/content/01.guides/10.advanced.md +0 -8
  231. package/e2e/kitchen-sink/content/blog/2026-04-01-hello.md +0 -26
  232. package/e2e/kitchen-sink/content/blog/2026-04-02-draft.md +0 -10
  233. package/e2e/kitchen-sink/content/blog/index.md +0 -8
  234. package/e2e/kitchen-sink/content/blog/no-frontmatter.md +0 -7
  235. package/e2e/kitchen-sink/content/docs/getting-started.md +0 -48
  236. package/e2e/kitchen-sink/content/index.md +0 -16
  237. package/e2e/kitchen-sink/server/api/echo.ts +0 -12
  238. package/e2e/kitchen-sink/server/api/health.ts +0 -3
  239. package/e2e/kitchen-sink/server/api/posts/[slug].ts +0 -11
  240. package/e2e/kitchen-sink/server/api/posts/index.ts +0 -5
  241. package/e2e/kitchen-sink/server/api/session.ts +0 -23
  242. package/e2e/kitchen-sink/server/data/posts.ts +0 -21
  243. package/e2e/kitchen-sink/server/middleware/01-headers.ts +0 -6
  244. package/e2e/kitchen-sink/server/middleware/02-status-test.ts +0 -10
  245. package/e2e/kitchen-sink/tsconfig.json +0 -3
  246. package/e2e/scripts/clean.mjs +0 -14
  247. package/eslint.config.ts +0 -22
  248. package/src/__tests__/cli/adapters/cloudflare-worker.integration.test.ts +0 -132
  249. package/src/__tests__/cli/adapters/cloudflare.test.ts +0 -332
  250. package/src/__tests__/cli/adapters/netlify-bridge.integration.test.ts +0 -139
  251. package/src/__tests__/cli/adapters/netlify.test.ts +0 -286
  252. package/src/__tests__/cli/adapters/vercel-launcher.integration.test.ts +0 -129
  253. package/src/__tests__/cli/adapters/vercel.test.ts +0 -263
  254. package/src/__tests__/cli/preview-hardening.test.ts +0 -265
  255. package/src/__tests__/cli/preview-isr.test.ts +0 -320
  256. package/src/__tests__/index.test.ts +0 -21
  257. package/src/__tests__/plugin/app-template.test.ts +0 -112
  258. package/src/__tests__/plugin/build-ssg-render.test.ts +0 -155
  259. package/src/__tests__/plugin/build-ssg.test.ts +0 -598
  260. package/src/__tests__/plugin/build-ssr.test.ts +0 -192
  261. package/src/__tests__/plugin/cer-app-plugin.test.ts +0 -552
  262. package/src/__tests__/plugin/content/emitter.test.ts +0 -117
  263. package/src/__tests__/plugin/content/loader.test.ts +0 -154
  264. package/src/__tests__/plugin/content/parser.test.ts +0 -381
  265. package/src/__tests__/plugin/content/path-utils.test.ts +0 -69
  266. package/src/__tests__/plugin/content/search.test.ts +0 -119
  267. package/src/__tests__/plugin/dev-server.test.ts +0 -813
  268. package/src/__tests__/plugin/dts-generator.test.ts +0 -394
  269. package/src/__tests__/plugin/entry-server-template.test.ts +0 -385
  270. package/src/__tests__/plugin/generated-dir.test.ts +0 -144
  271. package/src/__tests__/plugin/path-utils.test.ts +0 -411
  272. package/src/__tests__/plugin/resolve-config.test.ts +0 -200
  273. package/src/__tests__/plugin/scanner.test.ts +0 -186
  274. package/src/__tests__/plugin/transforms/auto-import.test.ts +0 -510
  275. package/src/__tests__/plugin/transforms/head-inject.test.ts +0 -178
  276. package/src/__tests__/plugin/virtual/composables.test.ts +0 -57
  277. package/src/__tests__/plugin/virtual/content-components.test.ts +0 -66
  278. package/src/__tests__/plugin/virtual/error.test.ts +0 -71
  279. package/src/__tests__/plugin/virtual/layouts.test.ts +0 -70
  280. package/src/__tests__/plugin/virtual/loading.test.ts +0 -72
  281. package/src/__tests__/plugin/virtual/middleware.test.ts +0 -83
  282. package/src/__tests__/plugin/virtual/plugins.test.ts +0 -129
  283. package/src/__tests__/plugin/virtual/routes.test.ts +0 -884
  284. package/src/__tests__/plugin/virtual/server-api.test.ts +0 -164
  285. package/src/__tests__/plugin/virtual/server-middleware.test.ts +0 -102
  286. package/src/__tests__/runtime/app-template.test.ts +0 -198
  287. package/src/__tests__/runtime/define-middleware.test.ts +0 -64
  288. package/src/__tests__/runtime/define-server-middleware.test.ts +0 -54
  289. package/src/__tests__/runtime/entry-client-template.test.ts +0 -61
  290. package/src/__tests__/runtime/isr-handler.test.ts +0 -338
  291. package/src/__tests__/runtime/oauth/handler.test.ts +0 -358
  292. package/src/__tests__/runtime/oauth/providers.test.ts +0 -47
  293. package/src/__tests__/runtime/oauth-index.test.ts +0 -43
  294. package/src/__tests__/runtime/use-auth.test.ts +0 -169
  295. package/src/__tests__/runtime/use-content-search-composable.test.ts +0 -405
  296. package/src/__tests__/runtime/use-content-search.test.ts +0 -163
  297. package/src/__tests__/runtime/use-content.test.ts +0 -226
  298. package/src/__tests__/runtime/use-cookie.test.ts +0 -277
  299. package/src/__tests__/runtime/use-fetch-component.test.ts +0 -214
  300. package/src/__tests__/runtime/use-fetch.test.ts +0 -377
  301. package/src/__tests__/runtime/use-head.test.ts +0 -266
  302. package/src/__tests__/runtime/use-inject-client.test.ts +0 -67
  303. package/src/__tests__/runtime/use-inject.test.ts +0 -66
  304. package/src/__tests__/runtime/use-locale.test.ts +0 -152
  305. package/src/__tests__/runtime/use-navigate.test.ts +0 -121
  306. package/src/__tests__/runtime/use-page-data.test.ts +0 -298
  307. package/src/__tests__/runtime/use-route.test.ts +0 -156
  308. package/src/__tests__/runtime/use-runtime-config.test.ts +0 -182
  309. package/src/__tests__/runtime/use-seo-meta.test.ts +0 -109
  310. package/src/__tests__/runtime/use-session.test.ts +0 -320
  311. package/src/__tests__/runtime/use-state.test.ts +0 -340
  312. package/src/__tests__/types/config.test.ts +0 -18
  313. package/src/cli/adapters/cloudflare.ts +0 -335
  314. package/src/cli/adapters/netlify.ts +0 -326
  315. package/src/cli/adapters/vercel.ts +0 -311
  316. package/src/cli/commands/adapt.ts +0 -84
  317. package/src/cli/commands/build.ts +0 -165
  318. package/src/cli/commands/dev.ts +0 -125
  319. package/src/cli/commands/generate.ts +0 -91
  320. package/src/cli/commands/preview-isr.ts +0 -172
  321. package/src/cli/commands/preview.ts +0 -489
  322. package/src/cli/create/index.ts +0 -275
  323. package/src/cli/create/templates/shared/.gitignore.tpl +0 -25
  324. package/src/cli/create/templates/shared/app/layouts/default.ts.tpl +0 -15
  325. package/src/cli/create/templates/shared/app/pages/index.ts.tpl +0 -8
  326. package/src/cli/create/templates/shared/index.html.tpl +0 -12
  327. package/src/cli/create/templates/shared/tsconfig.json.tpl +0 -6
  328. package/src/cli/create/templates/spa/cer.config.ts.tpl +0 -6
  329. package/src/cli/create/templates/spa/package.json.tpl +0 -18
  330. package/src/cli/create/templates/ssg/cer.config.ts.tpl +0 -10
  331. package/src/cli/create/templates/ssg/package.json.tpl +0 -19
  332. package/src/cli/create/templates/ssr/cer.config.ts.tpl +0 -6
  333. package/src/cli/create/templates/ssr/package.json.tpl +0 -18
  334. package/src/cli/index.ts +0 -22
  335. package/src/index.ts +0 -20
  336. package/src/plugin/build-ssg.ts +0 -336
  337. package/src/plugin/build-ssr.ts +0 -134
  338. package/src/plugin/content/emitter.ts +0 -50
  339. package/src/plugin/content/index.ts +0 -233
  340. package/src/plugin/content/parser.ts +0 -259
  341. package/src/plugin/content/path-utils.ts +0 -55
  342. package/src/plugin/content/scanner.ts +0 -26
  343. package/src/plugin/content/search.ts +0 -28
  344. package/src/plugin/dev-server.ts +0 -377
  345. package/src/plugin/dts-generator.ts +0 -273
  346. package/src/plugin/generated-dir.ts +0 -121
  347. package/src/plugin/index.ts +0 -553
  348. package/src/plugin/path-utils.ts +0 -186
  349. package/src/plugin/scanner.ts +0 -65
  350. package/src/plugin/transforms/auto-import.ts +0 -206
  351. package/src/plugin/transforms/head-inject.ts +0 -161
  352. package/src/plugin/virtual/composables.ts +0 -28
  353. package/src/plugin/virtual/content-components.ts +0 -83
  354. package/src/plugin/virtual/error.ts +0 -34
  355. package/src/plugin/virtual/layouts.ts +0 -41
  356. package/src/plugin/virtual/loading.ts +0 -32
  357. package/src/plugin/virtual/middleware.ts +0 -45
  358. package/src/plugin/virtual/plugins.ts +0 -46
  359. package/src/plugin/virtual/routes.ts +0 -514
  360. package/src/plugin/virtual/server-api.ts +0 -85
  361. package/src/plugin/virtual/server-middleware.ts +0 -44
  362. package/src/runtime/app-template.ts +0 -380
  363. package/src/runtime/composables/define-middleware.ts +0 -17
  364. package/src/runtime/composables/define-server-middleware.ts +0 -18
  365. package/src/runtime/composables/index.ts +0 -27
  366. package/src/runtime/composables/use-auth.ts +0 -125
  367. package/src/runtime/composables/use-content-search.ts +0 -205
  368. package/src/runtime/composables/use-content.ts +0 -146
  369. package/src/runtime/composables/use-cookie.ts +0 -135
  370. package/src/runtime/composables/use-fetch.ts +0 -438
  371. package/src/runtime/composables/use-head.ts +0 -212
  372. package/src/runtime/composables/use-inject.ts +0 -49
  373. package/src/runtime/composables/use-locale.ts +0 -109
  374. package/src/runtime/composables/use-navigate.ts +0 -58
  375. package/src/runtime/composables/use-page-data.ts +0 -93
  376. package/src/runtime/composables/use-route.ts +0 -71
  377. package/src/runtime/composables/use-runtime-config.ts +0 -123
  378. package/src/runtime/composables/use-seo-meta.ts +0 -80
  379. package/src/runtime/composables/use-session.ts +0 -186
  380. package/src/runtime/composables/use-state.ts +0 -92
  381. package/src/runtime/content/client.ts +0 -168
  382. package/src/runtime/entry-client-template.ts +0 -39
  383. package/src/runtime/entry-server-template.ts +0 -493
  384. package/src/runtime/isr-handler.ts +0 -184
  385. package/src/runtime/oauth/handler.ts +0 -407
  386. package/src/runtime/oauth/index.ts +0 -49
  387. package/src/runtime/oauth/providers.ts +0 -38
  388. package/src/types/api.ts +0 -40
  389. package/src/types/config.ts +0 -371
  390. package/src/types/content.ts +0 -66
  391. package/src/types/index.ts +0 -7
  392. package/src/types/middleware.ts +0 -63
  393. package/src/types/page.ts +0 -117
  394. package/src/types/plugin.ts +0 -34
  395. package/tsconfig.build.json +0 -10
  396. package/tsconfig.json +0 -19
  397. package/vitest.config.ts +0 -33
@@ -1,257 +0,0 @@
1
- name: Publish to npm
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- - develop
8
-
9
- permissions:
10
- contents: write
11
-
12
- concurrency:
13
- group: release-${{ github.ref_name }}
14
- cancel-in-progress: false
15
-
16
- env:
17
- FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
18
-
19
- jobs:
20
- validate:
21
- name: Lint, test, build & e2e
22
- runs-on: ubuntu-latest
23
- timeout-minutes: 20
24
-
25
- steps:
26
- - name: Checkout code
27
- uses: actions/checkout@v4
28
- with:
29
- fetch-depth: 0
30
-
31
- - name: Use Node.js version from .nvmrc
32
- uses: actions/setup-node@v4
33
- with:
34
- node-version-file: .nvmrc
35
- registry-url: 'https://registry.npmjs.org/'
36
-
37
- - name: Cache node modules
38
- uses: actions/cache@v4
39
- with:
40
- path: node_modules
41
- key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
42
- restore-keys: |
43
- ${{ runner.os }}-node-
44
-
45
- - name: Install dependencies
46
- run: npm ci
47
-
48
- - name: Install Cypress system dependencies
49
- run: |
50
- sudo apt-get update -y
51
- sudo apt-get install -y \
52
- libgtk2.0-0t64 libgtk-3-0t64 libgbm-dev libnotify-dev \
53
- libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb
54
-
55
- - name: Lint
56
- run: npm run lint
57
-
58
- - name: Unit tests
59
- run: npm test
60
-
61
- - name: Build library
62
- run: npm run build
63
-
64
- - name: E2E tests (SSR)
65
- run: xvfb-run --auto-servernum npm run e2e:ssr
66
-
67
- - name: E2E tests (SSG)
68
- run: xvfb-run --auto-servernum npm run e2e:ssg
69
-
70
- - name: E2E tests (SPA)
71
- run: xvfb-run --auto-servernum npm run e2e:spa
72
-
73
- release:
74
- name: Version & publish
75
- needs: validate
76
- runs-on: ubuntu-latest
77
- timeout-minutes: 15
78
-
79
- steps:
80
- - name: Checkout code
81
- uses: actions/checkout@v4
82
- with:
83
- fetch-depth: 0
84
-
85
- # Resolve the latest tag once so all subsequent steps share the same baseline.
86
- - name: Resolve baseline tag
87
- id: base
88
- run: |
89
- LATEST_TAG=$(git tag --sort=-version:refname | head -n1)
90
- if [ -z "$LATEST_TAG" ]; then
91
- COMMIT_RANGE="HEAD"
92
- else
93
- COMMIT_RANGE="${LATEST_TAG}..HEAD"
94
- fi
95
- echo "latest_tag=$LATEST_TAG" >> $GITHUB_OUTPUT
96
- echo "commit_range=$COMMIT_RANGE" >> $GITHUB_OUTPUT
97
- echo "Baseline tag: ${LATEST_TAG:-'(none - first release)'}"
98
- echo "Commit range: $COMMIT_RANGE"
99
-
100
- # Skip release if every commit since the last tag is chore: or docs:
101
- # Breaking variants (chore!: / docs!:) are intentionally not excluded.
102
- - name: Check if release is needed
103
- id: should_release
104
- run: |
105
- COMMIT_RANGE="${{ steps.base.outputs.commit_range }}"
106
- RELEASE_COMMITS=$(git log "$COMMIT_RANGE" --pretty=format:"%s" --no-merges \
107
- | grep -vE "^(chore|docs)(\([^)]+\))?:" || true)
108
- if [ -z "$RELEASE_COMMITS" ]; then
109
- echo "value=false" >> $GITHUB_OUTPUT
110
- echo "## Release skipped" >> $GITHUB_STEP_SUMMARY
111
- echo "All commits since the last release use \`chore:\` or \`docs:\` prefixes — nothing to publish." >> $GITHUB_STEP_SUMMARY
112
- else
113
- echo "value=true" >> $GITHUB_OUTPUT
114
- fi
115
-
116
- - name: Use Node.js version from .nvmrc
117
- if: steps.should_release.outputs.value == 'true'
118
- uses: actions/setup-node@v4
119
- with:
120
- node-version-file: .nvmrc
121
- registry-url: 'https://registry.npmjs.org/'
122
-
123
- - name: Cache node modules
124
- if: steps.should_release.outputs.value == 'true'
125
- uses: actions/cache@v4
126
- with:
127
- path: node_modules
128
- key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
129
- restore-keys: |
130
- ${{ runner.os }}-node-
131
-
132
- - name: Install dependencies
133
- if: steps.should_release.outputs.value == 'true'
134
- run: npm ci
135
-
136
- - name: Build library
137
- if: steps.should_release.outputs.value == 'true'
138
- run: npm run build
139
-
140
- - name: Configure Git
141
- if: steps.should_release.outputs.value == 'true'
142
- run: |
143
- git config user.name "GitHub Actions"
144
- git config user.email "actions@github.com"
145
- git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
146
-
147
- # Scan ALL commits since the last tag (not just HEAD) and handle the full
148
- # conventional-commits spec: type(scope)!: and BREAKING CHANGE: in body.
149
- - name: Determine version bump
150
- id: bump
151
- if: steps.should_release.outputs.value == 'true'
152
- run: |
153
- COMMIT_RANGE="${{ steps.base.outputs.commit_range }}"
154
-
155
- SUBJECTS=$(git log "$COMMIT_RANGE" --pretty=format:"%s" --no-merges)
156
- FULL_LOG=$(git log "$COMMIT_RANGE" --pretty=format:"%s%n%b" --no-merges)
157
-
158
- BUMP="patch"
159
-
160
- # Major: explicit BREAKING CHANGE footer OR ! after type/scope (e.g. feat!: / feat(scope)!:)
161
- if echo "$FULL_LOG" | grep -qE "^BREAKING CHANGE:" || \
162
- echo "$SUBJECTS" | grep -qE "^[a-z]+(\([^)]+\))?!:"; then
163
- BUMP="major"
164
- # Minor: feat: or feat(scope):
165
- elif echo "$SUBJECTS" | grep -qE "^feat(\([^)]+\))?:"; then
166
- BUMP="minor"
167
- fi
168
-
169
- echo "Bump type: $BUMP"
170
- echo "bump=$BUMP" >> $GITHUB_OUTPUT
171
-
172
- - name: Generate release notes
173
- if: steps.should_release.outputs.value == 'true'
174
- run: |
175
- COMMIT_RANGE="${{ steps.base.outputs.commit_range }}"
176
-
177
- COMMITS=$(git log "$COMMIT_RANGE" --pretty=format:"- %s (%h)" --no-merges \
178
- | grep -vE "^- (release:|chore: update changelog)" || true)
179
-
180
- if [ -z "$COMMITS" ]; then
181
- COMMITS="- No changes since last release"
182
- fi
183
-
184
- echo "$COMMITS" > commits.txt
185
-
186
- - name: Bump version
187
- id: version
188
- if: steps.should_release.outputs.value == 'true'
189
- run: |
190
- BUMP="${{ steps.bump.outputs.bump }}"
191
- if [[ "${{ github.ref_name }}" == "develop" ]]; then
192
- NEW_VERSION=$(npm version prerelease --preid=beta -m "release: %s [skip ci]")
193
- else
194
- NEW_VERSION=$(npm version "$BUMP" -m "release: %s [skip ci]")
195
- fi
196
- echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
197
- git push --follow-tags
198
-
199
- - name: Create release and update changelog
200
- if: steps.should_release.outputs.value == 'true'
201
- run: |
202
- VERSION="${{ steps.version.outputs.version }}"
203
- PREV_TAG="${{ steps.base.outputs.latest_tag }}"
204
- COMMITS=$(cat commits.txt)
205
- DATE=$(date +"%Y-%m-%d")
206
-
207
- if [ -n "$PREV_TAG" ]; then
208
- CHANGELOG_LINK="**Full Changelog**: https://github.com/${{ github.repository }}/compare/${PREV_TAG}...${VERSION}"
209
- else
210
- CHANGELOG_LINK="**Full Changelog**: https://github.com/${{ github.repository }}/commits/${VERSION}"
211
- fi
212
-
213
- RELEASE_NOTES=$(printf '## Release %s\n\n### Changes\n%s\n\n%s' \
214
- "$VERSION" "$COMMITS" "$CHANGELOG_LINK")
215
-
216
- # Update or create CHANGELOG.md
217
- if [ ! -f CHANGELOG.md ]; then
218
- printf "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n" > CHANGELOG.md
219
- fi
220
-
221
- {
222
- head -3 CHANGELOG.md
223
- printf "## [%s] - %s\n\n%s\n\n" "$VERSION" "$DATE" "$COMMITS"
224
- tail -n +4 CHANGELOG.md
225
- } > CHANGELOG.tmp && mv CHANGELOG.tmp CHANGELOG.md
226
-
227
- git add CHANGELOG.md
228
- git commit -m "chore: update changelog for ${VERSION} [skip ci]" || true
229
- git push
230
-
231
- # Use python3 for safe multi-line JSON encoding (avoids sed escaping pitfalls)
232
- ESCAPED_BODY=$(printf '%s' "$RELEASE_NOTES" | python3 -c "import sys,json; print(json.dumps(sys.stdin.read()))")
233
-
234
- if [[ "${{ github.ref_name }}" == "develop" ]]; then
235
- PRERELEASE="true"
236
- RELEASE_NAME="${VERSION} (Beta)"
237
- else
238
- PRERELEASE="false"
239
- RELEASE_NAME="${VERSION}"
240
- fi
241
-
242
- curl -fsSL -X POST \
243
- -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
244
- -H "Accept: application/vnd.github.v3+json" \
245
- https://api.github.com/repos/${{ github.repository }}/releases \
246
- -d "{\"tag_name\":\"${VERSION}\",\"name\":\"${RELEASE_NAME}\",\"body\":${ESCAPED_BODY},\"prerelease\":${PRERELEASE}}"
247
-
248
- - name: Publish to npm
249
- if: steps.should_release.outputs.value == 'true'
250
- run: |
251
- if [[ "${{ github.ref_name }}" == "develop" ]]; then
252
- npm publish --tag beta
253
- else
254
- npm publish
255
- fi
256
- env:
257
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/.nvmrc DELETED
@@ -1 +0,0 @@
1
- v22.18.0
package/CHANGELOG.md DELETED
@@ -1,232 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
- ## [v0.23.1] - 2026-04-17
5
-
6
- - fix: fix useContentSearch loading state, debounce, and automatic retry on fetch failure (4d0207a)
7
-
8
- ## [v0.23.0] - 2026-04-17
9
-
10
- - feat: enhance useContentSearch with loading state and update related tests (d1cee0e)
11
-
12
- ## [v0.22.0] - 2026-04-16
13
-
14
- - feat: add customColors support for jitCss configuration and implement related tests (b8061ef)
15
-
16
- ## [v0.21.4] - 2026-04-16
17
-
18
- - fix: update path resolution for auto-imported components to be relative from .cer/ (633a241)
19
-
20
- ## [v0.21.3] - 2026-04-13
21
-
22
- - fix: enhance content layer with automatic component registration from markdown (62bcc04)
23
-
24
- ## [v0.21.2] - 2026-04-13
25
-
26
- - fix: enhance dev mode logging in runtime and update dependencies (57a5a7c)
27
-
28
- ## [v0.21.1] - 2026-04-13
29
-
30
- - fix: broken test (19540bd)
31
- - fix: ensure catch all only throws errors if one is actually encountered, enhance content-driven routing and catch-all page handling in documentation (a1ea900)
32
-
33
- ## [v0.21.0] - 2026-04-12
34
-
35
- - feat: add support for numeric ordering prefixes in content paths and update related tests (ffb0bc8)
36
-
37
- ## [v0.20.5] - 2026-04-12
38
-
39
- - fix: enhance hydration handling and data caching in usePageData and routing middleware (305ae7f)
40
-
41
- ## [v0.20.4] - 2026-04-11
42
-
43
- - fix: enhance SSR and SSG support with improved data handling and dev mode configurations (d1783af)
44
-
45
- ## [v0.20.3] - 2026-04-11
46
-
47
- - fix: update content layer documentation and enhance plugin generation logic for SSR compatibility (a5bca33)
48
-
49
- ## [v0.20.2] - 2026-04-11
50
-
51
- - fix: correct loader error handling and improve data fetching in SSR/SSG modes (d225a99)
52
- - docs: add Content Layer section to README for Markdown/JSON support (376a990)
53
-
54
- ## [v0.20.1] - 2026-04-11
55
-
56
- - fix(content): add fallback title and description extraction from Markdown body (9bab321)
57
-
58
- ## [v0.20.0] - 2026-04-11
59
-
60
- - feat(content): implement file-based content layer with Markdown/JSON support (#1) (c6ef0f7)
61
- - chore: update dependencies for @jasonshimmy/custom-elements-runtime and typescript-eslint (15095bc)
62
-
63
- ## [v0.19.3] - 2026-03-29
64
-
65
- - fix: bump versions in generated package.json files and update the cer dependency for development (bf1014d)
66
-
67
- ## [v0.19.2] - 2026-03-28
68
-
69
- - fix: add plugin DSD test cases and ensure shared component registry in SSR (ee3fffb)
70
-
71
- ## [v0.19.1] - 2026-03-28
72
-
73
- - fix: add entry-server.ts generation for SSR support in dev server (2f102c8)
74
-
75
- ## [v0.19.0] - 2026-03-28
76
-
77
- - feat: implement observability hooks for SSR requests and responses, including error handling feat: inform developers when private config is used in a public context (44b592c)
78
- - chore: enhance type definitions with detailed comments across composables and types (e5c1963)
79
-
80
- ## [v0.18.2] - 2026-03-28
81
-
82
- - fix: correct vite-plugin-cer-app version in generated package.json files (ae1ccc1)
83
-
84
- ## [v0.18.1] - 2026-03-28
85
-
86
- - fix: update dependencies in package.json templates for SPA, SSG, and SSR (5729fe1)
87
-
88
- ## [v0.18.0] - 2026-03-28
89
-
90
- - chore: remove dead file (e01aab3)
91
- - feat: production readiness hardening (5f64c49)
92
-
93
- ## [v0.17.1] - 2026-03-28
94
-
95
- - fix: update dependencies and improve error handling in server templates (0f12ef5)
96
-
97
- ## [v0.17.0] - 2026-03-27
98
-
99
- - feat: add component code-splitting and tests (db7c4c7)
100
-
101
- ## [v0.16.0] - 2026-03-27
102
-
103
- - feat: add internationalization (i18n) support with locale-aware routing (a38407c)
104
- - docs: add defineOAuthProvider helper and tests for OAuth configuration test: enhance useRoute and useCookie tests for better error handling test: implement tests for defineServerMiddleware functionality test: add tests for OAuth routes in generateServerApiCode test: improve useFetch tests with refresh functionality test: update useHead tests for new script handling (797ef05)
105
- - docs: update authentication, components, composables, configuration, data loading, head management, middleware, plugins, routing, testing, use-fetch, and use-state documentation for clarity and accuracy (322d181)
106
-
107
- ## [v0.15.0] - 2026-03-26
108
-
109
- - feat: implement useState composable for globally-keyed reactive state management (f8aae38)
110
- - docs: update inaccuracies (69b807d)
111
-
112
- ## [v0.14.1] - 2026-03-26
113
-
114
- - fix: downgrade typescript (0278d24)
115
- - fix: add missing dts definitions for composables chore: update dependencies and improve type declarations (546c99c)
116
-
117
- ## [v0.14.0] - 2026-03-25
118
-
119
- - feat: add programmatic navigation and route handling (37a583b)
120
-
121
- ## [v0.13.1] - 2026-03-22
122
-
123
- - fix: optimize imports in Cloudflare and Netlify adapters to remove unused handler export (cc74ce3)
124
-
125
- ## [v0.13.0] - 2026-03-22
126
-
127
- - feat: implement streaming Web API Response support in Cloudflare and Netlify adapters (bfe00e3)
128
-
129
- ## [v0.12.1] - 2026-03-22
130
-
131
- - fix: add meta.hydrate support for route hydration strategies and implement related tests (0513743)
132
-
133
- ## [v0.12.0] - 2026-03-22
134
-
135
- - feat: implement ISR support with isrHandler for SSR fallback in Cloudflare, Netlify, and Vercel adapters (ddcc4d4)
136
-
137
- ## [v0.11.0] - 2026-03-22
138
-
139
- - feat: add Cloudflare Pages adapter for SSR and SSG support (2734c26)
140
-
141
- ## [v0.10.0] - 2026-03-22
142
-
143
- - feat: add adapters for Vercel and Netlify deployment platforms (7112bf6)
144
-
145
- ## [v0.9.0] - 2026-03-21
146
-
147
- - feat: add useCookie and useSeoMeta composables with tests (6536902)
148
-
149
- ## [v0.8.0] - 2026-03-21
150
-
151
- - feat: add middleware support and enhance runtime configuration (78ef4d2)
152
-
153
- ## [v0.7.0] - 2026-03-21
154
-
155
- - feat: add per-route render strategies and error handling in ISR (d76fb89)
156
-
157
- ## [v0.6.0] - 2026-03-21
158
-
159
- - feat(ssr): switch server entry from renderToStringWithJITCSSDSD to renderToStreamWithJITCSSDSD for true incremental streaming (cca67d8)
160
-
161
- ## [v0.5.0] - 2026-03-21
162
-
163
- - feat: add runtime configuration support and ISR enhancements (847cd25)
164
-
165
- ## [v0.4.6] - 2026-03-21
166
-
167
- - fix: merge extraneous templates (7a859bd)
168
-
169
- ## [v0.4.5] - 2026-03-21
170
-
171
- - fix: remove the dsd config option since we always want it on anyway. (3698886)
172
-
173
- ## [v0.4.4] - 2026-03-21
174
-
175
- - fix: bootstrap .cer/tsconfig.json during config loading for improved resolution (f8bda65)
176
-
177
- ## [v0.4.3] - 2026-03-21
178
-
179
- - fix: fix DSD config and update FOUC tests to DSD correctness tests and enhance assertions (a8d36a3)
180
- - chore: update eslint (5a367e0)
181
-
182
- ## [v0.4.2] - 2026-03-21
183
-
184
- - fix: update dependencies in project templates to latest versions (1390724)
185
-
186
- ## [v0.4.1] - 2026-03-21
187
-
188
- - fix: update app entry point to use virtual module path /@cer/app.ts across templates and tests (139abaf)
189
-
190
- ## [v0.4.0] - 2026-03-20
191
-
192
- - feat: implement useInject composable for consistent value injection across SPA, SSR, and SSG fix: cer app hidden directory issue (f614e92)
193
-
194
- ## [v0.3.0] - 2026-03-20
195
-
196
- - feat: add default .gitignore templates for SPA, SSR, and SSG projects fix: remove unused streaming ssr option fix: generated .cer directory to get out of the way of the user (8656788)
197
-
198
- ## [v0.2.0] - 2026-03-20
199
-
200
- - feat: introduce generated directory for app files and HTML (c8fdcdd)
201
-
202
- ## [v0.1.6] - 2026-03-20
203
-
204
- - fix: update CLI usage instructions to include --package flag for create-cer-app (457114d)
205
-
206
- ## [v0.1.5] - 2026-03-20
207
-
208
- - fix: use vite plugin for light dom jit css fix: update incorrect docs fix: fix the plugin config (c32cf6a)
209
-
210
- ## [v0.1.4] - 2026-03-20
211
-
212
- - fix: fixed many issues across the plugin fix: added e2e tests to ensure functionality works across build types fix:improve documentation (fb24d84)
213
-
214
- ## [v0.1.3] - 2026-03-19
215
-
216
- - fix: FOUC in ssr and ssg (e4fb53d)
217
-
218
- ## [v0.1.2] - 2026-03-19
219
-
220
- - fix(build): fix SSR and SSG build modes (23d5363)
221
-
222
- ## [v0.1.1] - 2026-03-18
223
-
224
- - fix: rename vite-plugin-cer-app usage to @jasonshimmy/vite-plugin-cer-app (60c4bdf)
225
-
226
- ## [v0.1.0] - 2026-03-18
227
-
228
- - fix: add nvmrc (7065201)
229
- - feat: add publishing capability (812152b)
230
- - initial commit (43a8365)
231
-
232
-
package/CLAUDE.md DELETED
@@ -1,113 +0,0 @@
1
- # Claude Code Instructions — vite-plugin-cer-app
2
-
3
- This file contains project-specific instructions for Claude Code. Follow all rules below without exception.
4
-
5
- ---
6
-
7
- ## Project overview
8
-
9
- `vite-plugin-cer-app` is a Vite plugin / meta-framework built on top of `@jasonshimmy/custom-elements-runtime`. It provides file-based routing, SSR/SSG/SPA rendering modes, auto-imports, virtual modules, and a composables layer. All source code is TypeScript.
10
-
11
- ---
12
-
13
- ## NON-NEGOTIABLE requirements
14
-
15
- Every change — feature, bug fix, refactor — MUST satisfy all of the following before it is considered complete:
16
-
17
- ### 1. Documentation
18
- - All new features must be **fully documented** in the relevant `docs/*.md` file.
19
- - Documentation must include: configuration options, API reference, usage examples, and known edge cases.
20
- - If a feature affects auto-imports, update `docs/configuration.md` (the auto-imports list).
21
- - If a feature adds a composable, add a full entry to `docs/composables.md`.
22
- - If a feature affects routing, update `docs/routing.md`.
23
- - If a feature affects middleware, update `docs/middleware.md`.
24
- - Documentation must be 100% accurate with the actual implementation — never document behavior that does not exist.
25
-
26
- ### 2. Tests — unit
27
- - All new features must include **unit tests** using Vitest in `src/__tests__/`.
28
- - Tests must cover: typical usage, edge cases, and failure/error paths.
29
- - Never reduce existing test coverage.
30
-
31
- ### 3. Tests — e2e
32
- - All new features must include **Cypress e2e tests** in `e2e/cypress/e2e/`.
33
- - E2e tests must cover typical usage and edge cases across all applicable build modes: SPA, SSR, SSG, and dev.
34
- - Add any required fixtures (kitchen-sink pages, middleware, components) to `e2e/kitchen-sink/`.
35
- - **NEVER run Cypress yourself.** Only the user runs Cypress. When e2e tests are ready, ask the user to run `npm run e2e` and report the results.
36
-
37
- ### 4. Auto-imports
38
- - All new framework composables must be wired into `src/plugin/transforms/auto-import.ts` (`FRAMEWORK_IMPORTS` string + `FRAMEWORK_IDENTIFIERS` array).
39
- - Verify the auto-import works in pages, layouts, components, and middleware by adding a test to `src/__tests__/plugin/transforms/auto-import.test.ts`.
40
-
41
- ### 5. TypeScript
42
- - All new code must be **strongly typed** — no `any`, no implicit `any`.
43
- - Prefer `interface` over `type` for object shapes.
44
- - All new public types must be exported from `src/types/` and re-exported from the package's type entry point.
45
- - The TypeScript compiler must not produce new errors. Run `npm run build` to verify.
46
-
47
- ### 6. Validation
48
- - `npm run validate` (which runs `lint && npm test && npm run build && npm run e2e`) **MUST pass** before any change is considered complete.
49
- - The AI-runnable subset is `npm run lint && npm test && npm run build`. Run these yourself before asking the user to run Cypress.
50
- - Do not mark work as done if lint errors, type errors, or failing unit tests exist.
51
-
52
- ---
53
-
54
- ## Important behaviors
55
-
56
- ### Never run Cypress
57
- Cypress is run exclusively by the user. The AI must:
58
- 1. Write the Cypress test file(s).
59
- 2. Confirm lint + unit tests + build pass.
60
- 3. Ask the user to run `npm run e2e` (or `npm run validate`) and report the results.
61
-
62
- ### Virtual modules
63
- Virtual module IDs follow the pattern `virtual:cer-*`. They are resolved with a `\0` prefix in the Vite plugin's `resolveId` hook. Adding a new virtual module requires updating `VIRTUAL_IDS` in `src/plugin/index.ts` and the corresponding `generateVirtualModule` switch branch.
64
-
65
- ### Auto-imports
66
- `src/plugin/transforms/auto-import.ts` injects framework composables into page/layout/component/middleware files. Adding a new composable requires:
67
- - Appending the identifier to `FRAMEWORK_IMPORTS` (the import statement string).
68
- - Adding it to `FRAMEWORK_IDENTIFIERS` (the array used to detect usage).
69
-
70
- ### SSR isolation
71
- Per-request state uses `AsyncLocalStorage`. New per-request stores must follow the pattern in existing stores (create → run → cleanup) and be initialized in the request handler.
72
-
73
- ### Kitchen-sink app
74
- `e2e/kitchen-sink/` is the test harness app. Every new feature needs at least one kitchen-sink page/component that exercises the feature so Cypress has something to test.
75
-
76
- ---
77
-
78
- ## Commands reference
79
-
80
- | Command | Purpose |
81
- |---|---|
82
- | `npm run build` | Production build (plugin + types) |
83
- | `npm test` | Vitest unit tests |
84
- | `npm run test:coverage` | Unit test coverage report |
85
- | `npm run lint` | ESLint + TypeScript check |
86
- | `npm run e2e` | Cypress e2e tests (user only) |
87
- | `npm run validate` | Full pipeline: lint → test → build → e2e |
88
-
89
- ---
90
-
91
- ## File layout
92
-
93
- ```
94
- src/
95
- plugin/ — Vite plugin implementation
96
- virtual/ — Virtual module generators
97
- transforms/ — Code transforms (auto-import, etc.)
98
- runtime/ — Composables and runtime helpers
99
- composables/ — useLocale, useCookie, useState, etc.
100
- cli/ — CLI commands (build, adapt, dev)
101
- types/ — Shared TypeScript interfaces
102
- __tests__/ — Unit tests (mirrors src/ structure)
103
-
104
- e2e/
105
- kitchen-sink/ — Test harness app
106
- app/pages/ — Test pages
107
- app/middleware/ — Test middleware
108
- cer.config.ts — Kitchen-sink config
109
- cypress/
110
- e2e/ — Cypress specs
111
-
112
- docs/ — Markdown documentation
113
- ```
package/commits.txt DELETED
@@ -1 +0,0 @@
1
- - fix: fix useContentSearch loading state, debounce, and automatic retry on fetch failure (4d0207a)
package/cypress.config.ts DELETED
@@ -1,16 +0,0 @@
1
- import { defineConfig } from 'cypress'
2
-
3
- export default defineConfig({
4
- e2e: {
5
- specPattern: 'e2e/cypress/e2e/**/*.cy.ts',
6
- supportFile: 'e2e/cypress/support/e2e.ts',
7
- screenshotsFolder: 'e2e/cypress/screenshots',
8
- videosFolder: 'e2e/cypress/videos',
9
- // Pierce shadow DOM globally so all cy.get() calls work across shadow roots
10
- includeShadowDom: true,
11
- viewportWidth: 1280,
12
- viewportHeight: 720,
13
- // Give the server time to start
14
- pageLoadTimeout: 15000,
15
- },
16
- })