@joai/sdk 7.0.3 → 7.0.5
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 +90 -6
- package/dist/index.mjs +108 -6
- package/package.json +3 -3
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, AgentTrustedActionRule, 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, SocialPostGenerateCaptionPayload, SocialPostGeneratedCaption, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamOrderStats, 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, AgentTrustedActionRule, 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, CartLine, 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, SharedSocialPost, ShippingRate, ShippingRate as ShippingRate$1, ShippingZone, Shortcut, Site, SiteBrand, SiteType, Skill, SkillScopeValue, SocialAuthProvider, SocialBot, SocialPlatform, SocialPost, SocialPostConnection, SocialPostCreatePayload, SocialPostGenerateCaptionPayload, SocialPostGeneratedCaption, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreData, StorePriceTier, StorePurchaseResult, Subscription, Swarm, Tag, TagType, Task, Team, TeamAccessConfig, TeamCategory, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureUsage, TeamMember, TeamMeta, TeamOrderStats, 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
|
|
@@ -322,6 +322,75 @@ declare function placeGuestCheckoutOrder(options: {
|
|
|
322
322
|
}): Promise<PlaceGuestCheckoutOrderResult>;
|
|
323
323
|
declare const isGuestCheckoutError: (error: unknown) => error is GuestCheckoutError;
|
|
324
324
|
//#endregion
|
|
325
|
+
//#region src/commerce/guestCoupon.d.ts
|
|
326
|
+
type GuestCouponPreview = {
|
|
327
|
+
code: string;
|
|
328
|
+
discount: number;
|
|
329
|
+
eligibleSubtotal: number;
|
|
330
|
+
};
|
|
331
|
+
type GuestCouponErrorCode = 'empty_code' | 'empty_cart' | 'invalid' | 'not_applicable';
|
|
332
|
+
declare class GuestCouponError extends Error {
|
|
333
|
+
readonly code: GuestCouponErrorCode;
|
|
334
|
+
/** Localized API message when present. */
|
|
335
|
+
readonly serverMessage?: string | undefined;
|
|
336
|
+
constructor(code: GuestCouponErrorCode, /** Localized API message when present. */
|
|
337
|
+
|
|
338
|
+
serverMessage?: string | undefined);
|
|
339
|
+
}
|
|
340
|
+
type GuestCouponClient = {
|
|
341
|
+
commerce: {
|
|
342
|
+
checkout: {
|
|
343
|
+
validateCoupon(team: string, data: {
|
|
344
|
+
couponCode: string;
|
|
345
|
+
items: GuestCheckoutCartItem[];
|
|
346
|
+
}): Promise<IAppResponse<GuestCouponPreview>>;
|
|
347
|
+
};
|
|
348
|
+
};
|
|
349
|
+
};
|
|
350
|
+
/** First `couponCode` validation message from an API error payload. */
|
|
351
|
+
declare const guestCouponMessageFromErrors: (errors: unknown) => string | undefined;
|
|
352
|
+
declare const isGuestCouponError: (error: unknown) => error is GuestCouponError;
|
|
353
|
+
type GuestCartAmounts = {
|
|
354
|
+
subtotal: number;
|
|
355
|
+
discount: number;
|
|
356
|
+
total: number;
|
|
357
|
+
};
|
|
358
|
+
/**
|
|
359
|
+
* Merchandise subtotal, coupon discount, and payable total (cents) for a guest cart.
|
|
360
|
+
* Pass the validated preview (or null) so discount and total stay in sync.
|
|
361
|
+
*/
|
|
362
|
+
declare const guestCartAmounts: <T extends CartLine>(cart: T[], preview?: GuestCouponPreview | null) => GuestCartAmounts;
|
|
363
|
+
/**
|
|
364
|
+
* Validates a guest coupon against cart lines. Throws {@link GuestCouponError} when the
|
|
365
|
+
* code is empty, the cart is empty, the API rejects it, or the preview discount is ≤ 0
|
|
366
|
+
* (never treat a no-effect coupon as applied).
|
|
367
|
+
*/
|
|
368
|
+
declare function validateGuestCoupon(options: {
|
|
369
|
+
client: GuestCouponClient;
|
|
370
|
+
team: string;
|
|
371
|
+
couponCode: string;
|
|
372
|
+
items: GuestCheckoutCartItem[];
|
|
373
|
+
}): Promise<GuestCouponPreview>;
|
|
374
|
+
type RevalidateGuestCouponResult = {
|
|
375
|
+
status: 'none';
|
|
376
|
+
} | {
|
|
377
|
+
status: 'applied';
|
|
378
|
+
preview: GuestCouponPreview;
|
|
379
|
+
} | {
|
|
380
|
+
status: 'rejected';
|
|
381
|
+
error: GuestCouponError;
|
|
382
|
+
};
|
|
383
|
+
/**
|
|
384
|
+
* Re-checks a stored coupon against the current cart (hydrate / cart sync).
|
|
385
|
+
* Never throws — use `status` to clear or re-apply the draft code.
|
|
386
|
+
*/
|
|
387
|
+
declare function revalidateGuestCoupon(options: {
|
|
388
|
+
client: GuestCouponClient;
|
|
389
|
+
team: string;
|
|
390
|
+
couponCode?: string | null;
|
|
391
|
+
items: GuestCheckoutCartItem[];
|
|
392
|
+
}): Promise<RevalidateGuestCouponResult>;
|
|
393
|
+
//#endregion
|
|
325
394
|
//#region src/commerce/index.d.ts
|
|
326
395
|
declare class CommerceResource {
|
|
327
396
|
readonly checkout: CheckoutResource;
|
|
@@ -810,16 +879,23 @@ declare class ContractsResource {
|
|
|
810
879
|
declare class DocumentsResource {
|
|
811
880
|
private readonly http;
|
|
812
881
|
constructor(http: IHttpService);
|
|
813
|
-
list(agent: string,
|
|
882
|
+
list(agent: string, params?: {
|
|
883
|
+
search?: string;
|
|
884
|
+
archived?: boolean;
|
|
885
|
+
}): Promise<_$_joai_core0.IAppResponse<Document[]>>;
|
|
814
886
|
create(agent: string, data: {
|
|
815
887
|
title: string;
|
|
816
888
|
content: string;
|
|
817
889
|
blueprint?: string;
|
|
818
890
|
}): Promise<_$_joai_core0.IAppResponse<Document>>;
|
|
819
891
|
get(id: string): Promise<_$_joai_core0.IAppResponse<Document>>;
|
|
892
|
+
getShared(slug: string): Promise<_$_joai_core0.IAppResponse<Document>>;
|
|
820
893
|
update(id: string, data: {
|
|
821
894
|
title?: string;
|
|
822
895
|
content?: string;
|
|
896
|
+
public?: boolean;
|
|
897
|
+
archived?: boolean;
|
|
898
|
+
meta?: Record<string, unknown>;
|
|
823
899
|
}): Promise<_$_joai_core0.IAppResponse<Document>>;
|
|
824
900
|
delete(id: string): Promise<_$_joai_core0.IAppResponse<void>>;
|
|
825
901
|
trainFromUrl(agent: string, url: string): Promise<_$_joai_core0.IAppResponse<Document>>;
|
|
@@ -972,12 +1048,17 @@ declare class IntentsResource {
|
|
|
972
1048
|
}
|
|
973
1049
|
//#endregion
|
|
974
1050
|
//#region src/resources/items.d.ts
|
|
1051
|
+
type ItemListParams = {
|
|
1052
|
+
status?: string;
|
|
1053
|
+
priority?: string;
|
|
1054
|
+
dueToday?: boolean;
|
|
1055
|
+
scope?: 'mine' | 'all';
|
|
1056
|
+
tag?: string;
|
|
1057
|
+
};
|
|
975
1058
|
declare class ItemsResource {
|
|
976
1059
|
private readonly http;
|
|
977
1060
|
constructor(http: IHttpService);
|
|
978
|
-
list(params?:
|
|
979
|
-
status?: string;
|
|
980
|
-
}): Promise<_$_joai_core0.IAppResponse<Item[]>>;
|
|
1061
|
+
list(params?: ItemListParams): Promise<_$_joai_core0.IAppResponse<Item[]>>;
|
|
981
1062
|
get(id: string): Promise<_$_joai_core0.IAppResponse<Item>>;
|
|
982
1063
|
create(payload: ItemCreatePayload): Promise<_$_joai_core0.IAppResponse<Item>>;
|
|
983
1064
|
update(id: string, data: ItemUpdatePayload): Promise<_$_joai_core0.IAppResponse<Item>>;
|
|
@@ -1877,6 +1958,9 @@ declare class SocialPostsResource {
|
|
|
1877
1958
|
schedule(id: string, scheduledAt?: string | null): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
|
|
1878
1959
|
cancel(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
|
|
1879
1960
|
retry(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
|
|
1961
|
+
share(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
|
|
1962
|
+
revokeShare(id: string): Promise<_$_joai_core0.IAppResponse<SocialPost>>;
|
|
1963
|
+
getShared(token: string): Promise<_$_joai_core0.IAppResponse<SharedSocialPost>>;
|
|
1880
1964
|
delete(id: string): Promise<_$_joai_core0.IAppResponse<void>>;
|
|
1881
1965
|
}
|
|
1882
1966
|
//#endregion
|
|
@@ -2260,4 +2344,4 @@ declare class DistributionResource {
|
|
|
2260
2344
|
private fetchDistribution;
|
|
2261
2345
|
}
|
|
2262
2346
|
//#endregion
|
|
2263
|
-
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 };
|
|
2347
|
+
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 TeamInviteInfo, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, type WebHookTriggerEvent, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, validateGuestCoupon };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HttpService, getApiBaseUrl, isCompleteAddressInput } from "@joai/core";
|
|
1
|
+
import { HttpService, cartLineTotal, cartPayableTotal, getApiBaseUrl, isCompleteAddressInput } from "@joai/core";
|
|
2
2
|
import { WarpClient } from "@joai/warps";
|
|
3
3
|
//#region src/resources/agents.ts
|
|
4
4
|
var AgentsResource = class {
|
|
@@ -534,6 +534,90 @@ const isGuestCheckoutError = (error) => {
|
|
|
534
534
|
return typeof error === "object" && error !== null && error.name === "GuestCheckoutError" && typeof error.code === "string";
|
|
535
535
|
};
|
|
536
536
|
//#endregion
|
|
537
|
+
//#region src/commerce/guestCoupon.ts
|
|
538
|
+
var GuestCouponError = class extends Error {
|
|
539
|
+
constructor(code, serverMessage) {
|
|
540
|
+
super(serverMessage ?? code);
|
|
541
|
+
this.code = code;
|
|
542
|
+
this.serverMessage = serverMessage;
|
|
543
|
+
this.name = "GuestCouponError";
|
|
544
|
+
}
|
|
545
|
+
};
|
|
546
|
+
/** First `couponCode` validation message from an API error payload. */
|
|
547
|
+
const guestCouponMessageFromErrors = (errors) => {
|
|
548
|
+
if (!errors || typeof errors !== "object" || Array.isArray(errors)) return void 0;
|
|
549
|
+
const couponError = errors.couponCode;
|
|
550
|
+
if (Array.isArray(couponError) && typeof couponError[0] === "string") return couponError[0];
|
|
551
|
+
if (typeof couponError === "string") return couponError;
|
|
552
|
+
};
|
|
553
|
+
const isGuestCouponError = (error) => {
|
|
554
|
+
if (error instanceof GuestCouponError) return true;
|
|
555
|
+
return typeof error === "object" && error !== null && error.name === "GuestCouponError" && typeof error.code === "string";
|
|
556
|
+
};
|
|
557
|
+
const toCheckoutItems = (items) => items.map(({ id, type, quantity }) => ({
|
|
558
|
+
id,
|
|
559
|
+
type,
|
|
560
|
+
quantity
|
|
561
|
+
}));
|
|
562
|
+
/**
|
|
563
|
+
* Merchandise subtotal, coupon discount, and payable total (cents) for a guest cart.
|
|
564
|
+
* Pass the validated preview (or null) so discount and total stay in sync.
|
|
565
|
+
*/
|
|
566
|
+
const guestCartAmounts = (cart, preview) => {
|
|
567
|
+
const subtotal = cartLineTotal(cart);
|
|
568
|
+
const discount = Math.max(0, preview?.discount ?? 0);
|
|
569
|
+
return {
|
|
570
|
+
subtotal,
|
|
571
|
+
discount,
|
|
572
|
+
total: cartPayableTotal(cart, discount)
|
|
573
|
+
};
|
|
574
|
+
};
|
|
575
|
+
/**
|
|
576
|
+
* Validates a guest coupon against cart lines. Throws {@link GuestCouponError} when the
|
|
577
|
+
* code is empty, the cart is empty, the API rejects it, or the preview discount is ≤ 0
|
|
578
|
+
* (never treat a no-effect coupon as applied).
|
|
579
|
+
*/
|
|
580
|
+
async function validateGuestCoupon(options) {
|
|
581
|
+
const code = options.couponCode.trim();
|
|
582
|
+
if (!code) throw new GuestCouponError("empty_code");
|
|
583
|
+
if (!options.items.length) throw new GuestCouponError("empty_cart");
|
|
584
|
+
const response = await options.client.commerce.checkout.validateCoupon(options.team, {
|
|
585
|
+
couponCode: code,
|
|
586
|
+
items: toCheckoutItems(options.items)
|
|
587
|
+
});
|
|
588
|
+
if (!response.ok || !response.data?.code) throw new GuestCouponError("invalid", guestCouponMessageFromErrors(response.errors));
|
|
589
|
+
if (response.data.discount <= 0) throw new GuestCouponError("not_applicable", guestCouponMessageFromErrors(response.errors));
|
|
590
|
+
return response.data;
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* Re-checks a stored coupon against the current cart (hydrate / cart sync).
|
|
594
|
+
* Never throws — use `status` to clear or re-apply the draft code.
|
|
595
|
+
*/
|
|
596
|
+
async function revalidateGuestCoupon(options) {
|
|
597
|
+
const code = options.couponCode?.trim();
|
|
598
|
+
if (!code || !options.items.length) return { status: "none" };
|
|
599
|
+
try {
|
|
600
|
+
return {
|
|
601
|
+
status: "applied",
|
|
602
|
+
preview: await validateGuestCoupon({
|
|
603
|
+
client: options.client,
|
|
604
|
+
team: options.team,
|
|
605
|
+
couponCode: code,
|
|
606
|
+
items: options.items
|
|
607
|
+
})
|
|
608
|
+
};
|
|
609
|
+
} catch (error) {
|
|
610
|
+
if (isGuestCouponError(error)) return {
|
|
611
|
+
status: "rejected",
|
|
612
|
+
error
|
|
613
|
+
};
|
|
614
|
+
return {
|
|
615
|
+
status: "rejected",
|
|
616
|
+
error: new GuestCouponError("invalid")
|
|
617
|
+
};
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
//#endregion
|
|
537
621
|
//#region src/commerce/index.ts
|
|
538
622
|
var CommerceResource = class {
|
|
539
623
|
constructor(http) {
|
|
@@ -1249,10 +1333,12 @@ var DocumentsResource = class {
|
|
|
1249
1333
|
constructor(http) {
|
|
1250
1334
|
this.http = http;
|
|
1251
1335
|
}
|
|
1252
|
-
list(agent,
|
|
1253
|
-
const
|
|
1254
|
-
if (search)
|
|
1255
|
-
|
|
1336
|
+
list(agent, params) {
|
|
1337
|
+
const query = new URLSearchParams();
|
|
1338
|
+
if (params?.search) query.set("search", params.search);
|
|
1339
|
+
if (params?.archived) query.set("archived", "1");
|
|
1340
|
+
const qs = query.toString();
|
|
1341
|
+
return this.http.get(`agents/${agent}/documents${qs ? `?${qs}` : ""}`);
|
|
1256
1342
|
}
|
|
1257
1343
|
create(agent, data) {
|
|
1258
1344
|
return this.http.post(`agents/${agent}/documents`, data);
|
|
@@ -1260,6 +1346,9 @@ var DocumentsResource = class {
|
|
|
1260
1346
|
get(id) {
|
|
1261
1347
|
return this.http.get(`documents/${id}`);
|
|
1262
1348
|
}
|
|
1349
|
+
getShared(slug) {
|
|
1350
|
+
return this.http.get(`documents/shared/${encodeURIComponent(slug)}`);
|
|
1351
|
+
}
|
|
1263
1352
|
update(id, data) {
|
|
1264
1353
|
return this.http.put(`documents/${id}`, data);
|
|
1265
1354
|
}
|
|
@@ -1466,6 +1555,10 @@ var ItemsResource = class {
|
|
|
1466
1555
|
list(params) {
|
|
1467
1556
|
const query = new URLSearchParams();
|
|
1468
1557
|
if (params?.status) query.set("status", params.status);
|
|
1558
|
+
if (params?.priority) query.set("priority", params.priority);
|
|
1559
|
+
if (params?.dueToday) query.set("dueToday", "1");
|
|
1560
|
+
if (params?.scope) query.set("scope", params.scope);
|
|
1561
|
+
if (params?.tag) query.set("tag", params.tag);
|
|
1469
1562
|
const qs = query.toString();
|
|
1470
1563
|
return this.http.get(`items${qs ? "?" + qs : ""}`);
|
|
1471
1564
|
}
|
|
@@ -2785,6 +2878,15 @@ var SocialPostsResource = class {
|
|
|
2785
2878
|
retry(id) {
|
|
2786
2879
|
return this.http.post(`social-posts/${id}/retry`, {});
|
|
2787
2880
|
}
|
|
2881
|
+
share(id) {
|
|
2882
|
+
return this.http.post(`social-posts/${id}/share`, {});
|
|
2883
|
+
}
|
|
2884
|
+
revokeShare(id) {
|
|
2885
|
+
return this.http.delete(`social-posts/${id}/share`);
|
|
2886
|
+
}
|
|
2887
|
+
getShared(token) {
|
|
2888
|
+
return this.http.get(`social-posts/shared/${token}`);
|
|
2889
|
+
}
|
|
2788
2890
|
delete(id) {
|
|
2789
2891
|
return this.http.delete(`social-posts/${id}`);
|
|
2790
2892
|
}
|
|
@@ -3440,4 +3542,4 @@ var DistributionResource = class {
|
|
|
3440
3542
|
}
|
|
3441
3543
|
};
|
|
3442
3544
|
//#endregion
|
|
3443
|
-
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 };
|
|
3545
|
+
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, TeamsResource, UpdatesResource, UpgradesResource, UsersResource, VoiceResource, WalletsResource, WarpsResource, WorkspaceResource, assertGuestCheckoutReady, buildGuestCheckoutSnapshotRequest, buildGuestOrderReturnUrl, completePortalSession, createClient, createEmptyGuestCheckoutState, createGuestCheckoutSnapshot, createGuestCommerceStorage, formatOpeningHours, getAuthFragmentToken, guestCartAmounts, guestCouponMessageFromErrors, isAllowedRedirectUrl, isGuestCheckoutError, isGuestCouponError, isPortalCallbackUrl, openPortalSession, placeGuestCheckoutOrder, readGuestOrderReturnAccess, revalidateGuestCoupon, sanitizePortalCallbackUrl, stripGuestOrderReturnToken, toGuestCheckoutDraft, validateGuestCoupon };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joai/sdk",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.5",
|
|
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.4",
|
|
39
39
|
"@joai/warps": "*"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@joai/core": "^4.15.
|
|
42
|
+
"@joai/core": "^4.15.4"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"tsdown": "^0.21.0",
|