@boltclaw/referrals 0.0.0-stage → 0.4.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.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +500 -3
  3. package/dist/api-types.d.ts +245 -0
  4. package/dist/api-types.js +2 -0
  5. package/dist/api-types.js.map +1 -0
  6. package/dist/assistant-tools.d.ts +40 -0
  7. package/dist/assistant-tools.js +120 -0
  8. package/dist/assistant-tools.js.map +1 -0
  9. package/dist/assistant.d.ts +62 -0
  10. package/dist/assistant.js +305 -0
  11. package/dist/assistant.js.map +1 -0
  12. package/dist/case.d.ts +2 -0
  13. package/dist/case.js +30 -0
  14. package/dist/case.js.map +1 -0
  15. package/dist/client.d.ts +22 -0
  16. package/dist/client.js +80 -0
  17. package/dist/client.js.map +1 -0
  18. package/dist/element.d.ts +4 -0
  19. package/dist/element.js +204 -0
  20. package/dist/element.js.map +1 -0
  21. package/dist/errors.d.ts +19 -0
  22. package/dist/errors.js +62 -0
  23. package/dist/errors.js.map +1 -0
  24. package/dist/generated/api.d.ts +6477 -0
  25. package/dist/generated/api.js +891 -0
  26. package/dist/generated/api.js.map +1 -0
  27. package/dist/index.d.ts +18 -0
  28. package/dist/index.js +10 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/loader.d.ts +118 -0
  31. package/dist/loader.js +524 -0
  32. package/dist/loader.js.map +1 -0
  33. package/dist/middleware.d.ts +100 -0
  34. package/dist/middleware.js +378 -0
  35. package/dist/middleware.js.map +1 -0
  36. package/dist/origin.d.ts +3 -0
  37. package/dist/origin.js +22 -0
  38. package/dist/origin.js.map +1 -0
  39. package/dist/react.d.ts +69 -0
  40. package/dist/react.js +328 -0
  41. package/dist/react.js.map +1 -0
  42. package/dist/server-index.d.ts +17 -0
  43. package/dist/server-index.js +9 -0
  44. package/dist/server-index.js.map +1 -0
  45. package/dist/server.d.ts +106 -0
  46. package/dist/server.js +511 -0
  47. package/dist/server.js.map +1 -0
  48. package/dist/typed-code.d.ts +78 -0
  49. package/dist/typed-code.js +234 -0
  50. package/dist/typed-code.js.map +1 -0
  51. package/dist/types.d.ts +254 -0
  52. package/dist/types.js +61 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/webhooks.d.ts +20 -0
  55. package/dist/webhooks.js +90 -0
  56. package/dist/webhooks.js.map +1 -0
  57. package/package.json +97 -6
