@joai/sdk 7.0.7 → 7.0.8
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 +30 -1
- package/dist/index.mjs +81 -13
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -249,6 +249,24 @@ declare function createGuestCommerceStorage(options: GuestCommerceStorageOptions
|
|
|
249
249
|
claimOrderReturn(): GuestOrderAccess | null;
|
|
250
250
|
};
|
|
251
251
|
//#endregion
|
|
252
|
+
//#region src/commerce/recentlyViewed.d.ts
|
|
253
|
+
type RecentlyViewedStorageOptions = {
|
|
254
|
+
/** Team slug or shop id — scopes storage per storefront. */namespace: string;
|
|
255
|
+
maxItems?: number;
|
|
256
|
+
};
|
|
257
|
+
type RecentlyViewedStorage = {
|
|
258
|
+
track: (slug: string) => void;
|
|
259
|
+
getSlugs: () => string[];
|
|
260
|
+
clear: () => void;
|
|
261
|
+
};
|
|
262
|
+
/**
|
|
263
|
+
* Persist recently viewed product slugs in localStorage (no PII).
|
|
264
|
+
* Newest first; duplicates move to the front; capped by maxItems.
|
|
265
|
+
*/
|
|
266
|
+
declare function createRecentlyViewedStorage(options: RecentlyViewedStorageOptions): RecentlyViewedStorage;
|
|
267
|
+
declare function trackRecentlyViewed(namespace: string, slug: string, maxItems?: number): void;
|
|
268
|
+
declare function getRecentlyViewedSlugs(namespace: string): string[];
|
|
269
|
+
//#endregion
|
|
252
270
|
//#region src/commerce/guestCheckout.d.ts
|
|
253
271
|
type GuestCheckoutCartItem = {
|
|
254
272
|
id: string;
|
|
@@ -1447,6 +1465,17 @@ declare class OrdersResource {
|
|
|
1447
1465
|
pay(id: string, provider?: PaymentProvider, accessToken?: string): Promise<_$_joai_core0.IAppResponse<{
|
|
1448
1466
|
url: string;
|
|
1449
1467
|
}>>;
|
|
1468
|
+
reorder(id: string): Promise<_$_joai_core0.IAppResponse<{
|
|
1469
|
+
added: Array<{
|
|
1470
|
+
id: string;
|
|
1471
|
+
name: string;
|
|
1472
|
+
quantity: number;
|
|
1473
|
+
}>;
|
|
1474
|
+
skipped: Array<{
|
|
1475
|
+
name: string;
|
|
1476
|
+
reason: string;
|
|
1477
|
+
}>;
|
|
1478
|
+
}>>;
|
|
1450
1479
|
notify(id: string, type: string | undefined, agentId: string): Promise<_$_joai_core0.IAppResponse<{
|
|
1451
1480
|
message: string;
|
|
1452
1481
|
}>>;
|
|
@@ -2388,4 +2417,4 @@ declare class DistributionResource {
|
|
|
2388
2417
|
private fetchDistribution;
|
|
2389
2418
|
}
|
|
2390
2419
|
//#endregion
|
|
2391
|
-
export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, type AttachedMedia, type AuthConfirmCodeRequest, type AuthConfirmCodeResponse, type AuthNativeSessionResponse, type AuthPortalSessionResponse, AuthResource, type AuthSendCodeRequest, type AuthUser, AutomationsResource, type BackendWarp, type BackendWarpBrand, BillingResource, BlueprintsResource, type CacheConfig, CachedHttpService, CampaignsResource, CardsResource, type Cart, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, type CheckoutSnapshot, CommerceResource, ContactsResource, ContentResource, ContractsResource, type CreateEmptyGuestCheckoutOptions, type CreateHookPayload, type CreateInboundHookPayload, type CreateInternalHookPayload, type CreateWarpLinkedHookPayload, type CreateWebHookPayload, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, type FulfillmentLocation, type FulfillmentLocationInput, FulfillmentsResource, GoalsResource, type GuestBuyer, type GuestCartAmounts, type GuestCheckoutCartItem, type GuestCheckoutClient, type GuestCheckoutDraft, GuestCheckoutError, type GuestCheckoutErrorCode, type GuestCheckoutSnapshotResult, type GuestCheckoutState, type GuestCommerceStorage, type GuestCommerceStorageOptions, type GuestCouponClient, GuestCouponError, type GuestCouponErrorCode, type GuestCouponPreview, type GuestOrderAccess, type Hook, type HookSample, type HookTrigger, type HookTriggerCondition, type HookTriggerInput, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, type ItemListParams, ItemsResource, JoAiClient, type JoAiClientConfig, KvResource, LinksResource, LoyaltyResource, McpResource, type MediaUploadType, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, type OpenPortalSessionOptions, type OpeningHoursEntry, type OpeningHoursFormatOptions, type Order, type OrderPriceMode, type OrderStatus, OrdersResource, PersonaResource, type PlaceCheckoutOrderRequest, type PlaceGuestCheckoutOrderResult, type Product, type ProductVariation, ProductsResource, ProjectsResource, RemindersResource, ReturnsResource, type RevalidateGuestCouponResult, SegmentsResource, ServicesResource, type ShippingRate, type ShippingRateInput, ShippingResource, type ShippingZoneInput, ShortcutsResource, SitesResource, SkillsResource, SocialPostsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, type TaxClassInput, TaxClassesResource, type TeamInviteInfo, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, type WebHookTriggerEvent, WorkspaceResource, assertGuestCheckoutReady, assertGuestPickupSlotReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, formatPickupSlotLabel, getAuthFragmentToken, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, validateGuestCoupon };
|
|
2420
|
+
export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, type AttachedMedia, type AuthConfirmCodeRequest, type AuthConfirmCodeResponse, type AuthNativeSessionResponse, type AuthPortalSessionResponse, AuthResource, type AuthSendCodeRequest, type AuthUser, AutomationsResource, type BackendWarp, type BackendWarpBrand, BillingResource, BlueprintsResource, type CacheConfig, CachedHttpService, CampaignsResource, CardsResource, type Cart, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, type CheckoutSnapshot, CommerceResource, ContactsResource, ContentResource, ContractsResource, type CreateEmptyGuestCheckoutOptions, type CreateHookPayload, type CreateInboundHookPayload, type CreateInternalHookPayload, type CreateWarpLinkedHookPayload, type CreateWebHookPayload, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, type FulfillmentLocation, type FulfillmentLocationInput, FulfillmentsResource, GoalsResource, type GuestBuyer, type GuestCartAmounts, type GuestCheckoutCartItem, type GuestCheckoutClient, type GuestCheckoutDraft, GuestCheckoutError, type GuestCheckoutErrorCode, type GuestCheckoutSnapshotResult, type GuestCheckoutState, type GuestCommerceStorage, type GuestCommerceStorageOptions, type GuestCouponClient, GuestCouponError, type GuestCouponErrorCode, type GuestCouponPreview, type GuestOrderAccess, type Hook, type HookSample, type HookTrigger, type HookTriggerCondition, type HookTriggerInput, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, type ItemListParams, ItemsResource, JoAiClient, type JoAiClientConfig, KvResource, LinksResource, LoyaltyResource, McpResource, type MediaUploadType, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, type OpenPortalSessionOptions, type OpeningHoursEntry, type OpeningHoursFormatOptions, type Order, type OrderPriceMode, type OrderStatus, OrdersResource, PersonaResource, type PlaceCheckoutOrderRequest, type PlaceGuestCheckoutOrderResult, type Product, type ProductVariation, ProductsResource, ProjectsResource, type RecentlyViewedStorage, type RecentlyViewedStorageOptions, RemindersResource, ReturnsResource, type RevalidateGuestCouponResult, SegmentsResource, ServicesResource, type ShippingRate, type ShippingRateInput, ShippingResource, type ShippingZoneInput, ShortcutsResource, SitesResource, SkillsResource, SocialPostsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, type TaxClassInput, TaxClassesResource, type TeamInviteInfo, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, type WebHookTriggerEvent, WorkspaceResource, assertGuestCheckoutReady, assertGuestPickupSlotReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, createRecentlyViewedStorage, formatOpeningHours, formatPickupSlotLabel, getAuthFragmentToken, getRecentlyViewedSlugs, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, trackRecentlyViewed, validateGuestCoupon };
|
package/dist/index.mjs
CHANGED
|
@@ -255,7 +255,7 @@ const orderAccessPrefix = "joai:order-access:";
|
|
|
255
255
|
const checkoutKey = (namespace) => `joai:guest-checkout:${namespace}`;
|
|
256
256
|
const ordersKey = (namespace) => `joai:guest-orders:${namespace}`;
|
|
257
257
|
const orderAccessKey = (namespace, orderId) => `${orderAccessPrefix}${namespace}:${orderId}`;
|
|
258
|
-
const safeGet = (key) => {
|
|
258
|
+
const safeGet$1 = (key) => {
|
|
259
259
|
if (typeof localStorage === "undefined") return null;
|
|
260
260
|
try {
|
|
261
261
|
return localStorage.getItem(key);
|
|
@@ -263,13 +263,13 @@ const safeGet = (key) => {
|
|
|
263
263
|
return null;
|
|
264
264
|
}
|
|
265
265
|
};
|
|
266
|
-
const safeSet = (key, value) => {
|
|
266
|
+
const safeSet$1 = (key, value) => {
|
|
267
267
|
if (typeof localStorage === "undefined") return;
|
|
268
268
|
try {
|
|
269
269
|
localStorage.setItem(key, value);
|
|
270
270
|
} catch {}
|
|
271
271
|
};
|
|
272
|
-
const safeRemove = (key) => {
|
|
272
|
+
const safeRemove$1 = (key) => {
|
|
273
273
|
if (typeof localStorage === "undefined") return;
|
|
274
274
|
try {
|
|
275
275
|
localStorage.removeItem(key);
|
|
@@ -287,7 +287,7 @@ const parseGuestOrderAccess = (entry) => {
|
|
|
287
287
|
};
|
|
288
288
|
const readOrderList = (namespace) => {
|
|
289
289
|
try {
|
|
290
|
-
const saved = JSON.parse(safeGet(ordersKey(namespace)) || "[]");
|
|
290
|
+
const saved = JSON.parse(safeGet$1(ordersKey(namespace)) || "[]");
|
|
291
291
|
if (!Array.isArray(saved)) return [];
|
|
292
292
|
return saved.map(parseGuestOrderAccess).filter((entry) => entry !== null);
|
|
293
293
|
} catch {
|
|
@@ -330,11 +330,11 @@ function createGuestCommerceStorage(options) {
|
|
|
330
330
|
const maxOrders = options.maxOrders ?? 10;
|
|
331
331
|
const storage = {
|
|
332
332
|
saveCheckoutDraft(draft) {
|
|
333
|
-
safeSet(checkoutKey(options.namespace), JSON.stringify(draft));
|
|
333
|
+
safeSet$1(checkoutKey(options.namespace), JSON.stringify(draft));
|
|
334
334
|
},
|
|
335
335
|
readCheckoutDraft(fallback) {
|
|
336
336
|
try {
|
|
337
|
-
const saved = JSON.parse(safeGet(checkoutKey(options.namespace)) || "");
|
|
337
|
+
const saved = JSON.parse(safeGet$1(checkoutKey(options.namespace)) || "");
|
|
338
338
|
return {
|
|
339
339
|
...fallback,
|
|
340
340
|
...saved,
|
|
@@ -346,24 +346,24 @@ function createGuestCommerceStorage(options) {
|
|
|
346
346
|
},
|
|
347
347
|
saveOrderAccess({ orderId, accessToken }) {
|
|
348
348
|
const key = orderAccessKey(options.namespace, orderId);
|
|
349
|
-
const resolvedToken = accessToken || safeGet(key);
|
|
350
|
-
if (resolvedToken) safeSet(key, resolvedToken);
|
|
349
|
+
const resolvedToken = accessToken || safeGet$1(key);
|
|
350
|
+
if (resolvedToken) safeSet$1(key, resolvedToken);
|
|
351
351
|
const orders = readOrderList(options.namespace).filter((entry) => entry.orderId !== orderId);
|
|
352
352
|
orders.unshift({
|
|
353
353
|
orderId,
|
|
354
354
|
accessToken: resolvedToken
|
|
355
355
|
});
|
|
356
356
|
const kept = orders.slice(0, maxOrders);
|
|
357
|
-
for (const dropped of orders.slice(maxOrders)) safeRemove(orderAccessKey(options.namespace, dropped.orderId));
|
|
358
|
-
safeSet(ordersKey(options.namespace), JSON.stringify(kept));
|
|
357
|
+
for (const dropped of orders.slice(maxOrders)) safeRemove$1(orderAccessKey(options.namespace, dropped.orderId));
|
|
358
|
+
safeSet$1(ordersKey(options.namespace), JSON.stringify(kept));
|
|
359
359
|
},
|
|
360
360
|
readOrderAccess(orderId) {
|
|
361
|
-
return safeGet(orderAccessKey(options.namespace, orderId));
|
|
361
|
+
return safeGet$1(orderAccessKey(options.namespace, orderId));
|
|
362
362
|
},
|
|
363
363
|
listOrderAccess() {
|
|
364
364
|
return readOrderList(options.namespace).map((entry) => ({
|
|
365
365
|
orderId: entry.orderId,
|
|
366
|
-
accessToken: entry.accessToken || safeGet(orderAccessKey(options.namespace, entry.orderId))
|
|
366
|
+
accessToken: entry.accessToken || safeGet$1(orderAccessKey(options.namespace, entry.orderId))
|
|
367
367
|
}));
|
|
368
368
|
},
|
|
369
369
|
/** Absolute shop URL from a path or full URL (e.g. orders page). */
|
|
@@ -387,6 +387,71 @@ function createGuestCommerceStorage(options) {
|
|
|
387
387
|
return storage;
|
|
388
388
|
}
|
|
389
389
|
//#endregion
|
|
390
|
+
//#region src/commerce/recentlyViewed.ts
|
|
391
|
+
const DEFAULT_MAX_ITEMS = 12;
|
|
392
|
+
const storageKey = (namespace) => `joai:recently-viewed:${namespace}`;
|
|
393
|
+
const safeGet = (key) => {
|
|
394
|
+
if (typeof localStorage === "undefined") return null;
|
|
395
|
+
try {
|
|
396
|
+
return localStorage.getItem(key);
|
|
397
|
+
} catch {
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
};
|
|
401
|
+
const safeSet = (key, value) => {
|
|
402
|
+
if (typeof localStorage === "undefined") return;
|
|
403
|
+
try {
|
|
404
|
+
localStorage.setItem(key, value);
|
|
405
|
+
} catch {}
|
|
406
|
+
};
|
|
407
|
+
const safeRemove = (key) => {
|
|
408
|
+
if (typeof localStorage === "undefined") return;
|
|
409
|
+
try {
|
|
410
|
+
localStorage.removeItem(key);
|
|
411
|
+
} catch {}
|
|
412
|
+
};
|
|
413
|
+
const parseSlugs = (raw) => {
|
|
414
|
+
if (!raw) return [];
|
|
415
|
+
try {
|
|
416
|
+
const parsed = JSON.parse(raw);
|
|
417
|
+
if (!Array.isArray(parsed)) return [];
|
|
418
|
+
return parsed.filter((item) => typeof item === "string" && item.length > 0);
|
|
419
|
+
} catch {
|
|
420
|
+
return [];
|
|
421
|
+
}
|
|
422
|
+
};
|
|
423
|
+
/**
|
|
424
|
+
* Persist recently viewed product slugs in localStorage (no PII).
|
|
425
|
+
* Newest first; duplicates move to the front; capped by maxItems.
|
|
426
|
+
*/
|
|
427
|
+
function createRecentlyViewedStorage(options) {
|
|
428
|
+
const key = storageKey(options.namespace);
|
|
429
|
+
const maxItems = options.maxItems ?? DEFAULT_MAX_ITEMS;
|
|
430
|
+
return {
|
|
431
|
+
track(slug) {
|
|
432
|
+
const normalized = slug.trim();
|
|
433
|
+
if (!normalized) return;
|
|
434
|
+
const updated = [normalized, ...parseSlugs(safeGet(key)).filter((item) => item !== normalized)].slice(0, maxItems);
|
|
435
|
+
safeSet(key, JSON.stringify(updated));
|
|
436
|
+
},
|
|
437
|
+
getSlugs() {
|
|
438
|
+
return parseSlugs(safeGet(key));
|
|
439
|
+
},
|
|
440
|
+
clear() {
|
|
441
|
+
safeRemove(key);
|
|
442
|
+
}
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
function trackRecentlyViewed(namespace, slug, maxItems) {
|
|
446
|
+
createRecentlyViewedStorage({
|
|
447
|
+
namespace,
|
|
448
|
+
maxItems
|
|
449
|
+
}).track(slug);
|
|
450
|
+
}
|
|
451
|
+
function getRecentlyViewedSlugs(namespace) {
|
|
452
|
+
return createRecentlyViewedStorage({ namespace }).getSlugs();
|
|
453
|
+
}
|
|
454
|
+
//#endregion
|
|
390
455
|
//#region src/commerce/guestCheckout.ts
|
|
391
456
|
var GuestCheckoutError = class extends Error {
|
|
392
457
|
constructor(code) {
|
|
@@ -2110,6 +2175,9 @@ var OrdersResource = class {
|
|
|
2110
2175
|
pay(id, provider, accessToken) {
|
|
2111
2176
|
return this.http.post(`orders/${id}/pay`, { ...provider ? { provider } : {} }, orderAccessHeaders(accessToken));
|
|
2112
2177
|
}
|
|
2178
|
+
reorder(id) {
|
|
2179
|
+
return this.http.post(`orders/${id}/reorder`);
|
|
2180
|
+
}
|
|
2113
2181
|
notify(id, type = "confirmation", agentId) {
|
|
2114
2182
|
return this.http.post(`orders/${id}/notify`, {
|
|
2115
2183
|
type,
|
|
@@ -3588,4 +3656,4 @@ var DistributionResource = class {
|
|
|
3588
3656
|
}
|
|
3589
3657
|
};
|
|
3590
3658
|
//#endregion
|
|
3591
|
-
export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, AuthResource, AutomationsResource, BillingResource, BlueprintsResource, CachedHttpService, CampaignsResource, CardsResource, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, CommerceResource, ContactsResource, ContentResource, ContractsResource, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, FulfillmentsResource, GoalsResource, GuestCheckoutError, GuestCouponError, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, ItemsResource, JoAiClient, KvResource, LinksResource, LoyaltyResource, McpResource, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, OrdersResource, PersonaResource, ProductsResource, ProjectsResource, RemindersResource, ReturnsResource, SegmentsResource, ServicesResource, ShippingResource, ShortcutsResource, SitesResource, SkillsResource, SocialPostsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, TaxClassesResource, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, WorkspaceResource, assertGuestCheckoutReady, assertGuestPickupSlotReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, formatPickupSlotLabel, getAuthFragmentToken, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, validateGuestCoupon };
|
|
3659
|
+
export { AddressesResource, AgentsResource, AlertsResource, ApiTokensResource, AppointmentsResource, AuthResource, AutomationsResource, BillingResource, BlueprintsResource, CachedHttpService, CampaignsResource, CardsResource, CartsResource, ChangelogResource, CharactersResource, CheckoutResource, CommerceResource, ContactsResource, ContentResource, ContractsResource, DeskResource, DistributionResource, DocumentsResource, ElementsResource, EntitiesResource, FlowsResource, FulfillmentsResource, GoalsResource, GuestCheckoutError, GuestCouponError, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, ItemsResource, JoAiClient, KvResource, LinksResource, LoyaltyResource, McpResource, MeetingsResource, MemoriesResource, MessagesResource, MetricsResource, MissionsResource, NotificationsResource, OfficeResource, OrdersResource, PersonaResource, ProductsResource, ProjectsResource, RemindersResource, ReturnsResource, SegmentsResource, ServicesResource, ShippingResource, ShortcutsResource, SitesResource, SkillsResource, SocialPostsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, TaxClassesResource, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, WorkspaceResource, assertGuestCheckoutReady, assertGuestPickupSlotReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, createRecentlyViewedStorage, formatOpeningHours, formatPickupSlotLabel, getAuthFragmentToken, getRecentlyViewedSlugs, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, trackRecentlyViewed, validateGuestCoupon };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joai/sdk",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.8",
|
|
4
4
|
"description": "JoAi public API SDK — build with your AI agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"test": "jest --config jest.config.js"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@joai/core": "^4.15.
|
|
38
|
+
"@joai/core": "^4.15.7",
|
|
39
39
|
"@joai/warps": "*"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@joai/core": "^4.15.
|
|
42
|
+
"@joai/core": "^4.15.7"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"tsdown": "^0.21.0",
|