@joai/sdk 5.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _$_joai_core0 from "@joai/core";
2
- import { Address, AddressCreatePayload, AddressInput, AddressType, AddressUpdatePayload, Affiliate, AffiliateTier, Agent, AgentActionHistoryEntry, AgentPrivate, AgentSettings, AiCostsResponse, Alert, ApiToken, AppEnv, AppIngestion, AppendKvEntryResult, AppointmentAvailability, AppointmentBooking, AppointmentPolicy, AppointmentRequest, Artifact, ArtifactCreatePayload, ArtifactDeliverPayload, ArtifactDelivery, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AuthUser, AuthUser as AuthUser$1, Automation, AutomationActionInput, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationStats, AutomationUpdatePayload, Blueprint, BlueprintSettings, BrandBackend, BrandSiteConfig, BrandSourceConfig, CalendarStatus, Campaign, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCreatePayload, CampaignRecipient, CampaignRecipientStatus, CampaignStats, CampaignUpdatePayload, Card, Cart, Cart as Cart$1, ChangelogEntry, Character, CheckoutSnapshot, CheckoutSnapshot as CheckoutSnapshot$1, CheckoutSnapshotRequest, CommissionAgreement, Configuration, Contact, ContactActivity, ContactCreatePayload, ContactFormData, ContactRelation, ContactRelationPayload, ContactRelationUpdatePayload, Content, ContentVersion, Contract, ContractCategoryName, ContractVersion, Coupon, CouponCondition, CouponRestrictedItem, CreateContentInput, CreateHookPayload, CreateHookPayload as CreateHookPayload$1, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, Document, EarnResponse, Element, ElementSpec, ElementVariation, EmbedStatus, Entity, Flow, Fulfillment, FulfillmentLocation, FulfillmentLocation as FulfillmentLocation$1, FulfillmentMethod, GamificationData, Goal, GoalCreatePayload, GuestBuyer, GuestBuyer as GuestBuyer$1, Hook, Hook as Hook$1, HookSample, HookSample as HookSample$1, HookTrigger, HookTriggerCondition, HookTriggerInput, IAppResponse, IHttpService, IRequestOptions, Inquiry, InquiryType, Integration, IntegrationType, Intent, Item, ItemCreatePayload, ItemUpdatePayload, JsonValue, KvEntryPayload, KvField, KvFieldWithEntries, Link, LinkCreatePayload, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LoyaltyAccount, LoyaltyMember, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyTier, LoyaltyTransaction, McpToolCall, Media, MediaAspectRatio, Meeting, MeetingJoinInfo, MeetingSpeakerAssignment, MeetingSummary, Memory, Message, MetricSource, MetricsResult, Mission, MissionCreatePayload, Notification, NotificationChannel, NotificationSetting, OfficeSnapshot, Order, Order as Order$1, OrderContext, OrderPriceMode, OrderPriceMode as OrderPriceMode$1, OrderStatus, OrderStatus as OrderStatus$1, OrderType, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, Plan, PlanFeature, Product, Product as Product$1, ProductRelation, ProductVariation, ProgramSettings, Project, ProjectExportResponse, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectStudioHistoryEntry, Proposal, ProposalAction, ProposalPollOption, PublicFormResults, PurchaseResult, RampProviderInfo, Reactions, RedeemResponse, Reminder, Return, ReturnStatus, Room, RoomKind, Segment, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, Service, SetKvEntryResult, ShippingRate, ShippingRate as ShippingRate$1, ShippingZone, Shortcut, Site, SiteBrand, Skill, SkillScopeValue, SocialAuthProvider, SocialBot, SocialPlatform, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPrivate, TeamUsage, TerminalConnectionToken, TerminalPaymentIntent, ToggleKvFieldResult, TranslatableValue, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeStatus, UserPrivate, UserRole, UserSettings, VolumePrice, WarpBackend, WarpBackendStatus, WarpExecutionBackend, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceInfo, XIntegrationStatus } from "@joai/core";
2
+ import { Address, AddressCreatePayload, AddressInput, AddressType, AddressUpdatePayload, Affiliate, AffiliateTier, Agent, AgentActionHistoryEntry, AgentPrivate, AgentSettings, AiCostsResponse, Alert, ApiToken, AppEnv, AppIngestion, AppendKvEntryResult, AppointmentAvailability, AppointmentBooking, AppointmentPolicy, AppointmentRequest, Artifact, ArtifactCreatePayload, ArtifactDeliverPayload, ArtifactDelivery, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AuthUser, AuthUser as AuthUser$1, Automation, AutomationActionInput, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationStats, AutomationUpdatePayload, Blueprint, BlueprintSettings, BrandBackend, BrandSiteConfig, BrandSourceConfig, CalendarStatus, Campaign, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCreatePayload, CampaignRecipient, CampaignRecipientStatus, CampaignStats, CampaignUpdatePayload, Card, Cart, Cart as Cart$1, ChangelogEntry, Character, CheckoutSnapshot, CheckoutSnapshot as CheckoutSnapshot$1, CheckoutSnapshotRequest, CommissionAgreement, Configuration, Contact, ContactActivity, ContactCreatePayload, ContactFormData, ContactRelation, ContactRelationPayload, ContactRelationUpdatePayload, Content, ContentVersion, Contract, ContractCategoryName, ContractVersion, Coupon, CouponCondition, CouponRestrictedItem, CreateContentInput, CreateHookPayload, CreateHookPayload as CreateHookPayload$1, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, Document, EarnResponse, Element, ElementSpec, ElementVariation, EmbedStatus, Entity, Flow, Fulfillment, FulfillmentLocation, FulfillmentLocation as FulfillmentLocation$1, FulfillmentMethod, GamificationData, Goal, GoalCreatePayload, GuestBuyer, GuestBuyer as GuestBuyer$1, Hook, Hook as Hook$1, HookSample, HookSample as HookSample$1, HookTrigger, HookTriggerCondition, HookTriggerInput, IAppResponse, IHttpService, IRequestOptions, Inquiry, InquiryType, Integration, IntegrationType, Intent, Item, ItemCreatePayload, ItemUpdatePayload, JsonValue, KvEntryPayload, KvField, KvFieldWithEntries, Link, LinkCreatePayload, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LoyaltyAccount, LoyaltyMember, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyTier, LoyaltyTransaction, McpToolCall, Media, MediaAspectRatio, Meeting, MeetingJoinInfo, MeetingSpeakerAssignment, MeetingSummary, Memory, Message, MetricSource, MetricsResult, Mission, MissionCreatePayload, Notification, NotificationChannel, NotificationSetting, OfficeSnapshot, Order, Order as Order$1, OrderContext, OrderPriceMode, OrderPriceMode as OrderPriceMode$1, OrderStatus, OrderStatus as OrderStatus$1, OrderType, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, Plan, PlanFeature, Product, Product as Product$1, ProductRelation, ProductVariation, ProgramSettings, Project, ProjectExportResponse, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectStudioHistoryEntry, Proposal, ProposalAction, ProposalPollOption, PublicFormResults, PurchaseResult, RampProviderInfo, Reactions, RedeemResponse, Reminder, Return, ReturnStatus, Room, RoomKind, Segment, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, Service, SetKvEntryResult, ShippingRate, ShippingRate as ShippingRate$1, ShippingZone, Shortcut, Site, SiteBrand, SiteType, Skill, SkillScopeValue, SocialAuthProvider, SocialBot, SocialPlatform, SocialPost, SocialPostConnection, SocialPostCreatePayload, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamPayout, TeamPayoutAddress, TeamPrivate, TeamUsage, TerminalConnectionToken, TerminalPaymentIntent, ToggleKvFieldResult, TranslatableValue, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeStatus, UserPrivate, UserRole, UserSettings, VolumePrice, WarpBackend, WarpBackendStatus, WarpExecutionBackend, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceInfo, XIntegrationStatus } from "@joai/core";
3
3
  import { WarpChainName, WarpClient, WarpLocale, WarpText, WarpWalletProvider } from "@joai/warps";