@@ -0,0 +1,891 @@
1
+ export const API_VERSION = "1.49.0";
2
+ export const DEFAULT_BASE_URL = "https://api.boltclaw.ai/v1";
3
+ export const APPROVALS_URL = "https://boltclaw.ai/dashboard/approvals";
4
+ export const ERROR_CODES = ["UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "VALIDATION_ERROR", "CONFLICT", "RATE_LIMITED", "METHOD_NOT_ALLOWED", "PAYLOAD_TOO_LARGE", "INTERNAL_ERROR", "ALREADY_EXISTS", "PLAN_LIMIT", "INSUFFICIENT_SCOPE", "ORGANISATION_SUSPENDED", "UPSTREAM_ERROR", "UNAVAILABLE", "THREAD_ALREADY_OPEN", "MFA_REQUIRED", "REAUTH_REQUIRED", "TWO_STEP_REQUIRED", "IDEMPOTENCY_KEY_CONFLICT", "IDEMPOTENCY_KEY_IN_FLIGHT", "AGENT_ACCESS_DISABLED", "APPROVAL_REQUIRED", "APPROVAL_PENDING", "APPROVAL_DENIED", "APPROVAL_INVALID"];
5
+ export const OPERATIONS = {
6
+ addReferralDomain: { method: "POST", path: "/referrals/domains", pathParams: [], queryParams: [], body: true, idempotency: true },
7
+ adjustReferralCommission: { method: "POST", path: "/referrals/commissions/{id}/adjust", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
8
+ answerReferralPrivacyRequest: { method: "POST", path: "/referrals/privacy-requests/{id}/answer", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
9
+ applyReferralProgramConfig: { method: "PATCH", path: "/referrals/programs/{id}/config", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
10
+ approveReferralCommission: { method: "POST", path: "/referrals/commissions/{id}/approve", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
11
+ approveReferralPartner: { method: "POST", path: "/referrals/partners/{id}/approve", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
12
+ archiveReferralLink: { method: "POST", path: "/referrals/links/{id}/archive", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
13
+ archiveReferralProgram: { method: "POST", path: "/referrals/programs/{id}/archive", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
14
+ awardReferralContest: { method: "POST", path: "/referrals/contests/{id}/award", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
15
+ banReferralPartner: { method: "POST", path: "/referrals/partners/{id}/ban", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
16
+ cancelReferralContest: { method: "POST", path: "/referrals/contests/{id}/cancel", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
17
+ cancelReferralPayout: { method: "POST", path: "/referrals/payouts/{id}/cancel", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
18
+ cancelReferralPayoutAutoSend: { method: "POST", path: "/referrals/payout-batches/{id}/cancel-auto-send", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
19
+ checkReferralDomain: { method: "POST", path: "/referrals/domains/{id}/check", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
20
+ checkReferralLinkHost: { method: "POST", path: "/referrals/programs/{id}/link-hosts/check", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
21
+ checkReferralTag: { method: "POST", path: "/referrals/programs/{id}/integration-status/tag-check", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
22
+ claimReferralGrant: { method: "POST", path: "/referrals/grants/{id}/claim", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
23
+ clearReferralTestData: { method: "DELETE", path: "/referrals/programs/{id}/test-data", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
24
+ commitReferralImport: { method: "POST", path: "/referrals/programs/{id}/imports", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
25
+ confirmReferralBrandEmailVerification: { method: "POST", path: "/referrals/brand/support-email/verification/confirm", pathParams: [], queryParams: [], body: true, idempotency: true },
26
+ confirmReferralFlag: { method: "POST", path: "/referrals/flags/{id}/confirm", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
27
+ confirmReferralFlags: { method: "POST", path: "/referrals/programs/{id}/flags/confirm", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
28
+ createReferralBonus: { method: "POST", path: "/referrals/partners/{id}/bonuses", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
29
+ createReferralBrandUpload: { method: "POST", path: "/referrals/brand/uploads", pathParams: [], queryParams: [], body: true, idempotency: true },
30
+ createReferralBroadcast: { method: "POST", path: "/referrals/programs/{id}/broadcasts", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
31
+ createReferralCode: { method: "POST", path: "/referrals/partners/{id}/codes", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
32
+ createReferralContest: { method: "POST", path: "/referrals/programs/{id}/contests", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
33
+ createReferralEmbedToken: { method: "POST", path: "/referrals/programs/{id}/embed-tokens", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
34
+ createReferralGroup: { method: "POST", path: "/referrals/programs/{id}/groups", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
35
+ createReferralIntegration: { method: "POST", path: "/referrals/programs/{id}/integrations", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
36
+ createReferralInvite: { method: "POST", path: "/referrals/programs/{id}/invites", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
37
+ createReferralInvoiceLink: { method: "POST", path: "/referrals/invoices/{id}/link", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
38
+ createReferralLibraryItem: { method: "POST", path: "/referrals/programs/{id}/library", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
39
+ createReferralLibraryUpload: { method: "POST", path: "/referrals/library/{id}/upload", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
40
+ createReferralListingLogoUpload: { method: "POST", path: "/referrals/programs/{id}/listing/logo", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
41
+ createReferralPayoutBatch: { method: "POST", path: "/referrals/programs/{id}/payout-batches", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
42
+ createReferralProgram: { method: "POST", path: "/referrals/programs", pathParams: [], queryParams: [], body: true, idempotency: true },
43
+ createReferralReward: { method: "POST", path: "/referrals/programs/{id}/rewards", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
44
+ createReferralStatementLink: { method: "POST", path: "/referrals/payouts/{id}/statement-link", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
45
+ deactivateReferralCode: { method: "POST", path: "/referrals/codes/{id}/deactivate", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
46
+ deleteReferralGroup: { method: "DELETE", path: "/referrals/groups/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
47
+ deleteReferralLibraryItem: { method: "DELETE", path: "/referrals/library/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
48
+ deleteReferralReward: { method: "DELETE", path: "/referrals/rewards/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
49
+ diffReferralProgramConfig: { method: "GET", path: "/referrals/programs/{id}/config/diff", pathParams: ["id"], queryParams: ["with"], body: false, idempotency: false },
50
+ dismissReferralFlag: { method: "POST", path: "/referrals/flags/{id}/dismiss", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
51
+ dismissReferralFlags: { method: "POST", path: "/referrals/programs/{id}/flags/dismiss", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
52
+ disqualifyReferralEntry: { method: "POST", path: "/referrals/entries/{id}/disqualify", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
53
+ draftReferralProgramTerms: { method: "POST", path: "/referrals/programs/{id}/terms/draft", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
54
+ endReferralWaitlist: { method: "POST", path: "/referrals/programs/{id}/waitlist/end", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
55
+ eraseReferralDataSubject: { method: "DELETE", path: "/referrals/data-subjects/{external_id}", pathParams: ["external_id"], queryParams: [], body: false, idempotency: false },
56
+ eraseReferralReferrer: { method: "DELETE", path: "/referrals/referrers/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
57
+ exportReferralReport: { method: "GET", path: "/referrals/programs/{id}/export", pathParams: ["id"], queryParams: ["type", "from", "to", "status"], body: false, idempotency: false },
58
+ failReferralGrant: { method: "POST", path: "/referrals/grants/{id}/fail", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
59
+ forfeitReferralCommissions: { method: "POST", path: "/referrals/partners/{id}/forfeit", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
60
+ forgetReferralWaitlist: { method: "POST", path: "/referrals/programs/{id}/waitlist/forget", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
61
+ fulfilReferralGrant: { method: "POST", path: "/referrals/grants/{id}/fulfil", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
62
+ getReferralBrand: { method: "GET", path: "/referrals/brand", pathParams: [], queryParams: ["program_id"], body: false, idempotency: false },
63
+ getReferralBroadcast: { method: "GET", path: "/referrals/broadcasts/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
64
+ getReferralContest: { method: "GET", path: "/referrals/contests/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
65
+ getReferralCustomer: { method: "GET", path: "/referrals/customers/{external_id}", pathParams: ["external_id"], queryParams: [], body: false, idempotency: false },
66
+ getReferralCustomerReferral: { method: "GET", path: "/referrals/programs/{id}/customers/{external_id}/referral", pathParams: ["id", "external_id"], queryParams: [], body: false, idempotency: false },
67
+ getReferralDataSubject: { method: "GET", path: "/referrals/data-subjects/{external_id}", pathParams: ["external_id"], queryParams: [], body: false, idempotency: false },
68
+ getReferralDomain: { method: "GET", path: "/referrals/domains/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
69
+ getReferralEntry: { method: "GET", path: "/referrals/entries/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
70
+ getReferralFlag: { method: "GET", path: "/referrals/flags/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
71
+ getReferralGrant: { method: "GET", path: "/referrals/grants/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
72
+ getReferralIntegrationStatus: { method: "GET", path: "/referrals/programs/{id}/integration-status", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
73
+ getReferralLeaderboard: { method: "GET", path: "/referrals/programs/{id}/leaderboard", pathParams: ["id"], queryParams: ["metric", "period"], body: false, idempotency: false },
74
+ getReferralListing: { method: "GET", path: "/referrals/programs/{id}/listing", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
75
+ getReferralNotifications: { method: "GET", path: "/referrals/programs/{id}/notifications", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
76
+ getReferralOffer: { method: "GET", path: "/referrals/offers/{code}", pathParams: ["code"], queryParams: ["customer_id", "new_customer", "locale", "email", "interval"], body: false, idempotency: false },
77
+ getReferralPayout: { method: "GET", path: "/referrals/payouts/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
78
+ getReferralPayoutBatch: { method: "GET", path: "/referrals/payout-batches/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
79
+ getReferralPayoutDetails: { method: "GET", path: "/referrals/payouts/{id}/details", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
80
+ getReferralPayoutPreview: { method: "GET", path: "/referrals/programs/{id}/payout-preview", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
81
+ getReferralPayoutSettings: { method: "GET", path: "/referrals/programs/{id}/payout-settings", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
82
+ getReferralPrivacyRequest: { method: "GET", path: "/referrals/privacy-requests/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
83
+ getReferralProgram: { method: "GET", path: "/referrals/programs/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
84
+ getReferralProgramConfig: { method: "GET", path: "/referrals/programs/{id}/config", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
85
+ getReferralProgramHelp: { method: "GET", path: "/referrals/programs/{id}/help", pathParams: ["id"], queryParams: ["locale", "format", "audience"], body: false, idempotency: false },
86
+ getReferralProgramStats: { method: "GET", path: "/referrals/programs/{id}/stats", pathParams: ["id"], queryParams: ["from", "to", "bucket", "test", "sort", "top"], body: false, idempotency: false },
87
+ getReferralProgramSummary: { method: "GET", path: "/referrals/programs/{id}/summary", pathParams: ["id"], queryParams: ["from", "to", "test", "stuck_after_days"], body: false, idempotency: false },
88
+ getReferralReferrer: { method: "GET", path: "/referrals/programs/{id}/referrers/{external_id}", pathParams: ["id", "external_id"], queryParams: ["locale", "test", "format"], body: false, idempotency: false },
89
+ getReferralRiskPolicy: { method: "GET", path: "/referrals/programs/{id}/risk-policy", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
90
+ getReferralSecondTier: { method: "GET", path: "/referrals/programs/{id}/second-tier", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
91
+ getReferralTaxSettings: { method: "GET", path: "/referrals/programs/{id}/tax", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
92
+ getReferralTaxYear: { method: "GET", path: "/referrals/tax-years/{year}", pathParams: ["year"], queryParams: [], body: false, idempotency: false },
93
+ getReferralTranslationLanguage: { method: "GET", path: "/referrals/programs/{id}/translations/{locale}", pathParams: ["id", "locale"], queryParams: [], body: false, idempotency: false },
94
+ getReferralTranslations: { method: "GET", path: "/referrals/programs/{id}/translations", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
95
+ holdReferralPartnerPayouts: { method: "POST", path: "/referrals/partners/{id}/hold-payouts", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
96
+ inviteReferralEntries: { method: "POST", path: "/referrals/programs/{id}/entries/invite", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
97
+ issueReferralInvoice: { method: "POST", path: "/referrals/payouts/{id}/invoice", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
98
+ listReferralBroadcastReferrers: { method: "GET", path: "/referrals/broadcasts/{id}/referrers", pathParams: ["id"], queryParams: ["cursor", "count"], body: false, idempotency: false },
99
+ listReferralBroadcasts: { method: "GET", path: "/referrals/programs/{id}/broadcasts", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
100
+ listReferralCodes: { method: "GET", path: "/referrals/programs/{id}/codes", pathParams: ["id"], queryParams: ["count"], body: false, idempotency: false },
101
+ listReferralCommissions: { method: "GET", path: "/referrals/programs/{id}/commissions", pathParams: ["id"], queryParams: ["status", "partner_id", "from", "to", "adjustments", "entry", "surface", "test", "limit", "cursor", "count"], body: false, idempotency: false },
102
+ listReferralContests: { method: "GET", path: "/referrals/programs/{id}/contests", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
103
+ listReferralConversions: { method: "GET", path: "/referrals/programs/{id}/conversions", pathParams: ["id"], queryParams: ["from", "to", "event", "referrer", "partner_id", "event_id", "credited", "test", "entry", "surface", "limit", "cursor", "count"], body: false, idempotency: false },
104
+ listReferralDomains: { method: "GET", path: "/referrals/domains", pathParams: [], queryParams: [], body: false, idempotency: false },
105
+ listReferralEntries: { method: "GET", path: "/referrals/programs/{id}/entries", pathParams: ["id"], queryParams: ["filter", "limit", "cursor", "count"], body: false, idempotency: false },
106
+ listReferralFlags: { method: "GET", path: "/referrals/programs/{id}/flags", pathParams: ["id"], queryParams: ["status", "rule", "partner_id", "min_score", "older_than_days", "reason", "entry", "surface"], body: false, idempotency: false },
107
+ listReferralGrants: { method: "GET", path: "/referrals/programs/{id}/grants", pathParams: ["id"], queryParams: ["status", "type", "recipient", "test", "limit", "cursor", "count"], body: false, idempotency: false },
108
+ listReferralGroups: { method: "GET", path: "/referrals/programs/{id}/groups", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
109
+ listReferralImportInvites: { method: "GET", path: "/referrals/imports/{id}/invites", pathParams: ["id"], queryParams: ["cursor", "count"], body: false, idempotency: false },
110
+ listReferralImports: { method: "GET", path: "/referrals/programs/{id}/imports", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
111
+ listReferralIntegrations: { method: "GET", path: "/referrals/programs/{id}/integrations", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
112
+ listReferralInvites: { method: "GET", path: "/referrals/programs/{id}/invites", pathParams: ["id"], queryParams: ["limit", "cursor", "count"], body: false, idempotency: false },
113
+ listReferralLibrary: { method: "GET", path: "/referrals/programs/{id}/library", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
114
+ listReferralLinkHosts: { method: "GET", path: "/referrals/programs/{id}/link-hosts", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
115
+ listReferralLinks: { method: "GET", path: "/referrals/programs/{id}/links", pathParams: ["id"], queryParams: ["partner_id", "limit", "cursor", "count"], body: false, idempotency: false },
116
+ listReferralPartners: { method: "GET", path: "/referrals/programs/{id}/partners", pathParams: ["id"], queryParams: ["status", "q", "limit", "cursor", "count"], body: false, idempotency: false },
117
+ listReferralPayoutInvoices: { method: "GET", path: "/referrals/payouts/{id}/invoices", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
118
+ listReferralPayoutProviders: { method: "GET", path: "/referrals/programs/{id}/payout-providers", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
119
+ listReferralPayouts: { method: "GET", path: "/referrals/programs/{id}/payouts", pathParams: ["id"], queryParams: ["status", "limit", "cursor", "count"], body: false, idempotency: false },
120
+ listReferralPrivacyRequests: { method: "GET", path: "/referrals/programs/{id}/privacy-requests", pathParams: ["id"], queryParams: ["count"], body: false, idempotency: false },
121
+ listReferralPrograms: { method: "GET", path: "/referrals/programs", pathParams: [], queryParams: ["limit", "cursor", "count"], body: false, idempotency: false },
122
+ listReferralReferrers: { method: "GET", path: "/referrals/programs/{id}/referrers", pathParams: ["id"], queryParams: ["status", "search", "test", "from", "to", "sort", "limit", "cursor", "count"], body: false, idempotency: false },
123
+ listReferralRewards: { method: "GET", path: "/referrals/programs/{id}/rewards", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
124
+ listReferralTaxForms: { method: "GET", path: "/referrals/programs/{id}/tax-forms", pathParams: ["id"], queryParams: ["limit", "cursor", "count"], body: false, idempotency: false },
125
+ markReferralPayoutPaid: { method: "POST", path: "/referrals/payouts/{id}/paid", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
126
+ markReferralReferrerRewardsSeen: { method: "POST", path: "/referrals/programs/{id}/referrers/{external_id}/rewards/seen", pathParams: ["id", "external_id"], queryParams: [], body: true, idempotency: true },
127
+ pauseReferralProgram: { method: "POST", path: "/referrals/programs/{id}/pause", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
128
+ ping: { method: "GET", path: "/ping", pathParams: [], queryParams: [], body: false, idempotency: false },
129
+ previewReferralImport: { method: "POST", path: "/referrals/programs/{id}/imports/preview", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
130
+ recalculateReferralLevels: { method: "POST", path: "/referrals/programs/{id}/levels/recalculate", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
131
+ recordReferralClick: { method: "POST", path: "/referrals/clicks", pathParams: [], queryParams: [], body: true, idempotency: true },
132
+ recordReferralConversion: { method: "POST", path: "/referrals/conversions", pathParams: [], queryParams: [], body: true, idempotency: true },
133
+ reissueReferralInvoice: { method: "POST", path: "/referrals/invoices/{id}/reissue", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
134
+ rejectReferralPartner: { method: "POST", path: "/referrals/partners/{id}/reject", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
135
+ removeReferralDomain: { method: "DELETE", path: "/referrals/domains/{id}", pathParams: ["id"], queryParams: [], body: false, idempotency: false },
136
+ reportReferralPayoutResult: { method: "POST", path: "/referrals/payouts/{id}/result", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
137
+ requalifyReferralEntry: { method: "POST", path: "/referrals/entries/{id}/requalify", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
138
+ resumeReferralProgram: { method: "POST", path: "/referrals/programs/{id}/resume", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
139
+ revokeReferralEmbedSessions: { method: "POST", path: "/referrals/programs/{id}/embed/revoke-sessions", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
140
+ revokeReferralInvite: { method: "POST", path: "/referrals/invites/{id}/revoke", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
141
+ rotateReferralEmbedKey: { method: "POST", path: "/referrals/programs/{id}/embed/rotate-key", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
142
+ rotateReferralSignupLink: { method: "POST", path: "/referrals/programs/{id}/signup-link/rotate", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
143
+ rotateReferralWaitlistPage: { method: "POST", path: "/referrals/programs/{id}/waitlist/rotate-page", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
144
+ sendReferralBroadcast: { method: "POST", path: "/referrals/broadcasts/{id}/send", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
145
+ sendReferralGrant: { method: "POST", path: "/referrals/grants/{id}/send", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
146
+ sendReferralPayoutBatch: { method: "POST", path: "/referrals/payout-batches/{id}/send", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
147
+ sendReferralTestSale: { method: "POST", path: "/referrals/programs/{id}/test-sale", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
148
+ setReferralIntegrationSecret: { method: "POST", path: "/referrals/integrations/{id}/secret", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
149
+ startReferralBrandEmailVerification: { method: "POST", path: "/referrals/brand/support-email/verification", pathParams: [], queryParams: [], body: true, idempotency: true },
150
+ syncReferralShopifyCodes: { method: "POST", path: "/referrals/programs/{id}/shopify-codes", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
151
+ syncReferralStripeCodes: { method: "POST", path: "/referrals/programs/{id}/stripe-codes", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
152
+ testReferralBroadcast: { method: "POST", path: "/referrals/broadcasts/{id}/test", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
153
+ testReferralPayoutProvider: { method: "POST", path: "/referrals/payout-providers/{id}/test", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
154
+ translateReferralProgram: { method: "POST", path: "/referrals/programs/{id}/translate", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
155
+ unbanReferralPartner: { method: "POST", path: "/referrals/partners/{id}/unban", pathParams: ["id"], queryParams: [], body: false, idempotency: true },
156
+ updateReferralBrand: { method: "PATCH", path: "/referrals/brand", pathParams: [], queryParams: [], body: true, idempotency: false },
157
+ updateReferralBroadcast: { method: "PATCH", path: "/referrals/broadcasts/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
158
+ updateReferralCode: { method: "PATCH", path: "/referrals/codes/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
159
+ updateReferralContest: { method: "PATCH", path: "/referrals/contests/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
160
+ updateReferralEntry: { method: "PATCH", path: "/referrals/entries/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
161
+ updateReferralGroup: { method: "PATCH", path: "/referrals/groups/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
162
+ updateReferralLibraryItem: { method: "PATCH", path: "/referrals/library/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
163
+ updateReferralListing: { method: "PATCH", path: "/referrals/programs/{id}/listing", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
164
+ updateReferralNotifications: { method: "PATCH", path: "/referrals/programs/{id}/notifications", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
165
+ updateReferralPartner: { method: "PATCH", path: "/referrals/partners/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
166
+ updateReferralPayoutSettings: { method: "PATCH", path: "/referrals/programs/{id}/payout-settings", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
167
+ updateReferralProgram: { method: "PATCH", path: "/referrals/programs/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
168
+ updateReferralReferrer: { method: "PATCH", path: "/referrals/referrers/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
169
+ updateReferralReward: { method: "PATCH", path: "/referrals/rewards/{id}", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
170
+ updateReferralRiskPolicy: { method: "PATCH", path: "/referrals/programs/{id}/risk-policy", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
171
+ updateReferralSecondTier: { method: "PATCH", path: "/referrals/programs/{id}/second-tier", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
172
+ updateReferralTaxSettings: { method: "PATCH", path: "/referrals/programs/{id}/tax", pathParams: ["id"], queryParams: [], body: true, idempotency: false },
173
+ updateReferralTranslations: { method: "PATCH", path: "/referrals/programs/{id}/translations/{locale}", pathParams: ["id", "locale"], queryParams: [], body: true, idempotency: false },
174
+ upsertReferralEntry: { method: "POST", path: "/referrals/programs/{id}/entries", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
175
+ upsertReferralReferrer: { method: "POST", path: "/referrals/programs/{id}/referrers", pathParams: ["id"], queryParams: [], body: true, idempotency: true },
176
+ };
177
+ export const TEXT_ANSWERS = {
178
+ getReferralReferrer: "format",
179
+ };
180
+ const UUID_SHAPE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
181
+ const IDEMPOTENCY_KEY = /^[!-~]{1,255}$/;
182
+ const APPROVAL_ID = /^[!-~]{1,100}$/;
183
+ function isObject(value) {
184
+ return typeof value === "object" && value !== null && !Array.isArray(value);
185
+ }
186
+ function segment(value) {
187
+ if (value === ".")
188
+ return "%2E";
189
+ if (value === "..")
190
+ return "%2E%2E";
191
+ return encodeURIComponent(value);
192
+ }
193
+ function checkBaseUrl(value) {
194
+ let url;
195
+ try {
196
+ url = new URL(value);
197
+ }
198
+ catch {
199
+ throw new TypeError("baseUrl must be an absolute URL.");
200
+ }
201
+ const local = url.protocol === "http:" && (url.hostname === "localhost" || url.hostname === "127.0.0.1");
202
+ if ((url.protocol !== "https:" && !local) || url.username !== "" || url.password !== "" || url.search !== "" || url.hash !== "") {
203
+ throw new TypeError("baseUrl must be https (http is allowed only for localhost and 127.0.0.1), with no credentials, query or fragment.");
204
+ }
205
+ return url.toString().replace(/\/+$/, "");
206
+ }
207
+ export class BoltClawApiError extends Error {
208
+ status;
209
+ code;
210
+ requestId;
211
+ fields;
212
+ approval;
213
+ retryAfter;
214
+ #resend;
215
+ constructor(init, resend) {
216
+ super(init.message);
217
+ this.name = "BoltClawApiError";
218
+ this.status = init.status;
219
+ this.code = init.code;
220
+ this.requestId = init.requestId;
221
+ this.fields = init.fields;
222
+ this.approval = init.approval;
223
+ this.retryAfter = init.retryAfter;
224
+ this.#resend = init.approval ? resend : undefined;
225
+ }
226
+ get needsApproval() {
227
+ return this.status === 428 && this.approval !== undefined;
228
+ }
229
+ retry(approvalId) {
230
+ const id = approvalId ?? this.approval?.id;
231
+ if (!this.#resend || id === undefined || !UUID_SHAPE.test(id)) {
232
+ return Promise.reject(new TypeError("Only a 428 that names an approval can be retried with one."));
233
+ }
234
+ return this.#resend(id.toLowerCase());
235
+ }
236
+ }
237
+ export class BoltClawClient {
238
+ baseUrl;
239
+ #apiKey;
240
+ #fetch;
241
+ constructor(options) {
242
+ if (typeof globalThis.window !== "undefined" && options?.dangerouslyAllowBrowser !== true) {
243
+ throw new Error("BoltClawClient must run on your server: an API key must never reach a browser.");
244
+ }
245
+ const apiKey = options?.apiKey;
246
+ if (typeof apiKey !== "string" || apiKey.length === 0 || apiKey.length > 500) {
247
+ throw new TypeError("apiKey must be a text of 1 to 500 characters.");
248
+ }
249
+ this.#apiKey = apiKey;
250
+ this.baseUrl = checkBaseUrl(options.baseUrl ?? DEFAULT_BASE_URL);
251
+ const f = options.fetch ?? (typeof fetch === "function" ? fetch.bind(globalThis) : undefined);
252
+ if (!f)
253
+ throw new TypeError("No fetch is available; pass one in the options.");
254
+ this.#fetch = f;
255
+ }
256
+ toJSON() {
257
+ return { baseUrl: this.baseUrl };
258
+ }
259
+ async send(operationId, input, options = {}) {
260
+ const spec = OPERATIONS[operationId];
261
+ if (!spec)
262
+ throw new TypeError(`Unknown operation ${String(operationId)}.`);
263
+ const values = (isObject(input) ? input : {});
264
+ let path = spec.path;
265
+ for (const name of spec.pathParams) {
266
+ const value = values[name];
267
+ if (typeof value !== "string" || value.length === 0)
268
+ throw new TypeError(`${name} is required.`);
269
+ path = path.replace(`{${name}}`, segment(value));
270
+ }
271
+ const query = new URLSearchParams();
272
+ for (const name of spec.queryParams) {
273
+ const value = values[name];
274
+ if (value === undefined || value === null)
275
+ continue;
276
+ if (Array.isArray(value))
277
+ for (const item of value)
278
+ query.append(name, String(item));
279
+ else
280
+ query.set(name, String(value));
281
+ }
282
+ const search = query.toString();
283
+ const headers = { Authorization: `Bearer ${this.#apiKey}`, Accept: "application/json" };
284
+ let body;
285
+ if (spec.body && values.body !== undefined) {
286
+ body = JSON.stringify(values.body);
287
+ headers["Content-Type"] = "application/json";
288
+ }
289
+ if (options.idempotencyKey !== undefined) {
290
+ if (!spec.idempotency)
291
+ throw new TypeError(`${String(operationId)} takes no Idempotency-Key.`);
292
+ if (typeof options.idempotencyKey !== "string" || !IDEMPOTENCY_KEY.test(options.idempotencyKey)) {
293
+ throw new TypeError("idempotencyKey must be 1 to 255 printable ASCII characters.");
294
+ }
295
+ headers["Idempotency-Key"] = options.idempotencyKey;
296
+ }
297
+ if (options.approvalId !== undefined) {
298
+ if (typeof options.approvalId !== "string" || !APPROVAL_ID.test(options.approvalId)) {
299
+ throw new TypeError("approvalId must be the approval's id, as the 428 gave it.");
300
+ }
301
+ headers["BoltClaw-Approval"] = options.approvalId;
302
+ }
303
+ const textParam = TEXT_ANSWERS[operationId];
304
+ const asksText = textParam !== undefined && values[textParam] === "text";
305
+ if (asksText)
306
+ headers.Accept = "text/plain";
307
+ const sent = { url: `${this.baseUrl}${path}${search ? `?${search}` : ""}`, method: spec.method, headers, body };
308
+ return this.#exchange(sent, options.signal, asksText);
309
+ }
310
+ async #exchange(sent, signal, asksText = false) {
311
+ const key = this.#apiKey;
312
+ const redact = (text) => text.split(key).join("[redacted]");
313
+ let response;
314
+ try {
315
+ response = await this.#fetch(sent.url, {
316
+ method: sent.method,
317
+ headers: { ...sent.headers },
318
+ body: sent.body,
319
+ redirect: "error",
320
+ ...(signal ? { signal } : {}),
321
+ });
322
+ }
323
+ catch {
324
+ throw new BoltClawApiError({ status: 0, code: "network_error", message: "The request could not be sent." });
325
+ }
326
+ const text = await response.text().catch(() => "");
327
+ let parsed = null;
328
+ if (text.length > 0) {
329
+ try {
330
+ parsed = JSON.parse(text);
331
+ }
332
+ catch {
333
+ parsed = null;
334
+ }
335
+ }
336
+ const requestId = response.headers?.get?.("x-request-id") ?? null;
337
+ if (!response.ok) {
338
+ const resend = (approvalId) => this.#exchange({ ...sent, headers: { ...sent.headers, "BoltClaw-Approval": approvalId } }, signal, asksText);
339
+ throw errorOf(response.status, parsed, redact, response.headers?.get?.("retry-after") ?? null, resend);
340
+ }
341
+ if (asksText && text.length > 0 && /^text\/plain\b/i.test(response.headers?.get?.("content-type") ?? "")) {
342
+ return { status: response.status, data: text, requestId };
343
+ }
344
+ if (parsed === null && response.status !== 204) {
345
+ throw new BoltClawApiError({ status: response.status, code: "invalid_response", message: "The answer was not JSON.", requestId: requestId ?? undefined });
346
+ }
347
+ return { status: response.status, data: parsed, requestId };
348
+ }
349
+ async addReferralDomain(input, options) {
350
+ return (await this.send("addReferralDomain", input, options)).data;
351
+ }
352
+ async adjustReferralCommission(input, options) {
353
+ return (await this.send("adjustReferralCommission", input, options)).data;
354
+ }
355
+ async answerReferralPrivacyRequest(input, options) {
356
+ return (await this.send("answerReferralPrivacyRequest", input, options)).data;
357
+ }
358
+ async applyReferralProgramConfig(input, options) {
359
+ return (await this.send("applyReferralProgramConfig", input, options)).data;
360
+ }
361
+ async approveReferralCommission(input, options) {
362
+ return (await this.send("approveReferralCommission", input, options)).data;
363
+ }
364
+ async approveReferralPartner(input, options) {
365
+ return (await this.send("approveReferralPartner", input, options)).data;
366
+ }
367
+ async archiveReferralLink(input, options) {
368
+ return (await this.send("archiveReferralLink", input, options)).data;
369
+ }
370
+ async archiveReferralProgram(input, options) {
371
+ return (await this.send("archiveReferralProgram", input, options)).data;
372
+ }
373
+ async awardReferralContest(input, options) {
374
+ return (await this.send("awardReferralContest", input, options)).data;
375
+ }
376
+ async banReferralPartner(input, options) {
377
+ return (await this.send("banReferralPartner", input, options)).data;
378
+ }
379
+ async cancelReferralContest(input, options) {
380
+ return (await this.send("cancelReferralContest", input, options)).data;
381
+ }
382
+ async cancelReferralPayout(input, options) {
383
+ return (await this.send("cancelReferralPayout", input, options)).data;
384
+ }
385
+ async cancelReferralPayoutAutoSend(input, options) {
386
+ return (await this.send("cancelReferralPayoutAutoSend", input, options)).data;
387
+ }
388
+ async checkReferralDomain(input, options) {
389
+ return (await this.send("checkReferralDomain", input, options)).data;
390
+ }
391
+ async checkReferralLinkHost(input, options) {
392
+ return (await this.send("checkReferralLinkHost", input, options)).data;
393
+ }
394
+ async checkReferralTag(input, options) {
395
+ return (await this.send("checkReferralTag", input, options)).data;
396
+ }
397
+ async claimReferralGrant(input, options) {
398
+ return (await this.send("claimReferralGrant", input, options)).data;
399
+ }
400
+ async clearReferralTestData(input, options) {
401
+ return (await this.send("clearReferralTestData", input, options)).data;
402
+ }
403
+ async commitReferralImport(input, options) {
404
+ return (await this.send("commitReferralImport", input, options)).data;
405
+ }
406
+ async confirmReferralBrandEmailVerification(input, options) {
407
+ return (await this.send("confirmReferralBrandEmailVerification", input, options)).data;
408
+ }
409
+ async confirmReferralFlag(input, options) {
410
+ return (await this.send("confirmReferralFlag", input, options)).data;
411
+ }
412
+ async confirmReferralFlags(input, options) {
413
+ return (await this.send("confirmReferralFlags", input, options)).data;
414
+ }
415
+ async createReferralBonus(input, options) {
416
+ return (await this.send("createReferralBonus", input, options)).data;
417
+ }
418
+ async createReferralBrandUpload(input, options) {
419
+ return (await this.send("createReferralBrandUpload", input, options)).data;
420
+ }
421
+ async createReferralBroadcast(input, options) {
422
+ return (await this.send("createReferralBroadcast", input, options)).data;
423
+ }
424
+ async createReferralCode(input, options) {
425
+ return (await this.send("createReferralCode", input, options)).data;
426
+ }
427
+ async createReferralContest(input, options) {
428
+ return (await this.send("createReferralContest", input, options)).data;
429
+ }
430
+ async createReferralEmbedToken(input, options) {
431
+ return (await this.send("createReferralEmbedToken", input, options)).data;
432
+ }
433
+ async createReferralGroup(input, options) {
434
+ return (await this.send("createReferralGroup", input, options)).data;
435
+ }
436
+ async createReferralIntegration(input, options) {
437
+ return (await this.send("createReferralIntegration", input, options)).data;
438
+ }
439
+ async createReferralInvite(input, options) {
440
+ return (await this.send("createReferralInvite", input, options)).data;
441
+ }
442
+ async createReferralInvoiceLink(input, options) {
443
+ return (await this.send("createReferralInvoiceLink", input, options)).data;
444
+ }
445
+ async createReferralLibraryItem(input, options) {
446
+ return (await this.send("createReferralLibraryItem", input, options)).data;
447
+ }
448
+ async createReferralLibraryUpload(input, options) {
449
+ return (await this.send("createReferralLibraryUpload", input, options)).data;
450
+ }
451
+ async createReferralListingLogoUpload(input, options) {
452
+ return (await this.send("createReferralListingLogoUpload", input, options)).data;
453
+ }
454
+ async createReferralPayoutBatch(input, options) {
455
+ return (await this.send("createReferralPayoutBatch", input, options)).data;
456
+ }
457
+ async createReferralProgram(input, options) {
458
+ return (await this.send("createReferralProgram", input, options)).data;
459
+ }
460
+ async createReferralReward(input, options) {
461
+ return (await this.send("createReferralReward", input, options)).data;
462
+ }
463
+ async createReferralStatementLink(input, options) {
464
+ return (await this.send("createReferralStatementLink", input, options)).data;
465
+ }
466
+ async deactivateReferralCode(input, options) {
467
+ return (await this.send("deactivateReferralCode", input, options)).data;
468
+ }
469
+ async deleteReferralGroup(input, options) {
470
+ return (await this.send("deleteReferralGroup", input, options)).data;
471
+ }
472
+ async deleteReferralLibraryItem(input, options) {
473
+ return (await this.send("deleteReferralLibraryItem", input, options)).data;
474
+ }
475
+ async deleteReferralReward(input, options) {
476
+ return (await this.send("deleteReferralReward", input, options)).data;
477
+ }
478
+ async diffReferralProgramConfig(input, options) {
479
+ return (await this.send("diffReferralProgramConfig", input, options)).data;
480
+ }
481
+ async dismissReferralFlag(input, options) {
482
+ return (await this.send("dismissReferralFlag", input, options)).data;
483
+ }
484
+ async dismissReferralFlags(input, options) {
485
+ return (await this.send("dismissReferralFlags", input, options)).data;
486
+ }
487
+ async disqualifyReferralEntry(input, options) {
488
+ return (await this.send("disqualifyReferralEntry", input, options)).data;
489
+ }
490
+ async draftReferralProgramTerms(input, options) {
491
+ return (await this.send("draftReferralProgramTerms", input, options)).data;
492
+ }
493
+ async endReferralWaitlist(input, options) {
494
+ return (await this.send("endReferralWaitlist", input, options)).data;
495
+ }
496
+ async eraseReferralDataSubject(input, options) {
497
+ return (await this.send("eraseReferralDataSubject", input, options)).data;
498
+ }
499
+ async eraseReferralReferrer(input, options) {
500
+ return (await this.send("eraseReferralReferrer", input, options)).data;
501
+ }
502
+ async exportReferralReport(input, options) {
503
+ return (await this.send("exportReferralReport", input, options)).data;
504
+ }
505
+ async failReferralGrant(input, options) {
506
+ return (await this.send("failReferralGrant", input, options)).data;
507
+ }
508
+ async forfeitReferralCommissions(input, options) {
509
+ return (await this.send("forfeitReferralCommissions", input, options)).data;
510
+ }
511
+ async forgetReferralWaitlist(input, options) {
512
+ return (await this.send("forgetReferralWaitlist", input, options)).data;
513
+ }
514
+ async fulfilReferralGrant(input, options) {
515
+ return (await this.send("fulfilReferralGrant", input, options)).data;
516
+ }
517
+ async getReferralBrand(input = {}, options) {
518
+ return (await this.send("getReferralBrand", input, options)).data;
519
+ }
520
+ async getReferralBroadcast(input, options) {
521
+ return (await this.send("getReferralBroadcast", input, options)).data;
522
+ }
523
+ async getReferralContest(input, options) {
524
+ return (await this.send("getReferralContest", input, options)).data;
525
+ }
526
+ async getReferralCustomer(input, options) {
527
+ return (await this.send("getReferralCustomer", input, options)).data;
528
+ }
529
+ async getReferralCustomerReferral(input, options) {
530
+ return (await this.send("getReferralCustomerReferral", input, options)).data;
531
+ }
532
+ async getReferralDataSubject(input, options) {
533
+ return (await this.send("getReferralDataSubject", input, options)).data;
534
+ }
535
+ async getReferralDomain(input, options) {
536
+ return (await this.send("getReferralDomain", input, options)).data;
537
+ }
538
+ async getReferralEntry(input, options) {
539
+ return (await this.send("getReferralEntry", input, options)).data;
540
+ }
541
+ async getReferralFlag(input, options) {
542
+ return (await this.send("getReferralFlag", input, options)).data;
543
+ }
544
+ async getReferralGrant(input, options) {
545
+ return (await this.send("getReferralGrant", input, options)).data;
546
+ }
547
+ async getReferralIntegrationStatus(input, options) {
548
+ return (await this.send("getReferralIntegrationStatus", input, options)).data;
549
+ }
550
+ async getReferralLeaderboard(input, options) {
551
+ return (await this.send("getReferralLeaderboard", input, options)).data;
552
+ }
553
+ async getReferralListing(input, options) {
554
+ return (await this.send("getReferralListing", input, options)).data;
555
+ }
556
+ async getReferralNotifications(input, options) {
557
+ return (await this.send("getReferralNotifications", input, options)).data;
558
+ }
559
+ async getReferralOffer(input, options) {
560
+ return (await this.send("getReferralOffer", input, options)).data;
561
+ }
562
+ async getReferralPayout(input, options) {
563
+ return (await this.send("getReferralPayout", input, options)).data;
564
+ }
565
+ async getReferralPayoutBatch(input, options) {
566
+ return (await this.send("getReferralPayoutBatch", input, options)).data;
567
+ }
568
+ async getReferralPayoutDetails(input, options) {
569
+ return (await this.send("getReferralPayoutDetails", input, options)).data;
570
+ }
571
+ async getReferralPayoutPreview(input, options) {
572
+ return (await this.send("getReferralPayoutPreview", input, options)).data;
573
+ }
574
+ async getReferralPayoutSettings(input, options) {
575
+ return (await this.send("getReferralPayoutSettings", input, options)).data;
576
+ }
577
+ async getReferralPrivacyRequest(input, options) {
578
+ return (await this.send("getReferralPrivacyRequest", input, options)).data;
579
+ }
580
+ async getReferralProgram(input, options) {
581
+ return (await this.send("getReferralProgram", input, options)).data;
582
+ }
583
+ async getReferralProgramConfig(input, options) {
584
+ return (await this.send("getReferralProgramConfig", input, options)).data;
585
+ }
586
+ async getReferralProgramHelp(input, options) {
587
+ return (await this.send("getReferralProgramHelp", input, options)).data;
588
+ }
589
+ async getReferralProgramStats(input, options) {
590
+ return (await this.send("getReferralProgramStats", input, options)).data;
591
+ }
592
+ async getReferralProgramSummary(input, options) {
593
+ return (await this.send("getReferralProgramSummary", input, options)).data;
594
+ }
595
+ async getReferralReferrer(input, options) {
596
+ return (await this.send("getReferralReferrer", input, options)).data;
597
+ }
598
+ async getReferralRiskPolicy(input, options) {
599
+ return (await this.send("getReferralRiskPolicy", input, options)).data;
600
+ }
601
+ async getReferralSecondTier(input, options) {
602
+ return (await this.send("getReferralSecondTier", input, options)).data;
603
+ }
604
+ async getReferralTaxSettings(input, options) {
605
+ return (await this.send("getReferralTaxSettings", input, options)).data;
606
+ }
607
+ async getReferralTaxYear(input, options) {
608
+ return (await this.send("getReferralTaxYear", input, options)).data;
609
+ }
610
+ async getReferralTranslationLanguage(input, options) {
611
+ return (await this.send("getReferralTranslationLanguage", input, options)).data;
612
+ }
613
+ async getReferralTranslations(input, options) {
614
+ return (await this.send("getReferralTranslations", input, options)).data;
615
+ }
616
+ async holdReferralPartnerPayouts(input, options) {
617
+ return (await this.send("holdReferralPartnerPayouts", input, options)).data;
618
+ }
619
+ async inviteReferralEntries(input, options) {
620
+ return (await this.send("inviteReferralEntries", input, options)).data;
621
+ }
622
+ async issueReferralInvoice(input, options) {
623
+ return (await this.send("issueReferralInvoice", input, options)).data;
624
+ }
625
+ async listReferralBroadcastReferrers(input, options) {
626
+ return (await this.send("listReferralBroadcastReferrers", input, options)).data;
627
+ }
628
+ async listReferralBroadcasts(input, options) {
629
+ return (await this.send("listReferralBroadcasts", input, options)).data;
630
+ }
631
+ async listReferralCodes(input, options) {
632
+ return (await this.send("listReferralCodes", input, options)).data;
633
+ }
634
+ async listReferralCommissions(input, options) {
635
+ return (await this.send("listReferralCommissions", input, options)).data;
636
+ }
637
+ async listReferralContests(input, options) {
638
+ return (await this.send("listReferralContests", input, options)).data;
639
+ }
640
+ async listReferralConversions(input, options) {
641
+ return (await this.send("listReferralConversions", input, options)).data;
642
+ }
643
+ async listReferralDomains(input = {}, options) {
644
+ return (await this.send("listReferralDomains", input, options)).data;
645
+ }
646
+ async listReferralEntries(input, options) {
647
+ return (await this.send("listReferralEntries", input, options)).data;
648
+ }
649
+ async listReferralFlags(input, options) {
650
+ return (await this.send("listReferralFlags", input, options)).data;
651
+ }
652
+ async listReferralGrants(input, options) {
653
+ return (await this.send("listReferralGrants", input, options)).data;
654
+ }
655
+ async listReferralGroups(input, options) {
656
+ return (await this.send("listReferralGroups", input, options)).data;
657
+ }
658
+ async listReferralImportInvites(input, options) {
659
+ return (await this.send("listReferralImportInvites", input, options)).data;
660
+ }
661
+ async listReferralImports(input, options) {
662
+ return (await this.send("listReferralImports", input, options)).data;
663
+ }
664
+ async listReferralIntegrations(input, options) {
665
+ return (await this.send("listReferralIntegrations", input, options)).data;
666
+ }
667
+ async listReferralInvites(input, options) {
668
+ return (await this.send("listReferralInvites", input, options)).data;
669
+ }
670
+ async listReferralLibrary(input, options) {
671
+ return (await this.send("listReferralLibrary", input, options)).data;
672
+ }
673
+ async listReferralLinkHosts(input, options) {
674
+ return (await this.send("listReferralLinkHosts", input, options)).data;
675
+ }
676
+ async listReferralLinks(input, options) {
677
+ return (await this.send("listReferralLinks", input, options)).data;
678
+ }
679
+ async listReferralPartners(input, options) {
680
+ return (await this.send("listReferralPartners", input, options)).data;
681
+ }
682
+ async listReferralPayoutInvoices(input, options) {
683
+ return (await this.send("listReferralPayoutInvoices", input, options)).data;
684
+ }
685
+ async listReferralPayoutProviders(input, options) {
686
+ return (await this.send("listReferralPayoutProviders", input, options)).data;
687
+ }
688
+ async listReferralPayouts(input, options) {
689
+ return (await this.send("listReferralPayouts", input, options)).data;
690
+ }
691
+ async listReferralPrivacyRequests(input, options) {
692
+ return (await this.send("listReferralPrivacyRequests", input, options)).data;
693
+ }
694
+ async listReferralPrograms(input = {}, options) {
695
+ return (await this.send("listReferralPrograms", input, options)).data;
696
+ }
697
+ async listReferralReferrers(input, options) {
698
+ return (await this.send("listReferralReferrers", input, options)).data;
699
+ }
700
+ async listReferralRewards(input, options) {
701
+ return (await this.send("listReferralRewards", input, options)).data;
702
+ }
703
+ async listReferralTaxForms(input, options) {
704
+ return (await this.send("listReferralTaxForms", input, options)).data;
705
+ }
706
+ async markReferralPayoutPaid(input, options) {
707
+ return (await this.send("markReferralPayoutPaid", input, options)).data;
708
+ }
709
+ async markReferralReferrerRewardsSeen(input, options) {
710
+ return (await this.send("markReferralReferrerRewardsSeen", input, options)).data;
711
+ }
712
+ async pauseReferralProgram(input, options) {
713
+ return (await this.send("pauseReferralProgram", input, options)).data;
714
+ }
715
+ async ping(input = {}, options) {
716
+ return (await this.send("ping", input, options)).data;
717
+ }
718
+ async previewReferralImport(input, options) {
719
+ return (await this.send("previewReferralImport", input, options)).data;
720
+ }
721
+ async recalculateReferralLevels(input, options) {
722
+ return (await this.send("recalculateReferralLevels", input, options)).data;
723
+ }
724
+ async recordReferralClick(input, options) {
725
+ return (await this.send("recordReferralClick", input, options)).data;
726
+ }
727
+ async recordReferralConversion(input, options) {
728
+ return (await this.send("recordReferralConversion", input, options)).data;
729
+ }
730
+ async reissueReferralInvoice(input, options) {
731
+ return (await this.send("reissueReferralInvoice", input, options)).data;
732
+ }
733
+ async rejectReferralPartner(input, options) {
734
+ return (await this.send("rejectReferralPartner", input, options)).data;
735
+ }
736
+ async removeReferralDomain(input, options) {
737
+ return (await this.send("removeReferralDomain", input, options)).data;
738
+ }
739
+ async reportReferralPayoutResult(input, options) {
740
+ return (await this.send("reportReferralPayoutResult", input, options)).data;
741
+ }
742
+ async requalifyReferralEntry(input, options) {
743
+ return (await this.send("requalifyReferralEntry", input, options)).data;
744
+ }
745
+ async resumeReferralProgram(input, options) {
746
+ return (await this.send("resumeReferralProgram", input, options)).data;
747
+ }
748
+ async revokeReferralEmbedSessions(input, options) {
749
+ return (await this.send("revokeReferralEmbedSessions", input, options)).data;
750
+ }
751
+ async revokeReferralInvite(input, options) {
752
+ return (await this.send("revokeReferralInvite", input, options)).data;
753
+ }
754
+ async rotateReferralEmbedKey(input, options) {
755
+ return (await this.send("rotateReferralEmbedKey", input, options)).data;
756
+ }
757
+ async rotateReferralSignupLink(input, options) {
758
+ return (await this.send("rotateReferralSignupLink", input, options)).data;
759
+ }
760
+ async rotateReferralWaitlistPage(input, options) {
761
+ return (await this.send("rotateReferralWaitlistPage", input, options)).data;
762
+ }
763
+ async sendReferralBroadcast(input, options) {
764
+ return (await this.send("sendReferralBroadcast", input, options)).data;
765
+ }
766
+ async sendReferralGrant(input, options) {
767
+ return (await this.send("sendReferralGrant", input, options)).data;
768
+ }
769
+ async sendReferralPayoutBatch(input, options) {
770
+ return (await this.send("sendReferralPayoutBatch", input, options)).data;
771
+ }
772
+ async sendReferralTestSale(input, options) {
773
+ return (await this.send("sendReferralTestSale", input, options)).data;
774
+ }
775
+ async setReferralIntegrationSecret(input, options) {
776
+ return (await this.send("setReferralIntegrationSecret", input, options)).data;
777
+ }
778
+ async startReferralBrandEmailVerification(input, options) {
779
+ return (await this.send("startReferralBrandEmailVerification", input, options)).data;
780
+ }
781
+ async syncReferralShopifyCodes(input, options) {
782
+ return (await this.send("syncReferralShopifyCodes", input, options)).data;
783
+ }
784
+ async syncReferralStripeCodes(input, options) {
785
+ return (await this.send("syncReferralStripeCodes", input, options)).data;
786
+ }
787
+ async testReferralBroadcast(input, options) {
788
+ return (await this.send("testReferralBroadcast", input, options)).data;
789
+ }
790
+ async testReferralPayoutProvider(input, options) {
791
+ return (await this.send("testReferralPayoutProvider", input, options)).data;
792
+ }
793
+ async translateReferralProgram(input, options) {
794
+ return (await this.send("translateReferralProgram", input, options)).data;
795
+ }
796
+ async unbanReferralPartner(input, options) {
797
+ return (await this.send("unbanReferralPartner", input, options)).data;
798
+ }
799
+ async updateReferralBrand(input, options) {
800
+ return (await this.send("updateReferralBrand", input, options)).data;
801
+ }
802
+ async updateReferralBroadcast(input, options) {
803
+ return (await this.send("updateReferralBroadcast", input, options)).data;
804
+ }
805
+ async updateReferralCode(input, options) {
806
+ return (await this.send("updateReferralCode", input, options)).data;
807
+ }
808
+ async updateReferralContest(input, options) {
809
+ return (await this.send("updateReferralContest", input, options)).data;
810
+ }
811
+ async updateReferralEntry(input, options) {
812
+ return (await this.send("updateReferralEntry", input, options)).data;
813
+ }
814
+ async updateReferralGroup(input, options) {
815
+ return (await this.send("updateReferralGroup", input, options)).data;
816
+ }
817
+ async updateReferralLibraryItem(input, options) {
818
+ return (await this.send("updateReferralLibraryItem", input, options)).data;
819
+ }
820
+ async updateReferralListing(input, options) {
821
+ return (await this.send("updateReferralListing", input, options)).data;
822
+ }
823
+ async updateReferralNotifications(input, options) {
824
+ return (await this.send("updateReferralNotifications", input, options)).data;
825
+ }
826
+ async updateReferralPartner(input, options) {
827
+ return (await this.send("updateReferralPartner", input, options)).data;
828
+ }
829
+ async updateReferralPayoutSettings(input, options) {
830
+ return (await this.send("updateReferralPayoutSettings", input, options)).data;
831
+ }
832
+ async updateReferralProgram(input, options) {
833
+ return (await this.send("updateReferralProgram", input, options)).data;
834
+ }
835
+ async updateReferralReferrer(input, options) {
836
+ return (await this.send("updateReferralReferrer", input, options)).data;
837
+ }
838
+ async updateReferralReward(input, options) {
839
+ return (await this.send("updateReferralReward", input, options)).data;
840
+ }
841
+ async updateReferralRiskPolicy(input, options) {
842
+ return (await this.send("updateReferralRiskPolicy", input, options)).data;
843
+ }
844
+ async updateReferralSecondTier(input, options) {
845
+ return (await this.send("updateReferralSecondTier", input, options)).data;
846
+ }
847
+ async updateReferralTaxSettings(input, options) {
848
+ return (await this.send("updateReferralTaxSettings", input, options)).data;
849
+ }
850
+ async updateReferralTranslations(input, options) {
851
+ return (await this.send("updateReferralTranslations", input, options)).data;
852
+ }
853
+ async upsertReferralEntry(input, options) {
854
+ return (await this.send("upsertReferralEntry", input, options)).data;
855
+ }
856
+ async upsertReferralReferrer(input, options) {
857
+ return (await this.send("upsertReferralReferrer", input, options)).data;
858
+ }
859
+ }
860
+ function errorOf(status, body, redact, retryAfterHeader, resend) {
861
+ let code = "http_error";
862
+ let message = `The request failed with status ${status}.`;
863
+ let requestId;
864
+ let fields;
865
+ let approval;
866
+ if (isObject(body)) {
867
+ if (typeof body.code === "string")
868
+ code = body.code;
869
+ if (typeof body.error === "string")
870
+ message = body.error;
871
+ if (typeof body.request_id === "string")
872
+ requestId = redact(body.request_id).slice(0, 100);
873
+ if (isObject(body.fields)) {
874
+ fields = {};
875
+ for (const [name, rule] of Object.entries(body.fields))
876
+ if (typeof rule === "string")
877
+ fields[redact(name).slice(0, 100)] = redact(rule).slice(0, 300);
878
+ }
879
+ const a = body.approval;
880
+ if (isObject(a) && typeof a.id === "string" && UUID_SHAPE.test(a.id)) {
881
+ const id = a.id.toLowerCase();
882
+ approval = { id, url: `${APPROVALS_URL}/${encodeURIComponent(id)}`, expiresAt: typeof a.expires_at === "string" ? a.expires_at : null };
883
+ }
884
+ }
885
+ const seconds = retryAfterHeader !== null && /^\d{1,6}$/.test(retryAfterHeader.trim()) ? Number(retryAfterHeader.trim()) : undefined;
886
+ return new BoltClawApiError({ status, code: redact(code).slice(0, 80), message: redact(message).slice(0, 500), requestId, fields, approval: status === 428 ? approval : undefined, retryAfter: seconds }, resend);
887
+ }
888
+ export function createBoltClawClient(options) {
889
+ return new BoltClawClient(options);
890
+ }
891
+ //# sourceMappingURL=api.js.map