@weaverse/next 0.1.0-alpha.13 → 0.1.0-alpha.14

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 (106) hide show
  1. package/README.md +125 -23
  2. package/dist/{chunk-MQ6N5ODA.mjs → chunk-NL22OVD7.mjs} +93 -4
  3. package/dist/chunk-NL22OVD7.mjs.map +1 -0
  4. package/dist/index.js +85 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +19 -26
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/server.js +158 -2
  9. package/dist/server.js.map +1 -1
  10. package/dist/server.mjs +126 -5
  11. package/dist/server.mjs.map +1 -1
  12. package/dist/types/client.d.ts +16 -0
  13. package/dist/types/client.d.ts.map +1 -0
  14. package/dist/types/hooks.d.ts +20 -0
  15. package/dist/types/hooks.d.ts.map +1 -0
  16. package/dist/types/index.d.ts +34 -0
  17. package/dist/types/index.d.ts.map +1 -0
  18. package/dist/types/item.d.ts +54 -0
  19. package/dist/types/item.d.ts.map +1 -0
  20. package/dist/types/loader.d.ts +25 -0
  21. package/dist/types/loader.d.ts.map +1 -0
  22. package/dist/types/main.d.ts +11 -0
  23. package/dist/types/main.d.ts.map +1 -0
  24. package/dist/types/provider.d.ts +82 -0
  25. package/dist/types/provider.d.ts.map +1 -0
  26. package/dist/types/registry.d.ts +15 -0
  27. package/dist/types/registry.d.ts.map +1 -0
  28. package/dist/types/renderer.d.ts +20 -0
  29. package/dist/types/renderer.d.ts.map +1 -0
  30. package/dist/types/request-info.d.ts +8 -0
  31. package/dist/types/request-info.d.ts.map +1 -0
  32. package/dist/types/revalidate-item.d.ts +81 -0
  33. package/dist/types/revalidate-item.d.ts.map +1 -0
  34. package/dist/types/root-provider.d.ts +61 -0
  35. package/dist/types/root-provider.d.ts.map +1 -0
  36. package/dist/types/runtime.d.ts +113 -0
  37. package/dist/types/runtime.d.ts.map +1 -0
  38. package/dist/types/seo.d.ts +55 -0
  39. package/dist/types/seo.d.ts.map +1 -0
  40. package/dist/types/server/configs.d.ts +27 -0
  41. package/dist/types/server/configs.d.ts.map +1 -0
  42. package/dist/types/server/normalize-page-url.d.ts +19 -0
  43. package/dist/types/server/normalize-page-url.d.ts.map +1 -0
  44. package/dist/types/server/revalidate-handler.d.ts +55 -0
  45. package/dist/types/server/revalidate-handler.d.ts.map +1 -0
  46. package/dist/types/server/server-client.d.ts +21 -0
  47. package/dist/types/server/server-client.d.ts.map +1 -0
  48. package/dist/types/server.d.ts +19 -0
  49. package/dist/types/server.d.ts.map +1 -0
  50. package/dist/types/studio-bridge.d.ts +16 -0
  51. package/dist/types/studio-bridge.d.ts.map +1 -0
  52. package/dist/types/studio-connect.d.ts +27 -0
  53. package/dist/types/studio-connect.d.ts.map +1 -0
  54. package/dist/types/studio-router.d.ts +50 -0
  55. package/dist/types/studio-router.d.ts.map +1 -0
  56. package/dist/types/studio-script-src.d.ts +12 -0
  57. package/dist/types/studio-script-src.d.ts.map +1 -0
  58. package/dist/types/theme-settings-store.d.ts +17 -0
  59. package/dist/types/theme-settings-store.d.ts.map +1 -0
  60. package/dist/types/translation-context.d.ts +156 -0
  61. package/dist/types/translation-context.d.ts.map +1 -0
  62. package/dist/types/translation-store.d.ts +44 -0
  63. package/dist/types/translation-store.d.ts.map +1 -0
  64. package/dist/types/types.d.ts +661 -0
  65. package/dist/types/types.d.ts.map +1 -0
  66. package/dist/types/use-weaverse-next-studio.d.ts +34 -0
  67. package/dist/types/use-weaverse-next-studio.d.ts.map +1 -0
  68. package/dist/types/utils.d.ts +12 -0
  69. package/dist/types/utils.d.ts.map +1 -0
  70. package/package.json +7 -6
  71. package/src/client.ts +101 -0
  72. package/src/hooks.ts +50 -0
  73. package/src/index.ts +153 -0
  74. package/src/item.ts +151 -0
  75. package/src/loader.ts +135 -0
  76. package/src/main.tsx +45 -0
  77. package/src/provider.tsx +225 -0
  78. package/src/registry.ts +63 -0
  79. package/src/renderer.tsx +99 -0
  80. package/src/request-info.ts +95 -0
  81. package/src/revalidate-item.ts +210 -0
  82. package/src/root-provider.tsx +181 -0
  83. package/src/runtime.ts +521 -0
  84. package/src/seo.ts +157 -0
  85. package/src/server/configs.ts +182 -0
  86. package/src/server/normalize-page-url.ts +65 -0
  87. package/src/server/revalidate-handler.ts +357 -0
  88. package/src/server/server-client.ts +727 -0
  89. package/src/server.ts +67 -0
  90. package/src/studio-bridge.tsx +82 -0
  91. package/src/studio-connect.tsx +88 -0
  92. package/src/studio-router.ts +85 -0
  93. package/src/studio-script-src.ts +125 -0
  94. package/src/theme-settings-store.ts +46 -0
  95. package/src/translation-context.tsx +299 -0
  96. package/src/translation-store.ts +69 -0
  97. package/src/types.ts +748 -0
  98. package/src/use-weaverse-next-studio.tsx +106 -0
  99. package/src/utils.ts +37 -0
  100. package/dist/chunk-MQ6N5ODA.mjs.map +0 -1
  101. package/dist/index.d.mts +0 -592
  102. package/dist/index.d.ts +0 -592
  103. package/dist/seo-CrEFl_Up.d.mts +0 -516
  104. package/dist/seo-CrEFl_Up.d.ts +0 -516
  105. package/dist/server.d.mts +0 -100
  106. package/dist/server.d.ts +0 -100
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { buildWeaverseNextRequestInfo, generateDataFromSchema } from './chunk-MQ6N5ODA.mjs';
2
- export { buildWeaverseNextRequestInfo, formatWeaverseNextSeoMetadata, generateDataFromSchema, getWeaverseNextSeoMetadata, runWeaverseComponentLoaders } from './chunk-MQ6N5ODA.mjs';
1
+ import { buildWeaverseNextRequestInfo, DEFAULT_REVALIDATE_ENDPOINT, revalidateWeaverseNextItem, generateDataFromSchema } from './chunk-NL22OVD7.mjs';
2
+ export { DEFAULT_REVALIDATE_ENDPOINT, buildWeaverseNextRequestInfo, buildWeaverseNextRevalidateRouteContext, formatWeaverseNextSeoMetadata, generateDataFromSchema, getWeaverseNextSeoMetadata, revalidateWeaverseNextItem, runWeaverseComponentLoaders } from './chunk-NL22OVD7.mjs';
3
3
  import { WeaverseRoot, Weaverse, WeaverseItemStore, useSafeExternalStore } from '@weaverse/react';
