@lockerverse/sdk 0.1.17 → 0.2.19

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/types.d.ts CHANGED
@@ -84,13 +84,15 @@ declare class LockerverseSdkError extends Error {
84
84
  readonly code: LockerverseSdkErrorCode;
85
85
  readonly operation: LockerverseSdkOperation;
86
86
  readonly reportable: boolean;
87
+ readonly recoveryRecommended: boolean;
87
88
  readonly sdkVersion: string;
88
89
  readonly status: number | undefined;
89
- constructor({ code, message, operation, reportable, status }: {
90
+ constructor({ code, message, operation, reportable, recoveryRecommended, status }: {
90
91
  code: LockerverseSdkErrorCode;
91
92
  message: string;
92
93
  operation: LockerverseSdkOperation;
93
94
  reportable: boolean;
95
+ recoveryRecommended?: boolean;
94
96
  status?: number;
95
97
  });
96
98
  }
@@ -127,17 +129,12 @@ type LockerverseCheckoutQuote = LockerverseCheckoutAmounts & {
127
129
  paymentOption: "one-time";
128
130
  lineItems: LockerverseCheckoutLineItem[];
129
131
  };
130
- type LockerverseCheckoutTotal = LockerverseCheckoutQuote;
131
132
  type LockerverseCheckoutPricingInput = {
132
133
  email?: string;
133
134
  includeServiceFee?: boolean;
134
135
  promoCode?: string;
135
136
  tipCents?: number;
136
137
  };
137
- type LockerverseCheckoutPreview = LockerverseCheckoutAmounts & {
138
- appliedDiscount: null;
139
- authoritative: false;
140
- };
141
138
  type LockerversePaymentStatus = "action_required" | "failed" | "pending" | "success";
142
139
  type LockerversePaymentResult = {
143
140
  checkoutId: string;
@@ -156,63 +153,23 @@ type LockerversePaymentSubmission = {
156
153
  metadata?: Record<string, string>;
157
154
  phone?: string;
158
155
  };
159
- type LockerverseWidgetState = {
160
- phase: "idle";
161
- selection: LockerverseSelection;
162
- } | {
163
- phase: "loading";
164
- selection: LockerverseSelection;
165
- } | {
166
- phase: "ready";
167
- catalog: LockerverseCatalog;
168
- selection: LockerverseSelection;
169
- preview: LockerverseCheckoutPreview | null;
170
- } | {
171
- phase: "quoting";
172
- catalog: LockerverseCatalog;
173
- selection: LockerverseSelection;
174
- preview: LockerverseCheckoutPreview;
175
- } | {
176
- phase: "quoted";
177
- catalog: LockerverseCatalog;
178
- selection: LockerverseSelection;
179
- preview: LockerverseCheckoutPreview;
180
- quote: LockerverseCheckoutTotal;
181
- } | {
182
- phase: "submitting";
183
- catalog: LockerverseCatalog;
184
- selection: LockerverseSelection;
185
- preview: LockerverseCheckoutPreview;
186
- quote: LockerverseCheckoutTotal;
187
- } | {
188
- phase: "recovering";
189
- catalog: LockerverseCatalog | null;
190
- selection: LockerverseSelection;
191
- paymentReference: string;
192
- } | {
193
- phase: "payment";
194
- catalog: LockerverseCatalog | null;
195
- selection: LockerverseSelection;
196
- quote: LockerverseCheckoutTotal | null;
197
- payment: LockerversePaymentResult;
198
- } | {
199
- phase: "error";
200
- catalog: LockerverseCatalog | null;
201
- selection: LockerverseSelection;
202
- error: LockerverseSdkError;
203
- recoverablePaymentReference: string | null;
204
- };
205
- type LockerverseSelectionItem = {
156
+ type LockerverseCheckoutItem = {
206
157
  productId: string;
207
- productSlug: string;
208
158
  quantity: number;
209
159
  } | {
210
160
  productId: string;
211
- productSlug: string;
212
161
  amountCents: number;
213
162
  };
214
- type LockerverseSelection = {
215
- items: LockerverseSelectionItem[];
163
+ type LockerverseCalculateTotalInput = LockerverseCheckoutPricingInput & {
164
+ items: LockerverseCheckoutItem[];
165
+ };
166
+ type LockerversePreparedCheckout = Readonly<LockerverseCheckoutQuote & {
167
+ items: readonly LockerverseCheckoutItem[];
168
+ pricing: Readonly<LockerverseCheckoutPricingInput>;
169
+ }>;
170
+ type LockerverseSubmitPaymentInput = {
171
+ checkout: LockerversePreparedCheckout;
172
+ submission: LockerversePaymentSubmission;
216
173
  };
217
174
  type CreateLockerverseWidgetBaseOptions = {
218
175
  communitySlug: string;
@@ -229,20 +186,12 @@ type CreateLockerverseWidgetOptions = CreateLockerverseWidgetBaseOptions & ({
229
186
  apiBaseUrl?: undefined;
230
187
  environment?: "production";
231
188
  });
232
- type LockerverseWidget = {
233
- calculateTotal: (input?: LockerverseCheckoutPricingInput) => Promise<LockerverseCheckoutQuote>;
234
- clear: () => void;
235
- getSelection: () => LockerverseSelection;
236
- getState: () => LockerverseWidgetState;
237
- getPaymentStatus: (paymentReference?: string) => Promise<LockerversePaymentResult>;
189
+ type LockerverseCheckoutClient = {
190
+ calculateTotal: (input: LockerverseCalculateTotalInput) => Promise<LockerversePreparedCheckout>;
191
+ getPaymentStatus: (paymentReference: string) => Promise<LockerversePaymentResult>;
238
192
  load: () => Promise<LockerverseCatalog>;
239
- previewTotal: (input?: LockerverseCheckoutPricingInput) => LockerverseCheckoutPreview;
240
- remove: (productSlug: string) => void;
241
- setAmount: (productSlug: string, amountCents: number) => void;
242
- setQuantity: (productSlug: string, quantity: number) => void;
243
- submitPayment: (submission: LockerversePaymentSubmission) => Promise<LockerversePaymentResult>;
244
- subscribe: (listener: (state: LockerverseWidgetState) => void) => () => void;
193
+ submitPayment: (input: LockerverseSubmitPaymentInput) => Promise<LockerversePaymentResult>;
245
194
  };
246
195
  //#endregion
247
- export { LockerverseSingleOptionCustomField as A, LockerversePaymentSubmission as C, LockerverseSdkOperation as D, LockerverseSdkErrorCode as E, LockerverseWidgetState as F, LockerverseWidget as M, LockerverseWidgetConfiguration as N, LockerverseSelection as O, LockerverseWidgetFields as P, LockerversePaymentStatus as S, LockerverseSdkError as T, LockerverseEnvironment as _, LockerverseCheckoutAmounts as a, LockerversePaymentOption as b, LockerverseCheckoutPreview as c, LockerverseCheckoutQuote as d, LockerverseCheckoutTotal as f, LockerverseCustomFieldOption as g, LockerverseCustomFieldAnswerValue as h, LockerverseCatalog as i, LockerverseTextCustomField as j, LockerverseSelectionItem as k, LockerverseCheckoutPricingInput as l, LockerverseCustomFieldAnswer as m, LOCKERVERSE_SDK_VERSION as n, LockerverseCheckoutLineItem as o, LockerverseCustomField as p, LockerverseAppliedDiscount as r, LockerverseCheckoutPaymentConfiguration as s, CreateLockerverseWidgetOptions as t, LockerverseCheckoutPricingPolicy as u, LockerverseMultiOptionCustomField as v, LockerverseProduct as w, LockerversePaymentResult as x, LockerversePaymentConfiguration as y };
196
+ export { LockerverseSingleOptionCustomField as A, LockerversePaymentStatus as C, LockerverseSdkError as D, LockerverseProduct as E, LockerverseTextCustomField as M, LockerverseWidgetConfiguration as N, LockerverseSdkErrorCode as O, LockerverseWidgetFields as P, LockerversePaymentResult as S, LockerversePreparedCheckout as T, LockerverseCustomFieldOption as _, LockerverseCatalog as a, LockerversePaymentConfiguration as b, LockerverseCheckoutItem as c, LockerverseCheckoutPricingInput as d, LockerverseCheckoutPricingPolicy as f, LockerverseCustomFieldAnswerValue as g, LockerverseCustomFieldAnswer as h, LockerverseCalculateTotalInput as i, LockerverseSubmitPaymentInput as j, LockerverseSdkOperation as k, LockerverseCheckoutLineItem as l, LockerverseCustomField as m, LOCKERVERSE_SDK_VERSION as n, LockerverseCheckoutAmounts as o, LockerverseCheckoutQuote as p, LockerverseAppliedDiscount as r, LockerverseCheckoutClient as s, CreateLockerverseWidgetOptions as t, LockerverseCheckoutPaymentConfiguration as u, LockerverseEnvironment as v, LockerversePaymentSubmission as w, LockerversePaymentOption as x, LockerverseMultiOptionCustomField as y };
248
197
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";KAEY;KACA;cAEC;KAED;EACV;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV,SAAS;EACT,eAAe;EACf,UAAU;EACV,QAAQ;;KAGE;EACV;EACA;;KAGU;EACV;EACA;;KAGU,0CACV;EACE;;KAGQ;EACV;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;EAAiC;EAAY;;KAEpD;EACH;EACA;EACA;;KAGU,6BAA6B;EACvC;;KAGU,qCAAqC;EAC/C,SAAS;EACT;;KAGU,oCAAoC;EAC9C,SAAS;EACT;;KAGU,yBACR,6BACA,qCACA;KAEQ,kCACV,cAAc,0BACZ,cAAc;KAEN,6BACV,cAAc,yBAAyB,0BACrC,cAAc;EACZ,SAAS;EAAa,OAAO,kCAAkC;;KAGzD;EACV,cAAc;EACd;EACA,QAAQ;EACR;EACA;EACA;EACA;;KAGU;KASA;cASC,4BAA4B;WAC9B,MAAM;WACN,WAAW;WACX;WACA;WACA;EAEG,cACV,MACA,SACA,WACA,YACA;IAEA,MAAM;IACN;IACA,WAAW;IACX;IACA;;;KAYQ;EACV;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;;KAGU;EACV;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU,2BAA2B;EACrC,iBAAiB;EACjB;EACA;EACA,SAAS;EACT;EACA,WAAW;;KAGD,2BAA2B;KAE3B;EACV;EACA;EACA;EACA;;KAGU,6BAA6B;EACvC;EACA;;KAGU;KAMA;EACV;EACA;EACA,gBAAgB;EAChB;EACA;EACA;;KAGU;EACV;EACA,qBAAqB;EACrB;EACA;EACA;EACA,WAAW;EACX;;KAGU;EACN;EAAe,WAAW;;EAC1B;EAAkB,WAAW;;EAE7B;EACA,SAAS;EACT,WAAW;EACX,SAAS;;EAGT;EACA,SAAS;EACT,WAAW;EACX,SAAS;;EAGT;EACA,SAAS;EACT,WAAW;EACX,SAAS;EACT,OAAO;;EAGP;EACA,SAAS;EACT,WAAW;EACX,SAAS;EACT,OAAO;;EAGP;EACA,SAAS;EACT,WAAW;EACX;;EAGA;EACA,SAAS;EACT,WAAW;EACX,OAAO;EACP,SAAS;;EAGT;EACA,SAAS;EACT,WAAW;EACX,OAAO;EACP;;KAGM;EACN;EAAmB;EAAqB;;EACxC;EAAmB;EAAqB;;KAElC;EACV,OAAO;;KAGJ;EACH;EACA,eAAe,WAAW;EAC1B,WAAW,OAAO;EAClB;EACA;EACA;;KAGU,iCACV;EAGQ;EACA,aAAa;;EAGb;EACA;;KAIE;EACV,iBACE,QAAQ,oCACL,QAAQ;EACb;EACA,oBAAoB;EACpB,gBAAgB;EAChB,mBACE,8BACG,QAAQ;EACb,YAAY,QAAQ;EACpB,eACE,QAAQ,oCACL;EACL,SAAS;EACT,YAAY,qBAAqB;EACjC,cAAc,qBAAqB;EACnC,gBACE,YAAY,iCACT,QAAQ;EACb,YAAY,WAAW,OAAO"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";KAEY;KACA;cAEC;KAED;EACV;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV,SAAS;EACT,eAAe;EACf,UAAU;EACV,QAAQ;;KAGE;EACV;EACA;;KAGU;EACV;EACA;;KAGU,0CACV;EACE;;KAGQ;EACV;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;EAAiC;EAAY;;KAEpD;EACH;EACA;EACA;;KAGU,6BAA6B;EACvC;;KAGU,qCAAqC;EAC/C,SAAS;EACT;;KAGU,oCAAoC;EAC9C,SAAS;EACT;;KAGU,yBACR,6BACA,qCACA;KAEQ,kCACV,cAAc,0BACZ,cAAc;KAEN,6BACV,cAAc,yBAAyB,0BACrC,cAAc;EACZ,SAAS;EAAa,OAAO,kCAAkC;;KAGzD;EACV,cAAc;EACd;EACA,QAAQ;EACR;EACA;EACA;EACA;;KAGU;KASA;cASC,4BAA4B;WAC9B,MAAM;WACN,WAAW;WACX;WACA;WACA;WACA;EAEG,cACV,MACA,SACA,WACA,YACA,qBACA;IAEA,MAAM;IACN;IACA,WAAW;IACX;IACA;IACA;;;KAaQ;EACV;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;;KAGU;EACV;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU,2BAA2B;EACrC,iBAAiB;EACjB;EACA;EACA,SAAS;EACT;EACA,WAAW;;KAGD;EACV;EACA;EACA;EACA;;KAGU;KAMA;EACV;EACA;EACA,gBAAgB;EAChB;EACA;EACA;;KAGU;EACV;EACA,qBAAqB;EACrB;EACA;EACA;EACA,WAAW;EACX;;KAGU;EACN;EAAmB;;EACnB;EAAmB;;KAEb,iCAAiC;EAC3C,OAAO;;KAGG,8BAA8B,SACxC;EACE,gBAAgB;EAChB,SAAS,SAAS;;KAIV;EACV,UAAU;EACV,YAAY;;KAGT;EACH;EACA,eAAe,WAAW;EAC1B,WAAW,OAAO;EAClB;EACA;EACA;;KAGU,iCACV;EAGQ;EACA,aAAa;;EAGb;EACA;;KAIE;EACV,iBACE,OAAO,mCACJ,QAAQ;EACb,mBACE,6BACG,QAAQ;EACb,YAAY,QAAQ;EACpB,gBACE,OAAO,kCACJ,QAAQ"}
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- const e=`0.0.0-development`;var t=class extends Error{code;operation;reportable;sdkVersion;status;constructor({code:t,message:n,operation:r,reportable:i,status:a}){super(n),this.name=`LockerverseSdkError`,this.code=t,this.operation=r,this.reportable=i,this.sdkVersion=e,this.status=a}};export{t as n,e as t};
1
+ const e=`0.2.19`;var t=class extends Error{code;operation;reportable;recoveryRecommended;sdkVersion;status;constructor({code:t,message:n,operation:r,reportable:i,recoveryRecommended:a=!1,status:o}){super(n),this.name=`LockerverseSdkError`,this.code=t,this.operation=r,this.reportable=i,this.recoveryRecommended=a,this.sdkVersion=e,this.status=o}};export{t as n,e as t};
2
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["packageMetadata.version"],"sources":["../package.json","../src/types.ts"],"sourcesContent":["","import packageMetadata from \"../package.json\" with { type: \"json\" };\n\nexport type LockerversePaymentOption = \"one-time\" | \"monthly\" | \"annually\";\nexport type LockerverseEnvironment = \"development\" | \"production\";\n\nexport const LOCKERVERSE_SDK_VERSION = packageMetadata.version;\n\nexport type LockerverseProduct = {\n id: string;\n listingId: string;\n slug: string;\n name: string;\n description: string | null;\n pricingMode: \"fixed\" | \"custom\";\n paymentOption: LockerversePaymentOption;\n amountCents: number | null;\n minimumAmountCents: number | null;\n minimumQuantity: number | null;\n maximumQuantity: number | null;\n inventoryQuantity: number | null;\n acceptsDiscounts: boolean;\n};\n\nexport type LockerverseCatalog = {\n payment: LockerversePaymentConfiguration;\n pricingPolicy: LockerverseCheckoutPricingPolicy;\n products: LockerverseProduct[];\n widget: LockerverseWidgetConfiguration;\n};\n\nexport type LockerverseCheckoutPricingPolicy = {\n currency: \"usd\";\n serviceFeeRateBasisPoints: number;\n};\n\nexport type LockerversePaymentConfiguration = {\n currency: \"usd\";\n publishableKey: string;\n};\n\nexport type LockerverseCheckoutPaymentConfiguration =\n LockerversePaymentConfiguration & {\n connectedAccountId: string | null;\n };\n\nexport type LockerverseWidgetFields = {\n memberId: boolean;\n merchSize: boolean;\n phone: boolean;\n promoCode: boolean;\n serviceFee: boolean;\n shipping: boolean;\n tipping: boolean;\n};\n\nexport type LockerverseCustomFieldOption = { id: string; label: string };\n\ntype LockerverseCustomFieldBase = {\n id: string;\n label: string;\n required: boolean;\n};\n\nexport type LockerverseTextCustomField = LockerverseCustomFieldBase & {\n type: \"text\" | \"textarea\";\n};\n\nexport type LockerverseSingleOptionCustomField = LockerverseCustomFieldBase & {\n options: LockerverseCustomFieldOption[];\n type: \"radio\" | \"select\";\n};\n\nexport type LockerverseMultiOptionCustomField = LockerverseCustomFieldBase & {\n options: LockerverseCustomFieldOption[];\n type: \"checkboxes\" | \"multi_select\";\n};\n\nexport type LockerverseCustomField =\n | LockerverseTextCustomField\n | LockerverseSingleOptionCustomField\n | LockerverseMultiOptionCustomField;\n\nexport type LockerverseCustomFieldAnswerValue<\n Field extends LockerverseCustomField,\n> = Field extends LockerverseMultiOptionCustomField ? string[] : string;\n\nexport type LockerverseCustomFieldAnswer<\n Field extends LockerverseCustomField = LockerverseCustomField,\n> = Field extends LockerverseCustomField\n ? { fieldId: Field[\"id\"]; value: LockerverseCustomFieldAnswerValue<Field> }\n : never;\n\nexport type LockerverseWidgetConfiguration = {\n customFields: LockerverseCustomField[];\n description: string | null;\n fields: LockerverseWidgetFields;\n id: string;\n name: string;\n showCommunityBranding: boolean;\n title: string | null;\n};\n\nexport type LockerverseSdkErrorCode =\n | \"widget_load_failed\"\n | \"signup_load_failed\"\n | \"signup_submit_failed\"\n | \"total_calculation_failed\"\n | \"payment_submit_failed\"\n | \"payment_status_failed\"\n | \"invalid_selection\";\n\nexport type LockerverseSdkOperation =\n | \"load_widget\"\n | \"load_signup\"\n | \"submit_signup\"\n | \"calculate_total\"\n | \"submit_payment\"\n | \"get_payment_status\"\n | \"update_selection\";\n\nexport class LockerverseSdkError extends Error {\n readonly code: LockerverseSdkErrorCode;\n readonly operation: LockerverseSdkOperation;\n readonly reportable: boolean;\n readonly sdkVersion: string;\n readonly status: number | undefined;\n\n constructor({\n code,\n message,\n operation,\n reportable,\n status,\n }: {\n code: LockerverseSdkErrorCode;\n message: string;\n operation: LockerverseSdkOperation;\n reportable: boolean;\n status?: number;\n }) {\n super(message);\n this.name = \"LockerverseSdkError\";\n this.code = code;\n this.operation = operation;\n this.reportable = reportable;\n this.sdkVersion = LOCKERVERSE_SDK_VERSION;\n this.status = status;\n }\n}\n\nexport type LockerverseCheckoutLineItem = {\n productId: string;\n productName: string;\n listingId: string;\n listingSlug: string;\n acceptsDiscounts: boolean;\n pricingMode: \"fixed\" | \"custom\";\n paymentOption: LockerversePaymentOption;\n quantity: number;\n unitAmountCents: number;\n subtotalCents: number;\n};\n\nexport type LockerverseAppliedDiscount = {\n percentageOff: number;\n source: \"email_list\" | \"promo_code\";\n};\n\nexport type LockerverseCheckoutAmounts = {\n amountCents: number;\n discountableSubtotalCents: number;\n discountCents: number;\n serviceFeeCents: number;\n subtotalCents: number;\n tipCents: number;\n totalCents: number;\n};\n\nexport type LockerverseCheckoutQuote = LockerverseCheckoutAmounts & {\n appliedDiscount: LockerverseAppliedDiscount | null;\n authoritative: true;\n paymentReference: string;\n payment: LockerverseCheckoutPaymentConfiguration;\n paymentOption: \"one-time\";\n lineItems: LockerverseCheckoutLineItem[];\n};\n\nexport type LockerverseCheckoutTotal = LockerverseCheckoutQuote;\n\nexport type LockerverseCheckoutPricingInput = {\n email?: string;\n includeServiceFee?: boolean;\n promoCode?: string;\n tipCents?: number;\n};\n\nexport type LockerverseCheckoutPreview = LockerverseCheckoutAmounts & {\n appliedDiscount: null;\n authoritative: false;\n};\n\nexport type LockerversePaymentStatus =\n | \"action_required\"\n | \"failed\"\n | \"pending\"\n | \"success\";\n\nexport type LockerversePaymentResult = {\n checkoutId: string;\n paymentReference: string;\n checkoutStatus: LockerversePaymentStatus;\n clientSecret: string | null;\n requiresAction: boolean;\n status: string | null;\n};\n\nexport type LockerversePaymentSubmission = {\n confirmationToken: string;\n customFieldAnswers?: LockerverseCustomFieldAnswer[];\n email: string;\n memberId?: string;\n merchSize?: \"XS\" | \"S\" | \"M\" | \"L\" | \"XL\" | \"XXL\" | \"XXXL\";\n metadata?: Record<string, string>;\n phone?: string;\n};\n\nexport type LockerverseWidgetState =\n | { phase: \"idle\"; selection: LockerverseSelection }\n | { phase: \"loading\"; selection: LockerverseSelection }\n | {\n phase: \"ready\";\n catalog: LockerverseCatalog;\n selection: LockerverseSelection;\n preview: LockerverseCheckoutPreview | null;\n }\n | {\n phase: \"quoting\";\n catalog: LockerverseCatalog;\n selection: LockerverseSelection;\n preview: LockerverseCheckoutPreview;\n }\n | {\n phase: \"quoted\";\n catalog: LockerverseCatalog;\n selection: LockerverseSelection;\n preview: LockerverseCheckoutPreview;\n quote: LockerverseCheckoutTotal;\n }\n | {\n phase: \"submitting\";\n catalog: LockerverseCatalog;\n selection: LockerverseSelection;\n preview: LockerverseCheckoutPreview;\n quote: LockerverseCheckoutTotal;\n }\n | {\n phase: \"recovering\";\n catalog: LockerverseCatalog | null;\n selection: LockerverseSelection;\n paymentReference: string;\n }\n | {\n phase: \"payment\";\n catalog: LockerverseCatalog | null;\n selection: LockerverseSelection;\n quote: LockerverseCheckoutTotal | null;\n payment: LockerversePaymentResult;\n }\n | {\n phase: \"error\";\n catalog: LockerverseCatalog | null;\n selection: LockerverseSelection;\n error: LockerverseSdkError;\n recoverablePaymentReference: string | null;\n };\n\nexport type LockerverseSelectionItem =\n | { productId: string; productSlug: string; quantity: number }\n | { productId: string; productSlug: string; amountCents: number };\n\nexport type LockerverseSelection = {\n items: LockerverseSelectionItem[];\n};\n\ntype CreateLockerverseWidgetBaseOptions = {\n communitySlug: string;\n fetch?: typeof globalThis.fetch;\n onError?: (error: LockerverseSdkError) => void;\n requestTimeoutMs?: number;\n sentryDsn?: string | null;\n widgetSlug: string;\n};\n\nexport type CreateLockerverseWidgetOptions =\n CreateLockerverseWidgetBaseOptions &\n (\n | {\n apiBaseUrl: string;\n environment: LockerverseEnvironment;\n }\n | {\n apiBaseUrl?: undefined;\n environment?: \"production\";\n }\n );\n\nexport type LockerverseWidget = {\n calculateTotal: (\n input?: LockerverseCheckoutPricingInput\n ) => Promise<LockerverseCheckoutQuote>;\n clear: () => void;\n getSelection: () => LockerverseSelection;\n getState: () => LockerverseWidgetState;\n getPaymentStatus: (\n paymentReference?: string\n ) => Promise<LockerversePaymentResult>;\n load: () => Promise<LockerverseCatalog>;\n previewTotal: (\n input?: LockerverseCheckoutPricingInput\n ) => LockerverseCheckoutPreview;\n remove: (productSlug: string) => void;\n setAmount: (productSlug: string, amountCents: number) => void;\n setQuantity: (productSlug: string, quantity: number) => void;\n submitPayment: (\n submission: LockerversePaymentSubmission\n ) => Promise<LockerversePaymentResult>;\n subscribe: (listener: (state: LockerverseWidgetState) => void) => () => void;\n};\n"],"mappings":"ACKA,MAAa,EAA0BA,oBAmHvC,IAAa,EAAb,cAAyC,KAAM,CAC7C,KACA,UACA,WACA,WACA,OAEA,YAAY,CACV,OACA,UACA,YACA,aACA,UAOC,CACD,MAAM,CAAO,EACb,KAAK,KAAO,sBACZ,KAAK,KAAO,EACZ,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,WAAa,EAClB,KAAK,OAAS,CAChB,CACF"}
1
+ {"version":3,"file":"types.js","names":["packageMetadata.version"],"sources":["../package.json","../src/types.ts"],"sourcesContent":["","import packageMetadata from \"../package.json\" with { type: \"json\" };\n\nexport type LockerversePaymentOption = \"one-time\" | \"monthly\" | \"annually\";\nexport type LockerverseEnvironment = \"development\" | \"production\";\n\nexport const LOCKERVERSE_SDK_VERSION = packageMetadata.version;\n\nexport type LockerverseProduct = {\n id: string;\n listingId: string;\n slug: string;\n name: string;\n description: string | null;\n pricingMode: \"fixed\" | \"custom\";\n paymentOption: LockerversePaymentOption;\n amountCents: number | null;\n minimumAmountCents: number | null;\n minimumQuantity: number | null;\n maximumQuantity: number | null;\n inventoryQuantity: number | null;\n acceptsDiscounts: boolean;\n};\n\nexport type LockerverseCatalog = {\n payment: LockerversePaymentConfiguration;\n pricingPolicy: LockerverseCheckoutPricingPolicy;\n products: LockerverseProduct[];\n widget: LockerverseWidgetConfiguration;\n};\n\nexport type LockerverseCheckoutPricingPolicy = {\n currency: \"usd\";\n serviceFeeRateBasisPoints: number;\n};\n\nexport type LockerversePaymentConfiguration = {\n currency: \"usd\";\n publishableKey: string;\n};\n\nexport type LockerverseCheckoutPaymentConfiguration =\n LockerversePaymentConfiguration & {\n connectedAccountId: string | null;\n };\n\nexport type LockerverseWidgetFields = {\n memberId: boolean;\n merchSize: boolean;\n phone: boolean;\n promoCode: boolean;\n serviceFee: boolean;\n shipping: boolean;\n tipping: boolean;\n};\n\nexport type LockerverseCustomFieldOption = { id: string; label: string };\n\ntype LockerverseCustomFieldBase = {\n id: string;\n label: string;\n required: boolean;\n};\n\nexport type LockerverseTextCustomField = LockerverseCustomFieldBase & {\n type: \"text\" | \"textarea\";\n};\n\nexport type LockerverseSingleOptionCustomField = LockerverseCustomFieldBase & {\n options: LockerverseCustomFieldOption[];\n type: \"radio\" | \"select\";\n};\n\nexport type LockerverseMultiOptionCustomField = LockerverseCustomFieldBase & {\n options: LockerverseCustomFieldOption[];\n type: \"checkboxes\" | \"multi_select\";\n};\n\nexport type LockerverseCustomField =\n | LockerverseTextCustomField\n | LockerverseSingleOptionCustomField\n | LockerverseMultiOptionCustomField;\n\nexport type LockerverseCustomFieldAnswerValue<\n Field extends LockerverseCustomField,\n> = Field extends LockerverseMultiOptionCustomField ? string[] : string;\n\nexport type LockerverseCustomFieldAnswer<\n Field extends LockerverseCustomField = LockerverseCustomField,\n> = Field extends LockerverseCustomField\n ? { fieldId: Field[\"id\"]; value: LockerverseCustomFieldAnswerValue<Field> }\n : never;\n\nexport type LockerverseWidgetConfiguration = {\n customFields: LockerverseCustomField[];\n description: string | null;\n fields: LockerverseWidgetFields;\n id: string;\n name: string;\n showCommunityBranding: boolean;\n title: string | null;\n};\n\nexport type LockerverseSdkErrorCode =\n | \"widget_load_failed\"\n | \"signup_load_failed\"\n | \"signup_submit_failed\"\n | \"total_calculation_failed\"\n | \"payment_submit_failed\"\n | \"payment_status_failed\"\n | \"invalid_selection\";\n\nexport type LockerverseSdkOperation =\n | \"load_widget\"\n | \"load_signup\"\n | \"submit_signup\"\n | \"calculate_total\"\n | \"submit_payment\"\n | \"get_payment_status\"\n | \"update_selection\";\n\nexport class LockerverseSdkError extends Error {\n readonly code: LockerverseSdkErrorCode;\n readonly operation: LockerverseSdkOperation;\n readonly reportable: boolean;\n readonly recoveryRecommended: boolean;\n readonly sdkVersion: string;\n readonly status: number | undefined;\n\n constructor({\n code,\n message,\n operation,\n reportable,\n recoveryRecommended = false,\n status,\n }: {\n code: LockerverseSdkErrorCode;\n message: string;\n operation: LockerverseSdkOperation;\n reportable: boolean;\n recoveryRecommended?: boolean;\n status?: number;\n }) {\n super(message);\n this.name = \"LockerverseSdkError\";\n this.code = code;\n this.operation = operation;\n this.reportable = reportable;\n this.recoveryRecommended = recoveryRecommended;\n this.sdkVersion = LOCKERVERSE_SDK_VERSION;\n this.status = status;\n }\n}\n\nexport type LockerverseCheckoutLineItem = {\n productId: string;\n productName: string;\n listingId: string;\n listingSlug: string;\n acceptsDiscounts: boolean;\n pricingMode: \"fixed\" | \"custom\";\n paymentOption: LockerversePaymentOption;\n quantity: number;\n unitAmountCents: number;\n subtotalCents: number;\n};\n\nexport type LockerverseAppliedDiscount = {\n percentageOff: number;\n source: \"email_list\" | \"promo_code\";\n};\n\nexport type LockerverseCheckoutAmounts = {\n amountCents: number;\n discountableSubtotalCents: number;\n discountCents: number;\n serviceFeeCents: number;\n subtotalCents: number;\n tipCents: number;\n totalCents: number;\n};\n\nexport type LockerverseCheckoutQuote = LockerverseCheckoutAmounts & {\n appliedDiscount: LockerverseAppliedDiscount | null;\n authoritative: true;\n paymentReference: string;\n payment: LockerverseCheckoutPaymentConfiguration;\n paymentOption: \"one-time\";\n lineItems: LockerverseCheckoutLineItem[];\n};\n\nexport type LockerverseCheckoutPricingInput = {\n email?: string;\n includeServiceFee?: boolean;\n promoCode?: string;\n tipCents?: number;\n};\n\nexport type LockerversePaymentStatus =\n | \"action_required\"\n | \"failed\"\n | \"pending\"\n | \"success\";\n\nexport type LockerversePaymentResult = {\n checkoutId: string;\n paymentReference: string;\n checkoutStatus: LockerversePaymentStatus;\n clientSecret: string | null;\n requiresAction: boolean;\n status: string | null;\n};\n\nexport type LockerversePaymentSubmission = {\n confirmationToken: string;\n customFieldAnswers?: LockerverseCustomFieldAnswer[];\n email: string;\n memberId?: string;\n merchSize?: \"XS\" | \"S\" | \"M\" | \"L\" | \"XL\" | \"XXL\" | \"XXXL\";\n metadata?: Record<string, string>;\n phone?: string;\n};\n\nexport type LockerverseCheckoutItem =\n | { productId: string; quantity: number }\n | { productId: string; amountCents: number };\n\nexport type LockerverseCalculateTotalInput = LockerverseCheckoutPricingInput & {\n items: LockerverseCheckoutItem[];\n};\n\nexport type LockerversePreparedCheckout = Readonly<\n LockerverseCheckoutQuote & {\n items: readonly LockerverseCheckoutItem[];\n pricing: Readonly<LockerverseCheckoutPricingInput>;\n }\n>;\n\nexport type LockerverseSubmitPaymentInput = {\n checkout: LockerversePreparedCheckout;\n submission: LockerversePaymentSubmission;\n};\n\ntype CreateLockerverseWidgetBaseOptions = {\n communitySlug: string;\n fetch?: typeof globalThis.fetch;\n onError?: (error: LockerverseSdkError) => void;\n requestTimeoutMs?: number;\n sentryDsn?: string | null;\n widgetSlug: string;\n};\n\nexport type CreateLockerverseWidgetOptions =\n CreateLockerverseWidgetBaseOptions &\n (\n | {\n apiBaseUrl: string;\n environment: LockerverseEnvironment;\n }\n | {\n apiBaseUrl?: undefined;\n environment?: \"production\";\n }\n );\n\nexport type LockerverseCheckoutClient = {\n calculateTotal: (\n input: LockerverseCalculateTotalInput\n ) => Promise<LockerversePreparedCheckout>;\n getPaymentStatus: (\n paymentReference: string\n ) => Promise<LockerversePaymentResult>;\n load: () => Promise<LockerverseCatalog>;\n submitPayment: (\n input: LockerverseSubmitPaymentInput\n ) => Promise<LockerversePaymentResult>;\n};\n"],"mappings":"ACKA,MAAa,EAA0BA,SAmHvC,IAAa,EAAb,cAAyC,KAAM,CAC7C,KACA,UACA,WACA,oBACA,WACA,OAEA,YAAY,CACV,OACA,UACA,YACA,aACA,sBAAsB,GACtB,UAQC,CACD,MAAM,CAAO,EACb,KAAK,KAAO,sBACZ,KAAK,KAAO,EACZ,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,oBAAsB,EAC3B,KAAK,WAAa,EAClB,KAAK,OAAS,CAChB,CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lockerverse/sdk",
3
- "version": "0.1.17",
3
+ "version": "0.2.19",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Lockerverse/lockerverse-sdk.git",