@jasonshimmy/vite-plugin-cer-app 0.23.2 → 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.
- package/dist/cli/checks/lighthouse.d.ts +26 -0
- package/dist/cli/checks/lighthouse.d.ts.map +1 -0
- package/dist/cli/checks/lighthouse.js +121 -0
- package/dist/cli/checks/lighthouse.js.map +1 -0
- package/dist/cli/checks/links.d.ts +12 -0
- package/dist/cli/checks/links.d.ts.map +1 -0
- package/dist/cli/checks/links.js +89 -0
- package/dist/cli/checks/links.js.map +1 -0
- package/dist/cli/checks/performance.d.ts +17 -0
- package/dist/cli/checks/performance.d.ts.map +1 -0
- package/dist/cli/checks/performance.js +61 -0
- package/dist/cli/checks/performance.js.map +1 -0
- package/dist/cli/commands/check.d.ts +3 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +85 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/create/index.d.ts +11 -1
- package/dist/cli/create/index.d.ts.map +1 -1
- package/dist/cli/create/index.js +135 -65
- package/dist/cli/create/index.js.map +1 -1
- package/dist/cli/create/templates/spa/package.json.tpl +5 -3
- package/dist/cli/create/templates/ssg/cer.config.ts.tpl +2 -0
- package/dist/cli/create/templates/ssg/package.json.tpl +5 -3
- package/dist/cli/create/templates/ssr/package.json.tpl +5 -3
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/plugin/build-ssg.d.ts +22 -6
- package/dist/plugin/build-ssg.d.ts.map +1 -1
- package/dist/plugin/build-ssg.js +227 -17
- package/dist/plugin/build-ssg.js.map +1 -1
- package/dist/plugin/content/parser.d.ts.map +1 -1
- package/dist/plugin/content/parser.js +54 -10
- package/dist/plugin/content/parser.js.map +1 -1
- package/dist/plugin/dev-server.d.ts +4 -1
- package/dist/plugin/dev-server.d.ts.map +1 -1
- package/dist/plugin/dev-server.js.map +1 -1
- package/dist/plugin/dts-generator.d.ts.map +1 -1
- package/dist/plugin/dts-generator.js +50 -8
- package/dist/plugin/dts-generator.js.map +1 -1
- package/dist/plugin/generated-dir.d.ts +2 -0
- package/dist/plugin/generated-dir.d.ts.map +1 -1
- package/dist/plugin/generated-dir.js +17 -6
- package/dist/plugin/generated-dir.js.map +1 -1
- package/dist/plugin/html-post-process.d.ts +6 -0
- package/dist/plugin/html-post-process.d.ts.map +1 -1
- package/dist/plugin/html-post-process.js +24 -0
- package/dist/plugin/html-post-process.js.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +60 -13
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/transforms/auto-import.d.ts.map +1 -1
- package/dist/plugin/transforms/auto-import.js +7 -0
- package/dist/plugin/transforms/auto-import.js.map +1 -1
- package/dist/plugin/transforms/prune-runtime-css.d.ts +8 -0
- package/dist/plugin/transforms/prune-runtime-css.d.ts.map +1 -0
- package/dist/plugin/transforms/prune-runtime-css.js +40 -0
- package/dist/plugin/transforms/prune-runtime-css.js.map +1 -0
- package/dist/runtime/app-template.d.ts +1 -1
- package/dist/runtime/app-template.d.ts.map +1 -1
- package/dist/runtime/app-template.js +206 -36
- package/dist/runtime/app-template.js.map +1 -1
- package/dist/runtime/composables/index.d.ts +4 -0
- package/dist/runtime/composables/index.d.ts.map +1 -1
- package/dist/runtime/composables/index.js +2 -0
- package/dist/runtime/composables/index.js.map +1 -1
- package/dist/runtime/composables/use-active-headings.d.ts +24 -0
- package/dist/runtime/composables/use-active-headings.d.ts.map +1 -0
- package/dist/runtime/composables/use-active-headings.js +112 -0
- package/dist/runtime/composables/use-active-headings.js.map +1 -0
- package/dist/runtime/composables/use-content-page.d.ts +45 -0
- package/dist/runtime/composables/use-content-page.d.ts.map +1 -0
- package/dist/runtime/composables/use-content-page.js +179 -0
- package/dist/runtime/composables/use-content-page.js.map +1 -0
- package/dist/runtime/composables/use-content-search.d.ts.map +1 -1
- package/dist/runtime/composables/use-content-search.js +1 -5
- package/dist/runtime/composables/use-content-search.js.map +1 -1
- package/dist/runtime/composables/use-fetch.d.ts +2 -1
- package/dist/runtime/composables/use-fetch.d.ts.map +1 -1
- package/dist/runtime/composables/use-fetch.js +112 -43
- package/dist/runtime/composables/use-fetch.js.map +1 -1
- package/dist/runtime/composables/use-route.d.ts.map +1 -1
- package/dist/runtime/composables/use-route.js +39 -11
- package/dist/runtime/composables/use-route.js.map +1 -1
- package/dist/runtime/content/client.js +2 -2
- package/dist/runtime/content/client.js.map +1 -1
- package/dist/runtime/entry-server-template.d.ts +16 -1
- package/dist/runtime/entry-server-template.d.ts.map +1 -1
- package/dist/runtime/entry-server-template.js +120 -13
- package/dist/runtime/entry-server-template.js.map +1 -1
- package/dist/types/config.d.ts +45 -4
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/middleware.d.ts +2 -2
- package/dist/types/middleware.d.ts.map +1 -1
- package/package.json +22 -19
- package/.github/copilot-instructions.md +0 -169
- package/.github/workflows/publish.yml +0 -257
- package/.nvmrc +0 -1
- package/CHANGELOG.md +0 -236
- package/CLAUDE.md +0 -113
- package/commits.txt +0 -1
- package/cypress.config.ts +0 -16
- package/docs/authentication.md +0 -285
- package/docs/cli.md +0 -324
- package/docs/components.md +0 -237
- package/docs/composables.md +0 -907
- package/docs/configuration.md +0 -696
- package/docs/content.md +0 -570
- package/docs/data-loading.md +0 -336
- package/docs/getting-started.md +0 -237
- package/docs/head-management.md +0 -212
- package/docs/i18n.md +0 -159
- package/docs/layouts.md +0 -224
- package/docs/middleware.md +0 -234
- package/docs/plugins.md +0 -170
- package/docs/rendering-modes.md +0 -377
- package/docs/routing.md +0 -485
- package/docs/server-api.md +0 -253
- package/docs/testing.md +0 -455
- package/docs/use-fetch.md +0 -183
- package/e2e/cypress/e2e/api.cy.ts +0 -123
- package/e2e/cypress/e2e/async-component.cy.ts +0 -27
- package/e2e/cypress/e2e/component-splitting.cy.ts +0 -50
- package/e2e/cypress/e2e/content.cy.ts +0 -425
- package/e2e/cypress/e2e/cookie.cy.ts +0 -85
- package/e2e/cypress/e2e/data.cy.ts +0 -158
- package/e2e/cypress/e2e/error-boundary.cy.ts +0 -88
- package/e2e/cypress/e2e/fouc.cy.ts +0 -254
- package/e2e/cypress/e2e/group-meta.cy.ts +0 -36
- package/e2e/cypress/e2e/head.cy.ts +0 -89
- package/e2e/cypress/e2e/i18n.cy.ts +0 -79
- package/e2e/cypress/e2e/interactive.cy.ts +0 -137
- package/e2e/cypress/e2e/isr-nested-runtime.cy.ts +0 -102
- package/e2e/cypress/e2e/jit-css-custom-colors.cy.ts +0 -43
- package/e2e/cypress/e2e/middleware-chain.cy.ts +0 -89
- package/e2e/cypress/e2e/middleware-status.cy.ts +0 -30
- package/e2e/cypress/e2e/middleware.cy.ts +0 -45
- package/e2e/cypress/e2e/navigate.cy.ts +0 -39
- package/e2e/cypress/e2e/observability.cy.ts +0 -77
- package/e2e/cypress/e2e/per-route-error.cy.ts +0 -42
- package/e2e/cypress/e2e/per-route-render.cy.ts +0 -70
- package/e2e/cypress/e2e/preview-hardening.cy.ts +0 -88
- package/e2e/cypress/e2e/routes.cy.ts +0 -128
- package/e2e/cypress/e2e/seo-meta.cy.ts +0 -108
- package/e2e/cypress/e2e/server-middleware.cy.ts +0 -46
- package/e2e/cypress/e2e/session-rotation.cy.ts +0 -25
- package/e2e/cypress/e2e/session.cy.ts +0 -73
- package/e2e/cypress/e2e/ssr-render-error.cy.ts +0 -68
- package/e2e/cypress/e2e/synthetic-404.cy.ts +0 -45
- package/e2e/cypress/e2e/use-page-data.cy.ts +0 -122
- package/e2e/cypress/e2e/use-state.cy.ts +0 -138
- package/e2e/cypress/support/commands.ts +0 -120
- package/e2e/cypress/support/e2e.ts +0 -10
- package/e2e/cypress/tsconfig.json +0 -14
- package/e2e/kitchen-sink/app/components/ks-badge.ts +0 -8
- package/e2e/kitchen-sink/app/composables/useKsCounter.ts +0 -9
- package/e2e/kitchen-sink/app/error.ts +0 -18
- package/e2e/kitchen-sink/app/layouts/admin.ts +0 -13
- package/e2e/kitchen-sink/app/layouts/default.ts +0 -25
- package/e2e/kitchen-sink/app/layouts/group.ts +0 -9
- package/e2e/kitchen-sink/app/layouts/minimal.ts +0 -7
- package/e2e/kitchen-sink/app/loading.ts +0 -9
- package/e2e/kitchen-sink/app/middleware/auth.ts +0 -9
- package/e2e/kitchen-sink/app/middleware/custom-log.ts +0 -4
- package/e2e/kitchen-sink/app/middleware/group-auth.ts +0 -7
- package/e2e/kitchen-sink/app/middleware/logger.ts +0 -14
- package/e2e/kitchen-sink/app/pages/(auth)/login.ts +0 -13
- package/e2e/kitchen-sink/app/pages/(auth)/protected.ts +0 -16
- package/e2e/kitchen-sink/app/pages/404.ts +0 -9
- package/e2e/kitchen-sink/app/pages/about.ts +0 -17
- package/e2e/kitchen-sink/app/pages/admin/_layout.ts +0 -1
- package/e2e/kitchen-sink/app/pages/admin/dashboard.ts +0 -11
- package/e2e/kitchen-sink/app/pages/async-component-error-test.ts +0 -18
- package/e2e/kitchen-sink/app/pages/async-component-test.ts +0 -18
- package/e2e/kitchen-sink/app/pages/blog/[slug].ts +0 -59
- package/e2e/kitchen-sink/app/pages/blog/index.ts +0 -51
- package/e2e/kitchen-sink/app/pages/content-blog.ts +0 -37
- package/e2e/kitchen-sink/app/pages/content-doc.ts +0 -42
- package/e2e/kitchen-sink/app/pages/content-fallback.ts +0 -36
- package/e2e/kitchen-sink/app/pages/content-guides.ts +0 -35
- package/e2e/kitchen-sink/app/pages/content-index.ts +0 -39
- package/e2e/kitchen-sink/app/pages/content-search.ts +0 -36
- package/e2e/kitchen-sink/app/pages/cookie-test.ts +0 -22
- package/e2e/kitchen-sink/app/pages/counter.ts +0 -17
- package/e2e/kitchen-sink/app/pages/group-auth-blocked.ts +0 -9
- package/e2e/kitchen-sink/app/pages/group-meta-test/_layout.ts +0 -6
- package/e2e/kitchen-sink/app/pages/group-meta-test/custom-mw.ts +0 -14
- package/e2e/kitchen-sink/app/pages/group-meta-test/page.ts +0 -9
- package/e2e/kitchen-sink/app/pages/group-meta-test/protected.ts +0 -8
- package/e2e/kitchen-sink/app/pages/head.ts +0 -20
- package/e2e/kitchen-sink/app/pages/i18n-test.ts +0 -14
- package/e2e/kitchen-sink/app/pages/index.ts +0 -27
- package/e2e/kitchen-sink/app/pages/isr-test.ts +0 -17
- package/e2e/kitchen-sink/app/pages/items/[id].ts +0 -20
- package/e2e/kitchen-sink/app/pages/jit-css-custom-colors-test.ts +0 -14
- package/e2e/kitchen-sink/app/pages/loader-error-test.ts +0 -13
- package/e2e/kitchen-sink/app/pages/loader-props-test.ts +0 -19
- package/e2e/kitchen-sink/app/pages/loader-response-error-test.ts +0 -13
- package/e2e/kitchen-sink/app/pages/middleware-chain-test.ts +0 -12
- package/e2e/kitchen-sink/app/pages/middleware-status-test.ts +0 -9
- package/e2e/kitchen-sink/app/pages/navigate-test.ts +0 -16
- package/e2e/kitchen-sink/app/pages/observability-test.ts +0 -25
- package/e2e/kitchen-sink/app/pages/per-route-error-test.error.ts +0 -13
- package/e2e/kitchen-sink/app/pages/per-route-error-test.ts +0 -15
- package/e2e/kitchen-sink/app/pages/plugin-dsd-test.ts +0 -10
- package/e2e/kitchen-sink/app/pages/render-error-test.ts +0 -12
- package/e2e/kitchen-sink/app/pages/render-server-test.ts +0 -12
- package/e2e/kitchen-sink/app/pages/render-spa-test.ts +0 -12
- package/e2e/kitchen-sink/app/pages/route-info.ts +0 -14
- package/e2e/kitchen-sink/app/pages/seo-test.ts +0 -23
- package/e2e/kitchen-sink/app/pages/session-rotation-test.ts +0 -25
- package/e2e/kitchen-sink/app/pages/use-state-test.ts +0 -37
- package/e2e/kitchen-sink/app/plugins/01.setup.ts +0 -7
- package/e2e/kitchen-sink/app/plugins/02.ks-plugin-components.ts +0 -27
- package/e2e/kitchen-sink/cer-auto-imports.d.ts +0 -51
- package/e2e/kitchen-sink/cer-env.d.ts +0 -35
- package/e2e/kitchen-sink/cer-tsconfig.json +0 -30
- package/e2e/kitchen-sink/cer.config.ts +0 -43
- package/e2e/kitchen-sink/content/01.guides/01.index.md +0 -8
- package/e2e/kitchen-sink/content/01.guides/02.intro.md +0 -8
- package/e2e/kitchen-sink/content/01.guides/10.advanced.md +0 -8
- package/e2e/kitchen-sink/content/blog/2026-04-01-hello.md +0 -26
- package/e2e/kitchen-sink/content/blog/2026-04-02-draft.md +0 -10
- package/e2e/kitchen-sink/content/blog/index.md +0 -8
- package/e2e/kitchen-sink/content/blog/no-frontmatter.md +0 -7
- package/e2e/kitchen-sink/content/docs/getting-started.md +0 -48
- package/e2e/kitchen-sink/content/index.md +0 -16
- package/e2e/kitchen-sink/server/api/echo.ts +0 -12
- package/e2e/kitchen-sink/server/api/health.ts +0 -3
- package/e2e/kitchen-sink/server/api/posts/[slug].ts +0 -11
- package/e2e/kitchen-sink/server/api/posts/index.ts +0 -5
- package/e2e/kitchen-sink/server/api/session.ts +0 -23
- package/e2e/kitchen-sink/server/data/posts.ts +0 -21
- package/e2e/kitchen-sink/server/middleware/01-headers.ts +0 -6
- package/e2e/kitchen-sink/server/middleware/02-status-test.ts +0 -10
- package/e2e/kitchen-sink/tsconfig.json +0 -3
- package/e2e/scripts/clean.mjs +0 -14
- package/eslint.config.ts +0 -22
- package/src/__tests__/cli/adapters/cloudflare-worker.integration.test.ts +0 -132
- package/src/__tests__/cli/adapters/cloudflare.test.ts +0 -332
- package/src/__tests__/cli/adapters/netlify-bridge.integration.test.ts +0 -139
- package/src/__tests__/cli/adapters/netlify.test.ts +0 -286
- package/src/__tests__/cli/adapters/vercel-launcher.integration.test.ts +0 -129
- package/src/__tests__/cli/adapters/vercel.test.ts +0 -263
- package/src/__tests__/cli/preview-hardening.test.ts +0 -265
- package/src/__tests__/cli/preview-isr.test.ts +0 -320
- package/src/__tests__/index.test.ts +0 -21
- package/src/__tests__/plugin/app-template.test.ts +0 -166
- package/src/__tests__/plugin/build-ssg-render.test.ts +0 -155
- package/src/__tests__/plugin/build-ssg.test.ts +0 -598
- package/src/__tests__/plugin/build-ssr.test.ts +0 -192
- package/src/__tests__/plugin/cer-app-plugin.test.ts +0 -552
- package/src/__tests__/plugin/content/emitter.test.ts +0 -117
- package/src/__tests__/plugin/content/loader.test.ts +0 -154
- package/src/__tests__/plugin/content/parser.test.ts +0 -381
- package/src/__tests__/plugin/content/path-utils.test.ts +0 -69
- package/src/__tests__/plugin/content/search.test.ts +0 -119
- package/src/__tests__/plugin/dev-server.test.ts +0 -813
- package/src/__tests__/plugin/dts-generator.test.ts +0 -394
- package/src/__tests__/plugin/entry-server-template.test.ts +0 -385
- package/src/__tests__/plugin/generated-dir.test.ts +0 -144
- package/src/__tests__/plugin/html-post-process.test.ts +0 -146
- package/src/__tests__/plugin/path-utils.test.ts +0 -411
- package/src/__tests__/plugin/resolve-config.test.ts +0 -233
- package/src/__tests__/plugin/scanner.test.ts +0 -186
- package/src/__tests__/plugin/transforms/auto-import.test.ts +0 -510
- package/src/__tests__/plugin/transforms/head-inject.test.ts +0 -178
- package/src/__tests__/plugin/virtual/composables.test.ts +0 -57
- package/src/__tests__/plugin/virtual/content-components.test.ts +0 -66
- package/src/__tests__/plugin/virtual/error.test.ts +0 -71
- package/src/__tests__/plugin/virtual/layouts.test.ts +0 -70
- package/src/__tests__/plugin/virtual/loading.test.ts +0 -72
- package/src/__tests__/plugin/virtual/middleware.test.ts +0 -83
- package/src/__tests__/plugin/virtual/plugins.test.ts +0 -129
- package/src/__tests__/plugin/virtual/routes.test.ts +0 -884
- package/src/__tests__/plugin/virtual/server-api.test.ts +0 -164
- package/src/__tests__/plugin/virtual/server-middleware.test.ts +0 -102
- package/src/__tests__/runtime/app-template.test.ts +0 -208
- package/src/__tests__/runtime/define-middleware.test.ts +0 -64
- package/src/__tests__/runtime/define-server-middleware.test.ts +0 -54
- package/src/__tests__/runtime/entry-client-template.test.ts +0 -61
- package/src/__tests__/runtime/isr-handler.test.ts +0 -338
- package/src/__tests__/runtime/oauth/handler.test.ts +0 -358
- package/src/__tests__/runtime/oauth/providers.test.ts +0 -47
- package/src/__tests__/runtime/oauth-index.test.ts +0 -43
- package/src/__tests__/runtime/use-auth.test.ts +0 -169
- package/src/__tests__/runtime/use-content-search-composable.test.ts +0 -405
- package/src/__tests__/runtime/use-content-search.test.ts +0 -163
- package/src/__tests__/runtime/use-content.test.ts +0 -226
- package/src/__tests__/runtime/use-cookie.test.ts +0 -277
- package/src/__tests__/runtime/use-fetch-component.test.ts +0 -214
- package/src/__tests__/runtime/use-fetch.test.ts +0 -377
- package/src/__tests__/runtime/use-head.test.ts +0 -311
- package/src/__tests__/runtime/use-inject-client.test.ts +0 -67
- package/src/__tests__/runtime/use-inject.test.ts +0 -66
- package/src/__tests__/runtime/use-locale.test.ts +0 -152
- package/src/__tests__/runtime/use-navigate.test.ts +0 -121
- package/src/__tests__/runtime/use-page-data.test.ts +0 -298
- package/src/__tests__/runtime/use-route.test.ts +0 -156
- package/src/__tests__/runtime/use-runtime-config.test.ts +0 -182
- package/src/__tests__/runtime/use-seo-meta.test.ts +0 -109
- package/src/__tests__/runtime/use-session.test.ts +0 -320
- package/src/__tests__/runtime/use-state.test.ts +0 -340
- package/src/__tests__/types/config.test.ts +0 -18
- package/src/cli/adapters/cloudflare.ts +0 -335
- package/src/cli/adapters/netlify.ts +0 -326
- package/src/cli/adapters/vercel.ts +0 -311
- package/src/cli/commands/adapt.ts +0 -84
- package/src/cli/commands/build.ts +0 -165
- package/src/cli/commands/dev.ts +0 -125
- package/src/cli/commands/generate.ts +0 -91
- package/src/cli/commands/preview-isr.ts +0 -172
- package/src/cli/commands/preview.ts +0 -523
- package/src/cli/create/index.ts +0 -275
- package/src/cli/create/templates/shared/.gitignore.tpl +0 -25
- package/src/cli/create/templates/shared/app/layouts/default.ts.tpl +0 -15
- package/src/cli/create/templates/shared/app/pages/index.ts.tpl +0 -8
- package/src/cli/create/templates/shared/index.html.tpl +0 -12
- package/src/cli/create/templates/shared/tsconfig.json.tpl +0 -6
- package/src/cli/create/templates/spa/cer.config.ts.tpl +0 -6
- package/src/cli/create/templates/spa/package.json.tpl +0 -18
- package/src/cli/create/templates/ssg/cer.config.ts.tpl +0 -10
- package/src/cli/create/templates/ssg/package.json.tpl +0 -19
- package/src/cli/create/templates/ssr/cer.config.ts.tpl +0 -6
- package/src/cli/create/templates/ssr/package.json.tpl +0 -18
- package/src/cli/index.ts +0 -22
- package/src/index.ts +0 -20
- package/src/plugin/build-ssg.ts +0 -403
- package/src/plugin/build-ssr.ts +0 -134
- package/src/plugin/content/emitter.ts +0 -50
- package/src/plugin/content/index.ts +0 -233
- package/src/plugin/content/parser.ts +0 -259
- package/src/plugin/content/path-utils.ts +0 -55
- package/src/plugin/content/scanner.ts +0 -26
- package/src/plugin/content/search.ts +0 -28
- package/src/plugin/dev-server.ts +0 -379
- package/src/plugin/dts-generator.ts +0 -273
- package/src/plugin/generated-dir.ts +0 -121
- package/src/plugin/html-post-process.ts +0 -96
- package/src/plugin/index.ts +0 -584
- package/src/plugin/path-utils.ts +0 -186
- package/src/plugin/scanner.ts +0 -65
- package/src/plugin/transforms/auto-import.ts +0 -206
- package/src/plugin/transforms/head-inject.ts +0 -161
- package/src/plugin/virtual/composables.ts +0 -28
- package/src/plugin/virtual/content-components.ts +0 -83
- package/src/plugin/virtual/error.ts +0 -34
- package/src/plugin/virtual/layouts.ts +0 -41
- package/src/plugin/virtual/loading.ts +0 -32
- package/src/plugin/virtual/middleware.ts +0 -45
- package/src/plugin/virtual/plugins.ts +0 -46
- package/src/plugin/virtual/routes.ts +0 -514
- package/src/plugin/virtual/server-api.ts +0 -85
- package/src/plugin/virtual/server-middleware.ts +0 -44
- package/src/runtime/app-template.ts +0 -377
- package/src/runtime/composables/define-middleware.ts +0 -17
- package/src/runtime/composables/define-server-middleware.ts +0 -18
- package/src/runtime/composables/index.ts +0 -27
- package/src/runtime/composables/use-auth.ts +0 -125
- package/src/runtime/composables/use-content-search.ts +0 -205
- package/src/runtime/composables/use-content.ts +0 -146
- package/src/runtime/composables/use-cookie.ts +0 -135
- package/src/runtime/composables/use-fetch.ts +0 -438
- package/src/runtime/composables/use-head.ts +0 -234
- package/src/runtime/composables/use-inject.ts +0 -49
- package/src/runtime/composables/use-locale.ts +0 -109
- package/src/runtime/composables/use-navigate.ts +0 -58
- package/src/runtime/composables/use-page-data.ts +0 -93
- package/src/runtime/composables/use-route.ts +0 -71
- package/src/runtime/composables/use-runtime-config.ts +0 -123
- package/src/runtime/composables/use-seo-meta.ts +0 -80
- package/src/runtime/composables/use-session.ts +0 -186
- package/src/runtime/composables/use-state.ts +0 -92
- package/src/runtime/content/client.ts +0 -168
- package/src/runtime/entry-client-template.ts +0 -39
- package/src/runtime/entry-server-template.ts +0 -493
- package/src/runtime/isr-handler.ts +0 -184
- package/src/runtime/oauth/handler.ts +0 -407
- package/src/runtime/oauth/index.ts +0 -49
- package/src/runtime/oauth/providers.ts +0 -38
- package/src/types/api.ts +0 -40
- package/src/types/config.ts +0 -379
- package/src/types/content.ts +0 -66
- package/src/types/index.ts +0 -7
- package/src/types/middleware.ts +0 -63
- package/src/types/page.ts +0 -117
- package/src/types/plugin.ts +0 -34
- package/tsconfig.build.json +0 -10
- package/tsconfig.json +0 -19
- package/vitest.config.ts +0 -33
|
@@ -11,6 +11,80 @@
|
|
|
11
11
|
* - useHead() support via beginHeadCollection / endHeadCollection
|
|
12
12
|
* - DSD polyfill injected at end of <body> after client-template merge
|
|
13
13
|
*/
|
|
14
|
+
export function serializeForInlineScript(value) {
|
|
15
|
+
const serialized = JSON.stringify(value);
|
|
16
|
+
if (serialized === undefined)
|
|
17
|
+
return 'null';
|
|
18
|
+
return serialized
|
|
19
|
+
.replace(/&/g, '\\u0026')
|
|
20
|
+
.replace(/</g, '\\u003c')
|
|
21
|
+
.replace(/>/g, '\\u003e')
|
|
22
|
+
.replace(/\u2028/g, '\\u2028')
|
|
23
|
+
.replace(/\u2029/g, '\\u2029');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Collect DSD tag names that are safe to define incrementally. A tag is only
|
|
27
|
+
* deferrable when every rendered instance explicitly carries a hydration
|
|
28
|
+
* strategy; one eager instance makes the shared custom-element definition
|
|
29
|
+
* part of the interactive shell and excludes that tag from the manifest.
|
|
30
|
+
*/
|
|
31
|
+
export function collectDsdHostTags(html) {
|
|
32
|
+
const orderedTags = [];
|
|
33
|
+
const seen = new Set();
|
|
34
|
+
const deferred = new Set();
|
|
35
|
+
const eager = new Set();
|
|
36
|
+
const pattern = /<([a-z][a-z0-9._-]*-[a-z0-9._-]+)\b([^>]*)>\s*<template\b[^>]*\bshadowrootmode\s*=/gi;
|
|
37
|
+
let match;
|
|
38
|
+
while ((match = pattern.exec(html)) !== null) {
|
|
39
|
+
const tag = match[1].toLowerCase();
|
|
40
|
+
if (!seen.has(tag)) {
|
|
41
|
+
seen.add(tag);
|
|
42
|
+
orderedTags.push(tag);
|
|
43
|
+
}
|
|
44
|
+
if (/\bdata-cer-hydrate\s*=\s*(["'])[^"']+\1/i.test(match[2])) {
|
|
45
|
+
deferred.add(tag);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
eager.add(tag);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return orderedTags.filter((tag) => deferred.has(tag) && !eager.has(tag));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Converts Vite's external module entry into an eagerly fetched, post-paint
|
|
55
|
+
* bootstrap. Static SSR routes can paint their complete HTML before framework
|
|
56
|
+
* and island modules evaluate, while modulepreload keeps interaction latency
|
|
57
|
+
* low once the first frame has committed.
|
|
58
|
+
*/
|
|
59
|
+
export function deferEntryModulesForFirstPaint(html, dsdTags = []) {
|
|
60
|
+
return html.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/gi, (tag, attrs, body) => {
|
|
61
|
+
if (body.trim() !== '' || !/\btype\s*=\s*(["'])module\1/i.test(attrs))
|
|
62
|
+
return tag;
|
|
63
|
+
const srcMatch = attrs.match(/\bsrc\s*=\s*(["'])([^"']+)\1/i);
|
|
64
|
+
if (!srcMatch)
|
|
65
|
+
return tag;
|
|
66
|
+
const src = srcMatch[2];
|
|
67
|
+
const escapedHref = src
|
|
68
|
+
.replace(/&/g, '&')
|
|
69
|
+
.replace(/"/g, '"')
|
|
70
|
+
.replace(/</g, '<')
|
|
71
|
+
.replace(/>/g, '>');
|
|
72
|
+
const serializedSrc = serializeForInlineScript(src);
|
|
73
|
+
const serializedDsdTags = serializeForInlineScript(dsdTags);
|
|
74
|
+
const start = `function(){if(typeof performance==='object'&&typeof performance.mark==='function')performance.mark('cer:entry-start');globalThis.__CER_STATIC_ENTRY__=true;globalThis.__CER_DSD_TAGS__=new Set(${serializedDsdTags});return import(${serializedSrc}).catch(function(error){console.error('[cer-app] Failed to start client entry:',error)})}`;
|
|
75
|
+
return `<link rel="modulepreload" crossorigin href="${escapedHref}"><script data-cer-deferred-entry>(function(start){var observer=null,fallback=null,started=false,guarding=true,queued=[];function capture(event){if(!guarding||event.defaultPrevented)return;var path=typeof event.composedPath==='function'?event.composedPath():[];if(!path.some(function(node){return node&&typeof node.localName==='string'&&node.localName.indexOf('-')>0}))return;event.preventDefault();event.stopImmediatePropagation();queued.push({target:path[0]||event.target,event:event})}function replay(){guarding=false;document.removeEventListener('click',capture,true);queued.splice(0).forEach(function(item){var event=item.event,target=item.target,init={bubbles:true,composed:true,cancelable:true},clone;if(typeof KeyboardEvent==='function'&&event instanceof KeyboardEvent){clone=new KeyboardEvent(event.type,Object.assign(init,{key:event.key,code:event.code,ctrlKey:event.ctrlKey,metaKey:event.metaKey,shiftKey:event.shiftKey,altKey:event.altKey,repeat:event.repeat}))}else{clone=new MouseEvent(event.type,Object.assign(init,{button:event.button,buttons:event.buttons,clientX:event.clientX,clientY:event.clientY,ctrlKey:event.ctrlKey,metaKey:event.metaKey,shiftKey:event.shiftKey,altKey:event.altKey}))}if(target&&target.isConnected)target.dispatchEvent(clone)})}function ready(){var view=document.querySelector('cer-layout-view'),shell=view&&Array.prototype.find.call(view.children,function(element){return element.localName&&element.localName!=='script'});if(!shell||shell.hasAttribute('data-cer-hydrated')){replay();return}if(typeof MutationObserver!=='function'){setTimeout(replay,0);return}var readiness=new MutationObserver(function(){if(shell.hasAttribute('data-cer-hydrated')){readiness.disconnect();replay()}});readiness.observe(shell,{attributes:true,attributeFilter:['data-cer-hydrated']});setTimeout(function(){readiness.disconnect();replay()},1000)}function boot(){Promise.resolve(start()).then(ready,replay)}function run(){if(started)return;started=true;if(observer)observer.disconnect();if(fallback!==null)clearTimeout(fallback);setTimeout(boot,0)}function byFrame(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(function(){requestAnimationFrame(run)})})}else{run()}}document.addEventListener('click',capture,true);if(typeof PerformanceObserver==='function'){try{observer=new PerformanceObserver(function(list){if(list.getEntriesByName('first-contentful-paint').length)run()});fallback=setTimeout(run,1000);observer.observe({type:'paint',buffered:true})}catch(error){byFrame()}}else{byFrame()}})(${start})</script>`;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
const inlineSerializerSource = serializeForInlineScript
|
|
79
|
+
.toString()
|
|
80
|
+
.replace('serializeForInlineScript', '_serializeForInlineScript');
|
|
81
|
+
const dsdTagCollectorSource = collectDsdHostTags
|
|
82
|
+
.toString()
|
|
83
|
+
.replace('collectDsdHostTags', '_collectDsdHostTags');
|
|
84
|
+
const deferredEntrySource = deferEntryModulesForFirstPaint
|
|
85
|
+
.toString()
|
|
86
|
+
.replace('deferEntryModulesForFirstPaint', '_deferEntryModulesForFirstPaint')
|
|
87
|
+
.replaceAll('serializeForInlineScript', '_serializeForInlineScript');
|
|
14
88
|
export const ENTRY_SERVER_TEMPLATE = `// Server-side entry — AUTO-GENERATED by @jasonshimmy/vite-plugin-cer-app
|
|
15
89
|
import { readFileSync, existsSync } from 'node:fs'
|
|
16
90
|
import { dirname, join } from 'node:path'
|
|
@@ -25,12 +99,17 @@ import serverMiddleware from 'virtual:cer-server-middleware'
|
|
|
25
99
|
import { runtimeConfig, _runtimePrivateDefaults, _authSessionKey, _hooks } from 'virtual:cer-app-config'
|
|
26
100
|
import { registerBuiltinComponents, setDevMode } from '@jasonshimmy/custom-elements-runtime'
|
|
27
101
|
import { registerEntityMap, renderToStreamWithJITCSSDSD, DSD_POLYFILL_SCRIPT } from '@jasonshimmy/custom-elements-runtime/ssr'
|
|
102
|
+
import ssrConfig from 'virtual:cer-ssr-config'
|
|
28
103
|
import entitiesJson from '@jasonshimmy/custom-elements-runtime/entities.json'
|
|
29
104
|
import { initRouter } from '@jasonshimmy/custom-elements-runtime/router'
|
|
30
105
|
import { beginHeadCollection, endHeadCollection, serializeHeadTags, initRuntimeConfig, resolvePrivateConfig, useSession } from '@jasonshimmy/vite-plugin-cer-app/composables'
|
|
31
106
|
import { errorTag } from 'virtual:cer-error'
|
|
32
107
|
import { createIsrHandler } from '@jasonshimmy/vite-plugin-cer-app/isr'
|
|
33
108
|
|
|
109
|
+
${inlineSerializerSource}
|
|
110
|
+
${dsdTagCollectorSource}
|
|
111
|
+
${deferredEntrySource}
|
|
112
|
+
|
|
34
113
|
const _cerProcess = (globalThis).process
|
|
35
114
|
const _cerNodeEnv = _cerProcess?.env?.NODE_ENV ?? _cerProcess?.env?.MODE
|
|
36
115
|
const _cerRuntimeDev =
|
|
@@ -177,7 +256,10 @@ if (!_clientTemplate) {
|
|
|
177
256
|
|
|
178
257
|
// Merge the SSR rendered body with the Vite client shell so the final page
|
|
179
258
|
// contains both pre-rendered DSD content and the client bundle scripts.
|
|
180
|
-
function _mergeWithClientTemplate(ssrHtml, clientTemplate) {
|
|
259
|
+
function _mergeWithClientTemplate(ssrHtml, clientTemplate, renderedPath, hydrationStrategy = 'load', dsdTags = []) {
|
|
260
|
+
if (hydrationStrategy === 'none') {
|
|
261
|
+
clientTemplate = _deferEntryModulesForFirstPaint(clientTemplate, dsdTags)
|
|
262
|
+
}
|
|
181
263
|
const headTag = '<head>', headCloseTag = '</head>'
|
|
182
264
|
const bodyTag = '<body>', bodyCloseTag = '</body>'
|
|
183
265
|
const headStart = ssrHtml.indexOf(headTag)
|
|
@@ -211,7 +293,9 @@ function _mergeWithClientTemplate(ssrHtml, clientTemplate) {
|
|
|
211
293
|
let merged = clientTemplate
|
|
212
294
|
if (merged.includes('<cer-layout-view></cer-layout-view>')) {
|
|
213
295
|
merged = merged.replace('<cer-layout-view></cer-layout-view>',
|
|
214
|
-
'<cer-layout-view
|
|
296
|
+
'<cer-layout-view data-cer-route="' + encodeURIComponent(renderedPath) +
|
|
297
|
+
'" data-cer-route-hydrate="' + hydrationStrategy + '">' +
|
|
298
|
+
ssrBodyContent + '</cer-layout-view>')
|
|
215
299
|
} else if (merged.includes('<div id="app"></div>')) {
|
|
216
300
|
merged = merged.replace('<div id="app"></div>',
|
|
217
301
|
'<div id="app">' + ssrBodyContent + '</div>')
|
|
@@ -239,6 +323,7 @@ const _prepareRequest = async (req) => {
|
|
|
239
323
|
const router = initRouter({ routes, initialUrl: req.url ?? '/' })
|
|
240
324
|
const current = router.getCurrent()
|
|
241
325
|
const { route, params } = router.matchRoute(current.path)
|
|
326
|
+
const hydrationStrategy = route?.meta?.hydrate ?? 'load'
|
|
242
327
|
|
|
243
328
|
// Store the current route info so useRoute() can read it synchronously
|
|
244
329
|
// from any layout or component during this render pass.
|
|
@@ -271,7 +356,7 @@ const _prepareRequest = async (req) => {
|
|
|
271
356
|
const notFoundVnode = notFoundErrorTag
|
|
272
357
|
? { tag: notFoundErrorTag, props: { attrs: { error: 'Not Found', status: '404' } }, children: [] }
|
|
273
358
|
: { tag: 'div', props: {}, children: [] }
|
|
274
|
-
return { vnode: notFoundVnode, router, head: undefined, status: 404 }
|
|
359
|
+
return { vnode: notFoundVnode, router, head: undefined, status: 404, hydrationStrategy: 'load' }
|
|
275
360
|
}
|
|
276
361
|
|
|
277
362
|
// Run the loader before creating the page vnode so we can pass its
|
|
@@ -288,7 +373,12 @@ const _prepareRequest = async (req) => {
|
|
|
288
373
|
// the async context *inside* this awaited function, not the outer
|
|
289
374
|
// handler's continuation where renderToStreamWithJITCSSDSD runs.
|
|
290
375
|
loaderData = data
|
|
291
|
-
|
|
376
|
+
// A hydrate:none subtree never executes client component logic (the
|
|
377
|
+
// runtime also suppresses all of its shadow descendants), so shipping
|
|
378
|
+
// a duplicate loader payload cannot be observed and only delays paint.
|
|
379
|
+
if (hydrationStrategy !== 'none') {
|
|
380
|
+
head = \`<script>window.__CER_DATA__ = \${_serializeForInlineScript(data)}</script>\`
|
|
381
|
+
}
|
|
292
382
|
// Expose primitive loader values as element attributes so useProps()
|
|
293
383
|
// can read them. Complex objects are only accessible via usePageData().
|
|
294
384
|
loaderAttrs = Object.fromEntries(
|
|
@@ -297,7 +387,17 @@ const _prepareRequest = async (req) => {
|
|
|
297
387
|
}
|
|
298
388
|
}
|
|
299
389
|
|
|
300
|
-
pageVnode = {
|
|
390
|
+
pageVnode = {
|
|
391
|
+
tag: pageTag,
|
|
392
|
+
props: {
|
|
393
|
+
attrs: {
|
|
394
|
+
...params,
|
|
395
|
+
...loaderAttrs,
|
|
396
|
+
...(hydrationStrategy === 'none' ? { 'data-cer-hydrate': 'none' } : {}),
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
children: [],
|
|
400
|
+
}
|
|
301
401
|
} catch (err) {
|
|
302
402
|
// Loader threw — render the error page server-side if app/error.ts exists.
|
|
303
403
|
const status = (err && typeof err === 'object' && 'status' in err && typeof err.status === 'number')
|
|
@@ -315,7 +415,7 @@ const _prepareRequest = async (req) => {
|
|
|
315
415
|
const errVnode = effectiveErrorTag
|
|
316
416
|
? { tag: effectiveErrorTag, props: { attrs: { error: message, status: String(status) } }, children: [] }
|
|
317
417
|
: { tag: 'div', props: {}, children: [] }
|
|
318
|
-
return { vnode: errVnode, router, head: undefined, status }
|
|
418
|
+
return { vnode: errVnode, router, head: undefined, status, hydrationStrategy: 'load' }
|
|
319
419
|
}
|
|
320
420
|
}
|
|
321
421
|
|
|
@@ -335,7 +435,7 @@ const _prepareRequest = async (req) => {
|
|
|
335
435
|
// catch-all page ([...all].ts) may successfully resolve real content paths
|
|
336
436
|
// and should stay 200 unless its loader explicitly throws a 404.
|
|
337
437
|
const isNotFoundRoute = route?.meta?._cerNotFound === true
|
|
338
|
-
return { vnode, router, head, status: isNotFoundRoute ? 404 : null, loaderData }
|
|
438
|
+
return { vnode, router, head, status: isNotFoundRoute ? 404 : null, loaderData, hydrationStrategy }
|
|
339
439
|
}
|
|
340
440
|
|
|
341
441
|
export const handler = async (req, res) => {
|
|
@@ -356,7 +456,7 @@ export const handler = async (req, res) => {
|
|
|
356
456
|
try { _authUser = await useSession({ name: _authSessionKey }).get() } catch { /* no session secret */ }
|
|
357
457
|
}
|
|
358
458
|
await _cerAuthStore.run(_authUser, async () => {
|
|
359
|
-
const { vnode, router, head, status, loaderData } = await _prepareRequest(req)
|
|
459
|
+
const { vnode, router, head, status, loaderData, hydrationStrategy = 'load' } = await _prepareRequest(req)
|
|
360
460
|
if (status != null) res.statusCode = status
|
|
361
461
|
|
|
362
462
|
let _headCollectionOpen = false
|
|
@@ -382,7 +482,11 @@ export const handler = async (req, res) => {
|
|
|
382
482
|
// scripts may not execute.
|
|
383
483
|
// The first chunk from the stream is the full synchronous render. Subsequent
|
|
384
484
|
// chunks are async component swap scripts streamed as they resolve.
|
|
385
|
-
const stream = renderToStreamWithJITCSSDSD(vnode, {
|
|
485
|
+
const stream = renderToStreamWithJITCSSDSD(vnode, {
|
|
486
|
+
dsdPolyfill: false,
|
|
487
|
+
router,
|
|
488
|
+
jit: ssrConfig?.jit,
|
|
489
|
+
})
|
|
386
490
|
|
|
387
491
|
// Collect head tags synchronously — all useHead() calls have already fired
|
|
388
492
|
// inside the stream constructor's start() before it returned.
|
|
@@ -393,16 +497,19 @@ export const handler = async (req, res) => {
|
|
|
393
497
|
|
|
394
498
|
// Read the first (synchronous) chunk — rejects if the sync render failed.
|
|
395
499
|
const { value: firstChunk = '' } = await reader.read()
|
|
500
|
+
const _dsdTags = hydrationStrategy === 'none'
|
|
501
|
+
? _collectDsdHostTags(firstChunk)
|
|
502
|
+
: []
|
|
396
503
|
|
|
397
504
|
// Serialise useFetch() results collected during loader execution.
|
|
398
505
|
const _fetchObj = Object.fromEntries(_fetchMap)
|
|
399
506
|
const _fetchScript = Object.keys(_fetchObj).length > 0
|
|
400
|
-
? \`<script>window.__CER_FETCH_DATA__ = \${
|
|
507
|
+
? \`<script>window.__CER_FETCH_DATA__ = \${_serializeForInlineScript(_fetchObj)}</script>\`
|
|
401
508
|
: ''
|
|
402
509
|
|
|
403
510
|
// Serialise the auth user for client-side hydration via useAuth().
|
|
404
511
|
const _authScript = _authUser
|
|
405
|
-
? \`<script>window.__CER_AUTH_USER__ = \${
|
|
512
|
+
? \`<script>window.__CER_AUTH_USER__ = \${_serializeForInlineScript(_authUser)}</script>\`
|
|
406
513
|
: ''
|
|
407
514
|
|
|
408
515
|
// Serialise useState() values for client-side hydration.
|
|
@@ -415,7 +522,7 @@ export const handler = async (req, res) => {
|
|
|
415
522
|
if (_stateMap && _stateMap.size > 0) {
|
|
416
523
|
const _stateObj = {}
|
|
417
524
|
for (const [k, v] of _stateMap) { _stateObj[k] = v.value }
|
|
418
|
-
_stateScript = \`<script>window.__CER_STATE_INIT__ = \${
|
|
525
|
+
_stateScript = \`<script>window.__CER_STATE_INIT__ = \${_serializeForInlineScript(_stateObj)}</script>\`
|
|
419
526
|
}
|
|
420
527
|
|
|
421
528
|
// Merge loader data script + useHead() tags + fetch/auth/state hydration scripts.
|
|
@@ -432,7 +539,7 @@ export const handler = async (req, res) => {
|
|
|
432
539
|
// (/@vite/client, HMR) are included in every SSR response.
|
|
433
540
|
const _resolvedClientTemplate = (globalThis).__CER_CLIENT_TEMPLATE__ ?? _clientTemplate
|
|
434
541
|
const merged = _resolvedClientTemplate
|
|
435
|
-
? _mergeWithClientTemplate(ssrHtml, _resolvedClientTemplate)
|
|
542
|
+
? _mergeWithClientTemplate(ssrHtml, _resolvedClientTemplate, _requestPath, hydrationStrategy, _dsdTags)
|
|
436
543
|
: ssrHtml
|
|
437
544
|
|
|
438
545
|
// Split at </body> so async swap scripts and the DSD polyfill can be streamed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-server-template.js","sourceRoot":"","sources":["../../src/runtime/entry-server-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"entry-server-template.js","sourceRoot":"","sources":["../../src/runtime/entry-server-template.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import type { RouterConfig } from '@jasonshimmy/custom-elements-runtime/router';
|
|
2
2
|
import type { IncomingMessage } from 'node:http';
|
|
3
|
+
/** A package-provided bundle of component resolution, global imports, and Vite plugins. */
|
|
4
|
+
export interface CerAppIntegration {
|
|
5
|
+
/** Stable name used in diagnostics. */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Resolve a rendered custom-element tag to its side-effect registration module. */
|
|
8
|
+
componentResolver?: (tag: string) => string | undefined;
|
|
9
|
+
/** Imports that must run once in the generated client entry (for example global CSS). */
|
|
10
|
+
globalImports?: readonly string[];
|
|
11
|
+
/** Build plugins required by the integration. */
|
|
12
|
+
plugins?: import('vite').Plugin[];
|
|
13
|
+
}
|
|
3
14
|
/**
|
|
4
15
|
* Context passed to the `onError` hook.
|
|
5
16
|
* `type` indicates which layer the error originated from so reporters can
|
|
@@ -120,17 +131,31 @@ export interface SsgConfig {
|
|
|
120
131
|
* - `string[]` — explicit list of paths (e.g. `['/about', '/contact']`).
|
|
121
132
|
*/
|
|
122
133
|
routes?: 'auto' | string[];
|
|
123
|
-
/** Maximum number of pages rendered in parallel. Defaults to `
|
|
134
|
+
/** Maximum number of pages rendered in parallel. Defaults to `4`. Increase for faster SSG builds at the cost of higher memory usage. */
|
|
124
135
|
concurrency?: number;
|
|
125
136
|
/** When `true`, unenumerated routes fall back to SSR at runtime instead of returning 404. */
|
|
126
137
|
fallback?: boolean;
|
|
138
|
+
/** Fail the build when any route cannot be rendered. Defaults to `true`; set to `false` only for intentionally partial output. */
|
|
139
|
+
failOnError?: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Inline root-relative CSS assets into each generated HTML document.
|
|
142
|
+
*
|
|
143
|
+
* - `false` (default) keeps stylesheet links unchanged.
|
|
144
|
+
* - `true` inlines every root-relative stylesheet.
|
|
145
|
+
* - A positive number inlines only stylesheets at or below that UTF-8 byte size.
|
|
146
|
+
*
|
|
147
|
+
* This removes a render-blocking request for small critical stylesheets at the
|
|
148
|
+
* cost of repeating their bytes in each page. Inline styles also require an
|
|
149
|
+
* appropriate Content Security Policy (`style-src`) when CSP is enabled.
|
|
150
|
+
*/
|
|
151
|
+
inlineStylesheets?: boolean | number;
|
|
127
152
|
}
|
|
128
153
|
/** JIT (Just-In-Time) CSS configuration for shadow-DOM style injection. */
|
|
129
154
|
export interface JitCssConfig {
|
|
130
155
|
/** Additional glob patterns for content files scanned by the JIT CSS engine. */
|
|
131
156
|
content?: string[];
|
|
132
|
-
/** Enable
|
|
133
|
-
extendedColors?: boolean;
|
|
157
|
+
/** Enable every extended color family or list only the families to retain. Defaults to `false`. */
|
|
158
|
+
extendedColors?: boolean | string[];
|
|
134
159
|
/**
|
|
135
160
|
* Project-specific color families registered in the JIT CSS engine at both
|
|
136
161
|
* build time and runtime. Each key is a color family name (e.g. `brand`);
|
|
@@ -251,6 +276,8 @@ export interface CerAppConfig {
|
|
|
251
276
|
router?: Pick<RouterConfig, 'base' | 'scrollToFragment'>;
|
|
252
277
|
jitCss?: JitCssConfig;
|
|
253
278
|
autoImports?: AutoImportsConfig;
|
|
279
|
+
/** UI/framework integrations composed into generated entries and component code splitting. */
|
|
280
|
+
integrations?: CerAppIntegration[];
|
|
254
281
|
port?: number;
|
|
255
282
|
/**
|
|
256
283
|
* Runtime configuration accessible via `useRuntimeConfig()`.
|
|
@@ -278,8 +305,22 @@ export interface CerAppConfig {
|
|
|
278
305
|
* ```
|
|
279
306
|
*
|
|
280
307
|
* You can also run the built-in adapters independently with `cer-app adapt --platform <name>`.
|
|
281
|
-
|
|
308
|
+
*/
|
|
282
309
|
adapter?: 'vercel' | 'netlify' | 'cloudflare' | ((root: string) => Promise<void>);
|
|
310
|
+
/**
|
|
311
|
+
* Additional standalone Vite plugins to include alongside the built-in cerApp plugins.
|
|
312
|
+
* UI libraries that also resolve components or add global entry imports should
|
|
313
|
+
* use `integrations` instead.
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* ```ts
|
|
317
|
+
* import inspect from 'vite-plugin-inspect'
|
|
318
|
+
* export default defineConfig({
|
|
319
|
+
* plugins: [inspect()],
|
|
320
|
+
* })
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
plugins?: import('vite').Plugin[];
|
|
283
324
|
/**
|
|
284
325
|
* Authentication configuration.
|
|
285
326
|
* Enables OAuth login flows via `useAuth()` and auto-generates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -6,7 +6,7 @@ import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
|
6
6
|
* - `false` — block navigation
|
|
7
7
|
* - `string` — redirect to that path
|
|
8
8
|
*/
|
|
9
|
-
export type GuardResult = boolean | string | Promise<boolean | string>;
|
|
9
|
+
export type GuardResult = boolean | string | void | Promise<boolean | string | void>;
|
|
10
10
|
/**
|
|
11
11
|
* Route middleware function.
|
|
12
12
|
*
|
|
@@ -32,7 +32,7 @@ export type GuardResult = boolean | string | Promise<boolean | string>;
|
|
|
32
32
|
* })
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
export type MiddlewareFn = (to: RouteState, from: RouteState | null, next: () => Promise<void>) => GuardResult
|
|
35
|
+
export type MiddlewareFn = (to: RouteState, from: RouteState | null, next: () => Promise<void>) => GuardResult;
|
|
36
36
|
/**
|
|
37
37
|
* Server middleware function. Receives the raw Node.js `req`/`res` pair and a `next`
|
|
38
38
|
* callback. Call `next()` to pass control to the next middleware in the chain,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/types/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/types/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,CAAA;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KACtB,WAAW,CAAA;AAEhB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,KAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jasonshimmy/vite-plugin-cer-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "Nuxt-style meta-framework for @jasonshimmy/custom-elements-runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -19,28 +19,30 @@
|
|
|
19
19
|
"url": "git+https://github.com/jshimkoski/vite-plugin-cer-app.git"
|
|
20
20
|
},
|
|
21
21
|
"homepage": "https://github.com/jshimkoski/vite-plugin-cer-app#readme",
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
22
25
|
"sideEffects": [
|
|
23
|
-
"**/*.css"
|
|
24
|
-
"e2e/cypress/support/*.ts"
|
|
26
|
+
"**/*.css"
|
|
25
27
|
],
|
|
26
|
-
"main": "dist/index.
|
|
28
|
+
"main": "dist/index.js",
|
|
27
29
|
"module": "dist/index.js",
|
|
28
30
|
"types": "dist/index.d.ts",
|
|
29
31
|
"exports": {
|
|
30
32
|
".": {
|
|
33
|
+
"types": "./dist/index.d.ts",
|
|
31
34
|
"import": "./dist/index.js",
|
|
32
|
-
"
|
|
33
|
-
"types": "./dist/index.d.ts"
|
|
35
|
+
"default": "./dist/index.js"
|
|
34
36
|
},
|
|
35
37
|
"./composables": {
|
|
38
|
+
"types": "./dist/runtime/composables/index.d.ts",
|
|
36
39
|
"import": "./dist/runtime/composables/index.js",
|
|
37
|
-
"
|
|
38
|
-
"types": "./dist/runtime/composables/index.d.ts"
|
|
40
|
+
"default": "./dist/runtime/composables/index.js"
|
|
39
41
|
},
|
|
40
42
|
"./types": {
|
|
43
|
+
"types": "./dist/types/index.d.ts",
|
|
41
44
|
"import": "./dist/types/index.js",
|
|
42
|
-
"
|
|
43
|
-
"types": "./dist/types/index.d.ts"
|
|
45
|
+
"default": "./dist/types/index.js"
|
|
44
46
|
},
|
|
45
47
|
"./isr": {
|
|
46
48
|
"import": "./dist/runtime/isr-handler.js",
|
|
@@ -57,7 +59,8 @@
|
|
|
57
59
|
},
|
|
58
60
|
"scripts": {
|
|
59
61
|
"validate": "npm run lint && npm test && npm run build && npm run e2e",
|
|
60
|
-
"
|
|
62
|
+
"prebuild": "node scripts/clean-dist.mjs",
|
|
63
|
+
"build": "tsc -p tsconfig.build.json && node scripts/copy-templates.mjs",
|
|
61
64
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
62
65
|
"lint": "eslint",
|
|
63
66
|
"test": "vitest run",
|
|
@@ -73,10 +76,10 @@
|
|
|
73
76
|
"e2e:serve:ssr": "node dist/cli/index.js preview --root e2e/kitchen-sink --port 4175 --ssr",
|
|
74
77
|
"e2e:serve:ssg": "node dist/cli/index.js preview --root e2e/kitchen-sink --port 4176",
|
|
75
78
|
"e2e:serve:dev": "node dist/cli/index.js dev --root e2e/kitchen-sink --port 4177 --mode ssr",
|
|
76
|
-
"e2e:run:spa": "cypress run --config baseUrl=http://localhost:4174 --
|
|
77
|
-
"e2e:run:ssr": "cypress run --config baseUrl=http://localhost:4175 --
|
|
78
|
-
"e2e:run:ssg": "cypress run --config baseUrl=http://localhost:4176 --
|
|
79
|
-
"e2e:run:dev": "cypress run --config baseUrl=http://localhost:4177 --
|
|
79
|
+
"e2e:run:spa": "cypress run --config baseUrl=http://localhost:4174 --expose mode=spa",
|
|
80
|
+
"e2e:run:ssr": "cypress run --config baseUrl=http://localhost:4175 --expose mode=ssr",
|
|
81
|
+
"e2e:run:ssg": "cypress run --config baseUrl=http://localhost:4176 --expose mode=ssg",
|
|
82
|
+
"e2e:run:dev": "cypress run --config baseUrl=http://localhost:4177 --expose mode=dev",
|
|
80
83
|
"e2e:spa": "npm run e2e:build:spa && start-server-and-test e2e:serve:spa http://localhost:4174 e2e:run:spa",
|
|
81
84
|
"e2e:ssr": "npm run e2e:build:ssr && start-server-and-test e2e:serve:ssr http://localhost:4175 e2e:run:ssr",
|
|
82
85
|
"e2e:ssg": "npm run e2e:build:ssg && start-server-and-test e2e:serve:ssg http://localhost:4176 e2e:run:ssg",
|
|
@@ -85,20 +88,20 @@
|
|
|
85
88
|
"cypress:open": "cypress open"
|
|
86
89
|
},
|
|
87
90
|
"peerDependencies": {
|
|
88
|
-
"@jasonshimmy/custom-elements-runtime": ">=3.
|
|
91
|
+
"@jasonshimmy/custom-elements-runtime": ">=3.9.0",
|
|
89
92
|
"vite": ">=5.0.0"
|
|
90
93
|
},
|
|
91
94
|
"dependencies": {
|
|
92
95
|
"commander": "^14.0.3",
|
|
93
96
|
"fast-glob": "^3.3.3",
|
|
94
|
-
"gray-matter": "^4.0.3",
|
|
95
97
|
"magic-string": "^0.30.21",
|
|
96
98
|
"marked": "^18.0.0",
|
|
97
99
|
"minisearch": "^7.2.0",
|
|
98
|
-
"pathe": "^2.0.3"
|
|
100
|
+
"pathe": "^2.0.3",
|
|
101
|
+
"yaml": "^2.9.0"
|
|
99
102
|
},
|
|
100
103
|
"devDependencies": {
|
|
101
|
-
"@jasonshimmy/custom-elements-runtime": "^3.
|
|
104
|
+
"@jasonshimmy/custom-elements-runtime": "^3.9.0",
|
|
102
105
|
"@types/node": "^25.6.0",
|
|
103
106
|
"@vitest/coverage-v8": "^4.1.2",
|
|
104
107
|
"cypress": "^15.13.1",
|