@cimplify/sdk 0.100.1 → 0.100.3
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/advanced.d.mts +3 -3
- package/dist/advanced.d.ts +3 -3
- package/dist/advanced.js +20 -20
- package/dist/advanced.mjs +1 -1
- package/dist/{chunk-BHQCSHIG.js → chunk-CNY2XFN4.js} +266 -84
- package/dist/{chunk-PTKAN4SI.mjs → chunk-FFRQNNUQ.mjs} +8 -0
- package/dist/{chunk-QGFKIAEM.js → chunk-FWKSBF3F.js} +8 -0
- package/dist/{chunk-NKZIXLKW.mjs → chunk-HFTRLRLM.mjs} +3 -3
- package/dist/{chunk-NR4Z2SFY.js → chunk-KNCW5DI7.js} +4 -4
- package/dist/{chunk-KEC2CX4R.mjs → chunk-NOGCGI4J.mjs} +2 -2
- package/dist/{chunk-NH3HYUC3.js → chunk-XCS56XSS.js} +3 -3
- package/dist/{chunk-T2B656RS.mjs → chunk-XG4DZT4I.mjs} +221 -39
- package/dist/{client-T5c-Nxq-.d.mts → client-BGeSemVv.d.mts} +2 -2
- package/dist/{client-DxgC_lXU.d.ts → client-BWdeCgmo.d.ts} +34 -14
- package/dist/{client-B0Lku_lc.d.mts → client-Bx4NRdl8.d.mts} +34 -14
- package/dist/{client-DRgEa78P.d.ts → client-Cvp8W1r9.d.ts} +2 -2
- package/dist/{index-CzKN1hjf.d.ts → index-B_RYmvlF.d.ts} +3 -3
- package/dist/{index-DzuLT5wi.d.mts → index-D-LUYk1Y.d.mts} +3 -3
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +69 -69
- package/dist/index.mjs +3 -3
- package/dist/mock/cli.mjs +3 -3
- package/dist/mock/library.js +3 -3
- package/dist/mock/library.mjs +3 -3
- package/dist/mock/msw.js +3 -3
- package/dist/mock/msw.mjs +3 -3
- package/dist/{payment-D8NEwCna.d.mts → payment-BSzy7sly.d.mts} +1 -1
- package/dist/{payment-lZBP7h5M.d.ts → payment-jK8ztICx.d.ts} +1 -1
- package/dist/{price-ncQb-TC8.d.ts → price-CJLfcYKd.d.ts} +1 -1
- package/dist/{price-DepWAmcL.d.mts → price-D96h6c6L.d.mts} +1 -1
- package/dist/{product-B384_Qm2.d.mts → product-CeV8euw4.d.mts} +11 -10
- package/dist/{product-B384_Qm2.d.ts → product-CeV8euw4.d.ts} +11 -10
- package/dist/react.d.mts +4 -4
- package/dist/react.d.ts +4 -4
- package/dist/react.js +51 -29
- package/dist/react.mjs +28 -6
- package/dist/{server-oCGNIO_K.d.mts → server-BRJ61o2J.d.mts} +4 -4
- package/dist/{server-B7O4ttpv.d.ts → server-CXrVYtNo.d.ts} +4 -4
- package/dist/server.d.mts +4 -4
- package/dist/server.d.ts +4 -4
- package/dist/server.js +7 -7
- package/dist/server.mjs +2 -2
- package/dist/testing/msw.d.mts +2 -2
- package/dist/testing/msw.d.ts +2 -2
- package/dist/testing/msw.js +2 -2
- package/dist/testing/msw.mjs +1 -1
- package/dist/testing/suite.d.mts +6 -6
- package/dist/testing/suite.d.ts +6 -6
- package/dist/testing/suite.js +23 -23
- package/dist/testing/suite.mjs +4 -4
- package/dist/testing.d.mts +5 -5
- package/dist/testing.d.ts +5 -5
- package/dist/testing.js +79 -79
- package/dist/testing.mjs +5 -5
- package/dist/utils.d.mts +4 -4
- package/dist/utils.d.ts +4 -4
- package/package.json +1 -1
|
@@ -1861,6 +1861,7 @@ var LinkService = class {
|
|
|
1861
1861
|
);
|
|
1862
1862
|
if (result.ok && result.value.session_token) {
|
|
1863
1863
|
this.client.setAccessToken(result.value.session_token);
|
|
1864
|
+
this.client.activity.refreshIdentity();
|
|
1864
1865
|
this.client.autoClaimChatIdentity();
|
|
1865
1866
|
}
|
|
1866
1867
|
return result;
|
|
@@ -1873,6 +1874,7 @@ var LinkService = class {
|
|
|
1873
1874
|
);
|
|
1874
1875
|
if (result.ok && result.value.session_token) {
|
|
1875
1876
|
this.client.setAccessToken(result.value.session_token);
|
|
1877
|
+
this.client.activity.refreshIdentity();
|
|
1876
1878
|
this.client.autoClaimChatIdentity();
|
|
1877
1879
|
}
|
|
1878
1880
|
return result;
|
|
@@ -2057,6 +2059,7 @@ var AuthService = class {
|
|
|
2057
2059
|
);
|
|
2058
2060
|
if (result.ok && result.value.session_token) {
|
|
2059
2061
|
this.client.setAccessToken(result.value.session_token);
|
|
2062
|
+
this.client.activity.refreshIdentity();
|
|
2060
2063
|
this.client.autoClaimChatIdentity();
|
|
2061
2064
|
}
|
|
2062
2065
|
return result;
|
|
@@ -2779,6 +2782,7 @@ var KNOWN_IFRAME_TYPES = /* @__PURE__ */ new Set([
|
|
|
2779
2782
|
MESSAGE_TYPES.READY,
|
|
2780
2783
|
MESSAGE_TYPES.HEIGHT_CHANGE,
|
|
2781
2784
|
MESSAGE_TYPES.AUTH_REQUESTED,
|
|
2785
|
+
MESSAGE_TYPES.SESSION_ESTABLISHED,
|
|
2782
2786
|
MESSAGE_TYPES.ERROR,
|
|
2783
2787
|
MESSAGE_TYPES.ADDRESS_CHANGED,
|
|
2784
2788
|
MESSAGE_TYPES.ADDRESS_SELECTED,
|
|
@@ -2811,6 +2815,10 @@ function parseIframeMessage(data) {
|
|
|
2811
2815
|
return null;
|
|
2812
2816
|
}
|
|
2813
2817
|
break;
|
|
2818
|
+
case MESSAGE_TYPES.SESSION_ESTABLISHED:
|
|
2819
|
+
if (typeof record.accessToken !== "string" || !record.accessToken.trim()) return null;
|
|
2820
|
+
if (record.refreshToken !== void 0 && typeof record.refreshToken !== "string") return null;
|
|
2821
|
+
break;
|
|
2814
2822
|
case MESSAGE_TYPES.ADDRESS_CHANGED:
|
|
2815
2823
|
case MESSAGE_TYPES.ADDRESS_SELECTED:
|
|
2816
2824
|
if (!record.address || typeof record.address !== "object") return null;
|
|
@@ -2468,7 +2468,7 @@ function buildV1(deps) {
|
|
|
2468
2468
|
});
|
|
2469
2469
|
app.post("/activity/events", async (c) => {
|
|
2470
2470
|
const body = await c.req.json().catch(() => ({}));
|
|
2471
|
-
return tryRoute(c, () => deps.activity.recordEvents(deps.defaultBusinessId, c.var.session.id, body.events ?? []));
|
|
2471
|
+
return tryRoute(c, () => deps.activity.recordEvents(deps.defaultBusinessId, body.analytics_session_id ?? c.var.session.id, body.events ?? []));
|
|
2472
2472
|
});
|
|
2473
2473
|
app.get("/activity/state", (c) => tryRoute(c, () => deps.activity.getState(deps.defaultBusinessId, c.var.session.id)));
|
|
2474
2474
|
app.get("/activity/recommendations", (c) => tryRoute(c, () => deps.activity.getRecommendations(deps.defaultBusinessId)));
|
|
@@ -4609,7 +4609,7 @@ function toUICart(registry, cart) {
|
|
|
4609
4609
|
is_available: product?.is_available ?? true,
|
|
4610
4610
|
base_price: i.price,
|
|
4611
4611
|
add_ons_price: i.add_ons_price,
|
|
4612
|
-
total_price:
|
|
4612
|
+
total_price: add(i.price, i.add_ons_price),
|
|
4613
4613
|
item_discount_amount: i.item_discount_amount,
|
|
4614
4614
|
price_info: defaultChosenPrice(i.price),
|
|
4615
4615
|
add_on_option_ids: cfg.add_ons?.selected_options.map((o) => o.option_id) ?? [],
|
|
@@ -5431,7 +5431,7 @@ function createActivityService(opts) {
|
|
|
5431
5431
|
id,
|
|
5432
5432
|
business_id: businessId,
|
|
5433
5433
|
session_id: sessionId,
|
|
5434
|
-
event_type: e.
|
|
5434
|
+
event_type: e.type,
|
|
5435
5435
|
payload: e.payload ?? {},
|
|
5436
5436
|
created_at: clock.iso()
|
|
5437
5437
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkXCS56XSS_js = require('./chunk-XCS56XSS.js');
|
|
4
|
+
var chunkCNY2XFN4_js = require('./chunk-CNY2XFN4.js');
|
|
5
5
|
var zod = require('zod');
|
|
6
6
|
|
|
7
7
|
var cimplifyRegistry = zod.z.registry();
|
|
@@ -600,7 +600,7 @@ async function toForwardedRequest(input, init) {
|
|
|
600
600
|
};
|
|
601
601
|
}
|
|
602
602
|
function createTestClient(options = {}) {
|
|
603
|
-
const mock =
|
|
603
|
+
const mock = chunkXCS56XSS_js.createMockApp(options);
|
|
604
604
|
let sessionToken;
|
|
605
605
|
const fetchImpl = async (input, init) => {
|
|
606
606
|
const url = typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
@@ -619,7 +619,7 @@ function createTestClient(options = {}) {
|
|
|
619
619
|
if (echoed) sessionToken = echoed;
|
|
620
620
|
return res;
|
|
621
621
|
};
|
|
622
|
-
const client =
|
|
622
|
+
const client = chunkCNY2XFN4_js.createCimplifyClient({
|
|
623
623
|
baseUrl: TEST_BASE_URL,
|
|
624
624
|
// Link mock lives at /v1/link on the same Hono app, so point the SDK's
|
|
625
625
|
// separate Link transport at the same TEST_BASE_URL.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createMockApp } from './chunk-
|
|
2
|
-
import { createCimplifyClient } from './chunk-
|
|
1
|
+
import { createMockApp } from './chunk-HFTRLRLM.mjs';
|
|
2
|
+
import { createCimplifyClient } from './chunk-XG4DZT4I.mjs';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
|
|
5
5
|
var cimplifyRegistry = z.registry();
|
|
@@ -2470,7 +2470,7 @@ function buildV1(deps) {
|
|
|
2470
2470
|
});
|
|
2471
2471
|
app.post("/activity/events", async (c) => {
|
|
2472
2472
|
const body = await c.req.json().catch(() => ({}));
|
|
2473
|
-
return tryRoute(c, () => deps.activity.recordEvents(deps.defaultBusinessId, c.var.session.id, body.events ?? []));
|
|
2473
|
+
return tryRoute(c, () => deps.activity.recordEvents(deps.defaultBusinessId, body.analytics_session_id ?? c.var.session.id, body.events ?? []));
|
|
2474
2474
|
});
|
|
2475
2475
|
app.get("/activity/state", (c) => tryRoute(c, () => deps.activity.getState(deps.defaultBusinessId, c.var.session.id)));
|
|
2476
2476
|
app.get("/activity/recommendations", (c) => tryRoute(c, () => deps.activity.getRecommendations(deps.defaultBusinessId)));
|
|
@@ -4611,7 +4611,7 @@ function toUICart(registry, cart) {
|
|
|
4611
4611
|
is_available: product?.is_available ?? true,
|
|
4612
4612
|
base_price: i.price,
|
|
4613
4613
|
add_ons_price: i.add_ons_price,
|
|
4614
|
-
total_price:
|
|
4614
|
+
total_price: add(i.price, i.add_ons_price),
|
|
4615
4615
|
item_discount_amount: i.item_discount_amount,
|
|
4616
4616
|
price_info: defaultChosenPrice(i.price),
|
|
4617
4617
|
add_on_option_ids: cfg.add_ons?.selected_options.map((o) => o.option_id) ?? [],
|
|
@@ -5433,7 +5433,7 @@ function createActivityService(opts) {
|
|
|
5433
5433
|
id,
|
|
5434
5434
|
business_id: businessId,
|
|
5435
5435
|
session_id: sessionId,
|
|
5436
|
-
event_type: e.
|
|
5436
|
+
event_type: e.type,
|
|
5437
5437
|
payload: e.payload ?? {},
|
|
5438
5438
|
created_at: clock.iso()
|
|
5439
5439
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { safe, generateIdempotencyKey, err, ok, CatalogueQueries, CartOperations, CheckoutService, OrderQueries, LinkService, AuthService, BusinessService, InventoryService, SchedulingService, LiteService, FxService, createElements } from './chunk-
|
|
1
|
+
import { safe, generateIdempotencyKey, err, ok, CatalogueQueries, CartOperations, CheckoutService, OrderQueries, LinkService, AuthService, BusinessService, InventoryService, SchedulingService, LiteService, FxService, createElements } from './chunk-FFRQNNUQ.mjs';
|
|
2
2
|
import { CimplifyError, ErrorCode, IdempotencyMismatchError, enrichError } from './chunk-O3YUHLZL.mjs';
|
|
3
3
|
|
|
4
4
|
// src/store-credit.ts
|
|
@@ -15,34 +15,178 @@ var StoreCreditQueries = class {
|
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
// src/internal/analytics-session.ts
|
|
19
|
+
var ANALYTICS_SESSION_IDLE_TIMEOUT_MS = 30 * 60 * 1e3;
|
|
20
|
+
var ANALYTICS_SESSION_STORAGE_KEY = "cimplify_analytics_session";
|
|
21
|
+
var ANALYTICS_SESSION_STATE_VERSION = 1;
|
|
22
|
+
var MICROSECONDS_PER_MILLISECOND = 1e3;
|
|
23
|
+
var MICROSECONDS_PER_SECOND = 1e6;
|
|
24
|
+
var AnalyticsSessionCoordinator = class {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.fallbackState = null;
|
|
27
|
+
}
|
|
28
|
+
beginEvent(nowMs = Date.now()) {
|
|
29
|
+
const state = this.resolveActiveState(nowMs);
|
|
30
|
+
state.lastActivityAtMs = nowMs;
|
|
31
|
+
const occurredAt = reserveOccurredAt(state, nowMs, 1);
|
|
32
|
+
this.write(state);
|
|
33
|
+
return toEventContext(state, occurredAt);
|
|
34
|
+
}
|
|
35
|
+
beginPage(path, nowMs = Date.now()) {
|
|
36
|
+
const existing = this.read();
|
|
37
|
+
const expired = !existing || isExpired(existing, nowMs);
|
|
38
|
+
const state = expired ? newSession(nowMs) : existing;
|
|
39
|
+
const previousPage = expired ? void 0 : durationFor(state.activePage, nowMs);
|
|
40
|
+
state.lastActivityAtMs = nowMs;
|
|
41
|
+
state.activePage = { path, enteredAtMs: nowMs };
|
|
42
|
+
const occurredAt = reserveOccurredAt(state, nowMs, previousPage ? 2 : 1);
|
|
43
|
+
this.write(state);
|
|
44
|
+
return {
|
|
45
|
+
session: toEventContext(state, occurredAt),
|
|
46
|
+
previousPage
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
current() {
|
|
50
|
+
const state = this.read();
|
|
51
|
+
if (!state || isExpired(state, Date.now())) return null;
|
|
52
|
+
return toContext(state);
|
|
53
|
+
}
|
|
54
|
+
markBootstrapped(sessionId) {
|
|
55
|
+
const state = this.read();
|
|
56
|
+
if (!state || state.id !== sessionId) return;
|
|
57
|
+
state.bootstrapped = true;
|
|
58
|
+
this.write(state);
|
|
59
|
+
}
|
|
60
|
+
reset() {
|
|
61
|
+
this.fallbackState = null;
|
|
62
|
+
try {
|
|
63
|
+
sessionStorage.removeItem(ANALYTICS_SESSION_STORAGE_KEY);
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
resolveActiveState(nowMs) {
|
|
68
|
+
const state = this.read();
|
|
69
|
+
return !state || isExpired(state, nowMs) ? newSession(nowMs) : state;
|
|
70
|
+
}
|
|
71
|
+
read() {
|
|
72
|
+
try {
|
|
73
|
+
const serialized = sessionStorage.getItem(ANALYTICS_SESSION_STORAGE_KEY);
|
|
74
|
+
if (!serialized) return this.fallbackState;
|
|
75
|
+
const state = JSON.parse(serialized);
|
|
76
|
+
if (!isPersistedSession(state)) {
|
|
77
|
+
sessionStorage.removeItem(ANALYTICS_SESSION_STORAGE_KEY);
|
|
78
|
+
return this.fallbackState;
|
|
79
|
+
}
|
|
80
|
+
this.fallbackState = state;
|
|
81
|
+
return state;
|
|
82
|
+
} catch {
|
|
83
|
+
return this.fallbackState;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
write(state) {
|
|
87
|
+
this.fallbackState = state;
|
|
88
|
+
try {
|
|
89
|
+
sessionStorage.setItem(ANALYTICS_SESSION_STORAGE_KEY, JSON.stringify(state));
|
|
90
|
+
} catch {
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
function newSession(nowMs) {
|
|
95
|
+
return {
|
|
96
|
+
version: ANALYTICS_SESSION_STATE_VERSION,
|
|
97
|
+
id: generateSessionId(),
|
|
98
|
+
startedAtMs: nowMs,
|
|
99
|
+
lastActivityAtMs: nowMs,
|
|
100
|
+
bootstrapped: false
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function toContext(state) {
|
|
104
|
+
return {
|
|
105
|
+
id: state.id,
|
|
106
|
+
startedAt: new Date(state.startedAtMs).toISOString(),
|
|
107
|
+
requiresBootstrap: !state.bootstrapped
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function toEventContext(state, occurredAtMicros) {
|
|
111
|
+
return {
|
|
112
|
+
...toContext(state),
|
|
113
|
+
occurredAt: formatEpochMicros(occurredAtMicros)
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function reserveOccurredAt(state, nowMs, eventCount) {
|
|
117
|
+
const wallClockMicros = Math.trunc(nowMs) * MICROSECONDS_PER_MILLISECOND;
|
|
118
|
+
const occurredAtMicros = Math.max(
|
|
119
|
+
wallClockMicros,
|
|
120
|
+
(state.lastOccurredAtMicros ?? wallClockMicros - 1) + 1
|
|
121
|
+
);
|
|
122
|
+
state.lastOccurredAtMicros = occurredAtMicros + eventCount - 1;
|
|
123
|
+
return occurredAtMicros;
|
|
124
|
+
}
|
|
125
|
+
function formatEpochMicros(epochMicros) {
|
|
126
|
+
const epochMillis = Math.floor(epochMicros / MICROSECONDS_PER_MILLISECOND);
|
|
127
|
+
const microsWithinSecond = epochMicros % MICROSECONDS_PER_SECOND;
|
|
128
|
+
const millisecondIso = new Date(epochMillis).toISOString();
|
|
129
|
+
return `${millisecondIso.slice(0, -5)}.${String(microsWithinSecond).padStart(6, "0")}Z`;
|
|
130
|
+
}
|
|
131
|
+
function durationFor(activePage, nowMs) {
|
|
132
|
+
if (!activePage || nowMs < activePage.enteredAtMs) return void 0;
|
|
133
|
+
return {
|
|
134
|
+
path: activePage.path,
|
|
135
|
+
timeOnPageSeconds: Math.floor((nowMs - activePage.enteredAtMs) / 1e3)
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function isExpired(state, nowMs) {
|
|
139
|
+
return nowMs - state.lastActivityAtMs >= ANALYTICS_SESSION_IDLE_TIMEOUT_MS;
|
|
140
|
+
}
|
|
141
|
+
function isPersistedSession(value) {
|
|
142
|
+
if (!value || typeof value !== "object") return false;
|
|
143
|
+
const state = value;
|
|
144
|
+
return state.version === ANALYTICS_SESSION_STATE_VERSION && typeof state.id === "string" && state.id.length > 0 && typeof state.startedAtMs === "number" && Number.isFinite(state.startedAtMs) && typeof state.lastActivityAtMs === "number" && Number.isFinite(state.lastActivityAtMs) && (state.lastOccurredAtMicros === void 0 || typeof state.lastOccurredAtMicros === "number" && Number.isSafeInteger(state.lastOccurredAtMicros)) && typeof state.bootstrapped === "boolean" && (!state.activePage || typeof state.activePage.path === "string" && typeof state.activePage.enteredAtMs === "number" && Number.isFinite(state.activePage.enteredAtMs));
|
|
145
|
+
}
|
|
146
|
+
function generateSessionId() {
|
|
147
|
+
if (typeof crypto !== "undefined" && crypto.randomUUID) {
|
|
148
|
+
return crypto.randomUUID();
|
|
149
|
+
}
|
|
150
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (character) => {
|
|
151
|
+
const random = Math.random() * 16 | 0;
|
|
152
|
+
const value = character === "x" ? random : random & 3 | 8;
|
|
153
|
+
return value.toString(16);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
18
157
|
// src/activity.ts
|
|
19
158
|
var VISITOR_ID_STORAGE_KEY = "cimplify_visitor_id";
|
|
20
|
-
var SESSION_STARTED_STORAGE_KEY = "cimplify_session_started_at";
|
|
21
159
|
var ActivityService = class {
|
|
22
160
|
constructor(client) {
|
|
23
161
|
this.client = client;
|
|
162
|
+
this.sessions = new AnalyticsSessionCoordinator();
|
|
163
|
+
this.bootstrapRequest = null;
|
|
24
164
|
}
|
|
25
165
|
/**
|
|
26
166
|
* Record session start (landing, referrer, UTM, device). Fire-and-forget,
|
|
27
|
-
* at most once per
|
|
167
|
+
* at most once per 30-minute-idle analytics session; called automatically
|
|
168
|
+
* by the track* methods.
|
|
28
169
|
*/
|
|
29
170
|
startSession() {
|
|
30
171
|
if (typeof window === "undefined") return;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
alreadyStarted = sessionStorage.getItem(SESSION_STARTED_STORAGE_KEY);
|
|
34
|
-
} catch {
|
|
35
|
-
}
|
|
36
|
-
if (alreadyStarted) return;
|
|
37
|
-
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
38
|
-
try {
|
|
39
|
-
sessionStorage.setItem(SESSION_STARTED_STORAGE_KEY, startedAt);
|
|
40
|
-
} catch {
|
|
41
|
-
}
|
|
42
|
-
this.client.post("/api/v1/activity/session", this.buildSessionPayload(startedAt)).catch(() => {
|
|
172
|
+
const session = this.sessions.beginEvent();
|
|
173
|
+
void this.bootstrapSession(session).catch(() => {
|
|
43
174
|
});
|
|
44
175
|
}
|
|
45
|
-
|
|
176
|
+
/** Rebind an existing analytics session after the server authenticates a customer. */
|
|
177
|
+
refreshIdentity() {
|
|
178
|
+
if (typeof window === "undefined") return;
|
|
179
|
+
const session = this.sessions.current();
|
|
180
|
+
if (!session) return;
|
|
181
|
+
void this.bootstrapSession(session, true).catch(() => {
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/** A signed-out browser starts a fresh anonymous analytics session. */
|
|
185
|
+
resetSession() {
|
|
186
|
+
this.sessions.reset();
|
|
187
|
+
this.bootstrapRequest = null;
|
|
188
|
+
}
|
|
189
|
+
buildSessionPayload(session) {
|
|
46
190
|
const params = new URLSearchParams(window.location.search);
|
|
47
191
|
const utm = (key) => params.get(`utm_${key}`) || void 0;
|
|
48
192
|
const { visitorId, isNewVisitor } = resolveVisitor();
|
|
@@ -52,7 +196,8 @@ var ActivityService = class {
|
|
|
52
196
|
} catch {
|
|
53
197
|
}
|
|
54
198
|
return {
|
|
55
|
-
|
|
199
|
+
analytics_session_id: session.id,
|
|
200
|
+
started_at: session.startedAt,
|
|
56
201
|
landing_page: window.location.pathname,
|
|
57
202
|
landing_url: window.location.href,
|
|
58
203
|
referrer_url: document.referrer || void 0,
|
|
@@ -72,17 +217,28 @@ var ActivityService = class {
|
|
|
72
217
|
is_new_visitor: isNewVisitor
|
|
73
218
|
};
|
|
74
219
|
}
|
|
75
|
-
/** Product/category
|
|
220
|
+
/** Route-level page view. Product/category interactions are tracked separately. */
|
|
76
221
|
trackPageView(options = {}) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
222
|
+
if (typeof window === "undefined") return;
|
|
223
|
+
const pagePath = options.pagePath ?? currentPath() ?? "";
|
|
224
|
+
const transition = this.sessions.beginPage(pagePath);
|
|
225
|
+
const events = [];
|
|
226
|
+
if (transition.previousPage) {
|
|
227
|
+
events.push({
|
|
228
|
+
type: "page_duration",
|
|
229
|
+
page_path: transition.previousPage.path,
|
|
230
|
+
time_on_page: transition.previousPage.timeOnPageSeconds
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
events.push({
|
|
234
|
+
type: "page_view",
|
|
235
|
+
page_path: pagePath,
|
|
236
|
+
page_title: options.pageTitle ?? currentTitle()
|
|
237
|
+
});
|
|
238
|
+
this.sendEvents(events, transition.session);
|
|
84
239
|
}
|
|
85
240
|
trackProductView(productId, options = {}) {
|
|
241
|
+
if (typeof window === "undefined") return;
|
|
86
242
|
const event = {
|
|
87
243
|
type: "product_view",
|
|
88
244
|
product_id: productId,
|
|
@@ -94,6 +250,7 @@ var ActivityService = class {
|
|
|
94
250
|
this.sendEvents([event]);
|
|
95
251
|
}
|
|
96
252
|
trackCategoryView(categoryId, options = {}) {
|
|
253
|
+
if (typeof window === "undefined") return;
|
|
97
254
|
const event = {
|
|
98
255
|
type: "category_view",
|
|
99
256
|
category_id: categoryId,
|
|
@@ -149,11 +306,34 @@ var ActivityService = class {
|
|
|
149
306
|
window.removeEventListener("popstate", record);
|
|
150
307
|
};
|
|
151
308
|
}
|
|
152
|
-
sendEvents(events) {
|
|
153
|
-
|
|
154
|
-
this.
|
|
309
|
+
sendEvents(events, session) {
|
|
310
|
+
if (typeof window === "undefined") return;
|
|
311
|
+
void this.postEvents(events, session ?? this.sessions.beginEvent()).catch(() => {
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
async postEvents(events, session) {
|
|
315
|
+
await this.bootstrapSession(session);
|
|
316
|
+
await this.client.post("/api/v1/activity/events", {
|
|
317
|
+
analytics_session_id: session.id,
|
|
318
|
+
occurred_at: session.occurredAt,
|
|
319
|
+
events
|
|
155
320
|
});
|
|
156
321
|
}
|
|
322
|
+
bootstrapSession(session, force = false) {
|
|
323
|
+
if (!force && !session.requiresBootstrap) return Promise.resolve();
|
|
324
|
+
if (!force && this.bootstrapRequest?.sessionId === session.id) {
|
|
325
|
+
return this.bootstrapRequest.promise;
|
|
326
|
+
}
|
|
327
|
+
const promise = this.client.post("/api/v1/activity/session", this.buildSessionPayload(session)).then(() => {
|
|
328
|
+
this.sessions.markBootstrapped(session.id);
|
|
329
|
+
}).finally(() => {
|
|
330
|
+
if (this.bootstrapRequest?.promise === promise) {
|
|
331
|
+
this.bootstrapRequest = null;
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
this.bootstrapRequest = { sessionId: session.id, promise };
|
|
335
|
+
return promise;
|
|
336
|
+
}
|
|
157
337
|
};
|
|
158
338
|
function currentPath() {
|
|
159
339
|
if (typeof window !== "undefined") {
|
|
@@ -322,18 +502,19 @@ var DeliveryService = class {
|
|
|
322
502
|
params.set("dropoff_lat", String(dropoffLat));
|
|
323
503
|
params.set("dropoff_lng", String(dropoffLng));
|
|
324
504
|
if (country) params.set("country", country);
|
|
325
|
-
return safe(
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
505
|
+
return safe(this.client.get(`/api/v1/delivery/fee?${params.toString()}`));
|
|
506
|
+
}
|
|
507
|
+
async getOptions(queryOrLatitude, longitude, legacyOptions) {
|
|
508
|
+
const query = typeof queryOrLatitude === "number" ? {
|
|
509
|
+
...legacyOptions,
|
|
510
|
+
dropoffLat: queryOrLatitude,
|
|
511
|
+
dropoffLng: longitude
|
|
512
|
+
} : queryOrLatitude ?? {};
|
|
332
513
|
const params = new URLSearchParams();
|
|
333
|
-
params.set("dropoff_lat", String(dropoffLat));
|
|
334
|
-
params.set("dropoff_lng", String(dropoffLng));
|
|
335
|
-
if (
|
|
336
|
-
if (
|
|
514
|
+
if (query.dropoffLat != null) params.set("dropoff_lat", String(query.dropoffLat));
|
|
515
|
+
if (query.dropoffLng != null) params.set("dropoff_lng", String(query.dropoffLng));
|
|
516
|
+
if (query.country) params.set("country", query.country);
|
|
517
|
+
if (query.orderValue != null) params.set("order_value", String(query.orderValue));
|
|
337
518
|
return safe(
|
|
338
519
|
this.client.get(`/api/v1/delivery/options?${params.toString()}`)
|
|
339
520
|
);
|
|
@@ -759,6 +940,7 @@ var CimplifyClient = class {
|
|
|
759
940
|
clearSession() {
|
|
760
941
|
const previous = this.accessToken;
|
|
761
942
|
this.accessToken = null;
|
|
943
|
+
this._activity?.resetSession();
|
|
762
944
|
this.sessionToken = null;
|
|
763
945
|
this.sessionEpoch++;
|
|
764
946
|
try {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { af as CimplifyClient } from './client-
|
|
2
|
-
import { A as AppHandle, C as CreateAppOptions } from './server-
|
|
1
|
+
import { af as CimplifyClient } from './client-Bx4NRdl8.mjs';
|
|
2
|
+
import { A as AppHandle, C as CreateAppOptions } from './server-BRJ61o2J.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Test client + fixtures.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { V as CimplifyError, S as Category, aZ as Product, f as AddOnWithOptions, aQ as Pagination, bb as ProductWithDetails, b9 as ProductVariant, bF as VariantAxis, bG as VariantAxisSelection, A as AddOn, W as Collection, G as BundleSummary, u as Bundle, a3 as Composite, a1 as ComponentSelectionInput, a8 as CompositePriceResult, ad as CurrencyCode, U as ChosenPrice, bi as SaleInfo, b6 as ProductTaxonomy, bx as TaxonomyWithChildren, ax as EligiblePlansQuery, b1 as ProductBillingPlan, b7 as ProductTimeProfile, b0 as ProductAvailabilityNow, aj as Deal, b2 as ProductDealInfo, ap as DiscountValidation, bu as TagsResponse, ae as CustomAttributeDefinition, af as CustomAttributeValue, bc as PropertyFacet, bw as TaxonomyAttributeTemplate, aJ as KnowledgeArticle, by as UICart, L as CartItem, Q as CartSummary, g as AddToCartInput, N as CartMutationResult, bE as UpdateCartItemInput, ao as DiscountDetails, aO as Money, aK as LineConfiguration, bL as VariantDetails, bM as VariantDetailsDTO, a as AddOnDetails, d as AddOnOptionDetails, b as AddOnGroupDetails, D as BundleSelectionData, aa as CompositeSelectionData, ag as CustomerInputValue, bS as components, bk as SchedulingMode, av as DurationUnit, bo as Subscription, bs as SubscriptionWithDetails } from './product-
|
|
2
|
-
import { a as AuthorizationType, c as PaymentMethod, I as InitializePaymentResult, S as SubmitAuthorizationInput, i as PaymentStatusResponse } from './payment-
|
|
1
|
+
import { V as CimplifyError, S as Category, aZ as Product, f as AddOnWithOptions, aQ as Pagination, bb as ProductWithDetails, b9 as ProductVariant, bF as VariantAxis, bG as VariantAxisSelection, A as AddOn, W as Collection, G as BundleSummary, u as Bundle, a3 as Composite, a1 as ComponentSelectionInput, a8 as CompositePriceResult, ad as CurrencyCode, U as ChosenPrice, bi as SaleInfo, b6 as ProductTaxonomy, bx as TaxonomyWithChildren, ax as EligiblePlansQuery, b1 as ProductBillingPlan, b7 as ProductTimeProfile, b0 as ProductAvailabilityNow, aj as Deal, b2 as ProductDealInfo, ap as DiscountValidation, bu as TagsResponse, ae as CustomAttributeDefinition, af as CustomAttributeValue, bc as PropertyFacet, bw as TaxonomyAttributeTemplate, aJ as KnowledgeArticle, by as UICart, L as CartItem, Q as CartSummary, g as AddToCartInput, N as CartMutationResult, bE as UpdateCartItemInput, ao as DiscountDetails, aO as Money, aK as LineConfiguration, bL as VariantDetails, bM as VariantDetailsDTO, a as AddOnDetails, d as AddOnOptionDetails, b as AddOnGroupDetails, D as BundleSelectionData, aa as CompositeSelectionData, ag as CustomerInputValue, bS as components, bk as SchedulingMode, av as DurationUnit, bo as Subscription, bs as SubscriptionWithDetails } from './product-CeV8euw4.js';
|
|
2
|
+
import { a as AuthorizationType, c as PaymentMethod, I as InitializePaymentResult, S as SubmitAuthorizationInput, i as PaymentStatusResponse } from './payment-jK8ztICx.js';
|
|
3
3
|
|
|
4
4
|
interface RequestContext {
|
|
5
5
|
method: "GET" | "POST" | "PATCH" | "DELETE";
|
|
@@ -733,19 +733,19 @@ interface LocationBooking {
|
|
|
733
733
|
assigned_resources: string[];
|
|
734
734
|
service_status: ServiceStatus;
|
|
735
735
|
}
|
|
736
|
-
type ProviderResolutionSource = "zone" | "hint" | "fallback" | "best_price";
|
|
736
|
+
type ProviderResolutionSource = "zone" | "hint" | "fallback" | "rate" | "best_price";
|
|
737
737
|
interface DeliveryFeeDetails {
|
|
738
|
-
zone_id
|
|
739
|
-
zone_name
|
|
738
|
+
zone_id?: string;
|
|
739
|
+
zone_name?: string;
|
|
740
740
|
provider: string;
|
|
741
741
|
provider_resolved_from: ProviderResolutionSource;
|
|
742
742
|
/** Named rate this fee was priced under, if any. */
|
|
743
743
|
rate_id?: string;
|
|
744
744
|
rate_name?: string;
|
|
745
|
-
distance_km
|
|
746
|
-
base_fee
|
|
747
|
-
per_km_fee
|
|
748
|
-
surge_multiplier
|
|
745
|
+
distance_km?: Money;
|
|
746
|
+
base_fee?: Money;
|
|
747
|
+
per_km_fee?: Money;
|
|
748
|
+
surge_multiplier?: Money;
|
|
749
749
|
calculated_fee: Money;
|
|
750
750
|
currency: string;
|
|
751
751
|
free_delivery_applied?: boolean;
|
|
@@ -1219,6 +1219,9 @@ interface CheckoutCartData {
|
|
|
1219
1219
|
tax_amount: string;
|
|
1220
1220
|
total_discounts: string;
|
|
1221
1221
|
service_charge: string;
|
|
1222
|
+
/** Server-quoted delivery fee selected in checkout. The cart total excludes
|
|
1223
|
+
* this value until checkout has a delivery address and rate. */
|
|
1224
|
+
delivery_fee?: string;
|
|
1222
1225
|
total: string;
|
|
1223
1226
|
currency: string;
|
|
1224
1227
|
/** Tax is baked into the prices (e.g. Ghana VAT), so `tax_amount` is already
|
|
@@ -2415,14 +2418,21 @@ interface DismissMessageResponse {
|
|
|
2415
2418
|
}
|
|
2416
2419
|
declare class ActivityService {
|
|
2417
2420
|
private client;
|
|
2421
|
+
private readonly sessions;
|
|
2422
|
+
private bootstrapRequest;
|
|
2418
2423
|
constructor(client: CimplifyClient);
|
|
2419
2424
|
/**
|
|
2420
2425
|
* Record session start (landing, referrer, UTM, device). Fire-and-forget,
|
|
2421
|
-
* at most once per
|
|
2426
|
+
* at most once per 30-minute-idle analytics session; called automatically
|
|
2427
|
+
* by the track* methods.
|
|
2422
2428
|
*/
|
|
2423
2429
|
startSession(): void;
|
|
2430
|
+
/** Rebind an existing analytics session after the server authenticates a customer. */
|
|
2431
|
+
refreshIdentity(): void;
|
|
2432
|
+
/** A signed-out browser starts a fresh anonymous analytics session. */
|
|
2433
|
+
resetSession(): void;
|
|
2424
2434
|
private buildSessionPayload;
|
|
2425
|
-
/** Product/category
|
|
2435
|
+
/** Route-level page view. Product/category interactions are tracked separately. */
|
|
2426
2436
|
trackPageView(options?: TrackPageViewOptions): void;
|
|
2427
2437
|
trackProductView(productId: string, options?: TrackProductViewOptions): void;
|
|
2428
2438
|
trackCategoryView(categoryId: string, options?: TrackCategoryViewOptions): void;
|
|
@@ -2435,6 +2445,8 @@ declare class ActivityService {
|
|
|
2435
2445
|
/** Records a page view now and on every route change; returns a stop fn. */
|
|
2436
2446
|
autoTrackPageViews(): () => void;
|
|
2437
2447
|
private sendEvents;
|
|
2448
|
+
private postEvents;
|
|
2449
|
+
private bootstrapSession;
|
|
2438
2450
|
}
|
|
2439
2451
|
|
|
2440
2452
|
interface IdempotencyOption$2 {
|
|
@@ -2514,8 +2526,8 @@ interface DeliveryFeeResponse {
|
|
|
2514
2526
|
currency: string | null;
|
|
2515
2527
|
details: DeliveryFeeDetails | null;
|
|
2516
2528
|
}
|
|
2517
|
-
/** One entry on the delivery menu
|
|
2518
|
-
*
|
|
2529
|
+
/** One entry on the delivery menu — a merchant-named rate ("Standard",
|
|
2530
|
+
* "Express", "Outside Accra") priced for the address when required, or the
|
|
2519
2531
|
* synthesized default when the business has no named rates (`rate_id: null`). */
|
|
2520
2532
|
interface DeliveryOption {
|
|
2521
2533
|
rate_id: string | null;
|
|
@@ -2542,12 +2554,20 @@ interface GetDeliveryOptionsParams {
|
|
|
2542
2554
|
/** Cart goods total — drives free-over thresholds and zone minimums. */
|
|
2543
2555
|
orderValue?: Money;
|
|
2544
2556
|
}
|
|
2557
|
+
type DeliveryOptionsQuery = GetDeliveryOptionsParams & ({
|
|
2558
|
+
dropoffLat: number;
|
|
2559
|
+
dropoffLng: number;
|
|
2560
|
+
} | {
|
|
2561
|
+
dropoffLat?: never;
|
|
2562
|
+
dropoffLng?: never;
|
|
2563
|
+
});
|
|
2545
2564
|
declare class DeliveryService {
|
|
2546
2565
|
private client;
|
|
2547
2566
|
constructor(client: CimplifyClient);
|
|
2548
2567
|
getFee(dropoffLat: number, dropoffLng: number, country?: string): Promise<Result<DeliveryFeeResponse, CimplifyError>>;
|
|
2549
2568
|
/** The full delivery menu for an address. Pass the selected option's
|
|
2550
2569
|
* `rate_id` as `delivery_rate_id` when processing checkout. */
|
|
2570
|
+
getOptions(query?: DeliveryOptionsQuery): Promise<Result<DeliveryOptionsResponse, CimplifyError>>;
|
|
2551
2571
|
getOptions(dropoffLat: number, dropoffLng: number, opts?: GetDeliveryOptionsParams): Promise<Result<DeliveryOptionsResponse, CimplifyError>>;
|
|
2552
2572
|
}
|
|
2553
2573
|
|
|
@@ -2961,4 +2981,4 @@ declare class CimplifyClient {
|
|
|
2961
2981
|
}
|
|
2962
2982
|
declare function createCimplifyClient(config?: CimplifyConfig): CimplifyClient;
|
|
2963
2983
|
|
|
2964
|
-
export { type CheckSlotAvailabilityInput as $, AUTHORIZATION_TYPE as A, type Booking as B, BusinessService as C, type BusinessSettings as D, type BusinessWithLocations as E, CHECKOUT_MODE as F, CHECKOUT_MUTATION as G, CHECKOUT_STEP as H, CONTACT_TYPE as I, type CacheOptions as J, type CancelBookingInput as K, type CancelBookingResult as L, type CancelOrderInput as M, type CancellationPolicy as N, CartOperations as O, CatalogueQueries as P, type CatalogueResult as Q, type CatalogueSnapshot as R, type CategoryInfo as S, type ChatAttachment as T, type ChatConversation as U, type ChatConversationResponse as V, type ChatMessage as W, type ChatReplyCard as X, type ChatReplyContext as Y, type ChatUploadAttachment as Z, type ChatWidgetStarter as _, AUTH_MUTATION as a, type
|
|
2984
|
+
export { type CheckSlotAvailabilityInput as $, AUTHORIZATION_TYPE as A, type Booking as B, BusinessService as C, type BusinessSettings as D, type BusinessWithLocations as E, CHECKOUT_MODE as F, CHECKOUT_MUTATION as G, CHECKOUT_STEP as H, CONTACT_TYPE as I, type CacheOptions as J, type CancelBookingInput as K, type CancelBookingResult as L, type CancelOrderInput as M, type CancellationPolicy as N, CartOperations as O, CatalogueQueries as P, type CatalogueResult as Q, type CatalogueSnapshot as R, type CategoryInfo as S, type ChatAttachment as T, type ChatConversation as U, type ChatConversationResponse as V, type ChatMessage as W, type ChatReplyCard as X, type ChatReplyContext as Y, type ChatUploadAttachment as Z, type ChatWidgetStarter as _, AUTH_MUTATION as a, type EnrichedOrderItem as a$, type CheckSlotAvailabilityResult as a0, type CheckoutAddressInfo as a1, type CheckoutCartData as a2, type CheckoutCartItem as a3, type CheckoutCustomerInfo as a4, type CheckoutFormData as a5, type CheckoutInput as a6, type CheckoutMode as a7, type CheckoutOrderType as a8, type CheckoutPaymentMethod as a9, type DeliveryFeeResponse as aA, type DeliveryOption as aB, type DeliveryOptionsQuery as aC, type DeliveryOptionsResponse as aD, DeliveryService as aE, type DepositResult as aF, type DeviceType as aG, type DismissMessageResponse as aH, ELEMENTS_AUTH_CONTACT_TYPES as aI, ELEMENTS_AUTH_MODES as aJ, ELEMENTS_AUTH_PROMPTS as aK, ELEMENT_TYPES as aL, EVENT_TYPES as aM, type ElementAppearance as aN, type ElementEventHandler as aO, type ElementEventType as aP, type ElementOptions as aQ, type ElementType as aR, type ElementsAuthContactType as aS, type ElementsAuthMode as aT, type ElementsAuthOptions as aU, type ElementsAuthPrompt as aV, type ElementsCheckoutData as aW, type ElementsCheckoutResult as aX, type ElementsCustomerInfo as aY, type ElementsOptions as aZ, type EnrichedOrder as a_, type CheckoutResult as aa, CheckoutService as ab, type CheckoutStatus as ac, type CheckoutStatusContext as ad, type CheckoutStep as ae, CimplifyClient as af, type CimplifyConfig as ag, CimplifyElement as ah, CimplifyElements as ai, type ClaimConversationResult as aj, type ContactType as ak, type ContentType as al, type CreateAddressInput as am, type CreateMobileMoneyInput as an, type Customer as ao, type CustomerAddress as ap, type CustomerBooking as aq, type CustomerBookingServiceItem as ar, type CustomerLinkPreferences as as, type CustomerMobileMoney as at, type CustomerServicePreferences as au, DEFAULT_COUNTRY as av, DEFAULT_CURRENCY as aw, DEVICE_TYPE as ax, type DayAvailability as ay, type DeliveryFeeDetails as az, type AbortablePromise as b, type OrderGroupStatus as b$, type EnrollAndLinkOrderInput as b0, type EnrollAndLinkOrderResult as b1, type EnrollmentData as b2, type Err as b3, type FeeBearerType as b4, type FetchQuoteInput as b5, type FulfillmentLink as b6, type FulfillmentStatus as b7, type FulfillmentSummaryDTO as b8, type FulfillmentType as b9, type Location as bA, type LocationBooking as bB, type LocationTaxBehavior as bC, type LocationTaxOverrides as bD, type LocationTimeProfile as bE, type LocationWithDetails as bF, MESSAGE_TYPES as bG, MOBILE_MONEY_PROVIDER as bH, type MobileMoneyData as bI, type MobileMoneyDetails as bJ, type MobileMoneyProvider as bK, type NextAction as bL, ORDER_MUTATION as bM, ORDER_TYPE as bN, type ObservabilityHooks as bO, type Ok as bP, type Order as bQ, type OrderCustomerInfo as bR, type OrderDiscountInfo as bS, type OrderFilter as bT, type OrderFulfillmentSummary as bU, type OrderGroup as bV, type OrderGroupDetails as bW, type OrderGroupPayment as bX, type OrderGroupPaymentState as bY, type OrderGroupPaymentStatus as bZ, type OrderGroupPaymentSummary as b_, type FxQuote as ba, type FxQuoteRequest as bb, type FxQuoteStatus as bc, type FxRateResponse as bd, FxService as be, type GetAvailableSlotsInput as bf, type GetDeliveryOptionsParams as bg, type GetOrdersOptions as bh, type GetProductsOptions as bi, type GroupOrderInfo as bj, type IframeToParentMessage as bk, InventoryService as bl, LINK_MUTATION as bm, LINK_QUERY as bn, type LifecyclePhase as bo, type LineItem as bp, type LineType as bq, type LinkData as br, type LinkEnrollResult as bs, LinkService as bt, type LinkSession as bu, type LinkStatusResult as bv, type LiteBootstrap as bw, type LiteDayHours as bx, type LiteHoursRange as by, LiteService as bz, type ActivityRecommendation as c, type RetryEvent as c$, type OrderHistory as c0, type OrderLineState as c1, type OrderLineStatus as c2, type OrderLocationInfo as c3, type OrderPaymentEvent as c4, type OrderPricingView as c5, OrderQueries as c6, type OrderSplitDetail as c7, type OrderStaffInfo as c8, type OrderStatus as c9, type QuoteDynamicBuckets as cA, type QuoteStatus as cB, type QuoteUiMessage as cC, type ReadRequestOptions as cD, type RefreshQuoteInput as cE, type RefreshQuoteResult as cF, type RefundOrderInput as cG, type RelatedCandidate as cH, type RelatedProduct as cI, type RelatedProductsEnrichment as cJ, type RelationType as cK, type ReminderMethod as cL, type ReminderSettings as cM, type ReorderResult as cN, type RequestContext as cO, type RequestErrorEvent as cP, type RequestOptions as cQ, type RequestOtpInput as cR, type RequestSource as cS, type RequestStartEvent as cT, type RequestSuccessEvent as cU, type RescheduleBookingInput as cV, type RescheduleBookingResult as cW, type RescheduleHistoryRecord as cX, type ResourceAssignment as cY, type ResourceInfo as cZ, type Result as c_, type OrderTimestampsDTO as ca, type OrderType as cb, type Origin as cc, type OriginActor as cd, type OriginChannel as ce, type OtpResult as cf, PAYMENT_METHOD as cg, PAYMENT_MUTATION as ch, PAYMENT_STATE as ci, PICKUP_TIME_TYPE as cj, type ParentToIframeMessage as ck, type PaymentInfoDTO as cl, type PaymentMethodInfo as cm, type PaymentState as cn, type PickupTime as co, type PickupTimeType as cp, type PlaceDetailsResponse as cq, PlacesService as cr, type PriceQuote as cs, type PricingOverrides as ct, type ProcessAndResolveOptions as cu, type ProcessCheckoutOptions as cv, type ProcessCheckoutResult as cw, type ProviderResolutionSource as cx, type QuoteBundleSelectionInput as cy, type QuoteCompositeSelectionInput as cz, type ActivityRecommendationsResponse as d, type RevokeAllSessionsResult as d0, type RevokeSessionResult as d1, type Room as d2, type SchedulingMetadata as d3, type SchedulingResult as d4, SchedulingService as d5, type SenderType as d6, type Service as d7, type ServiceAvailabilityParams as d8, type ServiceAvailabilityResult as d9, type TrackProductViewOptions as dA, type UpdateAddressInput as dB, type UpdateOrderStatusInput as dC, type UpdateProfileInput as dD, type UploadInitResponse as dE, type UploadResult as dF, UploadService as dG, type VerifyOtpInput as dH, combine as dI, combineObject as dJ, createCimplifyClient as dK, createElements as dL, err as dM, flatMap as dN, fromPromise as dO, getOrElse as dP, isErr as dQ, isOk as dR, mapError as dS, mapResult as dT, ok as dU, toNullable as dV, tryCatch as dW, unwrap as dX, type ServiceCharge as da, type ServiceNotes as db, type ServiceScheduleRequest as dc, type ServiceStatus as dd, type SessionActivityData as de, type SessionChangeEvent as df, type SessionMessage as dg, type SlotResourceInfo as dh, type SlotStaffInfo as di, type Staff as dj, type StaffAssignment as dk, type StaffRole as dl, type StaffScheduleItem as dm, type StockLevel as dn, type StockStatus as dp, type StoreCreditBalance as dq, StoreCreditQueries as dr, type StorefrontBootstrap as ds, SubscriptionService as dt, SupportService as du, type Table as dv, type TimeRange as dw, type TimeRanges as dx, type TimeSlot as dy, type TrackCategoryViewOptions as dz, ActivityService as e, type ActivityStateResponse as f, type AddressData as g, type AddressInfo as h, type AmountToPay as i, type AuthResponse as j, AuthService as k, type AuthStatus as l, type AuthenticatedCustomer as m, type AuthenticatedData as n, type AutocompletePrediction as o, type AutocompleteResponse as p, type AvailabilityResult as q, type AvailableSlot as r, type BookingModificationType as s, type BookingStatus as t, type BookingWithDetails as u, type BufferTimes as v, type Business as w, type BusinessDetailsDTO as x, type BusinessHours as y, type BusinessPreferences as z };
|