@kotao/storefront 0.2.4 → 0.2.6
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/README.md +50 -2
- package/dist/bridge-ZKbKqgFd.d.ts +239 -0
- package/dist/cart-documents-BLavRDiu.d.ts +89 -0
- package/dist/cart-documents.d.ts +1 -2
- package/dist/cart-documents.js +1 -1
- package/dist/{chunk-M7BPQ54D.js → chunk-2MRB6SMP.js} +4 -3
- package/dist/chunk-2MRB6SMP.js.map +1 -0
- package/dist/chunk-CKGI3Y7L.js +19 -0
- package/dist/chunk-CKGI3Y7L.js.map +1 -0
- package/dist/{chunk-4TEFGD42.js → chunk-EG34HLSX.js} +209 -162
- package/dist/chunk-EG34HLSX.js.map +1 -0
- package/dist/chunk-O6YZEY7X.js +1382 -0
- package/dist/chunk-O6YZEY7X.js.map +1 -0
- package/dist/{chunk-7MTCGXIG.js → chunk-R4N565GX.js} +8 -4
- package/dist/chunk-R4N565GX.js.map +1 -0
- package/dist/{chunk-XMTWFJCZ.js → chunk-RFM27BKZ.js} +31 -7
- package/dist/chunk-RFM27BKZ.js.map +1 -0
- package/dist/{chunk-MYDKIJRH.js → chunk-SVMYFYIA.js} +2 -2
- package/dist/{chunk-MYDKIJRH.js.map → chunk-SVMYFYIA.js.map} +1 -1
- package/dist/{chunk-H3D7BAOL.js → chunk-VOTBNOWH.js} +21 -3
- package/dist/chunk-VOTBNOWH.js.map +1 -0
- package/dist/{chunk-PXVDVUFX.js → chunk-W74FGUZH.js} +10 -3
- package/dist/chunk-W74FGUZH.js.map +1 -0
- package/dist/{chunk-2IWNUDSZ.js → chunk-WNXI3MPM.js} +2 -2
- package/dist/chunk-WNXI3MPM.js.map +1 -0
- package/dist/chunk-XXNCFWXT.js +2118 -0
- package/dist/chunk-XXNCFWXT.js.map +1 -0
- package/dist/{client-bsiNPHBi.d.ts → client-CwOPPpFF.d.ts} +11 -1
- package/dist/{createCartHandler-C4RrPwSG.d.ts → createCartHandler-7DdKB-GF.d.ts} +1 -1
- package/dist/custom-css-Bl7Ur3-H.d.ts +6 -0
- package/dist/editor.d.ts +57 -104
- package/dist/editor.js +270 -1
- package/dist/editor.js.map +1 -1
- package/dist/events-react.d.ts +1 -1
- package/dist/events-react.js +1 -1
- package/dist/events.d.ts +3 -3
- package/dist/events.js +1 -1
- package/dist/{fetch-M3Y-fQrW.d.ts → fetch-Bq_cc8_G.d.ts} +5 -0
- package/dist/hydrogen-Bu7k0kE4.d.ts +259 -0
- package/dist/index.d.ts +74 -51
- package/dist/index.js +19 -15
- package/dist/index.js.map +1 -1
- package/dist/react-router.d.ts +30 -9
- package/dist/react-router.js +16 -7
- package/dist/react-router.js.map +1 -1
- package/dist/react.d.ts +79 -11
- package/dist/react.js +279 -10
- package/dist/react.js.map +1 -1
- package/dist/{routing-sEonP93J.d.ts → routing-Bz3Cg0BW.d.ts} +36 -6
- package/dist/seo.d.ts +7 -4
- package/dist/seo.js +2 -2
- package/dist/settings.d.ts +14 -4
- package/dist/settings.js +2 -2
- package/dist/{shop-BJSvtmnV.d.ts → shop-CnrnSAJw.d.ts} +33 -6
- package/dist/{store-CtCWHI8H.d.ts → store-DO08fzJi.d.ts} +1 -1
- package/dist/storefront-api-types.d.ts +12 -0
- package/dist/{types-BDhHWZsP.d.ts → types-BkY0yET-.d.ts} +3 -3
- package/dist/{types-bcbQzx87.d.ts → types-DZX8ScsJ.d.ts} +2 -0
- package/package.json +4 -4
- package/dist/cart-documents-CwwRTvm8.d.ts +0 -21
- package/dist/chunk-2IWNUDSZ.js.map +0 -1
- package/dist/chunk-4TEFGD42.js.map +0 -1
- package/dist/chunk-7MTCGXIG.js.map +0 -1
- package/dist/chunk-H3D7BAOL.js.map +0 -1
- package/dist/chunk-M7BPQ54D.js.map +0 -1
- package/dist/chunk-PXVDVUFX.js.map +0 -1
- package/dist/chunk-PXZ737N3.js +0 -439
- package/dist/chunk-PXZ737N3.js.map +0 -1
- package/dist/chunk-XMTWFJCZ.js.map +0 -1
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { HydrogenEditorManifest, HydrogenDocument, HydrogenBreakpoint, HydrogenComponentDefinition, HydrogenInstance, HydrogenEditCapability, HydrogenSourceLocation, HydrogenUnsupportedFinding, HydrogenContentBinding, HydrogenInstanceStyles } from '@kotao/storefront-contracts';
|
|
2
|
+
import { S as StorefrontEditorMessageSource, a as StorefrontEditorMessageTarget } from './bridge-ZKbKqgFd.js';
|
|
3
|
+
|
|
4
|
+
declare const HYDROGEN_EDITOR_PROTOCOL_VERSION: 1;
|
|
5
|
+
declare const HYDROGEN_EDITOR_BRIDGE_LIMITS: {
|
|
6
|
+
readonly maxMessageBytes: 131072;
|
|
7
|
+
readonly maxMessageDepth: 32;
|
|
8
|
+
readonly maxBufferedMessages: 100;
|
|
9
|
+
readonly maxDraftOperations: 1000;
|
|
10
|
+
readonly maxProcessedMessages: 2048;
|
|
11
|
+
};
|
|
12
|
+
type HydrogenEditorReconciliationReason = 'route' | 'loader' | 'suspense' | 'hmr';
|
|
13
|
+
type HydrogenEditorOperationFailureCode = 'CAPABILITY_DENIED' | 'COMPONENT_NOT_FOUND' | 'DOCUMENT_MISMATCH' | 'DUPLICATE_OPERATION_CONFLICT' | 'INSTANCE_NOT_FOUND' | 'INVALID_OPERATION' | 'OPERATION_LIMIT_EXCEEDED' | 'REVISION_MISMATCH' | 'SLOT_CONSTRAINT' | 'UNSUPPORTED_BOUNDARY';
|
|
14
|
+
type HydrogenEditorProtocolFailureCode = 'AUTH_CONTEXT_MISMATCH' | 'BUFFER_LIMIT_EXCEEDED' | 'DUPLICATE_MESSAGE_CONFLICT' | 'MESSAGE_EXPIRED' | 'MESSAGE_TOO_DEEP' | 'MESSAGE_TOO_LARGE' | 'SEQUENCE_STALE' | 'UNKNOWN_MESSAGE' | 'UNSUPPORTED_PROTOCOL';
|
|
15
|
+
interface HydrogenEditorSecurityContext {
|
|
16
|
+
readonly sessionId: string;
|
|
17
|
+
readonly baseSha: string;
|
|
18
|
+
readonly manifestHash: string;
|
|
19
|
+
readonly channelNonce: string;
|
|
20
|
+
/**
|
|
21
|
+
* A short-lived, audience-bound token minted by the trusted Web module. The bridge compares the
|
|
22
|
+
* exact opaque token and expiry; it never parses claims or accepts a token from a message as
|
|
23
|
+
* authority.
|
|
24
|
+
*/
|
|
25
|
+
readonly previewToken: string;
|
|
26
|
+
readonly expiresAt: number;
|
|
27
|
+
}
|
|
28
|
+
interface HydrogenEditorOperationBase {
|
|
29
|
+
readonly operationId: string;
|
|
30
|
+
readonly revision: number;
|
|
31
|
+
}
|
|
32
|
+
type HydrogenEditorPreviewOperation = (HydrogenEditorOperationBase & {
|
|
33
|
+
readonly type: 'prop.patch';
|
|
34
|
+
readonly instanceId: string;
|
|
35
|
+
readonly propName: string;
|
|
36
|
+
readonly binding: HydrogenContentBinding;
|
|
37
|
+
}) | (HydrogenEditorOperationBase & {
|
|
38
|
+
readonly type: 'styles.patch';
|
|
39
|
+
readonly instanceId: string;
|
|
40
|
+
readonly styles: HydrogenInstanceStyles;
|
|
41
|
+
}) | (HydrogenEditorOperationBase & {
|
|
42
|
+
readonly type: 'variant.set';
|
|
43
|
+
readonly instanceId: string;
|
|
44
|
+
readonly variantId: string | null;
|
|
45
|
+
}) | (HydrogenEditorOperationBase & {
|
|
46
|
+
readonly type: 'slot.insert';
|
|
47
|
+
readonly parentInstanceId: string;
|
|
48
|
+
readonly slotId: string;
|
|
49
|
+
readonly index: number;
|
|
50
|
+
readonly instance: Omit<HydrogenInstance, 'parent'>;
|
|
51
|
+
}) | (HydrogenEditorOperationBase & {
|
|
52
|
+
readonly type: 'instance.move';
|
|
53
|
+
readonly instanceId: string;
|
|
54
|
+
readonly parentInstanceId: string;
|
|
55
|
+
readonly slotId: string;
|
|
56
|
+
readonly index: number;
|
|
57
|
+
}) | (HydrogenEditorOperationBase & {
|
|
58
|
+
readonly type: 'instance.remove';
|
|
59
|
+
readonly instanceId: string;
|
|
60
|
+
});
|
|
61
|
+
type HydrogenEditorCanvasIntent = {
|
|
62
|
+
readonly type: 'instance.move';
|
|
63
|
+
readonly instanceId: string;
|
|
64
|
+
readonly parentInstanceId: string;
|
|
65
|
+
readonly slotId: string;
|
|
66
|
+
readonly index: number;
|
|
67
|
+
} | {
|
|
68
|
+
readonly type: 'prop.inline';
|
|
69
|
+
readonly instanceId: string;
|
|
70
|
+
readonly propName: string;
|
|
71
|
+
readonly value: string;
|
|
72
|
+
} | {
|
|
73
|
+
readonly type: 'styles.adjust';
|
|
74
|
+
readonly instanceId: string;
|
|
75
|
+
readonly controlId: string;
|
|
76
|
+
readonly value: number;
|
|
77
|
+
readonly breakpointId?: string;
|
|
78
|
+
} | {
|
|
79
|
+
readonly type: 'slot.insert.request';
|
|
80
|
+
readonly parentInstanceId: string;
|
|
81
|
+
readonly slotId: string;
|
|
82
|
+
readonly index: number;
|
|
83
|
+
};
|
|
84
|
+
interface HydrogenEditorOperationFailure {
|
|
85
|
+
readonly code: HydrogenEditorOperationFailureCode;
|
|
86
|
+
readonly message: string;
|
|
87
|
+
readonly instanceId?: string;
|
|
88
|
+
readonly capability?: HydrogenEditCapability;
|
|
89
|
+
readonly source?: HydrogenSourceLocation;
|
|
90
|
+
}
|
|
91
|
+
type HydrogenEditorApplyResult = {
|
|
92
|
+
readonly status: 'applied' | 'duplicate';
|
|
93
|
+
readonly revision: number;
|
|
94
|
+
readonly operationId: string;
|
|
95
|
+
} | {
|
|
96
|
+
readonly status: 'rejected';
|
|
97
|
+
readonly revision: number;
|
|
98
|
+
readonly operationId: string;
|
|
99
|
+
readonly failure: HydrogenEditorOperationFailure;
|
|
100
|
+
};
|
|
101
|
+
type HydrogenEditorCanvasDispatchResult = {
|
|
102
|
+
readonly status: 'operation';
|
|
103
|
+
readonly intent: Exclude<HydrogenEditorCanvasIntent, {
|
|
104
|
+
readonly type: 'slot.insert.request';
|
|
105
|
+
}>;
|
|
106
|
+
readonly operation: HydrogenEditorPreviewOperation;
|
|
107
|
+
readonly result: HydrogenEditorApplyResult;
|
|
108
|
+
} | {
|
|
109
|
+
readonly status: 'insert-requested';
|
|
110
|
+
readonly intent: Extract<HydrogenEditorCanvasIntent, {
|
|
111
|
+
readonly type: 'slot.insert.request';
|
|
112
|
+
}>;
|
|
113
|
+
readonly revision: number;
|
|
114
|
+
} | {
|
|
115
|
+
readonly status: 'rejected';
|
|
116
|
+
readonly failure: HydrogenEditorOperationFailure;
|
|
117
|
+
readonly revision: number;
|
|
118
|
+
};
|
|
119
|
+
interface HydrogenEditorCapabilityReason {
|
|
120
|
+
readonly code: string;
|
|
121
|
+
readonly severity: 'warning' | 'blocking';
|
|
122
|
+
readonly message: string;
|
|
123
|
+
readonly capability?: HydrogenEditCapability;
|
|
124
|
+
readonly source?: HydrogenSourceLocation;
|
|
125
|
+
}
|
|
126
|
+
interface HydrogenEditorInstanceSnapshot {
|
|
127
|
+
readonly instance: HydrogenInstance;
|
|
128
|
+
readonly component: HydrogenComponentDefinition;
|
|
129
|
+
readonly childInstanceIds: Readonly<Record<string, readonly string[]>>;
|
|
130
|
+
readonly resolvedProps: Readonly<Record<string, unknown>>;
|
|
131
|
+
readonly mounted: boolean;
|
|
132
|
+
readonly editable: boolean;
|
|
133
|
+
readonly capabilityReasons: readonly HydrogenEditorCapabilityReason[];
|
|
134
|
+
}
|
|
135
|
+
interface HydrogenEditorPreviewSnapshot {
|
|
136
|
+
readonly document: HydrogenDocument;
|
|
137
|
+
readonly route?: string;
|
|
138
|
+
readonly revision: number;
|
|
139
|
+
readonly selectedInstanceId: string | null;
|
|
140
|
+
readonly hoveredInstanceId: string | null;
|
|
141
|
+
readonly selectionStatus: 'active' | 'out-of-route' | 'none';
|
|
142
|
+
readonly instanceIds: readonly string[];
|
|
143
|
+
readonly mountedInstanceIds: readonly string[];
|
|
144
|
+
}
|
|
145
|
+
interface HydrogenEditorReadyInstance {
|
|
146
|
+
readonly instance: HydrogenInstance;
|
|
147
|
+
readonly mounted: boolean;
|
|
148
|
+
readonly editable: boolean;
|
|
149
|
+
readonly capabilityReasons: readonly HydrogenEditorCapabilityReason[];
|
|
150
|
+
}
|
|
151
|
+
interface HydrogenEditorReadyDocument {
|
|
152
|
+
readonly protocolVersion: typeof HYDROGEN_EDITOR_PROTOCOL_VERSION;
|
|
153
|
+
readonly document: HydrogenDocument;
|
|
154
|
+
readonly breakpoints: readonly HydrogenBreakpoint[];
|
|
155
|
+
readonly route?: string;
|
|
156
|
+
readonly revision: number;
|
|
157
|
+
readonly selectedInstanceId: string | null;
|
|
158
|
+
readonly hoveredInstanceId: string | null;
|
|
159
|
+
readonly selectionStatus: HydrogenEditorPreviewSnapshot['selectionStatus'];
|
|
160
|
+
readonly components: readonly HydrogenComponentDefinition[];
|
|
161
|
+
readonly instances: readonly HydrogenEditorReadyInstance[];
|
|
162
|
+
readonly unsupportedFindings: readonly HydrogenUnsupportedFinding[];
|
|
163
|
+
}
|
|
164
|
+
interface HydrogenEditorReconciliation {
|
|
165
|
+
readonly reason: HydrogenEditorReconciliationReason;
|
|
166
|
+
readonly documentId: string;
|
|
167
|
+
readonly route?: string;
|
|
168
|
+
readonly revision: number;
|
|
169
|
+
readonly selectedInstanceId: string | null;
|
|
170
|
+
readonly selectionStatus: HydrogenEditorPreviewSnapshot['selectionStatus'];
|
|
171
|
+
readonly mountedInstanceIds: readonly string[];
|
|
172
|
+
}
|
|
173
|
+
interface HydrogenEditorProtocolFailure {
|
|
174
|
+
readonly code: HydrogenEditorProtocolFailureCode;
|
|
175
|
+
readonly message: string;
|
|
176
|
+
}
|
|
177
|
+
interface HydrogenEditorPreviewStore {
|
|
178
|
+
getSnapshot(): HydrogenEditorPreviewSnapshot;
|
|
179
|
+
getInstanceSnapshot(instanceId: string): HydrogenEditorInstanceSnapshot | null;
|
|
180
|
+
subscribe(listener: () => void): () => void;
|
|
181
|
+
subscribeInstance(instanceId: string, listener: () => void): () => void;
|
|
182
|
+
}
|
|
183
|
+
interface HydrogenEditorPreviewRuntime {
|
|
184
|
+
readonly manifest: HydrogenEditorManifest;
|
|
185
|
+
readonly store: HydrogenEditorPreviewStore;
|
|
186
|
+
ready(): void;
|
|
187
|
+
reconcile(documentId: string, reason: HydrogenEditorReconciliationReason, route?: string): void;
|
|
188
|
+
registerInstance(instanceId: string): () => void;
|
|
189
|
+
hoverInstance(instanceId: string | null): void;
|
|
190
|
+
selectInstance(instanceId: string | null): void;
|
|
191
|
+
dispatchCanvasIntent(intent: unknown): HydrogenEditorCanvasDispatchResult;
|
|
192
|
+
dispose(): void;
|
|
193
|
+
}
|
|
194
|
+
interface CreateHydrogenEditorPreviewRuntimeArgs {
|
|
195
|
+
readonly adminOrigin: string;
|
|
196
|
+
readonly security: HydrogenEditorSecurityContext;
|
|
197
|
+
readonly manifest: HydrogenEditorManifest;
|
|
198
|
+
readonly documentId: string;
|
|
199
|
+
readonly route?: string;
|
|
200
|
+
readonly transport: StorefrontEditorMessageSource;
|
|
201
|
+
readonly target: StorefrontEditorMessageTarget;
|
|
202
|
+
readonly now?: () => number;
|
|
203
|
+
readonly onProtocolFailure?: (failure: HydrogenEditorProtocolFailure) => void;
|
|
204
|
+
}
|
|
205
|
+
interface CreateHydrogenEditorSourceProjectionArgs {
|
|
206
|
+
readonly manifest: HydrogenEditorManifest;
|
|
207
|
+
readonly documentId: string;
|
|
208
|
+
readonly route?: string;
|
|
209
|
+
readonly revision?: number;
|
|
210
|
+
readonly selectedInstanceId?: string | null;
|
|
211
|
+
}
|
|
212
|
+
interface HydrogenEditorHostBridge {
|
|
213
|
+
requestReady(): void;
|
|
214
|
+
hoverInstance(instanceId: string | null): void;
|
|
215
|
+
selectInstance(instanceId: string | null): void;
|
|
216
|
+
applyOperation(operation: HydrogenEditorPreviewOperation): void;
|
|
217
|
+
dispose(): void;
|
|
218
|
+
}
|
|
219
|
+
interface CreateHydrogenEditorHostBridgeArgs {
|
|
220
|
+
readonly previewOrigin: string;
|
|
221
|
+
readonly security: HydrogenEditorSecurityContext;
|
|
222
|
+
readonly manifest: HydrogenEditorManifest;
|
|
223
|
+
readonly transport: StorefrontEditorMessageSource;
|
|
224
|
+
readonly target: StorefrontEditorMessageTarget;
|
|
225
|
+
readonly resolveTarget?: () => StorefrontEditorMessageTarget | null;
|
|
226
|
+
readonly now?: () => number;
|
|
227
|
+
readonly onReady?: (ready: HydrogenEditorReadyDocument) => void;
|
|
228
|
+
readonly onSelectInstance?: (instanceId: string | null) => void;
|
|
229
|
+
readonly onHoverInstance?: (instanceId: string | null) => void;
|
|
230
|
+
readonly onOperationResult?: (result: HydrogenEditorApplyResult) => void;
|
|
231
|
+
readonly onCanvasOperation?: (intent: Exclude<HydrogenEditorCanvasIntent, {
|
|
232
|
+
readonly type: 'slot.insert.request';
|
|
233
|
+
}>, operation: HydrogenEditorPreviewOperation, result: HydrogenEditorApplyResult) => void;
|
|
234
|
+
readonly onCanvasInsertRequest?: (request: Extract<HydrogenEditorCanvasIntent, {
|
|
235
|
+
readonly type: 'slot.insert.request';
|
|
236
|
+
}>) => void;
|
|
237
|
+
readonly onReconcile?: (reconciliation: HydrogenEditorReconciliation) => void;
|
|
238
|
+
readonly onProtocolFailure?: (failure: HydrogenEditorProtocolFailure) => void;
|
|
239
|
+
}
|
|
240
|
+
declare class HydrogenEditorConfigurationError extends Error {
|
|
241
|
+
constructor(message: string);
|
|
242
|
+
}
|
|
243
|
+
declare function parseHydrogenEditorCanvasIntent(value: unknown): HydrogenEditorCanvasIntent | null;
|
|
244
|
+
/**
|
|
245
|
+
* Produces the bounded editor document that can be shown before a secured preview runtime
|
|
246
|
+
* connects. Source extraction establishes editability, but every instance remains unmounted until
|
|
247
|
+
* the authenticated ADR-0047 bridge reports the live DOM boundary.
|
|
248
|
+
*/
|
|
249
|
+
declare function createHydrogenEditorSourceProjection({ manifest, documentId, route, revision, selectedInstanceId, }: CreateHydrogenEditorSourceProjectionArgs): HydrogenEditorReadyDocument;
|
|
250
|
+
declare function createHydrogenEditorPreviewRuntime({ adminOrigin, documentId, manifest, now, onProtocolFailure, route, security, target, transport, }: CreateHydrogenEditorPreviewRuntimeArgs): HydrogenEditorPreviewRuntime;
|
|
251
|
+
declare function createHydrogenEditorHostBridge({ manifest, now, onCanvasInsertRequest, onCanvasOperation, onHoverInstance, onOperationResult, onProtocolFailure, onReady, onReconcile, onSelectInstance, previewOrigin, resolveTarget, security, target, transport, }: CreateHydrogenEditorHostBridgeArgs): HydrogenEditorHostBridge;
|
|
252
|
+
/**
|
|
253
|
+
* Resolves manifest-authorized style controls to CSS properties. The largest matching breakpoint
|
|
254
|
+
* wins. Values that cannot be represented as a CSS string/number remain visible in editor state
|
|
255
|
+
* but are not applied to the rendered element.
|
|
256
|
+
*/
|
|
257
|
+
declare function resolveHydrogenEditorStyles(manifest: HydrogenEditorManifest, instance: HydrogenInstance, viewportWidth?: number): Readonly<Record<string, string | number>>;
|
|
258
|
+
|
|
259
|
+
export { createHydrogenEditorSourceProjection as A, parseHydrogenEditorCanvasIntent as B, type CreateHydrogenEditorPreviewRuntimeArgs as C, resolveHydrogenEditorStyles as D, type HydrogenEditorSecurityContext as H, type HydrogenEditorPreviewRuntime as a, type CreateHydrogenEditorHostBridgeArgs as b, type CreateHydrogenEditorSourceProjectionArgs as c, HYDROGEN_EDITOR_BRIDGE_LIMITS as d, HYDROGEN_EDITOR_PROTOCOL_VERSION as e, type HydrogenEditorApplyResult as f, type HydrogenEditorCanvasDispatchResult as g, type HydrogenEditorCanvasIntent as h, type HydrogenEditorCapabilityReason as i, HydrogenEditorConfigurationError as j, type HydrogenEditorHostBridge as k, type HydrogenEditorInstanceSnapshot as l, type HydrogenEditorOperationBase as m, type HydrogenEditorOperationFailure as n, type HydrogenEditorOperationFailureCode as o, type HydrogenEditorPreviewOperation as p, type HydrogenEditorPreviewSnapshot as q, type HydrogenEditorPreviewStore as r, type HydrogenEditorProtocolFailure as s, type HydrogenEditorProtocolFailureCode as t, type HydrogenEditorReadyDocument as u, type HydrogenEditorReadyInstance as v, type HydrogenEditorReconciliation as w, type HydrogenEditorReconciliationReason as x, createHydrogenEditorHostBridge as y, createHydrogenEditorPreviewRuntime as z };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
export { c as CacheCustom, d as CacheLong, e as CacheNone, f as CacheShort, C as CacheStrategy, H as HydrogenStorefrontClientOptions, K as KotaoCache, g as StaleIfErrorFallback, h as Storefront, a as StorefrontAuthHeader, i as StorefrontCache, b as StorefrontCacheInput, j as StorefrontCacheQueryOptions, k as StorefrontCacheRequest, S as StorefrontClient, l as StorefrontClientOptions, m as StorefrontClientResult, n as StorefrontDefaultCache, o as StorefrontQueryOptions, p as StorefrontQueryTimeoutError, q as StorefrontUpstreamError, r as createCache, s as createStorefrontClient, t as generateCacheControlHeader } from './client-D51WdvYR.js';
|
|
2
|
-
import { C as Cart } from './types-
|
|
3
|
-
export { k as CART_FORM_ACTIONS, b as CartAttribute, l as CartBuyerIdentity, c as CartBuyerIdentityInput, h as CartDeliveryAddress, j as CartFormAction, m as CartLine, a as CartLineInput, e as CartLineUpdateInput, f as CartMetafield, g as CartMetafieldIdentifier, d as CartMutationResult, i as CartSelectedDeliveryOption, n as CartUserError, o as HydrogenCart, p as HydrogenCartCreateInput, q as HydrogenCartMutationResult, H as HydrogenSession, r as HydrogenSessionData } from './types-
|
|
4
|
-
import { c as ConsentBucket, C as ConsentState, B as BoundNonceProvider } from './shop-
|
|
5
|
-
export { d as ANALYTICS_EVENTS, b as AnalyticsBus, e as AnalyticsBusOptions,
|
|
6
|
-
import { a as CartDispatchAction } from './createCartHandler-
|
|
7
|
-
export { b as CartGetId, C as CartHandler, c as CartSetId, d as CreateCartHandlerOptions, H as HydrogenCartHandlerOptions, R as RequestCartHandlerOptions, e as cartGetIdDefault, f as cartSetIdDefault, g as createCartHandler } from './createCartHandler-
|
|
8
|
-
import {
|
|
9
|
-
export { b as ResolvedBlock,
|
|
10
|
-
import { C as CustomerAccountClient } from './routing-
|
|
11
|
-
export { A as Address, c as AddressConnection, d as CustomerAccount, e as CustomerAccountError, f as CustomerAccountErrorCode, G as GEO_HEADER, g as GEO_SIGNATURE_HEADER, h as Geo,
|
|
2
|
+
import { C as Cart } from './types-DZX8ScsJ.js';
|
|
3
|
+
export { k as CART_FORM_ACTIONS, b as CartAttribute, l as CartBuyerIdentity, c as CartBuyerIdentityInput, h as CartDeliveryAddress, j as CartFormAction, m as CartLine, a as CartLineInput, e as CartLineUpdateInput, f as CartMetafield, g as CartMetafieldIdentifier, d as CartMutationResult, i as CartSelectedDeliveryOption, n as CartUserError, o as HydrogenCart, p as HydrogenCartCreateInput, q as HydrogenCartMutationResult, H as HydrogenSession, r as HydrogenSessionData } from './types-DZX8ScsJ.js';
|
|
4
|
+
import { c as ConsentBucket, C as ConsentState, B as BoundNonceProvider, A as AnalyticsContext } from './shop-CnrnSAJw.js';
|
|
5
|
+
export { d as ANALYTICS_EVENTS, b as AnalyticsBus, e as AnalyticsBusOptions, f as AnalyticsDeviceClass, a as AnalyticsEmitter, h as AnalyticsEventMap, i as AnalyticsEventName, j as AnalyticsGeo, k as CONSENT_BUCKETS, l as CONSENT_COOKIE, m as CartForm, n as CartFormProps, o as CartViewedPayload, p as CollectionViewedPayload, D as DENIED_CONSENT, E as EventHandler, G as GRANTED_CONSENT, q as GetShopAnalyticsOptions, P as PageViewedPayload, r as PixelEvent, s as PixelSend, t as PixelTransport, v as PixelTransportOptions, w as ProductAddedToCartPayload, x as ProductViewedPayload, y as SearchViewedPayload, S as ShopAnalytics, z as buildConsentCookie, F as createAnalyticsBus, H as createAnalyticsEmitter, I as createPixelTransport, J as getShopAnalytics, K as isGranted, L as mergeConsent, M as parseConsent, N as readConsentCookie, O as serializeConsent } from './shop-CnrnSAJw.js';
|
|
6
|
+
import { a as CartDispatchAction } from './createCartHandler-7DdKB-GF.js';
|
|
7
|
+
export { b as CartGetId, C as CartHandler, c as CartSetId, d as CreateCartHandlerOptions, H as HydrogenCartHandlerOptions, R as RequestCartHandlerOptions, e as cartGetIdDefault, f as cartSetIdDefault, g as createCartHandler } from './createCartHandler-7DdKB-GF.js';
|
|
8
|
+
import { c as ThemeSettingsSnapshot, R as ResolvedSettings } from './store-DO08fzJi.js';
|
|
9
|
+
export { b as ResolvedBlock, a as ResolvedSection, T as ThemeSettingsStore, d as createThemeSettingsStore } from './store-DO08fzJi.js';
|
|
10
|
+
import { C as CustomerAccountClient } from './routing-Bz3Cg0BW.js';
|
|
11
|
+
export { A as Address, c as AddressConnection, d as CustomerAccount, e as CustomerAccountError, f as CustomerAccountErrorCode, G as GEO_HEADER, g as GEO_SIGNATURE_HEADER, h as Geo, K as KotaoContext, a as KotaoEnv, b as KotaoSession, L as LocalizePathOptions, M as Money, O as Order, i as OrderConnection, j as OrderPageInfo, k as OrdersOptions, R as ROUTING_LOCALE_HEADER, l as ROUTING_ORIGINAL_PATHNAME_HEADER, m as RequestLoginCodeInput, n as RequestLoginCodeResult, S as StorefrontExecutionContext, o as StorefrontMarketContext, p as StrippedLocalePath, V as VerifyLoginCodeInput, W as WithCache, q as createKotaoContext, r as createWithCache, t as isLocalePathSegment, u as localeFromAcceptLanguage, v as localeFromPathname, w as localeFromRequest, x as localizePath, y as marketContextFromHeaders, z as originalPathnameFromRequest, B as signGeo, D as stripLocalePrefixFromPathname, s as stripLocalePrefixFromRequest, E as trustedShopOriginFromHeaders, F as verifyGeo } from './routing-Bz3Cg0BW.js';
|
|
12
|
+
export { AUTO_REDIRECT_LANGUAGE_HEADER, MARKET_ALTERNATE_LOCALES_HEADER, MARKET_CANONICAL_URL_HEADER, MARKET_DEFAULT_LOCALE_HEADER, MARKET_ID_HEADER, MARKET_PATH_PREFIX_HEADER, MARKET_ROOT_URLS_HEADER, MARKET_SETTINGS_ENVIRONMENT_HEADER, MARKET_THEME_ID_HEADER, autoRedirectEnabled } from '@kotao/storefront-contracts';
|
|
12
13
|
export { ImageAttrs, ImageAttrsOptions, ImageCrop, ImageData, ImageFit, ImageFormat, ImageSrcSetOptions, ImageUrlOptions, buildImageAttrs, imageSrcSet, imageUrl } from './image.js';
|
|
13
14
|
export { C as Connection, a as ConnectionEdge, F as FlattenableConnection, b as PageInfo, P as PaginationInfo, c as PaginationOptions, d as PaginationVariables, f as flattenConnection, g as getPaginationInfo, e as getPaginationVariables } from './pagination-DCrQk02Q.js';
|
|
14
15
|
export { MappedProductOptions, ProductLike, ProductOptionDef, ProductOptionState, ProductOptionValueState, SelectedOption, SelectedOptionsMap, VariantLike, VariantSelectionLike, getAdjacentAndFirstAvailableVariants, getProductOptions, getSelectedProductOptions, getSelectedVariant, mapSelectedProductOptionToObject, useOptimisticVariant, useSelectedOptionInUrlParam } from './product.js';
|
|
15
|
-
export { ResolveThemeSettingsArgs, mergeSection, mergeSettings, resolveThemeSettings } from './settings.js';
|
|
16
|
-
export { F as FetchThemeSettingsOptions, S as StoredThemeSettings, f as fetchThemeSettings } from './fetch-
|
|
16
|
+
export { ResolveThemeSettingsArgs, mergeSection, mergeSettings, reconcileSyntheticSectionGroup, resolveThemeSettings } from './settings.js';
|
|
17
|
+
export { F as FetchThemeSettingsOptions, S as StoredThemeSettings, f as fetchThemeSettings } from './fetch-Bq_cc8_G.js';
|
|
17
18
|
export { AddressInput, BreadcrumbItem, ChangeFreq, GeoInput, LocalBusinessInput, OfferInput, OrganizationInput, ProductJsonLdInput, RedirectLookup, RedirectOptions, RobotsOptions, SitemapEntry, SitemapIndexEntry, StorefrontRedirectOptions, URL_REDIRECT_QUERY, WebSiteInput, breadcrumbListJsonLd, buildRobotsTxt, buildSitemapIndexXml, buildSitemapXml, getSeoMeta, localBusinessJsonLd, organizationJsonLd, productJsonLd, resolveRedirect, resolveStorefrontRedirect, restaurantJsonLd, robotsResponse, serializeJsonLd, sitemapIndexResponse, sitemapResponse, storefrontRedirect, websiteJsonLd } from './seo.js';
|
|
18
|
-
export { A as Alternate, J as JsonLd, O as OpenGraph, a as OpenGraphImage, S as SeoConfig, b as SeoDescriptor, T as TwitterCard } from './types-
|
|
19
|
+
export { A as Alternate, J as JsonLd, O as OpenGraph, a as OpenGraphImage, S as SeoConfig, b as SeoDescriptor, T as TwitterCard } from './types-BkY0yET-.js';
|
|
19
20
|
export { c as FormAnswer, a as FormAnswers, d as FormBlock, e as FormField, b as FormFieldErrors, f as FormLocalizedText, g as FormRenderState, h as FormSubmission, F as FormVersionSchema, i as FormVisibilityRule, P as PublicForm, j as PublicFormDefinition, k as PublicFormVersion } from './types-CSNXbGFW.js';
|
|
20
21
|
export { ADDRESS_PROPERTIES, FORM_ANSWER_PREFIX, FormFetchOptions, RenderFormHtmlOptions, ShopifyContactCompatibility, ShopifyContactInput, StorefrontFormRequestError, SubmitFormInput, adaptShopifyContactForm, evaluateFormRule, formAnswerName, formFields, isFormFieldVisible, loadPublishedForm, parseFormAnswers, renderFormHtml, resolveFormText, submitPublishedForm } from './forms.js';
|
|
21
22
|
export { EventCartPreparationError, eventCartToken, prepareEventCart } from './events.js';
|
|
22
|
-
export { C as ClaimEventApprovalOffer, d as CreateEventApprovalRequest, e as CreateEventCheckoutSession, f as CreateEventWaitlistEntry, b as EventApprovalOfferResolution, g as EventApprovalRequestReceipt, a as EventCheckoutSession, h as EventFormAnswer, i as EventFormSubmissionInput, j as EventRegistrationMode, k as EventRegistrationResult, c as EventRegistrationSubmission, l as EventWaitlistReceipt, E as EventsClient, P as PublicEvent, m as PublicEventForm, n as PublicEventOccurrence, o as
|
|
23
|
+
export { C as ClaimEventApprovalOffer, d as CreateEventApprovalRequest, e as CreateEventCheckoutSession, f as CreateEventWaitlistEntry, b as EventApprovalOfferResolution, g as EventApprovalRequestReceipt, a as EventCheckoutSession, h as EventFormAnswer, i as EventFormSubmissionInput, j as EventRegistrationMode, k as EventRegistrationResult, c as EventRegistrationSubmission, l as EventWaitlistReceipt, E as EventsClient, P as PublicEvent, m as PublicEventForm, n as PublicEventOccurrence, o as PublicEventSummary, p as PublicEventTicketType, q as PublicEventVenue, S as StorefrontEventsRequestError, r as createEventsClient } from './client-CwOPPpFF.js';
|
|
23
24
|
export { a as OfferTokenHistory, O as OfferTokenLocation, c as consumeOfferTokenFragment, o as offerTokenHrefMarker } from './offer-token-C-nk_nj8.js';
|
|
24
|
-
export { CreateStorefrontEditorBridgeArgs, CreateStorefrontEditorHostBridgeArgs, StorefrontEditorBlockSchema, StorefrontEditorBridge, StorefrontEditorHostBridge, StorefrontEditorMessageEvent, StorefrontEditorMessageSource, StorefrontEditorMessageTarget, StorefrontEditorReady, StorefrontEditorSectionPreset, StorefrontEditorSectionPresetBlock, StorefrontEditorSectionSchema, StorefrontEditorSelection, StorefrontEditorSettingInput, StorefrontEditorSettingOption, createStorefrontEditorBridge, createStorefrontEditorHostBridge } from './
|
|
25
|
+
export { C as CreateStorefrontEditorBridgeArgs, b as CreateStorefrontEditorHostBridgeArgs, c as StorefrontEditorAppExtensionPreview, d as StorefrontEditorBlockSchema, e as StorefrontEditorBridge, f as StorefrontEditorCanvasAction, g as StorefrontEditorCanvasBlockAction, h as StorefrontEditorCanvasPosition, i as StorefrontEditorCanvasSectionAction, j as StorefrontEditorDocument, k as StorefrontEditorHostBridge, l as StorefrontEditorMessageEvent, S as StorefrontEditorMessageSource, a as StorefrontEditorMessageTarget, m as StorefrontEditorReady, n as StorefrontEditorRect, o as StorefrontEditorSectionPreset, p as StorefrontEditorSectionPresetBlock, q as StorefrontEditorSectionSchema, r as StorefrontEditorSelection, s as StorefrontEditorSelectionScope, t as StorefrontEditorSettingInput, u as StorefrontEditorSettingOption, v as StorefrontEditorThemeStyle, x as createStorefrontEditorBridge, y as createStorefrontEditorHostBridge, z as positionStorefrontEditorCanvasToolbar } from './bridge-ZKbKqgFd.js';
|
|
26
|
+
export { S as STOREFRONT_SECTION_CUSTOM_CSS_SETTING, s as scopeStorefrontSectionCss } from './custom-css-Bl7Ur3-H.js';
|
|
25
27
|
import './http-types-CGh8WGHB.js';
|
|
26
28
|
import 'react';
|
|
27
29
|
import './storefront-api-types.js';
|
|
@@ -66,41 +68,50 @@ interface CheckoutDesignTokens {
|
|
|
66
68
|
readonly heading: string;
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
|
-
declare const CHECKOUT_DESIGN_TOKEN_INPUTS:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
71
|
+
declare const CHECKOUT_DESIGN_TOKEN_INPUTS: ({
|
|
72
|
+
defaultValue?: "" | "#005bd3" | "#ffffff" | "#111827" | "Inter";
|
|
73
|
+
type: "url";
|
|
74
|
+
name: "checkoutLogoUrl";
|
|
75
|
+
label: "Logo URL";
|
|
76
|
+
group: "Account & checkout";
|
|
77
|
+
helpText: "Overrides the storefront logo on customer account and checkout pages.";
|
|
78
|
+
} | {
|
|
79
|
+
defaultValue?: "" | "#005bd3" | "#ffffff" | "#111827" | "Inter";
|
|
80
|
+
type: "text";
|
|
81
|
+
name: "checkoutLogoAlt";
|
|
82
|
+
label: "Logo alternative text";
|
|
83
|
+
group: "Account & checkout";
|
|
84
|
+
} | {
|
|
85
|
+
defaultValue?: "" | "#005bd3" | "#ffffff" | "#111827" | "Inter";
|
|
86
|
+
type: "color";
|
|
87
|
+
name: "checkoutColorAccent";
|
|
88
|
+
label: "Primary color";
|
|
89
|
+
group: "Account & checkout";
|
|
90
|
+
} | {
|
|
91
|
+
defaultValue?: "" | "#005bd3" | "#ffffff" | "#111827" | "Inter";
|
|
92
|
+
type: "color";
|
|
93
|
+
name: "checkoutColorBackground";
|
|
94
|
+
label: "Background color";
|
|
95
|
+
group: "Account & checkout";
|
|
96
|
+
} | {
|
|
97
|
+
defaultValue?: "" | "#005bd3" | "#ffffff" | "#111827" | "Inter";
|
|
98
|
+
type: "color";
|
|
99
|
+
name: "checkoutColorForeground";
|
|
100
|
+
label: "Text color";
|
|
101
|
+
group: "Account & checkout";
|
|
102
|
+
} | {
|
|
103
|
+
defaultValue?: "" | "#005bd3" | "#ffffff" | "#111827" | "Inter";
|
|
104
|
+
type: "font";
|
|
105
|
+
name: "checkoutFontBody";
|
|
106
|
+
label: "Body font";
|
|
107
|
+
group: "Account & checkout";
|
|
108
|
+
} | {
|
|
109
|
+
defaultValue?: "" | "#005bd3" | "#ffffff" | "#111827" | "Inter";
|
|
110
|
+
type: "font";
|
|
111
|
+
name: "checkoutFontHeading";
|
|
112
|
+
label: "Heading font";
|
|
113
|
+
group: "Account & checkout";
|
|
114
|
+
})[];
|
|
104
115
|
declare function extractCheckoutDesignTokens(snapshot: Pick<ThemeSettingsSnapshot, 'global'>): CheckoutDesignTokens;
|
|
105
116
|
|
|
106
117
|
interface ContentSecurityPolicyShop {
|
|
@@ -133,6 +144,18 @@ declare function buildLocalizationCookie(sel: {
|
|
|
133
144
|
|
|
134
145
|
declare function handleLocalizationPost(request: Request): Promise<Response>;
|
|
135
146
|
|
|
147
|
+
interface AnalyticsAttributionEnvironment {
|
|
148
|
+
readonly referrer?: string;
|
|
149
|
+
readonly search?: string;
|
|
150
|
+
readonly matchMedia?: (query: string) => {
|
|
151
|
+
readonly matches: boolean;
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
type AttributionContext = Pick<AnalyticsContext, 'referrer' | 'utmSource' | 'utmMedium' | 'utmCampaign' | 'deviceClass'>;
|
|
155
|
+
/** Read static landing attribution plus the current responsive device class without retaining state
|
|
156
|
+
* or identifiers. All values stay optional so non-DOM/SSR emitters keep their existing payload. */
|
|
157
|
+
declare function collectAnalyticsAttribution(environment: AnalyticsAttributionEnvironment | null): AttributionContext;
|
|
158
|
+
|
|
136
159
|
declare function encodeConsent(state: ConsentState): URLSearchParams;
|
|
137
160
|
declare function decodeConsent(params: URLSearchParams): ConsentState;
|
|
138
161
|
declare function appendConsentToCheckoutUrl(checkoutUrl: string, state: ConsentState): string;
|
|
@@ -243,4 +266,4 @@ interface HostedLocaleInput {
|
|
|
243
266
|
*/
|
|
244
267
|
declare function resolveHostedLocale(input: HostedLocaleInput): string;
|
|
245
268
|
|
|
246
|
-
export { CART_ID_COOKIE, CHECKOUT_CONSENT_CATEGORIES, CHECKOUT_CONSENT_PARAM_PREFIX, CHECKOUT_DESIGN_TOKEN_INPUTS, CUSTOMER_SESSION_COOKIE, Cart, CartDispatchAction, type CheckoutDesignTokens, ConsentBucket, ConsentState, type ContentSecurityPolicyResult, type ContentSecurityPolicyShop, type CreateContentSecurityPolicyOptions, CustomerAccountClient, type CustomerAccountClientOptions, DEFAULT_HOSTED_SESSION_MAX_AGE, DEFAULT_SESSION_MAX_AGE, HOSTED_CUSTOMER_CSRF_COOKIE, HOSTED_CUSTOMER_CSRF_HEADER, HOSTED_CUSTOMER_SESSION_COOKIE, type HostedLocaleInput, type HostedSessionCookieAttrs, LOCALIZATION_COOKIE, type LegacySessionReadOptions, MAX_HOSTED_SESSION_MAX_AGE, MAX_LEGACY_CUSTOMER_SESSION_TOKEN_LENGTH, type ResolveCheckoutUrlOptions, ResolvedSettings, type SessionCookieAttrs, ThemeSettingsSnapshot, appendConsentToCheckoutUrl, applyOptimisticCartAction, buildCartIdCookie, buildCustomerSessionCookie, buildHostedCustomerSessionCookie, buildLocalizationCookie, clearCustomerSessionCookie, clearHostedCustomerSessionCookie, clearLegacyCustomerSessionCookie, createContentSecurityPolicy, createCustomerAccountClient, decodeCheckoutConsent, decodeConsent, encodeCheckoutConsent, encodeConsent, escapeHostedHtml, extractCheckoutDesignTokens, handleLocalizationPost, readCartIdCookie, readCustomerSessionToken, readHostedCustomerCsrfToken, readHostedCustomerSessionToken, readLegacyCustomerSessionToken, readLocalizationCookie, resolveCheckoutUrl, resolveHostedBranding, resolveHostedLocale, sanitizeHostedCssValue, shopHostname, useOptimisticCart };
|
|
269
|
+
export { type AnalyticsAttributionEnvironment, AnalyticsContext, CART_ID_COOKIE, CHECKOUT_CONSENT_CATEGORIES, CHECKOUT_CONSENT_PARAM_PREFIX, CHECKOUT_DESIGN_TOKEN_INPUTS, CUSTOMER_SESSION_COOKIE, Cart, CartDispatchAction, type CheckoutDesignTokens, ConsentBucket, ConsentState, type ContentSecurityPolicyResult, type ContentSecurityPolicyShop, type CreateContentSecurityPolicyOptions, CustomerAccountClient, type CustomerAccountClientOptions, DEFAULT_HOSTED_SESSION_MAX_AGE, DEFAULT_SESSION_MAX_AGE, HOSTED_CUSTOMER_CSRF_COOKIE, HOSTED_CUSTOMER_CSRF_HEADER, HOSTED_CUSTOMER_SESSION_COOKIE, type HostedLocaleInput, type HostedSessionCookieAttrs, LOCALIZATION_COOKIE, type LegacySessionReadOptions, MAX_HOSTED_SESSION_MAX_AGE, MAX_LEGACY_CUSTOMER_SESSION_TOKEN_LENGTH, type ResolveCheckoutUrlOptions, ResolvedSettings, type SessionCookieAttrs, ThemeSettingsSnapshot, appendConsentToCheckoutUrl, applyOptimisticCartAction, buildCartIdCookie, buildCustomerSessionCookie, buildHostedCustomerSessionCookie, buildLocalizationCookie, clearCustomerSessionCookie, clearHostedCustomerSessionCookie, clearLegacyCustomerSessionCookie, collectAnalyticsAttribution, createContentSecurityPolicy, createCustomerAccountClient, decodeCheckoutConsent, decodeConsent, encodeCheckoutConsent, encodeConsent, escapeHostedHtml, extractCheckoutDesignTokens, handleLocalizationPost, readCartIdCookie, readCustomerSessionToken, readHostedCustomerCsrfToken, readHostedCustomerSessionToken, readLegacyCustomerSessionToken, readLocalizationCookie, resolveCheckoutUrl, resolveHostedBranding, resolveHostedLocale, sanitizeHostedCssValue, shopHostname, useOptimisticCart };
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
export { getAdjacentAndFirstAvailableVariants, getProductOptions, getSelectedProductOptions, getSelectedVariant, mapSelectedProductOptionToObject, useOptimisticVariant, useSelectedOptionInUrlParam } from './chunk-QOEEUTHQ.js';
|
|
2
|
-
import { createNonceProvider } from './chunk-
|
|
3
|
-
export { CartForm, createAnalyticsBus, createAnalyticsEmitter, createPixelTransport } from './chunk-
|
|
2
|
+
import { createNonceProvider } from './chunk-RFM27BKZ.js';
|
|
3
|
+
export { CartForm, collectAnalyticsAttribution, createAnalyticsBus, createAnalyticsEmitter, createPixelTransport } from './chunk-RFM27BKZ.js';
|
|
4
4
|
export { flattenConnection, getPaginationInfo, getPaginationVariables } from './chunk-5QOFKGKD.js';
|
|
5
|
-
import { CHECKOUT_DESIGN_TOKEN_INPUTS, localizePath, buildLocalizationCookie, extractCheckoutDesignTokens, readLocalizationCookie } from './chunk-
|
|
6
|
-
export { CART_ID_COOKIE, CHECKOUT_CONSENT_CATEGORIES, CHECKOUT_CONSENT_PARAM_PREFIX, CHECKOUT_DESIGN_TOKEN_INPUTS, CUSTOMER_SESSION_COOKIE, CacheCustom, CacheLong, CacheNone, CacheShort, CustomerAccountError, DEFAULT_HOSTED_SESSION_MAX_AGE, DEFAULT_SESSION_MAX_AGE, GEO_HEADER, GEO_SIGNATURE_HEADER, HOSTED_CUSTOMER_CSRF_COOKIE, HOSTED_CUSTOMER_CSRF_HEADER, HOSTED_CUSTOMER_SESSION_COOKIE, LOCALIZATION_COOKIE, MAX_HOSTED_SESSION_MAX_AGE, MAX_LEGACY_CUSTOMER_SESSION_TOKEN_LENGTH, ROUTING_LOCALE_HEADER, ROUTING_ORIGINAL_PATHNAME_HEADER, StorefrontDefaultCache, StorefrontQueryTimeoutError, StorefrontUpstreamError, buildCartIdCookie, buildCustomerSessionCookie, buildHostedCustomerSessionCookie, buildLocalizationCookie, cartGetIdDefault, cartSetIdDefault, clearCustomerSessionCookie, clearHostedCustomerSessionCookie, clearLegacyCustomerSessionCookie, createCache, createCartHandler, createCustomerAccountClient, createKotaoContext, createStorefrontClient, createWithCache, decodeCheckoutConsent, encodeCheckoutConsent, extractCheckoutDesignTokens, generateCacheControlHeader, isLocalePathSegment, localeFromAcceptLanguage, localeFromPathname, localeFromRequest, localizePath, originalPathnameFromRequest, readCartIdCookie, readCustomerSessionToken, readHostedCustomerCsrfToken, readHostedCustomerSessionToken, readLegacyCustomerSessionToken, readLocalizationCookie, resolveCheckoutUrl, shopHostname, signGeo, stripLocalePrefixFromPathname, stripLocalePrefixFromRequest, trustedShopOriginFromHeaders, verifyGeo } from './chunk-
|
|
5
|
+
import { CHECKOUT_DESIGN_TOKEN_INPUTS, localizePath, buildLocalizationCookie, extractCheckoutDesignTokens, readLocalizationCookie } from './chunk-EG34HLSX.js';
|
|
6
|
+
export { CART_ID_COOKIE, CHECKOUT_CONSENT_CATEGORIES, CHECKOUT_CONSENT_PARAM_PREFIX, CHECKOUT_DESIGN_TOKEN_INPUTS, CUSTOMER_SESSION_COOKIE, CacheCustom, CacheLong, CacheNone, CacheShort, CustomerAccountError, DEFAULT_HOSTED_SESSION_MAX_AGE, DEFAULT_SESSION_MAX_AGE, GEO_HEADER, GEO_SIGNATURE_HEADER, HOSTED_CUSTOMER_CSRF_COOKIE, HOSTED_CUSTOMER_CSRF_HEADER, HOSTED_CUSTOMER_SESSION_COOKIE, LOCALIZATION_COOKIE, MARKET_ALTERNATE_LOCALES_HEADER, MARKET_CANONICAL_URL_HEADER, MARKET_DEFAULT_LOCALE_HEADER, MARKET_ID_HEADER, MARKET_PATH_PREFIX_HEADER, MARKET_ROOT_URLS_HEADER, MARKET_SETTINGS_ENVIRONMENT_HEADER, MARKET_THEME_ID_HEADER, MAX_HOSTED_SESSION_MAX_AGE, MAX_LEGACY_CUSTOMER_SESSION_TOKEN_LENGTH, ROUTING_LOCALE_HEADER, ROUTING_ORIGINAL_PATHNAME_HEADER, StorefrontDefaultCache, StorefrontQueryTimeoutError, StorefrontUpstreamError, buildCartIdCookie, buildCustomerSessionCookie, buildHostedCustomerSessionCookie, buildLocalizationCookie, cartGetIdDefault, cartSetIdDefault, clearCustomerSessionCookie, clearHostedCustomerSessionCookie, clearLegacyCustomerSessionCookie, createCache, createCartHandler, createCustomerAccountClient, createKotaoContext, createStorefrontClient, createWithCache, decodeCheckoutConsent, encodeCheckoutConsent, extractCheckoutDesignTokens, generateCacheControlHeader, isLocalePathSegment, localeFromAcceptLanguage, localeFromPathname, localeFromRequest, localizePath, marketContextFromHeaders, originalPathnameFromRequest, readCartIdCookie, readCustomerSessionToken, readHostedCustomerCsrfToken, readHostedCustomerSessionToken, readLegacyCustomerSessionToken, readLocalizationCookie, resolveCheckoutUrl, shopHostname, signGeo, stripLocalePrefixFromPathname, stripLocalePrefixFromRequest, trustedShopOriginFromHeaders, verifyGeo } from './chunk-EG34HLSX.js';
|
|
7
7
|
import { CART_FORM_ACTIONS, CONSENT_BUCKETS } from './chunk-OGWYTYYS.js';
|
|
8
8
|
export { CART_FORM_ACTIONS, CONSENT_BUCKETS, CONSENT_COOKIE, DENIED_CONSENT, GRANTED_CONSENT, buildConsentCookie, isGranted, mergeConsent, parseConsent, readConsentCookie, serializeConsent } from './chunk-OGWYTYYS.js';
|
|
9
|
-
export { URL_REDIRECT_QUERY, breadcrumbListJsonLd, buildRobotsTxt, buildSitemapIndexXml, buildSitemapXml, localBusinessJsonLd, organizationJsonLd, productJsonLd, resolveRedirect, resolveStorefrontRedirect, restaurantJsonLd, robotsResponse, sitemapIndexResponse, sitemapResponse, storefrontRedirect, websiteJsonLd } from './chunk-
|
|
10
|
-
export { getSeoMeta, serializeJsonLd } from './chunk-
|
|
11
|
-
export { createThemeSettingsStore, mergeSection, mergeSettings, resolveThemeSettings } from './chunk-
|
|
12
|
-
export { fetchThemeSettings } from './chunk-
|
|
13
|
-
export { createStorefrontEditorBridge, createStorefrontEditorHostBridge } from './chunk-
|
|
9
|
+
export { URL_REDIRECT_QUERY, breadcrumbListJsonLd, buildRobotsTxt, buildSitemapIndexXml, buildSitemapXml, localBusinessJsonLd, organizationJsonLd, productJsonLd, resolveRedirect, resolveStorefrontRedirect, restaurantJsonLd, robotsResponse, sitemapIndexResponse, sitemapResponse, storefrontRedirect, websiteJsonLd } from './chunk-W74FGUZH.js';
|
|
10
|
+
export { getSeoMeta, serializeJsonLd } from './chunk-SVMYFYIA.js';
|
|
11
|
+
export { createThemeSettingsStore, mergeSection, mergeSettings, reconcileSyntheticSectionGroup, resolveThemeSettings } from './chunk-VOTBNOWH.js';
|
|
12
|
+
export { fetchThemeSettings } from './chunk-2MRB6SMP.js';
|
|
13
|
+
export { STOREFRONT_SECTION_CUSTOM_CSS_SETTING, createStorefrontEditorBridge, createStorefrontEditorHostBridge, positionStorefrontEditorCanvasToolbar, scopeStorefrontSectionCss } from './chunk-O6YZEY7X.js';
|
|
14
|
+
import './chunk-CKGI3Y7L.js';
|
|
14
15
|
export { EventCartPreparationError, eventCartToken, prepareEventCart } from './chunk-4OQYNUGM.js';
|
|
15
16
|
export { consumeOfferTokenFragment, offerTokenHrefMarker } from './chunk-WG7HYVHJ.js';
|
|
16
|
-
export { StorefrontEventsRequestError, createEventsClient } from './chunk-
|
|
17
|
+
export { StorefrontEventsRequestError, createEventsClient } from './chunk-R4N565GX.js';
|
|
17
18
|
export { ADDRESS_PROPERTIES, FORM_ANSWER_PREFIX, StorefrontFormRequestError, adaptShopifyContactForm, evaluateFormRule, formAnswerName, formFields, isFormFieldVisible, loadPublishedForm, parseFormAnswers, renderFormHtml, resolveFormText, submitPublishedForm } from './chunk-IIOHENCG.js';
|
|
18
19
|
export { buildImageAttrs, imageSrcSet, imageUrl } from './chunk-3YQXJNR7.js';
|
|
20
|
+
import { MARKET_PATH_PREFIX_HEADER } from '@kotao/storefront-contracts';
|
|
21
|
+
export { AUTO_REDIRECT_LANGUAGE_HEADER, autoRedirectEnabled } from '@kotao/storefront-contracts';
|
|
19
22
|
|
|
20
23
|
// src/cart/useOptimisticCart.ts
|
|
21
24
|
var recalculate = (cart, lines) => ({
|
|
@@ -139,19 +142,20 @@ function normalizeSources(sources) {
|
|
|
139
142
|
function uniqueSources(sources) {
|
|
140
143
|
return Array.from(new Set(sources.filter((source) => source.length > 0)));
|
|
141
144
|
}
|
|
142
|
-
|
|
143
|
-
// src/localization/handler.ts
|
|
144
145
|
function safeReturnTo(raw) {
|
|
145
146
|
if (raw === null || raw === "") return { path: "/", safe: true };
|
|
146
147
|
return /^\/(?![/\\])/.test(raw) ? { path: raw, safe: true } : { path: "/", safe: false };
|
|
147
148
|
}
|
|
148
149
|
async function handleLocalizationPost(request) {
|
|
149
150
|
const form = await request.formData();
|
|
150
|
-
const country = (form.
|
|
151
|
-
const locale = (form.
|
|
151
|
+
const country = (form.getAll("country_code").at(-1) ?? "").toString().trim().toUpperCase() || null;
|
|
152
|
+
const locale = (form.getAll("locale_code").at(-1) ?? "").toString().trim() || null;
|
|
152
153
|
const primaryLocale = (form.get("primary_locale") ?? "").toString().trim() || null;
|
|
153
154
|
const returnTo = safeReturnTo((form.get("return_to") ?? "").toString());
|
|
154
|
-
const location = returnTo.safe && primaryLocale !== null ? localizePath(returnTo.path, locale, {
|
|
155
|
+
const location = returnTo.safe && primaryLocale !== null ? localizePath(returnTo.path, locale, {
|
|
156
|
+
primaryLocale,
|
|
157
|
+
marketPathPrefix: request.headers.get(MARKET_PATH_PREFIX_HEADER)
|
|
158
|
+
}) : returnTo.path;
|
|
155
159
|
return new Response(null, {
|
|
156
160
|
status: 302,
|
|
157
161
|
headers: { location, "set-cookie": buildLocalizationCookie({ country, locale }) }
|