listbee 0.7.0 → 0.8.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 (52) hide show
  1. package/README.md +55 -69
  2. package/dist/cjs/deliverable.d.ts +57 -0
  3. package/dist/cjs/deliverable.js +90 -0
  4. package/dist/cjs/deliverable.js.map +1 -0
  5. package/dist/cjs/errors.d.ts +11 -0
  6. package/dist/cjs/errors.js +16 -1
  7. package/dist/cjs/errors.js.map +1 -1
  8. package/dist/cjs/generated/api-types.d.ts +177 -2
  9. package/dist/cjs/generated/enums.d.ts +1 -0
  10. package/dist/cjs/generated/enums.js +1 -0
  11. package/dist/cjs/generated/enums.js.map +1 -1
  12. package/dist/cjs/index.d.ts +2 -1
  13. package/dist/cjs/index.js +5 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/resources/customers.d.ts +0 -9
  16. package/dist/cjs/resources/customers.js +0 -13
  17. package/dist/cjs/resources/customers.js.map +1 -1
  18. package/dist/cjs/resources/listings.d.ts +35 -17
  19. package/dist/cjs/resources/listings.js +65 -22
  20. package/dist/cjs/resources/listings.js.map +1 -1
  21. package/dist/cjs/resources/orders.d.ts +9 -21
  22. package/dist/cjs/resources/orders.js +24 -25
  23. package/dist/cjs/resources/orders.js.map +1 -1
  24. package/dist/cjs/resources/webhooks.d.ts +0 -9
  25. package/dist/cjs/resources/webhooks.js +0 -17
  26. package/dist/cjs/resources/webhooks.js.map +1 -1
  27. package/dist/esm/deliverable.d.ts +57 -0
  28. package/dist/esm/deliverable.js +86 -0
  29. package/dist/esm/deliverable.js.map +1 -0
  30. package/dist/esm/errors.d.ts +11 -0
  31. package/dist/esm/errors.js +14 -0
  32. package/dist/esm/errors.js.map +1 -1
  33. package/dist/esm/generated/api-types.d.ts +177 -2
  34. package/dist/esm/generated/enums.d.ts +1 -0
  35. package/dist/esm/generated/enums.js +1 -0
  36. package/dist/esm/generated/enums.js.map +1 -1
  37. package/dist/esm/index.d.ts +2 -1
  38. package/dist/esm/index.js +3 -1
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/resources/customers.d.ts +0 -9
  41. package/dist/esm/resources/customers.js +0 -12
  42. package/dist/esm/resources/customers.js.map +1 -1
  43. package/dist/esm/resources/listings.d.ts +35 -17
  44. package/dist/esm/resources/listings.js +65 -22
  45. package/dist/esm/resources/listings.js.map +1 -1
  46. package/dist/esm/resources/orders.d.ts +9 -21
  47. package/dist/esm/resources/orders.js +24 -25
  48. package/dist/esm/resources/orders.js.map +1 -1
  49. package/dist/esm/resources/webhooks.d.ts +0 -9
  50. package/dist/esm/resources/webhooks.js +0 -17
  51. package/dist/esm/resources/webhooks.js.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Deliverable input builder — type-safe file handling for SDK methods.
