@jasonshimmy/vite-plugin-cer-app 0.14.0 → 0.15.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/CHANGELOG.md +10 -0
- package/commits.txt +2 -1
- package/dist/plugin/dts-generator.d.ts.map +1 -1
- package/dist/plugin/dts-generator.js +7 -1
- package/dist/plugin/dts-generator.js.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +16 -9
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/transforms/auto-import.js +2 -2
- package/dist/plugin/transforms/auto-import.js.map +1 -1
- 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 +6 -0
- package/dist/runtime/app-template.js.map +1 -1
- package/dist/runtime/composables/index.d.ts +1 -0
- package/dist/runtime/composables/index.d.ts.map +1 -1
- package/dist/runtime/composables/index.js +1 -0
- package/dist/runtime/composables/index.js.map +1 -1
- package/dist/runtime/composables/use-state.d.ts +50 -0
- package/dist/runtime/composables/use-state.d.ts.map +1 -0
- package/dist/runtime/composables/use-state.js +87 -0
- package/dist/runtime/composables/use-state.js.map +1 -0
- package/dist/runtime/entry-server-template.d.ts +1 -1
- package/dist/runtime/entry-server-template.d.ts.map +1 -1
- package/dist/runtime/entry-server-template.js +23 -2
- package/dist/runtime/entry-server-template.js.map +1 -1
- package/docs/composables.md +125 -0
- package/docs/plugins.md +1 -2
- package/docs/routing.md +1 -1
- package/docs/testing.md +3 -7
- package/docs/use-fetch.md +1 -1
- package/e2e/cypress/e2e/data.cy.ts +31 -8
- package/e2e/cypress/e2e/use-state.cy.ts +138 -0
- package/e2e/cypress/tsconfig.json +1 -1
- package/e2e/kitchen-sink/app/layouts/default.ts +4 -0
- package/e2e/kitchen-sink/app/pages/use-state-test.ts +37 -0
- package/package.json +7 -7
- package/src/__tests__/plugin/dts-generator.test.ts +35 -0
- package/src/__tests__/plugin/transforms/auto-import.test.ts +22 -0
- package/src/__tests__/runtime/app-template.test.ts +64 -0
- package/src/__tests__/runtime/use-state.test.ts +340 -0
- package/src/plugin/dts-generator.ts +7 -1
- package/src/plugin/index.ts +12 -9
- package/src/plugin/transforms/auto-import.ts +2 -2
- package/src/runtime/app-template.ts +6 -0
- package/src/runtime/composables/index.ts +1 -0
- package/src/runtime/composables/use-state.ts +92 -0
- package/src/runtime/entry-server-template.ts +23 -2
- package/IMPLEMENTATION_PLAN.md +0 -437
- package/ROADMAP.md +0 -342
- package/error.log +0 -46
- package/issues.md +0 -34
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
|
+
## [v0.15.0] - 2026-03-26
|
|
5
|
+
|
|
6
|
+
- feat: implement useState composable for globally-keyed reactive state management (f8aae38)
|
|
7
|
+
- docs: update inaccuracies (69b807d)
|
|
8
|
+
|
|
9
|
+
## [v0.14.1] - 2026-03-26
|
|
10
|
+
|
|
11
|
+
- fix: downgrade typescript (0278d24)
|
|
12
|
+
- fix: add missing dts definitions for composables chore: update dependencies and improve type declarations (546c99c)
|
|
13
|
+
|
|
4
14
|
## [v0.14.0] - 2026-03-25
|
|
5
15
|
|
|
6
16
|
- feat: add programmatic navigation and route handling (37a583b)
|
package/commits.txt
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
- feat:
|
|
1
|
+
- feat: implement useState composable for globally-keyed reactive state management (f8aae38)
|
|
2
|
+
- docs: update inaccuracies (69b807d)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-generator.d.ts","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgCrE;AAqCD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiBhG;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"dts-generator.d.ts","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgCrE;AAqCD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiBhG;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAkDjB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -69,7 +69,7 @@ const RUNTIME_GLOBALS = [
|
|
|
69
69
|
'useTeleport',
|
|
70
70
|
];
|
|
71
71
|
const DIRECTIVE_GLOBALS = ['when', 'each', 'match', 'anchorBlock'];
|
|
72
|
-
const FRAMEWORK_GLOBALS = ['useHead', 'usePageData', 'useInject', 'useRuntimeConfig', 'defineMiddleware', 'defineServerMiddleware', 'useSeoMeta', 'useCookie', 'useSession'];
|
|
72
|
+
const FRAMEWORK_GLOBALS = ['useHead', 'usePageData', 'useInject', 'useRuntimeConfig', 'defineMiddleware', 'defineServerMiddleware', 'useSeoMeta', 'useCookie', 'useSession', 'useAuth', 'useFetch', 'useRoute', 'navigateTo', 'useState'];
|
|
73
73
|
/**
|
|
74
74
|
* Scans a composables directory and returns a map of export name → file path.
|
|
75
75
|
* Uses a simple regex to find exported identifiers.
|
|
@@ -128,6 +128,10 @@ export async function generateAutoImportDts(root, composablesDir, composableExpo
|
|
|
128
128
|
lines.push(' // Consumed once by usePageData() during client hydration.');
|
|
129
129
|
lines.push(' // eslint-disable-next-line @typescript-eslint/no-explicit-any');
|
|
130
130
|
lines.push(' var __CER_DATA__: any');
|
|
131
|
+
lines.push(' // SSR useState() values injected as window.__CER_STATE_INIT__ by the server.');
|
|
132
|
+
lines.push(' // Pre-populates the client useState() Map on first use.');
|
|
133
|
+
lines.push(' // eslint-disable-next-line @typescript-eslint/no-explicit-any');
|
|
134
|
+
lines.push(' var __CER_STATE_INIT__: any');
|
|
131
135
|
lines.push('}');
|
|
132
136
|
lines.push('');
|
|
133
137
|
return lines.join('\n');
|
|
@@ -193,6 +197,8 @@ export async function generateVirtualModuleDts(root, composablesDir, composableE
|
|
|
193
197
|
lines.push(` export const runtimeConfig: { public: RuntimePublicConfig }`);
|
|
194
198
|
lines.push(` /** Server-only — present only in the SSR bundle. Always \`undefined\` in the client bundle. */`);
|
|
195
199
|
lines.push(` export const _runtimePrivateDefaults: RuntimePrivateConfig | undefined`);
|
|
200
|
+
lines.push(` /** Cookie/session key for the auth session. Derived from the app name. */`);
|
|
201
|
+
lines.push(` export const _authSessionKey: string`);
|
|
196
202
|
lines.push(` export default appConfig`);
|
|
197
203
|
lines.push(`}`);
|
|
198
204
|
lines.push('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-generator.js","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAc;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,0EAA0E;IAC1E,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjE,MAAM,KAAK,GAA6B;QACtC,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC;QACtB,WAAW,EAAE,CAAC,GAAG,MAAM,UAAU,CAAC;QAClC,aAAa,EAAE,CAAC,GAAG,MAAM,YAAY,CAAC;QACtC,gBAAgB,EAAE,CAAC,GAAG,MAAM,eAAe,CAAC;QAC5C,iBAAiB,EAAE,CAAC,GAAG,MAAM,gBAAgB,CAAC;QAC9C,aAAa,EAAE,CAAC,GAAG,MAAM,YAAY,CAAC;QACtC,gBAAgB,EAAE,CAAC,GAAG,MAAM,eAAe,CAAC;QAC5C,YAAY,EAAE,CAAC,GAAG,MAAM,WAAW,CAAC;KACrC,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,eAAe,EAAE,EAAE,KAAK,EAAE;QAC1B,OAAO,EAAE;YACP,gBAAgB;YAChB,mBAAmB;YACnB,WAAW;YACX,aAAa;SACd;QACD,OAAO,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC;KACxC,CAAA;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;IACxD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,WAAW;IACX,MAAM;IACN,KAAK;IACL,KAAK;IACL,UAAU;IACV,OAAO;IACP,aAAa;IACb,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,SAAS;IACT,QAAQ;IACR,kBAAkB;IAClB,UAAU;IACV,aAAa;IACb,4BAA4B;IAC5B,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;IAChB,aAAa;CACd,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;AAElE,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"dts-generator.js","sourceRoot":"","sources":["../../src/plugin/dts-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AA+CxD;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,GAAE,MAAsB,GAAG,iBAAiB,CA8CvG;AAwGD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,UAAU,GAAE,YAAiB,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AA+CxD;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,GAAE,MAAsB,GAAG,iBAAiB,CA8CvG;AAwGD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,UAAU,GAAE,YAAiB,GAAG,MAAM,EAAE,CAoN9D"}
|
package/dist/plugin/index.js
CHANGED
|
@@ -345,16 +345,23 @@ export function cerApp(userConfig = {}) {
|
|
|
345
345
|
await writeAutoImportDts(config.root, config.composablesDir, composableExports);
|
|
346
346
|
writeTsconfigPaths(config.root, config.srcDir);
|
|
347
347
|
// Warm the virtual module cache.
|
|
348
|
-
// virtual:cer-app-config is cached under separate :client/:ssr keys
|
|
349
|
-
//
|
|
350
|
-
//
|
|
348
|
+
// virtual:cer-app-config is cached under separate :client/:ssr keys because
|
|
349
|
+
// the SSR variant includes _runtimePrivateDefaults (private env var defaults)
|
|
350
|
+
// that must never appear in the client bundle. Warm both variants here so
|
|
351
|
+
// neither the client build nor the SSR build incurs a cache miss on first load.
|
|
351
352
|
for (const resolvedId of Object.values(RESOLVED_IDS)) {
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
353
|
+
if (resolvedId === RESOLVED_IDS.appConfig) {
|
|
354
|
+
const clientCode = await generateVirtualModule(resolvedId, config, false);
|
|
355
|
+
if (clientCode !== null)
|
|
356
|
+
moduleCache.set(`${resolvedId}:client`, clientCode);
|
|
357
|
+
const ssrCode = await generateVirtualModule(resolvedId, config, true);
|
|
358
|
+
if (ssrCode !== null)
|
|
359
|
+
moduleCache.set(`${resolvedId}:ssr`, ssrCode);
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
const code = await generateVirtualModule(resolvedId, config);
|
|
363
|
+
if (code !== null)
|
|
364
|
+
moduleCache.set(resolvedId, code);
|
|
358
365
|
}
|
|
359
366
|
}
|
|
360
367
|
},
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import MagicString from 'magic-string';
|
|
|
2
2
|
import { normalize } from 'pathe';
|
|
3
3
|
const RUNTIME_IMPORTS = `import { component, html, css, ref, computed, watch, watchEffect, useProps, useEmit, useOnConnected, useOnDisconnected, useOnAttributeChanged, useOnError, useStyle, useDesignTokens, useGlobalStyle, useExpose, useSlots, provide, inject, createComposable, nextTick, defineModel, getCurrentComponentContext, isReactiveState, unsafeHTML, decodeEntities, useTeleport } from '@jasonshimmy/custom-elements-runtime';`;
|
|
4
4
|
const DIRECTIVE_IMPORTS = `import { when, each, match, anchorBlock } from '@jasonshimmy/custom-elements-runtime/directives';`;
|
|
5
|
-
const FRAMEWORK_IMPORTS = `import { useHead, usePageData, useInject, useRuntimeConfig, defineMiddleware, defineServerMiddleware, useSeoMeta, useCookie, useSession, useAuth, useFetch, useRoute, navigateTo } from '@jasonshimmy/vite-plugin-cer-app/composables';`;
|
|
6
|
-
const FRAMEWORK_IDENTIFIERS = ['useHead', 'usePageData', 'useInject', 'useRuntimeConfig', 'defineMiddleware', 'defineServerMiddleware', 'useSeoMeta', 'useCookie', 'useSession', 'useAuth', 'useFetch', 'useRoute', 'navigateTo'];
|
|
5
|
+
const FRAMEWORK_IMPORTS = `import { useHead, usePageData, useInject, useRuntimeConfig, defineMiddleware, defineServerMiddleware, useSeoMeta, useCookie, useSession, useAuth, useFetch, useRoute, navigateTo, useState } from '@jasonshimmy/vite-plugin-cer-app/composables';`;
|
|
6
|
+
const FRAMEWORK_IDENTIFIERS = ['useHead', 'usePageData', 'useInject', 'useRuntimeConfig', 'defineMiddleware', 'defineServerMiddleware', 'useSeoMeta', 'useCookie', 'useSession', 'useAuth', 'useFetch', 'useRoute', 'navigateTo', 'useState'];
|
|
7
7
|
const RUNTIME_IDENTIFIERS = [
|
|
8
8
|
'component',
|
|
9
9
|
'html',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-import.js","sourceRoot":"","sources":["../../../src/plugin/transforms/auto-import.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAUjC,MAAM,eAAe,GAAG,0ZAA0Z,CAAA;AAElb,MAAM,iBAAiB,GAAG,mGAAmG,CAAA;AAE7H,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"auto-import.js","sourceRoot":"","sources":["../../../src/plugin/transforms/auto-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* automatically receive the latest bootstrap code on plugin update.
|
|
6
6
|
* This file is gitignored and should never be edited directly.
|
|
7
7
|
*/
|
|
8
|
-
export declare const APP_ENTRY_TEMPLATE = "// AUTO-GENERATED by @jasonshimmy/vite-plugin-cer-app \u2014 do not edit.\n// Regenerated automatically on every dev server start and build.\n\nimport '@jasonshimmy/custom-elements-runtime/css'\nimport 'virtual:cer-jit-css'\nimport 'virtual:cer-components'\nimport routes from 'virtual:cer-routes'\nimport layouts from 'virtual:cer-layouts'\nimport plugins from 'virtual:cer-plugins'\nimport { hasLoading, loadingTag } from 'virtual:cer-loading'\nimport { hasError, errorTag } from 'virtual:cer-error'\nimport { runtimeConfig } from 'virtual:cer-app-config'\nimport {\n component,\n ref,\n provide,\n useOnConnected,\n useOnDisconnected,\n registerBuiltinComponents,\n} from '@jasonshimmy/custom-elements-runtime'\nimport { initRouter } from '@jasonshimmy/custom-elements-runtime/router'\nimport { enableJITCSS } from '@jasonshimmy/custom-elements-runtime/jit-css'\nimport { initRuntimeConfig } from '@jasonshimmy/vite-plugin-cer-app/composables'\n\nregisterBuiltinComponents()\nenableJITCSS()\ninitRuntimeConfig(runtimeConfig)\n\nconst router = initRouter({ routes })\n\n// Expose the router globally so useRoute() and navigateTo() can access it\n// from any composable without circular imports.\n;(globalThis).__cerRouter = router\n\n// \u2500\u2500\u2500 Page loader state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Holds the pre-loaded page tag and loader-derived attrs for the current route.\n// Set by _loadPageForPath before every navigation so cer-layout-view can render\n// the page element directly with the correct attributes (enabling useProps()).\nlet _currentPageTag = null\nlet _currentPageAttrs = {}\n// The pathname this tag was loaded for \u2014 used to detect router-internal\n// redirects (e.g. middleware returning '/login') so cer-layout-view falls\n// back to <router-view> when the current route differs from what was pre-loaded.\nlet _currentPagePath = null\n\n// Pre-loads the page module for `path`, calls its loader if present, and\n// stores the results so cer-layout-view can pass them as element attributes.\nasync function _loadPageForPath(path) {\n try {\n const url = new URL(path, 'http://x')\n const query = Object.fromEntries(url.searchParams)\n const matched = router.matchRoute(url.pathname)\n const route = matched?.route\n if (!route?.load) {\n _currentPageTag = null\n _currentPageAttrs = {}\n _currentPagePath = url.pathname\n return\n }\n const mod = await route.load()\n _currentPageTag = mod.default ?? null\n _currentPagePath = url.pathname\n const params = matched.params ?? {}\n let loaderAttrs = { ...params }\n if (typeof mod.loader === 'function') {\n try {\n const data = await mod.loader({ params, query })\n if (data !== undefined && data !== null) {\n // Make loader data available via usePageData() for this navigation.\n ;(globalThis).__CER_DATA__ = data\n // Merge primitive values as element attributes so useProps() works.\n const primitives = Object.fromEntries(\n Object.entries(data).filter(([, v]) => v !== null && v !== undefined && typeof v !== 'object' && typeof v !== 'function')\n )\n loaderAttrs = { ...loaderAttrs, ...primitives }\n }\n } catch { /* loader errors are non-fatal client-side */ }\n }\n _currentPageAttrs = loaderAttrs\n } catch {\n _currentPageTag = null\n _currentPageAttrs = {}\n _currentPagePath = null\n }\n}\n\n// \u2500\u2500\u2500 Navigation state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst isNavigating = ref(false)\nconst currentError = ref(null)\n\nconst resetError = () => {\n currentError.value = null\n void router.replace(router.getCurrent().path)\n}\n;(globalThis).resetError = resetError\n\nconst _push = router.push.bind(router)\nconst _replace = router.replace.bind(router)\n\nrouter.push = async (path) => {\n isNavigating.value = true\n currentError.value = null\n try {\n await _loadPageForPath(path)\n await _push(path)\n } catch (err) {\n currentError.value = err instanceof Error ? err.message : String(err)\n } finally {\n isNavigating.value = false\n }\n}\n\nrouter.replace = async (path) => {\n isNavigating.value = true\n currentError.value = null\n try {\n await _loadPageForPath(path)\n await _replace(path)\n } catch (err) {\n currentError.value = err instanceof Error ? err.message : String(err)\n } finally {\n isNavigating.value = false\n }\n}\n\n// \u2500\u2500\u2500 Plugins \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Collect plugin-provided values so cer-layout-view can forward them into\n// the component context tree via the real provide() hook (which inject() walks).\n// Declared BEFORE component('cer-layout-view') to avoid a temporal dead zone\n// ReferenceError: customElements.define() upgrades existing DOM elements\n// synchronously, calling the render function immediately.\nconst _pluginProvides = new Map()\n// Expose plugin provides globally so page components can read them synchronously\n// regardless of render order.\n;(globalThis).__cerPluginProvides = _pluginProvides\n\n// \u2500\u2500\u2500 <cer-layout-view> \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\ncomponent('cer-layout-view', () => {\n // Forward plugin-provided values into the component context so inject() in\n // any descendant component can resolve them by walking up the DOM tree.\n for (const [key, value] of _pluginProvides) {\n provide(key, value)\n }\n\n const current = ref(router.getCurrent())\n let unsub\n\n useOnConnected(() => {\n unsub = router.subscribe((s) => { current.value = s })\n })\n useOnDisconnected(() => { unsub?.(); unsub = undefined })\n\n if (currentError.value !== null) {\n if (hasError && errorTag) {\n return { tag: errorTag, props: { attrs: { error: String(currentError.value) } }, children: [] }\n }\n return { tag: 'div', props: { attrs: { style: 'padding:2rem;font-family:monospace' } }, children: String(currentError.value) }\n }\n\n if (isNavigating.value && hasLoading && loadingTag) {\n return { tag: loadingTag, props: {}, children: [] }\n }\n\n const matched = router.matchRoute(current.value.path)\n const routeMeta = matched?.route?.meta\n\n // Render the page component directly when a pre-loaded tag is available AND\n // the loaded path matches the current route. The path guard detects\n // router-internal redirects (e.g. middleware returning '/login'): when the\n // router redirects to a different path, _currentPagePath won't match\n // current.value.path and we fall back to <router-view> so the correct page\n // is rendered without stale pre-loaded state.\n const _useDirectRender = _currentPageTag && _currentPagePath === current.value.path\n const pageVnode = _useDirectRender\n ? { tag: _currentPageTag, props: { attrs: _currentPageAttrs }, children: [] }\n : { tag: 'router-view', props: {}, children: [] }\n\n // Support nested layout chains: meta.layoutChain = ['default', 'admin']\n // renders <layout-default><layout-admin><page/></layout-admin></layout-default>\n const chain = routeMeta?.layoutChain\n ? routeMeta.layoutChain\n : [routeMeta?.layout ?? 'default']\n\n // Build nested vnodes from innermost to outermost.\n let vnode = pageVnode\n for (let i = chain.length - 1; i >= 0; i--) {\n const tag = layouts[chain[i]]\n if (tag) vnode = { tag, props: {}, children: [vnode] }\n }\n return vnode\n})\n\nfor (const plugin of plugins) {\n if (plugin && typeof plugin.setup === 'function') {\n await plugin.setup({\n router,\n provide: (key, value) => { _pluginProvides.set(key, value) },\n config: {},\n })\n }\n}\n\n// \u2500\u2500\u2500 Pre-load initial route + hydration strategy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Download the current page's route chunk AFTER plugins run so that\n// cer-layout-view's first render (which calls provide()) completes before\n// page components are defined and their renders are scheduled. This ensures\n// inject() in child components can find values stored by provide().\n//\n// meta.hydrate controls WHEN the initial page activates:\n// 'load' \u2014 immediately (default)\n// 'idle' \u2014 deferred until requestIdleCallback (browser idle)\n// 'visible' \u2014 deferred until cer-layout-view enters the viewport\n// 'none' \u2014 never: SSR HTML stays as-is, no JS activation\n\nif (typeof window !== 'undefined') {\n const _initMatch = router.matchRoute(window.location.pathname)\n const _hydrateStrategy = _initMatch?.route?.meta?.hydrate ?? 'load'\n\n if (_hydrateStrategy === 'none') {\n // Static HTML only \u2014 leave SSR output untouched, clean up data immediately.\n delete (globalThis).__CER_DATA__\n } else {\n const _doHydrate = async () => {\n const _initPath = window.location.pathname + window.location.search + window.location.hash\n // Pre-load the page module and run the loader so cer-layout-view renders\n // the page tag directly with loader attrs (enables useProps() on hydration).\n await _loadPageForPath(_initPath)\n // Only activate the initial route if the URL hasn't changed while we were\n // loading the module asynchronously (e.g. a test or plugin navigated away\n // before _doHydrate finished). Calling _replace with a stale path would\n // override any navigation that happened during the async gap.\n const _currentPath = window.location.pathname + window.location.search + window.location.hash\n if (_currentPath === _initPath) {\n // Use the original (unwrapped) replace so isNavigating stays false during\n // the initial paint \u2014 the loading component must not flash over pre-rendered content.\n await _replace(_initPath)\n }\n // Clear SSR loader data after initial navigation so subsequent client-side\n // navigations don't accidentally reuse stale server data.\n delete (globalThis).__CER_DATA__\n }\n\n if (_hydrateStrategy === 'idle') {\n // Defer until the browser has finished higher-priority work.\n if (typeof requestIdleCallback !== 'undefined') {\n requestIdleCallback(() => { void _doHydrate() })\n } else {\n // Safari / older environments fallback.\n setTimeout(() => { void _doHydrate() }, 1)\n }\n } else if (_hydrateStrategy === 'visible') {\n // Defer until cer-layout-view (or body as fallback) enters the viewport.\n const _el = document.querySelector('cer-layout-view') ?? document.body\n const _io = new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting) { _io.disconnect(); void _doHydrate() }\n })\n _io.observe(_el)\n } else {\n // 'load' \u2014 hydrate immediately (default behaviour).\n await _doHydrate()\n }\n }\n}\n\nexport { router }\n";
|
|
8
|
+
export declare const APP_ENTRY_TEMPLATE = "// AUTO-GENERATED by @jasonshimmy/vite-plugin-cer-app \u2014 do not edit.\n// Regenerated automatically on every dev server start and build.\n\nimport '@jasonshimmy/custom-elements-runtime/css'\nimport 'virtual:cer-jit-css'\nimport 'virtual:cer-components'\nimport routes from 'virtual:cer-routes'\nimport layouts from 'virtual:cer-layouts'\nimport plugins from 'virtual:cer-plugins'\nimport { hasLoading, loadingTag } from 'virtual:cer-loading'\nimport { hasError, errorTag } from 'virtual:cer-error'\nimport { runtimeConfig } from 'virtual:cer-app-config'\nimport {\n component,\n ref,\n provide,\n useOnConnected,\n useOnDisconnected,\n registerBuiltinComponents,\n} from '@jasonshimmy/custom-elements-runtime'\nimport { initRouter } from '@jasonshimmy/custom-elements-runtime/router'\nimport { enableJITCSS } from '@jasonshimmy/custom-elements-runtime/jit-css'\nimport { initRuntimeConfig } from '@jasonshimmy/vite-plugin-cer-app/composables'\n\nregisterBuiltinComponents()\nenableJITCSS()\ninitRuntimeConfig(runtimeConfig)\n\nconst router = initRouter({ routes })\n\n// Expose the router globally so useRoute() and navigateTo() can access it\n// from any composable without circular imports.\n;(globalThis).__cerRouter = router\n\n// \u2500\u2500\u2500 Page loader state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Holds the pre-loaded page tag and loader-derived attrs for the current route.\n// Set by _loadPageForPath before every navigation so cer-layout-view can render\n// the page element directly with the correct attributes (enabling useProps()).\nlet _currentPageTag = null\nlet _currentPageAttrs = {}\n// The pathname this tag was loaded for \u2014 used to detect router-internal\n// redirects (e.g. middleware returning '/login') so cer-layout-view falls\n// back to <router-view> when the current route differs from what was pre-loaded.\nlet _currentPagePath = null\n\n// Pre-loads the page module for `path`, calls its loader if present, and\n// stores the results so cer-layout-view can pass them as element attributes.\nasync function _loadPageForPath(path) {\n try {\n const url = new URL(path, 'http://x')\n const query = Object.fromEntries(url.searchParams)\n const matched = router.matchRoute(url.pathname)\n const route = matched?.route\n if (!route?.load) {\n _currentPageTag = null\n _currentPageAttrs = {}\n _currentPagePath = url.pathname\n return\n }\n const mod = await route.load()\n _currentPageTag = mod.default ?? null\n _currentPagePath = url.pathname\n const params = matched.params ?? {}\n let loaderAttrs = { ...params }\n if (typeof mod.loader === 'function') {\n try {\n const data = await mod.loader({ params, query })\n if (data !== undefined && data !== null) {\n // Make loader data available via usePageData() for this navigation.\n ;(globalThis).__CER_DATA__ = data\n // Merge primitive values as element attributes so useProps() works.\n const primitives = Object.fromEntries(\n Object.entries(data).filter(([, v]) => v !== null && v !== undefined && typeof v !== 'object' && typeof v !== 'function')\n )\n loaderAttrs = { ...loaderAttrs, ...primitives }\n }\n } catch { /* loader errors are non-fatal client-side */ }\n }\n _currentPageAttrs = loaderAttrs\n } catch {\n _currentPageTag = null\n _currentPageAttrs = {}\n _currentPagePath = null\n }\n}\n\n// \u2500\u2500\u2500 Navigation state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst isNavigating = ref(false)\nconst currentError = ref(null)\n\nconst resetError = () => {\n currentError.value = null\n void router.replace(router.getCurrent().path)\n}\n;(globalThis).resetError = resetError\n\nconst _push = router.push.bind(router)\nconst _replace = router.replace.bind(router)\n\nrouter.push = async (path) => {\n isNavigating.value = true\n currentError.value = null\n try {\n // Clear stale loader data from the previous route before loading the new one.\n // If the new route has no loader, __CER_DATA__ stays undefined so usePageData()\n // correctly returns null instead of leaking the previous page's data.\n delete (globalThis).__CER_DATA__\n await _loadPageForPath(path)\n await _push(path)\n } catch (err) {\n currentError.value = err instanceof Error ? err.message : String(err)\n } finally {\n isNavigating.value = false\n }\n}\n\nrouter.replace = async (path) => {\n isNavigating.value = true\n currentError.value = null\n try {\n // Clear stale loader data from the previous route before loading the new one.\n delete (globalThis).__CER_DATA__\n await _loadPageForPath(path)\n await _replace(path)\n } catch (err) {\n currentError.value = err instanceof Error ? err.message : String(err)\n } finally {\n isNavigating.value = false\n }\n}\n\n// \u2500\u2500\u2500 Plugins \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// Collect plugin-provided values so cer-layout-view can forward them into\n// the component context tree via the real provide() hook (which inject() walks).\n// Declared BEFORE component('cer-layout-view') to avoid a temporal dead zone\n// ReferenceError: customElements.define() upgrades existing DOM elements\n// synchronously, calling the render function immediately.\nconst _pluginProvides = new Map()\n// Expose plugin provides globally so page components can read them synchronously\n// regardless of render order.\n;(globalThis).__cerPluginProvides = _pluginProvides\n\n// \u2500\u2500\u2500 <cer-layout-view> \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\ncomponent('cer-layout-view', () => {\n // Forward plugin-provided values into the component context so inject() in\n // any descendant component can resolve them by walking up the DOM tree.\n for (const [key, value] of _pluginProvides) {\n provide(key, value)\n }\n\n const current = ref(router.getCurrent())\n let unsub\n\n useOnConnected(() => {\n unsub = router.subscribe((s) => { current.value = s })\n })\n useOnDisconnected(() => { unsub?.(); unsub = undefined })\n\n if (currentError.value !== null) {\n if (hasError && errorTag) {\n return { tag: errorTag, props: { attrs: { error: String(currentError.value) } }, children: [] }\n }\n return { tag: 'div', props: { attrs: { style: 'padding:2rem;font-family:monospace' } }, children: String(currentError.value) }\n }\n\n if (isNavigating.value && hasLoading && loadingTag) {\n return { tag: loadingTag, props: {}, children: [] }\n }\n\n const matched = router.matchRoute(current.value.path)\n const routeMeta = matched?.route?.meta\n\n // Render the page component directly when a pre-loaded tag is available AND\n // the loaded path matches the current route. The path guard detects\n // router-internal redirects (e.g. middleware returning '/login'): when the\n // router redirects to a different path, _currentPagePath won't match\n // current.value.path and we fall back to <router-view> so the correct page\n // is rendered without stale pre-loaded state.\n const _useDirectRender = _currentPageTag && _currentPagePath === current.value.path\n const pageVnode = _useDirectRender\n ? { tag: _currentPageTag, props: { attrs: _currentPageAttrs }, children: [] }\n : { tag: 'router-view', props: {}, children: [] }\n\n // Support nested layout chains: meta.layoutChain = ['default', 'admin']\n // renders <layout-default><layout-admin><page/></layout-admin></layout-default>\n const chain = routeMeta?.layoutChain\n ? routeMeta.layoutChain\n : [routeMeta?.layout ?? 'default']\n\n // Build nested vnodes from innermost to outermost.\n let vnode = pageVnode\n for (let i = chain.length - 1; i >= 0; i--) {\n const tag = layouts[chain[i]]\n if (tag) vnode = { tag, props: {}, children: [vnode] }\n }\n return vnode\n})\n\nfor (const plugin of plugins) {\n if (plugin && typeof plugin.setup === 'function') {\n await plugin.setup({\n router,\n provide: (key, value) => { _pluginProvides.set(key, value) },\n config: {},\n })\n }\n}\n\n// \u2500\u2500\u2500 Pre-load initial route + hydration strategy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Download the current page's route chunk AFTER plugins run so that\n// cer-layout-view's first render (which calls provide()) completes before\n// page components are defined and their renders are scheduled. This ensures\n// inject() in child components can find values stored by provide().\n//\n// meta.hydrate controls WHEN the initial page activates:\n// 'load' \u2014 immediately (default)\n// 'idle' \u2014 deferred until requestIdleCallback (browser idle)\n// 'visible' \u2014 deferred until cer-layout-view enters the viewport\n// 'none' \u2014 never: SSR HTML stays as-is, no JS activation\n\nif (typeof window !== 'undefined') {\n const _initMatch = router.matchRoute(window.location.pathname)\n const _hydrateStrategy = _initMatch?.route?.meta?.hydrate ?? 'load'\n\n if (_hydrateStrategy === 'none') {\n // Static HTML only \u2014 leave SSR output untouched, clean up data immediately.\n delete (globalThis).__CER_DATA__\n } else {\n const _doHydrate = async () => {\n const _initPath = window.location.pathname + window.location.search + window.location.hash\n // Pre-load the page module and run the loader so cer-layout-view renders\n // the page tag directly with loader attrs (enables useProps() on hydration).\n await _loadPageForPath(_initPath)\n // Only activate the initial route if the URL hasn't changed while we were\n // loading the module asynchronously (e.g. a test or plugin navigated away\n // before _doHydrate finished). Calling _replace with a stale path would\n // override any navigation that happened during the async gap.\n const _currentPath = window.location.pathname + window.location.search + window.location.hash\n if (_currentPath === _initPath) {\n // Use the original (unwrapped) replace so isNavigating stays false during\n // the initial paint \u2014 the loading component must not flash over pre-rendered content.\n await _replace(_initPath)\n }\n // Clear SSR loader data after initial navigation so subsequent client-side\n // navigations don't accidentally reuse stale server data.\n delete (globalThis).__CER_DATA__\n }\n\n if (_hydrateStrategy === 'idle') {\n // Defer until the browser has finished higher-priority work.\n if (typeof requestIdleCallback !== 'undefined') {\n requestIdleCallback(() => { void _doHydrate() })\n } else {\n // Safari / older environments fallback.\n setTimeout(() => { void _doHydrate() }, 1)\n }\n } else if (_hydrateStrategy === 'visible') {\n // Defer until cer-layout-view (or body as fallback) enters the viewport.\n const _el = document.querySelector('cer-layout-view') ?? document.body\n const _io = new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting) { _io.disconnect(); void _doHydrate() }\n })\n _io.observe(_el)\n } else {\n // 'load' \u2014 hydrate immediately (default behaviour).\n await _doHydrate()\n }\n }\n}\n\nexport { router }\n";
|
|
9
9
|
//# sourceMappingURL=app-template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-template.d.ts","sourceRoot":"","sources":["../../src/runtime/app-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"app-template.d.ts","sourceRoot":"","sources":["../../src/runtime/app-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,s3YAmR9B,CAAA"}
|
|
@@ -110,6 +110,10 @@ router.push = async (path) => {
|
|
|
110
110
|
isNavigating.value = true
|
|
111
111
|
currentError.value = null
|
|
112
112
|
try {
|
|
113
|
+
// Clear stale loader data from the previous route before loading the new one.
|
|
114
|
+
// If the new route has no loader, __CER_DATA__ stays undefined so usePageData()
|
|
115
|
+
// correctly returns null instead of leaking the previous page's data.
|
|
116
|
+
delete (globalThis).__CER_DATA__
|
|
113
117
|
await _loadPageForPath(path)
|
|
114
118
|
await _push(path)
|
|
115
119
|
} catch (err) {
|
|
@@ -123,6 +127,8 @@ router.replace = async (path) => {
|
|
|
123
127
|
isNavigating.value = true
|
|
124
128
|
currentError.value = null
|
|
125
129
|
try {
|
|
130
|
+
// Clear stale loader data from the previous route before loading the new one.
|
|
131
|
+
delete (globalThis).__CER_DATA__
|
|
126
132
|
await _loadPageForPath(path)
|
|
127
133
|
await _replace(path)
|
|
128
134
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-template.js","sourceRoot":"","sources":["../../src/runtime/app-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"app-template.js","sourceRoot":"","sources":["../../src/runtime/app-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmRjC,CAAA"}
|
|
@@ -19,4 +19,5 @@ export type { UseFetchOptions, UseFetchReturn, UseFetchResult, UseFetchReactiveR
|
|
|
19
19
|
export { useRoute } from './use-route.js';
|
|
20
20
|
export type { RouteInfo } from './use-route.js';
|
|
21
21
|
export { navigateTo } from './use-navigate.js';
|
|
22
|
+
export { useState } from './use-state.js';
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAClG,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACnG,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAClG,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACnG,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAElG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAEnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/composables/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAElG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAEnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ReactiveState } from '@jasonshimmy/custom-elements-runtime';
|
|
2
|
+
/**
|
|
3
|
+
* useState — globally-keyed reactive state shared across layouts, pages, and components.
|
|
4
|
+
*
|
|
5
|
+
* Returns the same reactive ref for a given key across all components. Mutating the
|
|
6
|
+
* ref in one component (page, layout, or component) automatically triggers re-renders
|
|
7
|
+
* in every other component that reads the same key.
|
|
8
|
+
*
|
|
9
|
+
* Works isomorphically:
|
|
10
|
+
* - **SSR/SSG**: state is scoped per-request via AsyncLocalStorage so concurrent renders
|
|
11
|
+
* never share state. Set initial values inside a page `loader` (which runs before
|
|
12
|
+
* rendering) so the layout can read them synchronously during the render pass.
|
|
13
|
+
* After rendering, all state values are serialized into `window.__CER_STATE_INIT__`
|
|
14
|
+
* and hydrated on the client so there is no flash to default values after hydration.
|
|
15
|
+
* - **Client**: state is a global singleton Map — refs are shared across the whole
|
|
16
|
+
* component tree and changes propagate reactively. On first use, the Map is
|
|
17
|
+
* pre-populated from `window.__CER_STATE_INIT__` (the SSR snapshot) if present.
|
|
18
|
+
*
|
|
19
|
+
* @param key Unique string key for this piece of state.
|
|
20
|
+
* @param init Initial value or factory function. Only evaluated when the key does not
|
|
21
|
+
* yet exist in the store (i.e. on first call for a given key per request/session).
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* // app/pages/about.ts — set title in loader so layout sees it on SSR
|
|
26
|
+
* export const loader = async () => {
|
|
27
|
+
* useState<string>('pageTitle').value = 'About Us'
|
|
28
|
+
* return {}
|
|
29
|
+
* }
|
|
30
|
+
*
|
|
31
|
+
* component('page-about', () => {
|
|
32
|
+
* const title = useState<string>('pageTitle')
|
|
33
|
+
* return html`<h1>${title.value}</h1>`
|
|
34
|
+
* })
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* // app/layouts/default.ts — reads the same ref; re-renders when value changes
|
|
40
|
+
* component('layout-default', () => {
|
|
41
|
+
* const title = useState('pageTitle', 'My App') // fallback default
|
|
42
|
+
* return html`
|
|
43
|
+
* <title>${title.value}</title>
|
|
44
|
+
* <slot></slot>
|
|
45
|
+
* `
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function useState<T>(key: string, init?: T | (() => T)): ReactiveState<T>;
|
|
50
|
+
//# sourceMappingURL=use-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-state.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/use-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAIzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAuC/E"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ref } from '@jasonshimmy/custom-elements-runtime';
|
|
2
|
+
/**
|
|
3
|
+
* useState — globally-keyed reactive state shared across layouts, pages, and components.
|
|
4
|
+
*
|
|
5
|
+
* Returns the same reactive ref for a given key across all components. Mutating the
|
|
6
|
+
* ref in one component (page, layout, or component) automatically triggers re-renders
|
|
7
|
+
* in every other component that reads the same key.
|
|
8
|
+
*
|
|
9
|
+
* Works isomorphically:
|
|
10
|
+
* - **SSR/SSG**: state is scoped per-request via AsyncLocalStorage so concurrent renders
|
|
11
|
+
* never share state. Set initial values inside a page `loader` (which runs before
|
|
12
|
+
* rendering) so the layout can read them synchronously during the render pass.
|
|
13
|
+
* After rendering, all state values are serialized into `window.__CER_STATE_INIT__`
|
|
14
|
+
* and hydrated on the client so there is no flash to default values after hydration.
|
|
15
|
+
* - **Client**: state is a global singleton Map — refs are shared across the whole
|
|
16
|
+
* component tree and changes propagate reactively. On first use, the Map is
|
|
17
|
+
* pre-populated from `window.__CER_STATE_INIT__` (the SSR snapshot) if present.
|
|
18
|
+
*
|
|
19
|
+
* @param key Unique string key for this piece of state.
|
|
20
|
+
* @param init Initial value or factory function. Only evaluated when the key does not
|
|
21
|
+
* yet exist in the store (i.e. on first call for a given key per request/session).
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* // app/pages/about.ts — set title in loader so layout sees it on SSR
|
|
26
|
+
* export const loader = async () => {
|
|
27
|
+
* useState<string>('pageTitle').value = 'About Us'
|
|
28
|
+
* return {}
|
|
29
|
+
* }
|
|
30
|
+
*
|
|
31
|
+
* component('page-about', () => {
|
|
32
|
+
* const title = useState<string>('pageTitle')
|
|
33
|
+
* return html`<h1>${title.value}</h1>`
|
|
34
|
+
* })
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* // app/layouts/default.ts — reads the same ref; re-renders when value changes
|
|
40
|
+
* component('layout-default', () => {
|
|
41
|
+
* const title = useState('pageTitle', 'My App') // fallback default
|
|
42
|
+
* return html`
|
|
43
|
+
* <title>${title.value}</title>
|
|
44
|
+
* <slot></slot>
|
|
45
|
+
* `
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export function useState(key, init) {
|
|
50
|
+
const g = globalThis;
|
|
51
|
+
// ── SSR path ──────────────────────────────────────────────────────────────
|
|
52
|
+
// __CER_STATE_STORE__ is an AsyncLocalStorage<StateMap> set by entry-server-template.
|
|
53
|
+
// Only set on the server — not present in the client bundle.
|
|
54
|
+
const stateStore = g['__CER_STATE_STORE__'];
|
|
55
|
+
if (stateStore) {
|
|
56
|
+
const map = stateStore.getStore();
|
|
57
|
+
if (map) {
|
|
58
|
+
if (!map.has(key)) {
|
|
59
|
+
const initValue = typeof init === 'function' ? init() : init;
|
|
60
|
+
map.set(key, ref(initValue));
|
|
61
|
+
}
|
|
62
|
+
return map.get(key);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// ── Client path ───────────────────────────────────────────────────────────
|
|
66
|
+
// __CER_STATE__ is a singleton Map on globalThis, created lazily on first use.
|
|
67
|
+
// On creation, pre-populate from window.__CER_STATE_INIT__ (the SSR-serialized
|
|
68
|
+
// snapshot injected by the server handler) so the client boots with the same
|
|
69
|
+
// state the server rendered — no flash to default values on hydration.
|
|
70
|
+
if (!g['__CER_STATE__']) {
|
|
71
|
+
const clientMap = new Map();
|
|
72
|
+
const ssrInit = g['__CER_STATE_INIT__'];
|
|
73
|
+
if (ssrInit) {
|
|
74
|
+
for (const [k, v] of Object.entries(ssrInit)) {
|
|
75
|
+
clientMap.set(k, ref(v));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
g['__CER_STATE__'] = clientMap;
|
|
79
|
+
}
|
|
80
|
+
const clientMap = g['__CER_STATE__'];
|
|
81
|
+
if (!clientMap.has(key)) {
|
|
82
|
+
const initValue = typeof init === 'function' ? init() : init;
|
|
83
|
+
clientMap.set(key, ref(initValue));
|
|
84
|
+
}
|
|
85
|
+
return clientMap.get(key);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=use-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-state.js","sourceRoot":"","sources":["../../../src/runtime/composables/use-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sCAAsC,CAAA;AAK1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,QAAQ,CAAI,GAAW,EAAE,IAAoB;IAC3D,MAAM,CAAC,GAAG,UAAqC,CAAA;IAE/C,6EAA6E;IAC7E,sFAAsF;IACtF,6DAA6D;IAC7D,MAAM,UAAU,GAAG,CAAC,CAAC,qBAAqB,CAAqD,CAAA;IAC/F,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;QACjC,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAE,IAAgB,EAAE,CAAC,CAAC,CAAE,IAAsB,CAAA;gBAC5F,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAA2B,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAqB,CAAA;QACzC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,+EAA+E;IAC/E,6EAA6E;IAC7E,uEAAuE;IACvE,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAA;QAC3D,MAAM,OAAO,GAAG,CAAC,CAAC,oBAAoB,CAAwC,CAAA;QAC9E,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAA2B,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QACD,CAAC,CAAC,eAAe,CAAC,GAAG,SAAS,CAAA;IAChC,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,CAAC,eAAe,CAAa,CAAA;IAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAE,IAAgB,EAAE,CAAC,CAAC,CAAE,IAAsB,CAAA;QAC5F,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAA2B,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAqB,CAAA;AAC/C,CAAC"}
|