@ardrive/turbo-sdk 1.9.1-alpha.1 → 1.10.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.
Files changed (79) hide show
  1. package/README.md +58 -0
  2. package/bundles/web.bundle.min.js +26379 -13352
  3. package/lib/cjs/common/factory.js +22 -10
  4. package/lib/cjs/common/http.js +1 -1
  5. package/lib/cjs/common/logger.js +43 -10
  6. package/lib/cjs/common/payment.js +2 -2
  7. package/lib/cjs/common/token/arweave.js +3 -3
  8. package/lib/cjs/common/token/ethereum.js +3 -3
  9. package/lib/cjs/common/token/solana.js +3 -3
  10. package/lib/cjs/common/turbo.js +3 -0
  11. package/lib/cjs/common/upload.js +107 -4
  12. package/lib/cjs/node/index.js +1 -0
  13. package/lib/cjs/node/upload.js +72 -0
  14. package/lib/cjs/types.js +6 -2
  15. package/lib/cjs/utils/axiosClient.js +1 -1
  16. package/lib/cjs/utils/base64.js +6 -6
  17. package/lib/cjs/utils/common.js +5 -2
  18. package/lib/cjs/utils/readableStream.js +1 -2
  19. package/lib/cjs/version.js +1 -1
  20. package/lib/cjs/web/factory.js +2 -1
  21. package/lib/cjs/web/index.js +1 -0
  22. package/lib/cjs/web/upload.js +57 -0
  23. package/lib/esm/common/factory.js +21 -9
  24. package/lib/esm/common/http.js +1 -1
  25. package/lib/esm/common/logger.js +43 -10
  26. package/lib/esm/common/payment.js +2 -2
  27. package/lib/esm/common/token/arweave.js +3 -3
  28. package/lib/esm/common/token/ethereum.js +3 -3
  29. package/lib/esm/common/token/solana.js +3 -3
  30. package/lib/esm/common/turbo.js +3 -0
  31. package/lib/esm/common/upload.js +105 -2
  32. package/lib/esm/node/index.js +1 -0
  33. package/lib/esm/node/upload.js +68 -0
  34. package/lib/esm/types.js +2 -0
  35. package/lib/esm/utils/axiosClient.js +1 -1
  36. package/lib/esm/utils/common.js +3 -0
  37. package/lib/esm/version.js +1 -1
  38. package/lib/esm/web/factory.js +3 -2
  39. package/lib/esm/web/index.js +1 -0
  40. package/lib/esm/web/upload.js +53 -0
  41. package/lib/types/common/factory.d.ts.map +1 -1
  42. package/lib/types/common/http.d.ts +0 -3
  43. package/lib/types/common/http.d.ts.map +1 -1
  44. package/lib/types/common/logger.d.ts +3 -1
  45. package/lib/types/common/logger.d.ts.map +1 -1
  46. package/lib/types/common/payment.d.ts.map +1 -1
  47. package/lib/types/common/signer.d.ts +0 -1
  48. package/lib/types/common/signer.d.ts.map +1 -1
  49. package/lib/types/common/token/arweave.d.ts.map +1 -1
  50. package/lib/types/common/token/ethereum.d.ts.map +1 -1
  51. package/lib/types/common/token/solana.d.ts.map +1 -1
  52. package/lib/types/common/turbo.d.ts +2 -1
  53. package/lib/types/common/turbo.d.ts.map +1 -1
  54. package/lib/types/common/upload.d.ts +18 -2
  55. package/lib/types/common/upload.d.ts.map +1 -1
  56. package/lib/types/node/index.d.ts +1 -0
  57. package/lib/types/node/index.d.ts.map +1 -1
  58. package/lib/types/node/signer.d.ts +0 -1
  59. package/lib/types/node/signer.d.ts.map +1 -1
  60. package/lib/types/node/upload.d.ts +15 -0
  61. package/lib/types/node/upload.d.ts.map +1 -0
  62. package/lib/types/types.d.ts +40 -4
  63. package/lib/types/types.d.ts.map +1 -1
  64. package/lib/types/utils/base64.d.ts +0 -1
  65. package/lib/types/utils/base64.d.ts.map +1 -1
  66. package/lib/types/utils/common.d.ts +1 -0
  67. package/lib/types/utils/common.d.ts.map +1 -1
  68. package/lib/types/utils/readableStream.d.ts +0 -2
  69. package/lib/types/utils/readableStream.d.ts.map +1 -1
  70. package/lib/types/version.d.ts +1 -1
  71. package/lib/types/version.d.ts.map +1 -1
  72. package/lib/types/web/factory.d.ts.map +1 -1
  73. package/lib/types/web/index.d.ts +1 -0
  74. package/lib/types/web/index.d.ts.map +1 -1
  75. package/lib/types/web/signer.d.ts +0 -1
  76. package/lib/types/web/signer.d.ts.map +1 -1
  77. package/lib/types/web/upload.d.ts +29 -0
  78. package/lib/types/web/upload.d.ts.map +1 -0
  79. package/package.json +7 -3
@@ -16,17 +16,22 @@
16
16
  */
17
17
  import { ArweaveSigner, EthereumSigner, HexSolanaSigner } from 'arbundles';