4
4
 
5
5
  //#region src/resources/agents.d.ts
@@ -187,6 +187,10 @@ type GuestCommerceStorageOptions = {
187
187
  namespace: string;
188
188
  maxOrders?: number;
189
189
  };
190
+ declare function buildGuestOrderReturnUrl(ordersPageUrl: string, orderId: string, accessToken: string): string;
191
+ declare function readGuestOrderReturnAccess(search: string | URLSearchParams): GuestOrderAccess | null;
192
+ declare function stripGuestOrderReturnToken(pathname: string, search: string | URLSearchParams): string;
193
+ type GuestCommerceStorage = ReturnType<typeof createGuestCommerceStorage>;
190
194
  declare function createGuestCommerceStorage(options: GuestCommerceStorageOptions): {
191
195
  saveCheckoutDraft<TCart>(draft: GuestCheckoutDraft<TCart>): void;
192
196
  readCheckoutDraft<TCart>(fallback: GuestCheckoutDraft<TCart>): GuestCheckoutDraft<TCart>;
@@ -195,7 +199,10 @@ declare function createGuestCommerceStorage(options: GuestCommerceStorageOptions
195
199
  accessToken
196
200
  }: GuestOrderAccess): void;
197
201
  readOrderAccess(orderId: string): string | null;
