@weaverse/hydrogen 1.0.47 → 1.0.49
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 +27 -22
- package/dist/index.js +23 -39
- package/dist/index.mjs +22 -38
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import React, { ForwardRefExoticComponent } from 'react';
|
|
2
2
|
import { LoaderArgs, AppLoadContext } from '@shopify/remix-oxygen';
|
|
3
|
-
import { ElementData, ElementSchema, WeaverseElement, Weaverse, WeaverseItemStore } from '@weaverse/react';
|
|
3
|
+
import { ElementData, ElementSchema, BasicInput, WeaverseElement, Weaverse, WeaverseItemStore } from '@weaverse/react';
|
|
4
4
|
export * from '@weaverse/react';
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* Declare local additions to `AppLoadContext` to include the session utilities we injected in `server.ts`.
|
|
8
|
-
*/
|
|
9
6
|
type TODO = any;
|
|
10
7
|
declare module '@shopify/remix-oxygen' {
|
|
11
8
|
interface AppLoadContext {
|
|
@@ -34,27 +31,35 @@ interface HydrogenComponentData extends Omit<ElementData, 'childIds' | 'css'> {
|
|
|
34
31
|
loaderData: unknown;
|
|
35
32
|
data: Record<string, unknown>;
|
|
36
33
|
}
|
|
37
|
-
type ComponentFlags = Partial<Record<
|
|
38
|
-
interface HydrogenComponentSchema extends Omit<ElementSchema, 'parentTypes' | 'flags'> {
|
|
34
|
+
type ComponentFlags = Partial<Record<string, boolean>>;
|
|
35
|
+
interface HydrogenComponentSchema extends Omit<ElementSchema, 'parentTypes' | 'flags' | 'inspector'> {
|
|
39
36
|
flags?: ComponentFlags;
|
|
40
37
|
childTypes?: string[];
|
|
38
|
+
inspector: InspectorGroup[];
|
|
39
|
+
presets?: Omit<HydrogenComponentPresets, 'type'>;
|
|
41
40
|
}
|
|
42
|
-
interface
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
interface InspectorGroup {
|
|
42
|
+
group: string;
|
|
43
|
+
inputs: BasicInput[];
|
|
44
|
+
}
|
|
45
|
+
interface HydrogenComponentProps<L = unknown> extends WeaverseElement {
|
|
46
|
+
className?: string;
|
|
46
47
|
loaderData?: L;
|
|
47
48
|
children?: React.JSX.Element[];
|
|
48
49
|
}
|
|
49
|
-
interface WeaverseHydrogen extends Omit<Weaverse, 'itemInstances'> {
|
|
50
|
+
interface WeaverseHydrogen extends Omit<Weaverse, 'itemInstances' | 'elementInstances' | 'registerElement'> {
|
|
50
51
|
itemInstances: Map<string | number, HydrogenComponentInstance>;
|
|
52
|
+
elementInstances: Map<string, HydrogenElement>;
|
|
53
|
+
registerElement(element: HydrogenElement): void;
|
|
51
54
|
}
|
|
52
|
-
type
|
|
55
|
+
type HydrogenComponentPresets = {
|
|
56
|
+
type: string;
|
|
57
|
+
children?: HydrogenComponentPresets[];
|
|
58
|
+
};
|
|
53
59
|
interface HydrogenElement {
|
|
54
|
-
Component: ForwardRefExoticComponent<
|
|
60
|
+
Component: ForwardRefExoticComponent<HydrogenComponentProps>;
|
|
55
61
|
type: string;
|
|
56
62
|
schema?: HydrogenComponentSchema;
|
|
57
|
-
template?: HydrogenComponentTemplate;
|
|
58
63
|
}
|
|
59
64
|
interface HydrogenComponentInstance extends Omit<WeaverseItemStore, '_flags' | 'data' | 'Element'> {
|
|
60
65
|
get _element(): HTMLElement | null;
|
|
@@ -78,6 +83,13 @@ interface HydrogenPageData {
|
|
|
78
83
|
page: any;
|
|
79
84
|
configs: HydrogenPageConfigs;
|
|
80
85
|
}
|
|
86
|
+
interface WeaverseHydrogenRootProps {
|
|
87
|
+
components: Record<string, HydrogenComponent>;
|
|
88
|
+
data: {
|
|
89
|
+
weaverseData?: HydrogenPageData;
|
|
90
|
+
[key: string]: any;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
81
93
|
|
|
82
94
|
/**
|
|
83
95
|
* Fetch with server cache requires a storefront.cache instance which is Cloudflare Cache and a waitUntil function, otherwise it will just fetch the url.
|
|
@@ -90,13 +102,6 @@ declare let fetchWithServerCache: ({ url, options, context, }: {
|
|
|
90
102
|
|
|
91
103
|
declare function weaverseLoader(args: LoaderArgs, components: Record<string, HydrogenComponent>): Promise<HydrogenPageData | null>;
|
|
92
104
|
|
|
93
|
-
interface WeaverseHydrogenRootProps {
|
|
94
|
-
components: Record<string, HydrogenComponent>;
|
|
95
|
-
data: {
|
|
96
|
-
weaverseData: HydrogenPageData;
|
|
97
|
-
[key: string]: any;
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
105
|
declare let WeaverseHydrogenRoot: (props: WeaverseHydrogenRootProps) => React.JSX.Element;
|
|
101
106
|
|
|
102
|
-
export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentProps, HydrogenComponentSchema,
|
|
107
|
+
export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageConfigs, HydrogenPageData, InspectorGroup, TODO, WeaverseHydrogen, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseLoaderArgs, fetchWithServerCache, weaverseLoader };
|
package/dist/index.js
CHANGED
|
@@ -41,15 +41,18 @@ var import_react4 = __toESM(require("react"));
|
|
|
41
41
|
|
|
42
42
|
// src/context.ts
|
|
43
43
|
var import_react = require("@weaverse/react");
|
|
44
|
+
function createRootContext(init) {
|
|
45
|
+
return new import_react.Weaverse(init);
|
|
46
|
+
}
|
|
44
47
|
function createCachedContext(init) {
|
|
45
48
|
if (import_react.isBrowser && init.pageId) {
|
|
46
49
|
window.__weaverses = window.__weaverses || {};
|
|
47
50
|
if (!window.__weaverses[init.pageId]) {
|
|
48
|
-
window.__weaverses[init.pageId] =
|
|
51
|
+
window.__weaverses[init.pageId] = createRootContext(init);
|
|
49
52
|
}
|
|
50
53
|
return window.__weaverses[init.pageId];
|
|
51
54
|
}
|
|
52
|
-
return
|
|
55
|
+
return createRootContext(init);
|
|
53
56
|
}
|
|
54
57
|
function createWeaverseHydrogenContext({ weaverseData }, components) {
|
|
55
58
|
let { page = {}, configs = {} } = weaverseData || {};
|
|
@@ -64,10 +67,7 @@ function createWeaverseHydrogenContext({ weaverseData }, components) {
|
|
|
64
67
|
weaverse.registerElement({
|
|
65
68
|
type: component?.schema?.type || key,
|
|
66
69
|
Component: component?.default,
|
|
67
|
-
|
|
68
|
-
schema: component?.schema,
|
|
69
|
-
// @ts-ignore
|
|
70
|
-
template: component?.template
|
|
70
|
+
schema: component?.schema
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
73
|
return weaverse;
|
|
@@ -549,15 +549,10 @@ var WeaverseItemStore = class {
|
|
|
549
549
|
constructor(itemData, weaverse) {
|
|
550
550
|
this.listeners = /* @__PURE__ */ new Set();
|
|
551
551
|
this.ref = { current: null };
|
|
552
|
-
this.platformType = "shopify-section";
|
|
553
552
|
this.stitchesClass = "";
|
|
554
553
|
this._store = { id: "", type: "" };
|
|
555
554
|
this.setData = (update) => {
|
|
556
|
-
|
|
557
|
-
this.data = update;
|
|
558
|
-
} else {
|
|
559
|
-
this.data = Object.assign(this.data, update);
|
|
560
|
-
}
|
|
555
|
+
this.data = Object.assign(this.data, update);
|
|
561
556
|
this.triggerUpdate();
|
|
562
557
|
return this.data;
|
|
563
558
|
};
|
|
@@ -574,10 +569,14 @@ var WeaverseItemStore = class {
|
|
|
574
569
|
};
|
|
575
570
|
let { type, id } = itemData;
|
|
576
571
|
this.weaverse = weaverse;
|
|
577
|
-
this.platformType = weaverse.platformType;
|
|
578
572
|
if (id && type) {
|
|
579
573
|
weaverse.itemInstances.set(id, this);
|
|
580
|
-
|
|
574
|
+
if (weaverse.platformType === "shopify-hydrogen") {
|
|
575
|
+
let { data, ...rest } = itemData;
|
|
576
|
+
this._store = { ...data, ...rest };
|
|
577
|
+
} else {
|
|
578
|
+
this._store = { ...itemData };
|
|
579
|
+
}
|
|
581
580
|
}
|
|
582
581
|
}
|
|
583
582
|
get _id() {
|
|
@@ -593,33 +592,18 @@ var WeaverseItemStore = class {
|
|
|
593
592
|
return this.weaverse.elementInstances.get(this._store.type);
|
|
594
593
|
}
|
|
595
594
|
set data(update) {
|
|
596
|
-
|
|
597
|
-
let { children, ...rest } = update;
|
|
598
|
-
if (children) {
|
|
599
|
-
this._store.children = children;
|
|
600
|
-
}
|
|
601
|
-
this._store.data = merge(this._store.data, rest);
|
|
602
|
-
} else {
|
|
603
|
-
this._store = { ...this.data, ...update };
|
|
604
|
-
}
|
|
595
|
+
this._store = { ...this.data, ...update };
|
|
605
596
|
}
|
|
606
597
|
get data() {
|
|
607
598
|
let defaultProps = { ...this.Element?.Component?.defaultProps };
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
} else {
|
|
614
|
-
let defaultCss = this.Element?.defaultCss || {};
|
|
615
|
-
let currentCss = this._store.css || {};
|
|
616
|
-
let css = merge(defaultCss, currentCss);
|
|
617
|
-
let extraData = this.Element?.extraData;
|
|
618
|
-
return { ...defaultProps, ...extraData, ...this._store, css };
|
|
619
|
-
}
|
|
599
|
+
let defaultCss = this.Element?.defaultCss || {};
|
|
600
|
+
let currentCss = this._store.css || {};
|
|
601
|
+
let css = merge(defaultCss, currentCss);
|
|
602
|
+
let extraData = this.Element?.extraData;
|
|
603
|
+
return { ...defaultProps, ...extraData, ...this._store, css };
|
|
620
604
|
}
|
|
621
605
|
};
|
|
622
|
-
var
|
|
606
|
+
var Weaverse2 = class {
|
|
623
607
|
/**
|
|
624
608
|
* constructor
|
|
625
609
|
* @param weaverseHost {string} Weaverse base URL that can provide by user/developer. for local development, use localhost:3000
|
|
@@ -634,7 +618,7 @@ var Weaverse = class {
|
|
|
634
618
|
constructor(params = {}) {
|
|
635
619
|
this.elementInstances = /* @__PURE__ */ new Map();
|
|
636
620
|
this.itemInstances = /* @__PURE__ */ new Map();
|
|
637
|
-
this.weaverseHost = "https://
|
|
621
|
+
this.weaverseHost = "https://weaverse.io";
|
|
638
622
|
this.weaverseVersion = "";
|
|
639
623
|
this.projectId = "";
|
|
640
624
|
this.pageId = "";
|
|
@@ -715,13 +699,13 @@ var Weaverse = class {
|
|
|
715
699
|
if (data?.items) {
|
|
716
700
|
data.items.forEach((item) => {
|
|
717
701
|
if (!this.itemInstances.get(item.id)) {
|
|
718
|
-
new WeaverseItemStore(item, this);
|
|
702
|
+
return new WeaverseItemStore(item, this);
|
|
719
703
|
}
|
|
720
704
|
});
|
|
721
705
|
}
|
|
722
706
|
}
|
|
723
707
|
};
|
|
724
|
-
|
|
708
|
+
Weaverse2.WeaverseItemStore = WeaverseItemStore;
|
|
725
709
|
|
|
726
710
|
// src/hooks/use-studio.ts
|
|
727
711
|
var import_react2 = require("react");
|
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,10 @@ import { WeaverseRoot } from "@weaverse/react";
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
|
|
5
5
|
// src/context.ts
|
|
6
|
-
import {
|
|
6
|
+
import { Weaverse, isBrowser } from "@weaverse/react";
|
|
7
|
+
function createRootContext(init) {
|
|
8
|
+
return new Weaverse(init);
|
|
9
|
+
}
|
|
7
10
|
function createCachedContext(init) {
|
|
8
11
|
if (isBrowser && init.pageId) {
|
|
9
12
|
window.__weaverses = window.__weaverses || {};
|
|
@@ -27,10 +30,7 @@ function createWeaverseHydrogenContext({ weaverseData }, components) {
|
|
|
27
30
|
weaverse.registerElement({
|
|
28
31
|
type: component?.schema?.type || key,
|
|
29
32
|
Component: component?.default,
|
|
30
|
-
|
|
31
|
-
schema: component?.schema,
|
|
32
|
-
// @ts-ignore
|
|
33
|
-
template: component?.template
|
|
33
|
+
schema: component?.schema
|
|
34
34
|
});
|
|
35
35
|
});
|
|
36
36
|
return weaverse;
|
|
@@ -512,15 +512,10 @@ var WeaverseItemStore = class {
|
|
|
512
512
|
constructor(itemData, weaverse) {
|
|
513
513
|
this.listeners = /* @__PURE__ */ new Set();
|
|
514
514
|
this.ref = { current: null };
|
|
515
|
-
this.platformType = "shopify-section";
|
|
516
515
|
this.stitchesClass = "";
|
|
517
516
|
this._store = { id: "", type: "" };
|
|
518
517
|
this.setData = (update) => {
|
|
519
|
-
|
|
520
|
-
this.data = update;
|
|
521
|
-
} else {
|
|
522
|
-
this.data = Object.assign(this.data, update);
|
|
523
|
-
}
|
|
518
|
+
this.data = Object.assign(this.data, update);
|
|
524
519
|
this.triggerUpdate();
|
|
525
520
|
return this.data;
|
|
526
521
|
};
|
|
@@ -537,10 +532,14 @@ var WeaverseItemStore = class {
|
|
|
537
532
|
};
|
|
538
533
|
let { type, id } = itemData;
|
|
539
534
|
this.weaverse = weaverse;
|
|
540
|
-
this.platformType = weaverse.platformType;
|
|
541
535
|
if (id && type) {
|
|
542
536
|
weaverse.itemInstances.set(id, this);
|
|
543
|
-
|
|
537
|
+
if (weaverse.platformType === "shopify-hydrogen") {
|
|
538
|
+
let { data, ...rest } = itemData;
|
|
539
|
+
this._store = { ...data, ...rest };
|
|
540
|
+
} else {
|
|
541
|
+
this._store = { ...itemData };
|
|
542
|
+
}
|
|
544
543
|
}
|
|
545
544
|
}
|
|
546
545
|
get _id() {
|
|
@@ -556,33 +555,18 @@ var WeaverseItemStore = class {
|
|
|
556
555
|
return this.weaverse.elementInstances.get(this._store.type);
|
|
557
556
|
}
|
|
558
557
|
set data(update) {
|
|
559
|
-
|
|
560
|
-
let { children, ...rest } = update;
|
|
561
|
-
if (children) {
|
|
562
|
-
this._store.children = children;
|
|
563
|
-
}
|
|
564
|
-
this._store.data = merge(this._store.data, rest);
|
|
565
|
-
} else {
|
|
566
|
-
this._store = { ...this.data, ...update };
|
|
567
|
-
}
|
|
558
|
+
this._store = { ...this.data, ...update };
|
|
568
559
|
}
|
|
569
560
|
get data() {
|
|
570
561
|
let defaultProps = { ...this.Element?.Component?.defaultProps };
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
} else {
|
|
577
|
-
let defaultCss = this.Element?.defaultCss || {};
|
|
578
|
-
let currentCss = this._store.css || {};
|
|
579
|
-
let css = merge(defaultCss, currentCss);
|
|
580
|
-
let extraData = this.Element?.extraData;
|
|
581
|
-
return { ...defaultProps, ...extraData, ...this._store, css };
|
|
582
|
-
}
|
|
562
|
+
let defaultCss = this.Element?.defaultCss || {};
|
|
563
|
+
let currentCss = this._store.css || {};
|
|
564
|
+
let css = merge(defaultCss, currentCss);
|
|
565
|
+
let extraData = this.Element?.extraData;
|
|
566
|
+
return { ...defaultProps, ...extraData, ...this._store, css };
|
|
583
567
|
}
|
|
584
568
|
};
|
|
585
|
-
var
|
|
569
|
+
var Weaverse2 = class {
|
|
586
570
|
/**
|
|
587
571
|
* constructor
|
|
588
572
|
* @param weaverseHost {string} Weaverse base URL that can provide by user/developer. for local development, use localhost:3000
|
|
@@ -597,7 +581,7 @@ var Weaverse = class {
|
|
|
597
581
|
constructor(params = {}) {
|
|
598
582
|
this.elementInstances = /* @__PURE__ */ new Map();
|
|
599
583
|
this.itemInstances = /* @__PURE__ */ new Map();
|
|
600
|
-
this.weaverseHost = "https://
|
|
584
|
+
this.weaverseHost = "https://weaverse.io";
|
|
601
585
|
this.weaverseVersion = "";
|
|
602
586
|
this.projectId = "";
|
|
603
587
|
this.pageId = "";
|
|
@@ -678,13 +662,13 @@ var Weaverse = class {
|
|
|
678
662
|
if (data?.items) {
|
|
679
663
|
data.items.forEach((item) => {
|
|
680
664
|
if (!this.itemInstances.get(item.id)) {
|
|
681
|
-
new WeaverseItemStore(item, this);
|
|
665
|
+
return new WeaverseItemStore(item, this);
|
|
682
666
|
}
|
|
683
667
|
});
|
|
684
668
|
}
|
|
685
669
|
}
|
|
686
670
|
};
|
|
687
|
-
|
|
671
|
+
Weaverse2.WeaverseItemStore = WeaverseItemStore;
|
|
688
672
|
|
|
689
673
|
// src/hooks/use-studio.ts
|
|
690
674
|
import { useEffect } from "react";
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.
|
|
2
|
+
"version": "1.0.49",
|
|
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.4",
|
|
36
|
+
"@weaverse/react": "1.0.49"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@shopify/remix-oxygen": "^1.0
|
|
39
|
+
"@shopify/remix-oxygen": "^1.1.0"
|
|
40
40
|
}
|
|
41
41
|
}
|