@ardrive/turbo-sdk 1.25.0 → 1.26.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 +170 -62
- package/bundles/web.bundle.min.js +1584 -730
- package/lib/cjs/common/events.js +256 -0
- package/lib/cjs/common/events.test.js +470 -0
- package/lib/cjs/common/http.js +4 -13
- package/lib/cjs/common/turbo.js +6 -4
- package/lib/cjs/common/upload.js +65 -37
- package/lib/cjs/node/signer.js +30 -11
- package/lib/cjs/node/upload.js +7 -1
- package/lib/cjs/utils/axiosClient.js +3 -0
- package/lib/cjs/utils/readableStream.js +15 -0
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/web/signer.js +55 -28
- package/lib/esm/common/events.js +249 -0
- package/lib/esm/common/events.test.js +468 -0
- package/lib/esm/common/http.js +4 -13
- package/lib/esm/common/turbo.js +6 -4
- package/lib/esm/common/upload.js +66 -38
- package/lib/esm/node/signer.js +30 -11
- package/lib/esm/node/upload.js +7 -1
- package/lib/esm/utils/axiosClient.js +3 -0
- package/lib/esm/utils/readableStream.js +15 -0
- package/lib/esm/version.js +1 -1
- package/lib/esm/web/signer.js +55 -28
- package/lib/types/common/events.d.ts +56 -0
- package/lib/types/common/events.d.ts.map +1 -0
- package/lib/types/common/events.test.d.ts +2 -0
- package/lib/types/common/events.test.d.ts.map +1 -0
- package/lib/types/common/http.d.ts +1 -2
- package/lib/types/common/http.d.ts.map +1 -1
- package/lib/types/common/signer.d.ts +1 -1
- package/lib/types/common/signer.d.ts.map +1 -1
- package/lib/types/common/turbo.d.ts +4 -4
- package/lib/types/common/turbo.d.ts.map +1 -1
- package/lib/types/common/upload.d.ts +13 -5
- package/lib/types/common/upload.d.ts.map +1 -1
- package/lib/types/node/signer.d.ts +1 -1
- package/lib/types/node/signer.d.ts.map +1 -1
- package/lib/types/node/upload.d.ts.map +1 -1
- package/lib/types/types.d.ts +61 -7
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/utils/axiosClient.d.ts.map +1 -1
- package/lib/types/utils/readableStream.d.ts +0 -1
- package/lib/types/utils/readableStream.d.ts.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/lib/types/web/signer.d.ts +1 -1
- package/lib/types/web/signer.d.ts.map +1 -1
- package/package.json +9 -7
package/lib/esm/common/upload.js
CHANGED
@@ -13,11 +13,12 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
import {
|
16
|
+
import { CanceledError } from 'axios';
|
17
17
|
import { pLimit } from 'plimit-lit';
|
18
18
|
import { defaultRetryConfig } from '../utils/axiosClient.js';
|
19
19
|
import { isBlob, sleep } from '../utils/common.js';
|
20
20
|
import { FailedRequestError } from '../utils/errors.js';
|
21
|
+
import { TurboEventEmitter, createStreamWithUploadEvents } from './events.js';
|
21
22
|
import { TurboHTTPService } from './http.js';
|
22
23
|
import { TurboWinstonLogger } from './logger.js';
|
23
24
|
export const creditSharingTagNames = {
|
@@ -39,19 +40,40 @@ export class TurboUnauthenticatedUploadService {
|
|
39
40
|
});
|
40
41
|
this.retryConfig = retryConfig;
|
41
42
|
}
|
42
|
-
async uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, signal, }) {
|
43
|
+
async uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, dataItemOpts, signal, events = {}, }) {
|
43
44
|
const fileSize = dataItemSizeFactory();
|
44
45
|
this.logger.debug('Uploading signed data item...');
|
45
|
-
//
|
46
|
-
|
46
|
+
// create the tapped stream with events
|
47
|
+
const emitter = new TurboEventEmitter(events);
|
48
|
+
// create the stream with upload events
|
49
|
+
const { stream: streamWithUploadEvents, resume } = createStreamWithUploadEvents({
|
50
|
+
data: dataItemStreamFactory(),
|
51
|
+
dataSize: fileSize,
|
52
|
+
emitter,
|
53
|
+
});
|
54
|
+
const headers = {
|
55
|
+
'content-type': 'application/octet-stream',
|
56
|
+
'content-length': `${fileSize}`,
|
57
|
+
};
|
58
|
+
if (dataItemOpts !== undefined && dataItemOpts.paidBy !== undefined) {
|
59
|
+
const paidBy = Array.isArray(dataItemOpts.paidBy)
|
60
|
+
? dataItemOpts.paidBy
|
61
|
+
: [dataItemOpts.paidBy];
|
62
|
+
// TODO: these should be comma separated values vs. an array of headers
|
63
|
+
if (dataItemOpts.paidBy.length > 0) {
|
64
|
+
headers['x-paid-by'] = paidBy;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
// setup the post request using the stream with upload events
|
68
|
+
const postPromise = this.httpService.post({
|
47
69
|
endpoint: `/tx/${this.token}`,
|
48
70
|
signal,
|
49
|
-
data:
|
50
|
-
headers
|
51
|
-
'content-type': 'application/octet-stream',
|
52
|
-
'content-length': `${fileSize}`,
|
53
|
-
},
|
71
|
+
data: streamWithUploadEvents,
|
72
|
+
headers,
|
54
73
|
});
|
74
|
+
// resume the stream so events start flowing to the post
|
75
|
+
resume();
|
76
|
+
return postPromise;
|
55
77
|
}
|
56
78
|
}
|
57
79
|
// NOTE: to avoid redundancy, we use inheritance here - but generally prefer composition over inheritance
|
@@ -63,7 +85,7 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
63
85
|
/**
|
64
86
|
* Signs and uploads raw data to the Turbo Upload Service.
|
65
87
|
*/
|
66
|
-
upload({ data, dataItemOpts, signal, }) {
|
88
|
+
upload({ data, dataItemOpts, signal, events, }) {
|
67
89
|
// This function is intended to be usable in both Node and browser environments.
|
68
90
|
if (isBlob(data)) {
|
69
91
|
const streamFactory = () => data.stream();
|
@@ -73,6 +95,7 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
73
95
|
fileSizeFactory: sizeFactory,
|
74
96
|
signal,
|
75
97
|
dataItemOpts,
|
98
|
+
events,
|
76
99
|
});
|
77
100
|
}
|
78
101
|
const dataBuffer = (() => {
|
@@ -89,56 +112,53 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
89
112
|
fileSizeFactory: () => dataBuffer.byteLength,
|
90
113
|
signal,
|
91
114
|
dataItemOpts,
|
115
|
+
events,
|
92
116
|
});
|
93
117
|
}
|
94
|
-
async uploadFile({ fileStreamFactory, fileSizeFactory, signal, dataItemOpts, }) {
|
118
|
+
async uploadFile({ fileStreamFactory, fileSizeFactory, signal, dataItemOpts, events = {}, }) {
|
95
119
|
let retries = 0;
|
96
120
|
const maxRetries = this.retryConfig.retries ?? 3;
|
97
121
|
const retryDelay = this.retryConfig.retryDelay ??
|
98
122
|
((retryNumber) => retryNumber * 1000);
|
99
123
|
let lastError = undefined; // Store the last error for throwing
|
100
124
|
let lastStatusCode = undefined; // Store the last status code for throwing
|
125
|
+
const emitter = new TurboEventEmitter(events);
|
126
|
+
// avoid duplicating signing on failures here - these errors will immediately be thrown
|
127
|
+
// TODO: create a SigningError class and throw that instead of the generic Error
|
128
|
+
const { dataItemStreamFactory, dataItemSizeFactory } = await this.signer.signDataItem({
|
129
|
+
fileStreamFactory,
|
130
|
+
fileSizeFactory,
|
131
|
+
dataItemOpts,
|
132
|
+
emitter,
|
133
|
+
});
|
134
|
+
// TODO: move the retry implementation to the http class, and avoid awaiting here. This will standardize the retry logic across all upload methods.
|
101
135
|
while (retries < maxRetries) {
|
102
136
|
if (signal?.aborted) {
|
103
137
|
throw new CanceledError();
|
104
138
|
}
|
105
|
-
const { dataItemStreamFactory, dataItemSizeFactory } = await this.signer.signDataItem({
|
106
|
-
fileStreamFactory,
|
107
|
-
fileSizeFactory,
|
108
|
-
dataItemOpts,
|
109
|
-
});
|
110
139
|
try {
|
111
140
|
this.logger.debug('Uploading signed data item...');
|
112
|
-
//
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
? dataItemOpts.paidBy
|
120
|
-
: [dataItemOpts.paidBy];
|
121
|
-
if (dataItemOpts.paidBy.length > 0) {
|
122
|
-
headers['x-paid-by'] = paidBy;
|
123
|
-
}
|
124
|
-
}
|
125
|
-
const data = await this.httpService.post({
|
126
|
-
endpoint: `/tx/${this.token}`,
|
141
|
+
// Now that we have the signed data item, we can upload it using the uploadSignedDataItem method
|
142
|
+
// which will create a new emitter with upload events. We await
|
143
|
+
// this result due to the wrapped retry logic of this method.
|
144
|
+
const response = await this.uploadSignedDataItem({
|
145
|
+
dataItemStreamFactory,
|
146
|
+
dataItemSizeFactory,
|
147
|
+
dataItemOpts,
|
127
148
|
signal,
|
128
|
-
|
129
|
-
headers,
|
149
|
+
events,
|
130
150
|
});
|
131
|
-
return
|
151
|
+
return response;
|
132
152
|
}
|
133
153
|
catch (error) {
|
134
154
|
// Store the last encountered error and status for re-throwing after retries
|
135
155
|
lastError = error;
|
136
|
-
if (error instanceof
|
137
|
-
lastStatusCode = error.response?.status;
|
138
|
-
}
|
139
|
-
else if (error instanceof FailedRequestError) {
|
156
|
+
if (error instanceof FailedRequestError) {
|
140
157
|
lastStatusCode = error.status;
|
141
158
|
}
|
159
|
+
else {
|
160
|
+
lastStatusCode = error.response?.status;
|
161
|
+
}
|
142
162
|
if (lastStatusCode !== undefined &&
|
143
163
|
lastStatusCode >= 400 &&
|
144
164
|
lastStatusCode < 500) {
|
@@ -198,6 +218,14 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
|
|
198
218
|
}
|
199
219
|
return this.contentTypeFromFile(file);
|
200
220
|
}
|
221
|
+
/**
|
222
|
+
* TODO: add events to the uploadFolder method
|
223
|
+
* could be a predicate with a resolveConfig() function, eg: events: ({...file ctx}) => ({
|
224
|
+
* onProgress: (progress) => {
|
225
|
+
* console.log('progress', progress);
|
226
|
+
* },
|
227
|
+
* })
|
228
|
+
*/
|
201
229
|
async uploadFolder(params) {
|
202
230
|
this.logger.debug('Uploading folder...', { params });
|
203
231
|
const { dataItemOpts, signal, manifestOptions = {}, maxConcurrentUploads = 1, throwOnFailure = true, } = params;
|
package/lib/esm/node/signer.js
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
*/
|
16
16
|
import { ArconnectSigner, ArweaveSigner, EthereumSigner, HexSolanaSigner, serializeTags, streamSigner, } from '@dha-team/arbundles';
|
17
17
|
import { Readable } from 'stream';
|
18
|
+
import { createStreamWithSigningEvents } from '../common/events.js';
|
18
19
|
import { TurboDataItemAbstractSigner } from '../common/signer.js';
|
19
20
|
import { fromB64Url } from '../utils/base64.js';
|
20
21
|
/**
|
@@ -28,23 +29,41 @@ export class TurboNodeSigner extends TurboDataItemAbstractSigner {
|
|
28
29
|
constructor(p) {
|
29
30
|
super(p);
|
30
31
|
}
|
31
|
-
async signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, }) {
|
32
|
+
async signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, emitter, }) {
|
32
33
|
// TODO: replace with our own signer implementation
|
33
34
|
this.logger.debug('Signing data item...');
|
35
|
+
// TODO: we could just use tee or PassThrough rather than require a fileStreamFactory
|
34
36
|
let [stream1, stream2] = [fileStreamFactory(), fileStreamFactory()];
|
35
37
|
stream1 = stream1 instanceof Buffer ? Readable.from(stream1) : stream1;
|
36
38
|
stream2 = stream2 instanceof Buffer ? Readable.from(stream2) : stream2;
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
dataSize:
|
42
|
-
|
39
|
+
// If we have a signing emitter, wrap the stream with events
|
40
|
+
const fileSize = fileSizeFactory();
|
41
|
+
const { stream: streamWithSigningEvents, resume } = createStreamWithSigningEvents({
|
42
|
+
data: stream1,
|
43
|
+
dataSize: fileSize,
|
44
|
+
emitter,
|
43
45
|
});
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
46
|
+
try {
|
47
|
+
const signedDataItemPromise = streamSigner(streamWithSigningEvents, // TODO: use generics to avoid this cast
|
48
|
+
stream2, this.signer, dataItemOpts);
|
49
|
+
// resume the stream so bytes start flowing to the streamSigner
|
50
|
+
resume();
|
51
|
+
const signedDataItem = await signedDataItemPromise;
|
52
|
+
this.logger.debug('Successfully signed data item...');
|
53
|
+
const signedDataItemSize = this.calculateSignedDataHeadersSize({
|
54
|
+
dataSize: fileSizeFactory(),
|
55
|
+
dataItemOpts,
|
56
|
+
});
|
57
|
+
return {
|
58
|
+
dataItemStreamFactory: () => signedDataItem,
|
59
|
+
dataItemSizeFactory: () => signedDataItemSize,
|
60
|
+
};
|
61
|
+
}
|
62
|
+
catch (error) {
|
63
|
+
// TODO: create a SigningError class and throw that instead of the generic Error
|
64
|
+
emitter?.emit('signing-error', error);
|
65
|
+
throw error;
|
66
|
+
}
|
48
67
|
}
|
49
68
|
// TODO: make dynamic that accepts anchor and target and tags to return the size of the headers + data
|
50
69
|
// reference https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-104.md#13-dataitem-format
|
package/lib/esm/node/upload.js
CHANGED
@@ -21,7 +21,13 @@ import { TurboAuthenticatedBaseUploadService, defaultUploadServiceURL, } from '.
|
|
21
21
|
import { isNodeUploadFolderParams, } from '../types.js';
|
22
22
|
export class TurboAuthenticatedUploadService extends TurboAuthenticatedBaseUploadService {
|
23
23
|
constructor({ url = defaultUploadServiceURL, retryConfig, signer, logger, token, }) {
|
24
|
-
super({
|
24
|
+
super({
|
25
|
+
url,
|
26
|
+
retryConfig,
|
27
|
+
logger,
|
28
|
+
token,
|
29
|
+
signer,
|
30
|
+
});
|
25
31
|
}
|
26
32
|
async getAbsoluteFilePathsFromFolder(folderPath) {
|
27
33
|
const absoluteFilePaths = [];
|
@@ -40,9 +40,12 @@ export const createAxiosInstance = ({ logger = TurboWinstonLogger.default, axios
|
|
40
40
|
...axiosConfig.headers,
|
41
41
|
...defaultRequestHeaders,
|
42
42
|
},
|
43
|
+
adapter: 'fetch',
|
43
44
|
validateStatus: () => true, // don't throw on non-200 status codes
|
44
45
|
});
|
45
46
|
if (retryConfig.retries !== undefined && retryConfig.retries > 0) {
|
47
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
48
|
+
// @ts-ignore
|
46
49
|
axiosRetry(axiosInstance, retryConfig);
|
47
50
|
}
|
48
51
|
return axiosInstance;
|
@@ -1,3 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
1
16
|
export async function readableStreamToBuffer({ stream, size, }) {
|
2
17
|
const reader = stream.getReader();
|
3
18
|
const buffer = Buffer.alloc(size);
|
package/lib/esm/version.js
CHANGED
package/lib/esm/web/signer.js
CHANGED
@@ -39,38 +39,65 @@ export class TurboWebArweaveSigner extends TurboDataItemAbstractSigner {
|
|
39
39
|
await this.setPublicKey();
|
40
40
|
return super.getPublicKey();
|
41
41
|
}
|
42
|
-
async signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, }) {
|
42
|
+
async signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, emitter, }) {
|
43
43
|
await this.setPublicKey();
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
44
|
+
// Create signing emitter if events are provided
|
45
|
+
const fileSize = fileSizeFactory();
|
46
|
+
try {
|
47
|
+
const fileStream = fileStreamFactory();
|
48
|
+
// start with 0 progress
|
49
|
+
emitter?.emit('signing-progress', {
|
50
|
+
processedBytes: 0,
|
51
|
+
totalBytes: fileSize,
|
51
52
|
});
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
53
|
+
// TODO: implement streamReadableStreamSigner that incrementally signs the stream with events instead of converting to a buffer
|
54
|
+
const buffer = fileStream instanceof Buffer
|
55
|
+
? fileStream
|
56
|
+
: await readableStreamToBuffer({
|
57
|
+
stream: fileStream,
|
58
|
+
size: fileSize,
|
59
|
+
});
|
60
|
+
// TODO: replace this with streamSigner that uses a ReadableStream with events
|
61
|
+
emitter?.emit('signing-progress', {
|
62
|
+
processedBytes: Math.floor(fileSize / 2),
|
63
|
+
totalBytes: fileSize,
|
64
|
+
});
|
65
|
+
let signedDataItem;
|
66
|
+
this.logger.debug('Signing data item...');
|
67
|
+
if (this.signer instanceof ArconnectSigner) {
|
68
|
+
this.logger.debug('Arconnect signer detected, signing with Arconnect signData Item API...');
|
69
|
+
const sign = Buffer.from(await this.signer['signer'].signDataItem({
|
70
|
+
data: Uint8Array.from(buffer),
|
71
|
+
tags: dataItemOpts?.tags,
|
72
|
+
target: dataItemOpts?.target,
|
73
|
+
anchor: dataItemOpts?.anchor,
|
74
|
+
}));
|
75
|
+
signedDataItem = new DataItem(sign);
|
76
|
+
}
|
77
|
+
else {
|
78
|
+
signedDataItem = createData(Uint8Array.from(buffer), this.signer, dataItemOpts);
|
79
|
+
await signedDataItem.sign(this.signer);
|
80
|
+
}
|
81
|
+
// emit last progress event (100%)
|
82
|
+
emitter?.emit('signing-progress', {
|
83
|
+
processedBytes: fileSize,
|
84
|
+
totalBytes: fileSize,
|
85
|
+
});
|
86
|
+
// emit completion event
|
87
|
+
emitter?.emit('signing-success');
|
88
|
+
this.logger.debug('Successfully signed data item...');
|
89
|
+
return {
|
90
|
+
// while this returns a Buffer - it needs to match our return type for uploading
|
91
|
+
dataItemStreamFactory: () => signedDataItem.getRaw(),
|
92
|
+
dataItemSizeFactory: () => signedDataItem.getRaw().length,
|
93
|
+
};
|
63
94
|
}
|
64
|
-
|
65
|
-
|
66
|
-
|
95
|
+
catch (error) {
|
96
|
+
// If we have a signing emitter, emit error
|
97
|
+
// TODO: create a SigningError class and throw that instead of the generic Error
|
98
|
+
emitter?.emit('signing-error', error);
|
99
|
+
throw error;
|
67
100
|
}
|
68
|
-
this.logger.debug('Successfully signed data item...');
|
69
|
-
return {
|
70
|
-
// while this returns a Buffer - it needs to match our return type for uploading
|
71
|
-
dataItemStreamFactory: () => signedDataItem.getRaw(),
|
72
|
-
dataItemSizeFactory: () => signedDataItem.getRaw().length,
|
73
|
-
};
|
74
101
|
}
|
75
102
|
async generateSignedRequestHeaders() {
|
76
103
|
await this.setPublicKey();
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
import { EventEmitter } from 'eventemitter3';
|
17
|
+
import { Readable } from 'stream';
|
18
|
+
import { TurboSigningEmitterEventArgs, TurboSigningEventsAndPayloads, TurboTotalEmitterEventArgs, TurboTotalEventsAndPayloads, TurboUploadEmitterEventArgs, TurboUploadEventsAndPayloads } from '../types.js';
|
19
|
+
/**
|
20
|
+
* Creates an eventing stream from the input data that emits progress and error events
|
21
|
+
*/
|
22
|
+
export declare function createStreamWithEvents({ data, dataSize, emitter, eventNamesMap, }: {
|
23
|
+
data: Readable | Buffer | ReadableStream;
|
24
|
+
dataSize: number;
|
25
|
+
emitter: TurboEventEmitter;
|
26
|
+
eventNamesMap: {
|
27
|
+
'on-progress': keyof TurboUploadEventsAndPayloads | keyof TurboSigningEventsAndPayloads | keyof TurboTotalEventsAndPayloads;
|
28
|
+
'on-error': keyof TurboUploadEventsAndPayloads | keyof TurboSigningEventsAndPayloads | keyof TurboTotalEventsAndPayloads;
|
29
|
+
'on-end': keyof TurboUploadEventsAndPayloads | keyof TurboSigningEventsAndPayloads | keyof TurboTotalEventsAndPayloads;
|
30
|
+
};
|
31
|
+
}): {
|
32
|
+
stream: Readable | ReadableStream;
|
33
|
+
resume: () => void;
|
34
|
+
};
|
35
|
+
export type TurboEventEmitterEvents = TurboUploadEventsAndPayloads & TurboSigningEventsAndPayloads & TurboTotalEventsAndPayloads;
|
36
|
+
export type TurboEventEmitterEventArgs = TurboUploadEmitterEventArgs & TurboSigningEmitterEventArgs & TurboTotalEmitterEventArgs;
|
37
|
+
export declare class TurboEventEmitter extends EventEmitter<TurboEventEmitterEvents> {
|
38
|
+
constructor({ onProgress, onError, onSuccess, onUploadProgress, onUploadError, onUploadSuccess, onSigningProgress, onSigningError, onSigningSuccess, }?: TurboEventEmitterEventArgs);
|
39
|
+
}
|
40
|
+
export declare function createStreamWithUploadEvents({ data, dataSize, emitter, }: {
|
41
|
+
data: Readable | Buffer | ReadableStream;
|
42
|
+
dataSize: number;
|
43
|
+
emitter?: TurboEventEmitter;
|
44
|
+
}): {
|
45
|
+
stream: Readable | ReadableStream;
|
46
|
+
resume: () => void;
|
47
|
+
};
|
48
|
+
export declare function createStreamWithSigningEvents({ data, dataSize, emitter, }: {
|
49
|
+
data: Readable | Buffer | ReadableStream;
|
50
|
+
dataSize: number;
|
51
|
+
emitter?: TurboEventEmitter;
|
52
|
+
}): {
|
53
|
+
stream: Readable | ReadableStream;
|
54
|
+
resume: () => void;
|
55
|
+
};
|
56
|
+
//# sourceMappingURL=events.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/common/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAe,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAwLrB;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,aAAa,GACd,EAAE;IACD,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE;QACb,aAAa,EACT,MAAM,4BAA4B,GAClC,MAAM,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;QACtC,UAAU,EACN,MAAM,4BAA4B,GAClC,MAAM,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;QACtC,QAAQ,EACJ,MAAM,4BAA4B,GAClC,MAAM,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;KACvC,CAAC;CACH,GAAG;IAAE,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAuB5D;AAED,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAChE,6BAA6B,GAC7B,2BAA2B,CAAC;AAC9B,MAAM,MAAM,0BAA0B,GAAG,2BAA2B,GAClE,4BAA4B,GAC5B,0BAA0B,CAAC;AAE7B,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;gBAC9D,EACV,UAAU,EACV,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,GAAE,0BAA+B;CA2DnC;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,QAAQ,EACR,OAAiC,GAClC,EAAE;IACD,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG;IAAE,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAW5D;AAED,wBAAgB,6BAA6B,CAAC,EAC5C,IAAI,EACJ,QAAQ,EACR,OAAiC,GAClC,EAAE;IACD,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG;IAAE,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAW5D"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"events.test.d.ts","sourceRoot":"","sources":["../../../src/common/events.test.ts"],"names":[],"mappings":""}
|
@@ -15,8 +15,7 @@
|
|
15
15
|
*/
|
16
16
|
import { AxiosInstance } from 'axios';
|
17
17
|
import { IAxiosRetryConfig } from 'axios-retry';
|
18
|
-
import { Readable } from 'stream';
|
19
|
-
import { ReadableStream } from 'stream/web';
|
18
|
+
import { Readable } from 'node:stream';
|
20
19
|
import { TurboHTTPServiceInterface, TurboLogger, TurboSignedRequestHeaders } from '../types.js';
|
21
20
|
export declare class TurboHTTPService implements TurboHTTPServiceInterface {
|
22
21
|
protected axios: AxiosInstance;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAc,aAAa,EAAgC,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAc,aAAa,EAAgC,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAIrB,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAElB,EACV,GAAG,EACH,WAAW,EACX,MAAM,GACP,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,MAAM,EAAE,WAAW,CAAC;KACrB;IAYK,GAAG,CAAC,CAAC,EAAE,EACX,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,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;KACvE,GAAG,OAAO,CAAC,CAAC,CAAC;IAOR,IAAI,CAAC,CAAC,EAAE,EACZ,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,EACP,IAAI,GACL,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,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,CAAC;KAC1C,GAAG,OAAO,CAAC,CAAC,CAAC;YAOA,UAAU;CA0BzB"}
|
@@ -8,7 +8,7 @@ export declare abstract class TurboDataItemAbstractSigner implements TurboDataIt
|
|
8
8
|
protected token: TokenType;
|
9
9
|
protected walletAdapter: WalletAdapter | undefined;
|
10
10
|
constructor({ signer, logger, token, walletAdapter, }: TurboDataItemSignerParams);
|
11
|
-
abstract signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, }: TurboFileFactory<FileStreamFactory>): Promise<TurboSignedDataItemFactory>;
|
11
|
+
abstract signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, emitter, }: TurboFileFactory<FileStreamFactory>): Promise<TurboSignedDataItemFactory>;
|
12
12
|
private ownerToNativeAddress;
|
13
13
|
generateSignedRequestHeaders(): Promise<{
|
14
14
|
'x-public-key': string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/common/signer.ts"],"names":[],"mappings":"AA2BA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,SAAS,EACT,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,WAAW,EACX,aAAa,EAEd,MAAM,aAAa,CAAC;AAQrB;;GAEG;AACH,8BAAsB,2BACpB,YAAW,mBAAmB;IAEvB,MAAM,EAAE,WAAW,CAAC;IAE3B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;gBAEvC,EACV,MAAM,EACN,MAAmC,EACnC,KAAK,EACL,aAAa,GACd,EAAE,yBAAyB;IAO5B,QAAQ,CAAC,YAAY,CAAC,EACpB,iBAAiB,EACjB,eAAe,EACf,YAAY,
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/common/signer.ts"],"names":[],"mappings":"AA2BA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,SAAS,EACT,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,WAAW,EACX,aAAa,EAEd,MAAM,aAAa,CAAC;AAQrB;;GAEG;AACH,8BAAsB,2BACpB,YAAW,mBAAmB;IAEvB,MAAM,EAAE,WAAW,CAAC;IAE3B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;gBAEvC,EACV,MAAM,EACN,MAAmC,EACnC,KAAK,EACL,aAAa,GACd,EAAE,yBAAyB;IAO5B,QAAQ,CAAC,YAAY,CAAC,EACpB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,OAAO,GACR,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAE5E,OAAO,CAAC,oBAAoB;IA4Bf,4BAA4B;;;;;IAY5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAOvD,gGAAgG;IACnF,eAAe,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkE9B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAgBnE"}
|
@@ -13,7 +13,7 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
import { CreditShareApproval, Currency, GetCreditShareApprovalsResponse, NativeAddress, TokenType, TurboAbortSignal, TurboAuthenticatedClientConfiguration, TurboAuthenticatedClientInterface, TurboAuthenticatedPaymentServiceInterface, TurboAuthenticatedUploadServiceInterface, TurboBalanceResponse, TurboCheckoutSessionParams, TurboCheckoutSessionResponse, TurboCountriesResponse, TurboCreateCreditShareApprovalParams, TurboCryptoFundResponse, TurboCurrenciesResponse, TurboDataItemSigner, TurboFiatToArResponse, TurboFileFactory, TurboFundWithTokensParams, TurboPriceResponse, TurboRatesResponse, TurboRevokeCreditsParams, TurboSignedDataItemFactory, TurboSubmitFundTxResponse, TurboTokenPriceForBytesResponse, TurboUnauthenticatedClientConfiguration, TurboUnauthenticatedClientInterface, TurboUnauthenticatedPaymentServiceInterface, TurboUnauthenticatedUploadServiceInterface, TurboUploadDataItemResponse, TurboUploadFolderParams, TurboUploadFolderResponse, TurboWincForFiatParams, TurboWincForFiatResponse, TurboWincForTokenParams, TurboWincForTokenResponse, UploadDataInput } from '../types.js';
|
16
|
+
import { CreditShareApproval, Currency, GetCreditShareApprovalsResponse, NativeAddress, TokenType, TurboAbortSignal, TurboAuthenticatedClientConfiguration, TurboAuthenticatedClientInterface, TurboAuthenticatedPaymentServiceInterface, TurboAuthenticatedUploadServiceInterface, TurboBalanceResponse, TurboCheckoutSessionParams, TurboCheckoutSessionResponse, TurboCountriesResponse, TurboCreateCreditShareApprovalParams, TurboCryptoFundResponse, TurboCurrenciesResponse, TurboDataItemSigner, TurboFiatToArResponse, TurboFileFactory, TurboFundWithTokensParams, TurboPriceResponse, TurboRatesResponse, TurboRevokeCreditsParams, TurboSignedDataItemFactory, TurboSubmitFundTxResponse, TurboTokenPriceForBytesResponse, TurboUnauthenticatedClientConfiguration, TurboUnauthenticatedClientInterface, TurboUnauthenticatedPaymentServiceInterface, TurboUnauthenticatedUploadServiceInterface, TurboUploadAndSigningEmitterEvents, TurboUploadDataItemResponse, TurboUploadEmitterEvents, TurboUploadFolderParams, TurboUploadFolderResponse, TurboWincForFiatParams, TurboWincForFiatResponse, TurboWincForTokenParams, TurboWincForTokenResponse, UploadDataInput } from '../types.js';
|
17
17
|
/**
|
18
18
|
* Testing configuration.
|
19
19
|
*/
|
@@ -85,7 +85,7 @@ export declare class TurboUnauthenticatedClient implements TurboUnauthenticatedC
|
|
85
85
|
/**
|
86
86
|
* Uploads a signed data item to the Turbo Upload Service.
|
87
87
|
*/
|
88
|
-
uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, signal, }: TurboSignedDataItemFactory & TurboAbortSignal): Promise<TurboUploadDataItemResponse>;
|
88
|
+
uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, signal, events, }: TurboSignedDataItemFactory & TurboAbortSignal & TurboUploadEmitterEvents): Promise<TurboUploadDataItemResponse>;
|
89
89
|
/**
|
90
90
|
* Creates a Turbo Checkout Session for a given amount and currency.
|
91
91
|
*/
|
@@ -125,11 +125,11 @@ export declare class TurboAuthenticatedClient extends TurboUnauthenticatedClient
|
|
125
125
|
/**
|
126
126
|
* Signs and uploads raw data to the Turbo Upload Service.
|
127
127
|
*/
|
128
|
-
upload({ data, dataItemOpts, signal, }: UploadDataInput & TurboAbortSignal): Promise<TurboUploadDataItemResponse>;
|
128
|
+
upload({ data, dataItemOpts, signal, events, }: UploadDataInput & TurboAbortSignal & TurboUploadAndSigningEmitterEvents): Promise<TurboUploadDataItemResponse>;
|
129
129
|
/**
|
130
130
|
* Signs and uploads raw file data to the Turbo Upload Service.
|
131
131
|
*/
|
132
|
-
uploadFile({ fileStreamFactory, fileSizeFactory, signal, dataItemOpts, }: TurboFileFactory & TurboAbortSignal): Promise<TurboUploadDataItemResponse>;
|
132
|
+
uploadFile({ fileStreamFactory, fileSizeFactory, signal, dataItemOpts, events, }: TurboFileFactory & TurboAbortSignal & TurboUploadAndSigningEmitterEvents): Promise<TurboUploadDataItemResponse>;
|
133
133
|
uploadFolder(p: TurboUploadFolderParams): Promise<TurboUploadFolderResponse>;
|
134
134
|
/**
|
135
135
|
* Submits fund transaction to the token's blockchain then sends
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../../src/common/turbo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,+BAA+B,EAC/B,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,qCAAqC,EACrC,iCAAiC,EACjC,yCAAyC,EACzC,wCAAwC,EACxC,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,oCAAoC,EACpC,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,uCAAuC,EACvC,mCAAmC,EACnC,2CAA2C,EAC3C,0CAA0C,EAC1C,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EAChB,MAAM,aAAa,CAAC;AAYrB;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;CAOzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;CAOrC,CAAC;AAEF,qBAAa,0BACX,YAAW,mCAAmC;IAE9C,SAAS,CAAC,cAAc,EAAE,2CAA2C,CAAC;IACtE,SAAS,CAAC,aAAa,EAAE,0CAA0C,CAAC;gBAExD,EACV,aAAyD,EACzD,cAA2D,GAC5D,EAAE,uCAAuC;IAK1C;;OAEG;IACH,WAAW,CAAC,EACV,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,QAAQ,CAAC;KACpB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIlC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI3C;;OAEG;IACH,qBAAqB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAIxD,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIjE;;OAEG;IACH,sBAAsB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAI1D;;OAEG;IACH,cAAc,CAAC,EACb,KAAK,GACN,EAAE;QACD,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAIjC;;OAEG;IACH,cAAc,CACZ,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAIpC;;OAEG;IACH,eAAe,CACb,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,yBAAyB,CAAC;IAIrC;;OAEG;IACH,qBAAqB,CAAC,EACpB,SAAS,GACV,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAI5C;;OAEG;IACH,oBAAoB,CAAC,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,GACP,EAAE,0BAA0B,GAC3B,gBAAgB,GAAG,OAAO,CAAC,2BAA2B,CAAC;
|
1
|
+
{"version":3,"file":"turbo.d.ts","sourceRoot":"","sources":["../../../src/common/turbo.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { IAxiosRetryConfig } from 'axios-retry';
|
2
|
-
import { Readable } from 'stream';
|
3
|
-
import { ArweaveManifest, CreditShareApproval, TokenType, TurboAbortSignal, TurboAuthenticatedUploadServiceConfiguration, TurboAuthenticatedUploadServiceInterface, TurboCreateCreditShareApprovalParams, TurboDataItemSigner, TurboFileFactory, TurboLogger, TurboRevokeCreditsParams, TurboSignedDataItemFactory, TurboUnauthenticatedUploadServiceConfiguration, TurboUnauthenticatedUploadServiceInterface, TurboUploadDataItemResponse, TurboUploadFolderParams, TurboUploadFolderResponse, UploadDataInput } from '../types.js';
|
2
|
+
import { Readable } from 'node:stream';
|
3
|
+
import { ArweaveManifest, CreditShareApproval, TokenType, TurboAbortSignal, TurboAuthenticatedUploadServiceConfiguration, TurboAuthenticatedUploadServiceInterface, TurboCreateCreditShareApprovalParams, TurboDataItemSigner, TurboFileFactory, TurboLogger, TurboRevokeCreditsParams, TurboSignedDataItemFactory, TurboUnauthenticatedUploadServiceConfiguration, TurboUnauthenticatedUploadServiceInterface, TurboUploadAndSigningEmitterEvents, TurboUploadDataItemResponse, TurboUploadEmitterEvents, TurboUploadFolderParams, TurboUploadFolderResponse, UploadDataInput } from '../types.js';
|
4
4
|
import { TurboHTTPService } from './http.js';
|
5
5
|
export declare const creditSharingTagNames: {
|
6
6
|
shareCredits: string;
|
@@ -16,7 +16,7 @@ export declare class TurboUnauthenticatedUploadService implements TurboUnauthent
|
|
16
16
|
protected token: TokenType;
|
17
17
|
protected retryConfig: IAxiosRetryConfig;
|
18
18
|
constructor({ url, logger, retryConfig, token, }: TurboUnauthenticatedUploadServiceConfiguration);
|
19
|
-
uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, signal, }: TurboSignedDataItemFactory & TurboAbortSignal): Promise<TurboUploadDataItemResponse>;
|
19
|
+
uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, dataItemOpts, signal, events, }: TurboSignedDataItemFactory & TurboAbortSignal & TurboUploadEmitterEvents): Promise<TurboUploadDataItemResponse>;
|
20
20
|
}
|
21
21
|
export declare abstract class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadService implements TurboAuthenticatedUploadServiceInterface {
|
22
22
|
protected signer: TurboDataItemSigner;
|
@@ -24,8 +24,8 @@ export declare abstract class TurboAuthenticatedBaseUploadService extends TurboU
|
|
24
24
|
/**
|
25
25
|
* Signs and uploads raw data to the Turbo Upload Service.
|
26
26
|
*/
|
27
|
-
upload({ data, dataItemOpts, signal, }: UploadDataInput & TurboAbortSignal): Promise<TurboUploadDataItemResponse>;
|
28
|
-
uploadFile({ fileStreamFactory, fileSizeFactory, signal, dataItemOpts, }: TurboFileFactory & TurboAbortSignal): Promise<TurboUploadDataItemResponse>;
|
27
|
+
upload({ data, dataItemOpts, signal, events, }: UploadDataInput & TurboAbortSignal & TurboUploadAndSigningEmitterEvents): Promise<TurboUploadDataItemResponse>;
|
28
|
+
uploadFile({ fileStreamFactory, fileSizeFactory, signal, dataItemOpts, events, }: TurboFileFactory & TurboAbortSignal & TurboUploadAndSigningEmitterEvents): Promise<TurboUploadDataItemResponse>;
|
29
29
|
protected generateManifest({ paths, indexFile, fallbackFile, }: {
|
30
30
|
paths: Record<string, {
|
31
31
|
id: string;
|
@@ -40,6 +40,14 @@ export declare abstract class TurboAuthenticatedBaseUploadService extends TurboU
|
|
40
40
|
abstract getRelativePath(file: string | File, params: TurboUploadFolderParams): string;
|
41
41
|
abstract createManifestStream(manifestBuffer: Buffer): Readable | ReadableStream;
|
42
42
|
private getContentType;
|
43
|
+
/**
|
44
|
+
* TODO: add events to the uploadFolder method
|
45
|
+
* could be a predicate with a resolveConfig() function, eg: events: ({...file ctx}) => ({
|
46
|
+
* onProgress: (progress) => {
|
47
|
+
* console.log('progress', progress);
|
48
|
+
* },
|
49
|
+
* })
|
50
|
+
*/
|
43
51
|
uploadFolder(params: TurboUploadFolderParams): Promise<TurboUploadFolderResponse>;
|
44
52
|
shareCredits({ approvedAddress, approvedWincAmount, expiresBySeconds, }: TurboCreateCreditShareApprovalParams): Promise<CreditShareApproval>;
|
45
53
|
revokeCredits({ revokedAddress, }: TurboRevokeCreditsParams): Promise<CreditShareApproval[]>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"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"}
|
@@ -26,7 +26,7 @@ export { ArconnectSigner, ArweaveSigner, EthereumSigner, HexSolanaSigner };
|
|
26
26
|
*/
|
27
27
|
export declare class TurboNodeSigner extends TurboDataItemAbstractSigner {
|
28
28
|
constructor(p: TurboDataItemSignerParams);
|
29
|
-
signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, }: TurboFileFactory<NodeFileStreamFactory>): Promise<{
|
29
|
+
signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, emitter, }: TurboFileFactory<NodeFileStreamFactory>): Promise<{
|
30
30
|
dataItemStreamFactory: () => Readable;
|
31
31
|
dataItemSizeFactory: StreamSizeFactory;
|
32
32
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/node/signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/node/signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAEL,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAE3E;;GAEG;AACH,qBAAa,eAAgB,SAAQ,2BAA2B;gBAClD,CAAC,EAAE,yBAAyB;IAIlC,YAAY,CAAC,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,OAAO,GACR,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QACnD,qBAAqB,EAAE,MAAM,QAAQ,CAAC;QACtC,mBAAmB,EAAE,iBAAiB,CAAC;KACxC,CAAC;IAoDF,OAAO,CAAC,8BAA8B;CAkCvC"}
|