3
+ */
4
+ import { readFileSync } from 'node:fs';
5
+ import { basename } from 'node:path';
6
+ /**
7
+ * Input builder for deliverables. Use static factory methods.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * Deliverable.file(Buffer.from('pdf'), 'guide.pdf')
12
+ * Deliverable.fromToken('file_tok_abc')
13
+ * Deliverable.url('https://example.com/secret')
14
+ * Deliverable.text('License key: ABCD-1234')
15
+ * ```
16
+ */
17
+ export class Deliverable {
18
+ constructor(fields) {
19
+ this._type = fields._type;
20
+ this._fileData = fields._fileData;
21
+ this._filename = fields._filename;
22
+ this._value = fields._value;
23
+ this._token = fields._token;
24
+ }
25
+ /**
26
+ * Create a file deliverable from a Buffer, Blob, or file path.
27
+ *
28
+ * @param source - File content or path.
29
+ * @param filename - Filename (required for Buffer/Blob, auto-detected for paths).
30
+ */
31
+ static file(source, filename) {
32
+ if (typeof source === 'string') {
33
+ return new Deliverable({
34
+ _type: 'file',
35
+ _fileData: readFileSync(source),
36
+ _filename: filename ?? basename(source),
37
+ });
38
+ }
39
+ if (!filename)
40
+ throw new Error('filename is required when source is Buffer or Blob');
41
+ return new Deliverable({
42
+ _type: 'file',
43
+ _fileData: source,
44
+ _filename: filename,
45
+ });
46
+ }
47
+ /**
48
+ * Create a file deliverable from a pre-uploaded file token.
49
+ *
50
+ * @param token - File token from `client.files.upload()` (valid 24 hours).
51
+ */
52
+ static fromToken(token) {
53
+ return new Deliverable({ _type: 'file', _token: token });
54
+ }
55
+ /**
56
+ * Create a URL redirect deliverable.
57
+ *
58
+ * @param url - HTTPS URL buyers will be redirected to after purchase.
59
+ */
60
+ static url(url) {
61
+ return new Deliverable({ _type: 'url', _value: url });
62
+ }
63
+ /**
64
+ * Create a plain text deliverable.
65
+ *
66
+ * @param content - Text content delivered to the buyer.
67
+ */
68
+ static text(content) {
69
+ return new Deliverable({ _type: 'text', _value: content });
70
+ }
71
+ /** True if this deliverable has file data that must be uploaded first. */
72
+ get needsUpload() {
73
+ return this._type === 'file' && this._fileData != null;
74
+ }
75
+ /** @internal Returns file data for upload. */
76
+ toUploadData() {
77
+ return this._fileData;
78
+ }
79
+ /** @internal Returns JSON body for the API. */
80
+ toApiBody(token) {
81
+ if (this._type === 'file')
82
+ return { type: 'file', token: token ?? this._token };
83
+ return { type: this._type, value: this._value };
84
+ }
85
+ }
86
+ //# sourceMappingURL=deliverable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverable.js","sourceRoot":"","sources":["../../src/deliverable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IAOtB,YAAoB,MAA2H;QAC7I,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAkB,EAAE,QAAiB;QAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAI,WAAW,CAAC;gBACrB,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC;gBAC/B,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACrF,OAAO,IAAI,WAAW,CAAC;YACrB,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,KAAa;QAC5B,OAAO,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,OAAe;QACzB,OAAO,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,0EAA0E;IAC1E,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;IACzD,CAAC;IAED,8CAA8C;IAC9C,YAAY;QACV,OAAO,IAAI,CAAC,SAAU,CAAC;IACzB,CAAC;IAED,+CAA+C;IAC/C,SAAS,CAAC,KAAc;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,MAAO,EAAE,CAAC;QACjF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC;IACnD,CAAC;CACF"}
@@ -86,6 +86,17 @@ export declare class InternalServerError extends APIStatusError {
86
86
  export declare class WebhookVerificationError extends ListBeeError {
87
87
  constructor(message: string);
88
88
  }
89
+ /**
90
+ * Raised when createComplete creates the listing but fails during file upload
91
+ * or deliverable attachment.
92
+ *
93
+ * The `listingId` property contains the draft that was created, so the caller
94
+ * can resume with individual `addDeliverable` calls.
95
+ */
96
+ export declare class PartialCreationError extends ListBeeError {
97
+ readonly listingId: string;
98
+ constructor(listingId: string, message: string);
99
+ }
89
100
  type ErrorBody = {
90
101
  type?: unknown;
91
102
  title?: unknown;
@@ -108,6 +108,20 @@ export class WebhookVerificationError extends ListBeeError {
108
108
  this.name = 'WebhookVerificationError';
109
109
  }
110
110
  }
111
+ /**
112
+ * Raised when createComplete creates the listing but fails during file upload
113
+ * or deliverable attachment.
114
+ *
115
+ * The `listingId` property contains the draft that was created, so the caller
116
+ * can resume with individual `addDeliverable` calls.
117
+ */
118
+ export class PartialCreationError extends ListBeeError {
119
+ constructor(listingId, message) {
120
+ super(message);
121
+ this.name = 'PartialCreationError';
122
+ this.listingId = listingId;
123
+ }
124
+ }
111
125
  /**
112
126
  * Parse an RFC 9457 error body and throw the appropriate typed exception.
113
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
@@ -224,7 +224,11 @@ export interface paths {
224
224
  * @description Replace all deliverables on a draft listing. Accepts an array of up to 3 deliverables (file, url, text). File tokens must be obtained via POST /v1/files first. Old file deliverables are automatically cleaned up from storage.
225
225
  */
226
226
  put: operations["set_deliverables"];
227
- post?: never;
227
+ /**
228
+ * Add deliverable
229
+ * @description Add a single deliverable to a draft listing. Appends to the existing array. Returns the new deliverable with a unique del_ prefixed ID. Max 3 deliverables per listing — returns 409 if at capacity.
230
+ */
231
+ post: operations["add_deliverable"];
228
232
  /**
229
233
  * Remove deliverables
230
234
  * @description Remove all deliverables from a draft listing. Demotes the listing to external fulfillment. Draft only — returns 409 if the listing is published.
@@ -235,6 +239,26 @@ export interface paths {
235
239
  patch?: never;
236
240
  trace?: never;
237
241
  };
242
+ "/v1/listings/{listing_id}/deliverables/{deliverable_id}": {
243
+ parameters: {
244
+ query?: never;
245
+ header?: never;
246
+ path?: never;
247
+ cookie?: never;
248
+ };
249
+ get?: never;
250
+ put?: never;
251
+ post?: never;
252
+ /**
253
+ * Remove deliverable
254
+ * @description Remove a single deliverable by its del_ ID from a draft listing. If the deliverable is a file, the CDN content is cleaned up.
255
+ */
256
+ delete: operations["remove_deliverable"];
257
+ options?: never;
258
+ head?: never;
259
+ patch?: never;
260
+ trace?: never;
261
+ };
238
262
  "/v1/listings/{listing_id}/publish": {
239
263
  parameters: {
240
264
  query?: never;
@@ -697,6 +721,29 @@ export interface components {
697
721
  [key: string]: unknown;
698
722
  } | null;
699
723
  };
724
+ /**
725
+ * AddDeliverableRequest
726
+ * @description Add a single deliverable to a listing.
727
+ */
728
+ AddDeliverableRequest: {
729
+ /**
730
+ * @description Deliverable type: `file` (uploaded via POST /v1/files), `url` (redirect), or `text` (literal string).
731
+ * @example file
732
+ */
733
+ type: components["schemas"]["DeliverableType"];
734
+ /**
735
+ * Token
736
+ * @description File token from POST /v1/files. Required when type is `file`.
737
+ * @example file_7kQ2xY9mN3pR5tW1vB8a01
738
+ */
739
+ token?: string | null;
740
+ /**
741
+ * Value
742
+ * @description URL (https required) or text content. Required when type is `url` or `text`.
743
+ * @example https://example.com/secret-area
744
+ */
745
+ value?: string | null;
746
+ };
700
747
  /** ApiKeyListResponse */
701
748
  ApiKeyListResponse: {
702
749
  /**
@@ -1219,6 +1266,12 @@ export interface components {
1219
1266
  * @constant
1220
1267
  */
1221
1268
  object: "deliverable";
1269
+ /**
1270
+ * Id
1271
+ * @description Unique deliverable identifier (del_ prefixed).
1272
+ * @example del_7kQ2xY9mN3pR5tW1vB8a01
1273
+ */
1274
+ id: string;
1222
1275
  /**
1223
1276
  * @description Deliverable type.
1224
1277
  * @example file
@@ -2363,7 +2416,7 @@ export interface components {
2363
2416
  * WebhookEventType
2364
2417
  * @enum {string}
2365
2418
  */
2366
- WebhookEventType: "order.paid" | "order.fulfilled" | "order.shipped" | "order.refunded" | "order.disputed" | "order.dispute_closed" | "order.canceled" | "listing.created" | "listing.updated" | "listing.out_of_stock" | "listing.deleted" | "customer.created";
2419
+ WebhookEventType: "order.paid" | "order.fulfilled" | "order.shipped" | "order.refunded" | "order.disputed" | "order.dispute_closed" | "order.canceled" | "listing.created" | "listing.updated" | "listing.published" | "listing.out_of_stock" | "listing.deleted" | "customer.created";
2367
2420
  /** WebhookListResponse */
2368
2421
  WebhookListResponse: {
2369
2422
  /**
@@ -3297,6 +3350,69 @@ export interface operations {
3297
3350
  };
3298
3351
  };
3299
3352
  };
3353
+ add_deliverable: {
3354
+ parameters: {
3355
+ query?: never;
3356
+ header?: never;
3357
+ path: {
3358
+ /** @description Listing ID. */
3359
+ listing_id: string;
3360
+ };
3361
+ cookie?: never;
3362
+ };
3363
+ requestBody: {
3364
+ content: {
3365
+ "application/json": components["schemas"]["AddDeliverableRequest"];
3366
+ };
3367
+ };
3368
+ responses: {
3369
+ /** @description Successful Response */
3370
+ 201: {
3371
+ headers: {
3372
+ [name: string]: unknown;
3373
+ };
3374
+ content: {
3375
+ "application/json": components["schemas"]["DeliverableResponse"];
3376
+ };
3377
+ };
3378
+ /** @description Invalid or missing API key. */
3379
+ 401: {
3380
+ headers: {
3381
+ [name: string]: unknown;
3382
+ };
3383
+ content: {
3384
+ "application/json": components["schemas"]["ProblemDetail"];
3385
+ };
3386
+ };
3387
+ /** @description Listing not found. */
3388
+ 404: {
3389
+ headers: {
3390
+ [name: string]: unknown;
3391
+ };
3392
+ content: {
3393
+ "application/json": components["schemas"]["ProblemDetail"];
3394
+ };
3395
+ };
3396
+ /** @description Listing not in draft, or at max capacity. */
3397
+ 409: {
3398
+ headers: {
3399
+ [name: string]: unknown;
3400
+ };
3401
+ content: {
3402
+ "application/json": components["schemas"]["ProblemDetail"];
3403
+ };
3404
+ };
3405
+ /** @description Validation error. */
3406
+ 422: {
3407
+ headers: {
3408
+ [name: string]: unknown;
3409
+ };
3410
+ content: {
3411
+ "application/json": components["schemas"]["ProblemDetail"];
3412
+ };
3413
+ };
3414
+ };
3415
+ };
3300
3416
  remove_deliverables: {
3301
3417
  parameters: {
3302
3418
  query?: never;
@@ -3356,6 +3472,65 @@ export interface operations {
3356
3472
  };
3357
3473
  };
3358
3474
  };
