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.
- package/README.md +55 -69
- 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 +177 -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/index.d.ts +2 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/resources/customers.d.ts +0 -9
- package/dist/cjs/resources/customers.js +0 -13
- package/dist/cjs/resources/customers.js.map +1 -1
- package/dist/cjs/resources/listings.d.ts +35 -17
- package/dist/cjs/resources/listings.js +65 -22
- package/dist/cjs/resources/listings.js.map +1 -1
- package/dist/cjs/resources/orders.d.ts +9 -21
- package/dist/cjs/resources/orders.js +24 -25
- package/dist/cjs/resources/orders.js.map +1 -1
- package/dist/cjs/resources/webhooks.d.ts +0 -9
- package/dist/cjs/resources/webhooks.js +0 -17
- package/dist/cjs/resources/webhooks.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 +177 -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/index.d.ts +2 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/customers.d.ts +0 -9
- package/dist/esm/resources/customers.js +0 -12
- package/dist/esm/resources/customers.js.map +1 -1
- package/dist/esm/resources/listings.d.ts +35 -17
- package/dist/esm/resources/listings.js +65 -22
- package/dist/esm/resources/listings.js.map +1 -1
- package/dist/esm/resources/orders.d.ts +9 -21
- package/dist/esm/resources/orders.js +24 -25
- package/dist/esm/resources/orders.js.map +1 -1
- package/dist/esm/resources/webhooks.d.ts +0 -9
- package/dist/esm/resources/webhooks.js +0 -17
- package/dist/esm/resources/webhooks.js.map +1 -1
- 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` |
|
|
@@ -100,9 +97,11 @@ const listing = await client.listings.create({
|
|
|
100
97
|
console.log(listing.id); // lst_r7kq2xy9m3pR5tW1
|
|
101
98
|
|
|
102
99
|
// Set deliverables (file, URL, or text)
|
|
100
|
+
import { Deliverable } from 'listbee';
|
|
101
|
+
|
|
103
102
|
await client.listings.setDeliverables(listing.id, {
|
|
104
103
|
deliverables: [
|
|
105
|
-
|
|
104
|
+
Deliverable.url('https://example.com/seo-playbook.pdf'),
|
|
106
105
|
],
|
|
107
106
|
});
|
|
108
107
|
|
|
@@ -129,6 +128,26 @@ await client.listings.update('lst_r7kq2xy9m3pR5tW1', { price: 3900 });
|
|
|
129
128
|
// Remove deliverables (revert to external fulfillment)
|
|
130
129
|
await client.listings.removeDeliverables('lst_r7kq2xy9m3pR5tW1');
|
|
131
130
|
|
|
131
|
+
// Add a single deliverable using the Deliverable class
|
|
132
|
+
import { Deliverable } from 'listbee';
|
|
133
|
+
|
|
134
|
+
await client.listings.addDeliverable('lst_r7kq2xy9m3pR5tW1', Deliverable.url('https://example.com/playbook.pdf'));
|
|
135
|
+
await client.listings.addDeliverable('lst_r7kq2xy9m3pR5tW1', Deliverable.text('Your license key: XXXX-XXXX'));
|
|
136
|
+
await client.listings.addDeliverable('lst_r7kq2xy9m3pR5tW1', Deliverable.fromToken(file.token));
|
|
137
|
+
|
|
138
|
+
// Remove a single deliverable by del_ ID
|
|
139
|
+
await client.listings.removeDeliverable('lst_r7kq2xy9m3pR5tW1', 'del_4hR9nK2mQ7tV5wX1');
|
|
140
|
+
|
|
141
|
+
// Create a listing and attach deliverables in one call
|
|
142
|
+
const listing = await client.listings.createComplete({
|
|
143
|
+
name: 'SEO Playbook',
|
|
144
|
+
price: 2900,
|
|
145
|
+
deliverables: [
|
|
146
|
+
Deliverable.url('https://example.com/seo-playbook.pdf'),
|
|
147
|
+
],
|
|
148
|
+
});
|
|
149
|
+
await client.listings.publish(listing.id);
|
|
150
|
+
|
|
132
151
|
// Delete
|
|
133
152
|
await client.listings.delete('lst_r7kq2xy9m3pR5tW1');
|
|
134
153
|
```
|
|
@@ -152,17 +171,19 @@ console.log(order.checkout_data); // custom checkout field values
|
|
|
152
171
|
console.log(order.paid_at); // ISO 8601 timestamp
|
|
153
172
|
|
|
154
173
|
// Deliver — push content to the buyer (external fulfillment)
|
|
174
|
+
import { Deliverable } from 'listbee';
|
|
175
|
+
|
|
155
176
|
const fulfilled = await client.orders.deliver('ord_9xM4kP7nR2qT5wY1', {
|
|
156
177
|
deliverables: [
|
|
157
|
-
|
|
178
|
+
Deliverable.text('Your AI-generated report is ready.'),
|
|
158
179
|
],
|
|
159
180
|
});
|
|
160
181
|
console.log(fulfilled.status); // "fulfilled"
|
|
161
182
|
|
|
162
|
-
// Or deliver a
|
|
183
|
+
// Or deliver a URL
|
|
163
184
|
await client.orders.deliver('ord_9xM4kP7nR2qT5wY1', {
|
|
164
185
|
deliverables: [
|
|
165
|
-
|
|
186
|
+
Deliverable.url('https://example.com/report.pdf'),
|
|
166
187
|
],
|
|
167
188
|
});
|
|
168
189
|
|
|
@@ -197,18 +218,19 @@ console.log(customer.email, customer.order_count);
|
|
|
197
218
|
|
|
198
219
|
```typescript
|
|
199
220
|
import { createReadStream } from 'fs';
|
|
221
|
+
import { Deliverable } from 'listbee';
|
|
200
222
|
|
|
201
223
|
// Upload a file (multipart, native FormData)
|
|
202
224
|
const file = await client.files.upload({
|
|
203
225
|
file: createReadStream('/path/to/report.pdf'),
|
|
204
226
|
filename: 'report.pdf',
|
|
205
227
|
});
|
|
206
|
-
console.log(file.
|
|
228
|
+
console.log(file.token); // use this token in setDeliverables / Deliverable.fromToken()
|
|
207
229
|
|
|
208
230
|
// Then attach to a listing
|
|
209
231
|
await client.listings.setDeliverables(listing.id, {
|
|
210
232
|
deliverables: [
|
|
211
|
-
|
|
233
|
+
Deliverable.fromToken(file.token),
|
|
212
234
|
],
|
|
213
235
|
});
|
|
214
236
|
```
|
|
@@ -300,68 +322,30 @@ console.log(connect.url); // redirect seller here
|
|
|
300
322
|
await client.stripe.disconnect();
|
|
301
323
|
```
|
|
302
324
|
|
|
303
|
-
##
|
|
304
|
-
|
|
305
|
-
Composite methods that chain multiple API calls into one.
|
|
325
|
+
## Fulfillment modes
|
|
306
326
|
|
|
307
|
-
|
|
327
|
+
- **Managed** — ListBee delivers digital content automatically. Call `setDeliverables()` on the listing, then `publish()`.
|
|
328
|
+
- **External** — ListBee fires `order.paid` webhook, your app handles delivery. Call `orders.deliver()` to push content back.
|
|
308
329
|
|
|
309
330
|
```typescript
|
|
310
|
-
|
|
311
|
-
|
|
331
|
+
import { Deliverable } from 'listbee';
|
|
332
|
+
|
|
333
|
+
// One-shot: create listing + attach deliverables
|
|
334
|
+
const listing = await client.listings.createComplete({
|
|
312
335
|
name: 'SEO Playbook',
|
|
313
336
|
price: 2900,
|
|
314
|
-
deliverables: [
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
// External fulfillment — no deliverables needed
|
|
318
|
-
const listing = await client.listings.createAndPublish({
|
|
319
|
-
name: 'Custom Report',
|
|
320
|
-
price: 4900,
|
|
321
|
-
fulfillment: 'external',
|
|
322
|
-
});
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
### Upload and Set Deliverable
|
|
326
|
-
|
|
327
|
-
```typescript
|
|
328
|
-
const listing = await client.listings.uploadAndSetDeliverable('lst_abc123', {
|
|
329
|
-
file: new File([buffer], 'ebook.pdf', { type: 'application/pdf' }),
|
|
330
|
-
});
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
### Upload and Deliver
|
|
334
|
-
|
|
335
|
-
```typescript
|
|
336
|
-
const order = await client.orders.uploadAndDeliver('ord_abc123', {
|
|
337
|
-
file: new File([content], 'report.pdf', { type: 'application/pdf' }),
|
|
337
|
+
deliverables: [
|
|
338
|
+
Deliverable.url('https://example.com/seo-playbook.pdf'),
|
|
339
|
+
],
|
|
338
340
|
});
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
### Get Customer by Email
|
|
342
|
-
|
|
343
|
-
```typescript
|
|
344
|
-
const customer = await client.customers.getByEmail('buyer@example.com');
|
|
345
|
-
if (customer) {
|
|
346
|
-
console.log(`Total spent: ${customer.total_spent}`);
|
|
347
|
-
}
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
### Retry Failed Webhook Events
|
|
351
|
-
|
|
352
|
-
```typescript
|
|
353
|
-
const retried = await client.webhooks.retryFailedEvents('wh_abc123');
|
|
354
|
-
console.log(`Retried ${retried.length} events`);
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
## Fulfillment modes
|
|
341
|
+
await client.listings.publish(listing.id);
|
|
358
342
|
|
|
359
|
-
|
|
360
|
-
|
|
343
|
+
// Add or remove individual deliverables after creation
|
|
344
|
+
await client.listings.addDeliverable(listing.id, Deliverable.text('Bonus: license key XXXX-XXXX'));
|
|
345
|
+
await client.listings.removeDeliverable(listing.id, 'del_4hR9nK2mQ7tV5wX1');
|
|
361
346
|
|
|
362
|
-
```typescript
|
|
363
347
|
// External fulfillment — AI-generated content
|
|
364
|
-
const
|
|
348
|
+
const external = await client.listings.create({
|
|
365
349
|
name: 'Custom SEO Report',
|
|
366
350
|
price: 4900,
|
|
367
351
|
fulfillment: 'external',
|
|
@@ -369,12 +353,12 @@ const listing = await client.listings.create({
|
|
|
369
353
|
{ type: 'text', key: 'website_url', label: 'Your website URL', required: true },
|
|
370
354
|
],
|
|
371
355
|
});
|
|
372
|
-
await client.listings.publish(
|
|
356
|
+
await client.listings.publish(external.id);
|
|
373
357
|
|
|
374
358
|
// On order.paid webhook:
|
|
375
359
|
await client.orders.deliver(order.id, {
|
|
376
360
|
deliverables: [
|
|
377
|
-
|
|
361
|
+
Deliverable.text(generatedReport),
|
|
378
362
|
],
|
|
379
363
|
});
|
|
380
364
|
```
|
|
@@ -477,6 +461,8 @@ import {
|
|
|
477
461
|
ListBee,
|
|
478
462
|
CursorPage,
|
|
479
463
|
ErrorCode,
|
|
464
|
+
Deliverable, // input class: .file() | .url() | .text() | .fromToken()
|
|
465
|
+
PartialCreationError, // thrown when listing is created but deliverable attachment fails
|
|
480
466
|
|
|
481
467
|
// Response types
|
|
482
468
|
type ListingResponse,
|
|
@@ -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":";AAAA;;GAEG;;;AAEH,6CAA6C;AAC7C,MAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC;AAED,wEAAwE;AACxE,MAAa,kBAAmB,SAAQ,YAAY;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAED,uCAAuC;AACvC,MAAa,eAAgB,SAAQ,YAAY;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED,+DAA+D;AAC/D,MAAa,cAAe,SAAQ,YAAY;IAc9C,YAAY,IAOX;;QACC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC;IAClC,CAAC;CACF;AA/BD,wCA+BC;AAED,mEAAmE;AACnE,MAAa,eAAgB,SAAQ,cAAc;IACjD,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED,4DAA4D;AAC5D,MAAa,mBAAoB,SAAQ,cAAc;IACrD,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED,+CAA+C;AAC/C,MAAa,cAAe,SAAQ,cAAc;IAChD,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AALD,wCAKC;AAED,oDAAoD;AACpD,MAAa,aAAc,SAAQ,cAAc;IAC/C,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AALD,sCAKC;AAED,mDAAmD;AACnD,MAAa,aAAc,SAAQ,cAAc;IAC/C,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AALD,sCAKC;AAED,2DAA2D;AAC3D,MAAa,eAAgB,SAAQ,cAAc;IACjD,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED,2DAA2D;AAC3D,MAAa,oBAAqB,SAAQ,cAAc;IACtD,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC;AAED,qDAAqD;AACrD,MAAa,cAAe,SAAQ,cAAc;IAQhD,YACE,IAIC;;QAED,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,IAAI,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC;IAClC,CAAC;CACF;AArBD,wCAqBC;AAED,oDAAoD;AACpD,MAAa,mBAAoB,SAAQ,cAAc;IACrD,YAAY,IAAqD;QAC/D,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED,wDAAwD;AACxD,MAAa,wBAAyB,SAAQ,YAAY;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC;AAED;;;;;;GAMG;AACH,MAAa,oBAAqB,SAAQ,YAAY;IAGpD,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AARD,oDAQC;AAWD;;GAEG;AACH,SAAgB,cAAc,CAAC,UAAkB,EAAE,IAAe,EAAE,OAA+B;IACjG,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1E,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAE1D,IAAI,UAAU,KAAK,GAAG;QAAE,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,GAAG;QAAE,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,UAAU,KAAK,GAAG;QAAE,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,GAAG;QAAE,MAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,GAAG;QAAE,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,IAAI,cAAc,CAAC;YACvB,GAAG,IAAI;YACP,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;YACvD,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;YACnE,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;SACtD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,UAAU,IAAI,GAAG;QAAE,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE3D,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AA/BD,wCA+BC"}
|
|
@@ -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
|
-
|
|
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;
|