listbee 0.7.1 → 0.8.1
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/README.md +67 -17
- package/dist/cjs/client.d.ts +4 -0
- package/dist/cjs/client.js +3 -0
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/deliverable.d.ts +57 -0
- package/dist/cjs/deliverable.js +90 -0
- package/dist/cjs/deliverable.js.map +1 -0
- package/dist/cjs/errors.d.ts +11 -0
- package/dist/cjs/errors.js +16 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/generated/api-types.d.ts +236 -2
- package/dist/cjs/generated/enums.d.ts +1 -0
- package/dist/cjs/generated/enums.js +1 -0
- package/dist/cjs/generated/enums.js.map +1 -1
- package/dist/cjs/generated/operations.d.ts +21 -0
- package/dist/cjs/generated/operations.js +3 -0
- package/dist/cjs/generated/operations.js.map +1 -1
- package/dist/cjs/generated/types.d.ts +2 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/resources/listings.d.ts +43 -4
- package/dist/cjs/resources/listings.js +77 -3
- package/dist/cjs/resources/listings.js.map +1 -1
- package/dist/cjs/resources/orders.d.ts +9 -8
- package/dist/cjs/resources/orders.js +25 -8
- package/dist/cjs/resources/orders.js.map +1 -1
- package/dist/cjs/resources/utility.d.ts +15 -0
- package/dist/cjs/resources/utility.js +22 -0
- package/dist/cjs/resources/utility.js.map +1 -0
- package/dist/esm/client.d.ts +4 -0
- package/dist/esm/client.js +3 -0
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/deliverable.d.ts +57 -0
- package/dist/esm/deliverable.js +86 -0
- package/dist/esm/deliverable.js.map +1 -0
- package/dist/esm/errors.d.ts +11 -0
- package/dist/esm/errors.js +14 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/generated/api-types.d.ts +236 -2
- package/dist/esm/generated/enums.d.ts +1 -0
- package/dist/esm/generated/enums.js +1 -0
- package/dist/esm/generated/enums.js.map +1 -1
- package/dist/esm/generated/operations.d.ts +21 -0
- package/dist/esm/generated/operations.js +3 -0
- package/dist/esm/generated/operations.js.map +1 -1
- package/dist/esm/generated/types.d.ts +2 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/listings.d.ts +43 -4
- package/dist/esm/resources/listings.js +77 -3
- package/dist/esm/resources/listings.js.map +1 -1
- package/dist/esm/resources/orders.d.ts +9 -8
- package/dist/esm/resources/orders.js +25 -8
- package/dist/esm/resources/orders.js.map +1 -1
- package/dist/esm/resources/utility.d.ts +15 -0
- package/dist/esm/resources/utility.js +18 -0
- package/dist/esm/resources/utility.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,20 +26,17 @@ pnpm add listbee
|
|
|
26
26
|
## Quick start
|
|
27
27
|
|
|
28
28
|
```typescript
|
|
29
|
-
import { ListBee } from 'listbee';
|
|
29
|
+
import { ListBee, Deliverable } from 'listbee';
|
|
30
30
|
|
|
31
31
|
const client = new ListBee({ apiKey: 'lb_...' });
|
|
32
32
|
|
|
33
|
-
// Create a listing,
|
|
34
|
-
const listing = await client.listings.
|
|
33
|
+
// Create a listing, attach a deliverable, and publish in one call
|
|
34
|
+
const listing = await client.listings.createComplete({
|
|
35
35
|
name: 'SEO Playbook',
|
|
36
36
|
price: 2900, // $29.00 in cents
|
|
37
37
|
description: 'A comprehensive guide to modern SEO.',
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
await client.listings.setDeliverables(listing.id, {
|
|
41
38
|
deliverables: [
|
|
42
|
-
|
|
39
|
+
Deliverable.url('https://example.com/seo-playbook.pdf'),
|
|
43
40
|
],
|
|
44
41
|
});
|
|
45
42
|
|
|
@@ -72,7 +69,7 @@ The key is validated lazily — an `AuthenticationError` is raised only when you
|
|
|
72
69
|
|
|
73
70
|
| Resource | Methods |
|
|
74
71
|
|----------|---------|
|
|
75
|
-
| `listings` | `create`, `get`, `list`, `update`, `publish`, `setDeliverables`, `removeDeliverables`, `delete` |
|
|
72
|
+
| `listings` | `create`, `get`, `list`, `update`, `publish`, `setDeliverables`, `removeDeliverables`, `addDeliverable`, `removeDeliverable`, `createComplete`, `delete` |
|
|
76
73
|
| `orders` | `get`, `list`, `deliver`, `ship`, `refund` |
|
|
77
74
|
| `customers` | `get`, `list` |
|
|
78
75
|
| `files` | `upload` |
|
|
@@ -81,6 +78,7 @@ The key is validated lazily — an `AuthenticationError` is raised only when you
|
|
|
81
78
|
| `apiKeys` | `list`, `create`, `delete` |
|
|
82
79
|
| `signup` | `create`, `verify` |
|
|
83
80
|
| `stripe` | `connect`, `disconnect` |
|
|
81
|
+
| `utility` | `ping` |
|
|
84
82
|
|
|
85
83
|
### Listings
|
|
86
84
|
|
|
@@ -100,9 +98,11 @@ const listing = await client.listings.create({
|
|
|
100
98
|
console.log(listing.id); // lst_r7kq2xy9m3pR5tW1
|
|
101
99
|
|
|
102
100
|
// Set deliverables (file, URL, or text)
|
|
101
|
+
import { Deliverable } from 'listbee';
|
|
102
|
+
|
|
103
103
|
await client.listings.setDeliverables(listing.id, {
|
|
104
104
|
deliverables: [
|
|
105
|
-
|
|
105
|
+
Deliverable.url('https://example.com/seo-playbook.pdf'),
|
|
106
106
|
],
|
|
107
107
|
});
|
|
108
108
|
|
|
@@ -129,6 +129,26 @@ await client.listings.update('lst_r7kq2xy9m3pR5tW1', { price: 3900 });
|
|
|
129
129
|
// Remove deliverables (revert to external fulfillment)
|
|
130
130
|
await client.listings.removeDeliverables('lst_r7kq2xy9m3pR5tW1');
|
|
131
131
|
|
|
132
|
+
// Add a single deliverable using the Deliverable class
|
|
133
|
+
import { Deliverable } from 'listbee';
|
|
134
|
+
|
|
135
|
+
await client.listings.addDeliverable('lst_r7kq2xy9m3pR5tW1', Deliverable.url('https://example.com/playbook.pdf'));
|
|
136
|
+
await client.listings.addDeliverable('lst_r7kq2xy9m3pR5tW1', Deliverable.text('Your license key: XXXX-XXXX'));
|
|
137
|
+
await client.listings.addDeliverable('lst_r7kq2xy9m3pR5tW1', Deliverable.fromToken(file.token));
|
|
138
|
+
|
|
139
|
+
// Remove a single deliverable by del_ ID
|
|
140
|
+
await client.listings.removeDeliverable('lst_r7kq2xy9m3pR5tW1', 'del_4hR9nK2mQ7tV5wX1');
|
|
141
|
+
|
|
142
|
+
// Create a listing and attach deliverables in one call
|
|
143
|
+
const listing = await client.listings.createComplete({
|
|
144
|
+
name: 'SEO Playbook',
|
|
145
|
+
price: 2900,
|
|
146
|
+
deliverables: [
|
|
147
|
+
Deliverable.url('https://example.com/seo-playbook.pdf'),
|
|
148
|
+
],
|
|
149
|
+
});
|
|
150
|
+
await client.listings.publish(listing.id);
|
|
151
|
+
|
|
132
152
|
// Delete
|
|
133
153
|
await client.listings.delete('lst_r7kq2xy9m3pR5tW1');
|
|
134
154
|
```
|
|
@@ -152,17 +172,19 @@ console.log(order.checkout_data); // custom checkout field values
|
|
|
152
172
|
console.log(order.paid_at); // ISO 8601 timestamp
|
|
153
173
|
|
|
154
174
|
// Deliver — push content to the buyer (external fulfillment)
|
|
175
|
+
import { Deliverable } from 'listbee';
|
|
176
|
+
|
|
155
177
|
const fulfilled = await client.orders.deliver('ord_9xM4kP7nR2qT5wY1', {
|
|
156
178
|
deliverables: [
|
|
157
|
-
|
|
179
|
+
Deliverable.text('Your AI-generated report is ready.'),
|
|
158
180
|
],
|
|
159
181
|
});
|
|
160
182
|
console.log(fulfilled.status); // "fulfilled"
|
|
161
183
|
|
|
162
|
-
// Or deliver a
|
|
184
|
+
// Or deliver a URL
|
|
163
185
|
await client.orders.deliver('ord_9xM4kP7nR2qT5wY1', {
|
|
164
186
|
deliverables: [
|
|
165
|
-
|
|
187
|
+
Deliverable.url('https://example.com/report.pdf'),
|
|
166
188
|
],
|
|
167
189
|
});
|
|
168
190
|
|
|
@@ -197,18 +219,19 @@ console.log(customer.email, customer.order_count);
|
|
|
197
219
|
|
|
198
220
|
```typescript
|
|
199
221
|
import { createReadStream } from 'fs';
|
|
222
|
+
import { Deliverable } from 'listbee';
|
|
200
223
|
|
|
201
224
|
// Upload a file (multipart, native FormData)
|
|
202
225
|
const file = await client.files.upload({
|
|
203
226
|
file: createReadStream('/path/to/report.pdf'),
|
|
204
227
|
filename: 'report.pdf',
|
|
205
228
|
});
|
|
206
|
-
console.log(file.
|
|
229
|
+
console.log(file.token); // use this token in setDeliverables / Deliverable.fromToken()
|
|
207
230
|
|
|
208
231
|
// Then attach to a listing
|
|
209
232
|
await client.listings.setDeliverables(listing.id, {
|
|
210
233
|
deliverables: [
|
|
211
|
-
|
|
234
|
+
Deliverable.fromToken(file.token),
|
|
212
235
|
],
|
|
213
236
|
});
|
|
214
237
|
```
|
|
@@ -306,8 +329,24 @@ await client.stripe.disconnect();
|
|
|
306
329
|
- **External** — ListBee fires `order.paid` webhook, your app handles delivery. Call `orders.deliver()` to push content back.
|
|
307
330
|
|
|
308
331
|
```typescript
|
|
332
|
+
import { Deliverable } from 'listbee';
|
|
333
|
+
|
|
334
|
+
// One-shot: create listing + attach deliverables
|
|
335
|
+
const listing = await client.listings.createComplete({
|
|
336
|
+
name: 'SEO Playbook',
|
|
337
|
+
price: 2900,
|
|
338
|
+
deliverables: [
|
|
339
|
+
Deliverable.url('https://example.com/seo-playbook.pdf'),
|
|
340
|
+
],
|
|
341
|
+
});
|
|
342
|
+
await client.listings.publish(listing.id);
|
|
343
|
+
|
|
344
|
+
// Add or remove individual deliverables after creation
|
|
345
|
+
await client.listings.addDeliverable(listing.id, Deliverable.text('Bonus: license key XXXX-XXXX'));
|
|
346
|
+
await client.listings.removeDeliverable(listing.id, 'del_4hR9nK2mQ7tV5wX1');
|
|
347
|
+
|
|
309
348
|
// External fulfillment — AI-generated content
|
|
310
|
-
const
|
|
349
|
+
const external = await client.listings.create({
|
|
311
350
|
name: 'Custom SEO Report',
|
|
312
351
|
price: 4900,
|
|
313
352
|
fulfillment: 'external',
|
|
@@ -315,12 +354,12 @@ const listing = await client.listings.create({
|
|
|
315
354
|
{ type: 'text', key: 'website_url', label: 'Your website URL', required: true },
|
|
316
355
|
],
|
|
317
356
|
});
|
|
318
|
-
await client.listings.publish(
|
|
357
|
+
await client.listings.publish(external.id);
|
|
319
358
|
|
|
320
359
|
// On order.paid webhook:
|
|
321
360
|
await client.orders.deliver(order.id, {
|
|
322
361
|
deliverables: [
|
|
323
|
-
|
|
362
|
+
Deliverable.text(generatedReport),
|
|
324
363
|
],
|
|
325
364
|
});
|
|
326
365
|
```
|
|
@@ -367,6 +406,15 @@ if (page.has_more) {
|
|
|
367
406
|
}
|
|
368
407
|
```
|
|
369
408
|
|
|
409
|
+
### Utility
|
|
410
|
+
|
|
411
|
+
Verify API connectivity and that your API key is valid:
|
|
412
|
+
|
|
413
|
+
```typescript
|
|
414
|
+
const ping = await client.utility.ping();
|
|
415
|
+
console.log(ping.status); // "ok"
|
|
416
|
+
```
|
|
417
|
+
|
|
370
418
|
## Error handling
|
|
371
419
|
|
|
372
420
|
```
|
|
@@ -423,6 +471,8 @@ import {
|
|
|
423
471
|
ListBee,
|
|
424
472
|
CursorPage,
|
|
425
473
|
ErrorCode,
|
|
474
|
+
Deliverable, // input class: .file() | .url() | .text() | .fromToken()
|
|
475
|
+
PartialCreationError, // thrown when listing is created but deliverable attachment fails
|
|
426
476
|
|
|
427
477
|
// Response types
|
|
428
478
|
type ListingResponse,
|
package/dist/cjs/client.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { ListingsResource } from './resources/listings';
|
|
|
10
10
|
import { OrdersResource } from './resources/orders';
|
|
11
11
|
import { SignupResource } from './resources/signup';
|
|
12
12
|
import { StripeResource } from './resources/stripe';
|
|
13
|
+
import { Utility } from './resources/utility';
|
|
13
14
|
import { WebhooksResource } from './resources/webhooks';
|
|
14
15
|
export type { ClientOptions };
|
|
15
16
|
/**
|
|
@@ -40,6 +41,7 @@ export declare class ListBee extends BaseClient {
|
|
|
40
41
|
private _orders?;
|
|
41
42
|
private _signup?;
|
|
42
43
|
private _stripe?;
|
|
44
|
+
private _utility?;
|
|
43
45
|
private _webhooks?;
|
|
44
46
|
/** Account resource — get, update, and delete your account. */
|
|
45
47
|
get account(): AccountResource;
|
|
@@ -57,6 +59,8 @@ export declare class ListBee extends BaseClient {
|
|
|
57
59
|
get signup(): SignupResource;
|
|
58
60
|
/** Stripe resource — connect and disconnect Stripe. */
|
|
59
61
|
get stripe(): StripeResource;
|
|
62
|
+
/** Utility resource — connectivity checks and diagnostics. */
|
|
63
|
+
get utility(): Utility;
|
|
60
64
|
/** Webhooks resource — create, list, update, delete, list events, retry, test, verify. */
|
|
61
65
|
get webhooks(): WebhooksResource;
|
|
62
66
|
}
|
package/dist/cjs/client.js
CHANGED
|
@@ -13,6 +13,7 @@ const listings_1 = require("./resources/listings");
|
|
|
13
13
|
const orders_1 = require("./resources/orders");
|
|
14
14
|
const signup_1 = require("./resources/signup");
|
|
15
15
|
const stripe_1 = require("./resources/stripe");
|
|
16
|
+
const utility_1 = require("./resources/utility");
|
|
16
17
|
const webhooks_1 = require("./resources/webhooks");
|
|
17
18
|
/**
|
|
18
19
|
* ListBee API client.
|
|
@@ -50,6 +51,8 @@ class ListBee extends base_client_1.BaseClient {
|
|
|
50
51
|
get signup() { var _a; return ((_a = this._signup) !== null && _a !== void 0 ? _a : (this._signup = new signup_1.SignupResource(this))); }
|
|
51
52
|
/** Stripe resource — connect and disconnect Stripe. */
|
|
52
53
|
get stripe() { var _a; return ((_a = this._stripe) !== null && _a !== void 0 ? _a : (this._stripe = new stripe_1.StripeResource(this))); }
|
|
54
|
+
/** Utility resource — connectivity checks and diagnostics. */
|
|
55
|
+
get utility() { var _a; return ((_a = this._utility) !== null && _a !== void 0 ? _a : (this._utility = new utility_1.Utility(this))); }
|
|
53
56
|
/** Webhooks resource — create, list, update, delete, list events, retry, test, verify. */
|
|
54
57
|
get webhooks() { var _a; return ((_a = this._webhooks) !== null && _a !== void 0 ? _a : (this._webhooks = new webhooks_1.WebhooksResource(this))); }
|
|
55
58
|
}
|
package/dist/cjs/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAA+D;AAC/D,iDAAsD;AACtD,mDAAuD;AACvD,qDAA0D;AAC1D,6CAAkD;AAClD,mDAAwD;AACxD,+CAAoD;AACpD,+CAAoD;AACpD,+CAAoD;AACpD,mDAAwD;AAIxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,OAAQ,SAAQ,wBAAU;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAA+D;AAC/D,iDAAsD;AACtD,mDAAuD;AACvD,qDAA0D;AAC1D,6CAAkD;AAClD,mDAAwD;AACxD,+CAAoD;AACpD,+CAAoD;AACpD,+CAAoD;AACpD,iDAA8C;AAC9C,mDAAwD;AAIxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,OAAQ,SAAQ,wBAAU;IAYrC,+DAA+D;IAC/D,IAAI,OAAO,aAAsB,OAAO,OAAC,IAAI,CAAC,QAAQ,oCAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IACxF,yDAAyD;IACzD,IAAI,OAAO,aAAsB,OAAO,OAAC,IAAI,CAAC,QAAQ,oCAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,0BAAe,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IACxF,gDAAgD;IAChD,IAAI,SAAS,aAAwB,OAAO,OAAC,IAAI,CAAC,UAAU,oCAAf,IAAI,CAAC,UAAU,GAAK,IAAI,6BAAiB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IAChG,2EAA2E;IAC3E,IAAI,KAAK,aAAoB,OAAO,OAAC,IAAI,CAAC,MAAM,oCAAX,IAAI,CAAC,MAAM,GAAK,IAAI,qBAAa,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IAChF,sFAAsF;IACtF,IAAI,QAAQ,aAAuB,OAAO,OAAC,IAAI,CAAC,SAAS,oCAAd,IAAI,CAAC,SAAS,GAAK,IAAI,2BAAgB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IAC5F,qEAAqE;IACrE,IAAI,MAAM,aAAqB,OAAO,OAAC,IAAI,CAAC,OAAO,oCAAZ,IAAI,CAAC,OAAO,GAAK,IAAI,uBAAc,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IACpF,yEAAyE;IACzE,IAAI,MAAM,aAAqB,OAAO,OAAC,IAAI,CAAC,OAAO,oCAAZ,IAAI,CAAC,OAAO,GAAK,IAAI,uBAAc,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IACpF,uDAAuD;IACvD,IAAI,MAAM,aAAqB,OAAO,OAAC,IAAI,CAAC,OAAO,oCAAZ,IAAI,CAAC,OAAO,GAAK,IAAI,uBAAc,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IACpF,8DAA8D;IAC9D,IAAI,OAAO,aAAc,OAAO,OAAC,IAAI,CAAC,QAAQ,oCAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,iBAAO,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;IACxE,0FAA0F;IAC1F,IAAI,QAAQ,aAAuB,OAAO,OAAC,IAAI,CAAC,SAAS,oCAAd,IAAI,CAAC,SAAS,GAAK,IAAI,2BAAgB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;CAC7F;AAhCD,0BAgCC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deliverable input builder — type-safe file handling for SDK methods.
|
|
3
|
+
*/
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
/// <reference types="node" />
|
|
6
|
+
type FileSource = Buffer | Blob | string;
|
|
7
|
+
/**
|
|
8
|
+
* Input builder for deliverables. Use static factory methods.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* Deliverable.file(Buffer.from('pdf'), 'guide.pdf')
|
|
13
|
+
* Deliverable.fromToken('file_tok_abc')
|
|
14
|
+
* Deliverable.url('https://example.com/secret')
|
|
15
|
+
* Deliverable.text('License key: ABCD-1234')
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class Deliverable {
|
|
19
|
+
/** @internal */ readonly _type: 'file' | 'url' | 'text';
|
|
20
|
+
/** @internal */ readonly _fileData?: Buffer | Blob;
|
|
21
|
+
/** @internal */ readonly _filename?: string;
|
|
22
|
+
/** @internal */ readonly _value?: string;
|
|
23
|
+
/** @internal */ readonly _token?: string;
|
|
24
|
+
private constructor();
|
|
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: FileSource, filename?: string): Deliverable;
|
|
32
|
+
/**
|
|
33
|
+
* Create a file deliverable from a pre-uploaded file token.
|
|
34
|
+
*
|
|
35
|
+
* @param token - File token from `client.files.upload()` (valid 24 hours).
|
|
36
|
+
*/
|
|
37
|
+
static fromToken(token: string): Deliverable;
|
|
38
|
+
/**
|
|
39
|
+
* Create a URL redirect deliverable.
|
|
40
|
+
*
|
|
41
|
+
* @param url - HTTPS URL buyers will be redirected to after purchase.
|
|
42
|
+
*/
|
|
43
|
+
static url(url: string): Deliverable;
|
|
44
|
+
/**
|
|
45
|
+
* Create a plain text deliverable.
|
|
46
|
+
*
|
|
47
|
+
* @param content - Text content delivered to the buyer.
|
|
48
|
+
*/
|
|
49
|
+
static text(content: string): Deliverable;
|
|
50
|
+
/** True if this deliverable has file data that must be uploaded first. */
|
|
51
|
+
get needsUpload(): boolean;
|
|
52
|
+
/** @internal Returns file data for upload. */
|
|
53
|
+
toUploadData(): Buffer | Blob;
|
|
54
|
+
/** @internal Returns JSON body for the API. */
|
|
55
|
+
toApiBody(token?: string): Record<string, string>;
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Deliverable input builder — type-safe file handling for SDK methods.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Deliverable = void 0;
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
/**
|
|
10
|
+
* Input builder for deliverables. Use static factory methods.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* Deliverable.file(Buffer.from('pdf'), 'guide.pdf')
|
|
15
|
+
* Deliverable.fromToken('file_tok_abc')
|
|
16
|
+
* Deliverable.url('https://example.com/secret')
|
|
17
|
+
* Deliverable.text('License key: ABCD-1234')
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
class Deliverable {
|
|
21
|
+
constructor(fields) {
|
|
22
|
+
this._type = fields._type;
|
|
23
|
+
this._fileData = fields._fileData;
|
|
24
|
+
this._filename = fields._filename;
|
|
25
|
+
this._value = fields._value;
|
|
26
|
+
this._token = fields._token;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a file deliverable from a Buffer, Blob, or file path.
|
|
30
|
+
*
|
|
31
|
+
* @param source - File content or path.
|
|
32
|
+
* @param filename - Filename (required for Buffer/Blob, auto-detected for paths).
|
|
33
|
+
*/
|
|
34
|
+
static file(source, filename) {
|
|
35
|
+
if (typeof source === 'string') {
|
|
36
|
+
return new Deliverable({
|
|
37
|
+
_type: 'file',
|
|
38
|
+
_fileData: (0, node_fs_1.readFileSync)(source),
|
|
39
|
+
_filename: filename !== null && filename !== void 0 ? filename : (0, node_path_1.basename)(source),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (!filename)
|
|
43
|
+
throw new Error('filename is required when source is Buffer or Blob');
|
|
44
|
+
return new Deliverable({
|
|
45
|
+
_type: 'file',
|
|
46
|
+
_fileData: source,
|
|
47
|
+
_filename: filename,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create a file deliverable from a pre-uploaded file token.
|
|
52
|
+
*
|
|
53
|
+
* @param token - File token from `client.files.upload()` (valid 24 hours).
|
|
54
|
+
*/
|
|
55
|
+
static fromToken(token) {
|
|
56
|
+
return new Deliverable({ _type: 'file', _token: token });
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create a URL redirect deliverable.
|
|
60
|
+
*
|
|
61
|
+
* @param url - HTTPS URL buyers will be redirected to after purchase.
|
|
62
|
+
*/
|
|
63
|
+
static url(url) {
|
|
64
|
+
return new Deliverable({ _type: 'url', _value: url });
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Create a plain text deliverable.
|
|
68
|
+
*
|
|
69
|
+
* @param content - Text content delivered to the buyer.
|
|
70
|
+
*/
|
|
71
|
+
static text(content) {
|
|
72
|
+
return new Deliverable({ _type: 'text', _value: content });
|
|
73
|
+
}
|
|
74
|
+
/** True if this deliverable has file data that must be uploaded first. */
|
|
75
|
+
get needsUpload() {
|
|
76
|
+
return this._type === 'file' && this._fileData != null;
|
|
77
|
+
}
|
|
78
|
+
/** @internal Returns file data for upload. */
|
|
79
|
+
toUploadData() {
|
|
80
|
+
return this._fileData;
|
|
81
|
+
}
|
|
82
|
+
/** @internal Returns JSON body for the API. */
|
|
83
|
+
toApiBody(token) {
|
|
84
|
+
if (this._type === 'file')
|
|
85
|
+
return { type: 'file', token: token !== null && token !== void 0 ? token : this._token };
|
|
86
|
+
return { type: this._type, value: this._value };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.Deliverable = Deliverable;
|
|
90
|
+
//# sourceMappingURL=deliverable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverable.js","sourceRoot":"","sources":["../../src/deliverable.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAAuC;AACvC,yCAAqC;AAIrC;;;;;;;;;;GAUG;AACH,MAAa,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,IAAA,sBAAY,EAAC,MAAM,CAAC;gBAC/B,SAAS,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAA,oBAAQ,EAAC,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,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,MAAO,EAAE,CAAC;QACjF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC;IACnD,CAAC;CACF;AA/ED,kCA+EC"}
|
package/dist/cjs/errors.d.ts
CHANGED
|
@@ -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;
|
package/dist/cjs/errors.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Typed exception hierarchy for the ListBee SDK (RFC 9457).
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.raiseForStatus = exports.WebhookVerificationError = exports.InternalServerError = exports.RateLimitError = exports.PayloadTooLargeError = exports.ValidationError = exports.ConflictError = exports.NotFoundError = exports.ForbiddenError = exports.AuthenticationError = exports.BadRequestError = exports.APIStatusError = exports.APITimeoutError = exports.APIConnectionError = exports.ListBeeError = void 0;
|
|
6
|
+
exports.raiseForStatus = exports.PartialCreationError = exports.WebhookVerificationError = exports.InternalServerError = exports.RateLimitError = exports.PayloadTooLargeError = exports.ValidationError = exports.ConflictError = exports.NotFoundError = exports.ForbiddenError = exports.AuthenticationError = exports.BadRequestError = exports.APIStatusError = exports.APITimeoutError = exports.APIConnectionError = exports.ListBeeError = void 0;
|
|
7
7
|
/** Base class for all ListBee SDK errors. */
|
|
8
8
|
class ListBeeError extends Error {
|
|
9
9
|
constructor(message) {
|
|
@@ -127,6 +127,21 @@ class WebhookVerificationError extends ListBeeError {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
exports.WebhookVerificationError = WebhookVerificationError;
|
|
130
|
+
/**
|
|
131
|
+
* Raised when createComplete creates the listing but fails during file upload
|
|
132
|
+
* or deliverable attachment.
|
|
133
|
+
*
|
|
134
|
+
* The `listingId` property contains the draft that was created, so the caller
|
|
135
|
+
* can resume with individual `addDeliverable` calls.
|
|
136
|
+
*/
|
|
137
|
+
class PartialCreationError extends ListBeeError {
|
|
138
|
+
constructor(listingId, message) {
|
|
139
|
+
super(message);
|
|
140
|
+
this.name = 'PartialCreationError';
|
|
141
|
+
this.listingId = listingId;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.PartialCreationError = PartialCreationError;
|
|
130
145
|
/**
|
|
131
146
|
* Parse an RFC 9457 error body and throw the appropriate typed exception.
|
|
132
147
|
*/
|
package/dist/cjs/errors.js.map
CHANGED
|
@@ -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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"}
|