@weaverse/hydrogen 1.0.22 → 1.0.24
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 +14 -12
- package/dist/index.js +61 -60
- package/dist/index.mjs +60 -57
- package/package.json +5 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { Weaverse
|
|
1
|
+
import { Weaverse } from '@weaverse/core';
|
|
2
2
|
import { LoaderArgs } from '@remix-run/server-runtime';
|
|
3
3
|
|
|
4
|
-
type
|
|
5
|
-
weaverseHost?: string;
|
|
4
|
+
type WeaverseHydrogenConfigs = {
|
|
6
5
|
projectId: string;
|
|
7
|
-
|
|
6
|
+
weaverseHost: string;
|
|
7
|
+
components: {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
8
10
|
};
|
|
9
|
-
|
|
11
|
+
|
|
10
12
|
declare let useStudio: (weaverseCore: Weaverse) => void;
|
|
11
13
|
|
|
12
|
-
declare function weaverseLoader({ request, context, params
|
|
14
|
+
declare function weaverseLoader({ request, context, params }: LoaderArgs, weaverseConfig: WeaverseHydrogenConfigs): Promise<any>;
|
|
13
15
|
|
|
14
|
-
declare let
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
declare let useWeaverseHydrogen: (weaverseHydrogenConfigs: WeaverseHydrogenConfigs, data: any) => Weaverse;
|
|
17
|
+
declare let WeaverseHydrogenRoot: ({ configs, data, }: {
|
|
18
|
+
configs: WeaverseHydrogenConfigs;
|
|
19
|
+
data: any;
|
|
20
|
+
}) => JSX.Element;
|
|
19
21
|
|
|
20
|
-
export {
|
|
22
|
+
export { WeaverseHydrogenRoot, useStudio, useWeaverseHydrogen, weaverseLoader };
|
package/dist/index.js
CHANGED
|
@@ -31,103 +31,104 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
|
|
34
|
-
createHydrogenRootContext: () => createHydrogenRootContext,
|
|
35
|
-
createWeaverseHydrogenContext: () => createWeaverseHydrogenContext,
|
|
36
|
-
fetchPageData: () => fetchPageData,
|
|
37
34
|
useStudio: () => useStudio,
|
|
35
|
+
useWeaverseHydrogen: () => useWeaverseHydrogen,
|
|
38
36
|
weaverseLoader: () => weaverseLoader
|
|
39
37
|
});
|
|
40
38
|
module.exports = __toCommonJS(src_exports);
|
|
41
39
|
|
|
42
|
-
// src/elements/index.ts
|
|
43
|
-
var elements = {};
|
|
44
|
-
var elements_default = elements;
|
|
45
|
-
|
|
46
|
-
// src/index.tsx
|
|
47
|
-
var import_core2 = require("@weaverse/core");
|
|
48
|
-
|
|
49
40
|
// src/utils.ts
|
|
50
41
|
var import_core = require("@weaverse/core");
|
|
51
42
|
var import_react = require("react");
|
|
52
|
-
var fetchPageData = async ({
|
|
53
|
-
weaverseHost = "https://studio.weaverse.io",
|
|
54
|
-
projectId,
|
|
55
|
-
url
|
|
56
|
-
}) => {
|
|
57
|
-
let handle = url.pathname;
|
|
58
|
-
let isDesignMode = url.searchParams.get("isDesignMode") === "true";
|
|
59
|
-
let data = await fetch(weaverseHost + "/api/public/project", {
|
|
60
|
-
method: "POST",
|
|
61
|
-
body: JSON.stringify({
|
|
62
|
-
projectId,
|
|
63
|
-
handle,
|
|
64
|
-
isDesignMode
|
|
65
|
-
})
|
|
66
|
-
}).then((res) => res.json()).catch((e) => {
|
|
67
|
-
console.error(e);
|
|
68
|
-
return {};
|
|
69
|
-
});
|
|
70
|
-
return { ...data, weaverseHost, isDesignMode };
|
|
71
|
-
};
|
|
72
43
|
var useStudio = (weaverseCore) => {
|
|
73
44
|
(0, import_react.useEffect)(() => {
|
|
74
45
|
if (weaverseCore.isDesignMode && import_core.isIframe && !window.weaverseStudioInitialized) {
|
|
46
|
+
console.log("useStudio", weaverseCore);
|
|
75
47
|
window.weaverseStudioInitialized = true;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
).then(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
48
|
+
let host = weaverseCore.weaverseHost;
|
|
49
|
+
let version = weaverseCore.weaverseVersion || Date.now();
|
|
50
|
+
(0, import_core.loadScript)(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
|
|
51
|
+
() => {
|
|
52
|
+
window?.createWeaverseStudioBridge(weaverseCore);
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
weaverseCore.triggerUpdate();
|
|
55
|
+
}, 2e3);
|
|
56
|
+
}
|
|
57
|
+
);
|
|
84
58
|
}
|
|
85
59
|
}, []);
|
|
86
60
|
};
|
|
87
61
|
|
|
88
62
|
// src/index.tsx
|
|
89
63
|
var import_react2 = __toESM(require("react"));
|
|
64
|
+
var import_react3 = require("@weaverse/react");
|
|
90
65
|
|
|
91
66
|
// src/weaverse-loader.ts
|
|
92
|
-
async function weaverseLoader({
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
67
|
+
async function weaverseLoader({ request, context, params }, weaverseConfig) {
|
|
68
|
+
let fetchBody = {
|
|
69
|
+
projectId: weaverseConfig.projectId,
|
|
70
|
+
url: request.url
|
|
71
|
+
};
|
|
72
|
+
let response = await fetch(
|
|
73
|
+
`${weaverseConfig.weaverseHost}/api/public/project`,
|
|
74
|
+
{
|
|
75
|
+
method: "POST",
|
|
76
|
+
headers: {
|
|
77
|
+
"Content-Type": "application/json"
|
|
78
|
+
},
|
|
79
|
+
body: JSON.stringify(fetchBody)
|
|
80
|
+
}
|
|
81
|
+
).then((res) => res.json());
|
|
97
82
|
return {
|
|
98
|
-
|
|
83
|
+
weaversePageData: response
|
|
99
84
|
};
|
|
100
85
|
}
|
|
101
86
|
|
|
102
87
|
// src/index.tsx
|
|
103
|
-
var createHydrogenRootContext = (configs,
|
|
104
|
-
let rootContext =
|
|
105
|
-
Object.keys(
|
|
106
|
-
rootContext.registerElement(
|
|
88
|
+
var createHydrogenRootContext = (configs, elements = {}) => {
|
|
89
|
+
let rootContext = (0, import_react3.createRootContext)(configs);
|
|
90
|
+
Object.keys(elements).forEach((key) => {
|
|
91
|
+
rootContext.registerElement(elements[key]);
|
|
107
92
|
});
|
|
108
93
|
return rootContext;
|
|
109
94
|
};
|
|
110
|
-
var
|
|
111
|
-
let
|
|
112
|
-
|
|
113
|
-
context.registerElement(elements_default[key]);
|
|
114
|
-
});
|
|
115
|
-
return context;
|
|
116
|
-
};
|
|
117
|
-
var WeaverseHydrogenRoot = () => {
|
|
95
|
+
var useWeaverseHydrogen = (weaverseHydrogenConfigs, data) => {
|
|
96
|
+
let weaversePageData = data?.weaverseData?.weaversePageData;
|
|
97
|
+
let { components, ...rest } = weaverseHydrogenConfigs;
|
|
118
98
|
let weaverse = createHydrogenRootContext({
|
|
99
|
+
...rest,
|
|
100
|
+
data: weaversePageData,
|
|
101
|
+
pageId: weaversePageData?.pageId,
|
|
119
102
|
isDesignMode: true,
|
|
120
103
|
platformType: "shopify-hydrogen"
|
|
121
104
|
});
|
|
105
|
+
Object.keys(components).forEach((key) => {
|
|
106
|
+
let component = components[key];
|
|
107
|
+
weaverse.registerElement({
|
|
108
|
+
type: components[key]?.schema?.type || key,
|
|
109
|
+
Component: component?.default,
|
|
110
|
+
schema: component?.schema,
|
|
111
|
+
defaultCss: component?.css,
|
|
112
|
+
permanentCss: component?.permanentCss
|
|
113
|
+
});
|
|
114
|
+
});
|
|
122
115
|
useStudio(weaverse);
|
|
123
|
-
return
|
|
116
|
+
return weaverse;
|
|
117
|
+
};
|
|
118
|
+
var WeaverseHydrogenRoot = ({
|
|
119
|
+
configs,
|
|
120
|
+
data
|
|
121
|
+
}) => {
|
|
122
|
+
let weaverse = useWeaverseHydrogen(configs, data);
|
|
123
|
+
if (!weaverse?.data) {
|
|
124
|
+
return /* @__PURE__ */ import_react2.default.createElement("div", null, "404");
|
|
125
|
+
}
|
|
126
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react3.WeaverseRoot, { context: weaverse });
|
|
124
127
|
};
|
|
125
128
|
// Annotate the CommonJS export names for ESM import in node:
|
|
126
129
|
0 && (module.exports = {
|
|
127
130
|
WeaverseHydrogenRoot,
|
|
128
|
-
createHydrogenRootContext,
|
|
129
|
-
createWeaverseHydrogenContext,
|
|
130
|
-
fetchPageData,
|
|
131
131
|
useStudio,
|
|
132
|
+
useWeaverseHydrogen,
|
|
132
133
|
weaverseLoader
|
|
133
134
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,91 +1,94 @@
|
|
|
1
|
-
// src/elements/index.ts
|
|
2
|
-
var elements = {};
|
|
3
|
-
var elements_default = elements;
|
|
4
|
-
|
|
5
|
-
// src/index.tsx
|
|
6
|
-
import { Weaverse } from "@weaverse/core";
|
|
7
|
-
|
|
8
1
|
// src/utils.ts
|
|
9
2
|
import { isIframe, loadScript } from "@weaverse/core";
|
|
10
3
|
import { useEffect } from "react";
|
|
11
|
-
var fetchPageData = async ({
|
|
12
|
-
weaverseHost = "https://studio.weaverse.io",
|
|
13
|
-
projectId,
|
|
14
|
-
url
|
|
15
|
-
}) => {
|
|
16
|
-
let handle = url.pathname;
|
|
17
|
-
let isDesignMode = url.searchParams.get("isDesignMode") === "true";
|
|
18
|
-
let data = await fetch(weaverseHost + "/api/public/project", {
|
|
19
|
-
method: "POST",
|
|
20
|
-
body: JSON.stringify({
|
|
21
|
-
projectId,
|
|
22
|
-
handle,
|
|
23
|
-
isDesignMode
|
|
24
|
-
})
|
|
25
|
-
}).then((res) => res.json()).catch((e) => {
|
|
26
|
-
console.error(e);
|
|
27
|
-
return {};
|
|
28
|
-
});
|
|
29
|
-
return { ...data, weaverseHost, isDesignMode };
|
|
30
|
-
};
|
|
31
4
|
var useStudio = (weaverseCore) => {
|
|
32
5
|
useEffect(() => {
|
|
33
6
|
if (weaverseCore.isDesignMode && isIframe && !window.weaverseStudioInitialized) {
|
|
7
|
+
console.log("useStudio", weaverseCore);
|
|
34
8
|
window.weaverseStudioInitialized = true;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
).then(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
9
|
+
let host = weaverseCore.weaverseHost;
|
|
10
|
+
let version = weaverseCore.weaverseVersion || Date.now();
|
|
11
|
+
loadScript(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
|
|
12
|
+
() => {
|
|
13
|
+
window?.createWeaverseStudioBridge(weaverseCore);
|
|
14
|
+
setTimeout(() => {
|
|
15
|
+
weaverseCore.triggerUpdate();
|
|
16
|
+
}, 2e3);
|
|
17
|
+
}
|
|
18
|
+
);
|
|
43
19
|
}
|
|
44
20
|
}, []);
|
|
45
21
|
};
|
|
46
22
|
|
|
47
23
|
// src/index.tsx
|
|
48
24
|
import React from "react";
|
|
25
|
+
import { WeaverseRoot, createRootContext } from "@weaverse/react";
|
|
49
26
|
|
|
50
27
|
// src/weaverse-loader.ts
|
|
51
|
-
async function weaverseLoader({
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
28
|
+
async function weaverseLoader({ request, context, params }, weaverseConfig) {
|
|
29
|
+
let fetchBody = {
|
|
30
|
+
projectId: weaverseConfig.projectId,
|
|
31
|
+
url: request.url
|
|
32
|
+
};
|
|
33
|
+
let response = await fetch(
|
|
34
|
+
`${weaverseConfig.weaverseHost}/api/public/project`,
|
|
35
|
+
{
|
|
36
|
+
method: "POST",
|
|
37
|
+
headers: {
|
|
38
|
+
"Content-Type": "application/json"
|
|
39
|
+
},
|
|
40
|
+
body: JSON.stringify(fetchBody)
|
|
41
|
+
}
|
|
42
|
+
).then((res) => res.json());
|
|
56
43
|
return {
|
|
57
|
-
|
|
44
|
+
weaversePageData: response
|
|
58
45
|
};
|
|
59
46
|
}
|
|
60
47
|
|
|
61
48
|
// src/index.tsx
|
|
62
|
-
var createHydrogenRootContext = (configs,
|
|
63
|
-
let rootContext =
|
|
64
|
-
Object.keys(
|
|
65
|
-
rootContext.registerElement(
|
|
49
|
+
var createHydrogenRootContext = (configs, elements = {}) => {
|
|
50
|
+
let rootContext = createRootContext(configs);
|
|
51
|
+
Object.keys(elements).forEach((key) => {
|
|
52
|
+
rootContext.registerElement(elements[key]);
|
|
66
53
|
});
|
|
67
54
|
return rootContext;
|
|
68
55
|
};
|
|
69
|
-
var
|
|
70
|
-
let
|
|
71
|
-
|
|
72
|
-
context.registerElement(elements_default[key]);
|
|
73
|
-
});
|
|
74
|
-
return context;
|
|
75
|
-
};
|
|
76
|
-
var WeaverseHydrogenRoot = () => {
|
|
56
|
+
var useWeaverseHydrogen = (weaverseHydrogenConfigs, data) => {
|
|
57
|
+
let weaversePageData = data?.weaverseData?.weaversePageData;
|
|
58
|
+
let { components, ...rest } = weaverseHydrogenConfigs;
|
|
77
59
|
let weaverse = createHydrogenRootContext({
|
|
60
|
+
...rest,
|
|
61
|
+
data: weaversePageData,
|
|
62
|
+
pageId: weaversePageData?.pageId,
|
|
78
63
|
isDesignMode: true,
|
|
79
64
|
platformType: "shopify-hydrogen"
|
|
80
65
|
});
|
|
66
|
+
Object.keys(components).forEach((key) => {
|
|
67
|
+
let component = components[key];
|
|
68
|
+
weaverse.registerElement({
|
|
69
|
+
type: components[key]?.schema?.type || key,
|
|
70
|
+
Component: component?.default,
|
|
71
|
+
schema: component?.schema,
|
|
72
|
+
defaultCss: component?.css,
|
|
73
|
+
permanentCss: component?.permanentCss
|
|
74
|
+
});
|
|
75
|
+
});
|
|
81
76
|
useStudio(weaverse);
|
|
82
|
-
return
|
|
77
|
+
return weaverse;
|
|
78
|
+
};
|
|
79
|
+
var WeaverseHydrogenRoot = ({
|
|
80
|
+
configs,
|
|
81
|
+
data
|
|
82
|
+
}) => {
|
|
83
|
+
let weaverse = useWeaverseHydrogen(configs, data);
|
|
84
|
+
if (!weaverse?.data) {
|
|
85
|
+
return /* @__PURE__ */ React.createElement("div", null, "404");
|
|
86
|
+
}
|
|
87
|
+
return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
|
|
83
88
|
};
|
|
84
89
|
export {
|
|
85
90
|
WeaverseHydrogenRoot,
|
|
86
|
-
createHydrogenRootContext,
|
|
87
|
-
createWeaverseHydrogenContext,
|
|
88
|
-
fetchPageData,
|
|
89
91
|
useStudio,
|
|
92
|
+
useWeaverseHydrogen,
|
|
90
93
|
weaverseLoader
|
|
91
94
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.
|
|
2
|
+
"version": "1.0.24",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"start": "npm run dev",
|
|
18
|
-
"dev": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --watch --external react
|
|
19
|
-
"build": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --external react
|
|
18
|
+
"dev": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --watch --external react",
|
|
19
|
+
"build": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --external react",
|
|
20
20
|
"clean": "rimraf dist",
|
|
21
21
|
"prepublish": "npm run build"
|
|
22
22
|
},
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"name": "@weaverse/hydrogen",
|
|
33
33
|
"author": "Weaverse Team",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@weaverse/
|
|
35
|
+
"@weaverse/react": "1.0.24",
|
|
36
|
+
"@weaverse/core": "1.0.24",
|
|
36
37
|
"@shopify/hydrogen": "2023.1.6"
|
|
37
38
|
}
|
|
38
39
|
}
|