permaweb-deploy 3.4.1 → 3.4.3

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.
@@ -6,8 +6,8 @@ import Table from 'cli-table3';
6
6
  import { uploadFlagConfigs } from '../constants/flags.js';
7
7
  import { getWalletConfig } from '../prompts/wallet.js';
8
8
  import { extractFlags, resolveConfig } from '../utils/config-resolver.js';
9
+ import { r as runUploadWorkflow, h as hyperbeamBundlerLink } from '../chunks/upload-workflow-zlELdPNp.js';
9
10
  import { expandPath } from '../utils/path.js';
10
- import { runUploadWorkflow } from '../workflows/upload-workflow.js';
11
11
 
12
12
  class Upload extends Command {
13
13
  static args = {};
@@ -17,7 +17,8 @@ class Upload extends Command {
17
17
  "<%= config.bin %> upload --wallet ./wallet.json --deploy-folder ./dist",
18
18
  "<%= config.bin %> upload --wallet ./wallet.json --deploy-file ./dist/index.html",
19
19
  '<%= config.bin %> upload --private-key "$(cat wallet.json)" --on-demand ario --max-token-amount 1.5',
20
- "<%= config.bin %> upload --wallet ./wallet.json --uploader https://up.arweave.net"
20
+ "<%= config.bin %> upload --wallet ./wallet.json --uploader https://up.arweave.net",
21
+ "<%= config.bin %> upload --wallet ./wallet.json --uploader-type hyperbeam --uploader https://hyperbeam.example.com"
21
22
  ];
22
23
  static flags = extractFlags(uploadFlagConfigs);
23
24
  async run() {
@@ -46,10 +47,17 @@ class Upload extends Command {
46
47
  "dedupe-cache-max-entries": effectiveCacheMaxEntries,
47
48
  "deploy-file": baseConfig["deploy-file"],
48
49
  "deploy-folder": baseConfig["deploy-folder"],
50
+ "hyperbeam-ao-state-url": baseConfig["hyperbeam-ao-state-url"],
51
+ "hyperbeam-auto-fund": baseConfig["hyperbeam-auto-fund"],
52
+ "hyperbeam-fund-amount": baseConfig["hyperbeam-fund-amount"],
53
+ "hyperbeam-ledger-id": baseConfig["hyperbeam-ledger-id"],
54
+ "hyperbeam-token-id": baseConfig["hyperbeam-token-id"],
55
+ "hyperbeam-upload-path": baseConfig["hyperbeam-upload-path"],
49
56
  "max-token-amount": baseConfig["max-token-amount"],
50
57
  "on-demand": baseConfig["on-demand"],
51
58
  "sig-type": baseConfig["sig-type"],
52
- uploader: baseConfig.uploader
59
+ uploader: baseConfig.uploader,
60
+ "uploader-type": baseConfig["uploader-type"]
53
61
  };
54
62
  if (interactive) {
55
63
  this.log("");
@@ -80,31 +88,50 @@ class Upload extends Command {
80
88
  error: (msg) => this.error(msg)
81
89
  });
82
90
  this.log("");
83
- const table = new Table({
84
- head: [chalk.cyan.bold("Property"), chalk.cyan.bold("Value")],
85
- style: { head: [] }
86
- });
87
- table.push(["Tx ID", chalk.green(txOrManifestId)]);
88
- if (uploadCfg.uploader) {
89
- table.push(["Bundler service", chalk.cyan(uploadCfg.uploader)]);
90
- }
91
- table.push(["Arweave URL", chalk.yellow(`https://arweave.net/${txOrManifestId}`)]);
92
91
  const isCI = Boolean(process.env.CI);
93
- const successMessage = boxen(
94
- `${chalk.green.bold("Upload successful!")}
92
+ const bundlerLink = uploadCfg["uploader-type"] === "hyperbeam" && uploadCfg.uploader ? hyperbeamBundlerLink(uploadCfg.uploader, txOrManifestId) : void 0;
93
+ if (isCI) {
94
+ this.log("Upload successful!");
95
+ this.log("Tx ID: " + txOrManifestId);
96
+ if (uploadCfg.uploader) {
97
+ this.log("Bundler service: " + uploadCfg.uploader);
98
+ this.log("Uploader type: " + uploadCfg["uploader-type"]);
99
+ }
100
+ if (bundlerLink) {
101
+ this.log("Bundler link: " + bundlerLink);
102
+ }
103
+ this.log(`Arweave URL: https://arweave.net/${txOrManifestId}`);
104
+ } else {
105
+ const table = new Table({
106
+ head: [chalk.cyan.bold("Property"), chalk.cyan.bold("Value")],
107
+ style: { head: [] }
108
+ });
109
+ table.push(["Tx ID", chalk.green(txOrManifestId)]);
110
+ if (uploadCfg.uploader) {
111
+ table.push(
112
+ ["Bundler service", chalk.cyan(uploadCfg.uploader)],
113
+ ["Uploader type", chalk.cyan(uploadCfg["uploader-type"])]
114
+ );
115
+ }
116
+ if (bundlerLink) {
117
+ table.push(["Bundler link", chalk.yellow(bundlerLink)]);
118
+ }
119
+ table.push(["Arweave URL", chalk.yellow(`https://arweave.net/${txOrManifestId}`)]);
120
+ const successMessage = boxen(
121
+ `${chalk.green.bold("Upload successful!")}
95
122
 
96
123
  ${table.toString()}`,
97
- {
98
- borderColor: "green",
99
- borderStyle: isCI ? "single" : "round",
100
- fullscreen: isCI ? (width) => [width, 0] : void 0,
101
- padding: 1,
102
- title: chalk.bold("Permaweb Deploy"),
103
- titleAlignment: "center"
104
- }
105
- );
106
- this.log(`
124
+ {
125
+ borderColor: "green",
126
+ borderStyle: "round",
127
+ padding: 1,
128
+ title: chalk.bold("Permaweb Deploy"),
129
+ titleAlignment: "center"
130
+ }
131
+ );
132
+ this.log(`
107
133
  ${successMessage}`);
134
+ }
108
135
  } catch (error) {
109
136
  this.error(
110
137
  chalk.red(`Upload failed: ${error instanceof Error ? error.message : String(error)}`)
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../src/commands/upload.ts"],"sourcesContent":["import fs from 'node:fs'\n\nimport { Command } from '@oclif/core'\nimport boxen from 'boxen'\nimport chalk from 'chalk'\n// eslint-disable-next-line import/no-named-as-default\nimport Table from 'cli-table3'\n\nimport { type UploadConfig, uploadFlagConfigs } from '../constants/flags.js'\nimport { getWalletConfig } from '../prompts/wallet.js'\nimport { extractFlags, resolveConfig } from '../utils/config-resolver.js'\nimport { expandPath } from '../utils/path.js'\nimport { runUploadWorkflow } from '../workflows/upload-workflow.js'\n\nexport default class Upload extends Command {\n static override args = {}\n\n static override description = 'Upload a file or folder to Arweave via Turbo without updating ArNS'\n\n static override examples = [\n '<%= config.bin %> upload --wallet ./wallet.json',\n '<%= config.bin %> upload --wallet ./wallet.json --deploy-folder ./dist',\n '<%= config.bin %> upload --wallet ./wallet.json --deploy-file ./dist/index.html',\n '<%= config.bin %> upload --private-key \"$(cat wallet.json)\" --on-demand ario --max-token-amount 1.5',\n '<%= config.bin %> upload --wallet ./wallet.json --uploader https://up.arweave.net',\n ]\n\n static override flags = extractFlags(uploadFlagConfigs)\n\n public async run(): Promise<void> {\n try {\n const { flags } = await this.parse(Upload)\n\n const interactive = !flags.wallet && !flags['private-key'] && !process.env.DEPLOY_KEY?.trim()\n\n if (interactive) {\n this.log(chalk.cyan.bold('\\nInteractive upload mode\\n'))\n }\n\n const baseConfig = (await resolveConfig<typeof uploadFlagConfigs>(uploadFlagConfigs, flags, {\n interactive,\n })) as UploadConfig\n\n let walletConfig: { privateKey?: string; wallet?: string } = {\n privateKey: baseConfig['private-key'],\n wallet: baseConfig.wallet,\n }\n\n if (interactive && !baseConfig.wallet && !baseConfig['private-key']) {\n const config = await getWalletConfig()\n walletConfig = {\n privateKey: config.privateKey,\n wallet: config.wallet,\n }\n }\n\n const effectiveCacheMaxEntries = baseConfig['no-dedupe']\n ? 0\n : baseConfig['dedupe-cache-max-entries']\n\n const uploadCfg = {\n 'dedupe-cache-max-entries': effectiveCacheMaxEntries,\n 'deploy-file': baseConfig['deploy-file'],\n 'deploy-folder': baseConfig['deploy-folder'],\n 'max-token-amount': baseConfig['max-token-amount'],\n 'on-demand': baseConfig['on-demand'],\n 'sig-type': baseConfig['sig-type'],\n uploader: baseConfig.uploader,\n }\n\n if (interactive) {\n this.log('')\n }\n\n const { privateKey, wallet } = walletConfig\n const sigType = uploadCfg['sig-type']\n\n let deployKey: string\n if (wallet) {\n const walletPath = expandPath(wallet)\n if (!fs.existsSync(walletPath)) {\n this.error(`Wallet file [${wallet}] does not exist`)\n }\n\n const walletContent = fs.readFileSync(walletPath, 'utf8')\n deployKey =\n sigType === 'arweave'\n ? Buffer.from(walletContent).toString('base64')\n : walletContent.trim()\n } else if (privateKey) {\n deployKey =\n sigType === 'arweave' ? Buffer.from(privateKey).toString('base64') : privateKey.trim()\n } else {\n deployKey = process.env.DEPLOY_KEY || ''\n if (!deployKey) {\n this.error(\n 'DEPLOY_KEY environment variable not set. Use --wallet, --private-key, or set DEPLOY_KEY',\n )\n }\n }\n\n this.log(chalk.cyan.bold('\\nStarting upload...\\n'))\n\n try {\n const txOrManifestId = await runUploadWorkflow(deployKey, uploadCfg, {\n error: (msg) => this.error(msg),\n })\n\n this.log('')\n\n const table = new Table({\n head: [chalk.cyan.bold('Property'), chalk.cyan.bold('Value')],\n style: { head: [] },\n })\n\n table.push(['Tx ID', chalk.green(txOrManifestId)])\n\n if (uploadCfg.uploader) {\n table.push(['Bundler service', chalk.cyan(uploadCfg.uploader)])\n }\n\n table.push(['Arweave URL', chalk.yellow(`https://arweave.net/${txOrManifestId}`)])\n\n const isCI = Boolean(process.env.CI)\n const successMessage = boxen(\n `${chalk.green.bold('Upload successful!')}\\n\\n${table.toString()}`,\n {\n borderColor: 'green',\n borderStyle: isCI ? 'single' : 'round',\n fullscreen: isCI ? (width: number) => [width, 0] : undefined,\n padding: 1,\n title: chalk.bold('Permaweb Deploy'),\n titleAlignment: 'center',\n },\n )\n\n this.log(`\\n${successMessage}`)\n } catch (error) {\n this.error(\n chalk.red(`Upload failed: ${error instanceof Error ? error.message : String(error)}`),\n )\n }\n } catch (error) {\n if (error instanceof Error && error.name === 'ExitPromptError') {\n this.log(chalk.yellow('\\n\\nUpload cancelled'))\n this.exit(0)\n }\n\n throw error\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sources":["../../src/commands/upload.ts"],"sourcesContent":["import fs from 'node:fs'\n\nimport { Command } from '@oclif/core'\nimport boxen from 'boxen'\nimport chalk from 'chalk'\n// eslint-disable-next-line import/no-named-as-default\nimport Table from 'cli-table3'\n\nimport { type UploadConfig, uploadFlagConfigs } from '../constants/flags.js'\nimport { getWalletConfig } from '../prompts/wallet.js'\nimport { extractFlags, resolveConfig } from '../utils/config-resolver.js'\nimport { hyperbeamBundlerLink } from '../utils/hyperbeam-uploader.js'\nimport { expandPath } from '../utils/path.js'\nimport { runUploadWorkflow } from '../workflows/upload-workflow.js'\n\nexport default class Upload extends Command {\n static override args = {}\n\n static override description = 'Upload a file or folder to Arweave via Turbo without updating ArNS'\n\n static override examples = [\n '<%= config.bin %> upload --wallet ./wallet.json',\n '<%= config.bin %> upload --wallet ./wallet.json --deploy-folder ./dist',\n '<%= config.bin %> upload --wallet ./wallet.json --deploy-file ./dist/index.html',\n '<%= config.bin %> upload --private-key \"$(cat wallet.json)\" --on-demand ario --max-token-amount 1.5',\n '<%= config.bin %> upload --wallet ./wallet.json --uploader https://up.arweave.net',\n '<%= config.bin %> upload --wallet ./wallet.json --uploader-type hyperbeam --uploader https://hyperbeam.example.com',\n ]\n\n static override flags = extractFlags(uploadFlagConfigs)\n\n public async run(): Promise<void> {\n try {\n const { flags } = await this.parse(Upload)\n\n const interactive = !flags.wallet && !flags['private-key'] && !process.env.DEPLOY_KEY?.trim()\n\n if (interactive) {\n this.log(chalk.cyan.bold('\\nInteractive upload mode\\n'))\n }\n\n const baseConfig = (await resolveConfig<typeof uploadFlagConfigs>(uploadFlagConfigs, flags, {\n interactive,\n })) as UploadConfig\n\n let walletConfig: { privateKey?: string; wallet?: string } = {\n privateKey: baseConfig['private-key'],\n wallet: baseConfig.wallet,\n }\n\n if (interactive && !baseConfig.wallet && !baseConfig['private-key']) {\n const config = await getWalletConfig()\n walletConfig = {\n privateKey: config.privateKey,\n wallet: config.wallet,\n }\n }\n\n const effectiveCacheMaxEntries = baseConfig['no-dedupe']\n ? 0\n : baseConfig['dedupe-cache-max-entries']\n\n const uploadCfg = {\n 'dedupe-cache-max-entries': effectiveCacheMaxEntries,\n 'deploy-file': baseConfig['deploy-file'],\n 'deploy-folder': baseConfig['deploy-folder'],\n 'hyperbeam-ao-state-url': baseConfig['hyperbeam-ao-state-url'],\n 'hyperbeam-auto-fund': baseConfig['hyperbeam-auto-fund'],\n 'hyperbeam-fund-amount': baseConfig['hyperbeam-fund-amount'],\n 'hyperbeam-ledger-id': baseConfig['hyperbeam-ledger-id'],\n 'hyperbeam-token-id': baseConfig['hyperbeam-token-id'],\n 'hyperbeam-upload-path': baseConfig['hyperbeam-upload-path'],\n 'max-token-amount': baseConfig['max-token-amount'],\n 'on-demand': baseConfig['on-demand'],\n 'sig-type': baseConfig['sig-type'],\n uploader: baseConfig.uploader,\n 'uploader-type': baseConfig['uploader-type'],\n }\n\n if (interactive) {\n this.log('')\n }\n\n const { privateKey, wallet } = walletConfig\n const sigType = uploadCfg['sig-type']\n\n let deployKey: string\n if (wallet) {\n const walletPath = expandPath(wallet)\n if (!fs.existsSync(walletPath)) {\n this.error(`Wallet file [${wallet}] does not exist`)\n }\n\n const walletContent = fs.readFileSync(walletPath, 'utf8')\n deployKey =\n sigType === 'arweave'\n ? Buffer.from(walletContent).toString('base64')\n : walletContent.trim()\n } else if (privateKey) {\n deployKey =\n sigType === 'arweave' ? Buffer.from(privateKey).toString('base64') : privateKey.trim()\n } else {\n deployKey = process.env.DEPLOY_KEY || ''\n if (!deployKey) {\n this.error(\n 'DEPLOY_KEY environment variable not set. Use --wallet, --private-key, or set DEPLOY_KEY',\n )\n }\n }\n\n this.log(chalk.cyan.bold('\\nStarting upload...\\n'))\n\n try {\n const txOrManifestId = await runUploadWorkflow(deployKey, uploadCfg, {\n error: (msg) => this.error(msg),\n })\n\n this.log('')\n\n const isCI = Boolean(process.env.CI)\n const bundlerLink =\n uploadCfg['uploader-type'] === 'hyperbeam' && uploadCfg.uploader\n ? hyperbeamBundlerLink(uploadCfg.uploader, txOrManifestId)\n : undefined\n\n if (isCI) {\n this.log('Upload successful!')\n this.log('Tx ID: ' + txOrManifestId)\n if (uploadCfg.uploader) {\n this.log('Bundler service: ' + uploadCfg.uploader)\n this.log('Uploader type: ' + uploadCfg['uploader-type'])\n }\n\n if (bundlerLink) {\n this.log('Bundler link: ' + bundlerLink)\n }\n\n this.log(`Arweave URL: https://arweave.net/${txOrManifestId}`)\n } else {\n const table = new Table({\n head: [chalk.cyan.bold('Property'), chalk.cyan.bold('Value')],\n style: { head: [] },\n })\n\n table.push(['Tx ID', chalk.green(txOrManifestId)])\n\n if (uploadCfg.uploader) {\n table.push(\n ['Bundler service', chalk.cyan(uploadCfg.uploader)],\n ['Uploader type', chalk.cyan(uploadCfg['uploader-type'])],\n )\n }\n\n if (bundlerLink) {\n table.push(['Bundler link', chalk.yellow(bundlerLink)])\n }\n\n table.push(['Arweave URL', chalk.yellow(`https://arweave.net/${txOrManifestId}`)])\n\n const successMessage = boxen(\n `${chalk.green.bold('Upload successful!')}\\n\\n${table.toString()}`,\n {\n borderColor: 'green',\n borderStyle: 'round',\n padding: 1,\n title: chalk.bold('Permaweb Deploy'),\n titleAlignment: 'center',\n },\n )\n\n this.log(`\\n${successMessage}`)\n }\n } catch (error) {\n this.error(\n chalk.red(`Upload failed: ${error instanceof Error ? error.message : String(error)}`),\n )\n }\n } catch (error) {\n if (error instanceof Error && error.name === 'ExitPromptError') {\n this.log(chalk.yellow('\\n\\nUpload cancelled'))\n this.exit(0)\n }\n\n throw error\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -79,6 +79,45 @@ const globalFlags = {
79
79
  return target.type === "folder" ? target.path : "./dist";
80
80
  }
81
81
  }),
82
+ hyperbeamAoStateUrl: createFlagConfig({
83
+ flag: Flags.string({
84
+ default: "https://state.forward.computer",
85
+ description: "AO state endpoint used to wait for HyperBEAM auto-fund transfer assignment.",
86
+ required: false
87
+ })
88
+ }),
89
+ hyperbeamAutoFund: createFlagConfig({
90
+ flag: Flags.boolean({
91
+ default: false,
92
+ description: "Automatically fund the HyperBEAM local ledger before upload.",
93
+ required: false
94
+ })
95
+ }),
96
+ hyperbeamFundAmount: createFlagConfig({
97
+ flag: Flags.string({
98
+ description: "Optional minimum HyperBEAM local ledger balance override, in token base units.",
99
+ required: false
100
+ })
101
+ }),
102
+ hyperbeamLedgerId: createFlagConfig({
103
+ flag: Flags.string({
104
+ description: "Advanced: local HyperBEAM ledger ID to use for AO auto-funding.",
105
+ required: false
106
+ })
107
+ }),
108
+ hyperbeamTokenId: createFlagConfig({
109
+ flag: Flags.string({
110
+ description: "Advanced: AO token process ID to use for HyperBEAM auto-funding.",
111
+ required: false
112
+ })
113
+ }),
114
+ hyperbeamUploadPath: createFlagConfig({
115
+ flag: Flags.string({
116
+ default: "/~bundler@1.0/item?codec-device=ans104@1.0",
117
+ description: "HyperBEAM bundler route used when --uploader-type hyperbeam is set.",
118
+ required: false
119
+ })
120
+ }),
82
121
  // Advanced payment settings
83
122
  maxTokenAmount: createFlagConfig({
84
123
  flag: Flags.string({
@@ -150,7 +189,15 @@ const globalFlags = {
150
189
  }),
151
190
  uploader: createFlagConfig({
152
191
  flag: Flags.string({
153
- description: "Base URL of the Turbo bundler service to use (omit for ArDrive production: https://upload.ardrive.io). Examples: https://up.arweave.net (Arweave), https://upload.ardrive.dev (dev). The host must implement the Turbo bundler protocol; path/query are not required on the URL.",
192
+ description: "Base URL of the bundler service to use. For Turbo, omit for ArDrive production: https://upload.ardrive.io. For HyperBEAM, pass the node URL, for example https://hyperbeam.example.com.",
193
+ required: false
194
+ })
195
+ }),
196
+ uploaderType: createFlagConfig({
197
+ flag: Flags.string({
198
+ default: "turbo",
199
+ description: "Uploader protocol to use. turbo uses the Turbo bundler API; hyperbeam signs ANS-104 items and posts them to a HyperBEAM bundler route.",
200
+ options: ["turbo", "hyperbeam"],
154
201
  required: false
155
202
  })
156
203
  }),
@@ -176,6 +223,12 @@ const deployFlags = {
176
223
  "dedupe-cache-max-entries": globalFlags.dedupeCacheMaxEntries.flag,
177
224
  "deploy-file": globalFlags.deployFile.flag,
178
225
  "deploy-folder": globalFlags.deployFolder.flag,
226
+ "hyperbeam-ao-state-url": globalFlags.hyperbeamAoStateUrl.flag,
227
+ "hyperbeam-auto-fund": globalFlags.hyperbeamAutoFund.flag,
228
+ "hyperbeam-fund-amount": globalFlags.hyperbeamFundAmount.flag,
229
+ "hyperbeam-ledger-id": globalFlags.hyperbeamLedgerId.flag,
230
+ "hyperbeam-token-id": globalFlags.hyperbeamTokenId.flag,
231
+ "hyperbeam-upload-path": globalFlags.hyperbeamUploadPath.flag,
179
232
  "max-token-amount": globalFlags.maxTokenAmount.flag,
180
233
  "no-dedupe": globalFlags.noDedupe.flag,
181
234
  "on-demand": globalFlags.onDemand.flag,
@@ -184,6 +237,7 @@ const deployFlags = {
184
237
  "ttl-seconds": globalFlags.ttlSeconds.flag,
185
238
  undername: globalFlags.undername.flag,
186
239
  uploader: globalFlags.uploader.flag,
240
+ "uploader-type": globalFlags.uploaderType.flag,
187
241
  wallet: globalFlags.wallet.flag
188
242
  };
189
243
  const arnsFlags = {
@@ -203,6 +257,12 @@ const deployFlagConfigs = {
203
257
  "dedupe-cache-max-entries": globalFlags.dedupeCacheMaxEntries,
204
258
  "deploy-file": globalFlags.deployFile,
205
259
  "deploy-folder": globalFlags.deployFolder,
260
+ "hyperbeam-ao-state-url": globalFlags.hyperbeamAoStateUrl,
261
+ "hyperbeam-auto-fund": globalFlags.hyperbeamAutoFund,
262
+ "hyperbeam-fund-amount": globalFlags.hyperbeamFundAmount,
263
+ "hyperbeam-ledger-id": globalFlags.hyperbeamLedgerId,
264
+ "hyperbeam-token-id": globalFlags.hyperbeamTokenId,
265
+ "hyperbeam-upload-path": globalFlags.hyperbeamUploadPath,
206
266
  "max-token-amount": globalFlags.maxTokenAmount,
207
267
  "no-dedupe": globalFlags.noDedupe,
208
268
  "on-demand": globalFlags.onDemand,
@@ -211,18 +271,26 @@ const deployFlagConfigs = {
211
271
  "ttl-seconds": globalFlags.ttlSeconds,
212
272
  undername: globalFlags.undername,
213
273
  uploader: globalFlags.uploader,
274
+ "uploader-type": globalFlags.uploaderType,
214
275
  wallet: globalFlags.wallet
215
276
  };
216
277
  const uploadFlagConfigs = {
217
278
  "dedupe-cache-max-entries": globalFlags.dedupeCacheMaxEntries,
218
279
  "deploy-file": globalFlags.deployFile,
219
280
  "deploy-folder": globalFlags.deployFolder,
281
+ "hyperbeam-ao-state-url": globalFlags.hyperbeamAoStateUrl,
282
+ "hyperbeam-auto-fund": globalFlags.hyperbeamAutoFund,
283
+ "hyperbeam-fund-amount": globalFlags.hyperbeamFundAmount,
284
+ "hyperbeam-ledger-id": globalFlags.hyperbeamLedgerId,
285
+ "hyperbeam-token-id": globalFlags.hyperbeamTokenId,
286
+ "hyperbeam-upload-path": globalFlags.hyperbeamUploadPath,
220
287
  "max-token-amount": globalFlags.maxTokenAmount,
221
288
  "no-dedupe": globalFlags.noDedupe,
222
289
  "on-demand": globalFlags.onDemand,
223
290
  "private-key": globalFlags.privateKey,
224
291
  "sig-type": globalFlags.sigType,
225
292
  uploader: globalFlags.uploader,
293
+ "uploader-type": globalFlags.uploaderType,
226
294
  wallet: globalFlags.wallet
227
295
  };
228
296
 
@@ -1 +1 @@
1
- {"version":3,"file":"flags.js","sources":["../../src/constants/flags.ts"],"sourcesContent":["import { ARIO_MAINNET_PROCESS_ID } from '@ar.io/sdk'\nimport { Flags } from '@oclif/core'\n\nimport { promptArioProcess, promptArnsName } from '../prompts/arns.js'\nimport { promptDeployTarget } from '../prompts/deployment.js'\nimport { promptSignerType } from '../prompts/wallet.js'\nimport { createFlagConfig, type ResolvedConfig } from '../utils/config-resolver.js'\nimport { TTL_MAX, TTL_MIN } from '../utils/constants.js'\nimport {\n resolveArioProcess,\n validateArioProcess,\n validateFileExists,\n validateFolderExists,\n validateTtl,\n validateUndername,\n} from '../utils/validators.js'\nimport { DEFAULT_CACHE_MAX_ENTRIES } from './cache.js'\n\n/**\n * Global flag definitions - single source of truth for all flags\n * Each flag includes its oclif definition and optional prompt function\n */\nexport const globalFlags = {\n arioProcess: createFlagConfig<string>({\n flag: Flags.string({\n char: 'p',\n default: ARIO_MAINNET_PROCESS_ID,\n description: 'The ARIO process to use (mainnet, testnet, or process ID)',\n async parse(input) {\n const validation = validateArioProcess(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return resolveArioProcess(input)\n },\n required: false,\n }),\n prompt: promptArioProcess,\n }),\n arnsName: createFlagConfig<string>({\n flag: Flags.string({\n char: 'n',\n description: 'The ArNS name to deploy to',\n required: false,\n }),\n prompt: promptArnsName,\n triggersInteractive: true,\n }),\n dedupeCacheMaxEntries: createFlagConfig<number>({\n flag: Flags.integer({\n default: DEFAULT_CACHE_MAX_ENTRIES,\n description: 'Maximum number of entries to keep in the dedupe cache (LRU)',\n min: 0,\n required: false,\n }),\n }),\n deployFile: createFlagConfig<string | undefined>({\n flag: Flags.string({\n char: 'f',\n description: 'File to deploy (overrides deploy-folder)',\n async parse(input) {\n const validation = validateFileExists(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n async prompt() {\n const target = await promptDeployTarget()\n return target.type === 'file' ? target.path : undefined\n },\n }),\n deployFolder: createFlagConfig<string>({\n flag: Flags.string({\n char: 'd',\n default: './dist',\n description: 'Folder to deploy',\n async parse(input) {\n const validation = validateFolderExists(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n async prompt() {\n const target = await promptDeployTarget()\n return target.type === 'folder' ? target.path : './dist'\n },\n }),\n // Advanced payment settings\n maxTokenAmount: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description: 'Maximum token amount for on-demand payment',\n required: false,\n }),\n }),\n noDedupe: createFlagConfig<boolean>({\n flag: Flags.boolean({\n default: false,\n description: 'Disable deduplication (do not cache or reuse previous uploads)',\n required: false,\n }),\n }),\n onDemand: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description: 'Enable on-demand payment with specified token (ario or base-eth)',\n options: ['ario', 'base-eth'],\n required: false,\n }),\n }),\n privateKey: createFlagConfig<string | undefined>({\n flag: Flags.string({\n char: 'k',\n description: 'Private key or JWK JSON string (alternative to --wallet)',\n exclusive: ['wallet'],\n required: false,\n }),\n }),\n sigType: createFlagConfig<string>({\n flag: Flags.string({\n char: 's',\n default: 'arweave',\n description: 'Signer type for deployment',\n options: ['arweave', 'ethereum', 'polygon', 'kyve'],\n required: false,\n }),\n prompt: promptSignerType,\n }),\n ttlSeconds: createFlagConfig<string>({\n flag: Flags.string({\n char: 't',\n default: '60',\n description: `ArNS TTL in seconds (${TTL_MIN}-${TTL_MAX})`,\n async parse(input) {\n const validation = validateTtl(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n }),\n undername: createFlagConfig<string>({\n flag: Flags.string({\n char: 'u',\n default: '@',\n description: 'ANT undername to update',\n async parse(input) {\n const validation = validateUndername(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n }),\n uploader: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description:\n 'Base URL of the Turbo bundler service to use (omit for ArDrive production: https://upload.ardrive.io). Examples: https://up.arweave.net (Arweave), https://upload.ardrive.dev (dev). The host must implement the Turbo bundler protocol; path/query are not required on the URL.',\n required: false,\n }),\n }),\n wallet: createFlagConfig<string | undefined>({\n flag: Flags.string({\n char: 'w',\n description: 'Path to wallet file (JWK for Arweave, private key for others)',\n exclusive: ['private-key'],\n async parse(input) {\n const validation = validateFileExists(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n }),\n}\n\n/**\n * Complete set of flags for the deploy command\n */\nexport const deployFlags = {\n 'ario-process': globalFlags.arioProcess.flag,\n 'arns-name': globalFlags.arnsName.flag,\n 'dedupe-cache-max-entries': globalFlags.dedupeCacheMaxEntries.flag,\n 'deploy-file': globalFlags.deployFile.flag,\n 'deploy-folder': globalFlags.deployFolder.flag,\n 'max-token-amount': globalFlags.maxTokenAmount.flag,\n 'no-dedupe': globalFlags.noDedupe.flag,\n 'on-demand': globalFlags.onDemand.flag,\n 'private-key': globalFlags.privateKey.flag,\n 'sig-type': globalFlags.sigType.flag,\n 'ttl-seconds': globalFlags.ttlSeconds.flag,\n undername: globalFlags.undername.flag,\n uploader: globalFlags.uploader.flag,\n wallet: globalFlags.wallet.flag,\n}\n\n/**\n * ArNS-specific flags (subset of deploy flags)\n */\nexport const arnsFlags = {\n 'ario-process': globalFlags.arioProcess.flag,\n 'arns-name': globalFlags.arnsName.flag,\n 'ttl-seconds': globalFlags.ttlSeconds.flag,\n undername: globalFlags.undername.flag,\n}\n\n/**\n * Wallet/authentication flags (subset of deploy flags)\n */\nexport const walletFlags = {\n 'private-key': globalFlags.privateKey.flag,\n 'sig-type': globalFlags.sigType.flag,\n wallet: globalFlags.wallet.flag,\n}\n\n/**\n * Deploy command configuration type\n */\nexport interface DeployConfig {\n 'ario-process': string\n 'arns-name': string\n 'dedupe-cache-max-entries': number\n 'deploy-file'?: string\n 'deploy-folder': string\n 'max-token-amount'?: string\n 'no-dedupe': boolean\n 'on-demand'?: string\n 'private-key'?: string\n 'sig-type': string\n 'ttl-seconds': string\n undername: string\n uploader?: string\n wallet?: string\n}\n\n/**\n * Deploy command flag configurations\n * Maps kebab-case flag names to their camelCase globalFlags definitions\n */\nexport const deployFlagConfigs = {\n 'ario-process': globalFlags.arioProcess,\n 'arns-name': globalFlags.arnsName,\n 'dedupe-cache-max-entries': globalFlags.dedupeCacheMaxEntries,\n 'deploy-file': globalFlags.deployFile,\n 'deploy-folder': globalFlags.deployFolder,\n 'max-token-amount': globalFlags.maxTokenAmount,\n 'no-dedupe': globalFlags.noDedupe,\n 'on-demand': globalFlags.onDemand,\n 'private-key': globalFlags.privateKey,\n 'sig-type': globalFlags.sigType,\n 'ttl-seconds': globalFlags.ttlSeconds,\n undername: globalFlags.undername,\n uploader: globalFlags.uploader,\n wallet: globalFlags.wallet,\n} as const\n\n/**\n * Upload command — file/folder to Arweave via Turbo without updating ArNS\n */\nexport const uploadFlagConfigs = {\n 'dedupe-cache-max-entries': globalFlags.dedupeCacheMaxEntries,\n 'deploy-file': globalFlags.deployFile,\n 'deploy-folder': globalFlags.deployFolder,\n 'max-token-amount': globalFlags.maxTokenAmount,\n 'no-dedupe': globalFlags.noDedupe,\n 'on-demand': globalFlags.onDemand,\n 'private-key': globalFlags.privateKey,\n 'sig-type': globalFlags.sigType,\n uploader: globalFlags.uploader,\n wallet: globalFlags.wallet,\n} as const\n\nexport type UploadConfig = ResolvedConfig<typeof uploadFlagConfigs>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flags.js","sources":["../../src/constants/flags.ts"],"sourcesContent":["import { ARIO_MAINNET_PROCESS_ID } from '@ar.io/sdk'\nimport { Flags } from '@oclif/core'\n\nimport { promptArioProcess, promptArnsName } from '../prompts/arns.js'\nimport { promptDeployTarget } from '../prompts/deployment.js'\nimport { promptSignerType } from '../prompts/wallet.js'\nimport { createFlagConfig, type ResolvedConfig } from '../utils/config-resolver.js'\nimport { TTL_MAX, TTL_MIN } from '../utils/constants.js'\nimport {\n resolveArioProcess,\n validateArioProcess,\n validateFileExists,\n validateFolderExists,\n validateTtl,\n validateUndername,\n} from '../utils/validators.js'\nimport { DEFAULT_CACHE_MAX_ENTRIES } from './cache.js'\n\n/**\n * Global flag definitions - single source of truth for all flags\n * Each flag includes its oclif definition and optional prompt function\n */\nexport const globalFlags = {\n arioProcess: createFlagConfig<string>({\n flag: Flags.string({\n char: 'p',\n default: ARIO_MAINNET_PROCESS_ID,\n description: 'The ARIO process to use (mainnet, testnet, or process ID)',\n async parse(input) {\n const validation = validateArioProcess(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return resolveArioProcess(input)\n },\n required: false,\n }),\n prompt: promptArioProcess,\n }),\n arnsName: createFlagConfig<string>({\n flag: Flags.string({\n char: 'n',\n description: 'The ArNS name to deploy to',\n required: false,\n }),\n prompt: promptArnsName,\n triggersInteractive: true,\n }),\n dedupeCacheMaxEntries: createFlagConfig<number>({\n flag: Flags.integer({\n default: DEFAULT_CACHE_MAX_ENTRIES,\n description: 'Maximum number of entries to keep in the dedupe cache (LRU)',\n min: 0,\n required: false,\n }),\n }),\n deployFile: createFlagConfig<string | undefined>({\n flag: Flags.string({\n char: 'f',\n description: 'File to deploy (overrides deploy-folder)',\n async parse(input) {\n const validation = validateFileExists(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n async prompt() {\n const target = await promptDeployTarget()\n return target.type === 'file' ? target.path : undefined\n },\n }),\n deployFolder: createFlagConfig<string>({\n flag: Flags.string({\n char: 'd',\n default: './dist',\n description: 'Folder to deploy',\n async parse(input) {\n const validation = validateFolderExists(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n async prompt() {\n const target = await promptDeployTarget()\n return target.type === 'folder' ? target.path : './dist'\n },\n }),\n hyperbeamAoStateUrl: createFlagConfig<string>({\n flag: Flags.string({\n default: 'https://state.forward.computer',\n description: 'AO state endpoint used to wait for HyperBEAM auto-fund transfer assignment.',\n required: false,\n }),\n }),\n hyperbeamAutoFund: createFlagConfig<boolean>({\n flag: Flags.boolean({\n default: false,\n description: 'Automatically fund the HyperBEAM local ledger before upload.',\n required: false,\n }),\n }),\n hyperbeamFundAmount: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description: 'Optional minimum HyperBEAM local ledger balance override, in token base units.',\n required: false,\n }),\n }),\n hyperbeamLedgerId: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description: 'Advanced: local HyperBEAM ledger ID to use for AO auto-funding.',\n required: false,\n }),\n }),\n hyperbeamTokenId: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description: 'Advanced: AO token process ID to use for HyperBEAM auto-funding.',\n required: false,\n }),\n }),\n hyperbeamUploadPath: createFlagConfig<string>({\n flag: Flags.string({\n default: '/~bundler@1.0/item?codec-device=ans104@1.0',\n description: 'HyperBEAM bundler route used when --uploader-type hyperbeam is set.',\n required: false,\n }),\n }),\n // Advanced payment settings\n maxTokenAmount: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description: 'Maximum token amount for on-demand payment',\n required: false,\n }),\n }),\n noDedupe: createFlagConfig<boolean>({\n flag: Flags.boolean({\n default: false,\n description: 'Disable deduplication (do not cache or reuse previous uploads)',\n required: false,\n }),\n }),\n onDemand: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description: 'Enable on-demand payment with specified token (ario or base-eth)',\n options: ['ario', 'base-eth'],\n required: false,\n }),\n }),\n privateKey: createFlagConfig<string | undefined>({\n flag: Flags.string({\n char: 'k',\n description: 'Private key or JWK JSON string (alternative to --wallet)',\n exclusive: ['wallet'],\n required: false,\n }),\n }),\n sigType: createFlagConfig<string>({\n flag: Flags.string({\n char: 's',\n default: 'arweave',\n description: 'Signer type for deployment',\n options: ['arweave', 'ethereum', 'polygon', 'kyve'],\n required: false,\n }),\n prompt: promptSignerType,\n }),\n ttlSeconds: createFlagConfig<string>({\n flag: Flags.string({\n char: 't',\n default: '60',\n description: `ArNS TTL in seconds (${TTL_MIN}-${TTL_MAX})`,\n async parse(input) {\n const validation = validateTtl(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n }),\n undername: createFlagConfig<string>({\n flag: Flags.string({\n char: 'u',\n default: '@',\n description: 'ANT undername to update',\n async parse(input) {\n const validation = validateUndername(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n }),\n uploader: createFlagConfig<string | undefined>({\n flag: Flags.string({\n description:\n 'Base URL of the bundler service to use. For Turbo, omit for ArDrive production: https://upload.ardrive.io. For HyperBEAM, pass the node URL, for example https://hyperbeam.example.com.',\n required: false,\n }),\n }),\n uploaderType: createFlagConfig<string>({\n flag: Flags.string({\n default: 'turbo',\n description:\n 'Uploader protocol to use. turbo uses the Turbo bundler API; hyperbeam signs ANS-104 items and posts them to a HyperBEAM bundler route.',\n options: ['turbo', 'hyperbeam'],\n required: false,\n }),\n }),\n wallet: createFlagConfig<string | undefined>({\n flag: Flags.string({\n char: 'w',\n description: 'Path to wallet file (JWK for Arweave, private key for others)',\n exclusive: ['private-key'],\n async parse(input) {\n const validation = validateFileExists(input)\n if (validation !== true) {\n throw new Error(validation)\n }\n\n return input\n },\n required: false,\n }),\n }),\n}\n\n/**\n * Complete set of flags for the deploy command\n */\nexport const deployFlags = {\n 'ario-process': globalFlags.arioProcess.flag,\n 'arns-name': globalFlags.arnsName.flag,\n 'dedupe-cache-max-entries': globalFlags.dedupeCacheMaxEntries.flag,\n 'deploy-file': globalFlags.deployFile.flag,\n 'deploy-folder': globalFlags.deployFolder.flag,\n 'hyperbeam-ao-state-url': globalFlags.hyperbeamAoStateUrl.flag,\n 'hyperbeam-auto-fund': globalFlags.hyperbeamAutoFund.flag,\n 'hyperbeam-fund-amount': globalFlags.hyperbeamFundAmount.flag,\n 'hyperbeam-ledger-id': globalFlags.hyperbeamLedgerId.flag,\n 'hyperbeam-token-id': globalFlags.hyperbeamTokenId.flag,\n 'hyperbeam-upload-path': globalFlags.hyperbeamUploadPath.flag,\n 'max-token-amount': globalFlags.maxTokenAmount.flag,\n 'no-dedupe': globalFlags.noDedupe.flag,\n 'on-demand': globalFlags.onDemand.flag,\n 'private-key': globalFlags.privateKey.flag,\n 'sig-type': globalFlags.sigType.flag,\n 'ttl-seconds': globalFlags.ttlSeconds.flag,\n undername: globalFlags.undername.flag,\n uploader: globalFlags.uploader.flag,\n 'uploader-type': globalFlags.uploaderType.flag,\n wallet: globalFlags.wallet.flag,\n}\n\n/**\n * ArNS-specific flags (subset of deploy flags)\n */\nexport const arnsFlags = {\n 'ario-process': globalFlags.arioProcess.flag,\n 'arns-name': globalFlags.arnsName.flag,\n 'ttl-seconds': globalFlags.ttlSeconds.flag,\n undername: globalFlags.undername.flag,\n}\n\n/**\n * Wallet/authentication flags (subset of deploy flags)\n */\nexport const walletFlags = {\n 'private-key': globalFlags.privateKey.flag,\n 'sig-type': globalFlags.sigType.flag,\n wallet: globalFlags.wallet.flag,\n}\n\n/**\n * Deploy command configuration type\n */\nexport interface DeployConfig {\n 'ario-process': string\n 'arns-name': string\n 'dedupe-cache-max-entries': number\n 'deploy-file'?: string\n 'deploy-folder': string\n 'hyperbeam-ao-state-url': string\n 'hyperbeam-auto-fund': boolean\n 'hyperbeam-fund-amount'?: string\n 'hyperbeam-ledger-id'?: string\n 'hyperbeam-token-id'?: string\n 'hyperbeam-upload-path': string\n 'max-token-amount'?: string\n 'no-dedupe': boolean\n 'on-demand'?: string\n 'private-key'?: string\n 'sig-type': string\n 'ttl-seconds': string\n undername: string\n uploader?: string\n 'uploader-type': string\n wallet?: string\n}\n\n/**\n * Deploy command flag configurations\n * Maps kebab-case flag names to their camelCase globalFlags definitions\n */\nexport const deployFlagConfigs = {\n 'ario-process': globalFlags.arioProcess,\n 'arns-name': globalFlags.arnsName,\n 'dedupe-cache-max-entries': globalFlags.dedupeCacheMaxEntries,\n 'deploy-file': globalFlags.deployFile,\n 'deploy-folder': globalFlags.deployFolder,\n 'hyperbeam-ao-state-url': globalFlags.hyperbeamAoStateUrl,\n 'hyperbeam-auto-fund': globalFlags.hyperbeamAutoFund,\n 'hyperbeam-fund-amount': globalFlags.hyperbeamFundAmount,\n 'hyperbeam-ledger-id': globalFlags.hyperbeamLedgerId,\n 'hyperbeam-token-id': globalFlags.hyperbeamTokenId,\n 'hyperbeam-upload-path': globalFlags.hyperbeamUploadPath,\n 'max-token-amount': globalFlags.maxTokenAmount,\n 'no-dedupe': globalFlags.noDedupe,\n 'on-demand': globalFlags.onDemand,\n 'private-key': globalFlags.privateKey,\n 'sig-type': globalFlags.sigType,\n 'ttl-seconds': globalFlags.ttlSeconds,\n undername: globalFlags.undername,\n uploader: globalFlags.uploader,\n 'uploader-type': globalFlags.uploaderType,\n wallet: globalFlags.wallet,\n} as const\n\n/**\n * Upload command — file/folder to Arweave via Turbo without updating ArNS\n */\nexport const uploadFlagConfigs = {\n 'dedupe-cache-max-entries': globalFlags.dedupeCacheMaxEntries,\n 'deploy-file': globalFlags.deployFile,\n 'deploy-folder': globalFlags.deployFolder,\n 'hyperbeam-ao-state-url': globalFlags.hyperbeamAoStateUrl,\n 'hyperbeam-auto-fund': globalFlags.hyperbeamAutoFund,\n 'hyperbeam-fund-amount': globalFlags.hyperbeamFundAmount,\n 'hyperbeam-ledger-id': globalFlags.hyperbeamLedgerId,\n 'hyperbeam-token-id': globalFlags.hyperbeamTokenId,\n 'hyperbeam-upload-path': globalFlags.hyperbeamUploadPath,\n 'max-token-amount': globalFlags.maxTokenAmount,\n 'no-dedupe': globalFlags.noDedupe,\n 'on-demand': globalFlags.onDemand,\n 'private-key': globalFlags.privateKey,\n 'sig-type': globalFlags.sigType,\n uploader: globalFlags.uploader,\n 'uploader-type': globalFlags.uploaderType,\n wallet: globalFlags.wallet,\n} as const\n\nexport type UploadConfig = ResolvedConfig<typeof uploadFlagConfigs>\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAiBrC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,OAAgB,IAAI,KAAK;IAEzB,OAAgB,WAAW,SAA4C;IAEvE,OAAgB,QAAQ,WAWvB;IAED,OAAgB,KAAK,sBAAkC;IAE1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkNlC"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAkBrC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,OAAgB,IAAI,KAAK;IAEzB,OAAgB,WAAW,SAA4C;IAEvE,OAAgB,QAAQ,WAYvB;IAED,OAAgB,KAAK,sBAAkC;IAE1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuPlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/commands/upload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAYrC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,OAAgB,IAAI,KAAK;IAEzB,OAAgB,WAAW,SAAuE;IAElG,OAAgB,QAAQ,WAMvB;IAED,OAAgB,KAAK,sBAAkC;IAE1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0HlC"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/commands/upload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAarC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,OAAgB,IAAI,KAAK;IAEzB,OAAgB,WAAW,SAAuE;IAElG,OAAgB,QAAQ,WAOvB;IAED,OAAgB,KAAK,sBAAkC;IAE1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2JlC"}
@@ -9,6 +9,12 @@ export declare const globalFlags: {
9
9
  dedupeCacheMaxEntries: import("../utils/config-resolver.js").FlagConfig<number, any>;
10
10
  deployFile: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
11
11
  deployFolder: import("../utils/config-resolver.js").FlagConfig<string, any>;
12
+ hyperbeamAoStateUrl: import("../utils/config-resolver.js").FlagConfig<string, any>;
13
+ hyperbeamAutoFund: import("../utils/config-resolver.js").FlagConfig<boolean, any>;
14
+ hyperbeamFundAmount: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
15
+ hyperbeamLedgerId: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
16
+ hyperbeamTokenId: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
17
+ hyperbeamUploadPath: import("../utils/config-resolver.js").FlagConfig<string, any>;
12
18
  maxTokenAmount: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
13
19
  noDedupe: import("../utils/config-resolver.js").FlagConfig<boolean, any>;
14
20
  onDemand: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
@@ -17,6 +23,7 @@ export declare const globalFlags: {
17
23
  ttlSeconds: import("../utils/config-resolver.js").FlagConfig<string, any>;
18
24
  undername: import("../utils/config-resolver.js").FlagConfig<string, any>;
19
25
  uploader: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
26
+ uploaderType: import("../utils/config-resolver.js").FlagConfig<string, any>;
20
27
  wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
21
28
  };
22
29
  /**
@@ -28,6 +35,12 @@ export declare const deployFlags: {
28
35
  'dedupe-cache-max-entries': any;
29
36
  'deploy-file': any;
30
37
  'deploy-folder': any;
38
+ 'hyperbeam-ao-state-url': any;
39
+ 'hyperbeam-auto-fund': any;
40
+ 'hyperbeam-fund-amount': any;
41
+ 'hyperbeam-ledger-id': any;
42
+ 'hyperbeam-token-id': any;
43
+ 'hyperbeam-upload-path': any;
31
44
  'max-token-amount': any;
32
45
  'no-dedupe': any;
33
46
  'on-demand': any;
@@ -36,6 +49,7 @@ export declare const deployFlags: {
36
49
  'ttl-seconds': any;
37
50
  undername: any;
38
51
  uploader: any;
52
+ 'uploader-type': any;
39
53
  wallet: any;
40
54
  };
41
55
  /**
@@ -64,6 +78,12 @@ export interface DeployConfig {
64
78
  'dedupe-cache-max-entries': number;
65
79
  'deploy-file'?: string;
66
80
  'deploy-folder': string;
81
+ 'hyperbeam-ao-state-url': string;
82
+ 'hyperbeam-auto-fund': boolean;
83
+ 'hyperbeam-fund-amount'?: string;
84
+ 'hyperbeam-ledger-id'?: string;
85
+ 'hyperbeam-token-id'?: string;
86
+ 'hyperbeam-upload-path': string;
67
87
  'max-token-amount'?: string;
68
88
  'no-dedupe': boolean;
69
89
  'on-demand'?: string;
@@ -72,6 +92,7 @@ export interface DeployConfig {
72
92
  'ttl-seconds': string;
73
93
  undername: string;
74
94
  uploader?: string;
95
+ 'uploader-type': string;
75
96
  wallet?: string;
76
97
  }
77
98
  /**
@@ -84,6 +105,12 @@ export declare const deployFlagConfigs: {
84
105
  readonly 'dedupe-cache-max-entries': import("../utils/config-resolver.js").FlagConfig<number, any>;
85
106
  readonly 'deploy-file': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
86
107
  readonly 'deploy-folder': import("../utils/config-resolver.js").FlagConfig<string, any>;
108
+ readonly 'hyperbeam-ao-state-url': import("../utils/config-resolver.js").FlagConfig<string, any>;
109
+ readonly 'hyperbeam-auto-fund': import("../utils/config-resolver.js").FlagConfig<boolean, any>;
110
+ readonly 'hyperbeam-fund-amount': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
111
+ readonly 'hyperbeam-ledger-id': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
112
+ readonly 'hyperbeam-token-id': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
113
+ readonly 'hyperbeam-upload-path': import("../utils/config-resolver.js").FlagConfig<string, any>;
87
114
  readonly 'max-token-amount': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
88
115
  readonly 'no-dedupe': import("../utils/config-resolver.js").FlagConfig<boolean, any>;
89
116
  readonly 'on-demand': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
@@ -92,6 +119,7 @@ export declare const deployFlagConfigs: {
92
119
  readonly 'ttl-seconds': import("../utils/config-resolver.js").FlagConfig<string, any>;
93
120
  readonly undername: import("../utils/config-resolver.js").FlagConfig<string, any>;
94
121
  readonly uploader: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
122
+ readonly 'uploader-type': import("../utils/config-resolver.js").FlagConfig<string, any>;
95
123
  readonly wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
96
124
  };
97
125
  /**
@@ -101,12 +129,19 @@ export declare const uploadFlagConfigs: {
101
129
  readonly 'dedupe-cache-max-entries': import("../utils/config-resolver.js").FlagConfig<number, any>;
102
130
  readonly 'deploy-file': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
103
131
  readonly 'deploy-folder': import("../utils/config-resolver.js").FlagConfig<string, any>;
132
+ readonly 'hyperbeam-ao-state-url': import("../utils/config-resolver.js").FlagConfig<string, any>;
133
+ readonly 'hyperbeam-auto-fund': import("../utils/config-resolver.js").FlagConfig<boolean, any>;
134
+ readonly 'hyperbeam-fund-amount': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
135
+ readonly 'hyperbeam-ledger-id': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
136
+ readonly 'hyperbeam-token-id': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
137
+ readonly 'hyperbeam-upload-path': import("../utils/config-resolver.js").FlagConfig<string, any>;
104
138
  readonly 'max-token-amount': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
105
139
  readonly 'no-dedupe': import("../utils/config-resolver.js").FlagConfig<boolean, any>;
106
140
  readonly 'on-demand': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
107
141
  readonly 'private-key': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
108
142
  readonly 'sig-type': import("../utils/config-resolver.js").FlagConfig<string, any>;
109
143
  readonly uploader: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
144
+ readonly 'uploader-type': import("../utils/config-resolver.js").FlagConfig<string, any>;
110
145
  readonly wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
111
146
  };
112
147
  export type UploadConfig = ResolvedConfig<typeof uploadFlagConfigs>;
@@ -1 +1 @@
1
- {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../src/constants/flags.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAYnF;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAwKvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAevB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;CAKrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAIvB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,0BAA0B,EAAE,MAAM,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAepB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../src/constants/flags.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAYnF;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CAwNvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CAsBvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;CAKrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAIvB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,0BAA0B,EAAE,MAAM,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,wBAAwB,EAAE,MAAM,CAAA;IAChC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAsBpB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAkBpB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hyperbeam-uploader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperbeam-uploader.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/__tests__/hyperbeam-uploader.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import { type FundingResult, type HyperbalanceProfile } from 'hyperbalance';
2
+ export interface UploadFileArgs {
3
+ dataItemOpts?: {
4
+ tags?: Array<{
5
+ name: string;
6
+ value: string;
7
+ }>;
8
+ };
9
+ file?: string | Buffer;
10
+ fileSizeFactory?: () => number;
11
+ fileStreamFactory?: () => unknown;
12
+ fundingMode?: unknown;
13
+ }
14
+ export interface UploadClient {
15
+ uploadFile: (args: UploadFileArgs) => Promise<{
16
+ id?: string;
17
+ }>;
18
+ }
19
+ export interface HyperbeamBundlerOptions {
20
+ autoFund?: HyperbeamBundlerAutoFundOptions;
21
+ deployKey: string;
22
+ uploadPath: string;
23
+ uploader: string;
24
+ }
25
+ export interface HyperbeamAutoFundOptions {
26
+ aoPollMs?: number;
27
+ aoStateUrl?: string;
28
+ aoTimeoutMs?: number;
29
+ deployKey: string;
30
+ ledgerId?: string;
31
+ minimumBalance: bigint;
32
+ tokenId?: string;
33
+ uploader: string;
34
+ }
35
+ export interface HyperbeamBundlerAutoFundOptions {
36
+ aoPollMs?: number;
37
+ aoStateUrl?: string;
38
+ aoTimeoutMs?: number;
39
+ deployKey: string;
40
+ ledgerId?: string;
41
+ minimumBalance?: bigint;
42
+ quoteAction?: string;
43
+ tokenId?: string;
44
+ uploader: string;
45
+ }
46
+ export declare function parseHyperbeamFundAmount(value: string): bigint;
47
+ export declare function autoFundHyperbeamLedger(options: HyperbeamAutoFundOptions): Promise<FundingResult>;
48
+ export declare function autoFundQuotedHyperbeamLedger(options: {
49
+ signedBytes: number;
50
+ } & HyperbeamBundlerAutoFundOptions): Promise<FundingResult>;
51
+ export declare function hyperbeamBundlerLink(uploader: string, id: string): string;
52
+ export declare class HyperbeamBundlerClient implements UploadClient {
53
+ private readonly autoFund?;
54
+ private readonly signer;
55
+ private readonly uploader;
56
+ private readonly uploadUrl;
57
+ constructor({ autoFund, deployKey, uploadPath, uploader }: HyperbeamBundlerOptions);
58
+ uploadFile(args: UploadFileArgs): Promise<{
59
+ id: string;
60
+ }>;
61
+ private paymentHint;
62
+ }
63
+ export declare function hyperbeamAoFundingHint(profile: HyperbalanceProfile): string | undefined;
64
+ //# sourceMappingURL=hyperbeam-uploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperbeam-uploader.d.ts","sourceRoot":"","sources":["../../../src/utils/hyperbeam-uploader.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,mBAAmB,EAEzB,MAAM,cAAc,CAAA;AAiBrB,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;IAChE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAA;IACjC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/D;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,+BAA+B,CAAA;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAsDD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,aAAa,CAAC,CAQxB;AA8CD,wBAAsB,6BAA6B,CACjD,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,+BAA+B,GACjE,OAAO,CAAC,aAAa,CAAC,CAmCxB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGzE;AAgBD,qBAAa,sBAAuB,YAAW,YAAY;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEtB,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,uBAAuB;IAW5E,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;YA+CjD,WAAW;CAS1B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAyBvF"}
@@ -1,5 +1,6 @@
1
- import { OnDemandFunding, type TurboAuthenticatedClient } from '@ardrive/turbo-sdk';
1
+ import { OnDemandFunding } from '@ardrive/turbo-sdk';
2
2
  import { type TransactionCache } from './cache.js';
3
+ import type { UploadClient } from './hyperbeam-uploader.js';
3
4
  export interface UploadResult {
4
5
  cacheHit: boolean;
5
6
  transactionId: string;
@@ -13,7 +14,7 @@ export interface FolderUploadResult extends UploadResult {
13
14
  /** Number of files that were uploaded */
14
15
  uploaded: number;
15
16
  }
16
- export declare function uploadFile(turbo: TurboAuthenticatedClient, filePath: string, options?: {
17
+ export declare function uploadFile(turbo: UploadClient, filePath: string, options?: {
17
18
  cache?: TransactionCache;
18
19
  fundingMode?: OnDemandFunding;
19
20
  }): Promise<UploadResult>;
@@ -21,8 +22,13 @@ export declare function uploadFile(turbo: TurboAuthenticatedClient, filePath: st
21
22
  * Upload a folder with per-file deduplication.
22
23
  * Each file is checked against the cache individually, and only uncached files are uploaded.
23
24
  * A manifest is then constructed and uploaded to create the folder structure.
25
+ *
26
+ * @param turbo - Upload client used for file and manifest uploads.
27
+ * @param folderPath - Folder to upload.
28
+ * @param options - Upload options for caching, concurrency, funding, and failure handling.
29
+ * @returns Folder upload result including manifest transaction ID and cache stats.
24
30
  */
25
- export declare function uploadFolder(turbo: TurboAuthenticatedClient, folderPath: string, options?: {
31
+ export declare function uploadFolder(turbo: UploadClient, folderPath: string, options?: {
26
32
  cache?: TransactionCache;
27
33
  concurrency?: number;
28
34
  fundingMode?: OnDemandFunding;
@@ -1 +1 @@
1
- {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../../src/utils/uploader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAInF,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAChC;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,wBAAwB,EAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B,GACA,OAAO,CAAC,YAAY,CAAC,CA2DvB;AAYD;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,wBAAwB,EAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAmJ7B"}
1
+ {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../../src/utils/uploader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAIpD,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAChC;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B,GACA,OAAO,CAAC,YAAY,CAAC,CA2DvB;AAYD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAmJ7B"}