@weaverse/hydrogen 5.0.0-next.0 → 5.0.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 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -6
package/dist/index.d.mts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
|
|
2
2
|
import { EventEmitter, BasicInput as BasicInput$1, ElementData, WeaverseElement, ElementSchema, WeaverseProjectDataType, WeaverseCoreParams, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
|
|
3
3
|
export { InputType, PositionInputValue, WeaverseImage, WeaverseVideo, isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
4
|
-
import { NavigateFunction } from 'react-router';
|
|
5
4
|
import { createWithCache, I18nBase, HydrogenContext } from '@shopify/hydrogen';
|
|
6
5
|
import { LoaderFunctionArgs, AppLoadContext } from '@shopify/remix-oxygen';
|
|
7
|
-
import * as
|
|
6
|
+
import * as React$1 from 'react';
|
|
8
7
|
import { ForwardRefExoticComponent, ComponentType, JSX } from 'react';
|
|
8
|
+
import { NavigateFunction } from 'react-router';
|
|
9
9
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
10
10
|
|
|
11
11
|
type WeaverseThemeData = {
|
|
@@ -106,7 +106,7 @@ interface InspectorGroup {
|
|
|
106
106
|
interface HydrogenComponentProps<L = any> extends WeaverseElement {
|
|
107
107
|
className?: string;
|
|
108
108
|
loaderData?: L;
|
|
109
|
-
children?: React.JSX.Element[];
|
|
109
|
+
children?: React$1.JSX.Element[];
|
|
110
110
|
}
|
|
111
111
|
type WeaverseLoaderRequestInfo = {
|
|
112
112
|
search: string;
|
|
@@ -138,7 +138,7 @@ type HydrogenComponentPresets = {
|
|
|
138
138
|
[key: string]: any;
|
|
139
139
|
};
|
|
140
140
|
interface HydrogenElement {
|
|
141
|
-
Component: ForwardRefExoticComponent<HydrogenComponentProps
|
|
141
|
+
Component: ForwardRefExoticComponent<HydrogenComponentProps> | ((props: HydrogenComponentProps) => React$1.JSX.Element);
|
|
142
142
|
type: string;
|
|
143
143
|
schema?: HydrogenComponentSchema;
|
|
144
144
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
@@ -150,7 +150,7 @@ interface WeaverseHydrogenParams extends Omit<WeaverseCoreParams, 'ItemConstruct
|
|
|
150
150
|
requestInfo: WeaverseLoaderRequestInfo;
|
|
151
151
|
}
|
|
152
152
|
interface HydrogenComponent<T extends HydrogenComponentProps = any> {
|
|
153
|
-
default: ForwardRefExoticComponent<T
|
|
153
|
+
default: ForwardRefExoticComponent<T> | ((props: T) => React$1.JSX.Element);
|
|
154
154
|
schema: HydrogenComponentSchema;
|
|
155
155
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
156
156
|
}
|
|
@@ -290,7 +290,7 @@ declare class WeaverseHydrogen extends Weaverse {
|
|
|
290
290
|
constructor(params: WeaverseHydrogenParams);
|
|
291
291
|
}
|
|
292
292
|
declare function registerComponent(element: HydrogenElement): void;
|
|
293
|
-
declare let WeaverseHydrogenRoot:
|
|
293
|
+
declare let WeaverseHydrogenRoot: React$1.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
|
|
294
294
|
components: HydrogenComponent[];
|
|
295
295
|
errorComponent?: React.FC<{
|
|
296
296
|
error: any;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
|
|
2
2
|
import { EventEmitter, BasicInput as BasicInput$1, ElementData, WeaverseElement, ElementSchema, WeaverseProjectDataType, WeaverseCoreParams, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
|
|
3
3
|
export { InputType, PositionInputValue, WeaverseImage, WeaverseVideo, isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
4
|
-
import { NavigateFunction } from 'react-router';
|
|
5
4
|
import { createWithCache, I18nBase, HydrogenContext } from '@shopify/hydrogen';
|
|
6
5
|
import { LoaderFunctionArgs, AppLoadContext } from '@shopify/remix-oxygen';
|
|
7
|
-
import * as
|
|
6
|
+
import * as React$1 from 'react';
|
|
8
7
|
import { ForwardRefExoticComponent, ComponentType, JSX } from 'react';
|
|
8
|
+
import { NavigateFunction } from 'react-router';
|
|
9
9
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
10
10
|
|
|
11
11
|
type WeaverseThemeData = {
|
|
@@ -106,7 +106,7 @@ interface InspectorGroup {
|
|
|
106
106
|
interface HydrogenComponentProps<L = any> extends WeaverseElement {
|
|
107
107
|
className?: string;
|
|
108
108
|
loaderData?: L;
|
|
109
|
-
children?: React.JSX.Element[];
|
|
109
|
+
children?: React$1.JSX.Element[];
|
|
110
110
|
}
|
|
111
111
|
type WeaverseLoaderRequestInfo = {
|
|
112
112
|
search: string;
|
|
@@ -138,7 +138,7 @@ type HydrogenComponentPresets = {
|
|
|
138
138
|
[key: string]: any;
|
|
139
139
|
};
|
|
140
140
|
interface HydrogenElement {
|
|
141
|
-
Component: ForwardRefExoticComponent<HydrogenComponentProps
|
|
141
|
+
Component: ForwardRefExoticComponent<HydrogenComponentProps> | ((props: HydrogenComponentProps) => React$1.JSX.Element);
|
|
142
142
|
type: string;
|
|
143
143
|
schema?: HydrogenComponentSchema;
|
|
144
144
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
@@ -150,7 +150,7 @@ interface WeaverseHydrogenParams extends Omit<WeaverseCoreParams, 'ItemConstruct
|
|
|
150
150
|
requestInfo: WeaverseLoaderRequestInfo;
|
|
151
151
|
}
|
|
152
152
|
interface HydrogenComponent<T extends HydrogenComponentProps = any> {
|
|
153
|
-
default: ForwardRefExoticComponent<T
|
|
153
|
+
default: ForwardRefExoticComponent<T> | ((props: T) => React$1.JSX.Element);
|
|
154
154
|
schema: HydrogenComponentSchema;
|
|
155
155
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
156
156
|
}
|
|
@@ -290,7 +290,7 @@ declare class WeaverseHydrogen extends Weaverse {
|
|
|
290
290
|
constructor(params: WeaverseHydrogenParams);
|
|
291
291
|
}
|
|
292
292
|
declare function registerComponent(element: HydrogenElement): void;
|
|
293
|
-
declare let WeaverseHydrogenRoot:
|
|
293
|
+
declare let WeaverseHydrogenRoot: React$1.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
|
|
294
294
|
components: HydrogenComponent[];
|
|
295
295
|
errorComponent?: React.FC<{
|
|
296
296
|
error: any;
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var hydrogen = require('@shopify/hydrogen');
|
|
4
4
|
var react = require('@weaverse/react');
|
|
5
|
-
var reactRouter = require('react-router');
|
|
6
5
|
var react$1 = require('react');
|
|
7
6
|
var reactErrorBoundary = require('react-error-boundary');
|
|
7
|
+
var reactRouter = require('react-router');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
|
|
10
10
|
var __defProp = Object.defineProperty;
|
|
@@ -389,18 +389,17 @@ __export(main_exports, {
|
|
|
389
389
|
default: () => main_default,
|
|
390
390
|
schema: () => schema
|
|
391
391
|
});
|
|
392
|
-
|
|
392
|
+
function Main(props) {
|
|
393
393
|
let { children, dangerouslySetInnerHTML, ...rest } = props;
|
|
394
394
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
395
395
|
"div",
|
|
396
396
|
{
|
|
397
|
-
ref,
|
|
398
397
|
...rest,
|
|
399
398
|
children,
|
|
400
399
|
dangerouslySetInnerHTML: children ? void 0 : dangerouslySetInnerHTML
|
|
401
400
|
}
|
|
402
401
|
);
|
|
403
|
-
}
|
|
402
|
+
}
|
|
404
403
|
var main_default = Main;
|
|
405
404
|
var schema = {
|
|
406
405
|
type: "main",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/index.ts","../src/weaverse-client.ts","../src/components/main.tsx","../src/components/index.ts","../src/utils/use-theme-settings-store.ts","../src/utils/use-studio.ts","../src/WeaverseHydrogenRoot.tsx","../src/index.ts"],"names":["schema","type","children","data","createWithCache","generateCacheControlHeader","res","forwardRef","jsx","EventEmitter","isBrowser","useRouteLoaderData","useRevalidator","useNavigation","useLocation","useNavigate","useEffect","loadScript","WeaverseItemStore","Weaverse","memo","jsxs","Fragment","WeaverseRoot","useLoaderData","ErrorBoundary","Suspense","Await","createContext","useSafeExternalStore","hydrogen_getSelectedProductOptions"],"mappings":"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","file":"index.js","sourcesContent":["import type { HydrogenEnv } from '@shopify/hydrogen'\nimport type {\n HydrogenComponent,\n HydrogenComponentSchema,\n HydrogenThemeSchema,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from '../types'\n\nexport function getRequestQueries<T = Record<string, string | boolean>>(\n request: Request,\n) {\n let url = new URL(request.url)\n return Array.from(url.searchParams.entries()).reduce(\n (q: Record<string, unknown>, [k, v]) => {\n q[k] = v === 'true' ? true : v === 'false' ? false : v\n return q\n },\n {},\n ) as T\n}\n\nexport function getWeaverseConfigs(\n request: Request,\n env: HydrogenEnv,\n): WeaverseProjectConfigs {\n let queries = getRequestQueries<WeaverseStudioQueries>(request)\n let {\n WEAVERSE_PROJECT_ID,\n WEAVERSE_API_KEY,\n WEAVERSE_HOST,\n PUBLIC_STORE_DOMAIN,\n PUBLIC_STOREFRONT_API_TOKEN,\n } = env || {}\n let envFromProcess = (typeof process !== 'undefined' && process.env) || {}\n let {\n weaverseProjectId,\n weaverseHost,\n isDesignMode,\n isPreviewMode,\n sectionType,\n weaverseVersion,\n weaverseApiKey,\n } = queries\n return {\n projectId:\n weaverseProjectId ||\n WEAVERSE_PROJECT_ID ||\n envFromProcess.WEAVERSE_PROJECT_ID ||\n '',\n weaverseHost:\n weaverseHost ||\n WEAVERSE_HOST ||\n envFromProcess.WEAVERSE_HOST ||\n 'https://studio.weaverse.io',\n weaverseApiKey:\n weaverseApiKey ||\n WEAVERSE_API_KEY ||\n envFromProcess.WEAVERSE_API_KEY ||\n '',\n weaverseVersion: weaverseVersion || '',\n isDesignMode: isDesignMode || false,\n isPreviewMode: isPreviewMode || false,\n sectionType: sectionType || '',\n publicEnv: {\n PUBLIC_STORE_DOMAIN: PUBLIC_STORE_DOMAIN || '',\n PUBLIC_STOREFRONT_API_TOKEN: PUBLIC_STOREFRONT_API_TOKEN || '',\n },\n }\n}\n\nexport function generateDataFromSchema(\n schema: HydrogenComponentSchema | HydrogenThemeSchema,\n) {\n let data: Record<string, any> = {}\n let inspector = schema?.inspector\n if (inspector) {\n for (let group of inspector) {\n for (let input of group.inputs) {\n let { name, defaultValue } = input\n if (name && defaultValue !== null && defaultValue !== undefined) {\n data[name] = defaultValue\n }\n }\n }\n }\n return data\n}\n\nfunction recursivelyAddDataItem(\n type: string,\n components: HydrogenComponent<any>[],\n items: any[],\n initData?: object,\n) {\n let component = components.find((c) => c.schema.type === type)\n if (!component) {\n return\n }\n let childIds = []\n let id = crypto.randomUUID()\n let { children, ...data } = component.schema?.presets || {}\n if (children) {\n for (let c of children) {\n let { type, children, ...data } = c\n let childId = recursivelyAddDataItem(type, components, items, data)\n childIds.push({ id: childId })\n }\n }\n items.push({\n data: { ...data, ...initData },\n id,\n type,\n children: childIds,\n })\n return id\n}\n\nexport function getPreviewData(\n type: string,\n components: HydrogenComponent[],\n weaverseHost: string,\n) {\n let items = []\n return {\n project: { id: 'x', weaverseShopId: 'shop-id', name: 'Section Preview' },\n configs: {\n projectId: 'x',\n weaverseHost,\n isDesignMode: false,\n isPreviewMode: true,\n requestInfo: {\n i18n: {\n label: 'United States (USD $)',\n language: 'EN',\n country: 'US',\n currency: 'USD',\n pathPrefix: '',\n },\n queries: {},\n pathname: '/',\n search: '',\n },\n },\n page: {\n id: '0',\n name: 'Preview section',\n rootId: '1',\n items: [\n {\n data: {},\n id: '1',\n type: 'main',\n children: [{ id: recursivelyAddDataItem(type, components, items) }],\n },\n ...items,\n ],\n },\n } as unknown as WeaverseLoaderData\n}\n","import {\n type HydrogenEnv,\n type I18nBase,\n createWithCache,\n generateCacheControlHeader,\n} from '@shopify/hydrogen'\nimport type {\n AllCacheOptions,\n FetchProjectPayload,\n FetchProjectRequestBody,\n HydrogenComponentData,\n HydrogenPageData,\n PageType,\n WeaverseClientArgs,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from './types'\nimport {\n generateDataFromSchema,\n getPreviewData,\n getRequestQueries,\n getWeaverseConfigs,\n} from './utils'\n\n// Constants at the top\nconst API_PATH = 'api/public'\nconst DEFAULT_CACHE_STRATEGY = {\n maxAge: 10,\n sMaxAge: 10,\n staleWhileRevalidate: 82800,\n staleIfError: 82800,\n}\n\nexport class WeaverseClient {\n public API = API_PATH\n public basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>\n public basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>\n public configs: WeaverseProjectConfigs\n public withCache: ReturnType<typeof createWithCache>\n\n // Required dependencies\n public request: WeaverseClientArgs['request']\n public storefront: WeaverseClientArgs['storefront']\n public components: WeaverseClientArgs['components']\n public themeSchema: WeaverseClientArgs['themeSchema']\n public env: WeaverseClientArgs['env']\n public cache: WeaverseClientArgs['cache']\n public waitUntil: WeaverseClientArgs['waitUntil']\n\n constructor(args: WeaverseClientArgs) {\n // Destructure and initialize all dependencies\n const {\n env,\n storefront,\n components,\n cache,\n waitUntil,\n themeSchema,\n request,\n } = args\n\n // Initialize required properties\n this.request = request\n this.storefront = storefront\n this.components = components\n this.themeSchema = themeSchema\n this.env = env\n this.cache = cache\n this.waitUntil = waitUntil\n this.withCache = createWithCache({ cache, waitUntil, request })\n\n // Initialize configs\n this.configs = getWeaverseConfigs(request, env as HydrogenEnv)\n\n // Initialize base configurations\n this.basePageConfigs = {\n projectId: this.configs.projectId,\n weaverseHost: this.configs.weaverseHost,\n weaverseApiKey: this.configs.weaverseApiKey,\n weaverseVersion: this.configs.weaverseVersion,\n isDesignMode: this.configs.isDesignMode,\n }\n\n this.basePageRequestBody = {\n isDesignMode: this.configs.isDesignMode,\n i18n: storefront.i18n,\n projectId: this.configs.projectId,\n }\n }\n\n // Helper method for direct fetching in design mode\n private directFetch = async <T>(\n url: string,\n options: RequestInit = {},\n ): Promise<T> => {\n try {\n let res = await fetch(url, options)\n if (!res.ok) {\n let error = await res.text()\n throw new Error(`${res.status} ${res.statusText} ${error}`)\n }\n return res.json()\n } catch (err) {\n throw new Error(`Failed to fetch data from ${url}`, { cause: err })\n }\n }\n\n public fetchWithCache = async <T extends object>(\n url: string,\n options: RequestInit & { strategy?: AllCacheOptions } = {},\n ): Promise<T> => {\n let {\n strategy = this.storefront.CacheCustom(DEFAULT_CACHE_STRATEGY),\n ...reqInit\n } = options\n let cacheKey = [url, options.body]\n\n if (this.configs.isDesignMode) {\n return this.directFetch<T>(url, reqInit)\n }\n\n return this.withCache.run(\n {\n cacheKey,\n cacheStrategy: strategy,\n shouldCacheResult: (result: any) => result?.data,\n },\n async () => {\n return this.directFetch<T>(url, {\n ...reqInit,\n headers: {\n 'Cache-Control': generateCacheControlHeader(strategy),\n ...reqInit.headers,\n },\n })\n },\n ) as Promise<T>\n }\n\n loadThemeSettings = async (strategy?: AllCacheOptions) => {\n let defaultThemeSettings = generateDataFromSchema(this.themeSchema)\n try {\n let { API, configs } = this\n let { weaverseHost, projectId, isDesignMode } = configs\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n let url = `${weaverseHost}/${API}/project_configs`\n let res: any\n let body = JSON.stringify({ isDesignMode, projectId })\n if (isDesignMode) {\n res = await fetch(url, { method: 'POST', body }).then((res) =>\n res.json(),\n )\n } else {\n res = await this.fetchWithCache(url, {\n method: 'POST',\n strategy,\n body,\n })\n }\n let data: any = res || {}\n if (this.themeSchema?.inspector) {\n data.theme = {\n ...defaultThemeSettings,\n ...data.theme,\n }\n }\n if (this.configs.isDesignMode) {\n data = {\n ...data,\n schema: this.themeSchema,\n publicEnv: this.configs.publicEnv,\n }\n }\n return data\n } catch (e) {\n console.info('Unable to load theme settings', e)\n return defaultThemeSettings\n }\n }\n\n generateFallbackPage = (message: string): HydrogenPageData => {\n let rootId = crypto.randomUUID()\n return {\n id: `fallback_page_${Date.now()}`,\n rootId,\n name: 'Default Page',\n items: [\n {\n type: 'main',\n id: rootId,\n data: { dangerouslySetInnerHTML: { __html: message } },\n },\n ],\n }\n }\n\n loadPage = async (\n params: {\n type?: PageType\n locale?: string\n handle?: string\n strategy?: AllCacheOptions\n } = {},\n ): Promise<WeaverseLoaderData | null> => {\n try {\n let { request, storefront, basePageRequestBody, basePageConfigs } = this\n let {\n projectId,\n isDesignMode,\n weaverseHost,\n isPreviewMode,\n sectionType,\n } = this.configs\n\n if (isPreviewMode) {\n return getPreviewData(sectionType, this.components, weaverseHost)\n }\n\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n\n let { strategy, ...pageLoadParams } = params\n let body: {\n projectId: string\n url: string\n i18n?: I18nBase\n params?: {\n type?: PageType\n locale?: string\n handle?: string\n }\n isDesignMode?: boolean\n } = {\n ...basePageRequestBody,\n params: pageLoadParams,\n url: request.url,\n }\n\n let reqInit: RequestInit = {\n method: 'POST',\n body: JSON.stringify(body),\n }\n let url = `${weaverseHost}/${this.API}/project`\n let payload: FetchProjectPayload\n\n if (isDesignMode) {\n payload = await fetch(url, reqInit).then((res) => res.json())\n } else {\n payload = await this.fetchWithCache(url, {\n ...reqInit,\n strategy,\n })\n }\n\n if (payload?.error) {\n throw new Error(payload?.error)\n }\n let { page, project, pageAssignment } = payload\n if (!project) {\n console.error('Weaverse project not found. Id:', projectId)\n project = {\n id: projectId,\n name: 'Weaverse project not found.',\n weaverseShopId: '',\n }\n page = this.generateFallbackPage('Weaverse project not found.')\n }\n if (!page) {\n page = this.generateFallbackPage('Please add new section to start.')\n }\n if (page?.items) {\n let items = page.items\n page.items = await Promise.all(items.map(this.execComponentLoader))\n }\n return {\n page,\n project,\n pageAssignment,\n configs: {\n ...basePageConfigs,\n requestInfo: {\n i18n: storefront.i18n,\n queries: getRequestQueries<WeaverseStudioQueries>(request),\n pathname: new URL(request.url).pathname,\n search: new URL(request.url).search,\n },\n },\n }\n } catch (e) {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.error(`❌ Page load failed.`, e)\n return null\n }\n }\n\n execComponentLoader = async (item: HydrogenComponentData) => {\n let { data = {}, type, id } = item\n let component = this.components.find(({ schema }) => schema?.type === type)\n let loader = component?.loader\n if (typeof loader === 'function') {\n try {\n return {\n ...item,\n loaderData: await Promise.resolve(\n loader({\n data: { ...generateDataFromSchema(component.schema), ...data },\n weaverse: this,\n }),\n ),\n }\n } catch (e) {\n console.warn('❌ Item loader run failed.', type, id, e)\n return item\n }\n }\n return item\n }\n}\n","import { type HTMLAttributes, forwardRef } from 'react'\nimport type { HydrogenComponentProps, HydrogenComponentSchema } from '~/types'\n\n/*\n Main is the default Weaverse component that is used to render the main content.\n This component wraps all the sections/components inside a Weaverse page.\n*/\nlet Main = forwardRef<\n HTMLDivElement,\n HydrogenComponentProps & HTMLAttributes<HTMLDivElement>\n>((props, ref) => {\n let { children, dangerouslySetInnerHTML, ...rest } = props\n\n return (\n <div\n ref={ref}\n {...rest}\n // biome-ignore lint/correctness/noChildrenProp: <explanation>\n children={children}\n // biome-ignore lint/security/noDangerouslySetInnerHtmlWithChildren: <explanation>\n dangerouslySetInnerHTML={children ? undefined : dangerouslySetInnerHTML}\n />\n )\n})\n\nexport default Main\n\nexport let schema: HydrogenComponentSchema = {\n type: 'main',\n title: 'Main',\n inspector: [],\n}\n","import * as Main from './main'\n\nimport type { HydrogenComponent } from '~/types'\n\nexport let defaultComponents: HydrogenComponent[] = [Main]\n","import { useRouteLoaderData } from 'react-router';\nimport { EventEmitter, isBrowser } from '@weaverse/react'\nimport type {\n HydrogenThemeSchema,\n HydrogenThemeSettings,\n PublicEnv,\n} from '~/types'\n\ntype WeaverseThemeData = {\n theme: HydrogenThemeSettings\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n}\n\nexport class ThemeSettingsStore extends EventEmitter {\n settings: HydrogenThemeSettings = {}\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n\n constructor(data: WeaverseThemeData) {\n super()\n let { theme, schema, publicEnv } = data || {}\n this.settings = { ...theme }\n this.schema = schema\n this.publicEnv = publicEnv\n if (isBrowser) {\n window.__weaverseThemeSettingsStore = this\n }\n }\n\n updateThemeSettings = (newSettings: HydrogenThemeSettings) => {\n this.settings = {\n ...this.settings,\n ...newSettings,\n }\n this.emit(this.settings)\n }\n\n getSnapshot = () => {\n return this.settings\n }\n\n getServerSnapshot = () => {\n return this.settings\n }\n}\n\nexport function useThemeSettingsStore() {\n let data = useRouteLoaderData('root') as { weaverseTheme: WeaverseThemeData }\n if (isBrowser && window.__weaverseThemeSettingsStore) {\n return window.__weaverseThemeSettingsStore\n }\n return new ThemeSettingsStore(data?.weaverseTheme)\n}\n","import { useLocation, useNavigate, useNavigation, useRevalidator } from 'react-router';\nimport { loadScript } from '@weaverse/react'\nimport { useEffect } from 'react'\nimport type { WeaverseHydrogen } from '~/index'\nimport { useThemeSettingsStore } from './use-theme-settings-store'\n\nexport function useStudio(weaverse: WeaverseHydrogen) {\n let { revalidate } = useRevalidator()\n let navigation = useNavigation()\n let { pathname, search } = useLocation()\n let navigate = useNavigate()\n let themeSettingsStore = useThemeSettingsStore()\n let { isDesignMode, weaverseHost, weaverseVersion, isPreviewMode } = weaverse\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (navigation.state === 'idle') {\n if (isPreviewMode) {\n let previewSrc = `${weaverseHost}/static/studio/hydrogen/preview.js?v=${weaverseVersion}`\n loadScript(previewSrc).catch(console.error)\n } else if (isDesignMode) {\n weaverse.internal = {\n ...weaverse.internal,\n navigate,\n revalidate,\n themeSettingsStore,\n }\n let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`\n loadScript(studioSrc)\n .then(() => {\n window.weaverseStudio?.init(weaverse)\n })\n .catch(console.error)\n }\n }\n }, [pathname, search, navigation.state])\n usePixel(weaverse)\n}\n\nexport function usePixel(context: WeaverseHydrogen) {\n let { projectId, pageId, weaverseHost, isDesignMode } = context\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (!projectId || !pageId || !weaverseHost || isDesignMode) return\n let url = `${weaverseHost}/api/public/px`\n let img = new Image()\n img.onload = () => img.remove()\n img.src = `${url}?projectId=${projectId}&pageId=${pageId}`\n }, [])\n}\n","import { Await, useLoaderData } from 'react-router';\nimport {\n type PlatformTypeEnum,\n Weaverse,\n WeaverseItemStore,\n WeaverseRoot,\n isBrowser,\n useSafeExternalStore,\n} from '@weaverse/react'\nimport {\n type ComponentType,\n type JSX,\n Suspense,\n createContext,\n memo,\n} from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { defaultComponents } from '~/components'\nimport type {\n HydrogenComponentData,\n HydrogenElement,\n HydrogenPageData,\n HydrogenThemeSettings,\n WeaverseInternal,\n WeaverseLoaderRequestInfo,\n} from './index'\nimport type {\n HydrogenComponent,\n WeaverseHydrogenParams,\n WeaverseLoaderData,\n} from './types'\nimport { generateDataFromSchema } from './utils'\nimport { useStudio } from './utils/use-studio'\nimport { useThemeSettingsStore } from './utils/use-theme-settings-store'\n\nexport class WeaverseHydrogenItem extends WeaverseItemStore {\n declare weaverse: WeaverseHydrogen\n\n constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen) {\n super(initialData, weaverse)\n let { data, ...rest } = initialData\n if (!this.Element?.schema) {\n console.error('Element is missing schema or not found!')\n return\n }\n let schemaData = generateDataFromSchema(this.Element.schema)\n Object.assign(this._store, schemaData, data, rest)\n }\n\n get Element(): HydrogenElement {\n return super.Element\n }\n}\n\nWeaverse.ItemConstructor = WeaverseHydrogenItem\n\nexport class WeaverseHydrogen extends Weaverse {\n platformType: PlatformTypeEnum = 'shopify-hydrogen'\n pageId: string\n internal: Partial<WeaverseInternal>\n requestInfo: WeaverseLoaderRequestInfo\n declare ItemConstructor: typeof WeaverseHydrogenItem\n declare data: HydrogenPageData\n static itemInstances: Map<string, WeaverseHydrogenItem>\n static elementRegistry: Map<string, HydrogenElement>\n\n constructor(params: WeaverseHydrogenParams) {\n let { internal, pageId, requestInfo, ...coreParams } = params\n super({ ...coreParams })\n this.internal = internal\n this.pageId = pageId\n this.requestInfo = requestInfo\n }\n}\n\nfunction createWeaverseInstance(\n params: WeaverseHydrogenParams,\n): WeaverseHydrogen {\n if (isBrowser) {\n // Check if the weaverse instance already exists in the window object\n window.__weaverses = window.__weaverses || {}\n let weaverse = window.__weaverses[params.pageId]\n // If the weaverse instance does not exist, or the pathname or search has changed, create a new instance\n if (\n !weaverse ||\n weaverse?.requestInfo?.pathname !== params.requestInfo.pathname ||\n weaverse?.requestInfo?.search !== params.requestInfo.search\n ) {\n weaverse = new WeaverseHydrogen(params)\n window.__weaverses[params.pageId] = weaverse\n }\n if (weaverse?.isDesignMode) {\n weaverse.requestInfo = params.requestInfo\n window.weaverseStudio?.refreshStudio(params)\n }\n return weaverse\n }\n return new WeaverseHydrogen(params)\n}\n\nlet StudioBridge = memo(({ context }: { context: WeaverseHydrogen }) => {\n useStudio(context)\n return null\n})\n\nfunction RenderRoot(props: {\n data: WeaverseLoaderData\n components: HydrogenComponent[]\n}) {\n let { data, components } = props\n for (let comp of [...components, ...defaultComponents]) {\n comp?.schema?.type &&\n registerComponent({\n type: comp?.schema.type,\n Component: comp.default,\n schema: comp.schema,\n loader: comp.loader,\n })\n }\n let { page, configs, project, pageAssignment } = data || {}\n let weaverse = createWeaverseInstance({\n ...configs,\n data: page,\n pageId: page?.id,\n internal: { project, pageAssignment },\n })\n return (\n <>\n <WeaverseRoot context={weaverse} />\n <StudioBridge context={weaverse} />\n </>\n )\n}\n\nexport function registerComponent(element: HydrogenElement) {\n WeaverseHydrogen.registerElement(element)\n}\n\nexport let WeaverseHydrogenRoot = memo(\n ({\n components,\n errorComponent: ErrorComponent = ({ error }) => (\n <div>{error?.message || 'An unexpected error occurred'}</div>\n ),\n }: {\n components: HydrogenComponent[]\n errorComponent?: React.FC<{ error }>\n }) => {\n let loaderData = useLoaderData()\n // @ts-ignore\n let data = loaderData?.weaverseData as\n | WeaverseLoaderData\n | Promise<WeaverseLoaderData>\n\n if (data) {\n if (data instanceof Promise) {\n return (\n <ErrorBoundary fallbackRender={ErrorComponent as any}>\n <Suspense>\n <Await resolve={data}>\n {(resolvedData) => (\n <RenderRoot data={resolvedData} components={components} />\n )}\n </Await>\n </Suspense>\n </ErrorBoundary>\n )\n }\n return <RenderRoot data={data} components={components} />\n }\n return (\n <ErrorComponent\n error={{ message: 'No Weaverse data return from route loader!' }}\n />\n )\n },\n)\n\nlet ThemeSettingsProvider = createContext<HydrogenThemeSettings | null>(null)\nThemeSettingsProvider.displayName = 'WeaverseThemeSettingsProvider'\n\nexport function withWeaverse(Component: ComponentType<any>) {\n return (props: JSX.IntrinsicAttributes) => {\n let { settings } = useThemeSettingsStore()\n return (\n <ThemeSettingsProvider.Provider value={settings}>\n <Component {...props} />\n </ThemeSettingsProvider.Provider>\n )\n }\n}\n\nexport function useThemeSettings<T = HydrogenThemeSettings>() {\n let themeSettingsStore = useThemeSettingsStore()\n let settings = useSafeExternalStore(\n themeSettingsStore.subscribe,\n themeSettingsStore.getSnapshot,\n themeSettingsStore.getServerSnapshot,\n )\n return settings as T\n}\n","import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from '@shopify/hydrogen'\nimport type { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types'\nimport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n} from '@weaverse/react'\n\nexport function getSelectedProductOptions(\n request: Request,\n): SelectedOptionInput[] {\n let options = hydrogen_getSelectedProductOptions(request)\n return options.filter(\n ({ name }) => name !== 'isDesignMode' && !name.startsWith('weaverse'),\n )\n}\n\nexport const IMAGES_PLACEHOLDERS = {\n logo_white:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-w-600x200.svg',\n logo_black:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-k-600x200.svg',\n image:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-image-1024x1024.svg',\n banner_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-1-1800x900.svg',\n banner_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-2-1800x900.svg',\n collection_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-hats-1024x1024.svg',\n collection_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-shoes-1024x1024.svg',\n collection_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-glasses-1024x1024.svg',\n collection_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-lamps-1024x1024.svg',\n collection_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-bags-1024x1024.svg',\n collection_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-watches-1024x1024.svg',\n product_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-3-1024x1024.svg',\n product_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-2-1024x1024.svg',\n product_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-1-1024x1024.svg',\n product_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-2-1024x1024.svg',\n product_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-1-1024x1024.svg',\n product_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-1-1024x1024.svg',\n product_7:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-2-1024x1024.svg',\n product_8:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-3-1024x1024.svg',\n product_9:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-1-1024x1024.svg',\n product_10:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-2-1024x1024.svg',\n product_11:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-2-1024x1024.svg',\n product_12:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-3-1024x1024.svg',\n product_13:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-3-1024x1024.svg',\n product_14:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-3-1024x1024.svg',\n product_15:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-1-1024x1024.svg',\n product_16:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-3-1024x1024.svg',\n product_17:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-1-1024x1024.svg',\n product_18:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-2-1024x1024.svg',\n}\n\nexport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n}\nexport * from './types'\nexport * from './weaverse-client'\nexport * from './WeaverseHydrogenRoot'\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/index.ts","../src/weaverse-client.ts","../src/components/main.tsx","../src/components/index.ts","../src/utils/use-theme-settings-store.ts","../src/utils/use-studio.ts","../src/WeaverseHydrogenRoot.tsx","../src/index.ts"],"names":["schema","type","children","data","createWithCache","generateCacheControlHeader","res","jsx","EventEmitter","isBrowser","useRouteLoaderData","useRevalidator","useNavigation","useLocation","useNavigate","useEffect","loadScript","WeaverseItemStore","Weaverse","memo","jsxs","Fragment","WeaverseRoot","useLoaderData","ErrorBoundary","Suspense","Await","createContext","useSafeExternalStore","hydrogen_getSelectedProductOptions"],"mappings":";;;;;;;;;;;;;;;;AAUO,SAAS,kBACd,OACA,EAAA;AACA,EAAA,IAAI,GAAM,GAAA,IAAI,GAAI,CAAA,OAAA,CAAQ,GAAG,CAAA;AAC7B,EAAA,OAAO,MAAM,IAAK,CAAA,GAAA,CAAI,YAAa,CAAA,OAAA,EAAS,CAAE,CAAA,MAAA;AAAA,IAC5C,CAAC,CAAA,EAA4B,CAAC,CAAA,EAAG,CAAC,CAAM,KAAA;AACtC,MAAA,CAAA,CAAE,CAAC,CAAI,GAAA,CAAA,KAAM,SAAS,IAAO,GAAA,CAAA,KAAM,UAAU,KAAQ,GAAA,CAAA;AACrD,MAAO,OAAA,CAAA;AAAA,KACT;AAAA,IACA;AAAC,GACH;AACF;AAEO,SAAS,kBAAA,CACd,SACA,GACwB,EAAA;AACxB,EAAI,IAAA,OAAA,GAAU,kBAAyC,OAAO,CAAA;AAC9D,EAAI,IAAA;AAAA,IACF,mBAAA;AAAA,IACA,gBAAA;AAAA,IACA,aAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACF,GAAI,OAAO,EAAC;AACZ,EAAA,IAAI,iBAAkB,OAAO,OAAA,KAAY,WAAe,IAAA,OAAA,CAAQ,OAAQ,EAAC;AACzE,EAAI,IAAA;AAAA,IACF,iBAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACE,GAAA,OAAA;AACJ,EAAO,OAAA;AAAA,IACL,SACE,EAAA,iBAAA,IACA,mBACA,IAAA,cAAA,CAAe,mBACf,IAAA,EAAA;AAAA,IACF,YACE,EAAA,YAAA,IACA,aACA,IAAA,cAAA,CAAe,aACf,IAAA,4BAAA;AAAA,IACF,cACE,EAAA,cAAA,IACA,gBACA,IAAA,cAAA,CAAe,gBACf,IAAA,EAAA;AAAA,IACF,iBAAiB,eAAmB,IAAA,EAAA;AAAA,IACpC,cAAc,YAAgB,IAAA,KAAA;AAAA,IAC9B,eAAe,aAAiB,IAAA,KAAA;AAAA,IAChC,aAAa,WAAe,IAAA,EAAA;AAAA,IAC5B,SAAW,EAAA;AAAA,MACT,qBAAqB,mBAAuB,IAAA,EAAA;AAAA,MAC5C,6BAA6B,2BAA+B,IAAA;AAAA;AAC9D,GACF;AACF;AAEO,SAAS,uBACdA,OACA,EAAA;AACA,EAAA,IAAI,OAA4B,EAAC;AACjC,EAAA,IAAI,YAAYA,OAAQ,EAAA,SAAA;AACxB,EAAA,IAAI,SAAW,EAAA;AACb,IAAA,KAAA,IAAS,SAAS,SAAW,EAAA;AAC3B,MAAS,KAAA,IAAA,KAAA,IAAS,MAAM,MAAQ,EAAA;AAC9B,QAAI,IAAA,EAAE,IAAM,EAAA,YAAA,EAAiB,GAAA,KAAA;AAC7B,QAAA,IAAI,IAAQ,IAAA,YAAA,KAAiB,IAAQ,IAAA,YAAA,KAAiB,MAAW,EAAA;AAC/D,UAAA,IAAA,CAAK,IAAI,CAAI,GAAA,YAAA;AAAA;AACf;AACF;AACF;AAEF,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,sBACP,CAAA,IAAA,EACA,UACA,EAAA,KAAA,EACA,QACA,EAAA;AACA,EAAI,IAAA,SAAA,GAAY,WAAW,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,MAAA,CAAO,SAAS,IAAI,CAAA;AAC7D,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAA;AAAA;AAEF,EAAA,IAAI,WAAW,EAAC;AAChB,EAAI,IAAA,EAAA,GAAK,OAAO,UAAW,EAAA;AAC3B,EAAI,IAAA,EAAE,UAAU,GAAG,IAAA,KAAS,SAAU,CAAA,MAAA,EAAQ,WAAW,EAAC;AAC1D,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,KAAA,IAAS,KAAK,QAAU,EAAA;AACtB,MAAA,IAAI,EAAE,IAAAC,EAAAA,KAAAA,EAAM,UAAAC,SAAU,EAAA,GAAGC,OAAS,GAAA,CAAA;AAClC,MAAA,IAAI,OAAU,GAAA,sBAAA,CAAuBF,KAAM,EAAA,UAAA,EAAY,OAAOE,KAAI,CAAA;AAClE,MAAA,QAAA,CAAS,IAAK,CAAA,EAAE,EAAI,EAAA,OAAA,EAAS,CAAA;AAAA;AAC/B;AAEF,EAAA,KAAA,CAAM,IAAK,CAAA;AAAA,IACT,IAAM,EAAA,EAAE,GAAG,IAAA,EAAM,GAAG,QAAS,EAAA;AAAA,IAC7B,EAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAU,EAAA;AAAA,GACX,CAAA;AACD,EAAO,OAAA,EAAA;AACT;AAEO,SAAS,cAAA,CACd,IACA,EAAA,UAAA,EACA,YACA,EAAA;AACA,EAAA,IAAI,QAAQ,EAAC;AACb,EAAO,OAAA;AAAA,IACL,SAAS,EAAE,EAAA,EAAI,KAAK,cAAgB,EAAA,SAAA,EAAW,MAAM,iBAAkB,EAAA;AAAA,IACvE,OAAS,EAAA;AAAA,MACP,SAAW,EAAA,GAAA;AAAA,MACX,YAAA;AAAA,MACA,YAAc,EAAA,KAAA;AAAA,MACd,aAAe,EAAA,IAAA;AAAA,MACf,WAAa,EAAA;AAAA,QACX,IAAM,EAAA;AAAA,UACJ,KAAO,EAAA,uBAAA;AAAA,UACP,QAAU,EAAA,IAAA;AAAA,UACV,OAAS,EAAA,IAAA;AAAA,UACT,QAAU,EAAA,KAAA;AAAA,UACV,UAAY,EAAA;AAAA,SACd;AAAA,QACA,SAAS,EAAC;AAAA,QACV,QAAU,EAAA,GAAA;AAAA,QACV,MAAQ,EAAA;AAAA;AACV,KACF;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,EAAI,EAAA,GAAA;AAAA,MACJ,IAAM,EAAA,iBAAA;AAAA,MACN,MAAQ,EAAA,GAAA;AAAA,MACR,KAAO,EAAA;AAAA,QACL;AAAA,UACE,MAAM,EAAC;AAAA,UACP,EAAI,EAAA,GAAA;AAAA,UACJ,IAAM,EAAA,MAAA;AAAA,UACN,QAAA,EAAU,CAAC,EAAE,EAAA,EAAI,uBAAuB,IAAM,EAAA,UAAA,EAAY,KAAK,CAAA,EAAG;AAAA,SACpE;AAAA,QACA,GAAG;AAAA;AACL;AACF,GACF;AACF;;;ACtIA,IAAM,QAAW,GAAA,YAAA;AACjB,IAAM,sBAAyB,GAAA;AAAA,EAC7B,MAAQ,EAAA,EAAA;AAAA,EACR,OAAS,EAAA,EAAA;AAAA,EACT,oBAAsB,EAAA,KAAA;AAAA,EACtB,YAAc,EAAA;AAChB,CAAA;AAEO,IAAM,iBAAN,MAAqB;AAAA,EACnB,GAAM,GAAA,QAAA;AAAA,EACN,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA;AAAA,EAGA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EAEP,YAAY,IAA0B,EAAA;AAEpC,IAAM,MAAA;AAAA,MACJ,GAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACE,GAAA,IAAA;AAGJ,IAAA,IAAA,CAAK,OAAU,GAAA,OAAA;AACf,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAClB,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAClB,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA;AACnB,IAAA,IAAA,CAAK,GAAM,GAAA,GAAA;AACX,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AACb,IAAA,IAAA,CAAK,SAAY,GAAA,SAAA;AACjB,IAAA,IAAA,CAAK,YAAYC,wBAAgB,CAAA,EAAE,KAAO,EAAA,SAAA,EAAW,SAAS,CAAA;AAG9D,IAAK,IAAA,CAAA,OAAA,GAAU,kBAAmB,CAAA,OAAA,EAAS,GAAkB,CAAA;AAG7D,IAAA,IAAA,CAAK,eAAkB,GAAA;AAAA,MACrB,SAAA,EAAW,KAAK,OAAQ,CAAA,SAAA;AAAA,MACxB,YAAA,EAAc,KAAK,OAAQ,CAAA,YAAA;AAAA,MAC3B,cAAA,EAAgB,KAAK,OAAQ,CAAA,cAAA;AAAA,MAC7B,eAAA,EAAiB,KAAK,OAAQ,CAAA,eAAA;AAAA,MAC9B,YAAA,EAAc,KAAK,OAAQ,CAAA;AAAA,KAC7B;AAEA,IAAA,IAAA,CAAK,mBAAsB,GAAA;AAAA,MACzB,YAAA,EAAc,KAAK,OAAQ,CAAA,YAAA;AAAA,MAC3B,MAAM,UAAW,CAAA,IAAA;AAAA,MACjB,SAAA,EAAW,KAAK,OAAQ,CAAA;AAAA,KAC1B;AAAA;AACF;AAAA,EAGQ,WAAc,GAAA,OACpB,GACA,EAAA,OAAA,GAAuB,EACR,KAAA;AACf,IAAI,IAAA;AACF,MAAA,IAAI,GAAM,GAAA,MAAM,KAAM,CAAA,GAAA,EAAK,OAAO,CAAA;AAClC,MAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,QAAI,IAAA,KAAA,GAAQ,MAAM,GAAA,CAAI,IAAK,EAAA;AAC3B,QAAM,MAAA,IAAI,KAAM,CAAA,CAAA,EAAG,GAAI,CAAA,MAAM,IAAI,GAAI,CAAA,UAAU,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,CAAA;AAAA;AAE5D,MAAA,OAAO,IAAI,IAAK,EAAA;AAAA,aACT,GAAK,EAAA;AACZ,MAAM,MAAA,IAAI,MAAM,CAA6B,0BAAA,EAAA,GAAG,IAAI,EAAE,KAAA,EAAO,KAAK,CAAA;AAAA;AACpE,GACF;AAAA,EAEO,cAAiB,GAAA,OACtB,GACA,EAAA,OAAA,GAAwD,EACzC,KAAA;AACf,IAAI,IAAA;AAAA,MACF,QAAW,GAAA,IAAA,CAAK,UAAW,CAAA,WAAA,CAAY,sBAAsB,CAAA;AAAA,MAC7D,GAAG;AAAA,KACD,GAAA,OAAA;AACJ,IAAA,IAAI,QAAW,GAAA,CAAC,GAAK,EAAA,OAAA,CAAQ,IAAI,CAAA;AAEjC,IAAI,IAAA,IAAA,CAAK,QAAQ,YAAc,EAAA;AAC7B,MAAO,OAAA,IAAA,CAAK,WAAe,CAAA,GAAA,EAAK,OAAO,CAAA;AAAA;AAGzC,IAAA,OAAO,KAAK,SAAU,CAAA,GAAA;AAAA,MACpB;AAAA,QACE,QAAA;AAAA,QACA,aAAe,EAAA,QAAA;AAAA,QACf,iBAAA,EAAmB,CAAC,MAAA,KAAgB,MAAQ,EAAA;AAAA,OAC9C;AAAA,MACA,YAAY;AACV,QAAO,OAAA,IAAA,CAAK,YAAe,GAAK,EAAA;AAAA,UAC9B,GAAG,OAAA;AAAA,UACH,OAAS,EAAA;AAAA,YACP,eAAA,EAAiBC,oCAA2B,QAAQ,CAAA;AAAA,YACpD,GAAG,OAAQ,CAAA;AAAA;AACb,SACD,CAAA;AAAA;AACH,KACF;AAAA,GACF;AAAA,EAEA,iBAAA,GAAoB,OAAO,QAA+B,KAAA;AACxD,IAAI,IAAA,oBAAA,GAAuB,sBAAuB,CAAA,IAAA,CAAK,WAAW,CAAA;AAClE,IAAI,IAAA;AACF,MAAI,IAAA,EAAE,GAAK,EAAA,OAAA,EAAY,GAAA,IAAA;AACvB,MAAA,IAAI,EAAE,YAAA,EAAc,SAAW,EAAA,YAAA,EAAiB,GAAA,OAAA;AAChD,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAM,MAAA,IAAI,MAAM,6BAA6B,CAAA;AAAA;AAE/C,MAAA,IAAI,GAAM,GAAA,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,GAAG,CAAA,gBAAA,CAAA;AAChC,MAAI,IAAA,GAAA;AACJ,MAAA,IAAI,OAAO,IAAK,CAAA,SAAA,CAAU,EAAE,YAAA,EAAc,WAAW,CAAA;AACrD,MAAA,IAAI,YAAc,EAAA;AAChB,QAAM,GAAA,GAAA,MAAM,MAAM,GAAK,EAAA,EAAE,QAAQ,MAAQ,EAAA,IAAA,EAAM,CAAE,CAAA,IAAA;AAAA,UAAK,CAACC,IACrDA,KAAAA,IAAAA,CAAI,IAAK;AAAA,SACX;AAAA,OACK,MAAA;AACL,QAAM,GAAA,GAAA,MAAM,IAAK,CAAA,cAAA,CAAe,GAAK,EAAA;AAAA,UACnC,MAAQ,EAAA,MAAA;AAAA,UACR,QAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA;AAEH,MAAI,IAAA,IAAA,GAAY,OAAO,EAAC;AACxB,MAAI,IAAA,IAAA,CAAK,aAAa,SAAW,EAAA;AAC/B,QAAA,IAAA,CAAK,KAAQ,GAAA;AAAA,UACX,GAAG,oBAAA;AAAA,UACH,GAAG,IAAK,CAAA;AAAA,SACV;AAAA;AAEF,MAAI,IAAA,IAAA,CAAK,QAAQ,YAAc,EAAA;AAC7B,QAAO,IAAA,GAAA;AAAA,UACL,GAAG,IAAA;AAAA,UACH,QAAQ,IAAK,CAAA,WAAA;AAAA,UACb,SAAA,EAAW,KAAK,OAAQ,CAAA;AAAA,SAC1B;AAAA;AAEF,MAAO,OAAA,IAAA;AAAA,aACA,CAAG,EAAA;AACV,MAAQ,OAAA,CAAA,IAAA,CAAK,iCAAiC,CAAC,CAAA;AAC/C,MAAO,OAAA,oBAAA;AAAA;AACT,GACF;AAAA,EAEA,oBAAA,GAAuB,CAAC,OAAsC,KAAA;AAC5D,IAAI,IAAA,MAAA,GAAS,OAAO,UAAW,EAAA;AAC/B,IAAO,OAAA;AAAA,MACL,EAAI,EAAA,CAAA,cAAA,EAAiB,IAAK,CAAA,GAAA,EAAK,CAAA,CAAA;AAAA,MAC/B,MAAA;AAAA,MACA,IAAM,EAAA,cAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL;AAAA,UACE,IAAM,EAAA,MAAA;AAAA,UACN,EAAI,EAAA,MAAA;AAAA,UACJ,MAAM,EAAE,uBAAA,EAAyB,EAAE,MAAA,EAAQ,SAAU;AAAA;AACvD;AACF,KACF;AAAA,GACF;AAAA,EAEA,QAAW,GAAA,OACT,MAKI,GAAA,EACmC,KAAA;AACvC,IAAI,IAAA;AACF,MAAA,IAAI,EAAE,OAAA,EAAS,UAAY,EAAA,mBAAA,EAAqB,iBAAoB,GAAA,IAAA;AACpE,MAAI,IAAA;AAAA,QACF,SAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA,UACE,IAAK,CAAA,OAAA;AAET,MAAA,IAAI,aAAe,EAAA;AACjB,QAAA,OAAO,cAAe,CAAA,WAAA,EAAa,IAAK,CAAA,UAAA,EAAY,YAAY,CAAA;AAAA;AAGlE,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAM,MAAA,IAAI,MAAM,6BAA6B,CAAA;AAAA;AAG/C,MAAA,IAAI,EAAE,QAAA,EAAU,GAAG,cAAA,EAAmB,GAAA,MAAA;AACtC,MAAA,IAAI,IAUA,GAAA;AAAA,QACF,GAAG,mBAAA;AAAA,QACH,MAAQ,EAAA,cAAA;AAAA,QACR,KAAK,OAAQ,CAAA;AAAA,OACf;AAEA,MAAA,IAAI,OAAuB,GAAA;AAAA,QACzB,MAAQ,EAAA,MAAA;AAAA,QACR,IAAA,EAAM,IAAK,CAAA,SAAA,CAAU,IAAI;AAAA,OAC3B;AACA,MAAA,IAAI,GAAM,GAAA,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,KAAK,GAAG,CAAA,QAAA,CAAA;AACrC,MAAI,IAAA,OAAA;AAEJ,MAAA,IAAI,YAAc,EAAA;AAChB,QAAU,OAAA,GAAA,MAAM,KAAM,CAAA,GAAA,EAAK,OAAO,CAAA,CAAE,KAAK,CAAC,GAAA,KAAQ,GAAI,CAAA,IAAA,EAAM,CAAA;AAAA,OACvD,MAAA;AACL,QAAU,OAAA,GAAA,MAAM,IAAK,CAAA,cAAA,CAAe,GAAK,EAAA;AAAA,UACvC,GAAG,OAAA;AAAA,UACH;AAAA,SACD,CAAA;AAAA;AAGH,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAM,MAAA,IAAI,KAAM,CAAA,OAAA,EAAS,KAAK,CAAA;AAAA;AAEhC,MAAA,IAAI,EAAE,IAAA,EAAM,OAAS,EAAA,cAAA,EAAmB,GAAA,OAAA;AACxC,MAAA,IAAI,CAAC,OAAS,EAAA;AACZ,QAAQ,OAAA,CAAA,KAAA,CAAM,mCAAmC,SAAS,CAAA;AAC1D,QAAU,OAAA,GAAA;AAAA,UACR,EAAI,EAAA,SAAA;AAAA,UACJ,IAAM,EAAA,6BAAA;AAAA,UACN,cAAgB,EAAA;AAAA,SAClB;AACA,QAAO,IAAA,GAAA,IAAA,CAAK,qBAAqB,6BAA6B,CAAA;AAAA;AAEhE,MAAA,IAAI,CAAC,IAAM,EAAA;AACT,QAAO,IAAA,GAAA,IAAA,CAAK,qBAAqB,kCAAkC,CAAA;AAAA;AAErE,MAAA,IAAI,MAAM,KAAO,EAAA;AACf,QAAA,IAAI,QAAQ,IAAK,CAAA,KAAA;AACjB,QAAK,IAAA,CAAA,KAAA,GAAQ,MAAM,OAAQ,CAAA,GAAA,CAAI,MAAM,GAAI,CAAA,IAAA,CAAK,mBAAmB,CAAC,CAAA;AAAA;AAEpE,MAAO,OAAA;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,cAAA;AAAA,QACA,OAAS,EAAA;AAAA,UACP,GAAG,eAAA;AAAA,UACH,WAAa,EAAA;AAAA,YACX,MAAM,UAAW,CAAA,IAAA;AAAA,YACjB,OAAA,EAAS,kBAAyC,OAAO,CAAA;AAAA,YACzD,QAAU,EAAA,IAAI,GAAI,CAAA,OAAA,CAAQ,GAAG,CAAE,CAAA,QAAA;AAAA,YAC/B,MAAQ,EAAA,IAAI,GAAI,CAAA,OAAA,CAAQ,GAAG,CAAE,CAAA;AAAA;AAC/B;AACF,OACF;AAAA,aACO,CAAG,EAAA;AAEV,MAAQ,OAAA,CAAA,KAAA,CAAM,4BAAuB,CAAC,CAAA;AACtC,MAAO,OAAA,IAAA;AAAA;AACT,GACF;AAAA,EAEA,mBAAA,GAAsB,OAAO,IAAgC,KAAA;AAC3D,IAAA,IAAI,EAAE,IAAO,GAAA,EAAI,EAAA,IAAA,EAAM,IAAO,GAAA,IAAA;AAC9B,IAAI,IAAA,SAAA,GAAY,IAAK,CAAA,UAAA,CAAW,IAAK,CAAA,CAAC,EAAE,MAAA,EAAAN,OAAO,EAAA,KAAMA,OAAQ,EAAA,IAAA,KAAS,IAAI,CAAA;AAC1E,IAAA,IAAI,SAAS,SAAW,EAAA,MAAA;AACxB,IAAI,IAAA,OAAO,WAAW,UAAY,EAAA;AAChC,MAAI,IAAA;AACF,QAAO,OAAA;AAAA,UACL,GAAG,IAAA;AAAA,UACH,UAAA,EAAY,MAAM,OAAQ,CAAA,OAAA;AAAA,YACxB,MAAO,CAAA;AAAA,cACL,IAAA,EAAM,EAAE,GAAG,sBAAA,CAAuB,UAAU,MAAM,CAAA,EAAG,GAAG,IAAK,EAAA;AAAA,cAC7D,QAAU,EAAA;AAAA,aACX;AAAA;AACH,SACF;AAAA,eACO,CAAG,EAAA;AACV,QAAA,OAAA,CAAQ,IAAK,CAAA,gCAAA,EAA6B,IAAM,EAAA,EAAA,EAAI,CAAC,CAAA;AACrD,QAAO,OAAA,IAAA;AAAA;AACT;AAEF,IAAO,OAAA,IAAA;AAAA,GACT;AACF;;;ACjUA,IAAA,YAAA,GAAA,EAAA;AAAA,QAAA,CAAA,YAAA,EAAA;AAAA,EAAA,OAAA,EAAA,MAAA,YAAA;AAAA,EAAA,MAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAOA,SAAS,KAAK,KAAgE,EAAA;AAC5E,EAAA,IAAI,EAAE,QAAA,EAAU,uBAAyB,EAAA,GAAG,MAAS,GAAA,KAAA;AAErD,EACE,uBAAAO,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MAEJ,QAAA;AAAA,MAEA,uBAAA,EAAyB,WAAW,MAAY,GAAA;AAAA;AAAA,GAClD;AAEJ;AAEA,IAAO,YAAQ,GAAA,IAAA;AAER,IAAI,MAAkC,GAAA;AAAA,EAC3C,IAAM,EAAA,MAAA;AAAA,EACN,KAAO,EAAA,MAAA;AAAA,EACP,WAAW;AACb,CAAA;;;ACvBO,IAAI,iBAAA,GAAyC,CAAC,YAAI,CAAA;ACUlD,IAAM,kBAAA,GAAN,cAAiCC,kBAAa,CAAA;AAAA,EACnD,WAAkC,EAAC;AAAA,EACnC,MAAA;AAAA,EACA,SAAA;AAAA,EAEA,YAAY,IAAyB,EAAA;AACnC,IAAM,KAAA,EAAA;AACN,IAAA,IAAI,EAAE,KAAO,EAAA,MAAA,EAAAR,SAAQ,SAAU,EAAA,GAAI,QAAQ,EAAC;AAC5C,IAAK,IAAA,CAAA,QAAA,GAAW,EAAE,GAAG,KAAM,EAAA;AAC3B,IAAA,IAAA,CAAK,MAASA,GAAAA,OAAAA;AACd,IAAA,IAAA,CAAK,SAAY,GAAA,SAAA;AACjB,IAAA,IAAIS,eAAW,EAAA;AACb,MAAA,MAAA,CAAO,4BAA+B,GAAA,IAAA;AAAA;AACxC;AACF,EAEA,mBAAA,GAAsB,CAAC,WAAuC,KAAA;AAC5D,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACd,GAAG,IAAK,CAAA,QAAA;AAAA,MACR,GAAG;AAAA,KACL;AACA,IAAK,IAAA,CAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA,GACzB;AAAA,EAEA,cAAc,MAAM;AAClB,IAAA,OAAO,IAAK,CAAA,QAAA;AAAA,GACd;AAAA,EAEA,oBAAoB,MAAM;AACxB,IAAA,OAAO,IAAK,CAAA,QAAA;AAAA,GACd;AACF,CAAA;AAEO,SAAS,qBAAwB,GAAA;AACtC,EAAI,IAAA,IAAA,GAAOC,+BAAmB,MAAM,CAAA;AACpC,EAAI,IAAAD,eAAA,IAAa,OAAO,4BAA8B,EAAA;AACpD,IAAA,OAAO,MAAO,CAAA,4BAAA;AAAA;AAEhB,EAAO,OAAA,IAAI,kBAAmB,CAAA,IAAA,EAAM,aAAa,CAAA;AACnD;;;AC1CO,SAAS,UAAU,QAA4B,EAAA;AACpD,EAAI,IAAA,EAAE,UAAW,EAAA,GAAIE,0BAAe,EAAA;AACpC,EAAA,IAAI,aAAaC,yBAAc,EAAA;AAC/B,EAAA,IAAI,EAAE,QAAA,EAAU,MAAO,EAAA,GAAIC,uBAAY,EAAA;AACvC,EAAA,IAAI,WAAWC,uBAAY,EAAA;AAC3B,EAAA,IAAI,qBAAqB,qBAAsB,EAAA;AAC/C,EAAA,IAAI,EAAE,YAAA,EAAc,YAAc,EAAA,eAAA,EAAiB,eAAkB,GAAA,QAAA;AAGrE,EAAAC,iBAAA,CAAU,MAAM;AACd,IAAI,IAAA,UAAA,CAAW,UAAU,MAAQ,EAAA;AAC/B,MAAA,IAAI,aAAe,EAAA;AACjB,QAAA,IAAI,UAAa,GAAA,CAAA,EAAG,YAAY,CAAA,qCAAA,EAAwC,eAAe,CAAA,CAAA;AACvF,QAAAC,gBAAA,CAAW,UAAU,CAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,iBACjC,YAAc,EAAA;AACvB,QAAA,QAAA,CAAS,QAAW,GAAA;AAAA,UAClB,GAAG,QAAS,CAAA,QAAA;AAAA,UACZ,QAAA;AAAA,UACA,UAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,IAAI,SAAY,GAAA,CAAA,EAAG,YAAY,CAAA,mCAAA,EAAsC,eAAe,CAAA,CAAA;AACpF,QAAWA,gBAAA,CAAA,SAAS,CACjB,CAAA,IAAA,CAAK,MAAM;AACV,UAAO,MAAA,CAAA,cAAA,EAAgB,KAAK,QAAQ,CAAA;AAAA,SACrC,CAAA,CACA,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA;AACxB;AACF,KACC,CAAC,QAAA,EAAU,MAAQ,EAAA,UAAA,CAAW,KAAK,CAAC,CAAA;AACvC,EAAA,QAAA,CAAS,QAAQ,CAAA;AACnB;AAEO,SAAS,SAAS,OAA2B,EAAA;AAClD,EAAA,IAAI,EAAE,SAAA,EAAW,MAAQ,EAAA,YAAA,EAAc,cAAiB,GAAA,OAAA;AAExD,EAAAD,iBAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,SAAa,IAAA,CAAC,MAAU,IAAA,CAAC,gBAAgB,YAAc,EAAA;AAC5D,IAAI,IAAA,GAAA,GAAM,GAAG,YAAY,CAAA,cAAA,CAAA;AACzB,IAAI,IAAA,GAAA,GAAM,IAAI,KAAM,EAAA;AACpB,IAAI,GAAA,CAAA,MAAA,GAAS,MAAM,GAAA,CAAI,MAAO,EAAA;AAC9B,IAAA,GAAA,CAAI,MAAM,CAAG,EAAA,GAAG,CAAc,WAAA,EAAA,SAAS,WAAW,MAAM,CAAA,CAAA;AAAA,GAC1D,EAAG,EAAE,CAAA;AACP;ACnBa,IAAA,oBAAA,GAAN,cAAmCE,uBAAkB,CAAA;AAAA,EAG1D,WAAA,CAAY,aAAoC,QAA4B,EAAA;AAC1E,IAAA,KAAA,CAAM,aAAa,QAAQ,CAAA;AAC3B,IAAA,IAAI,EAAE,IAAA,EAAM,GAAG,IAAA,EAAS,GAAA,WAAA;AACxB,IAAI,IAAA,CAAC,IAAK,CAAA,OAAA,EAAS,MAAQ,EAAA;AACzB,MAAA,OAAA,CAAQ,MAAM,yCAAyC,CAAA;AACvD,MAAA;AAAA;AAEF,IAAA,IAAI,UAAa,GAAA,sBAAA,CAAuB,IAAK,CAAA,OAAA,CAAQ,MAAM,CAAA;AAC3D,IAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,MAAQ,EAAA,UAAA,EAAY,MAAM,IAAI,CAAA;AAAA;AACnD,EAEA,IAAI,OAA2B,GAAA;AAC7B,IAAA,OAAO,KAAM,CAAA,OAAA;AAAA;AAEjB;AAEAC,cAAA,CAAS,eAAkB,GAAA,oBAAA;AAEd,IAAA,gBAAA,GAAN,cAA+BA,cAAS,CAAA;AAAA,EAC7C,YAAiC,GAAA,kBAAA;AAAA,EACjC,MAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EAGA,OAAO,aAAA;AAAA,EACP,OAAO,eAAA;AAAA,EAEP,YAAY,MAAgC,EAAA;AAC1C,IAAA,IAAI,EAAE,QAAU,EAAA,MAAA,EAAQ,WAAa,EAAA,GAAG,YAAe,GAAA,MAAA;AACvD,IAAM,KAAA,CAAA,EAAE,GAAG,UAAA,EAAY,CAAA;AACvB,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA;AAChB,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA;AACd,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA;AAAA;AAEvB;AAEA,SAAS,uBACP,MACkB,EAAA;AAClB,EAAA,IAAIT,eAAW,EAAA;AAEb,IAAO,MAAA,CAAA,WAAA,GAAc,MAAO,CAAA,WAAA,IAAe,EAAC;AAC5C,IAAA,IAAI,QAAW,GAAA,MAAA,CAAO,WAAY,CAAA,MAAA,CAAO,MAAM,CAAA;AAE/C,IAAA,IACE,CAAC,QAAA,IACD,QAAU,EAAA,WAAA,EAAa,QAAa,KAAA,MAAA,CAAO,WAAY,CAAA,QAAA,IACvD,QAAU,EAAA,WAAA,EAAa,MAAW,KAAA,MAAA,CAAO,YAAY,MACrD,EAAA;AACA,MAAW,QAAA,GAAA,IAAI,iBAAiB,MAAM,CAAA;AACtC,MAAO,MAAA,CAAA,WAAA,CAAY,MAAO,CAAA,MAAM,CAAI,GAAA,QAAA;AAAA;AAEtC,IAAA,IAAI,UAAU,YAAc,EAAA;AAC1B,MAAA,QAAA,CAAS,cAAc,MAAO,CAAA,WAAA;AAC9B,MAAO,MAAA,CAAA,cAAA,EAAgB,cAAc,MAAM,CAAA;AAAA;AAE7C,IAAO,OAAA,QAAA;AAAA;AAET,EAAO,OAAA,IAAI,iBAAiB,MAAM,CAAA;AACpC;AAEA,IAAI,YAAe,GAAAU,YAAA,CAAK,CAAC,EAAE,SAA6C,KAAA;AACtE,EAAA,SAAA,CAAU,OAAO,CAAA;AACjB,EAAO,OAAA,IAAA;AACT,CAAC,CAAA;AAED,SAAS,WAAW,KAGjB,EAAA;AACD,EAAI,IAAA,EAAE,IAAM,EAAA,UAAA,EAAe,GAAA,KAAA;AAC3B,EAAA,KAAA,IAAS,QAAQ,CAAC,GAAG,UAAY,EAAA,GAAG,iBAAiB,CAAG,EAAA;AACtD,IAAM,IAAA,EAAA,MAAA,EAAQ,QACZ,iBAAkB,CAAA;AAAA,MAChB,IAAA,EAAM,MAAM,MAAO,CAAA,IAAA;AAAA,MACnB,WAAW,IAAK,CAAA,OAAA;AAAA,MAChB,QAAQ,IAAK,CAAA,MAAA;AAAA,MACb,QAAQ,IAAK,CAAA;AAAA,KACd,CAAA;AAAA;AAEL,EAAA,IAAI,EAAE,IAAM,EAAA,OAAA,EAAS,SAAS,cAAe,EAAA,GAAI,QAAQ,EAAC;AAC1D,EAAA,IAAI,WAAW,sBAAuB,CAAA;AAAA,IACpC,GAAG,OAAA;AAAA,IACH,IAAM,EAAA,IAAA;AAAA,IACN,QAAQ,IAAM,EAAA,EAAA;AAAA,IACd,QAAA,EAAU,EAAE,OAAA,EAAS,cAAe;AAAA,GACrC,CAAA;AACD,EAAA,uBAEIC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAAd,cAAAA,CAACe,kBAAa,EAAA,EAAA,OAAA,EAAS,QAAU,EAAA,CAAA;AAAA,oBACjCf,cAAAA,CAAC,YAAa,EAAA,EAAA,OAAA,EAAS,QAAU,EAAA;AAAA,GACnC,EAAA,CAAA;AAEJ;AAEO,SAAS,kBAAkB,OAA0B,EAAA;AAC1D,EAAA,gBAAA,CAAiB,gBAAgB,OAAO,CAAA;AAC1C;AAEO,IAAI,oBAAuB,GAAAY,YAAA;AAAA,EAChC,CAAC;AAAA,IACC,UAAA;AAAA,IACA,cAAA,EAAgB,cAAiB,GAAA,CAAC,EAAE,KAAA,EAClC,qBAAAZ,cAAC,CAAA,KAAA,EAAA,EAAK,QAAO,EAAA,KAAA,EAAA,OAAA,IAAW,8BAA+B,EAAA;AAAA,GAKrD,KAAA;AACJ,IAAA,IAAI,aAAagB,yBAAc,EAAA;AAE/B,IAAA,IAAI,OAAO,UAAY,EAAA,YAAA;AAIvB,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,IAAI,gBAAgB,OAAS,EAAA;AAC3B,QACE,uBAAAhB,eAACiB,gCAAc,EAAA,EAAA,cAAA,EAAgB,gBAC7B,QAAAjB,kBAAAA,cAAAA,CAACkB,gBACC,EAAA,EAAA,QAAA,kBAAAlB,cAAC,CAAAmB,iBAAA,EAAA,EAAM,SAAS,IACb,EAAA,QAAA,EAAA,CAAC,YACA,qBAAAnB,cAAC,CAAA,UAAA,EAAA,EAAW,MAAM,YAAc,EAAA,UAAA,EAAwB,CAE5D,EAAA,CAAA,EACF,CACF,EAAA,CAAA;AAAA;AAGJ,MAAA,uBAAOA,cAAAA,CAAC,UAAW,EAAA,EAAA,IAAA,EAAY,UAAwB,EAAA,CAAA;AAAA;AAEzD,IAAA,uBACEA,cAAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,OAAA,EAAS,4CAA6C;AAAA;AAAA,KACjE;AAAA;AAGN;AAEA,IAAI,qBAAA,GAAwBoB,sBAA4C,IAAI,CAAA;AAC5E,qBAAA,CAAsB,WAAc,GAAA,+BAAA;AAE7B,SAAS,aAAa,SAA+B,EAAA;AAC1D,EAAA,OAAO,CAAC,KAAmC,KAAA;AACzC,IAAI,IAAA,EAAE,QAAS,EAAA,GAAI,qBAAsB,EAAA;AACzC,IAAA,uBACEpB,cAAAA,CAAC,qBAAsB,CAAA,QAAA,EAAtB,EAA+B,KAAA,EAAO,QACrC,EAAA,QAAA,kBAAAA,cAAC,CAAA,SAAA,EAAA,EAAW,GAAG,KAAA,EAAO,CACxB,EAAA,CAAA;AAAA,GAEJ;AACF;AAEO,SAAS,gBAA8C,GAAA;AAC5D,EAAA,IAAI,qBAAqB,qBAAsB,EAAA;AAC/C,EAAA,IAAI,QAAW,GAAAqB,0BAAA;AAAA,IACb,kBAAmB,CAAA,SAAA;AAAA,IACnB,kBAAmB,CAAA,WAAA;AAAA,IACnB,kBAAmB,CAAA;AAAA,GACrB;AACA,EAAO,OAAA,QAAA;AACT;;;AC7LO,SAAS,0BACd,OACuB,EAAA;AACvB,EAAI,IAAA,OAAA,GAAUC,mCAAmC,OAAO,CAAA;AACxD,EAAA,OAAO,OAAQ,CAAA,MAAA;AAAA,IACb,CAAC,EAAE,IAAK,EAAA,KAAM,SAAS,cAAkB,IAAA,CAAC,IAAK,CAAA,UAAA,CAAW,UAAU;AAAA,GACtE;AACF;AAEO,IAAM,mBAAsB,GAAA;AAAA,EACjC,UACE,EAAA,+EAAA;AAAA,EACF,UACE,EAAA,+EAAA;AAAA,EACF,KACE,EAAA,gFAAA;AAAA,EACF,QACE,EAAA,qFAAA;AAAA,EACF,QACE,EAAA,qFAAA;AAAA,EACF,YACE,EAAA,0FAAA;AAAA,EACF,YACE,EAAA,2FAAA;AAAA,EACF,YACE,EAAA,6FAAA;AAAA,EACF,YACE,EAAA,2FAAA;AAAA,EACF,YACE,EAAA,0FAAA;AAAA,EACF,YACE,EAAA,6FAAA;AAAA,EACF,SACE,EAAA,0FAAA;AAAA,EACF,SACE,EAAA,wFAAA;AAAA,EACF,SACE,EAAA,yFAAA;AAAA,EACF,SACE,EAAA,yFAAA;AAAA,EACF,SACE,EAAA,4FAAA;AAAA,EACF,SACE,EAAA,yFAAA;AAAA,EACF,SACE,EAAA,4FAAA;AAAA,EACF,SACE,EAAA,wFAAA;AAAA,EACF,SACE,EAAA,wFAAA;AAAA,EACF,UACE,EAAA,yFAAA;AAAA,EACF,UACE,EAAA,wFAAA;AAAA,EACF,UACE,EAAA,4FAAA;AAAA,EACF,UACE,EAAA,yFAAA;AAAA,EACF,UACE,EAAA,wFAAA;AAAA,EACF,UACE,EAAA,wFAAA;AAAA,EACF,UACE,EAAA,yFAAA;AAAA,EACF,UACE,EAAA,0FAAA;AAAA,EACF,UACE,EAAA;AACJ","file":"index.js","sourcesContent":["import type { HydrogenEnv } from '@shopify/hydrogen'\nimport type {\n HydrogenComponent,\n HydrogenComponentSchema,\n HydrogenThemeSchema,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from '../types'\n\nexport function getRequestQueries<T = Record<string, string | boolean>>(\n request: Request,\n) {\n let url = new URL(request.url)\n return Array.from(url.searchParams.entries()).reduce(\n (q: Record<string, unknown>, [k, v]) => {\n q[k] = v === 'true' ? true : v === 'false' ? false : v\n return q\n },\n {},\n ) as T\n}\n\nexport function getWeaverseConfigs(\n request: Request,\n env: HydrogenEnv,\n): WeaverseProjectConfigs {\n let queries = getRequestQueries<WeaverseStudioQueries>(request)\n let {\n WEAVERSE_PROJECT_ID,\n WEAVERSE_API_KEY,\n WEAVERSE_HOST,\n PUBLIC_STORE_DOMAIN,\n PUBLIC_STOREFRONT_API_TOKEN,\n } = env || {}\n let envFromProcess = (typeof process !== 'undefined' && process.env) || {}\n let {\n weaverseProjectId,\n weaverseHost,\n isDesignMode,\n isPreviewMode,\n sectionType,\n weaverseVersion,\n weaverseApiKey,\n } = queries\n return {\n projectId:\n weaverseProjectId ||\n WEAVERSE_PROJECT_ID ||\n envFromProcess.WEAVERSE_PROJECT_ID ||\n '',\n weaverseHost:\n weaverseHost ||\n WEAVERSE_HOST ||\n envFromProcess.WEAVERSE_HOST ||\n 'https://studio.weaverse.io',\n weaverseApiKey:\n weaverseApiKey ||\n WEAVERSE_API_KEY ||\n envFromProcess.WEAVERSE_API_KEY ||\n '',\n weaverseVersion: weaverseVersion || '',\n isDesignMode: isDesignMode || false,\n isPreviewMode: isPreviewMode || false,\n sectionType: sectionType || '',\n publicEnv: {\n PUBLIC_STORE_DOMAIN: PUBLIC_STORE_DOMAIN || '',\n PUBLIC_STOREFRONT_API_TOKEN: PUBLIC_STOREFRONT_API_TOKEN || '',\n },\n }\n}\n\nexport function generateDataFromSchema(\n schema: HydrogenComponentSchema | HydrogenThemeSchema,\n) {\n let data: Record<string, any> = {}\n let inspector = schema?.inspector\n if (inspector) {\n for (let group of inspector) {\n for (let input of group.inputs) {\n let { name, defaultValue } = input\n if (name && defaultValue !== null && defaultValue !== undefined) {\n data[name] = defaultValue\n }\n }\n }\n }\n return data\n}\n\nfunction recursivelyAddDataItem(\n type: string,\n components: HydrogenComponent<any>[],\n items: any[],\n initData?: object,\n) {\n let component = components.find((c) => c.schema.type === type)\n if (!component) {\n return\n }\n let childIds = []\n let id = crypto.randomUUID()\n let { children, ...data } = component.schema?.presets || {}\n if (children) {\n for (let c of children) {\n let { type, children, ...data } = c\n let childId = recursivelyAddDataItem(type, components, items, data)\n childIds.push({ id: childId })\n }\n }\n items.push({\n data: { ...data, ...initData },\n id,\n type,\n children: childIds,\n })\n return id\n}\n\nexport function getPreviewData(\n type: string,\n components: HydrogenComponent[],\n weaverseHost: string,\n) {\n let items = []\n return {\n project: { id: 'x', weaverseShopId: 'shop-id', name: 'Section Preview' },\n configs: {\n projectId: 'x',\n weaverseHost,\n isDesignMode: false,\n isPreviewMode: true,\n requestInfo: {\n i18n: {\n label: 'United States (USD $)',\n language: 'EN',\n country: 'US',\n currency: 'USD',\n pathPrefix: '',\n },\n queries: {},\n pathname: '/',\n search: '',\n },\n },\n page: {\n id: '0',\n name: 'Preview section',\n rootId: '1',\n items: [\n {\n data: {},\n id: '1',\n type: 'main',\n children: [{ id: recursivelyAddDataItem(type, components, items) }],\n },\n ...items,\n ],\n },\n } as unknown as WeaverseLoaderData\n}\n","import {\n type HydrogenEnv,\n type I18nBase,\n createWithCache,\n generateCacheControlHeader,\n} from '@shopify/hydrogen'\nimport type {\n AllCacheOptions,\n FetchProjectPayload,\n FetchProjectRequestBody,\n HydrogenComponentData,\n HydrogenPageData,\n PageType,\n WeaverseClientArgs,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from './types'\nimport {\n generateDataFromSchema,\n getPreviewData,\n getRequestQueries,\n getWeaverseConfigs,\n} from './utils'\n\n// Constants at the top\nconst API_PATH = 'api/public'\nconst DEFAULT_CACHE_STRATEGY = {\n maxAge: 10,\n sMaxAge: 10,\n staleWhileRevalidate: 82800,\n staleIfError: 82800,\n}\n\nexport class WeaverseClient {\n public API = API_PATH\n public basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>\n public basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>\n public configs: WeaverseProjectConfigs\n public withCache: ReturnType<typeof createWithCache>\n\n // Required dependencies\n public request: WeaverseClientArgs['request']\n public storefront: WeaverseClientArgs['storefront']\n public components: WeaverseClientArgs['components']\n public themeSchema: WeaverseClientArgs['themeSchema']\n public env: WeaverseClientArgs['env']\n public cache: WeaverseClientArgs['cache']\n public waitUntil: WeaverseClientArgs['waitUntil']\n\n constructor(args: WeaverseClientArgs) {\n // Destructure and initialize all dependencies\n const {\n env,\n storefront,\n components,\n cache,\n waitUntil,\n themeSchema,\n request,\n } = args\n\n // Initialize required properties\n this.request = request\n this.storefront = storefront\n this.components = components\n this.themeSchema = themeSchema\n this.env = env\n this.cache = cache\n this.waitUntil = waitUntil\n this.withCache = createWithCache({ cache, waitUntil, request })\n\n // Initialize configs\n this.configs = getWeaverseConfigs(request, env as HydrogenEnv)\n\n // Initialize base configurations\n this.basePageConfigs = {\n projectId: this.configs.projectId,\n weaverseHost: this.configs.weaverseHost,\n weaverseApiKey: this.configs.weaverseApiKey,\n weaverseVersion: this.configs.weaverseVersion,\n isDesignMode: this.configs.isDesignMode,\n }\n\n this.basePageRequestBody = {\n isDesignMode: this.configs.isDesignMode,\n i18n: storefront.i18n,\n projectId: this.configs.projectId,\n }\n }\n\n // Helper method for direct fetching in design mode\n private directFetch = async <T>(\n url: string,\n options: RequestInit = {},\n ): Promise<T> => {\n try {\n let res = await fetch(url, options)\n if (!res.ok) {\n let error = await res.text()\n throw new Error(`${res.status} ${res.statusText} ${error}`)\n }\n return res.json()\n } catch (err) {\n throw new Error(`Failed to fetch data from ${url}`, { cause: err })\n }\n }\n\n public fetchWithCache = async <T extends object>(\n url: string,\n options: RequestInit & { strategy?: AllCacheOptions } = {},\n ): Promise<T> => {\n let {\n strategy = this.storefront.CacheCustom(DEFAULT_CACHE_STRATEGY),\n ...reqInit\n } = options\n let cacheKey = [url, options.body]\n\n if (this.configs.isDesignMode) {\n return this.directFetch<T>(url, reqInit)\n }\n\n return this.withCache.run(\n {\n cacheKey,\n cacheStrategy: strategy,\n shouldCacheResult: (result: any) => result?.data,\n },\n async () => {\n return this.directFetch<T>(url, {\n ...reqInit,\n headers: {\n 'Cache-Control': generateCacheControlHeader(strategy),\n ...reqInit.headers,\n },\n })\n },\n ) as Promise<T>\n }\n\n loadThemeSettings = async (strategy?: AllCacheOptions) => {\n let defaultThemeSettings = generateDataFromSchema(this.themeSchema)\n try {\n let { API, configs } = this\n let { weaverseHost, projectId, isDesignMode } = configs\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n let url = `${weaverseHost}/${API}/project_configs`\n let res: any\n let body = JSON.stringify({ isDesignMode, projectId })\n if (isDesignMode) {\n res = await fetch(url, { method: 'POST', body }).then((res) =>\n res.json(),\n )\n } else {\n res = await this.fetchWithCache(url, {\n method: 'POST',\n strategy,\n body,\n })\n }\n let data: any = res || {}\n if (this.themeSchema?.inspector) {\n data.theme = {\n ...defaultThemeSettings,\n ...data.theme,\n }\n }\n if (this.configs.isDesignMode) {\n data = {\n ...data,\n schema: this.themeSchema,\n publicEnv: this.configs.publicEnv,\n }\n }\n return data\n } catch (e) {\n console.info('Unable to load theme settings', e)\n return defaultThemeSettings\n }\n }\n\n generateFallbackPage = (message: string): HydrogenPageData => {\n let rootId = crypto.randomUUID()\n return {\n id: `fallback_page_${Date.now()}`,\n rootId,\n name: 'Default Page',\n items: [\n {\n type: 'main',\n id: rootId,\n data: { dangerouslySetInnerHTML: { __html: message } },\n },\n ],\n }\n }\n\n loadPage = async (\n params: {\n type?: PageType\n locale?: string\n handle?: string\n strategy?: AllCacheOptions\n } = {},\n ): Promise<WeaverseLoaderData | null> => {\n try {\n let { request, storefront, basePageRequestBody, basePageConfigs } = this\n let {\n projectId,\n isDesignMode,\n weaverseHost,\n isPreviewMode,\n sectionType,\n } = this.configs\n\n if (isPreviewMode) {\n return getPreviewData(sectionType, this.components, weaverseHost)\n }\n\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n\n let { strategy, ...pageLoadParams } = params\n let body: {\n projectId: string\n url: string\n i18n?: I18nBase\n params?: {\n type?: PageType\n locale?: string\n handle?: string\n }\n isDesignMode?: boolean\n } = {\n ...basePageRequestBody,\n params: pageLoadParams,\n url: request.url,\n }\n\n let reqInit: RequestInit = {\n method: 'POST',\n body: JSON.stringify(body),\n }\n let url = `${weaverseHost}/${this.API}/project`\n let payload: FetchProjectPayload\n\n if (isDesignMode) {\n payload = await fetch(url, reqInit).then((res) => res.json())\n } else {\n payload = await this.fetchWithCache(url, {\n ...reqInit,\n strategy,\n })\n }\n\n if (payload?.error) {\n throw new Error(payload?.error)\n }\n let { page, project, pageAssignment } = payload\n if (!project) {\n console.error('Weaverse project not found. Id:', projectId)\n project = {\n id: projectId,\n name: 'Weaverse project not found.',\n weaverseShopId: '',\n }\n page = this.generateFallbackPage('Weaverse project not found.')\n }\n if (!page) {\n page = this.generateFallbackPage('Please add new section to start.')\n }\n if (page?.items) {\n let items = page.items\n page.items = await Promise.all(items.map(this.execComponentLoader))\n }\n return {\n page,\n project,\n pageAssignment,\n configs: {\n ...basePageConfigs,\n requestInfo: {\n i18n: storefront.i18n,\n queries: getRequestQueries<WeaverseStudioQueries>(request),\n pathname: new URL(request.url).pathname,\n search: new URL(request.url).search,\n },\n },\n }\n } catch (e) {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.error(`❌ Page load failed.`, e)\n return null\n }\n }\n\n execComponentLoader = async (item: HydrogenComponentData) => {\n let { data = {}, type, id } = item\n let component = this.components.find(({ schema }) => schema?.type === type)\n let loader = component?.loader\n if (typeof loader === 'function') {\n try {\n return {\n ...item,\n loaderData: await Promise.resolve(\n loader({\n data: { ...generateDataFromSchema(component.schema), ...data },\n weaverse: this,\n }),\n ),\n }\n } catch (e) {\n console.warn('❌ Item loader run failed.', type, id, e)\n return item\n }\n }\n return item\n }\n}\n","import type { HTMLAttributes } from 'react'\nimport type { HydrogenComponentProps, HydrogenComponentSchema } from '~/types'\n\n/*\n Main is the default Weaverse component that is used to render the main content.\n This component wraps all the sections/components inside a Weaverse page.\n*/\nfunction Main(props: HydrogenComponentProps & HTMLAttributes<HTMLDivElement>) {\n let { children, dangerouslySetInnerHTML, ...rest } = props\n\n return (\n <div\n {...rest}\n // biome-ignore lint/correctness/noChildrenProp: <explanation>\n children={children}\n // biome-ignore lint/security/noDangerouslySetInnerHtmlWithChildren: <explanation>\n dangerouslySetInnerHTML={children ? undefined : dangerouslySetInnerHTML}\n />\n )\n}\n\nexport default Main\n\nexport let schema: HydrogenComponentSchema = {\n type: 'main',\n title: 'Main',\n inspector: [],\n}\n","import * as Main from './main'\n\nimport type { HydrogenComponent } from '~/types'\n\nexport let defaultComponents: HydrogenComponent[] = [Main]\n","import { EventEmitter, isBrowser } from '@weaverse/react'\nimport { useRouteLoaderData } from 'react-router'\nimport type {\n HydrogenThemeSchema,\n HydrogenThemeSettings,\n PublicEnv,\n} from '~/types'\n\ntype WeaverseThemeData = {\n theme: HydrogenThemeSettings\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n}\n\nexport class ThemeSettingsStore extends EventEmitter {\n settings: HydrogenThemeSettings = {}\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n\n constructor(data: WeaverseThemeData) {\n super()\n let { theme, schema, publicEnv } = data || {}\n this.settings = { ...theme }\n this.schema = schema\n this.publicEnv = publicEnv\n if (isBrowser) {\n window.__weaverseThemeSettingsStore = this\n }\n }\n\n updateThemeSettings = (newSettings: HydrogenThemeSettings) => {\n this.settings = {\n ...this.settings,\n ...newSettings,\n }\n this.emit(this.settings)\n }\n\n getSnapshot = () => {\n return this.settings\n }\n\n getServerSnapshot = () => {\n return this.settings\n }\n}\n\nexport function useThemeSettingsStore() {\n let data = useRouteLoaderData('root') as { weaverseTheme: WeaverseThemeData }\n if (isBrowser && window.__weaverseThemeSettingsStore) {\n return window.__weaverseThemeSettingsStore\n }\n return new ThemeSettingsStore(data?.weaverseTheme)\n}\n","import { loadScript } from '@weaverse/react'\nimport { useEffect } from 'react'\nimport {\n useLocation,\n useNavigate,\n useNavigation,\n useRevalidator,\n} from 'react-router'\nimport type { WeaverseHydrogen } from '~/index'\nimport { useThemeSettingsStore } from './use-theme-settings-store'\n\nexport function useStudio(weaverse: WeaverseHydrogen) {\n let { revalidate } = useRevalidator()\n let navigation = useNavigation()\n let { pathname, search } = useLocation()\n let navigate = useNavigate()\n let themeSettingsStore = useThemeSettingsStore()\n let { isDesignMode, weaverseHost, weaverseVersion, isPreviewMode } = weaverse\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (navigation.state === 'idle') {\n if (isPreviewMode) {\n let previewSrc = `${weaverseHost}/static/studio/hydrogen/preview.js?v=${weaverseVersion}`\n loadScript(previewSrc).catch(console.error)\n } else if (isDesignMode) {\n weaverse.internal = {\n ...weaverse.internal,\n navigate,\n revalidate,\n themeSettingsStore,\n }\n let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`\n loadScript(studioSrc)\n .then(() => {\n window.weaverseStudio?.init(weaverse)\n })\n .catch(console.error)\n }\n }\n }, [pathname, search, navigation.state])\n usePixel(weaverse)\n}\n\nexport function usePixel(context: WeaverseHydrogen) {\n let { projectId, pageId, weaverseHost, isDesignMode } = context\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (!projectId || !pageId || !weaverseHost || isDesignMode) return\n let url = `${weaverseHost}/api/public/px`\n let img = new Image()\n img.onload = () => img.remove()\n img.src = `${url}?projectId=${projectId}&pageId=${pageId}`\n }, [])\n}\n","import {\n type PlatformTypeEnum,\n Weaverse,\n WeaverseItemStore,\n WeaverseRoot,\n isBrowser,\n useSafeExternalStore,\n} from '@weaverse/react'\nimport {\n type ComponentType,\n type JSX,\n Suspense,\n createContext,\n memo,\n} from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { Await, useLoaderData } from 'react-router'\nimport { defaultComponents } from '~/components'\nimport type {\n HydrogenComponentData,\n HydrogenElement,\n HydrogenPageData,\n HydrogenThemeSettings,\n WeaverseInternal,\n WeaverseLoaderRequestInfo,\n} from './index'\nimport type {\n HydrogenComponent,\n WeaverseHydrogenParams,\n WeaverseLoaderData,\n} from './types'\nimport { generateDataFromSchema } from './utils'\nimport { useStudio } from './utils/use-studio'\nimport { useThemeSettingsStore } from './utils/use-theme-settings-store'\n\nexport class WeaverseHydrogenItem extends WeaverseItemStore {\n declare weaverse: WeaverseHydrogen\n\n constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen) {\n super(initialData, weaverse)\n let { data, ...rest } = initialData\n if (!this.Element?.schema) {\n console.error('Element is missing schema or not found!')\n return\n }\n let schemaData = generateDataFromSchema(this.Element.schema)\n Object.assign(this._store, schemaData, data, rest)\n }\n\n get Element(): HydrogenElement {\n return super.Element\n }\n}\n\nWeaverse.ItemConstructor = WeaverseHydrogenItem\n\nexport class WeaverseHydrogen extends Weaverse {\n platformType: PlatformTypeEnum = 'shopify-hydrogen'\n pageId: string\n internal: Partial<WeaverseInternal>\n requestInfo: WeaverseLoaderRequestInfo\n declare ItemConstructor: typeof WeaverseHydrogenItem\n declare data: HydrogenPageData\n static itemInstances: Map<string, WeaverseHydrogenItem>\n static elementRegistry: Map<string, HydrogenElement>\n\n constructor(params: WeaverseHydrogenParams) {\n let { internal, pageId, requestInfo, ...coreParams } = params\n super({ ...coreParams })\n this.internal = internal\n this.pageId = pageId\n this.requestInfo = requestInfo\n }\n}\n\nfunction createWeaverseInstance(\n params: WeaverseHydrogenParams,\n): WeaverseHydrogen {\n if (isBrowser) {\n // Check if the weaverse instance already exists in the window object\n window.__weaverses = window.__weaverses || {}\n let weaverse = window.__weaverses[params.pageId]\n // If the weaverse instance does not exist, or the pathname or search has changed, create a new instance\n if (\n !weaverse ||\n weaverse?.requestInfo?.pathname !== params.requestInfo.pathname ||\n weaverse?.requestInfo?.search !== params.requestInfo.search\n ) {\n weaverse = new WeaverseHydrogen(params)\n window.__weaverses[params.pageId] = weaverse\n }\n if (weaverse?.isDesignMode) {\n weaverse.requestInfo = params.requestInfo\n window.weaverseStudio?.refreshStudio(params)\n }\n return weaverse\n }\n return new WeaverseHydrogen(params)\n}\n\nlet StudioBridge = memo(({ context }: { context: WeaverseHydrogen }) => {\n useStudio(context)\n return null\n})\n\nfunction RenderRoot(props: {\n data: WeaverseLoaderData\n components: HydrogenComponent[]\n}) {\n let { data, components } = props\n for (let comp of [...components, ...defaultComponents]) {\n comp?.schema?.type &&\n registerComponent({\n type: comp?.schema.type,\n Component: comp.default,\n schema: comp.schema,\n loader: comp.loader,\n })\n }\n let { page, configs, project, pageAssignment } = data || {}\n let weaverse = createWeaverseInstance({\n ...configs,\n data: page,\n pageId: page?.id,\n internal: { project, pageAssignment },\n })\n return (\n <>\n <WeaverseRoot context={weaverse} />\n <StudioBridge context={weaverse} />\n </>\n )\n}\n\nexport function registerComponent(element: HydrogenElement) {\n WeaverseHydrogen.registerElement(element)\n}\n\nexport let WeaverseHydrogenRoot = memo(\n ({\n components,\n errorComponent: ErrorComponent = ({ error }) => (\n <div>{error?.message || 'An unexpected error occurred'}</div>\n ),\n }: {\n components: HydrogenComponent[]\n errorComponent?: React.FC<{ error }>\n }) => {\n let loaderData = useLoaderData()\n // @ts-ignore\n let data = loaderData?.weaverseData as\n | WeaverseLoaderData\n | Promise<WeaverseLoaderData>\n\n if (data) {\n if (data instanceof Promise) {\n return (\n <ErrorBoundary fallbackRender={ErrorComponent as any}>\n <Suspense>\n <Await resolve={data}>\n {(resolvedData) => (\n <RenderRoot data={resolvedData} components={components} />\n )}\n </Await>\n </Suspense>\n </ErrorBoundary>\n )\n }\n return <RenderRoot data={data} components={components} />\n }\n return (\n <ErrorComponent\n error={{ message: 'No Weaverse data return from route loader!' }}\n />\n )\n },\n)\n\nlet ThemeSettingsProvider = createContext<HydrogenThemeSettings | null>(null)\nThemeSettingsProvider.displayName = 'WeaverseThemeSettingsProvider'\n\nexport function withWeaverse(Component: ComponentType<any>) {\n return (props: JSX.IntrinsicAttributes) => {\n let { settings } = useThemeSettingsStore()\n return (\n <ThemeSettingsProvider.Provider value={settings}>\n <Component {...props} />\n </ThemeSettingsProvider.Provider>\n )\n }\n}\n\nexport function useThemeSettings<T = HydrogenThemeSettings>() {\n let themeSettingsStore = useThemeSettingsStore()\n let settings = useSafeExternalStore(\n themeSettingsStore.subscribe,\n themeSettingsStore.getSnapshot,\n themeSettingsStore.getServerSnapshot,\n )\n return settings as T\n}\n","import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from '@shopify/hydrogen'\nimport type { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types'\nimport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n} from '@weaverse/react'\n\nexport function getSelectedProductOptions(\n request: Request,\n): SelectedOptionInput[] {\n let options = hydrogen_getSelectedProductOptions(request)\n return options.filter(\n ({ name }) => name !== 'isDesignMode' && !name.startsWith('weaverse'),\n )\n}\n\nexport const IMAGES_PLACEHOLDERS = {\n logo_white:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-w-600x200.svg',\n logo_black:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-k-600x200.svg',\n image:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-image-1024x1024.svg',\n banner_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-1-1800x900.svg',\n banner_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-2-1800x900.svg',\n collection_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-hats-1024x1024.svg',\n collection_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-shoes-1024x1024.svg',\n collection_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-glasses-1024x1024.svg',\n collection_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-lamps-1024x1024.svg',\n collection_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-bags-1024x1024.svg',\n collection_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-watches-1024x1024.svg',\n product_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-3-1024x1024.svg',\n product_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-2-1024x1024.svg',\n product_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-1-1024x1024.svg',\n product_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-2-1024x1024.svg',\n product_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-1-1024x1024.svg',\n product_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-1-1024x1024.svg',\n product_7:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-2-1024x1024.svg',\n product_8:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-3-1024x1024.svg',\n product_9:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-1-1024x1024.svg',\n product_10:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-2-1024x1024.svg',\n product_11:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-2-1024x1024.svg',\n product_12:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-3-1024x1024.svg',\n product_13:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-3-1024x1024.svg',\n product_14:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-3-1024x1024.svg',\n product_15:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-1-1024x1024.svg',\n product_16:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-3-1024x1024.svg',\n product_17:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-1-1024x1024.svg',\n product_18:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-2-1024x1024.svg',\n}\n\nexport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n}\nexport * from './types'\nexport * from './weaverse-client'\nexport * from './WeaverseHydrogenRoot'\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createWithCache, generateCacheControlHeader, getSelectedProductOptions as getSelectedProductOptions$1 } from '@shopify/hydrogen';
|
|
2
2
|
import { Weaverse, WeaverseItemStore, loadScript, WeaverseRoot, isBrowser, EventEmitter, useSafeExternalStore } from '@weaverse/react';
|
|
3
3
|
export { isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
4
|
-
import {
|
|
5
|
-
import { forwardRef, memo, Suspense, createContext, useEffect } from 'react';
|
|
4
|
+
import { memo, Suspense, createContext, useEffect } from 'react';
|
|
6
5
|
import { ErrorBoundary } from 'react-error-boundary';
|
|
6
|
+
import { useLoaderData, Await, useRevalidator, useNavigation, useLocation, useNavigate, useRouteLoaderData } from 'react-router';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
var __defProp = Object.defineProperty;
|
|
@@ -388,18 +388,17 @@ __export(main_exports, {
|
|
|
388
388
|
default: () => main_default,
|
|
389
389
|
schema: () => schema
|
|
390
390
|
});
|
|
391
|
-
|
|
391
|
+
function Main(props) {
|
|
392
392
|
let { children, dangerouslySetInnerHTML, ...rest } = props;
|
|
393
393
|
return /* @__PURE__ */ jsx(
|
|
394
394
|
"div",
|
|
395
395
|
{
|
|
396
|
-
ref,
|
|
397
396
|
...rest,
|
|
398
397
|
children,
|
|
399
398
|
dangerouslySetInnerHTML: children ? void 0 : dangerouslySetInnerHTML
|
|
400
399
|
}
|
|
401
400
|
);
|
|
402
|
-
}
|
|
401
|
+
}
|
|
403
402
|
var main_default = Main;
|
|
404
403
|
var schema = {
|
|
405
404
|
type: "main",
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/index.ts","../src/weaverse-client.ts","../src/components/main.tsx","../src/components/index.ts","../src/utils/use-theme-settings-store.ts","../src/utils/use-studio.ts","../src/WeaverseHydrogenRoot.tsx","../src/index.ts"],"names":["schema","type","children","data","res","isBrowser","jsx","hydrogen_getSelectedProductOptions"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { HydrogenEnv } from '@shopify/hydrogen'\nimport type {\n HydrogenComponent,\n HydrogenComponentSchema,\n HydrogenThemeSchema,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from '../types'\n\nexport function getRequestQueries<T = Record<string, string | boolean>>(\n request: Request,\n) {\n let url = new URL(request.url)\n return Array.from(url.searchParams.entries()).reduce(\n (q: Record<string, unknown>, [k, v]) => {\n q[k] = v === 'true' ? true : v === 'false' ? false : v\n return q\n },\n {},\n ) as T\n}\n\nexport function getWeaverseConfigs(\n request: Request,\n env: HydrogenEnv,\n): WeaverseProjectConfigs {\n let queries = getRequestQueries<WeaverseStudioQueries>(request)\n let {\n WEAVERSE_PROJECT_ID,\n WEAVERSE_API_KEY,\n WEAVERSE_HOST,\n PUBLIC_STORE_DOMAIN,\n PUBLIC_STOREFRONT_API_TOKEN,\n } = env || {}\n let envFromProcess = (typeof process !== 'undefined' && process.env) || {}\n let {\n weaverseProjectId,\n weaverseHost,\n isDesignMode,\n isPreviewMode,\n sectionType,\n weaverseVersion,\n weaverseApiKey,\n } = queries\n return {\n projectId:\n weaverseProjectId ||\n WEAVERSE_PROJECT_ID ||\n envFromProcess.WEAVERSE_PROJECT_ID ||\n '',\n weaverseHost:\n weaverseHost ||\n WEAVERSE_HOST ||\n envFromProcess.WEAVERSE_HOST ||\n 'https://studio.weaverse.io',\n weaverseApiKey:\n weaverseApiKey ||\n WEAVERSE_API_KEY ||\n envFromProcess.WEAVERSE_API_KEY ||\n '',\n weaverseVersion: weaverseVersion || '',\n isDesignMode: isDesignMode || false,\n isPreviewMode: isPreviewMode || false,\n sectionType: sectionType || '',\n publicEnv: {\n PUBLIC_STORE_DOMAIN: PUBLIC_STORE_DOMAIN || '',\n PUBLIC_STOREFRONT_API_TOKEN: PUBLIC_STOREFRONT_API_TOKEN || '',\n },\n }\n}\n\nexport function generateDataFromSchema(\n schema: HydrogenComponentSchema | HydrogenThemeSchema,\n) {\n let data: Record<string, any> = {}\n let inspector = schema?.inspector\n if (inspector) {\n for (let group of inspector) {\n for (let input of group.inputs) {\n let { name, defaultValue } = input\n if (name && defaultValue !== null && defaultValue !== undefined) {\n data[name] = defaultValue\n }\n }\n }\n }\n return data\n}\n\nfunction recursivelyAddDataItem(\n type: string,\n components: HydrogenComponent<any>[],\n items: any[],\n initData?: object,\n) {\n let component = components.find((c) => c.schema.type === type)\n if (!component) {\n return\n }\n let childIds = []\n let id = crypto.randomUUID()\n let { children, ...data } = component.schema?.presets || {}\n if (children) {\n for (let c of children) {\n let { type, children, ...data } = c\n let childId = recursivelyAddDataItem(type, components, items, data)\n childIds.push({ id: childId })\n }\n }\n items.push({\n data: { ...data, ...initData },\n id,\n type,\n children: childIds,\n })\n return id\n}\n\nexport function getPreviewData(\n type: string,\n components: HydrogenComponent[],\n weaverseHost: string,\n) {\n let items = []\n return {\n project: { id: 'x', weaverseShopId: 'shop-id', name: 'Section Preview' },\n configs: {\n projectId: 'x',\n weaverseHost,\n isDesignMode: false,\n isPreviewMode: true,\n requestInfo: {\n i18n: {\n label: 'United States (USD $)',\n language: 'EN',\n country: 'US',\n currency: 'USD',\n pathPrefix: '',\n },\n queries: {},\n pathname: '/',\n search: '',\n },\n },\n page: {\n id: '0',\n name: 'Preview section',\n rootId: '1',\n items: [\n {\n data: {},\n id: '1',\n type: 'main',\n children: [{ id: recursivelyAddDataItem(type, components, items) }],\n },\n ...items,\n ],\n },\n } as unknown as WeaverseLoaderData\n}\n","import {\n type HydrogenEnv,\n type I18nBase,\n createWithCache,\n generateCacheControlHeader,\n} from '@shopify/hydrogen'\nimport type {\n AllCacheOptions,\n FetchProjectPayload,\n FetchProjectRequestBody,\n HydrogenComponentData,\n HydrogenPageData,\n PageType,\n WeaverseClientArgs,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from './types'\nimport {\n generateDataFromSchema,\n getPreviewData,\n getRequestQueries,\n getWeaverseConfigs,\n} from './utils'\n\n// Constants at the top\nconst API_PATH = 'api/public'\nconst DEFAULT_CACHE_STRATEGY = {\n maxAge: 10,\n sMaxAge: 10,\n staleWhileRevalidate: 82800,\n staleIfError: 82800,\n}\n\nexport class WeaverseClient {\n public API = API_PATH\n public basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>\n public basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>\n public configs: WeaverseProjectConfigs\n public withCache: ReturnType<typeof createWithCache>\n\n // Required dependencies\n public request: WeaverseClientArgs['request']\n public storefront: WeaverseClientArgs['storefront']\n public components: WeaverseClientArgs['components']\n public themeSchema: WeaverseClientArgs['themeSchema']\n public env: WeaverseClientArgs['env']\n public cache: WeaverseClientArgs['cache']\n public waitUntil: WeaverseClientArgs['waitUntil']\n\n constructor(args: WeaverseClientArgs) {\n // Destructure and initialize all dependencies\n const {\n env,\n storefront,\n components,\n cache,\n waitUntil,\n themeSchema,\n request,\n } = args\n\n // Initialize required properties\n this.request = request\n this.storefront = storefront\n this.components = components\n this.themeSchema = themeSchema\n this.env = env\n this.cache = cache\n this.waitUntil = waitUntil\n this.withCache = createWithCache({ cache, waitUntil, request })\n\n // Initialize configs\n this.configs = getWeaverseConfigs(request, env as HydrogenEnv)\n\n // Initialize base configurations\n this.basePageConfigs = {\n projectId: this.configs.projectId,\n weaverseHost: this.configs.weaverseHost,\n weaverseApiKey: this.configs.weaverseApiKey,\n weaverseVersion: this.configs.weaverseVersion,\n isDesignMode: this.configs.isDesignMode,\n }\n\n this.basePageRequestBody = {\n isDesignMode: this.configs.isDesignMode,\n i18n: storefront.i18n,\n projectId: this.configs.projectId,\n }\n }\n\n // Helper method for direct fetching in design mode\n private directFetch = async <T>(\n url: string,\n options: RequestInit = {},\n ): Promise<T> => {\n try {\n let res = await fetch(url, options)\n if (!res.ok) {\n let error = await res.text()\n throw new Error(`${res.status} ${res.statusText} ${error}`)\n }\n return res.json()\n } catch (err) {\n throw new Error(`Failed to fetch data from ${url}`, { cause: err })\n }\n }\n\n public fetchWithCache = async <T extends object>(\n url: string,\n options: RequestInit & { strategy?: AllCacheOptions } = {},\n ): Promise<T> => {\n let {\n strategy = this.storefront.CacheCustom(DEFAULT_CACHE_STRATEGY),\n ...reqInit\n } = options\n let cacheKey = [url, options.body]\n\n if (this.configs.isDesignMode) {\n return this.directFetch<T>(url, reqInit)\n }\n\n return this.withCache.run(\n {\n cacheKey,\n cacheStrategy: strategy,\n shouldCacheResult: (result: any) => result?.data,\n },\n async () => {\n return this.directFetch<T>(url, {\n ...reqInit,\n headers: {\n 'Cache-Control': generateCacheControlHeader(strategy),\n ...reqInit.headers,\n },\n })\n },\n ) as Promise<T>\n }\n\n loadThemeSettings = async (strategy?: AllCacheOptions) => {\n let defaultThemeSettings = generateDataFromSchema(this.themeSchema)\n try {\n let { API, configs } = this\n let { weaverseHost, projectId, isDesignMode } = configs\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n let url = `${weaverseHost}/${API}/project_configs`\n let res: any\n let body = JSON.stringify({ isDesignMode, projectId })\n if (isDesignMode) {\n res = await fetch(url, { method: 'POST', body }).then((res) =>\n res.json(),\n )\n } else {\n res = await this.fetchWithCache(url, {\n method: 'POST',\n strategy,\n body,\n })\n }\n let data: any = res || {}\n if (this.themeSchema?.inspector) {\n data.theme = {\n ...defaultThemeSettings,\n ...data.theme,\n }\n }\n if (this.configs.isDesignMode) {\n data = {\n ...data,\n schema: this.themeSchema,\n publicEnv: this.configs.publicEnv,\n }\n }\n return data\n } catch (e) {\n console.info('Unable to load theme settings', e)\n return defaultThemeSettings\n }\n }\n\n generateFallbackPage = (message: string): HydrogenPageData => {\n let rootId = crypto.randomUUID()\n return {\n id: `fallback_page_${Date.now()}`,\n rootId,\n name: 'Default Page',\n items: [\n {\n type: 'main',\n id: rootId,\n data: { dangerouslySetInnerHTML: { __html: message } },\n },\n ],\n }\n }\n\n loadPage = async (\n params: {\n type?: PageType\n locale?: string\n handle?: string\n strategy?: AllCacheOptions\n } = {},\n ): Promise<WeaverseLoaderData | null> => {\n try {\n let { request, storefront, basePageRequestBody, basePageConfigs } = this\n let {\n projectId,\n isDesignMode,\n weaverseHost,\n isPreviewMode,\n sectionType,\n } = this.configs\n\n if (isPreviewMode) {\n return getPreviewData(sectionType, this.components, weaverseHost)\n }\n\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n\n let { strategy, ...pageLoadParams } = params\n let body: {\n projectId: string\n url: string\n i18n?: I18nBase\n params?: {\n type?: PageType\n locale?: string\n handle?: string\n }\n isDesignMode?: boolean\n } = {\n ...basePageRequestBody,\n params: pageLoadParams,\n url: request.url,\n }\n\n let reqInit: RequestInit = {\n method: 'POST',\n body: JSON.stringify(body),\n }\n let url = `${weaverseHost}/${this.API}/project`\n let payload: FetchProjectPayload\n\n if (isDesignMode) {\n payload = await fetch(url, reqInit).then((res) => res.json())\n } else {\n payload = await this.fetchWithCache(url, {\n ...reqInit,\n strategy,\n })\n }\n\n if (payload?.error) {\n throw new Error(payload?.error)\n }\n let { page, project, pageAssignment } = payload\n if (!project) {\n console.error('Weaverse project not found. Id:', projectId)\n project = {\n id: projectId,\n name: 'Weaverse project not found.',\n weaverseShopId: '',\n }\n page = this.generateFallbackPage('Weaverse project not found.')\n }\n if (!page) {\n page = this.generateFallbackPage('Please add new section to start.')\n }\n if (page?.items) {\n let items = page.items\n page.items = await Promise.all(items.map(this.execComponentLoader))\n }\n return {\n page,\n project,\n pageAssignment,\n configs: {\n ...basePageConfigs,\n requestInfo: {\n i18n: storefront.i18n,\n queries: getRequestQueries<WeaverseStudioQueries>(request),\n pathname: new URL(request.url).pathname,\n search: new URL(request.url).search,\n },\n },\n }\n } catch (e) {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.error(`❌ Page load failed.`, e)\n return null\n }\n }\n\n execComponentLoader = async (item: HydrogenComponentData) => {\n let { data = {}, type, id } = item\n let component = this.components.find(({ schema }) => schema?.type === type)\n let loader = component?.loader\n if (typeof loader === 'function') {\n try {\n return {\n ...item,\n loaderData: await Promise.resolve(\n loader({\n data: { ...generateDataFromSchema(component.schema), ...data },\n weaverse: this,\n }),\n ),\n }\n } catch (e) {\n console.warn('❌ Item loader run failed.', type, id, e)\n return item\n }\n }\n return item\n }\n}\n","import { type HTMLAttributes, forwardRef } from 'react'\nimport type { HydrogenComponentProps, HydrogenComponentSchema } from '~/types'\n\n/*\n Main is the default Weaverse component that is used to render the main content.\n This component wraps all the sections/components inside a Weaverse page.\n*/\nlet Main = forwardRef<\n HTMLDivElement,\n HydrogenComponentProps & HTMLAttributes<HTMLDivElement>\n>((props, ref) => {\n let { children, dangerouslySetInnerHTML, ...rest } = props\n\n return (\n <div\n ref={ref}\n {...rest}\n // biome-ignore lint/correctness/noChildrenProp: <explanation>\n children={children}\n // biome-ignore lint/security/noDangerouslySetInnerHtmlWithChildren: <explanation>\n dangerouslySetInnerHTML={children ? undefined : dangerouslySetInnerHTML}\n />\n )\n})\n\nexport default Main\n\nexport let schema: HydrogenComponentSchema = {\n type: 'main',\n title: 'Main',\n inspector: [],\n}\n","import * as Main from './main'\n\nimport type { HydrogenComponent } from '~/types'\n\nexport let defaultComponents: HydrogenComponent[] = [Main]\n","import { useRouteLoaderData } from 'react-router';\nimport { EventEmitter, isBrowser } from '@weaverse/react'\nimport type {\n HydrogenThemeSchema,\n HydrogenThemeSettings,\n PublicEnv,\n} from '~/types'\n\ntype WeaverseThemeData = {\n theme: HydrogenThemeSettings\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n}\n\nexport class ThemeSettingsStore extends EventEmitter {\n settings: HydrogenThemeSettings = {}\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n\n constructor(data: WeaverseThemeData) {\n super()\n let { theme, schema, publicEnv } = data || {}\n this.settings = { ...theme }\n this.schema = schema\n this.publicEnv = publicEnv\n if (isBrowser) {\n window.__weaverseThemeSettingsStore = this\n }\n }\n\n updateThemeSettings = (newSettings: HydrogenThemeSettings) => {\n this.settings = {\n ...this.settings,\n ...newSettings,\n }\n this.emit(this.settings)\n }\n\n getSnapshot = () => {\n return this.settings\n }\n\n getServerSnapshot = () => {\n return this.settings\n }\n}\n\nexport function useThemeSettingsStore() {\n let data = useRouteLoaderData('root') as { weaverseTheme: WeaverseThemeData }\n if (isBrowser && window.__weaverseThemeSettingsStore) {\n return window.__weaverseThemeSettingsStore\n }\n return new ThemeSettingsStore(data?.weaverseTheme)\n}\n","import { useLocation, useNavigate, useNavigation, useRevalidator } from 'react-router';\nimport { loadScript } from '@weaverse/react'\nimport { useEffect } from 'react'\nimport type { WeaverseHydrogen } from '~/index'\nimport { useThemeSettingsStore } from './use-theme-settings-store'\n\nexport function useStudio(weaverse: WeaverseHydrogen) {\n let { revalidate } = useRevalidator()\n let navigation = useNavigation()\n let { pathname, search } = useLocation()\n let navigate = useNavigate()\n let themeSettingsStore = useThemeSettingsStore()\n let { isDesignMode, weaverseHost, weaverseVersion, isPreviewMode } = weaverse\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (navigation.state === 'idle') {\n if (isPreviewMode) {\n let previewSrc = `${weaverseHost}/static/studio/hydrogen/preview.js?v=${weaverseVersion}`\n loadScript(previewSrc).catch(console.error)\n } else if (isDesignMode) {\n weaverse.internal = {\n ...weaverse.internal,\n navigate,\n revalidate,\n themeSettingsStore,\n }\n let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`\n loadScript(studioSrc)\n .then(() => {\n window.weaverseStudio?.init(weaverse)\n })\n .catch(console.error)\n }\n }\n }, [pathname, search, navigation.state])\n usePixel(weaverse)\n}\n\nexport function usePixel(context: WeaverseHydrogen) {\n let { projectId, pageId, weaverseHost, isDesignMode } = context\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (!projectId || !pageId || !weaverseHost || isDesignMode) return\n let url = `${weaverseHost}/api/public/px`\n let img = new Image()\n img.onload = () => img.remove()\n img.src = `${url}?projectId=${projectId}&pageId=${pageId}`\n }, [])\n}\n","import { Await, useLoaderData } from 'react-router';\nimport {\n type PlatformTypeEnum,\n Weaverse,\n WeaverseItemStore,\n WeaverseRoot,\n isBrowser,\n useSafeExternalStore,\n} from '@weaverse/react'\nimport {\n type ComponentType,\n type JSX,\n Suspense,\n createContext,\n memo,\n} from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { defaultComponents } from '~/components'\nimport type {\n HydrogenComponentData,\n HydrogenElement,\n HydrogenPageData,\n HydrogenThemeSettings,\n WeaverseInternal,\n WeaverseLoaderRequestInfo,\n} from './index'\nimport type {\n HydrogenComponent,\n WeaverseHydrogenParams,\n WeaverseLoaderData,\n} from './types'\nimport { generateDataFromSchema } from './utils'\nimport { useStudio } from './utils/use-studio'\nimport { useThemeSettingsStore } from './utils/use-theme-settings-store'\n\nexport class WeaverseHydrogenItem extends WeaverseItemStore {\n declare weaverse: WeaverseHydrogen\n\n constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen) {\n super(initialData, weaverse)\n let { data, ...rest } = initialData\n if (!this.Element?.schema) {\n console.error('Element is missing schema or not found!')\n return\n }\n let schemaData = generateDataFromSchema(this.Element.schema)\n Object.assign(this._store, schemaData, data, rest)\n }\n\n get Element(): HydrogenElement {\n return super.Element\n }\n}\n\nWeaverse.ItemConstructor = WeaverseHydrogenItem\n\nexport class WeaverseHydrogen extends Weaverse {\n platformType: PlatformTypeEnum = 'shopify-hydrogen'\n pageId: string\n internal: Partial<WeaverseInternal>\n requestInfo: WeaverseLoaderRequestInfo\n declare ItemConstructor: typeof WeaverseHydrogenItem\n declare data: HydrogenPageData\n static itemInstances: Map<string, WeaverseHydrogenItem>\n static elementRegistry: Map<string, HydrogenElement>\n\n constructor(params: WeaverseHydrogenParams) {\n let { internal, pageId, requestInfo, ...coreParams } = params\n super({ ...coreParams })\n this.internal = internal\n this.pageId = pageId\n this.requestInfo = requestInfo\n }\n}\n\nfunction createWeaverseInstance(\n params: WeaverseHydrogenParams,\n): WeaverseHydrogen {\n if (isBrowser) {\n // Check if the weaverse instance already exists in the window object\n window.__weaverses = window.__weaverses || {}\n let weaverse = window.__weaverses[params.pageId]\n // If the weaverse instance does not exist, or the pathname or search has changed, create a new instance\n if (\n !weaverse ||\n weaverse?.requestInfo?.pathname !== params.requestInfo.pathname ||\n weaverse?.requestInfo?.search !== params.requestInfo.search\n ) {\n weaverse = new WeaverseHydrogen(params)\n window.__weaverses[params.pageId] = weaverse\n }\n if (weaverse?.isDesignMode) {\n weaverse.requestInfo = params.requestInfo\n window.weaverseStudio?.refreshStudio(params)\n }\n return weaverse\n }\n return new WeaverseHydrogen(params)\n}\n\nlet StudioBridge = memo(({ context }: { context: WeaverseHydrogen }) => {\n useStudio(context)\n return null\n})\n\nfunction RenderRoot(props: {\n data: WeaverseLoaderData\n components: HydrogenComponent[]\n}) {\n let { data, components } = props\n for (let comp of [...components, ...defaultComponents]) {\n comp?.schema?.type &&\n registerComponent({\n type: comp?.schema.type,\n Component: comp.default,\n schema: comp.schema,\n loader: comp.loader,\n })\n }\n let { page, configs, project, pageAssignment } = data || {}\n let weaverse = createWeaverseInstance({\n ...configs,\n data: page,\n pageId: page?.id,\n internal: { project, pageAssignment },\n })\n return (\n <>\n <WeaverseRoot context={weaverse} />\n <StudioBridge context={weaverse} />\n </>\n )\n}\n\nexport function registerComponent(element: HydrogenElement) {\n WeaverseHydrogen.registerElement(element)\n}\n\nexport let WeaverseHydrogenRoot = memo(\n ({\n components,\n errorComponent: ErrorComponent = ({ error }) => (\n <div>{error?.message || 'An unexpected error occurred'}</div>\n ),\n }: {\n components: HydrogenComponent[]\n errorComponent?: React.FC<{ error }>\n }) => {\n let loaderData = useLoaderData()\n // @ts-ignore\n let data = loaderData?.weaverseData as\n | WeaverseLoaderData\n | Promise<WeaverseLoaderData>\n\n if (data) {\n if (data instanceof Promise) {\n return (\n <ErrorBoundary fallbackRender={ErrorComponent as any}>\n <Suspense>\n <Await resolve={data}>\n {(resolvedData) => (\n <RenderRoot data={resolvedData} components={components} />\n )}\n </Await>\n </Suspense>\n </ErrorBoundary>\n )\n }\n return <RenderRoot data={data} components={components} />\n }\n return (\n <ErrorComponent\n error={{ message: 'No Weaverse data return from route loader!' }}\n />\n )\n },\n)\n\nlet ThemeSettingsProvider = createContext<HydrogenThemeSettings | null>(null)\nThemeSettingsProvider.displayName = 'WeaverseThemeSettingsProvider'\n\nexport function withWeaverse(Component: ComponentType<any>) {\n return (props: JSX.IntrinsicAttributes) => {\n let { settings } = useThemeSettingsStore()\n return (\n <ThemeSettingsProvider.Provider value={settings}>\n <Component {...props} />\n </ThemeSettingsProvider.Provider>\n )\n }\n}\n\nexport function useThemeSettings<T = HydrogenThemeSettings>() {\n let themeSettingsStore = useThemeSettingsStore()\n let settings = useSafeExternalStore(\n themeSettingsStore.subscribe,\n themeSettingsStore.getSnapshot,\n themeSettingsStore.getServerSnapshot,\n )\n return settings as T\n}\n","import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from '@shopify/hydrogen'\nimport type { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types'\nimport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n} from '@weaverse/react'\n\nexport function getSelectedProductOptions(\n request: Request,\n): SelectedOptionInput[] {\n let options = hydrogen_getSelectedProductOptions(request)\n return options.filter(\n ({ name }) => name !== 'isDesignMode' && !name.startsWith('weaverse'),\n )\n}\n\nexport const IMAGES_PLACEHOLDERS = {\n logo_white:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-w-600x200.svg',\n logo_black:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-k-600x200.svg',\n image:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-image-1024x1024.svg',\n banner_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-1-1800x900.svg',\n banner_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-2-1800x900.svg',\n collection_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-hats-1024x1024.svg',\n collection_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-shoes-1024x1024.svg',\n collection_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-glasses-1024x1024.svg',\n collection_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-lamps-1024x1024.svg',\n collection_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-bags-1024x1024.svg',\n collection_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-watches-1024x1024.svg',\n product_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-3-1024x1024.svg',\n product_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-2-1024x1024.svg',\n product_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-1-1024x1024.svg',\n product_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-2-1024x1024.svg',\n product_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-1-1024x1024.svg',\n product_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-1-1024x1024.svg',\n product_7:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-2-1024x1024.svg',\n product_8:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-3-1024x1024.svg',\n product_9:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-1-1024x1024.svg',\n product_10:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-2-1024x1024.svg',\n product_11:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-2-1024x1024.svg',\n product_12:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-3-1024x1024.svg',\n product_13:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-3-1024x1024.svg',\n product_14:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-3-1024x1024.svg',\n product_15:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-1-1024x1024.svg',\n product_16:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-3-1024x1024.svg',\n product_17:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-1-1024x1024.svg',\n product_18:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-2-1024x1024.svg',\n}\n\nexport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n}\nexport * from './types'\nexport * from './weaverse-client'\nexport * from './WeaverseHydrogenRoot'\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/index.ts","../src/weaverse-client.ts","../src/components/main.tsx","../src/components/index.ts","../src/utils/use-theme-settings-store.ts","../src/utils/use-studio.ts","../src/WeaverseHydrogenRoot.tsx","../src/index.ts"],"names":["schema","type","children","data","res","isBrowser","jsx","hydrogen_getSelectedProductOptions"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { HydrogenEnv } from '@shopify/hydrogen'\nimport type {\n HydrogenComponent,\n HydrogenComponentSchema,\n HydrogenThemeSchema,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from '../types'\n\nexport function getRequestQueries<T = Record<string, string | boolean>>(\n request: Request,\n) {\n let url = new URL(request.url)\n return Array.from(url.searchParams.entries()).reduce(\n (q: Record<string, unknown>, [k, v]) => {\n q[k] = v === 'true' ? true : v === 'false' ? false : v\n return q\n },\n {},\n ) as T\n}\n\nexport function getWeaverseConfigs(\n request: Request,\n env: HydrogenEnv,\n): WeaverseProjectConfigs {\n let queries = getRequestQueries<WeaverseStudioQueries>(request)\n let {\n WEAVERSE_PROJECT_ID,\n WEAVERSE_API_KEY,\n WEAVERSE_HOST,\n PUBLIC_STORE_DOMAIN,\n PUBLIC_STOREFRONT_API_TOKEN,\n } = env || {}\n let envFromProcess = (typeof process !== 'undefined' && process.env) || {}\n let {\n weaverseProjectId,\n weaverseHost,\n isDesignMode,\n isPreviewMode,\n sectionType,\n weaverseVersion,\n weaverseApiKey,\n } = queries\n return {\n projectId:\n weaverseProjectId ||\n WEAVERSE_PROJECT_ID ||\n envFromProcess.WEAVERSE_PROJECT_ID ||\n '',\n weaverseHost:\n weaverseHost ||\n WEAVERSE_HOST ||\n envFromProcess.WEAVERSE_HOST ||\n 'https://studio.weaverse.io',\n weaverseApiKey:\n weaverseApiKey ||\n WEAVERSE_API_KEY ||\n envFromProcess.WEAVERSE_API_KEY ||\n '',\n weaverseVersion: weaverseVersion || '',\n isDesignMode: isDesignMode || false,\n isPreviewMode: isPreviewMode || false,\n sectionType: sectionType || '',\n publicEnv: {\n PUBLIC_STORE_DOMAIN: PUBLIC_STORE_DOMAIN || '',\n PUBLIC_STOREFRONT_API_TOKEN: PUBLIC_STOREFRONT_API_TOKEN || '',\n },\n }\n}\n\nexport function generateDataFromSchema(\n schema: HydrogenComponentSchema | HydrogenThemeSchema,\n) {\n let data: Record<string, any> = {}\n let inspector = schema?.inspector\n if (inspector) {\n for (let group of inspector) {\n for (let input of group.inputs) {\n let { name, defaultValue } = input\n if (name && defaultValue !== null && defaultValue !== undefined) {\n data[name] = defaultValue\n }\n }\n }\n }\n return data\n}\n\nfunction recursivelyAddDataItem(\n type: string,\n components: HydrogenComponent<any>[],\n items: any[],\n initData?: object,\n) {\n let component = components.find((c) => c.schema.type === type)\n if (!component) {\n return\n }\n let childIds = []\n let id = crypto.randomUUID()\n let { children, ...data } = component.schema?.presets || {}\n if (children) {\n for (let c of children) {\n let { type, children, ...data } = c\n let childId = recursivelyAddDataItem(type, components, items, data)\n childIds.push({ id: childId })\n }\n }\n items.push({\n data: { ...data, ...initData },\n id,\n type,\n children: childIds,\n })\n return id\n}\n\nexport function getPreviewData(\n type: string,\n components: HydrogenComponent[],\n weaverseHost: string,\n) {\n let items = []\n return {\n project: { id: 'x', weaverseShopId: 'shop-id', name: 'Section Preview' },\n configs: {\n projectId: 'x',\n weaverseHost,\n isDesignMode: false,\n isPreviewMode: true,\n requestInfo: {\n i18n: {\n label: 'United States (USD $)',\n language: 'EN',\n country: 'US',\n currency: 'USD',\n pathPrefix: '',\n },\n queries: {},\n pathname: '/',\n search: '',\n },\n },\n page: {\n id: '0',\n name: 'Preview section',\n rootId: '1',\n items: [\n {\n data: {},\n id: '1',\n type: 'main',\n children: [{ id: recursivelyAddDataItem(type, components, items) }],\n },\n ...items,\n ],\n },\n } as unknown as WeaverseLoaderData\n}\n","import {\n type HydrogenEnv,\n type I18nBase,\n createWithCache,\n generateCacheControlHeader,\n} from '@shopify/hydrogen'\nimport type {\n AllCacheOptions,\n FetchProjectPayload,\n FetchProjectRequestBody,\n HydrogenComponentData,\n HydrogenPageData,\n PageType,\n WeaverseClientArgs,\n WeaverseLoaderData,\n WeaverseProjectConfigs,\n WeaverseStudioQueries,\n} from './types'\nimport {\n generateDataFromSchema,\n getPreviewData,\n getRequestQueries,\n getWeaverseConfigs,\n} from './utils'\n\n// Constants at the top\nconst API_PATH = 'api/public'\nconst DEFAULT_CACHE_STRATEGY = {\n maxAge: 10,\n sMaxAge: 10,\n staleWhileRevalidate: 82800,\n staleIfError: 82800,\n}\n\nexport class WeaverseClient {\n public API = API_PATH\n public basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>\n public basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>\n public configs: WeaverseProjectConfigs\n public withCache: ReturnType<typeof createWithCache>\n\n // Required dependencies\n public request: WeaverseClientArgs['request']\n public storefront: WeaverseClientArgs['storefront']\n public components: WeaverseClientArgs['components']\n public themeSchema: WeaverseClientArgs['themeSchema']\n public env: WeaverseClientArgs['env']\n public cache: WeaverseClientArgs['cache']\n public waitUntil: WeaverseClientArgs['waitUntil']\n\n constructor(args: WeaverseClientArgs) {\n // Destructure and initialize all dependencies\n const {\n env,\n storefront,\n components,\n cache,\n waitUntil,\n themeSchema,\n request,\n } = args\n\n // Initialize required properties\n this.request = request\n this.storefront = storefront\n this.components = components\n this.themeSchema = themeSchema\n this.env = env\n this.cache = cache\n this.waitUntil = waitUntil\n this.withCache = createWithCache({ cache, waitUntil, request })\n\n // Initialize configs\n this.configs = getWeaverseConfigs(request, env as HydrogenEnv)\n\n // Initialize base configurations\n this.basePageConfigs = {\n projectId: this.configs.projectId,\n weaverseHost: this.configs.weaverseHost,\n weaverseApiKey: this.configs.weaverseApiKey,\n weaverseVersion: this.configs.weaverseVersion,\n isDesignMode: this.configs.isDesignMode,\n }\n\n this.basePageRequestBody = {\n isDesignMode: this.configs.isDesignMode,\n i18n: storefront.i18n,\n projectId: this.configs.projectId,\n }\n }\n\n // Helper method for direct fetching in design mode\n private directFetch = async <T>(\n url: string,\n options: RequestInit = {},\n ): Promise<T> => {\n try {\n let res = await fetch(url, options)\n if (!res.ok) {\n let error = await res.text()\n throw new Error(`${res.status} ${res.statusText} ${error}`)\n }\n return res.json()\n } catch (err) {\n throw new Error(`Failed to fetch data from ${url}`, { cause: err })\n }\n }\n\n public fetchWithCache = async <T extends object>(\n url: string,\n options: RequestInit & { strategy?: AllCacheOptions } = {},\n ): Promise<T> => {\n let {\n strategy = this.storefront.CacheCustom(DEFAULT_CACHE_STRATEGY),\n ...reqInit\n } = options\n let cacheKey = [url, options.body]\n\n if (this.configs.isDesignMode) {\n return this.directFetch<T>(url, reqInit)\n }\n\n return this.withCache.run(\n {\n cacheKey,\n cacheStrategy: strategy,\n shouldCacheResult: (result: any) => result?.data,\n },\n async () => {\n return this.directFetch<T>(url, {\n ...reqInit,\n headers: {\n 'Cache-Control': generateCacheControlHeader(strategy),\n ...reqInit.headers,\n },\n })\n },\n ) as Promise<T>\n }\n\n loadThemeSettings = async (strategy?: AllCacheOptions) => {\n let defaultThemeSettings = generateDataFromSchema(this.themeSchema)\n try {\n let { API, configs } = this\n let { weaverseHost, projectId, isDesignMode } = configs\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n let url = `${weaverseHost}/${API}/project_configs`\n let res: any\n let body = JSON.stringify({ isDesignMode, projectId })\n if (isDesignMode) {\n res = await fetch(url, { method: 'POST', body }).then((res) =>\n res.json(),\n )\n } else {\n res = await this.fetchWithCache(url, {\n method: 'POST',\n strategy,\n body,\n })\n }\n let data: any = res || {}\n if (this.themeSchema?.inspector) {\n data.theme = {\n ...defaultThemeSettings,\n ...data.theme,\n }\n }\n if (this.configs.isDesignMode) {\n data = {\n ...data,\n schema: this.themeSchema,\n publicEnv: this.configs.publicEnv,\n }\n }\n return data\n } catch (e) {\n console.info('Unable to load theme settings', e)\n return defaultThemeSettings\n }\n }\n\n generateFallbackPage = (message: string): HydrogenPageData => {\n let rootId = crypto.randomUUID()\n return {\n id: `fallback_page_${Date.now()}`,\n rootId,\n name: 'Default Page',\n items: [\n {\n type: 'main',\n id: rootId,\n data: { dangerouslySetInnerHTML: { __html: message } },\n },\n ],\n }\n }\n\n loadPage = async (\n params: {\n type?: PageType\n locale?: string\n handle?: string\n strategy?: AllCacheOptions\n } = {},\n ): Promise<WeaverseLoaderData | null> => {\n try {\n let { request, storefront, basePageRequestBody, basePageConfigs } = this\n let {\n projectId,\n isDesignMode,\n weaverseHost,\n isPreviewMode,\n sectionType,\n } = this.configs\n\n if (isPreviewMode) {\n return getPreviewData(sectionType, this.components, weaverseHost)\n }\n\n if (!projectId) {\n throw new Error('Missing Weaverse projectId!')\n }\n\n let { strategy, ...pageLoadParams } = params\n let body: {\n projectId: string\n url: string\n i18n?: I18nBase\n params?: {\n type?: PageType\n locale?: string\n handle?: string\n }\n isDesignMode?: boolean\n } = {\n ...basePageRequestBody,\n params: pageLoadParams,\n url: request.url,\n }\n\n let reqInit: RequestInit = {\n method: 'POST',\n body: JSON.stringify(body),\n }\n let url = `${weaverseHost}/${this.API}/project`\n let payload: FetchProjectPayload\n\n if (isDesignMode) {\n payload = await fetch(url, reqInit).then((res) => res.json())\n } else {\n payload = await this.fetchWithCache(url, {\n ...reqInit,\n strategy,\n })\n }\n\n if (payload?.error) {\n throw new Error(payload?.error)\n }\n let { page, project, pageAssignment } = payload\n if (!project) {\n console.error('Weaverse project not found. Id:', projectId)\n project = {\n id: projectId,\n name: 'Weaverse project not found.',\n weaverseShopId: '',\n }\n page = this.generateFallbackPage('Weaverse project not found.')\n }\n if (!page) {\n page = this.generateFallbackPage('Please add new section to start.')\n }\n if (page?.items) {\n let items = page.items\n page.items = await Promise.all(items.map(this.execComponentLoader))\n }\n return {\n page,\n project,\n pageAssignment,\n configs: {\n ...basePageConfigs,\n requestInfo: {\n i18n: storefront.i18n,\n queries: getRequestQueries<WeaverseStudioQueries>(request),\n pathname: new URL(request.url).pathname,\n search: new URL(request.url).search,\n },\n },\n }\n } catch (e) {\n // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>\n console.error(`❌ Page load failed.`, e)\n return null\n }\n }\n\n execComponentLoader = async (item: HydrogenComponentData) => {\n let { data = {}, type, id } = item\n let component = this.components.find(({ schema }) => schema?.type === type)\n let loader = component?.loader\n if (typeof loader === 'function') {\n try {\n return {\n ...item,\n loaderData: await Promise.resolve(\n loader({\n data: { ...generateDataFromSchema(component.schema), ...data },\n weaverse: this,\n }),\n ),\n }\n } catch (e) {\n console.warn('❌ Item loader run failed.', type, id, e)\n return item\n }\n }\n return item\n }\n}\n","import type { HTMLAttributes } from 'react'\nimport type { HydrogenComponentProps, HydrogenComponentSchema } from '~/types'\n\n/*\n Main is the default Weaverse component that is used to render the main content.\n This component wraps all the sections/components inside a Weaverse page.\n*/\nfunction Main(props: HydrogenComponentProps & HTMLAttributes<HTMLDivElement>) {\n let { children, dangerouslySetInnerHTML, ...rest } = props\n\n return (\n <div\n {...rest}\n // biome-ignore lint/correctness/noChildrenProp: <explanation>\n children={children}\n // biome-ignore lint/security/noDangerouslySetInnerHtmlWithChildren: <explanation>\n dangerouslySetInnerHTML={children ? undefined : dangerouslySetInnerHTML}\n />\n )\n}\n\nexport default Main\n\nexport let schema: HydrogenComponentSchema = {\n type: 'main',\n title: 'Main',\n inspector: [],\n}\n","import * as Main from './main'\n\nimport type { HydrogenComponent } from '~/types'\n\nexport let defaultComponents: HydrogenComponent[] = [Main]\n","import { EventEmitter, isBrowser } from '@weaverse/react'\nimport { useRouteLoaderData } from 'react-router'\nimport type {\n HydrogenThemeSchema,\n HydrogenThemeSettings,\n PublicEnv,\n} from '~/types'\n\ntype WeaverseThemeData = {\n theme: HydrogenThemeSettings\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n}\n\nexport class ThemeSettingsStore extends EventEmitter {\n settings: HydrogenThemeSettings = {}\n schema?: HydrogenThemeSchema\n publicEnv?: PublicEnv\n\n constructor(data: WeaverseThemeData) {\n super()\n let { theme, schema, publicEnv } = data || {}\n this.settings = { ...theme }\n this.schema = schema\n this.publicEnv = publicEnv\n if (isBrowser) {\n window.__weaverseThemeSettingsStore = this\n }\n }\n\n updateThemeSettings = (newSettings: HydrogenThemeSettings) => {\n this.settings = {\n ...this.settings,\n ...newSettings,\n }\n this.emit(this.settings)\n }\n\n getSnapshot = () => {\n return this.settings\n }\n\n getServerSnapshot = () => {\n return this.settings\n }\n}\n\nexport function useThemeSettingsStore() {\n let data = useRouteLoaderData('root') as { weaverseTheme: WeaverseThemeData }\n if (isBrowser && window.__weaverseThemeSettingsStore) {\n return window.__weaverseThemeSettingsStore\n }\n return new ThemeSettingsStore(data?.weaverseTheme)\n}\n","import { loadScript } from '@weaverse/react'\nimport { useEffect } from 'react'\nimport {\n useLocation,\n useNavigate,\n useNavigation,\n useRevalidator,\n} from 'react-router'\nimport type { WeaverseHydrogen } from '~/index'\nimport { useThemeSettingsStore } from './use-theme-settings-store'\n\nexport function useStudio(weaverse: WeaverseHydrogen) {\n let { revalidate } = useRevalidator()\n let navigation = useNavigation()\n let { pathname, search } = useLocation()\n let navigate = useNavigate()\n let themeSettingsStore = useThemeSettingsStore()\n let { isDesignMode, weaverseHost, weaverseVersion, isPreviewMode } = weaverse\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (navigation.state === 'idle') {\n if (isPreviewMode) {\n let previewSrc = `${weaverseHost}/static/studio/hydrogen/preview.js?v=${weaverseVersion}`\n loadScript(previewSrc).catch(console.error)\n } else if (isDesignMode) {\n weaverse.internal = {\n ...weaverse.internal,\n navigate,\n revalidate,\n themeSettingsStore,\n }\n let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`\n loadScript(studioSrc)\n .then(() => {\n window.weaverseStudio?.init(weaverse)\n })\n .catch(console.error)\n }\n }\n }, [pathname, search, navigation.state])\n usePixel(weaverse)\n}\n\nexport function usePixel(context: WeaverseHydrogen) {\n let { projectId, pageId, weaverseHost, isDesignMode } = context\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (!projectId || !pageId || !weaverseHost || isDesignMode) return\n let url = `${weaverseHost}/api/public/px`\n let img = new Image()\n img.onload = () => img.remove()\n img.src = `${url}?projectId=${projectId}&pageId=${pageId}`\n }, [])\n}\n","import {\n type PlatformTypeEnum,\n Weaverse,\n WeaverseItemStore,\n WeaverseRoot,\n isBrowser,\n useSafeExternalStore,\n} from '@weaverse/react'\nimport {\n type ComponentType,\n type JSX,\n Suspense,\n createContext,\n memo,\n} from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { Await, useLoaderData } from 'react-router'\nimport { defaultComponents } from '~/components'\nimport type {\n HydrogenComponentData,\n HydrogenElement,\n HydrogenPageData,\n HydrogenThemeSettings,\n WeaverseInternal,\n WeaverseLoaderRequestInfo,\n} from './index'\nimport type {\n HydrogenComponent,\n WeaverseHydrogenParams,\n WeaverseLoaderData,\n} from './types'\nimport { generateDataFromSchema } from './utils'\nimport { useStudio } from './utils/use-studio'\nimport { useThemeSettingsStore } from './utils/use-theme-settings-store'\n\nexport class WeaverseHydrogenItem extends WeaverseItemStore {\n declare weaverse: WeaverseHydrogen\n\n constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen) {\n super(initialData, weaverse)\n let { data, ...rest } = initialData\n if (!this.Element?.schema) {\n console.error('Element is missing schema or not found!')\n return\n }\n let schemaData = generateDataFromSchema(this.Element.schema)\n Object.assign(this._store, schemaData, data, rest)\n }\n\n get Element(): HydrogenElement {\n return super.Element\n }\n}\n\nWeaverse.ItemConstructor = WeaverseHydrogenItem\n\nexport class WeaverseHydrogen extends Weaverse {\n platformType: PlatformTypeEnum = 'shopify-hydrogen'\n pageId: string\n internal: Partial<WeaverseInternal>\n requestInfo: WeaverseLoaderRequestInfo\n declare ItemConstructor: typeof WeaverseHydrogenItem\n declare data: HydrogenPageData\n static itemInstances: Map<string, WeaverseHydrogenItem>\n static elementRegistry: Map<string, HydrogenElement>\n\n constructor(params: WeaverseHydrogenParams) {\n let { internal, pageId, requestInfo, ...coreParams } = params\n super({ ...coreParams })\n this.internal = internal\n this.pageId = pageId\n this.requestInfo = requestInfo\n }\n}\n\nfunction createWeaverseInstance(\n params: WeaverseHydrogenParams,\n): WeaverseHydrogen {\n if (isBrowser) {\n // Check if the weaverse instance already exists in the window object\n window.__weaverses = window.__weaverses || {}\n let weaverse = window.__weaverses[params.pageId]\n // If the weaverse instance does not exist, or the pathname or search has changed, create a new instance\n if (\n !weaverse ||\n weaverse?.requestInfo?.pathname !== params.requestInfo.pathname ||\n weaverse?.requestInfo?.search !== params.requestInfo.search\n ) {\n weaverse = new WeaverseHydrogen(params)\n window.__weaverses[params.pageId] = weaverse\n }\n if (weaverse?.isDesignMode) {\n weaverse.requestInfo = params.requestInfo\n window.weaverseStudio?.refreshStudio(params)\n }\n return weaverse\n }\n return new WeaverseHydrogen(params)\n}\n\nlet StudioBridge = memo(({ context }: { context: WeaverseHydrogen }) => {\n useStudio(context)\n return null\n})\n\nfunction RenderRoot(props: {\n data: WeaverseLoaderData\n components: HydrogenComponent[]\n}) {\n let { data, components } = props\n for (let comp of [...components, ...defaultComponents]) {\n comp?.schema?.type &&\n registerComponent({\n type: comp?.schema.type,\n Component: comp.default,\n schema: comp.schema,\n loader: comp.loader,\n })\n }\n let { page, configs, project, pageAssignment } = data || {}\n let weaverse = createWeaverseInstance({\n ...configs,\n data: page,\n pageId: page?.id,\n internal: { project, pageAssignment },\n })\n return (\n <>\n <WeaverseRoot context={weaverse} />\n <StudioBridge context={weaverse} />\n </>\n )\n}\n\nexport function registerComponent(element: HydrogenElement) {\n WeaverseHydrogen.registerElement(element)\n}\n\nexport let WeaverseHydrogenRoot = memo(\n ({\n components,\n errorComponent: ErrorComponent = ({ error }) => (\n <div>{error?.message || 'An unexpected error occurred'}</div>\n ),\n }: {\n components: HydrogenComponent[]\n errorComponent?: React.FC<{ error }>\n }) => {\n let loaderData = useLoaderData()\n // @ts-ignore\n let data = loaderData?.weaverseData as\n | WeaverseLoaderData\n | Promise<WeaverseLoaderData>\n\n if (data) {\n if (data instanceof Promise) {\n return (\n <ErrorBoundary fallbackRender={ErrorComponent as any}>\n <Suspense>\n <Await resolve={data}>\n {(resolvedData) => (\n <RenderRoot data={resolvedData} components={components} />\n )}\n </Await>\n </Suspense>\n </ErrorBoundary>\n )\n }\n return <RenderRoot data={data} components={components} />\n }\n return (\n <ErrorComponent\n error={{ message: 'No Weaverse data return from route loader!' }}\n />\n )\n },\n)\n\nlet ThemeSettingsProvider = createContext<HydrogenThemeSettings | null>(null)\nThemeSettingsProvider.displayName = 'WeaverseThemeSettingsProvider'\n\nexport function withWeaverse(Component: ComponentType<any>) {\n return (props: JSX.IntrinsicAttributes) => {\n let { settings } = useThemeSettingsStore()\n return (\n <ThemeSettingsProvider.Provider value={settings}>\n <Component {...props} />\n </ThemeSettingsProvider.Provider>\n )\n }\n}\n\nexport function useThemeSettings<T = HydrogenThemeSettings>() {\n let themeSettingsStore = useThemeSettingsStore()\n let settings = useSafeExternalStore(\n themeSettingsStore.subscribe,\n themeSettingsStore.getSnapshot,\n themeSettingsStore.getServerSnapshot,\n )\n return settings as T\n}\n","import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from '@shopify/hydrogen'\nimport type { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types'\nimport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n} from '@weaverse/react'\n\nexport function getSelectedProductOptions(\n request: Request,\n): SelectedOptionInput[] {\n let options = hydrogen_getSelectedProductOptions(request)\n return options.filter(\n ({ name }) => name !== 'isDesignMode' && !name.startsWith('weaverse'),\n )\n}\n\nexport const IMAGES_PLACEHOLDERS = {\n logo_white:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-w-600x200.svg',\n logo_black:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-k-600x200.svg',\n image:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-image-1024x1024.svg',\n banner_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-1-1800x900.svg',\n banner_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-lifestyle-2-1800x900.svg',\n collection_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-hats-1024x1024.svg',\n collection_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-shoes-1024x1024.svg',\n collection_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-glasses-1024x1024.svg',\n collection_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-lamps-1024x1024.svg',\n collection_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-bags-1024x1024.svg',\n collection_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-collection-watches-1024x1024.svg',\n product_1:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-3-1024x1024.svg',\n product_2:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-2-1024x1024.svg',\n product_3:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-1-1024x1024.svg',\n product_4:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-2-1024x1024.svg',\n product_5:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-1-1024x1024.svg',\n product_6:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-1-1024x1024.svg',\n product_7:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-2-1024x1024.svg',\n product_8:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-3-1024x1024.svg',\n product_9:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-1-1024x1024.svg',\n product_10:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-2-1024x1024.svg',\n product_11:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-2-1024x1024.svg',\n product_12:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-glasses-3-1024x1024.svg',\n product_13:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-shoe-3-1024x1024.svg',\n product_14:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-bag-3-1024x1024.svg',\n product_15:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-hat-1-1024x1024.svg',\n product_16:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-lamp-3-1024x1024.svg',\n product_17:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-1-1024x1024.svg',\n product_18:\n 'https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-2-1024x1024.svg',\n}\n\nexport {\n isBrowser,\n isIframe,\n useChildInstances,\n useItemInstance,\n useParentInstance,\n useWeaverse,\n}\nexport * from './types'\nexport * from './weaverse-client'\nexport * from './WeaverseHydrogenRoot'\n"]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@weaverse/hydrogen",
|
|
3
3
|
"author": "Weaverse Team",
|
|
4
4
|
"description": "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
5
|
-
"version": "5.0.0
|
|
5
|
+
"version": "5.0.0",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"typings": "dist/index.d.ts",
|
|
@@ -37,13 +37,12 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@shopify/hydrogen": ">=2025.5",
|
|
40
|
-
"@shopify/oxygen
|
|
41
|
-
"@
|
|
42
|
-
"@weaverse/react": "5.0.0-next.0",
|
|
40
|
+
"@shopify/remix-oxygen": "3",
|
|
41
|
+
"@weaverse/react": "5.0.0",
|
|
43
42
|
"react": ">=18",
|
|
44
43
|
"react-dom": ">=18",
|
|
45
|
-
"react-error-boundary": "^
|
|
46
|
-
"react-router": "^7
|
|
44
|
+
"react-error-boundary": "^6",
|
|
45
|
+
"react-router": "^7"
|
|
47
46
|
},
|
|
48
47
|
"scripts": {
|
|
49
48
|
"dev": "tsup --watch",
|