@ardrive/turbo-sdk 1.43.0 → 1.44.0-alpha.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/lib/cjs/common/chunked.js +10 -1
- package/lib/cjs/common/http.js +24 -0
- package/lib/cjs/common/payment.js +8 -1
- package/lib/cjs/common/turbo.js +28 -0
- package/lib/cjs/common/upload.js +185 -8
- package/lib/esm/common/chunked.js +10 -1
- package/lib/esm/common/http.js +24 -0
- package/lib/esm/common/payment.js +8 -1
- package/lib/esm/common/turbo.js +28 -0
- package/lib/esm/common/upload.js +185 -8
- package/lib/types/common/chunked.d.ts +25 -8
- package/lib/types/common/chunked.d.ts.map +1 -1
- package/lib/types/common/http.d.ts +8 -0
- package/lib/types/common/http.d.ts.map +1 -1
- package/lib/types/common/payment.d.ts +2 -9
- package/lib/types/common/payment.d.ts.map +1 -1
- package/lib/types/common/turbo.d.ts +22 -9
- package/lib/types/common/turbo.d.ts.map +1 -1
- package/lib/types/common/upload.d.ts +27 -1
- package/lib/types/common/upload.d.ts.map +1 -1
- package/lib/types/types.d.ts +137 -8
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +2 -1
package/lib/esm/common/upload.js
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { BigNumber } from 'bignumber.js';
|
|
17
|
+
import { Readable } from 'node:stream';
|
|
17
18
|
import { pLimit } from 'plimit-lit';
|
|
18
19
|
import { ExistingBalanceFunding, OnDemandFunding, X402Funding, } from '../types.js';
|
|
19
20
|
import { isBlob, isValidArweaveBase64URL, sleep } from '../utils/common.js';
|
|
@@ -77,6 +78,29 @@ export class TurboUnauthenticatedUploadService {
|
|
|
77
78
|
headers['x-paid-by'] = paidBy;
|
|
78
79
|
}
|
|
79
80
|
}
|
|
81
|
+
if (x402Options !== undefined) {
|
|
82
|
+
/*
|
|
83
|
+
x402 needs a body fetch can measure, and one it can send twice.
|
|
84
|
+
|
|
85
|
+
`content-length` is a forbidden header, so setting it above does
|
|
86
|
+
nothing: a streamed body goes out chunked with no length. The service
|
|
87
|
+
prices from that header, so without it there is no 402 challenge — and
|
|
88
|
+
the protocol's paid retry has a spent stream to replay, which fails
|
|
89
|
+
outright. Buffering fixes both: the length is declared honestly and the
|
|
90
|
+
body can be re-sent.
|
|
91
|
+
|
|
92
|
+
Bounded by the chunking decision above — anything over two chunks took
|
|
93
|
+
the chunked path, which pays at create and never reaches here.
|
|
94
|
+
*/
|
|
95
|
+
const body = await streamToBuffer(streamWithUploadEvents, dataItemSize, resume, signal);
|
|
96
|
+
return this.httpService.post({
|
|
97
|
+
endpoint: `/tx/${this.token}`,
|
|
98
|
+
signal,
|
|
99
|
+
data: body,
|
|
100
|
+
headers,
|
|
101
|
+
x402Options,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
80
104
|
// setup the post request using the stream with upload events
|
|
81
105
|
const postPromise = this.httpService.post({
|
|
82
106
|
endpoint: `/tx/${this.token}`,
|
|
@@ -89,6 +113,46 @@ export class TurboUnauthenticatedUploadService {
|
|
|
89
113
|
resume();
|
|
90
114
|
return postPromise;
|
|
91
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Price a SIGNED data item for an x402 upload, without sending it.
|
|
118
|
+
*
|
|
119
|
+
* The only other way to learn an x402 price is to POST the payload and read
|
|
120
|
+
* the 402 challenge, which means transmitting it to find out what it costs.
|
|
121
|
+
*
|
|
122
|
+
* `byteCount` is the size of the signed data item — what
|
|
123
|
+
* `dataItemSizeFactory()` returns — not the payload inside it. Use
|
|
124
|
+
* `getX402PriceForRawData` when the service does the wrapping.
|
|
125
|
+
*
|
|
126
|
+
* `network` names the x402 network, not the SDK token: the route builds its
|
|
127
|
+
* token as `usdc-{network}`. `base-usdc` is accepted on mainnet only because
|
|
128
|
+
* the network there is literally `base`, so a testnet caller must pass
|
|
129
|
+
* `base-sepolia` explicitly.
|
|
130
|
+
*/
|
|
131
|
+
async getX402PriceForDataItem({ byteCount, network = 'base', }) {
|
|
132
|
+
return this.httpService.get({
|
|
133
|
+
endpoint: `/price/x402/data-item/usdc-${network}/${byteCount}`,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Price RAW data for an x402 upload, where the service wraps it into a data
|
|
138
|
+
* item itself.
|
|
139
|
+
*
|
|
140
|
+
* Also reports the wrapping overhead — a data item is larger than its
|
|
141
|
+
* payload by its header, signature and tags — which the caller has no way to
|
|
142
|
+
* compute. `tagCount` and `contentType` feed that estimate, so pass what the
|
|
143
|
+
* upload will actually carry or the quote will read low.
|
|
144
|
+
*/
|
|
145
|
+
async getX402PriceForRawData({ byteCount, network = 'base', tagCount, contentType, }) {
|
|
146
|
+
const query = new URLSearchParams();
|
|
147
|
+
if (tagCount !== undefined)
|
|
148
|
+
query.set('tags', `${tagCount}`);
|
|
149
|
+
if (contentType !== undefined)
|
|
150
|
+
query.set('contentType', contentType);
|
|
151
|
+
const qs = query.toString();
|
|
152
|
+
return this.httpService.get({
|
|
153
|
+
endpoint: `/price/x402/data/usdc-${network}/${byteCount}${qs ? `?${qs}` : ''}`,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
92
156
|
async uploadRawX402Data({ data, tags, signal, maxMUSDCAmount, signer, }) {
|
|
93
157
|
if (!this.x402EnabledTokens.includes(this.token)) {
|
|
94
158
|
throw new Error('x402 uploads are not supported for token: ' + this.token);
|
|
@@ -222,8 +286,28 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
|
222
286
|
!this.x402EnabledTokens.includes(this.token)) {
|
|
223
287
|
throw new Error('x402 uploads are not supported for token: ' + this.token);
|
|
224
288
|
}
|
|
289
|
+
/*
|
|
290
|
+
Buffering the single request is only safe because anything larger chunks.
|
|
291
|
+
`chunkingMode: 'disabled'` removes that guarantee, so an arbitrarily large
|
|
292
|
+
item would be pulled into memory — and the service caps single-request
|
|
293
|
+
items anyway, so it would be refused after the fact. Check before signing:
|
|
294
|
+
signing a large item only to reject it wastes the expensive part.
|
|
295
|
+
*/
|
|
296
|
+
if (fundingMode instanceof X402Funding &&
|
|
297
|
+
params.chunkingMode === 'disabled' &&
|
|
298
|
+
fileSizeFactory() > maxX402SingleRequestByteCount) {
|
|
299
|
+
throw new Error(`An x402 upload of ${fileSizeFactory()} bytes must be chunked: the ` +
|
|
300
|
+
`single-request path buffers the item in memory and is limited to ` +
|
|
301
|
+
`${maxX402SingleRequestByteCount} bytes. Remove ` +
|
|
302
|
+
`chunkingMode: 'disabled' to upload this item.`);
|
|
303
|
+
}
|
|
225
304
|
this.logger.debug('Starting file upload', { params });
|
|
226
305
|
let retries = 0;
|
|
306
|
+
// Carried ACROSS retry attempts. A paid chunked upload is bought before any
|
|
307
|
+
// chunk is accepted, so an attempt that fails after paying must hand its
|
|
308
|
+
// upload id to the next attempt. Rebuilding the uploader with no id is how
|
|
309
|
+
// a single upload gets billed once per retry.
|
|
310
|
+
let paidUploadId;
|
|
227
311
|
const maxRetries = this.retryConfig.retries ?? 3;
|
|
228
312
|
const retryDelay = this.retryConfig.retryDelay ??
|
|
229
313
|
((retryNumber) => retryNumber * 1000);
|
|
@@ -279,6 +363,7 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
|
279
363
|
dataItemByteCount: dataItemSizeFactory(),
|
|
280
364
|
chunkingMode: params.chunkingMode,
|
|
281
365
|
maxFinalizeMs: params.maxFinalizeMs,
|
|
366
|
+
paidUploadId,
|
|
282
367
|
...(x402Options ? { x402: x402Options } : {}),
|
|
283
368
|
...(x402Options
|
|
284
369
|
? {
|
|
@@ -290,14 +375,21 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
|
290
375
|
: {}),
|
|
291
376
|
});
|
|
292
377
|
if (chunkedUploader.shouldUseChunkUploader) {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
378
|
+
try {
|
|
379
|
+
const response = await chunkedUploader.upload({
|
|
380
|
+
dataItemStreamFactory,
|
|
381
|
+
dataItemSizeFactory,
|
|
382
|
+
dataItemOpts,
|
|
383
|
+
signal,
|
|
384
|
+
events,
|
|
385
|
+
});
|
|
386
|
+
return { ...response, cryptoFundResult };
|
|
387
|
+
}
|
|
388
|
+
finally {
|
|
389
|
+
// Read on the way out, success or failure. On failure this is the
|
|
390
|
+
// whole point: the next attempt resumes what this one paid for.
|
|
391
|
+
paidUploadId = chunkedUploader.currentPaidUploadId ?? paidUploadId;
|
|
392
|
+
}
|
|
301
393
|
}
|
|
302
394
|
const response = await this.uploadSignedDataItem({
|
|
303
395
|
dataItemStreamFactory,
|
|
@@ -978,3 +1070,88 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
|
978
1070
|
});
|
|
979
1071
|
}
|
|
980
1072
|
}
|
|
1073
|
+
/**
|
|
1074
|
+
* The largest data item the x402 single-request path will buffer.
|
|
1075
|
+
*
|
|
1076
|
+
* Normally unreachable: anything over two chunks takes the chunked path, which
|
|
1077
|
+
* pays at create and streams. It bites only when chunking is explicitly
|
|
1078
|
+
* disabled, and it exists so that case fails with an explanation rather than
|
|
1079
|
+
* by exhausting memory.
|
|
1080
|
+
*/
|
|
1081
|
+
const maxX402SingleRequestByteCount = 100 * 1024 * 1024;
|
|
1082
|
+
/**
|
|
1083
|
+
* Drain a data-item stream into a Buffer, resuming it once the reader is
|
|
1084
|
+
* attached so upload-progress events still fire.
|
|
1085
|
+
*
|
|
1086
|
+
* Checks the running total as it fills rather than at the end: a stream that
|
|
1087
|
+
* overruns its declared size would otherwise be held in memory in full before
|
|
1088
|
+
* anything objected.
|
|
1089
|
+
*/
|
|
1090
|
+
async function streamToBuffer(stream, byteCount, resume, signal) {
|
|
1091
|
+
// A closure, so TypeScript does not narrow `aborted` away for the whole
|
|
1092
|
+
// function — it genuinely can flip while the stream is draining.
|
|
1093
|
+
const isAborted = () => signal?.aborted === true;
|
|
1094
|
+
if (isAborted()) {
|
|
1095
|
+
throw new AbortError();
|
|
1096
|
+
}
|
|
1097
|
+
const chunks = [];
|
|
1098
|
+
let received = 0;
|
|
1099
|
+
const take = (chunk) => {
|
|
1100
|
+
received += chunk.byteLength;
|
|
1101
|
+
if (received > byteCount) {
|
|
1102
|
+
throw new Error(`Data item stream exceeded its declared size of ${byteCount} bytes`);
|
|
1103
|
+
}
|
|
1104
|
+
chunks.push(chunk);
|
|
1105
|
+
};
|
|
1106
|
+
if (stream instanceof Readable) {
|
|
1107
|
+
const done = new Promise((resolve, reject) => {
|
|
1108
|
+
const onAbort = () => {
|
|
1109
|
+
stream.destroy();
|
|
1110
|
+
reject(new AbortError());
|
|
1111
|
+
};
|
|
1112
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
1113
|
+
stream.on('data', (c) => {
|
|
1114
|
+
try {
|
|
1115
|
+
take(Buffer.from(c));
|
|
1116
|
+
}
|
|
1117
|
+
catch (error) {
|
|
1118
|
+
stream.destroy();
|
|
1119
|
+
reject(error);
|
|
1120
|
+
}
|
|
1121
|
+
});
|
|
1122
|
+
stream.on('end', () => {
|
|
1123
|
+
signal?.removeEventListener('abort', onAbort);
|
|
1124
|
+
resolve();
|
|
1125
|
+
});
|
|
1126
|
+
stream.on('error', reject);
|
|
1127
|
+
});
|
|
1128
|
+
resume();
|
|
1129
|
+
await done;
|
|
1130
|
+
}
|
|
1131
|
+
else {
|
|
1132
|
+
const reader = stream.getReader();
|
|
1133
|
+
resume();
|
|
1134
|
+
try {
|
|
1135
|
+
for (;;) {
|
|
1136
|
+
if (isAborted()) {
|
|
1137
|
+
await reader.cancel();
|
|
1138
|
+
throw new AbortError();
|
|
1139
|
+
}
|
|
1140
|
+
const { done, value } = await reader.read();
|
|
1141
|
+
if (done)
|
|
1142
|
+
break;
|
|
1143
|
+
if (value !== undefined)
|
|
1144
|
+
take(Buffer.from(value));
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
catch (error) {
|
|
1148
|
+
await reader.cancel().catch(() => undefined);
|
|
1149
|
+
throw error;
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
const buf = Buffer.concat(chunks);
|
|
1153
|
+
if (buf.byteLength !== byteCount) {
|
|
1154
|
+
throw new Error(`Data item stream produced ${buf.byteLength} bytes, expected ${byteCount}`);
|
|
1155
|
+
}
|
|
1156
|
+
return buf;
|
|
1157
|
+
}
|
|
@@ -16,13 +16,18 @@ export declare class ChunkedUploader {
|
|
|
16
16
|
/**
|
|
17
17
|
* The upload id of an x402 upload we have ALREADY PAID FOR.
|
|
18
18
|
*
|
|
19
|
-
* `uploadFile` retries a failed upload up to 6 times
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
19
|
+
* `uploadFile` retries a failed upload up to 6 times. Without this memo each
|
|
20
|
+
* retry opens a NEW paid upload, so one 12 MiB upload whose finalization
|
|
21
|
+
* timed out billed the customer five times over — observed, not theoretical.
|
|
22
|
+
* The payment is bound to an upload id, so a retry must resume THAT upload,
|
|
23
|
+
* never buy another. Deliberately not reset on failure: re-paying is never
|
|
24
|
+
* the right recovery, and an upload that cannot be resumed is refunded
|
|
25
|
+
* server-side.
|
|
26
|
+
*
|
|
27
|
+
* A retry does NOT re-enter `upload()` on this instance: `uploadFile`
|
|
28
|
+
* constructs a fresh uploader each attempt, so this memo only survives
|
|
29
|
+
* because that caller reads {@link currentPaidUploadId} and hands it back
|
|
30
|
+
* through the constructor.
|
|
26
31
|
*/
|
|
27
32
|
private paidUploadId;
|
|
28
33
|
private readonly http;
|
|
@@ -38,7 +43,7 @@ export declare class ChunkedUploader {
|
|
|
38
43
|
* that actually arrive and penalises an under-declaration.
|
|
39
44
|
*/
|
|
40
45
|
private dataItemByteCount;
|
|
41
|
-
constructor({ http, token, maxChunkConcurrency, maxFinalizeMs, chunkByteCount, logger, chunkingMode, dataItemByteCount, x402, x402RefundIdentity, }: {
|
|
46
|
+
constructor({ http, token, maxChunkConcurrency, maxFinalizeMs, chunkByteCount, logger, chunkingMode, dataItemByteCount, x402, x402RefundIdentity, paidUploadId, }: {
|
|
42
47
|
maxFinalizeMs?: number;
|
|
43
48
|
http: TurboHTTPService;
|
|
44
49
|
token: string;
|
|
@@ -60,6 +65,12 @@ export declare class ChunkedUploader {
|
|
|
60
65
|
address: string;
|
|
61
66
|
signatureType: number;
|
|
62
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* An upload this caller has ALREADY PAID FOR. `uploadFile` builds a new
|
|
70
|
+
* uploader per retry attempt, so the in-instance memo below cannot survive
|
|
71
|
+
* a retry on its own: the id has to be handed back in.
|
|
72
|
+
*/
|
|
73
|
+
paidUploadId?: string;
|
|
63
74
|
});
|
|
64
75
|
private shouldChunkUpload;
|
|
65
76
|
private assertChunkParams;
|
|
@@ -78,6 +89,12 @@ export declare class ChunkedUploader {
|
|
|
78
89
|
* spend cap behave identically on both paths.
|
|
79
90
|
*/
|
|
80
91
|
private initPaidUpload;
|
|
92
|
+
/**
|
|
93
|
+
* The paid upload id, once one has been bought. `uploadFile` reads this after
|
|
94
|
+
* a failed attempt so the next attempt resumes the upload already paid for
|
|
95
|
+
* rather than buying a second one.
|
|
96
|
+
*/
|
|
97
|
+
get currentPaidUploadId(): string | undefined;
|
|
81
98
|
private initUpload;
|
|
82
99
|
upload({ dataItemSizeFactory, dataItemStreamFactory, dataItemOpts, signal, events, }: UploadSignedDataItemParams): Promise<TurboUploadDataItemResponse>;
|
|
83
100
|
private toGiB;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunked.d.ts","sourceRoot":"","sources":["../../../src/common/chunked.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EAET,iBAAiB,EACjB,WAAW,EAEX,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAK7C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAK5C,eAAO,MAAM,iBAAiB,QAAiB,CAAC;AAChD,eAAO,MAAM,iBAAiB,QAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAoB,CAAC;AAKvD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD
|
|
1
|
+
{"version":3,"file":"chunked.d.ts","sourceRoot":"","sources":["../../../src/common/chunked.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EAET,iBAAiB,EACjB,WAAW,EAEX,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAK7C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAK5C,eAAO,MAAM,iBAAiB,QAAiB,CAAC;AAChD,eAAO,MAAM,iBAAiB,QAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAoB,CAAC;AAKvD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,SAAgB,sBAAsB,EAAE,OAAO,CAAC;IAChD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,IAAI,CAAqC;IACjD,OAAO,CAAC,kBAAkB,CAEZ;IACd;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAY;gBAEzB,EACV,IAAI,EACJ,KAAK,EACL,mBAAgD,EAChD,aAAa,EACb,cAAsC,EACtC,MAAuB,EACvB,YAAqB,EACrB,iBAAiB,EACjB,IAAI,EACJ,kBAAkB,EAClB,YAAY,GACb,EAAE;QACD,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,gBAAgB,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,iBAAiB,CAAC;QACjC,iBAAiB,EAAE,SAAS,CAAC;QAC7B,8DAA8D;QAC9D,IAAI,CAAC,EAAE,sBAAsB,CAAC;QAC9B;;;;;;WAMG;QACH,kBAAkB,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;QAChE;;;;WAIG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAyBD,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB;IAwDzB;;OAEG;IACH;;;;;;;;;;OAUG;YACW,cAAc;IAwC5B;;;;OAIG;IACH,IAAW,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAEnD;YAEa,UAAU;IAwBX,MAAM,CAAC,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,MAAM,GACP,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAwHpE,OAAO,CAAC,KAAK;YAIC,cAAc;CAoG7B;AAED;;;GAGG;AACH,wBAAuB,eAAe,CACpC,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,EAC7C,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAMvC;AACD,wBAAuB,uBAAuB,CAC5C,MAAM,EAAE,QAAQ,EAChB,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAkDvC;AAED,wBAAuB,6BAA6B,CAClD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAyDvC"}
|
|
@@ -42,6 +42,14 @@ export declare class TurboHTTPService implements TurboHTTPServiceInterface {
|
|
|
42
42
|
retryConfig: RetryConfig;
|
|
43
43
|
logger: TurboLogger;
|
|
44
44
|
});
|
|
45
|
+
/**
|
|
46
|
+
* Refuse to pay over cleartext.
|
|
47
|
+
*
|
|
48
|
+
* An x402 payment authorization is a bearer credential: anyone who observes
|
|
49
|
+
* it can submit it. Sending one over `http:` hands it to the network, so a
|
|
50
|
+
* misconfigured service URL must fail loudly rather than quietly leak.
|
|
51
|
+
*/
|
|
52
|
+
private assertSecureForPayment;
|
|
45
53
|
get<T>({ endpoint, signal, allowedStatuses, headers, x402Options, }: {
|
|
46
54
|
endpoint: `/${string}`;
|
|
47
55
|
signal?: AbortSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,WAQzD,CAAC;AAOH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,EACV,GAAG,EACH,MAAM,EACN,WAAwC,GACzC,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,EAAE,WAAW,CAAC;KACrB;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,WAQzD,CAAC;AAOH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,EACV,GAAG,EACH,MAAM,EACN,WAAwC,GACzC,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,EAAE,WAAW,CAAC;KACrB;IAMD;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAQxB,GAAG,CAAC,CAAC,EAAE,EACX,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,EACP,WAAW,GACZ,EAAE;QACD,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtE;;;;;;;;WAQG;QACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;KACtC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyCR,IAAI,CAAC,CAAC,EAAE,EACZ,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,EACP,IAAI,EACJ,WAAW,EACX,KAAY,GACb,EAAE;QACD,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,CAAC;QACtD,WAAW,CAAC,EAAE,sBAAsB,CAAC;QAIrC,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,CAAC;YAmCA,UAAU;YA6BV,SAAS;YAsCT,QAAQ;CAgDvB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArNSAction, ArNSActionCompleted, ArNSActionPriceResponse, ArNSActionResult, ArNSFiatPurchaseQuoteParams, ArNSFiatPurchaseQuoteResponse,
|
|
1
|
+
import { ArNSAction, ArNSActionCompleted, ArNSActionPriceResponse, ArNSActionResult, ArNSBuyNameActionParams, ArNSFiatPurchaseQuoteParams, ArNSFiatPurchaseQuoteResponse, ArNSOwnerSigner, ArNSPriceParams, ArNSPriceResponse, ArNSPurchaseParams, ArNSPurchaseStatusResponse, AuthenticatedArNSFiatPurchaseQuoteParams, Currency, GetCreditShareApprovalsResponse, TokenTools, TokenType, TurboArNSNamesResponse, TurboAuthenticatedPaymentServiceConfiguration, TurboAuthenticatedPaymentServiceInterface, TurboBalanceResponse, TurboCheckoutSessionParams, TurboCheckoutSessionResponse, TurboCountriesResponse, TurboCryptoFundResponse, TurboCurrenciesResponse, TurboDataItemSigner, TurboFiatEstimateForBytesResponse, TurboFiatToArResponse, TurboFreeStatusResponse, TurboFundWithTokensParams, TurboLogger, TurboPaymentHistoryParams, TurboPaymentHistoryResponse, TurboPaymentIntentParams, TurboPaymentIntentResponse, TurboPriceResponse, TurboRatesResponse, TurboSignedRequestHeaders, TurboSubmitFundTxResponse, TurboTokenPriceForBytesResponse, TurboUnauthenticatedPaymentServiceConfiguration, TurboUnauthenticatedPaymentServiceInterface, TurboWincForFiatParams, TurboWincForFiatResponse, TurboWincForTokenParams, TurboWincForTokenResponse, UserAddress } from '../types.js';
|
|
2
2
|
import { TurboHTTPService } from './http.js';
|
|
3
3
|
export declare const developmentPaymentServiceURL = "https://payment.ardrive.dev";
|
|
4
4
|
export declare const defaultPaymentServiceURL = "https://payment.ardrive.io";
|
|
@@ -187,14 +187,7 @@ export declare class TurboAuthenticatedPaymentService extends TurboUnauthenticat
|
|
|
187
187
|
* The owner needs a Solana key to sign with, NOT a funded one — Turbo pays
|
|
188
188
|
* every lamport of fee and rent.
|
|
189
189
|
*/
|
|
190
|
-
buyArNSName({ name, owner, type, years, paidBy, onNonce, }:
|
|
191
|
-
name: string;
|
|
192
|
-
owner: ArNSOwnerSigner;
|
|
193
|
-
type?: ArNSNameType;
|
|
194
|
-
years?: number;
|
|
195
|
-
paidBy?: UserAddress | UserAddress[];
|
|
196
|
-
onNonce?: (nonce: string) => void | Promise<void>;
|
|
197
|
-
}): Promise<ArNSActionCompleted>;
|
|
190
|
+
buyArNSName({ name, owner, type, years, paidBy, onNonce, antState, }: ArNSBuyNameActionParams): Promise<ArNSActionCompleted>;
|
|
198
191
|
/** Extend a lease. Permissionless on chain — no owner signature needed. */
|
|
199
192
|
extendArNSLease({ name, years, paidBy, onNonce, }: {
|
|
200
193
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,
|
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { BigNumber } from 'bignumber.js';
|
|
17
|
-
import { ArNSAction, ArNSActionCompleted, ArNSActionPriceResponse, ArNSActionResult, ArNSFiatPurchaseQuoteParams, ArNSFiatPurchaseQuoteResponse,
|
|
17
|
+
import { ArNSAction, ArNSActionCompleted, ArNSActionPriceResponse, ArNSActionResult, ArNSBuyNameActionParams, ArNSFiatPurchaseQuoteParams, ArNSFiatPurchaseQuoteResponse, ArNSOwnerSigner, ArNSPriceParams, ArNSPriceResponse, ArNSPurchaseStatusResponse, AuthenticatedArNSFiatPurchaseQuoteParams, CreditShareApproval, Currency, FundingOptions, GetCreditShareApprovalsResponse, NativeAddress, TokenType, TurboAbortSignal, TurboArNSNamesResponse, TurboAuthenticatedClientConfiguration, TurboAuthenticatedClientInterface, TurboAuthenticatedPaymentServiceInterface, TurboAuthenticatedUploadServiceInterface, TurboBalanceResponse, TurboCheckoutSessionParams, TurboCheckoutSessionResponse, TurboChunkingParams, TurboCountriesResponse, TurboCreateCreditShareApprovalParams, TurboCryptoFundResponse, TurboCurrenciesResponse, TurboDataItemSigner, TurboFiatEstimateForBytesResponse, TurboFiatToArResponse, TurboFreeStatusResponse, TurboFundWithTokensParams, TurboPaymentHistoryParams, TurboPaymentHistoryResponse, TurboPaymentIntentParams, TurboPaymentIntentResponse, TurboPriceResponse, TurboRatesResponse, TurboRevokeCreditsParams, TurboSignedDataItemFactory, TurboSubmitFundTxResponse, TurboTokenPriceForBytesResponse, TurboUnauthenticatedClientConfiguration, TurboUnauthenticatedClientInterface, TurboUnauthenticatedPaymentServiceInterface, TurboUnauthenticatedUploadServiceInterface, TurboUploadAndSigningEmitterEvents, TurboUploadDataItemResponse, TurboUploadEmitterEvents, TurboUploadFileWithFileOrPathParams, TurboUploadFileWithStreamFactoryParams, TurboUploadFolderParams, TurboUploadFolderResponse, TurboWincForFiatParams, TurboWincForFiatResponse, TurboWincForTokenParams, TurboWincForTokenResponse, TurboX402DataItemPriceParams, TurboX402DataItemPriceResponse, TurboX402RawDataPriceParams, TurboX402RawDataPriceResponse, UploadDataInput, UploadDataType, UserAddress } from '../types.js';
|
|
18
18
|
/**
|
|
19
19
|
* Testing configuration.
|
|
20
20
|
*/
|
|
@@ -166,6 +166,16 @@ export declare class TurboUnauthenticatedClient implements TurboUnauthenticatedC
|
|
|
166
166
|
}[];
|
|
167
167
|
maxMUSDCAmount?: BigNumber;
|
|
168
168
|
}): Promise<TurboUploadDataItemResponse>;
|
|
169
|
+
/**
|
|
170
|
+
* Price a signed data item for an x402 upload without sending it. See
|
|
171
|
+
* `TurboUnauthenticatedUploadService.getX402PriceForDataItem`.
|
|
172
|
+
*/
|
|
173
|
+
getX402PriceForDataItem(p: TurboX402DataItemPriceParams): Promise<TurboX402DataItemPriceResponse>;
|
|
174
|
+
/**
|
|
175
|
+
* Price raw data for an x402 upload, including the data-item wrapping
|
|
176
|
+
* overhead. See `TurboUnauthenticatedUploadService.getX402PriceForRawData`.
|
|
177
|
+
*/
|
|
178
|
+
getX402PriceForRawData(p: TurboX402RawDataPriceParams): Promise<TurboX402RawDataPriceResponse>;
|
|
169
179
|
}
|
|
170
180
|
export declare class TurboAuthenticatedClient extends TurboUnauthenticatedClient implements TurboAuthenticatedClientInterface {
|
|
171
181
|
protected paymentService: TurboAuthenticatedPaymentServiceInterface;
|
|
@@ -213,14 +223,7 @@ export declare class TurboAuthenticatedClient extends TurboUnauthenticatedClient
|
|
|
213
223
|
* Buy a name. The ANT is minted straight to `owner`; Turbo never holds it.
|
|
214
224
|
* The only action that always needs the owner's signature — once, ever.
|
|
215
225
|
*/
|
|
216
|
-
buyArNSName(params:
|
|
217
|
-
name: string;
|
|
218
|
-
owner: ArNSOwnerSigner;
|
|
219
|
-
type?: ArNSNameType;
|
|
220
|
-
years?: number;
|
|
221
|
-
paidBy?: UserAddress | UserAddress[];
|
|
222
|
-
onNonce?: (nonce: string) => void | Promise<void>;
|
|
223
|
-
}): Promise<ArNSActionCompleted>;
|
|
226
|
+
buyArNSName(params: ArNSBuyNameActionParams): Promise<ArNSActionCompleted>;
|
|
224
227
|
/** Extend a lease. No owner signature needed. */
|
|
225
228
|
extendArNSLease(params: {
|
|
226
229
|
name: string;
|
|
@@ -409,5 +412,15 @@ export declare class TurboAuthenticatedClient extends TurboUnauthenticatedClient
|
|
|
409
412
|
}[];
|
|
410
413
|
maxMUSDCAmount?: BigNumber;
|
|
411
414
|
}): Promise<TurboUploadDataItemResponse>;
|
|
415
|
+
/**
|
|
416
|
+
* Price a signed data item for an x402 upload without sending it. See
|
|
417
|
+
* `TurboUnauthenticatedUploadService.getX402PriceForDataItem`.
|
|
418
|
+
*/
|
|
419
|
+
getX402PriceForDataItem(p: TurboX402DataItemPriceParams): Promise<TurboX402DataItemPriceResponse>;
|
|
420
|
+
/**
|
|
421
|
+
* Price raw data for an x402 upload, including the data-item wrapping
|
|
422
|
+
* overhead. See `TurboUnauthenticatedUploadService.getX402PriceForRawData`.
|
|
423
|
+
*/
|
|
424
|
+
getX402PriceForRawData(p: TurboX402RawDataPriceParams): Promise<TurboX402RawDataPriceResponse>;
|
|
412
425
|
}
|
|
413
426
|
//# sourceMappingURL=turbo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../../src/common/turbo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,
|
|
1
|
+
{"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../../src/common/turbo.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { BigNumber } from 'bignumber.js';
|
|
17
17
|
import { Readable } from 'node:stream';
|
|
18
|
-
import { ArweaveManifest, CreditShareApproval, FundingOptions, TokenType, TurboAbortSignal, TurboAuthenticatedUploadServiceConfiguration, TurboAuthenticatedUploadServiceInterface, TurboChunkingParams, TurboCreateCreditShareApprovalParams, TurboDataItemSigner, TurboFileFactory, TurboLogger, TurboRevokeCreditsParams, TurboUnauthenticatedUploadServiceConfiguration, TurboUnauthenticatedUploadServiceInterface, TurboUploadAndSigningEmitterEvents, TurboUploadDataItemResponse, TurboUploadEmitterEvents, TurboUploadFileParams, TurboUploadFolderParams, TurboUploadFolderResponse, UploadDataInput, UploadDataType, UploadSignedDataItemParams } from '../types.js';
|
|
18
|
+
import { ArweaveManifest, CreditShareApproval, FundingOptions, TokenType, TurboAbortSignal, TurboAuthenticatedUploadServiceConfiguration, TurboAuthenticatedUploadServiceInterface, TurboChunkingParams, TurboCreateCreditShareApprovalParams, TurboDataItemSigner, TurboFileFactory, TurboLogger, TurboRevokeCreditsParams, TurboUnauthenticatedUploadServiceConfiguration, TurboUnauthenticatedUploadServiceInterface, TurboUploadAndSigningEmitterEvents, TurboUploadDataItemResponse, TurboUploadEmitterEvents, TurboUploadFileParams, TurboUploadFolderParams, TurboUploadFolderResponse, TurboX402DataItemPriceParams, TurboX402DataItemPriceResponse, TurboX402RawDataPriceParams, TurboX402RawDataPriceResponse, UploadDataInput, UploadDataType, UploadSignedDataItemParams } from '../types.js';
|
|
19
19
|
import { RetryConfig } from './http.js';
|
|
20
20
|
import { TurboHTTPService } from './http.js';
|
|
21
21
|
import { TurboAuthenticatedPaymentService } from './payment.js';
|
|
@@ -36,6 +36,32 @@ export declare class TurboUnauthenticatedUploadService implements TurboUnauthent
|
|
|
36
36
|
protected retryConfig: RetryConfig;
|
|
37
37
|
constructor({ url, logger, retryConfig, token, }: TurboUnauthenticatedUploadServiceConfiguration);
|
|
38
38
|
uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, dataItemOpts, signal, events, x402Options, }: UploadSignedDataItemParams): Promise<TurboUploadDataItemResponse>;
|
|
39
|
+
/**
|
|
40
|
+
* Price a SIGNED data item for an x402 upload, without sending it.
|
|
41
|
+
*
|
|
42
|
+
* The only other way to learn an x402 price is to POST the payload and read
|
|
43
|
+
* the 402 challenge, which means transmitting it to find out what it costs.
|
|
44
|
+
*
|
|
45
|
+
* `byteCount` is the size of the signed data item — what
|
|
46
|
+
* `dataItemSizeFactory()` returns — not the payload inside it. Use
|
|
47
|
+
* `getX402PriceForRawData` when the service does the wrapping.
|
|
48
|
+
*
|
|
49
|
+
* `network` names the x402 network, not the SDK token: the route builds its
|
|
50
|
+
* token as `usdc-{network}`. `base-usdc` is accepted on mainnet only because
|
|
51
|
+
* the network there is literally `base`, so a testnet caller must pass
|
|
52
|
+
* `base-sepolia` explicitly.
|
|
53
|
+
*/
|
|
54
|
+
getX402PriceForDataItem({ byteCount, network, }: TurboX402DataItemPriceParams): Promise<TurboX402DataItemPriceResponse>;
|
|
55
|
+
/**
|
|
56
|
+
* Price RAW data for an x402 upload, where the service wraps it into a data
|
|
57
|
+
* item itself.
|
|
58
|
+
*
|
|
59
|
+
* Also reports the wrapping overhead — a data item is larger than its
|
|
60
|
+
* payload by its header, signature and tags — which the caller has no way to
|
|
61
|
+
* compute. `tagCount` and `contentType` feed that estimate, so pass what the
|
|
62
|
+
* upload will actually carry or the quote will read low.
|
|
63
|
+
*/
|
|
64
|
+
getX402PriceForRawData({ byteCount, network, tagCount, contentType, }: TurboX402RawDataPriceParams): Promise<TurboX402RawDataPriceResponse>;
|
|
39
65
|
uploadRawX402Data({ data, tags, signal, maxMUSDCAmount, signer, }: {
|
|
40
66
|
data: UploadDataType;
|
|
41
67
|
signal?: AbortSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,eAAe,EACf,mBAAmB,EAGnB,cAAc,EAEd,SAAS,EACT,gBAAgB,EAChB,4CAA4C,EAC5C,wCAAwC,EACxC,mBAAmB,EACnB,oCAAoC,EAEpC,mBAAmB,EACnB,gBAAgB,EAEhB,WAAW,EACX,wBAAwB,EACxB,8CAA8C,EAC9C,0CAA0C,EAC1C,kCAAkC,EAClC,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EAGrB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,0BAA0B,EAE3B,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAE,WAAW,EAAsB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAuB,MAAM,WAAW,CAAC;AAGlE,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAGhE,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAC9C,gBAAgB,GAChB,wBAAwB,CAAC;AAc3B,eAAO,MAAM,qBAAqB;;;;;CAKjC,CAAC;AAEF,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAEnE,qBAAa,iCACX,YAAW,0CAA0C;IAErD,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAiB;IAEzD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBACvB,EACV,GAA6B,EAC7B,MAAuB,EACvB,WAAwC,EACxC,KAAiB,GAClB,EAAE,8CAA8C;IAW3C,oBAAoB,CAAC,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,MAAM,EACN,MAAW,EACX,WAAW,GACZ,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"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"}
|