@ardrive/turbo-sdk 1.23.2 → 1.23.3-alpha.test.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.
Files changed (40) hide show
  1. package/bundles/web.bundle.min.js +19665 -35948
  2. package/lib/cjs/cli/constants.js +1 -1
  3. package/lib/cjs/common/factory.js +3 -3
  4. package/lib/cjs/common/logger.js +41 -73
  5. package/lib/cjs/common/payment.js +2 -2
  6. package/lib/cjs/common/signer.js +1 -1
  7. package/lib/cjs/common/signing/signing.js +205 -0
  8. package/lib/cjs/common/token/arweave.js +1 -1
  9. package/lib/cjs/common/token/ethereum.js +1 -1
  10. package/lib/cjs/common/token/kyve.js +1 -1
  11. package/lib/cjs/common/token/polygon.js +1 -1
  12. package/lib/cjs/common/token/solana.js +1 -1
  13. package/lib/cjs/common/upload.js +1 -1
  14. package/lib/cjs/utils/axiosClient.js +2 -2
  15. package/lib/cjs/version.js +1 -1
  16. package/lib/esm/cli/constants.js +1 -1
  17. package/lib/esm/common/factory.js +4 -4
  18. package/lib/esm/common/logger.js +39 -71
  19. package/lib/esm/common/payment.js +3 -3
  20. package/lib/esm/common/signer.js +2 -2
  21. package/lib/esm/common/signing/signing.js +205 -0
  22. package/lib/esm/common/token/arweave.js +2 -2
  23. package/lib/esm/common/token/ethereum.js +2 -2
  24. package/lib/esm/common/token/kyve.js +2 -2
  25. package/lib/esm/common/token/polygon.js +2 -2
  26. package/lib/esm/common/token/solana.js +2 -2
  27. package/lib/esm/common/upload.js +2 -2
  28. package/lib/esm/utils/axiosClient.js +3 -3
  29. package/lib/esm/version.js +1 -1
  30. package/lib/types/common/factory.d.ts +5 -5
  31. package/lib/types/common/factory.d.ts.map +1 -1
  32. package/lib/types/common/logger.d.ts +12 -8
  33. package/lib/types/common/logger.d.ts.map +1 -1
  34. package/lib/types/common/signing/signing.d.ts +16 -0
  35. package/lib/types/common/signing/signing.d.ts.map +1 -0
  36. package/lib/types/types.d.ts +4 -4
  37. package/lib/types/types.d.ts.map +1 -1
  38. package/lib/types/version.d.ts +1 -1
  39. package/lib/types/version.d.ts.map +1 -1
  40. package/package.json +2 -3
@@ -5,7 +5,7 @@ const version_js_1 = require("../version.js");
5
5
  exports.turboCliTags = [
6
6
  { name: 'App-Name', value: 'Turbo-CLI' },
7
7
  { name: 'App-Version', value: version_js_1.version },
8
- { name: 'App-Platform', value: process.platform },
8
+ { name: 'App-Platform', value: process?.platform },
9
9
  ];
10
10
  exports.wincPerCredit = 1_000_000_000_000;