18
18
  import { TurboNodeSigner } from '../node/signer.js';
19
+ import { TurboAuthenticatedNodeUploadService } from '../node/upload.js';
19
20
  import { isEthPrivateKey, isJWK, } from '../types.js';
21
+ import { isWeb } from '../utils/common.js';
20
22
  import { TurboWebArweaveSigner } from '../web/signer.js';
23
+ import { TurboAuthenticatedWebUploadService } from '../web/upload.js';
21
24
  import { TurboWinstonLogger } from './logger.js';
22
25
  import { TurboAuthenticatedPaymentService, TurboUnauthenticatedPaymentService, } from './payment.js';
23
26
  import { defaultTokenMap } from './token/index.js';
24
27
  import { TurboAuthenticatedClient, TurboUnauthenticatedClient, } from './turbo.js';
25
- import { TurboAuthenticatedUploadService, TurboUnauthenticatedUploadService, } from './upload.js';
28
+ import { TurboUnauthenticatedUploadService } from './upload.js';
26
29
  export class TurboBaseFactory {
30
+ /* @deprecated - use TurboWinstonLogger directly */
27
31
  static setLogLevel(level) {
28
32
  this.logger.setLogLevel(level);
29
33
  }
34
+ /* @deprecated - use TurboWinstonLogger directly */
30
35
  static setLogFormat(format) {
31
36
  this.logger.setLogFormat(format);
32
37
  }
@@ -69,7 +74,7 @@ export class TurboBaseFactory {
69
74
  else {
70
75
  throw new Error('A privateKey or signer must be provided.');
71
76
  }
72
- if (typeof window !== 'undefined') {
77
+ if (isWeb()) {
73
78
  return new TurboWebArweaveSigner({
74
79
  signer,
75
80
  logger: this.logger,
@@ -115,16 +120,23 @@ export class TurboBaseFactory {
115
120
  token,
116
121
  tokenTools,
117
122
  });
118
- const uploadService = new TurboAuthenticatedUploadService({
119
- ...uploadServiceConfig,
120
- signer: turboSigner,
121
- logger: this.logger,
122
- token,
123
- });
123
+ const uploadService = isWeb()
124
+ ? new TurboAuthenticatedWebUploadService({
125
+ ...uploadServiceConfig,
126
+ signer: turboSigner,
127
+ logger: this.logger,
128
+ token,
129
+ })
130
+ : new TurboAuthenticatedNodeUploadService({
131
+ ...uploadServiceConfig,
132
+ signer: turboSigner,
133
+ logger: this.logger,
134
+ token,
135
+ });
124
136
  return new TurboAuthenticatedClient({
125
137
  uploadService,
126
138
  paymentService,
127
139
  });
128
140
  }
129
141
  }
130
- TurboBaseFactory.logger = new TurboWinstonLogger();
142
+ TurboBaseFactory.logger = TurboWinstonLogger.default;
@@ -6,7 +6,7 @@ export class TurboHTTPService {
6
6
  this.axios = createAxiosInstance({
7
7
  axiosConfig: {
8
8
  baseURL: url,
9
- maxRedirects: 0,
9
+ maxRedirects: 0, // prevents backpressure issues when uploading larger streams via https
10
10
  onUploadProgress: (progressEvent) => {
11
11
  this.logger.debug(`Uploading...`, {
12
12
  percent: Math.floor((progressEvent.progress ?? 0) * 100),
@@ -17,34 +17,67 @@
17
17
  import { createLogger, format, transports } from 'winston';
18
18
  import { version } from '../version.js';
19
19
  export class TurboWinstonLogger {
20
- constructor({ level = 'debug', logFormat = 'simple', } = {}) {
21
- this.logger = createLogger({
22
- level,
23
- defaultMeta: { client: 'turbo-sdk', version },
24
- silent: level === 'none',
25
- format: getLogFormat(logFormat),
26
- transports: [new transports.Console()],
27
- });
20
+ constructor({ level = 'info', logFormat = 'simple', } = {}) {
21
+ this.silent = false;
22
+ if (level === 'none') {
23
+ this.silent = true;
24
+ }
25
+ if (typeof window !== 'undefined') {
26
+ this.logger = console;
27
+ }
28
+ else {
29
+ this.logger = createLogger({
30
+ level,
31
+ silent: this.silent,
32
+ defaultMeta: {
33
+ name: 'turbo-sdk',
34
+ version,
35
+ },
36
+ format: format.combine(format.timestamp(), format.json()),
37
+ transports: [
38
+ new transports.Console({
39
+ format: getLogFormat(logFormat),
40
+ }),
41
+ ],
42
+ });
43
+ }
28
44
  }
29
45
  info(message, ...args) {
46
+ if (this.silent)
47
+ return;
30
48
  this.logger.info(message, ...args);
31
49
  }
32
50
  warn(message, ...args) {
51
+ if (this.silent)
52
+ return;
33
53
  this.logger.warn(message, ...args);
34
54
  }
35
55
  error(message, ...args) {
56
+ if (this.silent)
57
+ return;
36
58
  this.logger.error(message, ...args);
37
59
  }
38
60
  debug(message, ...args) {
61
+ if (this.silent)
62
+ return;
39
63
  this.logger.debug(message, ...args);
40
64
  }
41
65
  setLogLevel(level) {
42
- this.logger.level = level;
66
+ this.silent = level === 'none';
67
+ if ('silent' in this.logger) {
68
+ this.logger.silent = level === 'none';
69
+ }
70
+ if ('level' in this.logger) {
71
+ this.logger.level = level;
72
+ }
43
73
  }
44
74
  setLogFormat(logFormat) {
45
- this.logger.format = getLogFormat(logFormat);
75
+ if ('format' in this.logger) {
76
+ this.logger.format = getLogFormat(logFormat);
77
+ }
46
78
  }
47
79
  }
80
+ TurboWinstonLogger.default = new TurboWinstonLogger();
48
81
  function getLogFormat(logFormat) {
49
82
  return format.combine(format((info) => {
50
83
  if (info.stack && info.level !== 'error') {
@@ -20,7 +20,7 @@ import { TurboWinstonLogger } from './logger.js';
20
20
  export const developmentPaymentServiceURL = 'https://payment.ardrive.dev';
21
21
  export const defaultPaymentServiceURL = 'https://payment.ardrive.io';
22
22
  export class TurboUnauthenticatedPaymentService {
23
- constructor({ url = defaultPaymentServiceURL, retryConfig, logger = new TurboWinstonLogger(), token = 'arweave', }) {
23
+ constructor({ url = defaultPaymentServiceURL, retryConfig, logger = TurboWinstonLogger.default, token = 'arweave', }) {
24
24
  this.logger = logger;
25
25
  this.httpService = new TurboHTTPService({
26
26
  url: `${url}/v1`,
@@ -129,7 +129,7 @@ export class TurboUnauthenticatedPaymentService {
129
129
  }
130
130
  // NOTE: to avoid redundancy, we use inheritance here - but generally prefer composition over inheritance
131
131
  export class TurboAuthenticatedPaymentService extends TurboUnauthenticatedPaymentService {
132
- constructor({ url = defaultPaymentServiceURL, retryConfig, signer, logger = new TurboWinstonLogger(), token = 'arweave', tokenTools, }) {
132
+ constructor({ url = defaultPaymentServiceURL, retryConfig, signer, logger = TurboWinstonLogger.default, token = 'arweave', tokenTools, }) {
133
133
  super({ url, retryConfig, logger, token });
134
134
  this.signer = signer;
135
135
  this.tokenTools = tokenTools;
@@ -22,10 +22,10 @@ import { TurboWinstonLogger } from '../logger.js';
22
22
  export class ArweaveToken {
23
23
  constructor({ gatewayUrl = 'https://arweave.net', arweave = Arweave.init({
24
24
  url: gatewayUrl,
25
- }), logger = new TurboWinstonLogger(), mintU = true, pollingOptions = {
25
+ }), logger = TurboWinstonLogger.default, mintU = true, pollingOptions = {
26
26
  maxAttempts: 10,
27
- pollingIntervalMs: 3000,
28
- initialBackoffMs: 7000,
27
+ pollingIntervalMs: 3_000,
28
+ initialBackoffMs: 7_000,
29
29
  }, } = {}) {
30
30
  this.arweave = arweave;
31
31
  this.logger = logger;
@@ -20,10 +20,10 @@ import { TurboWinstonLogger } from '../logger.js';
20
20
  export const weiToTokenAmount = (wei) => wei;
21
21
  export const ETHToTokenAmount = (eth) => new BigNumber(eth).times(1e18).valueOf();
22
22
  export class EthereumToken {
23
- constructor({ logger = new TurboWinstonLogger(), gatewayUrl = 'https://cloudflare-eth.com/', pollingOptions = {
23
+ constructor({ logger = TurboWinstonLogger.default, gatewayUrl = 'https://cloudflare-eth.com/', pollingOptions = {
24
24
  maxAttempts: 10,
25
- pollingIntervalMs: 4000,
26
- initialBackoffMs: 10000,
25
+ pollingIntervalMs: 4_000,
26
+ initialBackoffMs: 10_000,
27
27
  }, } = {}) {
28
28
  this.logger = logger;
29
29
  this.gatewayUrl = gatewayUrl;
@@ -22,10 +22,10 @@ import { TurboWinstonLogger } from '../logger.js';
22
22
  export const lamportToTokenAmount = (winston) => winston;
23
23
  export const SOLToTokenAmount = (sol) => new BigNumber(sol).times(1e9).valueOf();
24
24
  export class SolanaToken {
25
- constructor({ logger = new TurboWinstonLogger(), gatewayUrl = 'https://api.mainnet-beta.solana.com', pollingOptions = {
25
+ constructor({ logger = TurboWinstonLogger.default, gatewayUrl = 'https://api.mainnet-beta.solana.com', pollingOptions = {
26
26
  maxAttempts: 10,
27
- pollingIntervalMs: 5000,
28
- initialBackoffMs: 7000,
27
+ pollingIntervalMs: 5_000,
28
+ initialBackoffMs: 7_000,
29
29
  }, } = {}) {
30
30
  this.logger = logger;
31
31
  this.gatewayUrl = gatewayUrl;
@@ -110,6 +110,9 @@ export class TurboAuthenticatedClient extends TurboUnauthenticatedClient {
110
110
  dataItemOpts,
111
111
  });
112
112
  }
113
+ uploadFolder(p) {
114
+ return this.uploadService.uploadFolder(p);
115
+ }
113
116
  /**
114
117
  * Submits fund transaction to the token's blockchain then sends
115
118
  * the transaction ID to the Turbo Payment Service for processing.
@@ -1,9 +1,10 @@
1
+ import { pLimit } from 'plimit-lit';
1
2
  import { TurboHTTPService } from './http.js';
2
3
  import { TurboWinstonLogger } from './logger.js';
3
4
  export const developmentUploadServiceURL = 'https://upload.ardrive.dev';
4
5
  export const defaultUploadServiceURL = 'https://upload.ardrive.io';
5
6
  export class TurboUnauthenticatedUploadService {
6
- constructor({ url = defaultUploadServiceURL, retryConfig, logger = new TurboWinstonLogger(), token = 'arweave', }) {
7
+ constructor({ url = defaultUploadServiceURL, retryConfig, logger = TurboWinstonLogger.default, token = 'arweave', }) {
7
8
  this.token = token;
8
9
  this.logger = logger;
9
10
  this.httpService = new TurboHTTPService({
@@ -28,7 +29,7 @@ export class TurboUnauthenticatedUploadService {
28
29
  }
29
30
  }
30
31
  // NOTE: to avoid redundancy, we use inheritance here - but generally prefer composition over inheritance
31
- export class TurboAuthenticatedUploadService extends TurboUnauthenticatedUploadService {
32
+ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadService {
32
33
  constructor({ url = defaultUploadServiceURL, retryConfig, signer, logger, token, }) {
33
34
  super({ url, retryConfig, logger, token });
34
35
  this.signer = signer;
@@ -53,4 +54,106 @@ export class TurboAuthenticatedUploadService extends TurboUnauthenticatedUploadS
53
54
  },
54
55
  });
55
56
  }
57
+ async generateManifest({ paths, indexFile, fallbackFile, }) {
58
+ const indexPath =
59
+ // Use the user provided index file if it exists,
60
+ indexFile !== undefined && paths[indexFile]?.id !== undefined
61
+ ? indexFile
62
+ : // Else use index.html if it exists,
63
+ paths['index.html']?.id !== undefined
64
+ ? 'index.html'
65
+ : // Else use the first file in the paths object.
66
+ Object.keys(paths)[0];
67
+ const fallbackId =
68
+ // Use the user provided fallback file if it exists,
69
+ fallbackFile !== undefined && paths[fallbackFile]?.id !== undefined
70
+ ? paths[fallbackFile].id
71
+ : // Else use 404.html if it exists, else use the index path.
72
+ paths['404.html']?.id ?? paths[indexPath].id;
73
+ const manifest = {
74
+ manifest: 'arweave/paths',
75
+ version: '0.2.0',
76
+ index: { path: indexPath },
77
+ paths,
78
+ fallback: { id: fallbackId },
79
+ };
80
+ return manifest;
81
+ }
82
+ getContentType(file, dataItemOpts) {
83
+ const userDefinedContentType = dataItemOpts?.tags?.find((tag) => tag.name === 'Content-Type')?.value;
84
+ if (userDefinedContentType !== undefined) {
85
+ return userDefinedContentType;
86
+ }
87
+ return this.contentTypeFromFile(file);
88
+ }
89
+ async uploadFolder(params) {
90
+ const { dataItemOpts, signal, manifestOptions = {}, maxConcurrentUploads = 5, throwOnFailure = true, } = params;
91
+ const { disableManifest, indexFile, fallbackFile } = manifestOptions;
92
+ const paths = {};
93
+ const response = {
94
+ fileResponses: [],
95
+ };
96
+ const errors = [];
97
+ const uploadFile = async (file) => {
98
+ const contentType = this.getContentType(file, dataItemOpts);
99
+ const dataItemOptsWithContentType = {
100
+ ...dataItemOpts,
101
+ tags: [
102
+ ...(dataItemOpts?.tags?.filter((tag) => tag.name !== 'Content-Type') ?? []),
103
+ { name: 'Content-Type', value: contentType },
104
+ ],
105
+ };
106
+ try {
107
+ const result = await this.uploadFile({
108
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
109
+ fileStreamFactory: () => this.getFileStreamForFile(file),
110
+ fileSizeFactory: () => this.getFileSize(file),
111
+ signal,
112
+ dataItemOpts: dataItemOptsWithContentType,
113
+ });
114
+ const relativePath = this.getRelativePath(file, params);
115
+ paths[relativePath] = { id: result.id };
116
+ response.fileResponses.push(result);
117
+ }
118
+ catch (error) {
119
+ if (throwOnFailure) {
120
+ throw error;
121
+ }
122
+ this.logger.error(`Error uploading file: ${file}`, error);
123
+ errors.push(error);
124
+ }
125
+ };
126
+ const files = await this.getFiles(params);
127
+ const limit = pLimit(maxConcurrentUploads);
128
+ await Promise.all(files.map((file) => limit(() => uploadFile(file))));
129
+ if (errors.length > 0) {
130
+ response.errors = errors;
131
+ }
132
+ if (disableManifest) {
133
+ return response;
134
+ }
135
+ const manifest = await this.generateManifest({
136
+ paths,
137
+ indexFile,
138
+ fallbackFile,
139
+ });
140
+ const tagsWithManifestContentType = [
141
+ ...(dataItemOpts?.tags?.filter((tag) => tag.name !== 'Content-Type') ??
142
+ []),
143
+ { name: 'Content-Type', value: 'application/x.arweave-manifest+json' },
144
+ ];
145
+ const manifestBuffer = Buffer.from(JSON.stringify(manifest));
146
+ const manifestResponse = await this.uploadFile({
147
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
148
+ fileStreamFactory: () => this.createManifestStream(manifestBuffer),
149
+ fileSizeFactory: () => manifestBuffer.byteLength,
150
+ signal,
151
+ dataItemOpts: { ...dataItemOpts, tags: tagsWithManifestContentType },
152
+ });
153
+ return {
154
+ ...response,
155
+ manifest,
156
+ manifestResponse,
157
+ };
158
+ }
56
159
  }
@@ -16,5 +16,6 @@
16
16
  */
17
17
  export * from './factory.js';
18
18
  export * from './signer.js';
19
+ export * from './upload.js';
19
20
  export * from '../types.js';
20
21
  export * from '../common/index.js';
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright (C) 2022-2024 Permanent Data Solutions, Inc. All Rights Reserved.
3
+ *
4
+ * This program is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU Affero General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * This program is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU Affero General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Affero General Public License
15
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+ import { createReadStream, promises, statSync } from 'fs';
18
+ import { lookup } from 'mime-types';
19
+ import { Readable } from 'node:stream';
20
+ import { join } from 'path';
21
+ import { TurboAuthenticatedBaseUploadService, defaultUploadServiceURL, } from '../common/upload.js';
22
+ import { isNodeUploadFolderParams, } from '../types.js';
23
+ export class TurboAuthenticatedNodeUploadService extends TurboAuthenticatedBaseUploadService {
24
+ constructor({ url = defaultUploadServiceURL, retryConfig, signer, logger, token, }) {
25
+ super({ url, retryConfig, logger, token, signer });
26
+ }
27
+ async getAbsoluteFilePathsFromFolder(folderPath) {
28
+ const absoluteFilePaths = [];
29
+ // Walk the directory and add all file paths to the array
30
+ const files = await promises.readdir(folderPath);
31
+ for (const file of files) {
32
+ const absoluteFilePath = join(folderPath, file);
33
+ const stat = await promises.stat(absoluteFilePath);
34
+ if (stat.isDirectory()) {
35
+ absoluteFilePaths.push(...(await this.getAbsoluteFilePathsFromFolder(absoluteFilePath)));
36
+ }
37
+ else {
38
+ absoluteFilePaths.push(absoluteFilePath);
39
+ }
40
+ }
41
+ return absoluteFilePaths;
42
+ }
43
+ getFiles(params) {
44
+ if (!isNodeUploadFolderParams(params)) {
45
+ throw new Error('folderPath is required for node uploadFolder');
46
+ }
47
+ return this.getAbsoluteFilePathsFromFolder(params.folderPath);
48
+ }
49
+ getFileStreamForFile(file) {
50
+ return createReadStream(file);
51
+ }
52
+ getFileSize(file) {
53
+ return statSync(file).size;
54
+ }
55
+ getFileName(file) {
56
+ return file;
57
+ }
58
+ getRelativePath(file, params) {
59
+ return file.replace(params.folderPath + '/', '');
60
+ }
61
+ contentTypeFromFile(file) {
62
+ const mimeType = lookup(file);
63
+ return mimeType !== false ? mimeType : 'application/octet-stream';
64
+ }
65
+ createManifestStream(manifestBuffer) {
66
+ return Readable.from(manifestBuffer);
67
+ }
68
+ }
package/lib/esm/types.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export const tokenTypes = ['arweave', 'solana', 'ethereum'];
2
+ export const isNodeUploadFolderParams = (p) => p.folderPath !== undefined;
3
+ export const isWebUploadFolderParams = (p) => p.files !== undefined;
2
4
  export function isEthPrivateKey(wallet) {
3
5
  if (typeof wallet !== 'string')
4
6
  return false;
@@ -22,7 +22,7 @@ export const defaultRequestHeaders = {
22
22
  'x-turbo-source-version': version,
23
23
  'x-turbo-source-identifier': 'turbo-sdk',
24
24
  };
25
- export const createAxiosInstance = ({ logger = new TurboWinstonLogger(), axiosConfig = {}, retryConfig = {
25
+ export const createAxiosInstance = ({ logger = TurboWinstonLogger.default, axiosConfig = {}, retryConfig = {
26
26
  retryDelay: axiosRetry.exponentialDelay,
27
27
  retries: 3,
28
28
  retryCondition: (error) => {
@@ -17,3 +17,6 @@
17
17
  export function sleep(ms) {
18
18
  return new Promise((resolve) => setTimeout(resolve, ms));
19
19
  }
20
+ export function isWeb() {
21
+ return typeof window !== 'undefined';
22
+ }
@@ -15,4 +15,4 @@
15
15
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
  // AUTOMATICALLY GENERATED FILE - DO NOT TOUCH
18
- export const version = '1.9.1-alpha.1';
18
+ export const version = '1.10.0-alpha.2';
@@ -16,9 +16,10 @@
16
16
  */
17
17
  import { ArweaveSigner, EthereumSigner, HexSolanaSigner } from 'arbundles';
18
18
  import { TurboBaseFactory } from '../common/factory.js';
19
- import { TurboAuthenticatedClient, TurboAuthenticatedPaymentService, TurboAuthenticatedUploadService, defaultTokenMap, } from '../common/index.js';
19
+ import { TurboAuthenticatedClient, TurboAuthenticatedPaymentService, defaultTokenMap, } from '../common/index.js';
20
20
  import { isEthPrivateKey, isJWK, } from '../types.js';
21
21
  import { TurboWebArweaveSigner } from './signer.js';
22
+ import { TurboAuthenticatedWebUploadService } from './upload.js';
22
23
  export class TurboFactory extends TurboBaseFactory {
23
24
  static getSigner(providedSigner, providedPrivateKey, token) {
24
25
  let signer;
@@ -86,7 +87,7 @@ export class TurboFactory extends TurboBaseFactory {
86
87
  token,
87
88
  tokenTools,
88
89
  });
89
- const uploadService = new TurboAuthenticatedUploadService({
90
+ const uploadService = new TurboAuthenticatedWebUploadService({
90
91
  ...uploadServiceConfig,
91
92
  signer: turboSigner,
92
93
  logger: this.logger,
@@ -15,6 +15,7 @@
15
15
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
  export * from './factory.js';
18
+ export * from './upload.js';
18
19
  export * from './signer.js';
19
20
  export * from '../common/index.js';
20
21
  export * from '../types.js';
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copyright (C) 2022-2024 Permanent Data Solutions, Inc. All Rights Reserved.
3
+ *
4
+ * This program is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU Affero General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * This program is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU Affero General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Affero General Public License
15
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+ import { TurboAuthenticatedBaseUploadService, defaultUploadServiceURL, } from '../common/upload.js';
18
+ import { isWebUploadFolderParams, } from '../types.js';
19
+ export class TurboAuthenticatedWebUploadService extends TurboAuthenticatedBaseUploadService {
20
+ constructor({ url = defaultUploadServiceURL, retryConfig, signer, logger, token, }) {
21
+ super({ url, retryConfig, logger, token, signer });
22
+ }
23
+ getFiles(params) {
24
+ if (!isWebUploadFolderParams(params)) {
25
+ throw new Error('files are required for web uploadFolder');
26
+ }
27
+ return Promise.resolve(params.files);
28
+ }
29
+ getFileStreamForFile(file) {
30
+ return file.stream();
31
+ }
32
+ getFileSize(file) {
33
+ return file.size;
34
+ }
35
+ getFileName(file) {
36
+ return file.name;
37
+ }
38
+ getRelativePath(file) {
39
+ return file.name || file.webkitRelativePath;
40
+ }
41
+ contentTypeFromFile(file) {
42
+ return file.type || 'application/octet-stream';
43
+ }
44
+ createManifestStream(manifestBuffer) {
45
+ const stream = new ReadableStream({
46
+ start(controller) {
47
+ controller.enqueue(manifestBuffer);
48
+ controller.close();
49
+ },
50
+ });
51
+ return stream;
52
+ }
53
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/common/factory.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,SAAS,EACT,+BAA+B,EAC/B,WAAW,EACX,iCAAiC,EACjC,WAAW,EAGZ,MAAM,aAAa,CAAC;AAGrB,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;AAMpB,qBAAa,gBAAgB;IAC3B,SAAS,CAAC,MAAM,CAAC,MAAM,qBAA4B;IAEnD,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM;IAIhC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;IAIlC,MAAM,CAAC,eAAe,CAAC,EACrB,oBAAyB,EACzB,mBAAwB,GACzB,GAAE,iCAAsC;IAezC,SAAS,CAAC,MAAM,CAAC,SAAS,CACxB,cAAc,EAAE,WAAW,GAAG,SAAS,EACvC,kBAAkB,EAAE,WAAW,GAAG,SAAS,EAC3C,KAAK,EAAE,SAAS,GACf,2BAA2B;IAqC9B,MAAM,CAAC,aAAa,CAAC,EACnB,UAAU,EACV,MAAM,EAAE,cAAc,EACtB,oBAAyB,EACzB,mBAAwB,EACxB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,+BAA+B;CA8CnC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/common/factory.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,SAAS,EACT,+BAA+B,EAC/B,WAAW,EACX,iCAAiC,EACjC,WAAW,EAGZ,MAAM,aAAa,CAAC;AAKrB,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,qBAAa,gBAAgB;IAC3B,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,GACzB,GAAE,iCAAsC;IAezC,SAAS,CAAC,MAAM,CAAC,SAAS,CACxB,cAAc,EAAE,WAAW,GAAG,SAAS,EACvC,kBAAkB,EAAE,WAAW,GAAG,SAAS,EAC3C,KAAK,EAAE,SAAS,GACf,2BAA2B;IAqC9B,MAAM,CAAC,aAAa,CAAC,EACnB,UAAU,EACV,MAAM,EAAE,cAAc,EACtB,oBAAyB,EACzB,mBAAwB,EACxB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE,+BAA+B;CAqDnC"}
@@ -1,6 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
1
  /**
5
2
  * Copyright (C) 2022-2024 Permanent Data Solutions, Inc. All Rights Reserved.
6
3
  *
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,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;IAqBK,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;IAiBR,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;CAoBf"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,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;IAqBK,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;IAiBR,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;CAoBf"}
@@ -17,7 +17,9 @@
17
17
  import winston from 'winston';
18
18
  import { TurboLogger } from '../types.js';
19
19
  export declare class TurboWinstonLogger implements TurboLogger {
20
- protected logger: winston.Logger;
20
+ protected logger: winston.Logger | Console;
21
+ private silent;
22
+ static default: TurboWinstonLogger;
21
23
  constructor({ level, logFormat, }?: {
22
24
  level?: 'info' | 'debug' | 'error' | 'none' | undefined;
23
25
  logFormat?: 'simple' | 'json' | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,OAA6C,MAAM,SAAS,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,qBAAa,kBAAmB,YAAW,WAAW;IACpD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;gBACrB,EACV,KAAe,EACf,SAAoB,GACrB,GAAE;QACD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;QACxD,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;KACtC;IAUN,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIzC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIzC,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,YAAY,CAAC,SAAS,EAAE,MAAM;CAG/B"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,OAA6C,MAAM,SAAS,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,qBAAa,kBAAmB,YAAW,WAAW;IACpD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAS;IAEvB,MAAM,CAAC,OAAO,qBAA4B;gBAE9B,EACV,KAAc,EACd,SAAoB,GACrB,GAAE;QACD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;QACxD,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;KACtC;IAwBN,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAMxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAMxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAMzC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAMzC,WAAW,CAAC,KAAK,EAAE,MAAM;IAWzB,YAAY,CAAC,SAAS,EAAE,MAAM;CAK/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EAET,6CAA6C,EAC7C,yCAAyC,EACzC,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EAEzB,WAAW,EAEX,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,+CAA+C,EAC/C,2CAA2C,EAC3C,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,eAAO,MAAM,4BAA4B,gCAAgC,CAAC;AAC1E,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE,qBAAa,kCACX,YAAW,2CAA2C;IAEtD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACjD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;gBAExB,EACV,GAA8B,EAC9B,WAAW,EACX,MAAiC,EACjC,KAAiB,GAClB,EAAE,+CAA+C;IAU3C,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAM3C,WAAW,CAAC,EACjB,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,QAAQ,CAAC;KACpB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM3B,qBAAqB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAMxD,sBAAsB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAMpD,cAAc,CAAC,EAC1B,KAAK,GACN,EAAE;QACD,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAW1B,cAAc,CAAC,EACpB,MAAM,GACP,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAO7D,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;cAK/C,WAAW,CACzB,EACE,MAAM,EACN,KAAK,EACL,UAAe,EACf,MAAiB,GAClB,EAAE,0BAA0B,EAC7B,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,4BAA4B,CAAC;IA0BjC,qBAAqB,CAC1B,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,4BAA4B,CAAC;IAI3B,qBAAqB,CAAC,EACjC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAqCvC;AAED,qBAAa,gCACX,SAAQ,kCACR,YAAW,yCAAyC;IAEpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;gBAE1C,EACV,GAA8B,EAC9B,WAAW,EACX,MAAM,EACN,MAAiC,EACjC,KAAiB,EACjB,UAAU,GACX,EAAE,6CAA6C;IAMnC,UAAU,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAY3C,cAAc,CAAC,EAC1B,MAAM,EACN,UAAe,GAChB,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShD,qBAAqB,CAChC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,4BAA4B,CAAC;YAO1B,sBAAsB;IAYvB,eAAe,CAAC,EAC3B,aAAiB,EACjB,WAAW,EAAE,YAAY,GAC1B,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA+ChE"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EAET,6CAA6C,EAC7C,yCAAyC,EACzC,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EAEzB,WAAW,EAEX,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,+CAA+C,EAC/C,2CAA2C,EAC3C,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,eAAO,MAAM,4BAA4B,gCAAgC,CAAC;AAC1E,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE,qBAAa,kCACX,YAAW,2CAA2C;IAEtD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACjD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;gBAExB,EACV,GAA8B,EAC9B,WAAW,EACX,MAAmC,EACnC,KAAiB,GAClB,EAAE,+CAA+C;IAU3C,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAM3C,WAAW,CAAC,EACjB,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,QAAQ,CAAC;KACpB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM3B,qBAAqB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAMxD,sBAAsB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAMpD,cAAc,CAAC,EAC1B,KAAK,GACN,EAAE;QACD,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAW1B,cAAc,CAAC,EACpB,MAAM,GACP,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAO7D,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;cAK/C,WAAW,CACzB,EACE,MAAM,EACN,KAAK,EACL,UAAe,EACf,MAAiB,GAClB,EAAE,0BAA0B,EAC7B,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,4BAA4B,CAAC;IA0BjC,qBAAqB,CAC1B,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,4BAA4B,CAAC;IAI3B,qBAAqB,CAAC,EACjC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAqCvC;AAED,qBAAa,gCACX,SAAQ,kCACR,YAAW,yCAAyC;IAEpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;gBAE1C,EACV,GAA8B,EAC9B,WAAW,EACX,MAAM,EACN,MAAmC,EACnC,KAAiB,EACjB,UAAU,GACX,EAAE,6CAA6C;IAMnC,UAAU,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAY3C,cAAc,CAAC,EAC1B,MAAM,EACN,UAAe,GAChB,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShD,qBAAqB,CAChC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,4BAA4B,CAAC;YAO1B,sBAAsB;IAYvB,eAAe,CAAC,EAC3B,aAAiB,EACjB,WAAW,EAAE,YAAY,GAC1B,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA+ChE"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { FileStreamFactory, SendTxWithSignerParams, TurboDataItemSigner, TurboDataItemSignerParams, TurboFileFactory, TurboLogger, TurboSignedDataItemFactory, TurboSigner } from '../types.js';
3
2
  /**
4
3
  * Abstract class for signing TurboDataItems.
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/common/signer.ts"],"names":[],"mappings":";AAqBA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,8BAAsB,2BACpB,YAAW,mBAAmB;IAE9B,QAAQ,CAAC,YAAY,CAAC,EACpB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAE5E,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAElB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,yBAAyB;IAKzD,SAAS,KAAK,SAAS,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAmB1E;IAEY,4BAA4B;;;;;IAY5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C,gGAAgG;IACnF,eAAe,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB9B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAgBnE"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/common/signer.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,8BAAsB,2BACpB,YAAW,mBAAmB;IAE9B,QAAQ,CAAC,YAAY,CAAC,EACpB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAE5E,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAElB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,yBAAyB;IAKzD,SAAS,KAAK,SAAS,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAmB1E;IAEY,4BAA4B;;;;;IAY5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C,gGAAgG;IACnF,eAAe,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB9B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAgBnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"arweave.d.ts","sourceRoot":"","sources":["../../../../src/common/token/arweave.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAKxB,qBAAa,YAAa,YAAW,UAAU;IAC7C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;gBAElC,EACV,UAAkC,EAClC,OAEE,EACF,MAAiC,EACjC,KAAY,EACZ,cAIC,GACF,GAAE;QACD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,cAAc,CAAC,EAAE,mBAAmB,CAAC;KACjC;IAOO,iBAAiB,CAAC,EAC7B,aAAa,EACb,MAAM,EACN,WAAW,EACX,MAAM,GACP,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IA4CW,uBAAuB,CAAC,EACnC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDJ,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB9C;AAED,eAAO,MAAM,oBAAoB,YAAa,UAAU,KAAK,oBAAY,CAAC;AAC1E,eAAO,MAAM,eAAe,OAAQ,UAAU,KAAK,WACV,CAAC"}
1
+ {"version":3,"file":"arweave.d.ts","sourceRoot":"","sources":["../../../../src/common/token/arweave.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAKxB,qBAAa,YAAa,YAAW,UAAU;IAC7C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;gBAElC,EACV,UAAkC,EAClC,OAEE,EACF,MAAmC,EACnC,KAAY,EACZ,cAIC,GACF,GAAE;QACD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,cAAc,CAAC,EAAE,mBAAmB,CAAC;KACjC;IAOO,iBAAiB,CAAC,EAC7B,aAAa,EACb,MAAM,EACN,WAAW,EACX,MAAM,GACP,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IA4CW,uBAAuB,CAAC,EACnC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDJ,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB9C;AAED,eAAO,MAAM,oBAAoB,YAAa,SAAS,CAAC,KAAK,oBAAY,CAAC;AAC1E,eAAO,MAAM,eAAe,OAAQ,SAAS,CAAC,KAAK,WACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/common/token/ethereum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,gBAAgB,QAAS,UAAU,KAAK,oBAAQ,CAAC;AAC9D,eAAO,MAAM,gBAAgB,QAAS,UAAU,KAAK,WACX,CAAC;AAE3C,qBAAa,aAAc,YAAW,UAAU;IAC9C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAE9C,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;gBAElC,EACV,MAAiC,EACjC,UAA0C,EAC1C,cAIC,GACF,GAAE,WAAgB;IAQN,iBAAiB,CAAC,EAC7B,MAAM,EACN,WAAW,EACX,MAAM,GACP,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAeW,uBAAuB,CAAC,EACnC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBlB"}
1
+ {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/common/token/ethereum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,gBAAgB,QAAS,SAAS,CAAC,KAAK,oBAAQ,CAAC;AAC9D,eAAO,MAAM,gBAAgB,QAAS,SAAS,CAAC,KAAK,WACX,CAAC;AAE3C,qBAAa,aAAc,YAAW,UAAU;IAC9C,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAE9C,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;gBAElC,EACV,MAAmC,EACnC,UAA0C,EAC1C,cAIC,GACF,GAAE,WAAgB;IAQN,iBAAiB,CAAC,EAC7B,MAAM,EACN,WAAW,EACX,MAAM,GACP,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAeW,uBAAuB,CAAC,EACnC,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBlB"}