4
4
  export { isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
5
5
  import { createSchema } from '@weaverse/schema';
@@ -35,6 +35,7 @@ var WeaverseNextItem = class extends WeaverseItemStore {
35
35
  _cachedSnapshot = null;
36
36
  _snapshotStoreRef = null;
37
37
  _snapshotTranslationRef = null;
38
+ /** Create an item store from serialized component data and its runtime. */
38
39
  constructor(initialData, weaverse) {
39
40
  super(initialData, weaverse);
40
41
  let schemaData = generateDataFromSchema(this.Element?.schema);
@@ -300,18 +301,24 @@ var useThemeText = useTranslation;
300
301
 
301
302
  // src/translation-store.ts
302
303
  var TranslationStore = class {
304
+ /** Current flat translation overrides keyed by dot path. */
303
305
  overrides = {};
304
306
  listeners = /* @__PURE__ */ new Set();
307
+ /** Replace every override and notify subscribers. */
305
308
  setOverrides = (overrides) => {
306
309
  this.overrides = { ...overrides };
307
310
  this.emit();
308
311
  };
312
+ /** Merge changed overrides into the current values and notify subscribers. */
309
313
  updateOverrides = (newOverrides) => {
310
314
  this.overrides = { ...this.overrides, ...newOverrides };
311
315
  this.emit();
312
316
  };
317
+ /** Return the current client-side override snapshot. */
313
318
  getSnapshot = () => this.overrides;
319
+ /** Return the override snapshot used during server rendering. */
314
320
  getServerSnapshot = () => this.overrides;
321
+ /** Subscribe to override changes and return an unsubscribe function. */
315
322
  subscribe = (callback) => {
316
323
  this.listeners.add(callback);
317
324
  return () => {
@@ -551,11 +558,17 @@ function rebindPageItemsToRuntime(runtime) {
551
558
  }
552
559
  }
553
560
  var WeaverseNextRuntime = class extends Weaverse {
561
+ /** Stable ID of the page owned by this runtime. */
554
562
  pageId;
563
+ /** Mutable callbacks and stores consumed by the Studio bridge. */
555
564
  internal;
565
+ /** Path, query, and locale metadata for Studio navigation. */
556
566
  requestInfo;
567
+ /** Whether this runtime renders a component preview. */
557
568
  isPreviewMode;
569
+ /** Whether this runtime renders a saved revision. */
558
570
  isRevisionPreview;
571
+ /** Component type rendered in section preview mode. */
559
572
  sectionType;
560
573
  // ─── Item-level translation sidecar (design mode only) ─────────────
561
574
  /**
@@ -564,7 +577,9 @@ var WeaverseNextRuntime = class extends Weaverse {
564
577
  * components, so translations render without mutating the base `_store`.
565
578
  */
566
579
  translationMap = {};
580
+ /** Locale associated with the item-level translation sidecar. */
567
581
  translationLocale = String();
582
+ /** Weaverse language ID used when saving translation changes. */
568
583
  translationLanguageId = String();
569
584
  /**
570
585
  * Fresh page data captured while React was rendering. Runtime reuse happens
@@ -582,6 +597,7 @@ var WeaverseNextRuntime = class extends Weaverse {
582
597
  * deferred to `flushRenderPhaseUpdates()`.
583
598
  */
584
599
  pendingItemUpdates = [];
600
+ /** Create a browser runtime from a loaded page and its request context. */
585
601
  constructor(config) {
586
602
  let { client, data } = config;
587
603
  let page = getRenderablePage(data);
@@ -803,29 +819,6 @@ function bindWeaverseNextStudioRuntime(runtime) {
803
819
  });
804
820
  return true;
805
821
  }
806
-
807
- // src/revalidate-item.ts
808
- var DEFAULT_REVALIDATE_ENDPOINT = "/api/weaverse/revalidate";
809
- async function revalidateWeaverseNextItem(runtime, draftItem, endpoint = DEFAULT_REVALIDATE_ENDPOINT) {
810
- let instance = runtime.itemInstances.get(draftItem.id);
811
- if (!instance) {
812
- throw new Error(
813
- `[weaverse-next] No live item instance for "${draftItem.id}".`
814
- );
815
- }
816
- let response = await fetch(endpoint, {
817
- method: "POST",
818
- headers: { "Content-Type": "application/json" },
819
- body: JSON.stringify({ draftItem })
820
- });
821
- if (!response.ok) {
822
- throw new Error(
823
- `[weaverse-next] Revalidate endpoint responded ${response.status}.`
824
- );
825
- }
826
- let { loaderData } = await response.json();
827
- instance.setData({ loaderData: loaderData ?? null });
828
- }
829
822
  var STUDIO_BIND_RETRY_INTERVAL_MS = 50;
830
823
  var STUDIO_BIND_MAX_ATTEMPTS = 100;
831
824
  function WeaverseNextStudioBridge(props) {
@@ -1090,6 +1083,6 @@ function WeaverseNextStudioConnect(props) {
1090
1083
  return null;
1091
1084
  }
1092
1085
 
1093
- export { DEFAULT_REVALIDATE_ENDPOINT, ThemeTextProvider, ThemeTextStore, TranslationProvider, TranslationStore, WeaverseNextProvider, WeaverseNextRenderer, WeaverseNextRootProvider, WeaverseNextRuntime, WeaverseNextStudio, WeaverseNextStudioBridge, WeaverseNextStudioConnect, bindWeaverseNextStudioRuntime, createTranslate, createWeaverseNextClient, createWeaverseNextRuntime, createWeaverseNextStudioInternals, createWeaverseNextThemeSettingsStore, getNestedKey, interpolate, loadWeaverseNextStudioScript, resolveWeaverseNextStudioScriptSrc, revalidateWeaverseNextItem, useThemeSettings, useThemeText, useTranslation, useWeaverseCommerce, useWeaverseNextStudioInternals, useWeaversePageData, useWeaverseRootData };
1086
+ export { ThemeTextProvider, ThemeTextStore, TranslationProvider, TranslationStore, WeaverseNextProvider, WeaverseNextRenderer, WeaverseNextRootProvider, WeaverseNextRuntime, WeaverseNextStudio, WeaverseNextStudioBridge, WeaverseNextStudioConnect, bindWeaverseNextStudioRuntime, createTranslate, createWeaverseNextClient, createWeaverseNextRuntime, createWeaverseNextStudioInternals, createWeaverseNextThemeSettingsStore, getNestedKey, interpolate, loadWeaverseNextStudioScript, resolveWeaverseNextStudioScriptSrc, useThemeSettings, useThemeText, useTranslation, useWeaverseCommerce, useWeaverseNextStudioInternals, useWeaversePageData, useWeaverseRootData };
1094
1087
  //# sourceMappingURL=index.mjs.map
1095
1088
  //# sourceMappingURL=index.mjs.map