11
11
  exports.defaultProdGatewayUrls = {
@@ -24,11 +24,11 @@ const index_js_1 = require("./token/index.js");
24
24
  const turbo_js_1 = require("./turbo.js");
25
25
  const upload_js_1 = require("./upload.js");
26
26
  class TurboBaseFactory {
27
- /* @deprecated - use TurboWinstonLogger directly */
27
+ /* @deprecated - use ConsoleTurboLogger directly */
28
28
  static setLogLevel(level) {
29
29
  this.logger.setLogLevel(level);
30
30
  }
31
- /* @deprecated - use TurboWinstonLogger directly */
31
+ /* @deprecated - use ConsoleTurboLogger directly */
32
32
  static setLogFormat(format) {
33
33
  this.logger.setLogFormat(format);
34
34
  }
@@ -125,4 +125,4 @@ class TurboBaseFactory {
125
125
  }
126
126
  }
127
127
  exports.TurboBaseFactory = TurboBaseFactory;
128
- TurboBaseFactory.logger = logger_js_1.TurboWinstonLogger.default;
128
+ TurboBaseFactory.logger = logger_js_1.ConsoleTurboLogger.default;
@@ -1,92 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TurboWinstonLogger = void 0;
4
- /**
5
- * Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- const winston_1 = require("winston");
3
+ exports.ConsoleTurboLogger = void 0;
20
4
  const version_js_1 = require("../version.js");
21
- class TurboWinstonLogger {
5
+ class ConsoleTurboLogger {
22
6
  constructor({ level = 'info', logFormat = 'simple', } = {}) {
23
- this.silent = false;
24
- if (level === 'none') {
25
- this.silent = true;
26
- }
27
- if (typeof window !== 'undefined') {
28
- this.logger = console;
29
- }
30
- else {
31
- this.logger = (0, winston_1.createLogger)({
32
- level,
33
- silent: this.silent,
34
- defaultMeta: {
35
- name: 'turbo-sdk',
36
- version: version_js_1.version,
37
- },
38
- format: winston_1.format.combine(winston_1.format.timestamp(), winston_1.format.json()),
39
- transports: [
40
- new winston_1.transports.Console({
41
- format: getLogFormat(logFormat),
42
- }),
43
- ],
44
- });
45
- }
7
+ this.level = level;
8
+ this.format = logFormat;
9
+ this.silent = level === 'none';
46
10
  }
47
- info(message, ...args) {
11
+ shouldLog(level) {
48
12
  if (this.silent)
49
- return;
50
- this.logger.info(message, ...args);
13
+ return false;
14
+ const order = ['none', 'error', 'info', 'debug'];
15
+ return order.indexOf(level) <= order.indexOf(this.level);
16
+ }
17
+ formatMessage(level, message, args) {
18
+ const base = {
19
+ level,
20
+ message,
21
+ args,
22
+ version: version_js_1.version,
23
+ timestamp: new Date().toISOString(),
24
+ };
25
+ return this.format === 'json'
26
+ ? JSON.stringify(base)
27
+ : `[${base.timestamp}] [${level.toUpperCase()}] ${message} ${args
28
+ .map((a) => JSON.stringify(a))
29
+ .join(' ')}`;
30
+ }
31
+ info(message, ...args) {
32
+ if (this.shouldLog('info')) {
33
+ console.info(this.formatMessage('info', message, args));
34
+ }
51
35
  }
52
36
  warn(message, ...args) {
53
- if (this.silent)
54
- return;
55
- this.logger.warn(message, ...args);
37
+ if (this.shouldLog('info')) {
38
+ console.warn(this.formatMessage('warn', message, args));
39
+ }
56
40
  }
57
41
  error(message, ...args) {
58
- if (this.silent)
59
- return;
60
- this.logger.error(message, ...args);
42
+ if (this.shouldLog('error')) {
43
+ console.error(this.formatMessage('error', message, args));
44
+ }
61
45
  }
62
46
  debug(message, ...args) {
63
- if (this.silent)
64
- return;
65
- this.logger.debug(message, ...args);
47
+ if (this.shouldLog('debug')) {
48
+ console.debug(this.formatMessage('debug', message, args));
49
+ }
66
50
  }
67
51
  setLogLevel(level) {
52
+ this.level = level;
68
53
  this.silent = level === 'none';
69
- if ('silent' in this.logger) {
70
- this.logger.silent = level === 'none';
71
- }
72
- if ('level' in this.logger) {
73
- this.logger.level = level;
74
- }
75
54
  }
76
55
  setLogFormat(logFormat) {
77
- if ('format' in this.logger) {
78
- this.logger.format = getLogFormat(logFormat);
79
- }
56
+ this.format = logFormat;
80
57
  }
81
58
  }
82
- exports.TurboWinstonLogger = TurboWinstonLogger;
83
- TurboWinstonLogger.default = new TurboWinstonLogger();
84
- function getLogFormat(logFormat) {
85
- return winston_1.format.combine((0, winston_1.format)((info) => {
86
- if (info.stack && info.level !== 'error') {
87
- delete info.stack;
88
- }
89
- return info;
90
- })(), winston_1.format.errors({ stack: true }), // Ensure errors show a stack trace
91
- winston_1.format.timestamp(), logFormat === 'json' ? winston_1.format.json() : winston_1.format.simple());
92
- }
59
+ exports.ConsoleTurboLogger = ConsoleTurboLogger;
60
+ ConsoleTurboLogger.default = new ConsoleTurboLogger();
@@ -24,7 +24,7 @@ const index_js_1 = require("./token/index.js");
24
24
  exports.developmentPaymentServiceURL = 'https://payment.ardrive.dev';
25
25
  exports.defaultPaymentServiceURL = 'https://payment.ardrive.io';
26
26
  class TurboUnauthenticatedPaymentService {
27
- constructor({ url = exports.defaultPaymentServiceURL, retryConfig, logger = logger_js_1.TurboWinstonLogger.default, token = 'arweave', }) {
27
+ constructor({ url = exports.defaultPaymentServiceURL, retryConfig, logger = logger_js_1.ConsoleTurboLogger.default, token = 'arweave', }) {
28
28
  this.logger = logger;
29
29
  this.httpService = new http_js_1.TurboHTTPService({
30
30
  url: `${url}/v1`,
@@ -197,7 +197,7 @@ class TurboUnauthenticatedPaymentService {
197
197
  exports.TurboUnauthenticatedPaymentService = TurboUnauthenticatedPaymentService;
198
198
  // NOTE: to avoid redundancy, we use inheritance here - but generally prefer composition over inheritance
199
199
  class TurboAuthenticatedPaymentService extends TurboUnauthenticatedPaymentService {
200
- constructor({ url = exports.defaultPaymentServiceURL, retryConfig, signer, logger = logger_js_1.TurboWinstonLogger.default, token = 'arweave', tokenTools, }) {
200
+ constructor({ url = exports.defaultPaymentServiceURL, retryConfig, signer, logger = logger_js_1.ConsoleTurboLogger.default, token = 'arweave', tokenTools, }) {
201
201
  super({ url, retryConfig, logger, token });
202
202
  this.signer = signer;
203
203
  this.tokenTools = tokenTools;
@@ -38,7 +38,7 @@ const logger_js_1 = require("./logger.js");
38
38
  * Abstract class for signing TurboDataItems.
39
39
  */
40
40
  class TurboDataItemAbstractSigner {
41
- constructor({ signer, logger = logger_js_1.TurboWinstonLogger.default, token, walletAdapter, }) {
41
+ constructor({ signer, logger = logger_js_1.ConsoleTurboLogger.default, token, walletAdapter, }) {
42
42
  this.logger = logger;
43
43
  this.signer = signer;
44
44
  this.token = token;
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ // // Constants
18
+ // const SignatureConfig = {
19
+ // ARWEAVE: 1,
20
+ // ED25519: 2,
21
+ // ETHEREUM: 3,
22
+ // SOLANA: 4,
23
+ // };
24
+ // const SIG_CONFIG = {
25
+ // [SignatureConfig.ETHEREUM]: {
26
+ // sigLength: 65,
27
+ // pubLength: 65,
28
+ // },
29
+ // [SignatureConfig.SOLANA]: {
30
+ // sigLength: 64,
31
+ // pubLength: 32,
32
+ // },
33
+ // };
34
+ // // Utils
35
+ // function stringToBytes(str: string): Uint8Array {
36
+ // return new TextEncoder().encode(str);
37
+ // }
38
+ // function bytesToBase64(bytes: Uint8Array): string {
39
+ // return btoa(String.fromCharCode(...bytes));
40
+ // }
41
+ // // Signer base
42
+ // export abstract class Signer {
43
+ // abstract readonly publicKey: Buffer;
44
+ // abstract readonly signatureType: number;
45
+ // abstract readonly signatureLength: number;
46
+ // abstract readonly ownerLength: number;
47
+ // readonly pem?: string | Buffer;
48
+ // abstract sign(
49
+ // message: Uint8Array,
50
+ // _opts?: any,
51
+ // ): Promise<Uint8Array> | Uint8Array;
52
+ // static verify(
53
+ // _pk: string | Buffer,
54
+ // _message: Uint8Array,
55
+ // _signature: Uint8Array,
56
+ // _opts?: any,
57
+ // ): boolean {
58
+ // throw new Error('You must implement verify method on child');
59
+ // }
60
+ // }
61
+ // // SolanaSigner
62
+ // export class SolanaSigner extends Signer {
63
+ // readonly signatureType = SignatureConfig.SOLANA;
64
+ // readonly signatureLength = 64;
65
+ // readonly ownerLength = 32;
66
+ // private _key: string;
67
+ // private pk: string;
68
+ // constructor(_key: string) {
69
+ // super();
70
+ // const b = bs58.decode(_key);
71
+ // this.pk = bs58.encode(b.subarray(0, 32));
72
+ // this._key = bs58.encode(b.subarray(32, 64));
73
+ // }
74
+ // get publicKey(): Buffer {
75
+ // return Buffer.from(bs58.decode(this.pk));
76
+ // }
77
+ // get key(): Uint8Array {
78
+ // return bs58.decode(this._key);
79
+ // }
80
+ // async sign(message: Uint8Array): Promise<Uint8Array> {
81
+ // const keyPair = nacl.sign.keyPair.fromSeed(this.key);
82
+ // return nacl.sign.detached(message, keyPair.secretKey);
83
+ // }
84
+ // }
85
+ // // ArweaveSigner
86
+ // export class ArweaveSigner extends Signer {
87
+ // key: JsonWebKey;
88
+ // readonly signatureType = SignatureConfig.ARWEAVE;
89
+ // readonly signatureLength = 512;
90
+ // readonly ownerLength = 512;
91
+ // constructor(key: JsonWebKey) {
92
+ // super();
93
+ // this.key = key;
94
+ // }
95
+ // get publicKey(): Buffer {
96
+ // throw new Error('Not implemented');
97
+ // }
98
+ // async sign(message: Uint8Array): Promise<Uint8Array> {
99
+ // const key = await crypto.subtle.importKey(
100
+ // 'jwk',
101
+ // this.key,
102
+ // { name: 'RSA-PSS', hash: 'SHA-256' },
103
+ // false,
104
+ // ['sign'],
105
+ // );
106
+ // const sig = await crypto.subtle.sign(
107
+ // { name: 'RSA-PSS', saltLength: 32 },
108
+ // key,
109
+ // message,
110
+ // );
111
+ // return new Uint8Array(sig);
112
+ // }
113
+ // }
114
+ // // EthereumSigner
115
+ // export class EthereumSigner extends Signer {
116
+ // readonly signatureType = SignatureConfig.ETHEREUM;
117
+ // readonly signatureLength = SIG_CONFIG[SignatureConfig.ETHEREUM].sigLength;
118
+ // readonly ownerLength = SIG_CONFIG[SignatureConfig.ETHEREUM].pubLength;
119
+ // private wallet: any;
120
+ // public publicKey: Buffer;
121
+ // constructor(wallet: any) {
122
+ // super();
123
+ // this.wallet = wallet;
124
+ // }
125
+ // async sign(message: Uint8Array): Promise<Uint8Array> {
126
+ // const sig = await this.wallet.signMessage(message);
127
+ // return Buffer.from(sig.slice(2), 'hex');
128
+ // }
129
+ // static override verify(
130
+ // pk: Buffer,
131
+ // message: Uint8Array,
132
+ // signature: Uint8Array,
133
+ // ): boolean {
134
+ // const addr = computeAddress(pk);
135
+ // return verifyMessage(message, signature) === addr;
136
+ // }
137
+ // }
138
+ // // InjectedEthereumSigner
139
+ // export class InjectedEthereumSigner extends Signer {
140
+ // protected signer: {
141
+ // signMessage(message: string | Uint8Array): Promise<string>;
142
+ // };
143
+ // public publicKey: Buffer;
144
+ // readonly ownerLength = SIG_CONFIG[SignatureConfig.ETHEREUM].pubLength;
145
+ // readonly signatureLength = SIG_CONFIG[SignatureConfig.ETHEREUM].sigLength;
146
+ // readonly signatureType = SignatureConfig.ETHEREUM;
147
+ // constructor(provider: {
148
+ // getSigner(): { signMessage(message: string | Uint8Array): Promise<string> };
149
+ // }) {
150
+ // super();
151
+ // this.signer = provider.getSigner();
152
+ // }
153
+ // async setPublicKey(): Promise<void> {
154
+ // const address = 'sign this message to connect to Turbo SDK';
155
+ // const signedMsg = await this.signer.signMessage(address);
156
+ // const hash = hashMessage(address);
157
+ // const recoveredKey = recoverPublicKey(arrayify(hash), signedMsg);
158
+ // this.publicKey = Buffer.from(arrayify(recoveredKey));
159
+ // }
160
+ // async sign<Uint8Array>(message): Promise<Uint8Array> {
161
+ // const sig = await this.signer.signMessage(message);
162
+ // return Buffer.from(sig.slice(2), 'hex');
163
+ // }
164
+ // static override verify(
165
+ // pk: Buffer,
166
+ // message: Uint8Array,
167
+ // signature: Uint8Array,
168
+ // ): boolean {
169
+ // const address = computeAddress(pk);
170
+ // return verifyMessage(message, signature) === address;
171
+ // }
172
+ // }
173
+ // // ArConnectSigner
174
+ // export class ArConnectSigner extends Signer {
175
+ // readonly signatureType = SignatureConfig.ARWEAVE;
176
+ // readonly signatureLength = 512;
177
+ // readonly ownerLength = 512;
178
+ // public publicKey: Buffer;
179
+ // async sign(message: Uint8Array): Promise<Uint8Array> {
180
+ // if (!window.arweaveWallet) throw new Error('ArConnect not available');
181
+ // const sig = await window.arweaveWallet.sign(message, {
182
+ // name: 'Bundlr-ArConnect',
183
+ // });
184
+ // return new Uint8Array(sig.signature);
185
+ // }
186
+ // }
187
+ // // HexInjectedSolanaSigner
188
+ // export class HexInjectedSolanaSigner extends Signer {
189
+ // readonly signatureType = SignatureConfig.SOLANA;
190
+ // readonly signatureLength = 64;
191
+ // readonly ownerLength = 32;
192
+ // public publicKey: Buffer;
193
+ // constructor(
194
+ // public signer: {
195
+ // publicKey: string;
196
+ // signMessage: (message: Uint8Array) => Promise<Uint8Array>;
197
+ // },
198
+ // ) {
199
+ // super();
200
+ // this.publicKey = Buffer.from(bs58.decode(signer.publicKey));
201
+ // }
202
+ // async sign(message: Uint8Array): Promise<Uint8Array> {
203
+ // return this.signer.signMessage(message);
204
+ // }
205
+ // }
@@ -30,7 +30,7 @@ const ArweaveClass =
30
30
  // @ts-ignore -- Access the correct class constructor for Arweave
31
31
  arweave_1.default.default?.default || arweave_1.default.default || arweave_1.default;
32
32
  class ArweaveToken {
33
- constructor({ gatewayUrl = 'https://arweave.net', arweave, logger = logger_js_1.TurboWinstonLogger.default, mintU = true, pollingOptions = {
33
+ constructor({ gatewayUrl = 'https://arweave.net', arweave, logger = logger_js_1.ConsoleTurboLogger.default, mintU = true, pollingOptions = {
34
34
  maxAttempts: 10,
35
35
  pollingIntervalMs: 3_000,
36
36
  initialBackoffMs: 7_000,
@@ -25,7 +25,7 @@ exports.weiToTokenAmount = weiToTokenAmount;
25
25
  const ETHToTokenAmount = (eth) => new bignumber_js_1.BigNumber(eth).times(1e18).valueOf();
26
26
  exports.ETHToTokenAmount = ETHToTokenAmount;
27
27
  class EthereumToken {
28
- constructor({ logger = logger_js_1.TurboWinstonLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.ethereum, pollingOptions = {
28
+ constructor({ logger = logger_js_1.ConsoleTurboLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.ethereum, pollingOptions = {
29
29
  maxAttempts: 10,
30
30
  pollingIntervalMs: 4_000,
31
31
  initialBackoffMs: 10_000,
@@ -36,7 +36,7 @@ exports.ukyveToTokenAmount = ukyveToTokenAmount;
36
36
  const KYVEToTokenAmount = (sol) => new bignumber_js_1.BigNumber(sol).times(1e6).valueOf();
37
37
  exports.KYVEToTokenAmount = KYVEToTokenAmount;
38
38
  class KyveToken {
39
- constructor({ logger = logger_js_1.TurboWinstonLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.kyve, pollingOptions = {
39
+ constructor({ logger = logger_js_1.ConsoleTurboLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.kyve, pollingOptions = {
40
40
  maxAttempts: 5,
41
41
  pollingIntervalMs: 1_000,
42
42
  initialBackoffMs: 500,
@@ -21,7 +21,7 @@ const logger_js_1 = require("../logger.js");
21
21
  const ethereum_js_1 = require("./ethereum.js");
22
22
  exports.POLToTokenAmount = ethereum_js_1.ETHToTokenAmount;
23
23
  class PolygonToken extends ethereum_js_1.EthereumToken {
24
- constructor({ logger = logger_js_1.TurboWinstonLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.pol, pollingOptions = {
24
+ constructor({ logger = logger_js_1.ConsoleTurboLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.pol, pollingOptions = {
25
25
  maxAttempts: 10,
26
26
  pollingIntervalMs: 4_000,
27
27
  initialBackoffMs: 5_000,
@@ -31,7 +31,7 @@ exports.lamportToTokenAmount = lamportToTokenAmount;
31
31
  const SOLToTokenAmount = (sol) => new bignumber_js_1.BigNumber(sol).times(1e9).valueOf();
32
32
  exports.SOLToTokenAmount = SOLToTokenAmount;
33
33
  class SolanaToken {
34
- constructor({ logger = logger_js_1.TurboWinstonLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.solana, pollingOptions = {
34
+ constructor({ logger = logger_js_1.ConsoleTurboLogger.default, gatewayUrl = constants_js_1.defaultProdGatewayUrls.solana, pollingOptions = {
35
35
  maxAttempts: 10,
36
36
  pollingIntervalMs: 2_500,
37
37
  initialBackoffMs: 500,
@@ -33,7 +33,7 @@ exports.creditSharingTagNames = {
33
33
  exports.developmentUploadServiceURL = 'https://upload.ardrive.dev';
34
34
  exports.defaultUploadServiceURL = 'https://upload.ardrive.io';
35
35
  class TurboUnauthenticatedUploadService {
36
- constructor({ url = exports.defaultUploadServiceURL, logger = logger_js_1.TurboWinstonLogger.default, retryConfig = (0, axiosClient_js_1.defaultRetryConfig)(logger), token = 'arweave', }) {
36
+ constructor({ url = exports.defaultUploadServiceURL, logger = logger_js_1.ConsoleTurboLogger.default, retryConfig = (0, axiosClient_js_1.defaultRetryConfig)(logger), token = 'arweave', }) {
37
37
  this.token = token;
38
38
  this.logger = logger;
39
39
  this.httpService = new http_js_1.TurboHTTPService({
@@ -50,7 +50,7 @@ exports.defaultRequestHeaders = {
50
50
  'x-turbo-source-version': version_js_1.version,
51
51
  'x-turbo-source-identifier': 'turbo-sdk',
52
52
  };
53
- const defaultRetryConfig = (logger = logger_js_1.TurboWinstonLogger.default) => ({
53
+ const defaultRetryConfig = (logger = logger_js_1.ConsoleTurboLogger.default) => ({
54
54
  retryDelay: axios_retry_1.default.exponentialDelay,
55
55
  retries: 5,
56
56
  retryCondition: (error) => {
@@ -63,7 +63,7 @@ const defaultRetryConfig = (logger = logger_js_1.TurboWinstonLogger.default) =>
63
63
  },
64
64
  });
65
65
  exports.defaultRetryConfig = defaultRetryConfig;
66
- const createAxiosInstance = ({ logger = logger_js_1.TurboWinstonLogger.default, axiosConfig = {}, retryConfig = (0, exports.defaultRetryConfig)(logger), } = {}) => {
66
+ const createAxiosInstance = ({ logger = logger_js_1.ConsoleTurboLogger.default, axiosConfig = {}, retryConfig = (0, exports.defaultRetryConfig)(logger), } = {}) => {
67
67
  const axiosInstance = axios_1.default.create({
68
68
  ...axiosConfig,
69
69
  headers: {
@@ -17,4 +17,4 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.version = void 0;
19
19
  // AUTOMATICALLY GENERATED FILE - DO NOT TOUCH
20
- exports.version = '1.23.2';
20
+ exports.version = '1.23.3';
@@ -2,7 +2,7 @@ import { version } from '../version.js';
2
2
  export const turboCliTags = [
3
3
  { name: 'App-Name', value: 'Turbo-CLI' },
4
4
  { name: 'App-Version', value: version },
5
- { name: 'App-Platform', value: process.platform },
5
+ { name: 'App-Platform', value: process?.platform },
6
6
  ];
7
7
  export const wincPerCredit = 1_000_000_000_000;
8
8
  export const defaultProdGatewayUrls = {
@@ -15,17 +15,17 @@
15
15
  */
16
16
  import { EthereumSigner, HexInjectedSolanaSigner, HexSolanaSigner, InjectedEthereumSigner, } from '@dha-team/arbundles';
17
17
  import { isEthereumWalletAdapter, isSolanaWalletAdapter, } from '../types.js';
18
- import { TurboWinstonLogger } from './logger.js';
18
+ import { ConsoleTurboLogger } from './logger.js';
19
19
  import { TurboAuthenticatedPaymentService, TurboUnauthenticatedPaymentService, } from './payment.js';
20
20
  import { defaultTokenMap } from './token/index.js';
21
21
  import { TurboAuthenticatedClient, TurboUnauthenticatedClient, } from './turbo.js';
22
22
  import { TurboUnauthenticatedUploadService } from './upload.js';
23
23
  export class TurboBaseFactory {
24
- /* @deprecated - use TurboWinstonLogger directly */
24
+ /* @deprecated - use ConsoleTurboLogger directly */
25
25
  static setLogLevel(level) {
26
26
  this.logger.setLogLevel(level);
27
27
  }
28
- /* @deprecated - use TurboWinstonLogger directly */
28
+ /* @deprecated - use ConsoleTurboLogger directly */
29
29
  static setLogFormat(format) {
30
30
  this.logger.setLogFormat(format);
31
31
  }
@@ -121,4 +121,4 @@ export class TurboBaseFactory {
121
121
  throw new Error('Unsupported wallet adapter -- wallet adapter is currently only supported for Solana and Ethereum');
122
122
  }
123
123
  }
124
- TurboBaseFactory.logger = TurboWinstonLogger.default;
124
+ TurboBaseFactory.logger = ConsoleTurboLogger.default;
@@ -1,88 +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 { createLogger, format, transports } from 'winston';
17
1
  import { version } from '../version.js';
18
- export class TurboWinstonLogger {
2
+ export class ConsoleTurboLogger {
19
3
  constructor({ level = 'info', logFormat = 'simple', } = {}) {
20
- this.silent = false;
21
- if (level === 'none') {
22
- this.silent = true;
23
- }
24
- if (typeof window !== 'undefined') {
25
- this.logger = console;
26
- }
27
- else {
28
- this.logger = createLogger({
29
- level,
30
- silent: this.silent,
31
- defaultMeta: {
32
- name: 'turbo-sdk',
33
- version,
34
- },
35
- format: format.combine(format.timestamp(), format.json()),
36
- transports: [
37
- new transports.Console({
38
- format: getLogFormat(logFormat),
39
- }),
40
- ],
41
- });
42
- }
4
+ this.level = level;
5
+ this.format = logFormat;
6
+ this.silent = level === 'none';
43
7
  }
44
- info(message, ...args) {
8
+ shouldLog(level) {
45
9
  if (this.silent)
46
- return;
47
- this.logger.info(message, ...args);
10
+ return false;
11
+ const order = ['none', 'error', 'info', 'debug'];
12
+ return order.indexOf(level) <= order.indexOf(this.level);
13
+ }
14
+ formatMessage(level, message, args) {
15
+ const base = {
16
+ level,
17
+ message,
18
+ args,
19
+ version,
20
+ timestamp: new Date().toISOString(),
21
+ };
22
+ return this.format === 'json'
23
+ ? JSON.stringify(base)
24
+ : `[${base.timestamp}] [${level.toUpperCase()}] ${message} ${args
25
+ .map((a) => JSON.stringify(a))
26
+ .join(' ')}`;
27
+ }
28
+ info(message, ...args) {
29
+ if (this.shouldLog('info')) {
30
+ console.info(this.formatMessage('info', message, args));
31
+ }
48
32
  }
49
33
  warn(message, ...args) {
50
- if (this.silent)
51
- return;
52
- this.logger.warn(message, ...args);
34
+ if (this.shouldLog('info')) {
35
+ console.warn(this.formatMessage('warn', message, args));
36
+ }
53
37
  }
54
38
  error(message, ...args) {
55
- if (this.silent)
56
- return;
57
- this.logger.error(message, ...args);
39
+ if (this.shouldLog('error')) {
40
+ console.error(this.formatMessage('error', message, args));
41
+ }
58
42
  }
59
43
  debug(message, ...args) {
60
- if (this.silent)
61
- return;
62
- this.logger.debug(message, ...args);
44
+ if (this.shouldLog('debug')) {
45
+ console.debug(this.formatMessage('debug', message, args));
46
+ }
63
47
  }
64
48
  setLogLevel(level) {
49
+ this.level = level;
65
50
  this.silent = level === 'none';
66
- if ('silent' in this.logger) {
67
- this.logger.silent = level === 'none';
68
- }
69
- if ('level' in this.logger) {
70
- this.logger.level = level;
71
- }
72
51
  }
73
52
  setLogFormat(logFormat) {
74
- if ('format' in this.logger) {
75
- this.logger.format = getLogFormat(logFormat);
76
- }
53
+ this.format = logFormat;
77
54
  }
78
55
  }
79
- TurboWinstonLogger.default = new TurboWinstonLogger();
80
- function getLogFormat(logFormat) {
81
- return format.combine(format((info) => {
82
- if (info.stack && info.level !== 'error') {
83
- delete info.stack;
84
- }
85
- return info;
86
- })(), format.errors({ stack: true }), // Ensure errors show a stack trace
87
- format.timestamp(), logFormat === 'json' ? format.json() : format.simple());
88
- }
56
+ ConsoleTurboLogger.default = new ConsoleTurboLogger();