@vmz/core 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/browser/client-nav.d.ts +5 -55
  2. package/dist/browser/client-nav.js +5 -769
  3. package/dist/browser/diagnostics/precision-trace.d.ts +47 -0
  4. package/dist/browser/diagnostics/precision-trace.js +86 -0
  5. package/dist/browser/dom/attributes.d.ts +5 -0
  6. package/dist/browser/dom/attributes.js +102 -0
  7. package/dist/browser/dom/component.d.ts +11 -0
  8. package/dist/browser/dom/component.js +255 -0
  9. package/dist/browser/dom/direct-api.d.ts +66 -0
  10. package/dist/browser/dom/direct-api.js +446 -0
  11. package/dist/browser/dom/lifecycle.d.ts +9 -0
  12. package/dist/browser/dom/lifecycle.js +161 -0
  13. package/dist/browser/dom/registry.d.ts +5 -0
  14. package/dist/browser/dom/registry.js +16 -0
  15. package/dist/browser/dom-core.d.ts +51 -249
  16. package/dist/browser/dom-core.js +51 -2521
  17. package/dist/browser/navigation/client-navigation.d.ts +44 -0
  18. package/dist/browser/navigation/client-navigation.js +277 -0
  19. package/dist/browser/navigation/extract-html.d.ts +1 -0
  20. package/dist/browser/navigation/extract-html.js +5 -0
  21. package/dist/browser/navigation/layout-retain.d.ts +3 -0
  22. package/dist/browser/navigation/layout-retain.js +34 -0
  23. package/dist/browser/navigation/locale-transition.d.ts +24 -0
  24. package/dist/browser/navigation/locale-transition.js +323 -0
  25. package/dist/browser/navigation/scroll-focus.d.ts +14 -0
  26. package/dist/browser/navigation/scroll-focus.js +87 -0
  27. package/dist/browser/reactivity/patch-scheduler.d.ts +12 -0
  28. package/dist/browser/reactivity/patch-scheduler.js +720 -0
  29. package/dist/browser/reactivity/write-barrier.d.ts +16 -0
  30. package/dist/browser/reactivity/write-barrier.js +546 -0
  31. package/dist/browser/resume/adopt.d.ts +1 -0
  32. package/dist/browser/resume/adopt.js +168 -0
  33. package/dist/browser/resume/hydrate.d.ts +4 -0
  34. package/dist/browser/resume/hydrate.js +107 -0
  35. package/dist/browser/resume/resume.d.ts +3 -0
  36. package/dist/browser/resume/resume.js +102 -0
  37. package/dist/faces/dom.browser.d.ts +2 -1
  38. package/dist/faces/dom.browser.js +2 -1
  39. package/dist/host/{deployment-registry.d.ts → deployment/deployment-registry.d.ts} +1 -1
  40. package/dist/host/{deployment-registry.js → deployment/deployment-registry.js} +1 -1
  41. package/dist/host/list-client-components.d.ts +2 -2
  42. package/dist/host/list-client-components.js +4 -4
  43. package/dist/host/{render-host.d.ts → render/render-host.d.ts} +2 -2
  44. package/dist/host/{render-host.js → render/render-host.js} +1 -1
  45. package/dist/host/{route-layout-chain.js → render/route-layout-chain.js} +1 -1
  46. package/dist/host/serve/bootstrap.d.ts +1 -0
  47. package/dist/host/serve/bootstrap.js +25 -0
  48. package/dist/host/serve/constants.d.ts +6 -0
  49. package/dist/host/serve/constants.js +6 -0
  50. package/dist/host/serve/hmr-dev.d.ts +34 -0
  51. package/dist/host/serve/hmr-dev.js +294 -0
  52. package/dist/host/serve/http.d.ts +1 -0
  53. package/dist/host/serve/http.js +124 -0
  54. package/dist/host/serve/locale-theme.d.ts +19 -0
  55. package/dist/host/serve/locale-theme.js +169 -0
  56. package/dist/host/serve/page-catalog.d.ts +14 -0
  57. package/dist/host/serve/page-catalog.js +105 -0
  58. package/dist/host/serve/page-render.d.ts +17 -0
  59. package/dist/host/serve/page-render.js +419 -0
  60. package/dist/host/serve/paths.d.ts +3 -0
  61. package/dist/host/serve/paths.js +74 -0
  62. package/dist/host/serve/route-catalog.d.ts +6 -0
  63. package/dist/host/serve/route-catalog.js +108 -0
  64. package/dist/host/serve/state.d.ts +30 -0
  65. package/dist/host/serve/state.js +36 -0
  66. package/dist/host/serve-host.d.ts +0 -17
  67. package/dist/host/serve-host.mjs +4 -1420
  68. package/dist/ssr/document.d.ts +2 -0
  69. package/dist/ssr/document.js +71 -0
  70. package/dist/ssr/dom-ssr.d.ts +10 -47
  71. package/dist/ssr/dom-ssr.js +10 -1284
  72. package/dist/ssr/render.d.ts +2 -0
  73. package/dist/ssr/render.js +78 -0
  74. package/dist/ssr/serialize.d.ts +3 -0
  75. package/dist/ssr/serialize.js +678 -0
  76. package/package.json +11 -11
  77. /package/dist/host/{route-layout-chain.d.ts → render/route-layout-chain.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ export declare function renderToString(Component: any, props?: any, opts?: any): Promise<any>;
2
+ export declare function renderToStream(Component: any, props?: any, opts?: any): AsyncGenerator<any, void, unknown>;
@@ -0,0 +1,78 @@
1
+ import { createInstance, destroy, } from '../browser/dom-core.js';
2
+ import { ensureSsrDocument } from './document.js';
3
+ import { flattenSerializeNode, runDirectSerializeTreeWithMounts, streamSerializeChunks } from './serialize.js';
4
+ export async function renderToString(Component, props = {}, opts = {}) {
5
+ ensureSsrDocument();
6
+ const signal = opts && opts.signal;
7
+ if (signal && signal.aborted)
8
+ return '';
9
+ const inst = createInstance(Component, props);
10
+ if (typeof inst.onMount === 'function') {
11
+ await inst.onMount();
12
+ }
13
+ if (signal && signal.aborted)
14
+ return '';
15
+ // production Direct emit: SSR only via Direct serialize schedule ??never `render`.
16
+ if (!(Component && Component.__vmzDirect && typeof Component.__vmzCreate === 'function')) {
17
+ throw new Error(`vmz:dom renderToString() requires __vmzCreate (Direct); blueprint render() removed (production Direct emit)`);
18
+ }
19
+ const root = await runDirectSerializeTreeWithMounts(Component, inst);
20
+ if (opts && opts.slotHtml != null)
21
+ injectDefaultSlotHtml(root, opts.slotHtml);
22
+ return flattenSerializeNode(root);
23
+ }
24
+ export async function* renderToStream(Component, props = {}, opts = {}) {
25
+ ensureSsrDocument();
26
+ const signal = opts && opts.signal;
27
+ const aborted = () => Boolean(signal && signal.aborted);
28
+ if (aborted())
29
+ return;
30
+ const inst = createInstance(Component, props);
31
+ try {
32
+ if (typeof inst.onMount === 'function') {
33
+ await inst.onMount();
34
+ }
35
+ if (aborted())
36
+ return;
37
+ if (!(Component && Component.__vmzDirect && typeof Component.__vmzCreate === 'function')) {
38
+ throw new Error(`vmz:dom renderToStream() requires __vmzCreate (Direct); blueprint render() removed (production Direct emit)`);
39
+ }
40
+ const root = await runDirectSerializeTreeWithMounts(Component, inst);
41
+ if (opts && opts.slotHtml != null)
42
+ injectDefaultSlotHtml(root, opts.slotHtml);
43
+ if (aborted())
44
+ return;
45
+ for (const chunk of streamSerializeChunks(root)) {
46
+ if (aborted())
47
+ return;
48
+ yield chunk;
49
+ // Allow consumers / HTTP hosts to flush between chunks (backpressure point).
50
+ await Promise.resolve();
51
+ }
52
+ }
53
+ finally {
54
+ // Abort and normal completion both dispose the SSR instance (lifetime).
55
+ destroy(inst);
56
+ }
57
+ }
58
+ function injectDefaultSlotHtml(node, html) {
59
+ if (!node || typeof node !== 'object')
60
+ return false;
61
+ if (node.__kind === 'el' && node.tag === 'slot' && !(node.attrs && node.attrs.name)) {
62
+ node.__rawHtml = String(html ?? '');
63
+ node.children = [];
64
+ return true;
65
+ }
66
+ // Nested Direct component wrapper from serializeApi.component ??do not search inside.
67
+ if (node.__kind === 'el' && node.attrs && node.attrs['data-vmz'] != null) {
68
+ return false;
69
+ }
70
+ const kids = node.children;
71
+ if (Array.isArray(kids)) {
72
+ for (const c of kids) {
73
+ if (injectDefaultSlotHtml(c, html))
74
+ return true;
75
+ }
76
+ }
77
+ return false;
78
+ }
@@ -0,0 +1,3 @@
1
+ export declare function runDirectSerializeTreeWithMounts(Component: any, inst: any): Promise<any>;
2
+ export declare function flattenSerializeNode(node: any): any;
3
+ export declare function streamSerializeChunks(node: any): any;