3475
+ remove_deliverable: {
3476
+ parameters: {
3477
+ query?: never;
3478
+ header?: never;
3479
+ path: {
3480
+ /** @description Listing ID. */
3481
+ listing_id: string;
3482
+ /** @description Deliverable ID. */
3483
+ deliverable_id: string;
3484
+ };
3485
+ cookie?: never;
3486
+ };
3487
+ requestBody?: never;
3488
+ responses: {
3489
+ /** @description Successful Response */
3490
+ 204: {
3491
+ headers: {
3492
+ [name: string]: unknown;
3493
+ };
3494
+ content?: never;
3495
+ };
3496
+ /** @description Invalid or missing API key. */
3497
+ 401: {
3498
+ headers: {
3499
+ [name: string]: unknown;
3500
+ };
3501
+ content: {
3502
+ "application/json": components["schemas"]["ProblemDetail"];
3503
+ };
3504
+ };
3505
+ /** @description Listing or deliverable not found. */
3506
+ 404: {
3507
+ headers: {
3508
+ [name: string]: unknown;
3509
+ };
3510
+ content: {
3511
+ "application/json": components["schemas"]["ProblemDetail"];
3512
+ };
3513
+ };
3514
+ /** @description Listing is not in draft status. */
3515
+ 409: {
3516
+ headers: {
3517
+ [name: string]: unknown;
3518
+ };
3519
+ content: {
3520
+ "application/json": components["schemas"]["ProblemDetail"];
3521
+ };
3522
+ };
3523
+ /** @description Validation Error */
3524
+ 422: {
3525
+ headers: {
3526
+ [name: string]: unknown;
3527
+ };
3528
+ content: {
3529
+ "application/json": components["schemas"]["HTTPValidationError"];
3530
+ };
3531
+ };
3532
+ };
3533
+ };
3359
3534
  publish_listing: {
3360
3535
  parameters: {
3361
3536
  query?: never;
@@ -65,6 +65,7 @@ export declare const WebhookEventType: {
65
65
  readonly ORDER_CANCELED: "order.canceled";
66
66
  readonly LISTING_CREATED: "listing.created";
67
67
  readonly LISTING_UPDATED: "listing.updated";
68
+ readonly LISTING_PUBLISHED: "listing.published";
68
69
  readonly LISTING_OUT_OF_STOCK: "listing.out_of_stock";
69
70
  readonly LISTING_DELETED: "listing.deleted";
70
71
  readonly CUSTOMER_CREATED: "customer.created";
@@ -56,6 +56,7 @@ export const WebhookEventType = {
56
56
  ORDER_CANCELED: 'order.canceled',
57
57
  LISTING_CREATED: 'listing.created',
58
58
  LISTING_UPDATED: 'listing.updated',
59
+ LISTING_PUBLISHED: 'listing.published',
59
60
  LISTING_OUT_OF_STOCK: 'listing.out_of_stock',
60
61
  LISTING_DELETED: 'listing.deleted',
61
62
  CUSTOMER_CREATED: 'customer.created',
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/generated/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAGX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;CACN,CAAC;AAGX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;CACd,CAAC;AAGX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAGX,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,uBAAuB,EAAE,yBAAyB;IAClD,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,uBAAuB,EAAE,yBAAyB;IAClD,qBAAqB,EAAE,uBAAuB;IAC9C,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;CACxB,CAAC"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/generated/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAGX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;CACN,CAAC;AAGX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACJ,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;CACd,CAAC;AAGX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAGX,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,uBAAuB,EAAE,yBAAyB;IAClD,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,uBAAuB,EAAE,yBAAyB;IAClD,qBAAqB,EAAE,uBAAuB;IAC9C,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;CACxB,CAAC"}
@@ -5,7 +5,8 @@ export { ListBee } from './client.js';
5
5
  export type { ClientOptions } from './client.js';
6
6
  export { CursorPage } from './base-client.js';
7
7
  export type { RequestOptions } from './base-client.js';
8
- export { APIConnectionError, APIStatusError, APITimeoutError, AuthenticationError, BadRequestError, ConflictError, ForbiddenError, InternalServerError, ListBeeError, NotFoundError, PayloadTooLargeError, RateLimitError, ValidationError, WebhookVerificationError, } from './errors.js';
8
+ export { APIConnectionError, APIStatusError, APITimeoutError, AuthenticationError, BadRequestError, ConflictError, ForbiddenError, InternalServerError, ListBeeError, NotFoundError, PartialCreationError, PayloadTooLargeError, RateLimitError, ValidationError, WebhookVerificationError, } from './errors.js';
9
+ export { Deliverable } from './deliverable.js';
9
10
  export { AccountResource } from './resources/account.js';
10
11
  export { ApiKeysResource } from './resources/api-keys.js';
11
12
  export { CustomersResource } from './resources/customers.js';
package/dist/esm/index.js CHANGED
@@ -5,7 +5,9 @@
5
5
  export { ListBee } from './client.js';
6
6
  export { CursorPage } from './base-client.js';
7
7
  // Errors
8
- export { APIConnectionError, APIStatusError, APITimeoutError, AuthenticationError, BadRequestError, ConflictError, ForbiddenError, InternalServerError, ListBeeError, NotFoundError, PayloadTooLargeError, RateLimitError, ValidationError, WebhookVerificationError, } from './errors.js';
8
+ export { APIConnectionError, APIStatusError, APITimeoutError, AuthenticationError, BadRequestError, ConflictError, ForbiddenError, InternalServerError, ListBeeError, NotFoundError, PartialCreationError, PayloadTooLargeError, RateLimitError, ValidationError, WebhookVerificationError, } from './errors.js';
9
+ // Deliverable input builder
10
+ export { Deliverable } from './deliverable.js';
9
11
  // Resources
10
12
  export { AccountResource } from './resources/account.js';
11
13
  export { ApiKeysResource } from './resources/api-keys.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,SAAS;AACT,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAElB,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,yBAAyB;AACzB,OAAO,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,eAAe,EACf,aAAa,EACb,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,SAAS;AACT,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAElB,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,yBAAyB;AACzB,OAAO,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,eAAe,EACf,aAAa,EACb,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
@@ -20,13 +20,4 @@ export declare class CustomersResource {
20
20
  * @returns The CustomerResponse.
21
21
  */
22
22
  get(customerId: string): Promise<CustomerResponse>;
23
- /**
24
- * Find a customer by email address.
25
- *
26
- * Returns the first matching customer or null if none found.
27
- *
28
- * @param email - The customer's email address.
29
- * @returns The CustomerResponse, or null if not found.
30
- */
31
- getByEmail(email: string): Promise<CustomerResponse | null>;
32
23
  }
@@ -35,17 +35,5 @@ export class CustomersResource {
35
35
  const response = await this._client.get(`/v1/customers/${customerId}`);
36
36
  return (await response.json());
37
37
  }
38
- /**
39
- * Find a customer by email address.
40
- *
41
- * Returns the first matching customer or null if none found.
42
- *
43
- * @param email - The customer's email address.
44
- * @returns The CustomerResponse, or null if not found.
45
- */
46
- async getByEmail(email) {
47
- const page = await this.list({ email, limit: 1 });
48
- return page.data[0] ?? null;
49
- }
50
38
  }
51
39
  //# sourceMappingURL=customers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../../src/resources/customers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,OAAO,iBAAiB;IAC5B,YAA6B,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,SAA8B,EAAE;QACzC,MAAM,WAAW,GAA8C;YAC7D,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;YAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9D,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI;YAAE,WAAW,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QACtF,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI;YAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;QACzF,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAmB,eAAe,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAwB,CAAC,CAAC;IAClH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,UAAkB;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAC;IACrD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"customers.js","sourceRoot":"","sources":["../../../src/resources/customers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,OAAO,iBAAiB;IAC5B,YAA6B,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,SAA8B,EAAE;QACzC,MAAM,WAAW,GAA8C;YAC7D,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;YAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9D,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI;YAAE,WAAW,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QACtF,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI;YAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;QACzF,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAmB,eAAe,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAwB,CAAC,CAAC;IAClH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,UAAkB;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAC;IACrD,CAAC;CAEF"}
@@ -1,11 +1,15 @@
1
1
  /**
2
2
  * Listings resource — CRUD + publish + deliverables for /v1/listings.
3
3
  */
4
- /// <reference types="node" />
5
- /// <reference types="node" />
6
4
  import type { BaseClient, CursorPage } from '../base-client.js';
7
- import type { CreateListingParams, DeliverableInputParams, ListingResponse, UpdateListingParams, ListListingsParams, SetDeliverablesParams } from '../generated/types.js';
5
+ import { Deliverable } from '../deliverable.js';
6
+ import type { CreateListingParams, DeliverableResponse, ListingResponse, UpdateListingParams, ListListingsParams, SetDeliverablesParams } from '../generated/types.js';
8
7
  import type { RequestOptions } from '../types/shared.js';
8
+ interface AddDeliverableParams {
9
+ type: 'file' | 'url' | 'text';
10
+ token?: string | null;
11
+ value?: string | null;
12
+ }
9
13
  /** Resource for the /v1/listings endpoint. */
10
14
  export declare class ListingsResource {
11
15
  private readonly _client;
@@ -56,12 +60,15 @@ export declare class ListingsResource {
56
60
  publish(listingId: string, options?: RequestOptions): Promise<ListingResponse>;
57
61
  /**
58
62
  * Set deliverables on a listing (replaces all existing).
63
+ * Accepts Deliverable objects or raw params. Files uploaded transparently.
59
64
  *
60
- * @param listingId - The listing ID (e.g. "lst_abc123").
61
- * @param params - Deliverables array.
65
+ * @param listingId - The listing ID.
66
+ * @param params - Deliverables array (Deliverable objects or raw SetDeliverablesParams).
62
67
  * @returns The updated ListingResponse.
63
68
  */
64
- setDeliverables(listingId: string, params: SetDeliverablesParams): Promise<ListingResponse>;
69
+ setDeliverables(listingId: string, params: SetDeliverablesParams | {
70
+ deliverables: (Deliverable | AddDeliverableParams)[];
71
+ }): Promise<ListingResponse>;
65
72
  /**
66
73
  * Remove all deliverables from a listing.
67
74
  *
@@ -70,22 +77,33 @@ export declare class ListingsResource {
70
77
  */
71
78
  removeDeliverables(listingId: string): Promise<ListingResponse>;
72
79
  /**
73
- * Create a listing, optionally attach deliverables, then publish it in one call.
80
+ * Add a single deliverable to a draft listing.
81
+ * Files are uploaded transparently.
74
82
  *
75
- * @param params - All create() parameters plus an optional `deliverables` array.
83
+ * @param listingId - The listing ID.
84
+ * @param deliverable - A Deliverable instance.
76
85
  * @param options - Request options.
77
- * @returns The published ListingResponse.
86
+ * @returns The new DeliverableResponse.
78
87
  */
79
- createAndPublish(params: CreateListingParams & {
80
- deliverables?: DeliverableInputParams[];
81
- }, options?: RequestOptions): Promise<ListingResponse>;
88
+ addDeliverable(listingId: string, deliverable: Deliverable, options?: RequestOptions): Promise<DeliverableResponse>;
82
89
  /**
83
- * Upload a file and set it as the sole deliverable on a listing.
90
+ * Remove a single deliverable by ID from a draft listing.
84
91
  *
85
- * @param listingId - The listing ID (e.g. "lst_abc123").
86
- * @param file - File content as Buffer or Blob.
92
+ * @param listingId - The listing ID.
93
+ * @param deliverableId - The deliverable ID (del_ prefixed).
94
+ */
95
+ removeDeliverable(listingId: string, deliverableId: string): Promise<void>;
96
+ /**
97
+ * Create a listing with deliverables in one call.
98
+ * Orchestrates: create → upload files → attach deliverables → return.
99
+ * If any step after creation fails, throws PartialCreationError.
100
+ *
101
+ * @param params - Create params with optional deliverables array.
87
102
  * @param options - Request options.
88
- * @returns The updated ListingResponse with the file deliverable attached.
103
+ * @returns The complete ListingResponse.
89
104
  */
90
- uploadAndSetDeliverable(listingId: string, file: Buffer | Blob, options?: RequestOptions): Promise<ListingResponse>;
105
+ createComplete(params: CreateListingParams & {
106
+ deliverables?: Deliverable[];
107
+ }, options?: RequestOptions): Promise<ListingResponse>;
91
108
  }
109
+ export {};