198
- listOrderAccess(): GuestOrderAccess[];
202
+ listOrderAccess(): GuestOrderAccess[]; /** Absolute shop URL from a path or full URL (e.g. orders page). */
203
+ shopUrl(ordersPage: string): string; /** Thank-you → shop handoff URL with capability token query params. */
204
+ orderReturnUrl(ordersPage: string, orderId: string, accessToken: string): string; /** Persist `order` + `orderAccessToken` from the shop handoff query, then strip the token. */
205
+ claimOrderReturn(): GuestOrderAccess | null;
199
206
  };
200
207
  //#endregion
201
208
  //#region src/commerce/guestCheckout.d.ts
@@ -279,7 +286,8 @@ type PlaceGuestCheckoutOrderResult = {
279
286
  *
280
287
  * When `pay` is enabled (default), `paymentUrl` is only set from a successful `orders.pay`
281
288
  * response. `order.paymentUrl` from create is the JoAi thank-you URL and must not be used
282
- * as a gateway redirect.
289
+ * as a gateway redirect. After payment, the thank-you page redirects to the team's shop
290
+ * site URL when one is configured (`sites.type = shop`).
283
291
  */
284
292
  declare function placeGuestCheckoutOrder(options: {
285
293
  client: GuestCheckoutClient;
@@ -1293,7 +1301,7 @@ declare class OrdersResource {
1293
1301
  pay(id: string, provider?: PaymentProvider, accessToken?: string): Promise<_$_joai_core0.IAppResponse<{
1294
1302
  url: string;
1295
1303
  }>>;
1296
- notify(id: string, type?: string): Promise<_$_joai_core0.IAppResponse<{
1304
+ notify(id: string, type?: string, agentId?: string): Promise<_$_joai_core0.IAppResponse<{
1297
1305
  message: string;
1298
1306
  }>>;
1299
1307
  }
@@ -1494,6 +1502,7 @@ declare class SitesResource {
1494
1502
  create(teamSlug: string, data: {
1495
1503
  name: string;
1496
1504
  url?: string | null;
1505
+ type?: SiteType;
1497
1506
  contactId?: string | null;
1498
1507
  metricsSource?: string | null;
1499
1508
  metricsResource?: string | null;
@@ -1510,6 +1519,7 @@ declare class SitesResource {
1510
1519
  modules?: string[];
1511
1520
  name?: string | null;
1512
1521
  url?: string | null;
1522
+ type?: SiteType;
1513
1523
  contactId?: string | null;
1514
1524
  metricsSource?: string | null;
1515
1525
  metricsResource?: string | null;
@@ -1826,6 +1836,23 @@ declare class UpdatesResource {
1826
1836
  stats(): Promise<_$_joai_core0.IAppResponse<UpdateStats>>;
1827
1837
  }
1828
1838
  //#endregion
1839
+ //#region src/resources/social-posts.d.ts
1840
+ declare class SocialPostsResource {
1841
+ private readonly http;
1842
+ constructor(http: IHttpService);
1843
+ connections(): Promise<_$_joai_core0.IAppResponse<SocialPostConnection[]>>;
1844
+ list(params?: {
1845
+ status?: SocialPostStatus;
1846
+ platform?: SocialPostPlatform;
1847
+ }): Promise<_$_joai_core0.IAppResponse<SocialPost[]>>;
1848
+ create(payload: SocialPostCreatePayload): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1849
+ update(id: string, payload: SocialPostUpdatePayload): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1850
+ schedule(id: string, scheduledAt?: string | null): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1851
+ cancel(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1852
+ retry(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
1853
+ delete(id: string): Promise<_$_joai_core0.IAppResponse<void>>;
1854
+ }
1855
+ //#endregion
1829
1856
  //#region src/resources/upgrades.d.ts
1830
1857
  declare class UpgradesResource {
1831
1858
  private readonly http;
@@ -2127,6 +2154,7 @@ declare class JoAiClient {
2127
2154
  readonly automations: AutomationsResource;
2128
2155
  readonly segments: SegmentsResource;
2129
2156
  readonly updates: UpdatesResource;
2157
+ readonly socialPosts: SocialPostsResource;
2130
2158
  readonly upgrades: UpgradesResource;
2131
2159
  readonly users: UsersResource;
2132
2160
  readonly voice: VoiceResource;
@@ -2204,4 +2232,4 @@ declare class DistributionResource {
2204
2232
  private fetchDistribution;
2205
2233
  }
2206
2234
  //#endregion
2207
- 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 GuestCheckoutCartItem, type GuestCheckoutClient, type GuestCheckoutDraft, GuestCheckoutError, type GuestCheckoutErrorCode, type GuestCheckoutSnapshotResult, type GuestCheckoutState, type GuestCommerceStorageOptions, type GuestOrderAccess, type Hook, type HookSample, type HookTrigger, type HookTriggerCondition, type HookTriggerInput, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, 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, SegmentsResource, ServicesResource, type ShippingRate, type ShippingRateInput, ShippingResource, type ShippingZoneInput, ShortcutsResource, SitesResource, SkillsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, type TeamInviteInfo, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, type WebHookTriggerEvent, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, sanitizePortalCallbackUrl, toGuestCheckoutDraft };
2235
+ 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 GuestCheckoutCartItem, type GuestCheckoutClient, type GuestCheckoutDraft, GuestCheckoutError, type GuestCheckoutErrorCode, type GuestCheckoutSnapshotResult, type GuestCheckoutState, type GuestCommerceStorage, type GuestCommerceStorageOptions, type GuestOrderAccess, type Hook, type HookSample, type HookTrigger, type HookTriggerCondition, type HookTriggerInput, HooksResource, IngestionsResource, InquiriesResource, IntegrationsResource, IntentsResource, 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, SegmentsResource, ServicesResource, type ShippingRate, type ShippingRateInput, ShippingResource, type ShippingZoneInput, ShortcutsResource, SitesResource, SkillsResource, SocialPostsResource, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, type TeamInviteInfo, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, type WebHookTriggerEvent, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft };
package/dist/index.mjs CHANGED
@@ -262,9 +262,41 @@ const readOrderList = (namespace) => {
262
262
  return [];
263
263
  }
264
264
  };
265
+ function buildGuestOrderReturnUrl(ordersPageUrl, orderId, accessToken) {
266
+ try {
267
+ const url = new URL(ordersPageUrl);
268
+ if (url.protocol !== "http:" && url.protocol !== "https:") return ordersPageUrl;
269
+ url.searchParams.set("order", orderId);
270
+ url.searchParams.set("orderAccessToken", accessToken);
271
+ return url.toString();
272
+ } catch {
273
+ return ordersPageUrl;
274
+ }
275
+ }
276
+ function readGuestOrderReturnAccess(search) {
277
+ const query = typeof search === "string" ? new URLSearchParams(search) : search;
278
+ const orderId = query.get("order");
279
+ const accessToken = query.get("orderAccessToken");
280
+ if (!orderId || !accessToken) return null;
281
+ return {
282
+ orderId,
283
+ accessToken
284
+ };
285
+ }
286
+ function stripGuestOrderReturnToken(pathname, search) {
287
+ const query = new URLSearchParams(typeof search === "string" ? search : search.toString());
288
+ query.delete("orderAccessToken");
289
+ const next = query.toString();
290
+ return `${pathname}${next ? `?${next}` : ""}`;
291
+ }
292
+ const absoluteOrdersPageUrl = (ordersPage) => {
293
+ if (/^https?:\/\//i.test(ordersPage)) return ordersPage;
294
+ const origin = typeof window !== "undefined" ? window.location.origin : "http://localhost";
295
+ return new URL(ordersPage, origin).toString();
296
+ };
265
297
  function createGuestCommerceStorage(options) {
266
298
  const maxOrders = options.maxOrders ?? 10;
267
- return {
299
+ const storage = {
268
300
  saveCheckoutDraft(draft) {
269
301
  safeSet(checkoutKey(options.namespace), JSON.stringify(draft));
270
302
  },
@@ -301,8 +333,26 @@ function createGuestCommerceStorage(options) {
301
333
  orderId: entry.orderId,
302
334
  accessToken: entry.accessToken || safeGet(orderAccessKey(options.namespace, entry.orderId))
303
335
  }));
336
+ },
337
+ /** Absolute shop URL from a path or full URL (e.g. orders page). */
338
+ shopUrl(ordersPage) {
339
+ return absoluteOrdersPageUrl(ordersPage);
340
+ },
341
+ /** Thank-you → shop handoff URL with capability token query params. */
342
+ orderReturnUrl(ordersPage, orderId, accessToken) {
343
+ return buildGuestOrderReturnUrl(absoluteOrdersPageUrl(ordersPage), orderId, accessToken);
344
+ },
345
+ /** Persist `order` + `orderAccessToken` from the shop handoff query, then strip the token. */
346
+ claimOrderReturn() {
347
+ if (typeof window === "undefined") return null;
348
+ const access = readGuestOrderReturnAccess(window.location.search);
349
+ if (!access?.accessToken) return null;
350
+ storage.saveOrderAccess(access);
351
+ window.history.replaceState({}, "", stripGuestOrderReturnToken(window.location.pathname, window.location.search));
352
+ return access;
304
353
  }
305
354
  };
355
+ return storage;
306
356
  }
307
357
  //#endregion
308
358
  //#region src/commerce/guestCheckout.ts
@@ -430,7 +480,8 @@ async function createGuestCheckoutSnapshot(options) {
430
480
  *
431
481
  * When `pay` is enabled (default), `paymentUrl` is only set from a successful `orders.pay`
432
482
  * response. `order.paymentUrl` from create is the JoAi thank-you URL and must not be used
433
- * as a gateway redirect.
483
+ * as a gateway redirect. After payment, the thank-you page redirects to the team's shop
484
+ * site URL when one is configured (`sites.type = shop`).
434
485
  */
435
486
  async function placeGuestCheckoutOrder(options) {
436
487
  if (!options.acceptedTerms) throw new GuestCheckoutError("terms_required");
@@ -1898,10 +1949,13 @@ var OrdersResource = class {
1898
1949
  return this.http.delete(`orders/${id}`);
1899
1950
  }
1900
1951
  pay(id, provider, accessToken) {
1901
- return this.http.post(`orders/${id}/pay`, provider ? { provider } : {}, orderAccessHeaders(accessToken));
1952
+ return this.http.post(`orders/${id}/pay`, { ...provider ? { provider } : {} }, orderAccessHeaders(accessToken));
1902
1953
  }
1903
- notify(id, type = "confirmation") {
1904
- return this.http.post(`orders/${id}/notify`, { type });
1954
+ notify(id, type = "confirmation", agentId) {
1955
+ return this.http.post(`orders/${id}/notify`, {
1956
+ type,
1957
+ ...agentId ? { agentId } : {}
1958
+ });
1905
1959
  }
1906
1960
  };
1907
1961
  //#endregion
@@ -2674,6 +2728,41 @@ var UpdatesResource = class {
2674
2728
  }
2675
2729
  };
2676
2730
  //#endregion
2731
+ //#region src/resources/social-posts.ts
2732
+ var SocialPostsResource = class {
2733
+ constructor(http) {
2734
+ this.http = http;
2735
+ }
2736
+ connections() {
2737
+ return this.http.get("social-posts/connections");
2738
+ }
2739
+ list(params) {
2740
+ const query = new URLSearchParams();
2741
+ if (params?.status) query.set("status", params.status);
2742
+ if (params?.platform) query.set("platform", params.platform);
2743
+ const qs = query.toString();
2744
+ return this.http.get(`social-posts${qs ? "?" + qs : ""}`);
2745
+ }
2746
+ create(payload) {
2747
+ return this.http.post("social-posts", payload);
2748
+ }
2749
+ update(id, payload) {
2750
+ return this.http.patch(`social-posts/${id}`, payload);
2751
+ }
2752
+ schedule(id, scheduledAt) {
2753
+ return this.http.post(`social-posts/${id}/schedule`, scheduledAt ? { scheduledAt } : {});
2754
+ }
2755
+ cancel(id) {
2756
+ return this.http.post(`social-posts/${id}/cancel`, {});
2757
+ }
2758
+ retry(id) {
2759
+ return this.http.post(`social-posts/${id}/retry`, {});
2760
+ }
2761
+ delete(id) {
2762
+ return this.http.delete(`social-posts/${id}`);
2763
+ }
2764
+ };
2765
+ //#endregion
2677
2766
  //#region src/resources/upgrades.ts
2678
2767
  var UpgradesResource = class {
2679
2768
  constructor(http) {
@@ -3209,6 +3298,7 @@ var JoAiClient = class {
3209
3298
  this.automations = new AutomationsResource(this.http);
3210
3299
  this.segments = new SegmentsResource(this.http);
3211
3300
  this.updates = new UpdatesResource(this.http);
3301
+ this.socialPosts = new SocialPostsResource(this.http);
3212
3302
  this.upgrades = new UpgradesResource(this.http);
3213
3303
  this.users = new UsersResource(this.http);
3214
3304
  this.voice = new VoiceResource(this.http);
@@ -3322,4 +3412,4 @@ var DistributionResource = class {
3322
3412
  }
3323
3413
  };
3324
3414
  //#endregion
3325
- 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, 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, StatsResource, StoreResource, SubscriptionsResource, SwarmsResource, TagsResource, TasksResource, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, sanitizePortalCallbackUrl, toGuestCheckoutDraft };
3415
+ 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, 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, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, isAllowedRedirectUrl, isGuestCheckoutError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joai/sdk",
3
- "version": "5.0.0",
3
+ "version": "6.0.0",
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.13.0",
38
+ "@joai/core": "^4.14.0",
39
39
  "@joai/warps": "*"
40
40
  },
41
41
  "peerDependencies": {
42
- "@joai/core": "^4.13.0"
42
+ "@joai/core": "^4.14.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "tsdown": "^0.21.0",