@lockerverse/sdk 0.1.17 → 0.2.18

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
  }
@@ -134,10 +136,6 @@ type LockerverseCheckoutPricingInput = {
134
136
  promoCode?: string;
135
137
  tipCents?: number;
136
138
  };
137
- type LockerverseCheckoutPreview = LockerverseCheckoutAmounts & {
138
- appliedDiscount: null;
139
- authoritative: false;
140
- };
141
139
  type LockerversePaymentStatus = "action_required" | "failed" | "pending" | "success";
142
140
  type LockerversePaymentResult = {
143
141
  checkoutId: string;
@@ -156,63 +154,23 @@ type LockerversePaymentSubmission = {
156
154
  metadata?: Record<string, string>;
157
155
  phone?: string;
158
156
  };
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 = {
157
+ type LockerverseCheckoutItem = {
206
158
  productId: string;
207
- productSlug: string;
208
159
  quantity: number;
209
160
  } | {
210
161
  productId: string;
211
- productSlug: string;
212
162
  amountCents: number;
213
163
  };
214
- type LockerverseSelection = {
215
- items: LockerverseSelectionItem[];
164
+ type LockerverseCalculateTotalInput = LockerverseCheckoutPricingInput & {
165
+ items: LockerverseCheckoutItem[];
166
+ };
167
+ type LockerversePreparedCheckout = Readonly<LockerverseCheckoutQuote & {
168
+ items: readonly LockerverseCheckoutItem[];
169
+ pricing: Readonly<LockerverseCheckoutPricingInput>;
170
+ }>;
171
+ type LockerverseSubmitPaymentInput = {
172
+ checkout: LockerversePreparedCheckout;
173
+ submission: LockerversePaymentSubmission;
216
174
  };
217
175
  type CreateLockerverseWidgetBaseOptions = {
218
176
  communitySlug: string;
@@ -229,20 +187,12 @@ type CreateLockerverseWidgetOptions = CreateLockerverseWidgetBaseOptions & ({
229
187
  apiBaseUrl?: undefined;
230
188
  environment?: "production";
231
189
  });
232
- type LockerverseWidget = {
233
- calculateTotal: (input?: LockerverseCheckoutPricingInput) => Promise<LockerverseCheckoutQuote>;
234
- clear: () => void;
235
- getSelection: () => LockerverseSelection;
236
- getState: () => LockerverseWidgetState;
237
- getPaymentStatus: (paymentReference?: string) => Promise<LockerversePaymentResult>;
190
+ type LockerverseCheckoutClient = {
191
+ calculateTotal: (input: LockerverseCalculateTotalInput) => Promise<LockerversePreparedCheckout>;
192
+ getPaymentStatus: (paymentReference: string) => Promise<LockerversePaymentResult>;
238
193
  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;
194
+ submitPayment: (input: LockerverseSubmitPaymentInput) => Promise<LockerversePaymentResult>;
245
195
  };
246
196
  //#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 };
197
+ export { LockerverseSdkOperation as A, LockerversePaymentResult as C, LockerverseProduct as D, LockerversePreparedCheckout as E, LockerverseWidgetFields as F, LockerverseSubmitPaymentInput as M, LockerverseTextCustomField as N, LockerverseSdkError as O, LockerverseWidgetConfiguration as P, LockerversePaymentOption as S, LockerversePaymentSubmission as T, LockerverseCustomFieldAnswerValue as _, LockerverseCatalog as a, LockerverseMultiOptionCustomField as b, LockerverseCheckoutItem as c, LockerverseCheckoutPricingInput as d, LockerverseCheckoutPricingPolicy as f, LockerverseCustomFieldAnswer as g, LockerverseCustomField as h, LockerverseCalculateTotalInput as i, LockerverseSingleOptionCustomField as j, LockerverseSdkErrorCode as k, LockerverseCheckoutLineItem as l, LockerverseCheckoutTotal 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, LockerverseCustomFieldOption as v, LockerversePaymentStatus as w, LockerversePaymentConfiguration as x, LockerverseEnvironment as y };
248
198
  //# 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,2BAA2B;KAE3B;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.18`;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 LockerverseCheckoutTotal = LockerverseCheckoutQuote;\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.18",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Lockerverse/lockerverse-sdk.git",