@ardrive/turbo-sdk 1.26.0 → 1.27.0-alpha.2
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/bundles/web.bundle.min.js +261 -90
- package/lib/cjs/common/events.js +4 -4
- package/lib/cjs/common/factory.js +17 -11
- package/lib/cjs/common/upload.js +8 -7
- package/lib/cjs/utils/readableStream.js +100 -2
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/web/index.js +1 -0
- package/lib/cjs/web/signer.js +128 -56
- package/lib/esm/common/events.js +4 -4
- package/lib/esm/common/factory.js +18 -12
- package/lib/esm/common/upload.js +8 -7
- package/lib/esm/utils/readableStream.js +95 -0
- package/lib/esm/version.js +1 -1
- package/lib/esm/web/index.js +1 -0
- package/lib/esm/web/signer.js +126 -57
- package/lib/types/common/events.d.ts.map +1 -1
- package/lib/types/common/factory.d.ts.map +1 -1
- package/lib/types/common/upload.d.ts.map +1 -1
- package/lib/types/utils/readableStream.d.ts +6 -0
- package/lib/types/utils/readableStream.d.ts.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/lib/types/web/index.d.ts +1 -0
- package/lib/types/web/index.d.ts.map +1 -1
- package/lib/types/web/signer.d.ts +16 -6
- package/lib/types/web/signer.d.ts.map +1 -1
- package/package.json +2 -2
- package/lib/cjs/common/events.test.js +0 -470
- package/lib/esm/common/events.test.js +0 -468
- package/lib/types/common/events.test.d.ts +0 -2
- package/lib/types/common/events.test.d.ts.map +0 -1
package/lib/esm/web/signer.js
CHANGED
@@ -13,9 +13,9 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
import { ArconnectSigner, ArweaveSigner,
|
16
|
+
import { ArconnectSigner, ArweaveSigner, EthereumSigner, HexSolanaSigner, InjectedEthereumSigner, createData, deepHash, stringToBuffer, } from '@dha-team/arbundles';
|
17
17
|
import { TurboDataItemAbstractSigner } from '../common/signer.js';
|
18
|
-
import {
|
18
|
+
import { createUint8ArrayReadableStreamFactory } from '../utils/readableStream.js';
|
19
19
|
/**
|
20
20
|
* Utility exports to avoid clients having to install arbundles
|
21
21
|
*/
|
@@ -43,61 +43,21 @@ export class TurboWebArweaveSigner extends TurboDataItemAbstractSigner {
|
|
43
43
|
await this.setPublicKey();
|
44
44
|
// Create signing emitter if events are provided
|
45
45
|
const fileSize = fileSizeFactory();
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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
|
-
};
|
94
|
-
}
|
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;
|
100
|
-
}
|
46
|
+
this.logger.debug('Signing data item...');
|
47
|
+
const { signedDataItemFactory, signedDataItemSize } = await streamSignerReadableStream({
|
48
|
+
streamFactory: createUint8ArrayReadableStreamFactory({
|
49
|
+
data: fileStreamFactory(),
|
50
|
+
}),
|
51
|
+
signer: this.signer,
|
52
|
+
dataItemOpts,
|
53
|
+
fileSize,
|
54
|
+
emitter,
|
55
|
+
});
|
56
|
+
this.logger.debug('Successfully signed data item...');
|
57
|
+
return {
|
58
|
+
dataItemStreamFactory: signedDataItemFactory,
|
59
|
+
dataItemSizeFactory: () => signedDataItemSize,
|
60
|
+
};
|
101
61
|
}
|
102
62
|
async generateSignedRequestHeaders() {
|
103
63
|
await this.setPublicKey();
|
@@ -108,3 +68,112 @@ export class TurboWebArweaveSigner extends TurboDataItemAbstractSigner {
|
|
108
68
|
return super.signData(dataToSign);
|
109
69
|
}
|
110
70
|
}
|
71
|
+
export const readableStreamToAsyncIterable = (stream) => ({
|
72
|
+
async *[Symbol.asyncIterator]() {
|
73
|
+
const reader = stream.getReader();
|
74
|
+
try {
|
75
|
+
while (true) {
|
76
|
+
const { done, value } = await reader.read();
|
77
|
+
if (done)
|
78
|
+
break;
|
79
|
+
if (value !== undefined)
|
80
|
+
yield Buffer.from(value);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
finally {
|
84
|
+
reader.releaseLock();
|
85
|
+
}
|
86
|
+
},
|
87
|
+
});
|
88
|
+
export async function streamSignerReadableStream({ streamFactory, signer, dataItemOpts, fileSize, emitter, }) {
|
89
|
+
try {
|
90
|
+
const header = createData('', signer, dataItemOpts);
|
91
|
+
const headerSize = header.getRaw().byteLength;
|
92
|
+
const totalDataItemSizeWithHeader = fileSize + headerSize;
|
93
|
+
const [stream1, stream2] = streamFactory().tee();
|
94
|
+
const reader1 = stream1.getReader();
|
95
|
+
let bytesProcessed = 0;
|
96
|
+
const eventingStream = new ReadableStream({
|
97
|
+
start() {
|
98
|
+
// technically this should be emitted after each DeepHashChunk be we cannot access that stage, so we emit it here instead
|
99
|
+
bytesProcessed = headerSize;
|
100
|
+
emitter?.emit('signing-progress', {
|
101
|
+
processedBytes: bytesProcessed,
|
102
|
+
totalBytes: totalDataItemSizeWithHeader,
|
103
|
+
});
|
104
|
+
},
|
105
|
+
async pull(controller) {
|
106
|
+
const { done, value } = await reader1.read();
|
107
|
+
if (done) {
|
108
|
+
controller.close();
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
bytesProcessed += value.byteLength;
|
112
|
+
controller.enqueue(value);
|
113
|
+
emitter?.emit('signing-progress', {
|
114
|
+
processedBytes: bytesProcessed,
|
115
|
+
totalBytes: totalDataItemSizeWithHeader,
|
116
|
+
});
|
117
|
+
},
|
118
|
+
cancel() {
|
119
|
+
reader1.cancel();
|
120
|
+
},
|
121
|
+
});
|
122
|
+
// create a readable that emits signing events as bytes are pulled through using the first stream from .tee()
|
123
|
+
const asyncIterableReadableStream = readableStreamToAsyncIterable(eventingStream);
|
124
|
+
// provide that ReadableStream with events to deep hash, so as it pulls bytes through events get emitted
|
125
|
+
const parts = [
|
126
|
+
stringToBuffer('dataitem'),
|
127
|
+
stringToBuffer('1'),
|
128
|
+
stringToBuffer(header.signatureType.toString()),
|
129
|
+
Uint8Array.from(header.rawOwner),
|
130
|
+
Uint8Array.from(header.rawTarget),
|
131
|
+
Uint8Array.from(header.rawAnchor),
|
132
|
+
Uint8Array.from(header.rawTags),
|
133
|
+
asyncIterableReadableStream,
|
134
|
+
];
|
135
|
+
const hash = await deepHash(parts);
|
136
|
+
const sigBytes = Buffer.from(await signer.sign(hash));
|
137
|
+
emitter?.emit('signing-success');
|
138
|
+
header.setSignature(sigBytes);
|
139
|
+
const headerBytes = header.getRaw();
|
140
|
+
const signedDataItemFactory = () => {
|
141
|
+
const reader = stream2.getReader();
|
142
|
+
return new ReadableStream({
|
143
|
+
start(controller) {
|
144
|
+
controller.enqueue(Uint8Array.from(headerBytes));
|
145
|
+
bytesProcessed += headerBytes.byteLength;
|
146
|
+
},
|
147
|
+
async pull(controller) {
|
148
|
+
try {
|
149
|
+
const { done, value } = await reader.read();
|
150
|
+
if (done) {
|
151
|
+
controller.close();
|
152
|
+
return;
|
153
|
+
}
|
154
|
+
controller.enqueue(value);
|
155
|
+
}
|
156
|
+
catch (error) {
|
157
|
+
controller.error(error);
|
158
|
+
}
|
159
|
+
},
|
160
|
+
cancel() {
|
161
|
+
reader.cancel();
|
162
|
+
},
|
163
|
+
});
|
164
|
+
};
|
165
|
+
return {
|
166
|
+
signedDataItemSize: totalDataItemSizeWithHeader,
|
167
|
+
signedDataItemFactory,
|
168
|
+
};
|
169
|
+
}
|
170
|
+
catch (error) {
|
171
|
+
emitter?.emit('signing-error', error);
|
172
|
+
throw error;
|
173
|
+
}
|
174
|
+
}
|
175
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
176
|
+
export function isAsyncIterable(data) {
|
177
|
+
return (typeof data[Symbol.asyncIterator] ===
|
178
|
+
'function');
|
179
|
+
}
|
@@ -1 +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;
|
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;AA4LrB;;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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/common/factory.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/common/factory.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,oBAAoB,EAEpB,+BAA+B,EAC/B,4CAA4C,EAC5C,wCAAwC,EACxC,iCAAiC,EAIlC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAGpB,8BAAsB,gBAAgB;IACpC,SAAS,CAAC,MAAM,CAAC,MAAM,qBAA8B;IAGrD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM;IAKhC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;IAIlC,MAAM,CAAC,eAAe,CAAC,EACrB,oBAAyB,EACzB,mBAAwB,EACxB,KAAK,GACN,GAAE,iCAAsC;IAqBzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC3B,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,KAAK,GACN,EAAE,oBAAoB,GAAG,2BAA2B;IAErD,SAAS,CAAC,QAAQ,CAAC,6BAA6B,CAC9C,MAAM,EAAE,4CAA4C,GACnD,wCAAwC;IAE3C,SAAS,CAAC,qBAAqB,CAAC,EAC9B,UAAU,EACV,MAAM,EAAE,cAAc,EACtB,oBAAyB,EACzB,mBAAwB,EACxB,KAAK,EACL,UAAU,EACV,QAAQ,EACR,UAAU,EACV,MAAM,EACN,aAAa,EACb,SAAS,EACT,KAAK,GACN,EAAE,+BAA+B,GAAG;QAAE,MAAM,EAAE,kBAAkB,CAAA;KAAE;IA4EnE,OAAO,CAAC,iBAAiB;CAuB1B"}
|
@@ -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;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,eAAe,EACf,mBAAmB,EAEnB,SAAS,EACT,gBAAgB,EAChB,4CAA4C,EAC5C,wCAAwC,EACxC,oCAAoC,EACpC,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,8CAA8C,EAC9C,0CAA0C,EAC1C,kCAAkC,EAClC,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"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"}
|
@@ -13,8 +13,14 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
+
export declare const DEFAULT_STREAM_CHUNK_SIZE: number;
|
16
17
|
export declare function readableStreamToBuffer({ stream, size, }: {
|
17
18
|
stream: ReadableStream;
|
18
19
|
size: number;
|
19
20
|
}): Promise<Buffer>;
|
21
|
+
export declare function ensureChunkedStream(input: ReadableStream<Uint8Array>, maxChunkSize?: number): ReadableStream<Uint8Array>;
|
22
|
+
export declare function createUint8ArrayReadableStreamFactory({ data, maxChunkSize, }: {
|
23
|
+
data: string | Uint8Array | ArrayBuffer | Buffer | SharedArrayBuffer | Blob | ReadableStream;
|
24
|
+
maxChunkSize?: number;
|
25
|
+
}): () => ReadableStream<Uint8Array>;
|
20
26
|
//# sourceMappingURL=readableStream.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"readableStream.d.ts","sourceRoot":"","sources":["../../../src/utils/readableStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
1
|
+
{"version":3,"file":"readableStream.d.ts","sourceRoot":"","sources":["../../../src/utils/readableStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAE1D,wBAAsB,sBAAsB,CAAC,EAC3C,MAAM,EACN,IAAI,GACL,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,MAAM,CAAC,CAelB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,EACjC,YAAY,SAA4B,GACvC,cAAc,CAAC,UAAU,CAAC,CAoC5B;AAED,wBAAgB,qCAAqC,CAAC,EACpD,IAAI,EACJ,YAAwC,GACzC,EAAE;IACD,IAAI,EACA,MAAM,GACN,UAAU,GACV,WAAW,GACX,MAAM,GACN,iBAAiB,GACjB,IAAI,GACJ,cAAc,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CA6DnC"}
|
package/lib/types/version.d.ts
CHANGED
package/lib/types/web/index.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
|
@@ -13,9 +13,10 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
import { ArconnectSigner, ArweaveSigner, EthereumSigner, HexSolanaSigner } from '@dha-team/arbundles';
|
16
|
+
import { ArconnectSigner, ArweaveSigner, DataItemCreateOptions, EthereumSigner, HexSolanaSigner, Signer } from '@dha-team/arbundles';
|
17
|
+
import { TurboEventEmitter } from '../common/events.js';
|
17
18
|
import { TurboDataItemAbstractSigner } from '../common/signer.js';
|
18
|
-
import {
|
19
|
+
import { TurboDataItemSignerParams, TurboSignedDataItemFactory, TurboSignedRequestHeaders, WebTurboFileFactory } from '../types.js';
|
19
20
|
/**
|
20
21
|
* Utility exports to avoid clients having to install arbundles
|
21
22
|
*/
|
@@ -27,11 +28,20 @@ export declare class TurboWebArweaveSigner extends TurboDataItemAbstractSigner {
|
|
27
28
|
constructor(p: TurboDataItemSignerParams);
|
28
29
|
private setPublicKey;
|
29
30
|
getPublicKey(): Promise<Buffer>;
|
30
|
-
signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, emitter, }: WebTurboFileFactory): Promise<
|
31
|
-
dataItemStreamFactory: () => Buffer;
|
32
|
-
dataItemSizeFactory: StreamSizeFactory;
|
33
|
-
}>;
|
31
|
+
signDataItem({ fileStreamFactory, fileSizeFactory, dataItemOpts, emitter, }: WebTurboFileFactory): Promise<TurboSignedDataItemFactory>;
|
34
32
|
generateSignedRequestHeaders(): Promise<TurboSignedRequestHeaders>;
|
35
33
|
signData(dataToSign: Uint8Array): Promise<Uint8Array>;
|
36
34
|
}
|
35
|
+
export declare const readableStreamToAsyncIterable: (stream: ReadableStream<Uint8Array>) => AsyncIterable<Buffer>;
|
36
|
+
export declare function streamSignerReadableStream({ streamFactory, signer, dataItemOpts, fileSize, emitter, }: {
|
37
|
+
streamFactory: () => ReadableStream<Uint8Array>;
|
38
|
+
signer: Signer;
|
39
|
+
dataItemOpts?: DataItemCreateOptions;
|
40
|
+
fileSize: number;
|
41
|
+
emitter?: TurboEventEmitter;
|
42
|
+
}): Promise<{
|
43
|
+
signedDataItemFactory: () => ReadableStream<Uint8Array>;
|
44
|
+
signedDataItemSize: number;
|
45
|
+
}>;
|
46
|
+
export declare function isAsyncIterable(data: any): data is AsyncIterable<Uint8Array>;
|
37
47
|
//# sourceMappingURL=signer.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/web/signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,eAAe,EACf,aAAa,
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/web/signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,eAAe,EAEf,MAAM,EAIP,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAK3E;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,2BAA2B;gBACxD,CAAC,EAAE,yBAAyB;YAI1B,YAAY;IAWb,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAK/B,YAAY,CAAC,EACxB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,OAAO,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAyB/C,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAKlE,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAInE;AAED,eAAO,MAAM,6BAA6B,WAChC,cAAc,CAAC,UAAU,CAAC,KACjC,aAAa,CAAC,MAAM,CAarB,CAAC;AAEH,wBAAsB,0BAA0B,CAAC,EAC/C,aAAa,EACb,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,OAAO,GACR,EAAE;IACD,aAAa,EAAE,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG,OAAO,CAAC;IACV,qBAAqB,EAAE,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IACxD,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC,CAgGD;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,aAAa,CAAC,UAAU,CAAC,CAK5E"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ardrive/turbo-sdk",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.27.0-alpha.2",
|
4
4
|
"main": "./lib/cjs/node/index.js",
|
5
5
|
"types": "./lib/types/node/index.d.ts",
|
6
6
|
"module": "./lib/esm/node/index.js",
|
@@ -58,7 +58,7 @@
|
|
58
58
|
"lint:fix": "eslint src --fix",
|
59
59
|
"format": "prettier --check .",
|
60
60
|
"format:fix": "prettier --write .",
|
61
|
-
"test": "
|
61
|
+
"test": "c8 node --import=./register.mjs --test --enable-source-maps \"{src,tests}/**/*.{test,web.test,node.test}.ts\"",
|
62
62
|
"test:unit": "c8 node --import=./register.mjs --test --enable-source-maps src/**/*.test.ts",
|
63
63
|
"test:web": "c8 node --import=./register.mjs --test --enable-source-maps tests/**/*.web.test.ts",
|
64
64
|
"test:node": "c8 node --import=./register.mjs --test --enable-source-maps tests/**/*.node.test.ts",
|