@weaverse/hydrogen 1.0.49 → 1.0.50
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/index.d.ts +9 -6
- package/dist/index.js +26 -26
- package/dist/index.mjs +26 -26
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ type WeaverseLoaderArgs = LoaderArgs & {
|
|
|
21
21
|
};
|
|
22
22
|
interface HydrogenComponentData extends Omit<ElementData, 'childIds' | 'css'> {
|
|
23
23
|
id: string;
|
|
24
|
+
type: string;
|
|
24
25
|
createdAt: string;
|
|
25
26
|
updatedAt: string;
|
|
26
27
|
deletedAt: string;
|
|
@@ -42,7 +43,7 @@ interface InspectorGroup {
|
|
|
42
43
|
group: string;
|
|
43
44
|
inputs: BasicInput[];
|
|
44
45
|
}
|
|
45
|
-
interface HydrogenComponentProps<L =
|
|
46
|
+
interface HydrogenComponentProps<L = any> extends WeaverseElement {
|
|
46
47
|
className?: string;
|
|
47
48
|
loaderData?: L;
|
|
48
49
|
children?: React.JSX.Element[];
|
|
@@ -83,12 +84,14 @@ interface HydrogenPageData {
|
|
|
83
84
|
page: any;
|
|
84
85
|
configs: HydrogenPageConfigs;
|
|
85
86
|
}
|
|
87
|
+
type WeaverseHydrogenLoaderData = {
|
|
88
|
+
weaverseData?: HydrogenPageData;
|
|
89
|
+
[key: string]: any;
|
|
90
|
+
};
|
|
86
91
|
interface WeaverseHydrogenRootProps {
|
|
87
92
|
components: Record<string, HydrogenComponent>;
|
|
88
|
-
data:
|
|
89
|
-
|
|
90
|
-
[key: string]: any;
|
|
91
|
-
};
|
|
93
|
+
data: WeaverseHydrogenLoaderData;
|
|
94
|
+
themeSchema?: InspectorGroup[];
|
|
92
95
|
}
|
|
93
96
|
|
|
94
97
|
/**
|
|
@@ -104,4 +107,4 @@ declare function weaverseLoader(args: LoaderArgs, components: Record<string, Hyd
|
|
|
104
107
|
|
|
105
108
|
declare let WeaverseHydrogenRoot: (props: WeaverseHydrogenRootProps) => React.JSX.Element;
|
|
106
109
|
|
|
107
|
-
export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageConfigs, HydrogenPageData, InspectorGroup, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseLoaderArgs, fetchWithServerCache, weaverseLoader };
|
|
110
|
+
export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageConfigs, HydrogenPageData, InspectorGroup, TODO, WeaverseHydrogen, WeaverseHydrogenLoaderData, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseLoaderArgs, fetchWithServerCache, weaverseLoader };
|
package/dist/index.js
CHANGED
|
@@ -45,24 +45,25 @@ function createRootContext(init) {
|
|
|
45
45
|
return new import_react.Weaverse(init);
|
|
46
46
|
}
|
|
47
47
|
function createCachedContext(init) {
|
|
48
|
-
if (import_react.isBrowser
|
|
48
|
+
if (import_react.isBrowser) {
|
|
49
49
|
window.__weaverses = window.__weaverses || {};
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
let pathname = window.location.pathname;
|
|
51
|
+
if (!window.__weaverses[pathname]) {
|
|
52
|
+
window.__weaverses[pathname] = createRootContext(init);
|
|
52
53
|
}
|
|
53
|
-
return window.__weaverses[
|
|
54
|
+
return window.__weaverses[pathname];
|
|
54
55
|
}
|
|
55
56
|
return createRootContext(init);
|
|
56
57
|
}
|
|
57
|
-
function createWeaverseHydrogenContext(
|
|
58
|
-
let
|
|
58
|
+
function createWeaverseHydrogenContext(data, components) {
|
|
59
|
+
let weaverseData = data?.weaverseData || {};
|
|
60
|
+
let { page = {}, configs = {} } = weaverseData;
|
|
59
61
|
let weaverse = createCachedContext({
|
|
60
62
|
...configs,
|
|
61
63
|
data: page,
|
|
62
64
|
pageId: page?.id,
|
|
63
65
|
platformType: "shopify-hydrogen"
|
|
64
66
|
});
|
|
65
|
-
weaverse.elementInstances.clear();
|
|
66
67
|
Object.entries(components).forEach(([key, component]) => {
|
|
67
68
|
weaverse.registerElement({
|
|
68
69
|
type: component?.schema?.type || key,
|
|
@@ -709,10 +710,11 @@ Weaverse2.WeaverseItemStore = WeaverseItemStore;
|
|
|
709
710
|
|
|
710
711
|
// src/hooks/use-studio.ts
|
|
711
712
|
var import_react2 = require("react");
|
|
712
|
-
function useStudio(weaverseCore) {
|
|
713
|
+
function useStudio(weaverseCore, themeSchema) {
|
|
713
714
|
(0, import_react2.useEffect)(() => {
|
|
714
715
|
if (weaverseCore.isDesignMode && isIframe && !window.weaverseStudioInitialized) {
|
|
715
716
|
window.weaverseStudioInitialized = true;
|
|
717
|
+
weaverseCore.themeSchema = themeSchema;
|
|
716
718
|
let host = weaverseCore.weaverseHost;
|
|
717
719
|
let version = weaverseCore.weaverseVersion || Date.now();
|
|
718
720
|
loadScript(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
|
|
@@ -724,10 +726,8 @@ function useStudio(weaverseCore) {
|
|
|
724
726
|
}
|
|
725
727
|
);
|
|
726
728
|
}
|
|
727
|
-
window.
|
|
728
|
-
|
|
729
|
-
});
|
|
730
|
-
}, []);
|
|
729
|
+
window.__weaverse = weaverseCore;
|
|
730
|
+
}, [weaverseCore]);
|
|
731
731
|
}
|
|
732
732
|
|
|
733
733
|
// src/fetch.ts
|
|
@@ -794,12 +794,15 @@ var fetchWithServerCache = async ({
|
|
|
794
794
|
// src/loader.ts
|
|
795
795
|
async function weaverseLoader(args, components) {
|
|
796
796
|
let { request, context, params } = args;
|
|
797
|
-
let {
|
|
797
|
+
let {
|
|
798
|
+
env,
|
|
799
|
+
storefront: { i18n }
|
|
800
|
+
} = context;
|
|
798
801
|
let queries = getRequestQueries(request);
|
|
799
|
-
let projectId = env?.WEAVERSE_PROJECT_ID;
|
|
800
|
-
let weaverseHost = env?.WEAVERSE_HOST;
|
|
801
|
-
if (!projectId
|
|
802
|
-
console.log("\u274C Missing `
|
|
802
|
+
let projectId = queries?.projectId || env?.WEAVERSE_PROJECT_ID;
|
|
803
|
+
let weaverseHost = env?.WEAVERSE_HOST || "https://weaverse.io";
|
|
804
|
+
if (!projectId) {
|
|
805
|
+
console.log("\u274C Missing `projectId`!");
|
|
803
806
|
return null;
|
|
804
807
|
}
|
|
805
808
|
let configs = {
|
|
@@ -808,14 +811,13 @@ async function weaverseLoader(args, components) {
|
|
|
808
811
|
...queries
|
|
809
812
|
};
|
|
810
813
|
try {
|
|
814
|
+
let projectAPI = `${weaverseHost}/api/public/project`;
|
|
815
|
+
let url = request.url;
|
|
811
816
|
let page = await fetchWithServerCache({
|
|
812
|
-
url:
|
|
817
|
+
url: projectAPI,
|
|
813
818
|
options: {
|
|
814
819
|
method: "POST",
|
|
815
|
-
body: JSON.stringify({
|
|
816
|
-
projectId,
|
|
817
|
-
url: request.url
|
|
818
|
-
})
|
|
820
|
+
body: JSON.stringify({ projectId, url, i18n })
|
|
819
821
|
},
|
|
820
822
|
context
|
|
821
823
|
}).then((r2) => r2.json()).catch((err) => {
|
|
@@ -858,11 +860,9 @@ async function weaverseLoader(args, components) {
|
|
|
858
860
|
// src/index.tsx
|
|
859
861
|
__reExport(src_exports, require("@weaverse/react"), module.exports);
|
|
860
862
|
var WeaverseHydrogenRoot = (props) => {
|
|
861
|
-
let { components, data } = props;
|
|
863
|
+
let { components, data, themeSchema } = props;
|
|
862
864
|
let weaverse = createWeaverseHydrogenContext(data, components);
|
|
863
|
-
useStudio(weaverse);
|
|
864
|
-
if (!weaverse?.data)
|
|
865
|
-
return /* @__PURE__ */ import_react4.default.createElement("div", null, "No Weaverse data!");
|
|
865
|
+
useStudio(weaverse, themeSchema);
|
|
866
866
|
return /* @__PURE__ */ import_react4.default.createElement(import_react3.WeaverseRoot, { context: weaverse });
|
|
867
867
|
};
|
|
868
868
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/index.mjs
CHANGED
|
@@ -8,24 +8,25 @@ function createRootContext(init) {
|
|
|
8
8
|
return new Weaverse(init);
|
|
9
9
|
}
|
|
10
10
|
function createCachedContext(init) {
|
|
11
|
-
if (isBrowser
|
|
11
|
+
if (isBrowser) {
|
|
12
12
|
window.__weaverses = window.__weaverses || {};
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
let pathname = window.location.pathname;
|
|
14
|
+
if (!window.__weaverses[pathname]) {
|
|
15
|
+
window.__weaverses[pathname] = createRootContext(init);
|
|
15
16
|
}
|
|
16
|
-
return window.__weaverses[
|
|
17
|
+
return window.__weaverses[pathname];
|
|
17
18
|
}
|
|
18
19
|
return createRootContext(init);
|
|
19
20
|
}
|
|
20
|
-
function createWeaverseHydrogenContext(
|
|
21
|
-
let
|
|
21
|
+
function createWeaverseHydrogenContext(data, components) {
|
|
22
|
+
let weaverseData = data?.weaverseData || {};
|
|
23
|
+
let { page = {}, configs = {} } = weaverseData;
|
|
22
24
|
let weaverse = createCachedContext({
|
|
23
25
|
...configs,
|
|
24
26
|
data: page,
|
|
25
27
|
pageId: page?.id,
|
|
26
28
|
platformType: "shopify-hydrogen"
|
|
27
29
|
});
|
|
28
|
-
weaverse.elementInstances.clear();
|
|
29
30
|
Object.entries(components).forEach(([key, component]) => {
|
|
30
31
|
weaverse.registerElement({
|
|
31
32
|
type: component?.schema?.type || key,
|
|
@@ -672,10 +673,11 @@ Weaverse2.WeaverseItemStore = WeaverseItemStore;
|
|
|
672
673
|
|
|
673
674
|
// src/hooks/use-studio.ts
|
|
674
675
|
import { useEffect } from "react";
|
|
675
|
-
function useStudio(weaverseCore) {
|
|
676
|
+
function useStudio(weaverseCore, themeSchema) {
|
|
676
677
|
useEffect(() => {
|
|
677
678
|
if (weaverseCore.isDesignMode && isIframe && !window.weaverseStudioInitialized) {
|
|
678
679
|
window.weaverseStudioInitialized = true;
|
|
680
|
+
weaverseCore.themeSchema = themeSchema;
|
|
679
681
|
let host = weaverseCore.weaverseHost;
|
|
680
682
|
let version = weaverseCore.weaverseVersion || Date.now();
|
|
681
683
|
loadScript(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
|
|
@@ -687,10 +689,8 @@ function useStudio(weaverseCore) {
|
|
|
687
689
|
}
|
|
688
690
|
);
|
|
689
691
|
}
|
|
690
|
-
window.
|
|
691
|
-
|
|
692
|
-
});
|
|
693
|
-
}, []);
|
|
692
|
+
window.__weaverse = weaverseCore;
|
|
693
|
+
}, [weaverseCore]);
|
|
694
694
|
}
|
|
695
695
|
|
|
696
696
|
// src/fetch.ts
|
|
@@ -757,12 +757,15 @@ var fetchWithServerCache = async ({
|
|
|
757
757
|
// src/loader.ts
|
|
758
758
|
async function weaverseLoader(args, components) {
|
|
759
759
|
let { request, context, params } = args;
|
|
760
|
-
let {
|
|
760
|
+
let {
|
|
761
|
+
env,
|
|
762
|
+
storefront: { i18n }
|
|
763
|
+
} = context;
|
|
761
764
|
let queries = getRequestQueries(request);
|
|
762
|
-
let projectId = env?.WEAVERSE_PROJECT_ID;
|
|
763
|
-
let weaverseHost = env?.WEAVERSE_HOST;
|
|
764
|
-
if (!projectId
|
|
765
|
-
console.log("\u274C Missing `
|
|
765
|
+
let projectId = queries?.projectId || env?.WEAVERSE_PROJECT_ID;
|
|
766
|
+
let weaverseHost = env?.WEAVERSE_HOST || "https://weaverse.io";
|
|
767
|
+
if (!projectId) {
|
|
768
|
+
console.log("\u274C Missing `projectId`!");
|
|
766
769
|
return null;
|
|
767
770
|
}
|
|
768
771
|
let configs = {
|
|
@@ -771,14 +774,13 @@ async function weaverseLoader(args, components) {
|
|
|
771
774
|
...queries
|
|
772
775
|
};
|
|
773
776
|
try {
|
|
777
|
+
let projectAPI = `${weaverseHost}/api/public/project`;
|
|
778
|
+
let url = request.url;
|
|
774
779
|
let page = await fetchWithServerCache({
|
|
775
|
-
url:
|
|
780
|
+
url: projectAPI,
|
|
776
781
|
options: {
|
|
777
782
|
method: "POST",
|
|
778
|
-
body: JSON.stringify({
|
|
779
|
-
projectId,
|
|
780
|
-
url: request.url
|
|
781
|
-
})
|
|
783
|
+
body: JSON.stringify({ projectId, url, i18n })
|
|
782
784
|
},
|
|
783
785
|
context
|
|
784
786
|
}).then((r2) => r2.json()).catch((err) => {
|
|
@@ -821,11 +823,9 @@ async function weaverseLoader(args, components) {
|
|
|
821
823
|
// src/index.tsx
|
|
822
824
|
export * from "@weaverse/react";
|
|
823
825
|
var WeaverseHydrogenRoot = (props) => {
|
|
824
|
-
let { components, data } = props;
|
|
826
|
+
let { components, data, themeSchema } = props;
|
|
825
827
|
let weaverse = createWeaverseHydrogenContext(data, components);
|
|
826
|
-
useStudio(weaverse);
|
|
827
|
-
if (!weaverse?.data)
|
|
828
|
-
return /* @__PURE__ */ React.createElement("div", null, "No Weaverse data!");
|
|
828
|
+
useStudio(weaverse, themeSchema);
|
|
829
829
|
return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
|
|
830
830
|
};
|
|
831
831
|
export {
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.
|
|
2
|
+
"version": "1.0.50",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"name": "@weaverse/hydrogen",
|
|
33
33
|
"author": "Weaverse Team",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@shopify/hydrogen": "2023.4.
|
|
36
|
-
"@weaverse/react": "1.0.
|
|
35
|
+
"@shopify/hydrogen": "2023.4.5",
|
|
36
|
+
"@weaverse/react": "1.0.50"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@shopify/remix-oxygen": "^1.1.
|
|
39
|
+
"@shopify/remix-oxygen": "^1.1.1"
|
|
40
40
|
}
|
|
41
41
|
}
|