@weaverse/core 4.3.3 → 5.0.0-next.0
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.mts +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +19 -24
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -3
package/dist/index.d.mts
CHANGED
|
@@ -426,10 +426,7 @@ declare class Weaverse extends EventEmitter {
|
|
|
426
426
|
/**
|
|
427
427
|
* Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry
|
|
428
428
|
*/
|
|
429
|
-
static registerElement
|
|
430
|
-
type: string;
|
|
431
|
-
[x: string]: any;
|
|
432
|
-
}): void;
|
|
429
|
+
static registerElement: typeof registerElement;
|
|
433
430
|
get elementRegistry(): Map<any, any>;
|
|
434
431
|
triggerUpdate: () => void;
|
|
435
432
|
refreshAllItems(): void;
|
|
@@ -440,6 +437,10 @@ declare class Weaverse extends EventEmitter {
|
|
|
440
437
|
*/
|
|
441
438
|
setProjectData: (data: WeaverseProjectDataType) => void;
|
|
442
439
|
}
|
|
440
|
+
declare function registerElement(element: {
|
|
441
|
+
type: string;
|
|
442
|
+
[x: string]: any;
|
|
443
|
+
}): void;
|
|
443
444
|
|
|
444
445
|
declare let isReactNative: boolean;
|
|
445
446
|
declare let isBrowser: boolean;
|
|
@@ -454,4 +455,4 @@ declare function merge(target: Record<string, any>, source: Record<string, any>)
|
|
|
454
455
|
};
|
|
455
456
|
declare function loadScript(src: string): Promise<unknown>;
|
|
456
457
|
|
|
457
|
-
export { type AdditionalInputConfigs, type AdvancedGroupType, type BasicInput, type BreakPoints, type ChildElementCSS, type ElementCSS, type ElementData, type ElementSchema, EventEmitter, type InputType, type PlatformTypeEnum, type PositionInputValue, type RangeInputConfigs, type SelectInputConfigs, type ToggleGroupConfigs, type ToolbarAction, Weaverse, type WeaverseCSSProperties, type WeaverseCoreParams, type WeaverseElement, type WeaverseImage, WeaverseItemStore, type WeaverseProjectDataType, type WeaverseResourcePickerData, type WeaverseVideo, isBrowser, isIframe, isReactNative, loadScript, merge };
|
|
458
|
+
export { type AdditionalInputConfigs, type AdvancedGroupType, type BasicInput, type BreakPoints, type ChildElementCSS, type ElementCSS, type ElementData, type ElementSchema, EventEmitter, type InputType, type PlatformTypeEnum, type PositionInputValue, type RangeInputConfigs, type SelectInputConfigs, type ToggleGroupConfigs, type ToolbarAction, Weaverse, type WeaverseCSSProperties, type WeaverseCoreParams, type WeaverseElement, type WeaverseImage, WeaverseItemStore, type WeaverseProjectDataType, type WeaverseResourcePickerData, type WeaverseVideo, isBrowser, isIframe, isReactNative, loadScript, merge, registerElement };
|
package/dist/index.d.ts
CHANGED
|
@@ -426,10 +426,7 @@ declare class Weaverse extends EventEmitter {
|
|
|
426
426
|
/**
|
|
427
427
|
* Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry
|
|
428
428
|
*/
|
|
429
|
-
static registerElement
|
|
430
|
-
type: string;
|
|
431
|
-
[x: string]: any;
|
|
432
|
-
}): void;
|
|
429
|
+
static registerElement: typeof registerElement;
|
|
433
430
|
get elementRegistry(): Map<any, any>;
|
|
434
431
|
triggerUpdate: () => void;
|
|
435
432
|
refreshAllItems(): void;
|
|
@@ -440,6 +437,10 @@ declare class Weaverse extends EventEmitter {
|
|
|
440
437
|
*/
|
|
441
438
|
setProjectData: (data: WeaverseProjectDataType) => void;
|
|
442
439
|
}
|
|
440
|
+
declare function registerElement(element: {
|
|
441
|
+
type: string;
|
|
442
|
+
[x: string]: any;
|
|
443
|
+
}): void;
|
|
443
444
|
|
|
444
445
|
declare let isReactNative: boolean;
|
|
445
446
|
declare let isBrowser: boolean;
|
|
@@ -454,4 +455,4 @@ declare function merge(target: Record<string, any>, source: Record<string, any>)
|
|
|
454
455
|
};
|
|
455
456
|
declare function loadScript(src: string): Promise<unknown>;
|
|
456
457
|
|
|
457
|
-
export { type AdditionalInputConfigs, type AdvancedGroupType, type BasicInput, type BreakPoints, type ChildElementCSS, type ElementCSS, type ElementData, type ElementSchema, EventEmitter, type InputType, type PlatformTypeEnum, type PositionInputValue, type RangeInputConfigs, type SelectInputConfigs, type ToggleGroupConfigs, type ToolbarAction, Weaverse, type WeaverseCSSProperties, type WeaverseCoreParams, type WeaverseElement, type WeaverseImage, WeaverseItemStore, type WeaverseProjectDataType, type WeaverseResourcePickerData, type WeaverseVideo, isBrowser, isIframe, isReactNative, loadScript, merge };
|
|
458
|
+
export { type AdditionalInputConfigs, type AdvancedGroupType, type BasicInput, type BreakPoints, type ChildElementCSS, type ElementCSS, type ElementData, type ElementSchema, EventEmitter, type InputType, type PlatformTypeEnum, type PositionInputValue, type RangeInputConfigs, type SelectInputConfigs, type ToggleGroupConfigs, type ToolbarAction, Weaverse, type WeaverseCSSProperties, type WeaverseCoreParams, type WeaverseElement, type WeaverseImage, WeaverseItemStore, type WeaverseProjectDataType, type WeaverseResourcePickerData, type WeaverseVideo, isBrowser, isIframe, isReactNative, loadScript, merge, registerElement };
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,8 @@ __export(index_exports, {
|
|
|
36
36
|
isIframe: () => isIframe,
|
|
37
37
|
isReactNative: () => isReactNative,
|
|
38
38
|
loadScript: () => loadScript,
|
|
39
|
-
merge: () => merge
|
|
39
|
+
merge: () => merge,
|
|
40
|
+
registerElement: () => registerElement
|
|
40
41
|
});
|
|
41
42
|
module.exports = __toCommonJS(index_exports);
|
|
42
43
|
|
|
@@ -48,7 +49,7 @@ var package_default = {
|
|
|
48
49
|
name: "@weaverse/core",
|
|
49
50
|
author: "Weaverse Team",
|
|
50
51
|
description: "Weaverse Core",
|
|
51
|
-
version: "4.3.
|
|
52
|
+
version: "4.3.4",
|
|
52
53
|
license: "MIT",
|
|
53
54
|
main: "dist/index.js",
|
|
54
55
|
types: "dist/index.d.ts",
|
|
@@ -61,26 +62,18 @@ var package_default = {
|
|
|
61
62
|
access: "public",
|
|
62
63
|
"@weaverse:registry": "https://registry.npmjs.org"
|
|
63
64
|
},
|
|
64
|
-
files: [
|
|
65
|
-
"dist/*"
|
|
66
|
-
],
|
|
65
|
+
files: ["dist/*"],
|
|
67
66
|
engines: {
|
|
68
67
|
node: ">=18"
|
|
69
68
|
},
|
|
70
69
|
scripts: {
|
|
71
70
|
dev: "tsup --watch",
|
|
72
71
|
build: "tsup",
|
|
73
|
-
clean: "rimraf dist"
|
|
74
|
-
prepublish: "npm run build"
|
|
72
|
+
clean: "rimraf dist"
|
|
75
73
|
},
|
|
76
74
|
tsup: {
|
|
77
|
-
entry: [
|
|
78
|
-
|
|
79
|
-
],
|
|
80
|
-
format: [
|
|
81
|
-
"esm",
|
|
82
|
-
"cjs"
|
|
83
|
-
],
|
|
75
|
+
entry: ["src/index.ts"],
|
|
76
|
+
format: ["esm", "cjs"],
|
|
84
77
|
dts: true,
|
|
85
78
|
sourcemap: true,
|
|
86
79
|
clean: true,
|
|
@@ -295,15 +288,7 @@ var Weaverse = class _Weaverse extends EventEmitter {
|
|
|
295
288
|
/**
|
|
296
289
|
* Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry
|
|
297
290
|
*/
|
|
298
|
-
static registerElement
|
|
299
|
-
if (element?.type) {
|
|
300
|
-
if (!_Weaverse.elementRegistry.has(element.type)) {
|
|
301
|
-
_Weaverse.elementRegistry.set(element?.type, element);
|
|
302
|
-
}
|
|
303
|
-
} else {
|
|
304
|
-
console.error("Cannot register element without 'type'.");
|
|
305
|
-
}
|
|
306
|
-
}
|
|
291
|
+
static registerElement = registerElement;
|
|
307
292
|
get elementRegistry() {
|
|
308
293
|
return _Weaverse.elementRegistry;
|
|
309
294
|
}
|
|
@@ -326,6 +311,15 @@ var Weaverse = class _Weaverse extends EventEmitter {
|
|
|
326
311
|
this.initProject();
|
|
327
312
|
};
|
|
328
313
|
};
|
|
314
|
+
function registerElement(element) {
|
|
315
|
+
if (element?.type) {
|
|
316
|
+
if (!Weaverse.elementRegistry.has(element.type)) {
|
|
317
|
+
Weaverse.elementRegistry.set(element?.type, element);
|
|
318
|
+
}
|
|
319
|
+
} else {
|
|
320
|
+
console.error("Cannot register element without 'type'.");
|
|
321
|
+
}
|
|
322
|
+
}
|
|
329
323
|
// Annotate the CommonJS export names for ESM import in node:
|
|
330
324
|
0 && (module.exports = {
|
|
331
325
|
EventEmitter,
|
|
@@ -335,6 +329,7 @@ var Weaverse = class _Weaverse extends EventEmitter {
|
|
|
335
329
|
isIframe,
|
|
336
330
|
isReactNative,
|
|
337
331
|
loadScript,
|
|
338
|
-
merge
|
|
332
|
+
merge,
|
|
333
|
+
registerElement
|
|
339
334
|
});
|
|
340
335
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/core.ts","../package.json","../src/utils/index.ts","../src/utils/event-emitter.ts","../src/utils/stitches.ts"],"sourcesContent":["export * from './types'\nexport * from './core'\nexport * from './utils'\n","/*\n @weaverse/core is the core package of Weaverse SDKs, it contains the core logic of Weaverse.\n It is a singleton class that can be used to register item, store project data, trigger update on item or project data, etc.\n ---\n Licensed under MIT License.\n Source: https://github.com/weaverse/weaverse\n About Weaverse: https://weaverse.io\n*/\n\nimport * as stitches from '@stitches/core'\nimport type Stitches from '@stitches/core/types/stitches'\nimport type { RefObject } from 'react'\nimport pkg from '../package.json'\nimport type {\n BreakPoints,\n ElementCSS,\n ElementData,\n PlatformTypeEnum,\n WeaverseCoreParams,\n WeaverseProjectDataType,\n} from './types'\nimport { merge } from './utils'\nimport { EventEmitter } from './utils/event-emitter'\nimport { stitchesUtils } from './utils/stitches'\n\nexport class WeaverseItemStore extends EventEmitter {\n weaverse: Weaverse\n ref: RefObject<HTMLElement> = { current: null }\n _store: ElementData = { id: '', type: '' }\n stitchesClass = ''\n\n constructor(initialData: ElementData, weaverse: Weaverse) {\n super()\n let { type, id } = initialData || {}\n this.weaverse = weaverse\n if (id && type) {\n Weaverse.itemInstances.set(id, this)\n Object.assign(this._store, initialData)\n } else {\n throw new Error(\n `'id' and 'type' are required to create a new Weaverse item.`,\n )\n }\n this._store.css = this.getDefaultCss()\n }\n\n get _id() {\n return this._store.id\n }\n\n get _element() {\n return this.ref.current\n }\n\n get Element() {\n return this.weaverse.elementRegistry.get(this._store.type)\n }\n\n getDefaultCss = (): ElementCSS => {\n let defaultCss = this.Element?.defaultCss || {}\n let currentCss = this._store.css || {}\n return merge(defaultCss, currentCss)\n }\n\n get data(): ElementData {\n return this._store\n }\n\n set data(update: Omit<ElementData, 'id' | 'type'>) {\n this._store = { ...this._store, ...update }\n }\n\n setData = (update: Omit<ElementData, 'id' | 'type'>) => {\n this.data = update\n this.triggerUpdate()\n return this.data\n }\n\n getSnapShot = () => this.data\n\n triggerUpdate = () => {\n this.emit(this._store)\n }\n}\n\nexport class Weaverse extends EventEmitter {\n contentRootElement: HTMLElement | null = null\n static itemInstances = new Map()\n weaverseHost = 'https://studio.weaverse.io'\n weaverseVersion = pkg.version\n projectId = ''\n isDesignMode = false\n isPreviewMode = false\n static stitchesInstance: Stitches | any\n studioBridge?: any\n\n declare static ItemConstructor: typeof WeaverseItemStore\n declare data: WeaverseProjectDataType\n declare platformType: PlatformTypeEnum\n static elementRegistry = new Map()\n\n static mediaBreakPoints: BreakPoints = {\n desktop: 'all',\n // max-width need to subtract 0.02px to prevent bug\n // ref: https://getbootstrap.com/docs/5.1/layout/breakpoints/#max-width\n mobile: '(max-width: 767.98px)',\n }\n\n constructor(params: WeaverseCoreParams) {\n super()\n for (const param of Object.entries(params)) {\n let [key, value] = param\n this[key] = value || this[key]\n }\n this.initProject()\n Weaverse.initStitches()\n }\n\n getSnapShot = () => {\n return this.data\n }\n /**\n * Create new `WeaverseItemStore` instance for each item in the project.\n */\n initProject = () => {\n let { data } = this\n let itemInstances = Weaverse.itemInstances\n if (data?.items) {\n // data.items.forEach((item) => {\n // let itemInstance = itemInstances.get(item.id)\n // if (itemInstance) {\n // itemInstance.setData(item)\n // } else {\n // this.createItemInstance(item)\n // }\n // })\n for (const item of data.items) {\n let itemInstance = itemInstances.get(item.id)\n if (itemInstance) {\n itemInstance.setData(item)\n } else {\n this.createItemInstance(item)\n }\n }\n }\n }\n\n get itemInstances() {\n return Weaverse.itemInstances\n }\n createItemInstance = (data: ElementData) => {\n return new Weaverse.ItemConstructor(data, this)\n }\n\n static initStitches = (externalConfig?: stitches.CreateStitches) => {\n Weaverse.stitchesInstance =\n Weaverse.stitchesInstance ||\n stitches.createStitches({\n prefix: 'weaverse',\n media: Weaverse.mediaBreakPoints,\n utils: stitchesUtils,\n ...externalConfig,\n })\n }\n\n get stitchesInstance() {\n return Weaverse.stitchesInstance\n }\n\n /**\n * Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry\n */\n static registerElement(element: { type: string; [x: string]: any }) {\n if (element?.type) {\n if (!Weaverse.elementRegistry.has(element.type)) {\n Weaverse.elementRegistry.set(element?.type, element)\n }\n } else {\n console.error(\"Cannot register element without 'type'.\")\n }\n }\n\n get elementRegistry() {\n return Weaverse.elementRegistry\n }\n\n triggerUpdate = () => {\n // make new copy of data to trigger update\n this.data = { ...this.data }\n this.emit(this.data)\n }\n\n refreshAllItems() {\n for (const item of Weaverse.itemInstances.values()) {\n item.triggerUpdate()\n }\n }\n\n /**\n * Reset the project data and re-initialize all items.\n * Used when we need to re-render the project with new data (like applying new template)\n * @param data {WeaverseProjectDataType}\n */\n setProjectData = (data: WeaverseProjectDataType) => {\n this.data = data\n this.initProject()\n }\n}\n\nexport { EventEmitter }\n","{\n \"name\": \"@weaverse/core\",\n \"author\": \"Weaverse Team\",\n \"description\": \"Weaverse Core\",\n \"version\": \"4.3.3\",\n \"license\": \"MIT\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"module\": \"dist/index.mjs\",\n \"repository\": {\n \"url\": \"git+https://github.com/Weaverse/weaverse.git\",\n \"directory\": \"packages/core\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"@weaverse:registry\": \"https://registry.npmjs.org\"\n },\n \"files\": [\n \"dist/*\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n },\n \"scripts\": {\n \"dev\": \"tsup --watch\",\n \"build\": \"tsup\",\n \"clean\": \"rimraf dist\",\n \"prepublish\": \"npm run build\"\n },\n \"tsup\": {\n \"entry\": [\n \"src/index.ts\"\n ],\n \"format\": [\n \"esm\",\n \"cjs\"\n ],\n \"dts\": true,\n \"sourcemap\": true,\n \"clean\": true,\n \"outDir\": \"dist\"\n },\n \"dependencies\": {\n \"@stitches/core\": \"^1.2.8\"\n }\n}\n","export let isReactNative =\n typeof navigator === 'object' && navigator.product === 'ReactNative'\nexport let isBrowser = typeof window !== 'undefined' && !isReactNative\nexport let isIframe = isBrowser && window.top !== window.self\n\n/**\n * Deep merge two objects.\n * @param target\n * @param source\n */\nexport function merge(\n target: Record<string, any>,\n source: Record<string, any>,\n) {\n let t = { ...(target || {}) }\n // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties\n for (let key of Object.keys(source)) {\n if (source[key] instanceof Object && !Array.isArray(source[key])) {\n Object.assign(source[key], merge(t[key], source[key]))\n }\n }\n\n // Join `target` and modified `source`\n Object.assign(t || {}, source)\n return t\n}\n\nexport function loadScript(src: string) {\n return new Promise((resolve, reject) => {\n let currScript = document.querySelector(`script[src=\"${src}\"]`)\n if (currScript) {\n return resolve(true)\n }\n let script = document.createElement('script')\n script.src = src\n script.onload = resolve\n script.onerror = reject\n script.defer = true\n document.body.appendChild(script)\n })\n}\n","type AnyFunction = (...args: any[]) => any\n\nexport class EventEmitter {\n listeners: Set<AnyFunction>\n\n constructor() {\n this.listeners = new Set()\n }\n\n subscribe = (fn: AnyFunction) => {\n this.listeners.add(fn)\n return () => this.unsubscribe(fn)\n }\n\n unsubscribe = (fn: AnyFunction) => {\n this.listeners.delete(fn)\n }\n\n emit = (data) => {\n for (const fn of this.listeners) {\n fn(data)\n }\n }\n}\n","export let stitchesUtils = {\n m: (value: string) => ({\n margin: value,\n }),\n mt: (value: string) => ({\n marginTop: value,\n }),\n mr: (value: string) => ({\n marginRight: value,\n }),\n mb: (value: string) => ({\n marginBottom: value,\n }),\n ml: (value: string) => ({\n marginLeft: value,\n }),\n mx: (value: string) => ({\n marginLeft: value,\n marginRight: value,\n }),\n my: (value: string) => ({\n marginTop: value,\n marginBottom: value,\n }),\n size: (value: string) => ({\n width: value,\n height: value,\n }),\n px: (value: string) => ({\n paddingLeft: value,\n paddingRight: value,\n }),\n py: (value: string) => ({\n paddingTop: value,\n paddingBottom: value,\n }),\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/core.ts","../package.json","../src/utils/index.ts","../src/utils/event-emitter.ts","../src/utils/stitches.ts"],"sourcesContent":["export * from './types'\nexport * from './core'\nexport * from './utils'\n","/*\n @weaverse/core is the core package of Weaverse SDKs, it contains the core logic of Weaverse.\n It is a singleton class that can be used to register item, store project data, trigger update on item or project data, etc.\n ---\n Licensed under MIT License.\n Source: https://github.com/weaverse/weaverse\n About Weaverse: https://weaverse.io\n*/\n\nimport * as stitches from '@stitches/core'\nimport type Stitches from '@stitches/core/types/stitches'\nimport type { RefObject } from 'react'\nimport pkg from '../package.json'\nimport type {\n BreakPoints,\n ElementCSS,\n ElementData,\n PlatformTypeEnum,\n WeaverseCoreParams,\n WeaverseProjectDataType,\n} from './types'\nimport { merge } from './utils'\nimport { EventEmitter } from './utils/event-emitter'\nimport { stitchesUtils } from './utils/stitches'\n\nexport class WeaverseItemStore extends EventEmitter {\n weaverse: Weaverse\n ref: RefObject<HTMLElement> = { current: null }\n _store: ElementData = { id: '', type: '' }\n stitchesClass = ''\n\n constructor(initialData: ElementData, weaverse: Weaverse) {\n super()\n let { type, id } = initialData || {}\n this.weaverse = weaverse\n if (id && type) {\n Weaverse.itemInstances.set(id, this)\n Object.assign(this._store, initialData)\n } else {\n throw new Error(\n `'id' and 'type' are required to create a new Weaverse item.`,\n )\n }\n this._store.css = this.getDefaultCss()\n }\n\n get _id() {\n return this._store.id\n }\n\n get _element() {\n return this.ref.current\n }\n\n get Element() {\n return this.weaverse.elementRegistry.get(this._store.type)\n }\n\n getDefaultCss = (): ElementCSS => {\n let defaultCss = this.Element?.defaultCss || {}\n let currentCss = this._store.css || {}\n return merge(defaultCss, currentCss)\n }\n\n get data(): ElementData {\n return this._store\n }\n\n set data(update: Omit<ElementData, 'id' | 'type'>) {\n this._store = { ...this._store, ...update }\n }\n\n setData = (update: Omit<ElementData, 'id' | 'type'>) => {\n this.data = update\n this.triggerUpdate()\n return this.data\n }\n\n getSnapShot = () => this.data\n\n triggerUpdate = () => {\n this.emit(this._store)\n }\n}\n\nexport class Weaverse extends EventEmitter {\n contentRootElement: HTMLElement | null = null\n static itemInstances = new Map()\n weaverseHost = 'https://studio.weaverse.io'\n weaverseVersion = pkg.version\n projectId = ''\n isDesignMode = false\n isPreviewMode = false\n static stitchesInstance: Stitches | any\n studioBridge?: any\n\n declare static ItemConstructor: typeof WeaverseItemStore\n declare data: WeaverseProjectDataType\n declare platformType: PlatformTypeEnum\n static elementRegistry = new Map()\n\n static mediaBreakPoints: BreakPoints = {\n desktop: 'all',\n // max-width need to subtract 0.02px to prevent bug\n // ref: https://getbootstrap.com/docs/5.1/layout/breakpoints/#max-width\n mobile: '(max-width: 767.98px)',\n }\n\n constructor(params: WeaverseCoreParams) {\n super()\n for (const param of Object.entries(params)) {\n let [key, value] = param\n this[key] = value || this[key]\n }\n this.initProject()\n Weaverse.initStitches()\n }\n\n getSnapShot = () => {\n return this.data\n }\n /**\n * Create new `WeaverseItemStore` instance for each item in the project.\n */\n initProject = () => {\n let { data } = this\n let itemInstances = Weaverse.itemInstances\n if (data?.items) {\n // data.items.forEach((item) => {\n // let itemInstance = itemInstances.get(item.id)\n // if (itemInstance) {\n // itemInstance.setData(item)\n // } else {\n // this.createItemInstance(item)\n // }\n // })\n for (const item of data.items) {\n let itemInstance = itemInstances.get(item.id)\n if (itemInstance) {\n itemInstance.setData(item)\n } else {\n this.createItemInstance(item)\n }\n }\n }\n }\n\n get itemInstances() {\n return Weaverse.itemInstances\n }\n createItemInstance = (data: ElementData) => {\n return new Weaverse.ItemConstructor(data, this)\n }\n\n static initStitches = (externalConfig?: stitches.CreateStitches) => {\n Weaverse.stitchesInstance =\n Weaverse.stitchesInstance ||\n stitches.createStitches({\n prefix: 'weaverse',\n media: Weaverse.mediaBreakPoints,\n utils: stitchesUtils,\n ...externalConfig,\n })\n }\n\n get stitchesInstance() {\n return Weaverse.stitchesInstance\n }\n\n /**\n * Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry\n */\n static registerElement = registerElement\n\n get elementRegistry() {\n return Weaverse.elementRegistry\n }\n\n triggerUpdate = () => {\n // make new copy of data to trigger update\n this.data = { ...this.data }\n this.emit(this.data)\n }\n\n refreshAllItems() {\n for (const item of Weaverse.itemInstances.values()) {\n item.triggerUpdate()\n }\n }\n\n /**\n * Reset the project data and re-initialize all items.\n * Used when we need to re-render the project with new data (like applying new template)\n * @param data {WeaverseProjectDataType}\n */\n setProjectData = (data: WeaverseProjectDataType) => {\n this.data = data\n this.initProject()\n }\n}\nexport function registerElement(element: { type: string; [x: string]: any }) {\n if (element?.type) {\n if (!Weaverse.elementRegistry.has(element.type)) {\n Weaverse.elementRegistry.set(element?.type, element)\n }\n } else {\n console.error(\"Cannot register element without 'type'.\")\n }\n}\n\nexport { EventEmitter }\n","{\n \"name\": \"@weaverse/core\",\n \"author\": \"Weaverse Team\",\n \"description\": \"Weaverse Core\",\n \"version\": \"4.3.4\",\n \"license\": \"MIT\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"module\": \"dist/index.mjs\",\n \"repository\": {\n \"url\": \"git+https://github.com/Weaverse/weaverse.git\",\n \"directory\": \"packages/core\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"@weaverse:registry\": \"https://registry.npmjs.org\"\n },\n \"files\": [\"dist/*\"],\n \"engines\": {\n \"node\": \">=18\"\n },\n \"scripts\": {\n \"dev\": \"tsup --watch\",\n \"build\": \"tsup\",\n \"clean\": \"rimraf dist\"\n },\n \"tsup\": {\n \"entry\": [\"src/index.ts\"],\n \"format\": [\"esm\", \"cjs\"],\n \"dts\": true,\n \"sourcemap\": true,\n \"clean\": true,\n \"outDir\": \"dist\"\n },\n \"dependencies\": {\n \"@stitches/core\": \"^1.2.8\"\n }\n}\n","export let isReactNative =\n typeof navigator === 'object' && navigator.product === 'ReactNative'\nexport let isBrowser = typeof window !== 'undefined' && !isReactNative\nexport let isIframe = isBrowser && window.top !== window.self\n\n/**\n * Deep merge two objects.\n * @param target\n * @param source\n */\nexport function merge(\n target: Record<string, any>,\n source: Record<string, any>,\n) {\n let t = { ...(target || {}) }\n // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties\n for (let key of Object.keys(source)) {\n if (source[key] instanceof Object && !Array.isArray(source[key])) {\n Object.assign(source[key], merge(t[key], source[key]))\n }\n }\n\n // Join `target` and modified `source`\n Object.assign(t || {}, source)\n return t\n}\n\nexport function loadScript(src: string) {\n return new Promise((resolve, reject) => {\n let currScript = document.querySelector(`script[src=\"${src}\"]`)\n if (currScript) {\n return resolve(true)\n }\n let script = document.createElement('script')\n script.src = src\n script.onload = resolve\n script.onerror = reject\n script.defer = true\n document.body.appendChild(script)\n })\n}\n","type AnyFunction = (...args: any[]) => any\n\nexport class EventEmitter {\n listeners: Set<AnyFunction>\n\n constructor() {\n this.listeners = new Set()\n }\n\n subscribe = (fn: AnyFunction) => {\n this.listeners.add(fn)\n return () => this.unsubscribe(fn)\n }\n\n unsubscribe = (fn: AnyFunction) => {\n this.listeners.delete(fn)\n }\n\n emit = (data) => {\n for (const fn of this.listeners) {\n fn(data)\n }\n }\n}\n","export let stitchesUtils = {\n m: (value: string) => ({\n margin: value,\n }),\n mt: (value: string) => ({\n marginTop: value,\n }),\n mr: (value: string) => ({\n marginRight: value,\n }),\n mb: (value: string) => ({\n marginBottom: value,\n }),\n ml: (value: string) => ({\n marginLeft: value,\n }),\n mx: (value: string) => ({\n marginLeft: value,\n marginRight: value,\n }),\n my: (value: string) => ({\n marginTop: value,\n marginBottom: value,\n }),\n size: (value: string) => ({\n width: value,\n height: value,\n }),\n px: (value: string) => ({\n paddingLeft: value,\n paddingRight: value,\n }),\n py: (value: string) => ({\n paddingTop: value,\n paddingBottom: value,\n }),\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.mjs
CHANGED
|
@@ -6,7 +6,7 @@ var package_default = {
|
|
|
6
6
|
name: "@weaverse/core",
|
|
7
7
|
author: "Weaverse Team",
|
|
8
8
|
description: "Weaverse Core",
|
|
9
|
-
version: "4.3.
|
|
9
|
+
version: "4.3.4",
|
|
10
10
|
license: "MIT",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
types: "dist/index.d.ts",
|
|
@@ -19,26 +19,18 @@ var package_default = {
|
|
|
19
19
|
access: "public",
|
|
20
20
|
"@weaverse:registry": "https://registry.npmjs.org"
|
|
21
21
|
},
|
|
22
|
-
files: [
|
|
23
|
-
"dist/*"
|
|
24
|
-
],
|
|
22
|
+
files: ["dist/*"],
|
|
25
23
|
engines: {
|
|
26
24
|
node: ">=18"
|
|
27
25
|
},
|
|
28
26
|
scripts: {
|
|
29
27
|
dev: "tsup --watch",
|
|
30
28
|
build: "tsup",
|
|
31
|
-
clean: "rimraf dist"
|
|
32
|
-
prepublish: "npm run build"
|
|
29
|
+
clean: "rimraf dist"
|
|
33
30
|
},
|
|
34
31
|
tsup: {
|
|
35
|
-
entry: [
|
|
36
|
-
|
|
37
|
-
],
|
|
38
|
-
format: [
|
|
39
|
-
"esm",
|
|
40
|
-
"cjs"
|
|
41
|
-
],
|
|
32
|
+
entry: ["src/index.ts"],
|
|
33
|
+
format: ["esm", "cjs"],
|
|
42
34
|
dts: true,
|
|
43
35
|
sourcemap: true,
|
|
44
36
|
clean: true,
|
|
@@ -253,15 +245,7 @@ var Weaverse = class _Weaverse extends EventEmitter {
|
|
|
253
245
|
/**
|
|
254
246
|
* Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry
|
|
255
247
|
*/
|
|
256
|
-
static registerElement
|
|
257
|
-
if (element?.type) {
|
|
258
|
-
if (!_Weaverse.elementRegistry.has(element.type)) {
|
|
259
|
-
_Weaverse.elementRegistry.set(element?.type, element);
|
|
260
|
-
}
|
|
261
|
-
} else {
|
|
262
|
-
console.error("Cannot register element without 'type'.");
|
|
263
|
-
}
|
|
264
|
-
}
|
|
248
|
+
static registerElement = registerElement;
|
|
265
249
|
get elementRegistry() {
|
|
266
250
|
return _Weaverse.elementRegistry;
|
|
267
251
|
}
|
|
@@ -284,6 +268,15 @@ var Weaverse = class _Weaverse extends EventEmitter {
|
|
|
284
268
|
this.initProject();
|
|
285
269
|
};
|
|
286
270
|
};
|
|
271
|
+
function registerElement(element) {
|
|
272
|
+
if (element?.type) {
|
|
273
|
+
if (!Weaverse.elementRegistry.has(element.type)) {
|
|
274
|
+
Weaverse.elementRegistry.set(element?.type, element);
|
|
275
|
+
}
|
|
276
|
+
} else {
|
|
277
|
+
console.error("Cannot register element without 'type'.");
|
|
278
|
+
}
|
|
279
|
+
}
|
|
287
280
|
export {
|
|
288
281
|
EventEmitter,
|
|
289
282
|
Weaverse,
|
|
@@ -292,6 +285,7 @@ export {
|
|
|
292
285
|
isIframe,
|
|
293
286
|
isReactNative,
|
|
294
287
|
loadScript,
|
|
295
|
-
merge
|
|
288
|
+
merge,
|
|
289
|
+
registerElement
|
|
296
290
|
};
|
|
297
291
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core.ts","../package.json","../src/utils/index.ts","../src/utils/event-emitter.ts","../src/utils/stitches.ts"],"sourcesContent":["/*\n @weaverse/core is the core package of Weaverse SDKs, it contains the core logic of Weaverse.\n It is a singleton class that can be used to register item, store project data, trigger update on item or project data, etc.\n ---\n Licensed under MIT License.\n Source: https://github.com/weaverse/weaverse\n About Weaverse: https://weaverse.io\n*/\n\nimport * as stitches from '@stitches/core'\nimport type Stitches from '@stitches/core/types/stitches'\nimport type { RefObject } from 'react'\nimport pkg from '../package.json'\nimport type {\n BreakPoints,\n ElementCSS,\n ElementData,\n PlatformTypeEnum,\n WeaverseCoreParams,\n WeaverseProjectDataType,\n} from './types'\nimport { merge } from './utils'\nimport { EventEmitter } from './utils/event-emitter'\nimport { stitchesUtils } from './utils/stitches'\n\nexport class WeaverseItemStore extends EventEmitter {\n weaverse: Weaverse\n ref: RefObject<HTMLElement> = { current: null }\n _store: ElementData = { id: '', type: '' }\n stitchesClass = ''\n\n constructor(initialData: ElementData, weaverse: Weaverse) {\n super()\n let { type, id } = initialData || {}\n this.weaverse = weaverse\n if (id && type) {\n Weaverse.itemInstances.set(id, this)\n Object.assign(this._store, initialData)\n } else {\n throw new Error(\n `'id' and 'type' are required to create a new Weaverse item.`,\n )\n }\n this._store.css = this.getDefaultCss()\n }\n\n get _id() {\n return this._store.id\n }\n\n get _element() {\n return this.ref.current\n }\n\n get Element() {\n return this.weaverse.elementRegistry.get(this._store.type)\n }\n\n getDefaultCss = (): ElementCSS => {\n let defaultCss = this.Element?.defaultCss || {}\n let currentCss = this._store.css || {}\n return merge(defaultCss, currentCss)\n }\n\n get data(): ElementData {\n return this._store\n }\n\n set data(update: Omit<ElementData, 'id' | 'type'>) {\n this._store = { ...this._store, ...update }\n }\n\n setData = (update: Omit<ElementData, 'id' | 'type'>) => {\n this.data = update\n this.triggerUpdate()\n return this.data\n }\n\n getSnapShot = () => this.data\n\n triggerUpdate = () => {\n this.emit(this._store)\n }\n}\n\nexport class Weaverse extends EventEmitter {\n contentRootElement: HTMLElement | null = null\n static itemInstances = new Map()\n weaverseHost = 'https://studio.weaverse.io'\n weaverseVersion = pkg.version\n projectId = ''\n isDesignMode = false\n isPreviewMode = false\n static stitchesInstance: Stitches | any\n studioBridge?: any\n\n declare static ItemConstructor: typeof WeaverseItemStore\n declare data: WeaverseProjectDataType\n declare platformType: PlatformTypeEnum\n static elementRegistry = new Map()\n\n static mediaBreakPoints: BreakPoints = {\n desktop: 'all',\n // max-width need to subtract 0.02px to prevent bug\n // ref: https://getbootstrap.com/docs/5.1/layout/breakpoints/#max-width\n mobile: '(max-width: 767.98px)',\n }\n\n constructor(params: WeaverseCoreParams) {\n super()\n for (const param of Object.entries(params)) {\n let [key, value] = param\n this[key] = value || this[key]\n }\n this.initProject()\n Weaverse.initStitches()\n }\n\n getSnapShot = () => {\n return this.data\n }\n /**\n * Create new `WeaverseItemStore` instance for each item in the project.\n */\n initProject = () => {\n let { data } = this\n let itemInstances = Weaverse.itemInstances\n if (data?.items) {\n // data.items.forEach((item) => {\n // let itemInstance = itemInstances.get(item.id)\n // if (itemInstance) {\n // itemInstance.setData(item)\n // } else {\n // this.createItemInstance(item)\n // }\n // })\n for (const item of data.items) {\n let itemInstance = itemInstances.get(item.id)\n if (itemInstance) {\n itemInstance.setData(item)\n } else {\n this.createItemInstance(item)\n }\n }\n }\n }\n\n get itemInstances() {\n return Weaverse.itemInstances\n }\n createItemInstance = (data: ElementData) => {\n return new Weaverse.ItemConstructor(data, this)\n }\n\n static initStitches = (externalConfig?: stitches.CreateStitches) => {\n Weaverse.stitchesInstance =\n Weaverse.stitchesInstance ||\n stitches.createStitches({\n prefix: 'weaverse',\n media: Weaverse.mediaBreakPoints,\n utils: stitchesUtils,\n ...externalConfig,\n })\n }\n\n get stitchesInstance() {\n return Weaverse.stitchesInstance\n }\n\n /**\n * Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry\n */\n static registerElement(element: { type: string; [x: string]: any }) {\n if (element?.type) {\n if (!Weaverse.elementRegistry.has(element.type)) {\n Weaverse.elementRegistry.set(element?.type, element)\n }\n } else {\n console.error(\"Cannot register element without 'type'.\")\n }\n }\n\n get elementRegistry() {\n return Weaverse.elementRegistry\n }\n\n triggerUpdate = () => {\n // make new copy of data to trigger update\n this.data = { ...this.data }\n this.emit(this.data)\n }\n\n refreshAllItems() {\n for (const item of Weaverse.itemInstances.values()) {\n item.triggerUpdate()\n }\n }\n\n /**\n * Reset the project data and re-initialize all items.\n * Used when we need to re-render the project with new data (like applying new template)\n * @param data {WeaverseProjectDataType}\n */\n setProjectData = (data: WeaverseProjectDataType) => {\n this.data = data\n this.initProject()\n }\n}\n\nexport { EventEmitter }\n","{\n \"name\": \"@weaverse/core\",\n \"author\": \"Weaverse Team\",\n \"description\": \"Weaverse Core\",\n \"version\": \"4.3.3\",\n \"license\": \"MIT\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"module\": \"dist/index.mjs\",\n \"repository\": {\n \"url\": \"git+https://github.com/Weaverse/weaverse.git\",\n \"directory\": \"packages/core\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"@weaverse:registry\": \"https://registry.npmjs.org\"\n },\n \"files\": [\n \"dist/*\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n },\n \"scripts\": {\n \"dev\": \"tsup --watch\",\n \"build\": \"tsup\",\n \"clean\": \"rimraf dist\",\n \"prepublish\": \"npm run build\"\n },\n \"tsup\": {\n \"entry\": [\n \"src/index.ts\"\n ],\n \"format\": [\n \"esm\",\n \"cjs\"\n ],\n \"dts\": true,\n \"sourcemap\": true,\n \"clean\": true,\n \"outDir\": \"dist\"\n },\n \"dependencies\": {\n \"@stitches/core\": \"^1.2.8\"\n }\n}\n","export let isReactNative =\n typeof navigator === 'object' && navigator.product === 'ReactNative'\nexport let isBrowser = typeof window !== 'undefined' && !isReactNative\nexport let isIframe = isBrowser && window.top !== window.self\n\n/**\n * Deep merge two objects.\n * @param target\n * @param source\n */\nexport function merge(\n target: Record<string, any>,\n source: Record<string, any>,\n) {\n let t = { ...(target || {}) }\n // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties\n for (let key of Object.keys(source)) {\n if (source[key] instanceof Object && !Array.isArray(source[key])) {\n Object.assign(source[key], merge(t[key], source[key]))\n }\n }\n\n // Join `target` and modified `source`\n Object.assign(t || {}, source)\n return t\n}\n\nexport function loadScript(src: string) {\n return new Promise((resolve, reject) => {\n let currScript = document.querySelector(`script[src=\"${src}\"]`)\n if (currScript) {\n return resolve(true)\n }\n let script = document.createElement('script')\n script.src = src\n script.onload = resolve\n script.onerror = reject\n script.defer = true\n document.body.appendChild(script)\n })\n}\n","type AnyFunction = (...args: any[]) => any\n\nexport class EventEmitter {\n listeners: Set<AnyFunction>\n\n constructor() {\n this.listeners = new Set()\n }\n\n subscribe = (fn: AnyFunction) => {\n this.listeners.add(fn)\n return () => this.unsubscribe(fn)\n }\n\n unsubscribe = (fn: AnyFunction) => {\n this.listeners.delete(fn)\n }\n\n emit = (data) => {\n for (const fn of this.listeners) {\n fn(data)\n }\n }\n}\n","export let stitchesUtils = {\n m: (value: string) => ({\n margin: value,\n }),\n mt: (value: string) => ({\n marginTop: value,\n }),\n mr: (value: string) => ({\n marginRight: value,\n }),\n mb: (value: string) => ({\n marginBottom: value,\n }),\n ml: (value: string) => ({\n marginLeft: value,\n }),\n mx: (value: string) => ({\n marginLeft: value,\n marginRight: value,\n }),\n my: (value: string) => ({\n marginTop: value,\n marginBottom: value,\n }),\n size: (value: string) => ({\n width: value,\n height: value,\n }),\n px: (value: string) => ({\n paddingLeft: value,\n paddingRight: value,\n }),\n py: (value: string) => ({\n paddingTop: value,\n paddingBottom: value,\n }),\n}\n"],"mappings":";AASA,YAAY,cAAc;;;ACT1B;AAAA,EACE,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,aAAe;AAAA,EACf,SAAW;AAAA,EACX,SAAW;AAAA,EACX,MAAQ;AAAA,EACR,OAAS;AAAA,EACT,QAAU;AAAA,EACV,YAAc;AAAA,IACZ,KAAO;AAAA,IACP,WAAa;AAAA,EACf;AAAA,EACA,eAAiB;AAAA,IACf,QAAU;AAAA,IACV,sBAAsB;AAAA,EACxB;AAAA,EACA,OAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA,SAAW;AAAA,IACT,MAAQ;AAAA,EACV;AAAA,EACA,SAAW;AAAA,IACT,KAAO;AAAA,IACP,OAAS;AAAA,IACT,OAAS;AAAA,IACT,YAAc;AAAA,EAChB;AAAA,EACA,MAAQ;AAAA,IACN,OAAS;AAAA,MACP;AAAA,IACF;AAAA,IACA,QAAU;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,IACA,KAAO;AAAA,IACP,WAAa;AAAA,IACb,OAAS;AAAA,IACT,QAAU;AAAA,EACZ;AAAA,EACA,cAAgB;AAAA,IACd,kBAAkB;AAAA,EACpB;AACF;;;AC7CO,IAAI,gBACT,OAAO,cAAc,YAAY,UAAU,YAAY;AAClD,IAAI,YAAY,OAAO,WAAW,eAAe,CAAC;AAClD,IAAI,WAAW,aAAa,OAAO,QAAQ,OAAO;AAOlD,SAAS,MACd,QACA,QACA;AACA,MAAI,IAAI,EAAE,GAAI,UAAU,CAAC,EAAG;AAE5B,WAAS,OAAO,OAAO,KAAK,MAAM,GAAG;AACnC,QAAI,OAAO,GAAG,aAAa,UAAU,CAAC,MAAM,QAAQ,OAAO,GAAG,CAAC,GAAG;AAChE,aAAO,OAAO,OAAO,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;AAAA,IACvD;AAAA,EACF;AAGA,SAAO,OAAO,KAAK,CAAC,GAAG,MAAM;AAC7B,SAAO;AACT;AAEO,SAAS,WAAW,KAAa;AACtC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,aAAa,SAAS,cAAc,eAAe,GAAG,IAAI;AAC9D,QAAI,YAAY;AACd,aAAO,QAAQ,IAAI;AAAA,IACrB;AACA,QAAI,SAAS,SAAS,cAAc,QAAQ;AAC5C,WAAO,MAAM;AACb,WAAO,SAAS;AAChB,WAAO,UAAU;AACjB,WAAO,QAAQ;AACf,aAAS,KAAK,YAAY,MAAM;AAAA,EAClC,CAAC;AACH;;;ACtCO,IAAM,eAAN,MAAmB;AAAA,EACxB;AAAA,EAEA,cAAc;AACZ,SAAK,YAAY,oBAAI,IAAI;AAAA,EAC3B;AAAA,EAEA,YAAY,CAAC,OAAoB;AAC/B,SAAK,UAAU,IAAI,EAAE;AACrB,WAAO,MAAM,KAAK,YAAY,EAAE;AAAA,EAClC;AAAA,EAEA,cAAc,CAAC,OAAoB;AACjC,SAAK,UAAU,OAAO,EAAE;AAAA,EAC1B;AAAA,EAEA,OAAO,CAAC,SAAS;AACf,eAAW,MAAM,KAAK,WAAW;AAC/B,SAAG,IAAI;AAAA,IACT;AAAA,EACF;AACF;;;ACvBO,IAAI,gBAAgB;AAAA,EACzB,GAAG,CAAC,WAAmB;AAAA,IACrB,QAAQ;AAAA,EACV;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,WAAW;AAAA,EACb;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,aAAa;AAAA,EACf;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,cAAc;AAAA,EAChB;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,YAAY;AAAA,EACd;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,YAAY;AAAA,IACZ,aAAa;AAAA,EACf;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,WAAW;AAAA,IACX,cAAc;AAAA,EAChB;AAAA,EACA,MAAM,CAAC,WAAmB;AAAA,IACxB,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,aAAa;AAAA,IACb,cAAc;AAAA,EAChB;AAAA,EACA,IAAI,CAAC,WAAmB;AAAA,IACtB,YAAY;AAAA,IACZ,eAAe;AAAA,EACjB;AACF;;;AJXO,IAAM,oBAAN,cAAgC,aAAa;AAAA,EAClD;AAAA,EACA,MAA8B,EAAE,SAAS,KAAK;AAAA,EAC9C,SAAsB,EAAE,IAAI,IAAI,MAAM,GAAG;AAAA,EACzC,gBAAgB;AAAA,EAEhB,YAAY,aAA0B,UAAoB;AACxD,UAAM;AACN,QAAI,EAAE,MAAM,GAAG,IAAI,eAAe,CAAC;AACnC,SAAK,WAAW;AAChB,QAAI,MAAM,MAAM;AACd,eAAS,cAAc,IAAI,IAAI,IAAI;AACnC,aAAO,OAAO,KAAK,QAAQ,WAAW;AAAA,IACxC,OAAO;AACL,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,SAAK,OAAO,MAAM,KAAK,cAAc;AAAA,EACvC;AAAA,EAEA,IAAI,MAAM;AACR,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,SAAS,gBAAgB,IAAI,KAAK,OAAO,IAAI;AAAA,EAC3D;AAAA,EAEA,gBAAgB,MAAkB;AAChC,QAAI,aAAa,KAAK,SAAS,cAAc,CAAC;AAC9C,QAAI,aAAa,KAAK,OAAO,OAAO,CAAC;AACrC,WAAO,MAAM,YAAY,UAAU;AAAA,EACrC;AAAA,EAEA,IAAI,OAAoB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,KAAK,QAA0C;AACjD,SAAK,SAAS,EAAE,GAAG,KAAK,QAAQ,GAAG,OAAO;AAAA,EAC5C;AAAA,EAEA,UAAU,CAAC,WAA6C;AACtD,SAAK,OAAO;AACZ,SAAK,cAAc;AACnB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAc,MAAM,KAAK;AAAA,EAEzB,gBAAgB,MAAM;AACpB,SAAK,KAAK,KAAK,MAAM;AAAA,EACvB;AACF;AAEO,IAAM,WAAN,MAAM,kBAAiB,aAAa;AAAA,EACzC,qBAAyC;AAAA,EACzC,OAAO,gBAAgB,oBAAI,IAAI;AAAA,EAC/B,eAAe;AAAA,EACf,kBAAkB,gBAAI;AAAA,EACtB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP;AAAA,EAKA,OAAO,kBAAkB,oBAAI,IAAI;AAAA,EAEjC,OAAO,mBAAgC;AAAA,IACrC,SAAS;AAAA;AAAA;AAAA,IAGT,QAAQ;AAAA,EACV;AAAA,EAEA,YAAY,QAA4B;AACtC,UAAM;AACN,eAAW,SAAS,OAAO,QAAQ,MAAM,GAAG;AAC1C,UAAI,CAAC,KAAK,KAAK,IAAI;AACnB,WAAK,GAAG,IAAI,SAAS,KAAK,GAAG;AAAA,IAC/B;AACA,SAAK,YAAY;AACjB,cAAS,aAAa;AAAA,EACxB;AAAA,EAEA,cAAc,MAAM;AAClB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAIA,cAAc,MAAM;AAClB,QAAI,EAAE,KAAK,IAAI;AACf,QAAI,gBAAgB,UAAS;AAC7B,QAAI,MAAM,OAAO;AASf,iBAAW,QAAQ,KAAK,OAAO;AAC7B,YAAI,eAAe,cAAc,IAAI,KAAK,EAAE;AAC5C,YAAI,cAAc;AAChB,uBAAa,QAAQ,IAAI;AAAA,QAC3B,OAAO;AACL,eAAK,mBAAmB,IAAI;AAAA,QAC9B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,gBAAgB;AAClB,WAAO,UAAS;AAAA,EAClB;AAAA,EACA,qBAAqB,CAAC,SAAsB;AAC1C,WAAO,IAAI,UAAS,gBAAgB,MAAM,IAAI;AAAA,EAChD;AAAA,EAEA,OAAO,eAAe,CAAC,mBAA6C;AAClE,cAAS,mBACP,UAAS,oBACA,wBAAe;AAAA,MACtB,QAAQ;AAAA,MACR,OAAO,UAAS;AAAA,MAChB,OAAO;AAAA,MACP,GAAG;AAAA,IACL,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,mBAAmB;AACrB,WAAO,UAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,gBAAgB,SAA6C;AAClE,QAAI,SAAS,MAAM;AACjB,UAAI,CAAC,UAAS,gBAAgB,IAAI,QAAQ,IAAI,GAAG;AAC/C,kBAAS,gBAAgB,IAAI,SAAS,MAAM,OAAO;AAAA,MACrD;AAAA,IACF,OAAO;AACL,cAAQ,MAAM,yCAAyC;AAAA,IACzD;AAAA,EACF;AAAA,EAEA,IAAI,kBAAkB;AACpB,WAAO,UAAS;AAAA,EAClB;AAAA,EAEA,gBAAgB,MAAM;AAEpB,SAAK,OAAO,EAAE,GAAG,KAAK,KAAK;AAC3B,SAAK,KAAK,KAAK,IAAI;AAAA,EACrB;AAAA,EAEA,kBAAkB;AAChB,eAAW,QAAQ,UAAS,cAAc,OAAO,GAAG;AAClD,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,iBAAiB,CAAC,SAAkC;AAClD,SAAK,OAAO;AACZ,SAAK,YAAY;AAAA,EACnB;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/core.ts","../package.json","../src/utils/index.ts","../src/utils/event-emitter.ts","../src/utils/stitches.ts"],"sourcesContent":["/*\n @weaverse/core is the core package of Weaverse SDKs, it contains the core logic of Weaverse.\n It is a singleton class that can be used to register item, store project data, trigger update on item or project data, etc.\n ---\n Licensed under MIT License.\n Source: https://github.com/weaverse/weaverse\n About Weaverse: https://weaverse.io\n*/\n\nimport * as stitches from '@stitches/core'\nimport type Stitches from '@stitches/core/types/stitches'\nimport type { RefObject } from 'react'\nimport pkg from '../package.json'\nimport type {\n BreakPoints,\n ElementCSS,\n ElementData,\n PlatformTypeEnum,\n WeaverseCoreParams,\n WeaverseProjectDataType,\n} from './types'\nimport { merge } from './utils'\nimport { EventEmitter } from './utils/event-emitter'\nimport { stitchesUtils } from './utils/stitches'\n\nexport class WeaverseItemStore extends EventEmitter {\n weaverse: Weaverse\n ref: RefObject<HTMLElement> = { current: null }\n _store: ElementData = { id: '', type: '' }\n stitchesClass = ''\n\n constructor(initialData: ElementData, weaverse: Weaverse) {\n super()\n let { type, id } = initialData || {}\n this.weaverse = weaverse\n if (id && type) {\n Weaverse.itemInstances.set(id, this)\n Object.assign(this._store, initialData)\n } else {\n throw new Error(\n `'id' and 'type' are required to create a new Weaverse item.`,\n )\n }\n this._store.css = this.getDefaultCss()\n }\n\n get _id() {\n return this._store.id\n }\n\n get _element() {\n return this.ref.current\n }\n\n get Element() {\n return this.weaverse.elementRegistry.get(this._store.type)\n }\n\n getDefaultCss = (): ElementCSS => {\n let defaultCss = this.Element?.defaultCss || {}\n let currentCss = this._store.css || {}\n return merge(defaultCss, currentCss)\n }\n\n get data(): ElementData {\n return this._store\n }\n\n set data(update: Omit<ElementData, 'id' | 'type'>) {\n this._store = { ...this._store, ...update }\n }\n\n setData = (update: Omit<ElementData, 'id' | 'type'>) => {\n this.data = update\n this.triggerUpdate()\n return this.data\n }\n\n getSnapShot = () => this.data\n\n triggerUpdate = () => {\n this.emit(this._store)\n }\n}\n\nexport class Weaverse extends EventEmitter {\n contentRootElement: HTMLElement | null = null\n static itemInstances = new Map()\n weaverseHost = 'https://studio.weaverse.io'\n weaverseVersion = pkg.version\n projectId = ''\n isDesignMode = false\n isPreviewMode = false\n static stitchesInstance: Stitches | any\n studioBridge?: any\n\n declare static ItemConstructor: typeof WeaverseItemStore\n declare data: WeaverseProjectDataType\n declare platformType: PlatformTypeEnum\n static elementRegistry = new Map()\n\n static mediaBreakPoints: BreakPoints = {\n desktop: 'all',\n // max-width need to subtract 0.02px to prevent bug\n // ref: https://getbootstrap.com/docs/5.1/layout/breakpoints/#max-width\n mobile: '(max-width: 767.98px)',\n }\n\n constructor(params: WeaverseCoreParams) {\n super()\n for (const param of Object.entries(params)) {\n let [key, value] = param\n this[key] = value || this[key]\n }\n this.initProject()\n Weaverse.initStitches()\n }\n\n getSnapShot = () => {\n return this.data\n }\n /**\n * Create new `WeaverseItemStore` instance for each item in the project.\n */\n initProject = () => {\n let { data } = this\n let itemInstances = Weaverse.itemInstances\n if (data?.items) {\n // data.items.forEach((item) => {\n // let itemInstance = itemInstances.get(item.id)\n // if (itemInstance) {\n // itemInstance.setData(item)\n // } else {\n // this.createItemInstance(item)\n // }\n // })\n for (const item of data.items) {\n let itemInstance = itemInstances.get(item.id)\n if (itemInstance) {\n itemInstance.setData(item)\n } else {\n this.createItemInstance(item)\n }\n }\n }\n }\n\n get itemInstances() {\n return Weaverse.itemInstances\n }\n createItemInstance = (data: ElementData) => {\n return new Weaverse.ItemConstructor(data, this)\n }\n\n static initStitches = (externalConfig?: stitches.CreateStitches) => {\n Weaverse.stitchesInstance =\n Weaverse.stitchesInstance ||\n stitches.createStitches({\n prefix: 'weaverse',\n media: Weaverse.mediaBreakPoints,\n utils: stitchesUtils,\n ...externalConfig,\n })\n }\n\n get stitchesInstance() {\n return Weaverse.stitchesInstance\n }\n\n /**\n * Register the custom React Component to Weaverse, store it into Weaverse.elementRegistry\n */\n static registerElement = registerElement\n\n get elementRegistry() {\n return Weaverse.elementRegistry\n }\n\n triggerUpdate = () => {\n // make new copy of data to trigger update\n this.data = { ...this.data }\n this.emit(this.data)\n }\n\n refreshAllItems() {\n for (const item of Weaverse.itemInstances.values()) {\n item.triggerUpdate()\n }\n }\n\n /**\n * Reset the project data and re-initialize all items.\n * Used when we need to re-render the project with new data (like applying new template)\n * @param data {WeaverseProjectDataType}\n */\n setProjectData = (data: WeaverseProjectDataType) => {\n this.data = data\n this.initProject()\n }\n}\nexport function registerElement(element: { type: string; [x: string]: any }) {\n if (element?.type) {\n if (!Weaverse.elementRegistry.has(element.type)) {\n Weaverse.elementRegistry.set(element?.type, element)\n }\n } else {\n console.error(\"Cannot register element without 'type'.\")\n }\n}\n\nexport { EventEmitter }\n","{\n \"name\": \"@weaverse/core\",\n \"author\": \"Weaverse Team\",\n \"description\": \"Weaverse Core\",\n \"version\": \"4.3.4\",\n \"license\": \"MIT\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"module\": \"dist/index.mjs\",\n \"repository\": {\n \"url\": \"git+https://github.com/Weaverse/weaverse.git\",\n \"directory\": \"packages/core\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"@weaverse:registry\": \"https://registry.npmjs.org\"\n },\n \"files\": [\"dist/*\"],\n \"engines\": {\n \"node\": \">=18\"\n },\n \"scripts\": {\n \"dev\": \"tsup --watch\",\n \"build\": \"tsup\",\n \"clean\": \"rimraf dist\"\n },\n \"tsup\": {\n \"entry\": [\"src/index.ts\"],\n \"format\": [\"esm\", \"cjs\"],\n \"dts\": true,\n \"sourcemap\": true,\n \"clean\": true,\n \"outDir\": \"dist\"\n },\n \"dependencies\": {\n \"@stitches/core\": \"^1.2.8\"\n }\n}\n","export let isReactNative =\n typeof navigator === 'object' && navigator.product === 'ReactNative'\nexport let isBrowser = typeof window !== 'undefined' && !isReactNative\nexport let isIframe = isBrowser && window.top !== window.self\n\n/**\n * Deep merge two objects.\n * @param target\n * @param source\n */\nexport function merge(\n target: Record<string, any>,\n source: Record<string, any>,\n) {\n let t = { ...(target || {}) }\n // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties\n for (let key of Object.keys(source)) {\n if (source[key] instanceof Object && !Array.isArray(source[key])) {\n Object.assign(source[key], merge(t[key], source[key]))\n }\n }\n\n // Join `target` and modified `source`\n Object.assign(t || {}, source)\n return t\n}\n\nexport function loadScript(src: string) {\n return new Promise((resolve, reject) => {\n let currScript = document.querySelector(`script[src=\"${src}\"]`)\n if (currScript) {\n return resolve(true)\n }\n let script = document.createElement('script')\n script.src = src\n script.onload = resolve\n script.onerror = reject\n script.defer = true\n document.body.appendChild(script)\n })\n}\n","type AnyFunction = (...args: any[]) => any\n\nexport class EventEmitter {\n listeners: Set<AnyFunction>\n\n constructor() {\n this.listeners = new Set()\n }\n\n subscribe = (fn: AnyFunction) => {\n this.listeners.add(fn)\n return () => this.unsubscribe(fn)\n }\n\n unsubscribe = (fn: AnyFunction) => {\n this.listeners.delete(fn)\n }\n\n emit = (data) => {\n for (const fn of this.listeners) {\n fn(data)\n }\n }\n}\n","export let stitchesUtils = {\n m: (value: string) => ({\n margin: value,\n }),\n mt: (value: string) => ({\n marginTop: value,\n }),\n mr: (value: string) => ({\n marginRight: value,\n }),\n mb: (value: string) => ({\n marginBottom: value,\n }),\n ml: (value: string) => ({\n marginLeft: value,\n }),\n mx: (value: string) => ({\n marginLeft: value,\n marginRight: value,\n }),\n my: (value: string) => ({\n marginTop: value,\n marginBottom: value,\n }),\n size: (value: string) => ({\n width: value,\n height: value,\n }),\n px: (value: string) => ({\n paddingLeft: value,\n paddingRight: value,\n }),\n py: (value: string) => ({\n paddingTop: value,\n paddingBottom: value,\n }),\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@weaverse/core",
|
|
3
3
|
"author": "Weaverse Team",
|
|
4
4
|
"description": "Weaverse Core",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "5.0.0-next.0",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
"scripts": {
|
|
41
41
|
"dev": "tsup --watch",
|
|
42
42
|
"build": "tsup",
|
|
43
|
-
"clean": "rimraf dist"
|
|
44
|
-
"prepublish": "npm run build"
|
|
43
|
+
"clean": "rimraf dist"
|
|
45
44
|
}
|
|
46
45
|
}
|