@ar.io/deploy 0.1.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 (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +695 -0
  3. package/bin/dev.js +5 -0
  4. package/bin/run.js +5 -0
  5. package/dist/chunks/cache-C1tEeUx2.js +6 -0
  6. package/dist/chunks/cache-C1tEeUx2.js.map +1 -0
  7. package/dist/chunks/display-DRcjDj9k.js +104 -0
  8. package/dist/chunks/display-DRcjDj9k.js.map +1 -0
  9. package/dist/chunks/upload-workflow-DSS5FIa5.js +204 -0
  10. package/dist/chunks/upload-workflow-DSS5FIa5.js.map +1 -0
  11. package/dist/chunks/uploader-B2tC-1Qw.js +472 -0
  12. package/dist/chunks/uploader-B2tC-1Qw.js.map +1 -0
  13. package/dist/commands/deploy.js +187 -0
  14. package/dist/commands/deploy.js.map +1 -0
  15. package/dist/commands/upload.js +122 -0
  16. package/dist/commands/upload.js.map +1 -0
  17. package/dist/constants/flags.js +241 -0
  18. package/dist/constants/flags.js.map +1 -0
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/prompts/arns.js +80 -0
  22. package/dist/prompts/arns.js.map +1 -0
  23. package/dist/prompts/deployment.js +27 -0
  24. package/dist/prompts/deployment.js.map +1 -0
  25. package/dist/prompts/wallet.js +52 -0
  26. package/dist/prompts/wallet.js.map +1 -0
  27. package/dist/src/commands/deploy.d.ts +9 -0
  28. package/dist/src/commands/deploy.d.ts.map +1 -0
  29. package/dist/src/commands/upload.d.ts +9 -0
  30. package/dist/src/commands/upload.d.ts.map +1 -0
  31. package/dist/src/constants/cache.d.ts +4 -0
  32. package/dist/src/constants/cache.d.ts.map +1 -0
  33. package/dist/src/constants/flags.d.ts +122 -0
  34. package/dist/src/constants/flags.d.ts.map +1 -0
  35. package/dist/src/index.d.ts +2 -0
  36. package/dist/src/index.d.ts.map +1 -0
  37. package/dist/src/prompts/arns.d.ts +13 -0
  38. package/dist/src/prompts/arns.d.ts.map +1 -0
  39. package/dist/src/prompts/deployment.d.ts +6 -0
  40. package/dist/src/prompts/deployment.d.ts.map +1 -0
  41. package/dist/src/prompts/wallet.d.ts +11 -0
  42. package/dist/src/prompts/wallet.d.ts.map +1 -0
  43. package/dist/src/types/index.d.ts +31 -0
  44. package/dist/src/types/index.d.ts.map +1 -0
  45. package/dist/src/utils/__tests__/cache.test.d.ts +2 -0
  46. package/dist/src/utils/__tests__/cache.test.d.ts.map +1 -0
  47. package/dist/src/utils/__tests__/constants.test.d.ts +2 -0
  48. package/dist/src/utils/__tests__/constants.test.d.ts.map +1 -0
  49. package/dist/src/utils/__tests__/display.test.d.ts +2 -0
  50. package/dist/src/utils/__tests__/display.test.d.ts.map +1 -0
  51. package/dist/src/utils/cache.d.ts +48 -0
  52. package/dist/src/utils/cache.d.ts.map +1 -0
  53. package/dist/src/utils/chalk.d.ts +9 -0
  54. package/dist/src/utils/chalk.d.ts.map +1 -0
  55. package/dist/src/utils/config-resolver.d.ts +72 -0
  56. package/dist/src/utils/config-resolver.d.ts.map +1 -0
  57. package/dist/src/utils/constants.d.ts +4 -0
  58. package/dist/src/utils/constants.d.ts.map +1 -0
  59. package/dist/src/utils/deploy-key.d.ts +15 -0
  60. package/dist/src/utils/deploy-key.d.ts.map +1 -0
  61. package/dist/src/utils/display.d.ts +7 -0
  62. package/dist/src/utils/display.d.ts.map +1 -0
  63. package/dist/src/utils/path.d.ts +5 -0
  64. package/dist/src/utils/path.d.ts.map +1 -0
  65. package/dist/src/utils/signer.d.ts +19 -0
  66. package/dist/src/utils/signer.d.ts.map +1 -0
  67. package/dist/src/utils/solana.d.ts +29 -0
  68. package/dist/src/utils/solana.d.ts.map +1 -0
  69. package/dist/src/utils/upload-types.d.ts +35 -0
  70. package/dist/src/utils/upload-types.d.ts.map +1 -0
  71. package/dist/src/utils/uploader.d.ts +50 -0
  72. package/dist/src/utils/uploader.d.ts.map +1 -0
  73. package/dist/src/utils/validators.d.ts +21 -0
  74. package/dist/src/utils/validators.d.ts.map +1 -0
  75. package/dist/src/workflows/upload-workflow.d.ts +28 -0
  76. package/dist/src/workflows/upload-workflow.d.ts.map +1 -0
  77. package/dist/tests/constants.d.ts +11 -0
  78. package/dist/tests/constants.d.ts.map +1 -0
  79. package/dist/tests/e2e/deploy-command.test.d.ts +2 -0
  80. package/dist/tests/e2e/deploy-command.test.d.ts.map +1 -0
  81. package/dist/tests/global-setup.d.ts +6 -0
  82. package/dist/tests/global-setup.d.ts.map +1 -0
  83. package/dist/tests/mocks/turbo-handlers.d.ts +106 -0
  84. package/dist/tests/mocks/turbo-handlers.d.ts.map +1 -0
  85. package/dist/tests/setup.d.ts +11 -0
  86. package/dist/tests/setup.d.ts.map +1 -0
  87. package/dist/tests/types/payment-service.d.ts +218 -0
  88. package/dist/tests/types/payment-service.d.ts.map +1 -0
  89. package/dist/tests/types/upload-service.d.ts +168 -0
  90. package/dist/tests/types/upload-service.d.ts.map +1 -0
  91. package/dist/tests/unit/deploy-key.test.d.ts +2 -0
  92. package/dist/tests/unit/deploy-key.test.d.ts.map +1 -0
  93. package/dist/tests/unit/signer.test.d.ts +2 -0
  94. package/dist/tests/unit/signer.test.d.ts.map +1 -0
  95. package/dist/tests/unit/solana.test.d.ts +2 -0
  96. package/dist/tests/unit/solana.test.d.ts.map +1 -0
  97. package/dist/tests/unit/uploader-tags.test.d.ts +2 -0
  98. package/dist/tests/unit/uploader-tags.test.d.ts.map +1 -0
  99. package/dist/tests/unit/validators.test.d.ts +2 -0
  100. package/dist/tests/unit/validators.test.d.ts.map +1 -0
  101. package/dist/types/index.js +2 -0
  102. package/dist/types/index.js.map +1 -0
  103. package/dist/utils/config-resolver.js +39 -0
  104. package/dist/utils/config-resolver.js.map +1 -0
  105. package/dist/utils/constants.js +6 -0
  106. package/dist/utils/constants.js.map +1 -0
  107. package/dist/utils/path.js +15 -0
  108. package/dist/utils/path.js.map +1 -0
  109. package/dist/utils/signer.js +45 -0
  110. package/dist/utils/signer.js.map +1 -0
  111. package/dist/utils/uploader.js +5 -0
  112. package/dist/utils/uploader.js.map +1 -0
  113. package/dist/utils/validators.js +43 -0
  114. package/dist/utils/validators.js.map +1 -0
  115. package/dist/workflows/upload-workflow.js +9 -0
  116. package/dist/workflows/upload-workflow.js.map +1 -0
  117. package/package.json +116 -0
@@ -0,0 +1,80 @@
1
+ import { select, input, confirm } from '@inquirer/prompts';
2
+ import { validateArnsName, validateTtl } from '../utils/validators.js';
3
+
4
+ async function promptArnsName() {
5
+ return input({
6
+ message: "Enter your ArNS name:",
7
+ required: true,
8
+ validate: validateArnsName
9
+ });
10
+ }
11
+ async function promptUndername() {
12
+ return input({
13
+ default: "@",
14
+ message: "Enter undername (subdomain):"
15
+ });
16
+ }
17
+ async function promptTtl() {
18
+ return input({
19
+ default: "60",
20
+ message: "Enter TTL in seconds:",
21
+ validate: validateTtl
22
+ });
23
+ }
24
+ async function promptCluster() {
25
+ return select({
26
+ choices: [
27
+ { name: "Mainnet", value: "mainnet" },
28
+ { name: "Devnet", value: "devnet" }
29
+ ],
30
+ default: "mainnet",
31
+ message: "Select Solana cluster:"
32
+ });
33
+ }
34
+ async function promptAdvancedOptions() {
35
+ const wantsAdvanced = await confirm({
36
+ default: false,
37
+ message: "Configure advanced options?"
38
+ });
39
+ if (!wantsAdvanced) {
40
+ return null;
41
+ }
42
+ const undername = await promptUndername();
43
+ const ttlSeconds = await promptTtl();
44
+ const cluster = await promptCluster();
45
+ const wantsOnDemand = await confirm({
46
+ default: false,
47
+ message: "Enable on-demand payment?"
48
+ });
49
+ let onDemand;
50
+ let maxTokenAmount;
51
+ if (wantsOnDemand) {
52
+ onDemand = await select({
53
+ choices: [
54
+ { name: "ARIO", value: "ario" },
55
+ { name: "ETH (Base Network)", value: "base-eth" }
56
+ ],
57
+ message: "Select payment token:"
58
+ });
59
+ maxTokenAmount = await input({
60
+ message: "Enter maximum token amount:",
61
+ validate(value) {
62
+ const num = Number.parseFloat(value);
63
+ if (Number.isNaN(num) || num <= 0) {
64
+ return "Please enter a valid positive number";
65
+ }
66
+ return true;
67
+ }
68
+ });
69
+ }
70
+ return {
71
+ cluster,
72
+ maxTokenAmount,
73
+ onDemand,
74
+ ttlSeconds,
75
+ undername
76
+ };
77
+ }
78
+
79
+ export { promptAdvancedOptions, promptArnsName, promptCluster, promptTtl, promptUndername };
80
+ //# sourceMappingURL=arns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arns.js","sources":["../../src/prompts/arns.ts"],"sourcesContent":["import { confirm, input, select } from '@inquirer/prompts'\n\nimport { validateArnsName, validateTtl } from '../utils/validators.js'\n\nexport interface AdvancedOptions {\n cluster: string\n maxTokenAmount?: string\n onDemand?: string\n ttlSeconds: string\n undername: string\n}\n\nexport async function promptArnsName(): Promise<string> {\n return input({\n message: 'Enter your ArNS name:',\n required: true,\n validate: validateArnsName,\n })\n}\n\nexport async function promptUndername(): Promise<string> {\n return input({\n default: '@',\n message: 'Enter undername (subdomain):',\n })\n}\n\nexport async function promptTtl(): Promise<string> {\n return input({\n default: '60',\n message: 'Enter TTL in seconds:',\n validate: validateTtl,\n })\n}\n\nexport async function promptCluster(): Promise<string> {\n return select({\n choices: [\n { name: 'Mainnet', value: 'mainnet' },\n { name: 'Devnet', value: 'devnet' },\n ],\n default: 'mainnet',\n message: 'Select Solana cluster:',\n })\n}\n\nexport async function promptAdvancedOptions(): Promise<AdvancedOptions | null> {\n const wantsAdvanced = await confirm({\n default: false,\n message: 'Configure advanced options?',\n })\n\n if (!wantsAdvanced) {\n return null\n }\n\n const undername = await promptUndername()\n const ttlSeconds = await promptTtl()\n const cluster = await promptCluster()\n\n // On-demand payment options\n const wantsOnDemand = await confirm({\n default: false,\n message: 'Enable on-demand payment?',\n })\n\n let onDemand: string | undefined\n let maxTokenAmount: string | undefined\n\n if (wantsOnDemand) {\n onDemand = await select({\n choices: [\n { name: 'ARIO', value: 'ario' },\n { name: 'ETH (Base Network)', value: 'base-eth' },\n ],\n message: 'Select payment token:',\n })\n\n maxTokenAmount = await input({\n message: 'Enter maximum token amount:',\n validate(value: string) {\n const num = Number.parseFloat(value)\n if (Number.isNaN(num) || num <= 0) {\n return 'Please enter a valid positive number'\n }\n\n return true\n },\n })\n }\n\n return {\n cluster,\n maxTokenAmount,\n onDemand,\n ttlSeconds,\n undername,\n }\n}\n"],"names":[],"mappings":";;;AAYA,eAAsB,cAAA,GAAkC;AACtD,EAAA,OAAO,KAAA,CAAM;AAAA,IACX,OAAA,EAAS,uBAAA;AAAA,IACT,QAAA,EAAU,IAAA;AAAA,IACV,QAAA,EAAU;AAAA,GACX,CAAA;AACH;AAEA,eAAsB,eAAA,GAAmC;AACvD,EAAA,OAAO,KAAA,CAAM;AAAA,IACX,OAAA,EAAS,GAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AACH;AAEA,eAAsB,SAAA,GAA6B;AACjD,EAAA,OAAO,KAAA,CAAM;AAAA,IACX,OAAA,EAAS,IAAA;AAAA,IACT,OAAA,EAAS,uBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACH;AAEA,eAAsB,aAAA,GAAiC;AACrD,EAAA,OAAO,MAAA,CAAO;AAAA,IACZ,OAAA,EAAS;AAAA,MACP,EAAE,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,MACpC,EAAE,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,QAAA;AAAS,KACpC;AAAA,IACA,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AACH;AAEA,eAAsB,qBAAA,GAAyD;AAC7E,EAAA,MAAM,aAAA,GAAgB,MAAM,OAAA,CAAQ;AAAA,IAClC,OAAA,EAAS,KAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AAED,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAA,GAAY,MAAM,eAAA,EAAgB;AACxC,EAAA,MAAM,UAAA,GAAa,MAAM,SAAA,EAAU;AACnC,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,EAAc;AAGpC,EAAA,MAAM,aAAA,GAAgB,MAAM,OAAA,CAAQ;AAAA,IAClC,OAAA,EAAS,KAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AAED,EAAA,IAAI,QAAA;AACJ,EAAA,IAAI,cAAA;AAEJ,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,QAAA,GAAW,MAAM,MAAA,CAAO;AAAA,MACtB,OAAA,EAAS;AAAA,QACP,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,QAC9B,EAAE,IAAA,EAAM,oBAAA,EAAsB,KAAA,EAAO,UAAA;AAAW,OAClD;AAAA,MACA,OAAA,EAAS;AAAA,KACV,CAAA;AAED,IAAA,cAAA,GAAiB,MAAM,KAAA,CAAM;AAAA,MAC3B,OAAA,EAAS,6BAAA;AAAA,MACT,SAAS,KAAA,EAAe;AACtB,QAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA;AACnC,QAAA,IAAI,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA,IAAK,OAAO,CAAA,EAAG;AACjC,UAAA,OAAO,sCAAA;AAAA,QACT;AAEA,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,KACD,CAAA;AAAA,EACH;AAEA,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -0,0 +1,27 @@
1
+ import { select, input } from '@inquirer/prompts';
2
+ import { validateFolderExists, validateFileExists } from '../utils/validators.js';
3
+
4
+ async function promptDeployTarget() {
5
+ const deployType = await select({
6
+ choices: [
7
+ { name: "Deploy a folder", value: "folder" },
8
+ { name: "Deploy a single file", value: "file" }
9
+ ],
10
+ message: "What do you want to deploy?"
11
+ });
12
+ const deployPath = await (deployType === "folder" ? input({
13
+ default: "./dist",
14
+ message: "Enter folder path to deploy:",
15
+ validate: validateFolderExists
16
+ }) : input({
17
+ message: "Enter file path to deploy:",
18
+ validate: validateFileExists
19
+ }));
20
+ return {
21
+ path: deployPath,
22
+ type: deployType
23
+ };
24
+ }
25
+
26
+ export { promptDeployTarget };
27
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sources":["../../src/prompts/deployment.ts"],"sourcesContent":["import { input, select } from '@inquirer/prompts'\n\nimport { validateFileExists, validateFolderExists } from '../utils/validators.js'\n\nexport interface DeployTarget {\n path: string\n type: 'file' | 'folder'\n}\n\nexport async function promptDeployTarget(): Promise<DeployTarget> {\n const deployType = (await select({\n choices: [\n { name: 'Deploy a folder', value: 'folder' },\n { name: 'Deploy a single file', value: 'file' },\n ],\n message: 'What do you want to deploy?',\n })) as 'file' | 'folder'\n\n const deployPath = await (deployType === 'folder'\n ? input({\n default: './dist',\n message: 'Enter folder path to deploy:',\n validate: validateFolderExists,\n })\n : input({\n message: 'Enter file path to deploy:',\n validate: validateFileExists,\n }))\n\n return {\n path: deployPath,\n type: deployType,\n }\n}\n"],"names":[],"mappings":";;;AASA,eAAsB,kBAAA,GAA4C;AAChE,EAAA,MAAM,UAAA,GAAc,MAAM,MAAA,CAAO;AAAA,IAC/B,OAAA,EAAS;AAAA,MACP,EAAE,IAAA,EAAM,iBAAA,EAAmB,KAAA,EAAO,QAAA,EAAS;AAAA,MAC3C,EAAE,IAAA,EAAM,sBAAA,EAAwB,KAAA,EAAO,MAAA;AAAO,KAChD;AAAA,IACA,OAAA,EAAS;AAAA,GACV,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,OAAO,UAAA,KAAe,QAAA,GACrC,KAAA,CAAM;AAAA,IACJ,OAAA,EAAS,QAAA;AAAA,IACT,OAAA,EAAS,8BAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,IACD,KAAA,CAAM;AAAA,IACJ,OAAA,EAAS,4BAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA,CAAA;AAEL,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AACF;;;;"}
@@ -0,0 +1,52 @@
1
+ import { select, input } from '@inquirer/prompts';
2
+ import { validateFileExists } from '../utils/validators.js';
3
+
4
+ async function promptWalletMethod() {
5
+ return select({
6
+ choices: [
7
+ { name: "Wallet file path", value: "file" },
8
+ { name: "Private key/JWK string", value: "string" },
9
+ { name: "Environment variable (DEPLOY_KEY)", value: "env" }
10
+ ],
11
+ message: "How do you want to provide your wallet?"
12
+ });
13
+ }
14
+ async function promptWalletFile() {
15
+ return input({
16
+ default: "./wallet.json",
17
+ message: "Enter wallet file path:",
18
+ validate: validateFileExists
19
+ });
20
+ }
21
+ async function promptPrivateKey() {
22
+ return input({
23
+ message: "Enter your private key or JWK JSON:",
24
+ required: true
25
+ });
26
+ }
27
+ async function promptSignerType() {
28
+ return select({
29
+ choices: [
30
+ { name: "Arweave", value: "arweave" },
31
+ { name: "Ethereum", value: "ethereum" },
32
+ { name: "Polygon", value: "polygon" },
33
+ { name: "KYVE", value: "kyve" },
34
+ { name: "Solana", value: "solana" }
35
+ ],
36
+ default: "arweave",
37
+ message: "Select signer type:"
38
+ });
39
+ }
40
+ async function getWalletConfig() {
41
+ const method = await promptWalletMethod();
42
+ const config = { method };
43
+ if (method === "file") {
44
+ config.wallet = await promptWalletFile();
45
+ } else if (method === "string") {
46
+ config.privateKey = await promptPrivateKey();
47
+ }
48
+ return config;
49
+ }
50
+
51
+ export { getWalletConfig, promptPrivateKey, promptSignerType, promptWalletFile, promptWalletMethod };
52
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sources":["../../src/prompts/wallet.ts"],"sourcesContent":["import { input, select } from '@inquirer/prompts'\n\nimport { validateFileExists } from '../utils/validators.js'\n\nexport interface WalletConfig {\n method: 'env' | 'file' | 'string'\n privateKey?: string\n wallet?: string\n}\n\nexport async function promptWalletMethod(): Promise<string> {\n return select({\n choices: [\n { name: 'Wallet file path', value: 'file' },\n { name: 'Private key/JWK string', value: 'string' },\n { name: 'Environment variable (DEPLOY_KEY)', value: 'env' },\n ],\n message: 'How do you want to provide your wallet?',\n })\n}\n\nexport async function promptWalletFile(): Promise<string> {\n return input({\n default: './wallet.json',\n message: 'Enter wallet file path:',\n validate: validateFileExists,\n })\n}\n\nexport async function promptPrivateKey(): Promise<string> {\n return input({\n message: 'Enter your private key or JWK JSON:',\n required: true,\n })\n}\n\nexport async function promptSignerType(): Promise<string> {\n return select({\n choices: [\n { name: 'Arweave', value: 'arweave' },\n { name: 'Ethereum', value: 'ethereum' },\n { name: 'Polygon', value: 'polygon' },\n { name: 'KYVE', value: 'kyve' },\n { name: 'Solana', value: 'solana' },\n ],\n default: 'arweave',\n message: 'Select signer type:',\n })\n}\n\nexport async function getWalletConfig(): Promise<WalletConfig> {\n const method = (await promptWalletMethod()) as 'env' | 'file' | 'string'\n\n const config: WalletConfig = { method }\n\n if (method === 'file') {\n config.wallet = await promptWalletFile()\n } else if (method === 'string') {\n config.privateKey = await promptPrivateKey()\n }\n\n return config\n}\n"],"names":[],"mappings":";;;AAUA,eAAsB,kBAAA,GAAsC;AAC1D,EAAA,OAAO,MAAA,CAAO;AAAA,IACZ,OAAA,EAAS;AAAA,MACP,EAAE,IAAA,EAAM,kBAAA,EAAoB,KAAA,EAAO,MAAA,EAAO;AAAA,MAC1C,EAAE,IAAA,EAAM,wBAAA,EAA0B,KAAA,EAAO,QAAA,EAAS;AAAA,MAClD,EAAE,IAAA,EAAM,mCAAA,EAAqC,KAAA,EAAO,KAAA;AAAM,KAC5D;AAAA,IACA,OAAA,EAAS;AAAA,GACV,CAAA;AACH;AAEA,eAAsB,gBAAA,GAAoC;AACxD,EAAA,OAAO,KAAA,CAAM;AAAA,IACX,OAAA,EAAS,eAAA;AAAA,IACT,OAAA,EAAS,yBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACH;AAEA,eAAsB,gBAAA,GAAoC;AACxD,EAAA,OAAO,KAAA,CAAM;AAAA,IACX,OAAA,EAAS,qCAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACH;AAEA,eAAsB,gBAAA,GAAoC;AACxD,EAAA,OAAO,MAAA,CAAO;AAAA,IACZ,OAAA,EAAS;AAAA,MACP,EAAE,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,MACpC,EAAE,IAAA,EAAM,UAAA,EAAY,KAAA,EAAO,UAAA,EAAW;AAAA,MACtC,EAAE,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,MACpC,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,MAC9B,EAAE,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,QAAA;AAAS,KACpC;AAAA,IACA,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AACH;AAEA,eAAsB,eAAA,GAAyC;AAC7D,EAAA,MAAM,MAAA,GAAU,MAAM,kBAAA,EAAmB;AAEzC,EAAA,MAAM,MAAA,GAAuB,EAAE,MAAA,EAAO;AAEtC,EAAA,IAAI,WAAW,MAAA,EAAQ;AACrB,IAAA,MAAA,CAAO,MAAA,GAAS,MAAM,gBAAA,EAAiB;AAAA,EACzC,CAAA,MAAA,IAAW,WAAW,QAAA,EAAU;AAC9B,IAAA,MAAA,CAAO,UAAA,GAAa,MAAM,gBAAA,EAAiB;AAAA,EAC7C;AAEA,EAAA,OAAO,MAAA;AACT;;;;"}
@@ -0,0 +1,9 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Deploy extends Command {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: string[];
6
+ static flags: Record<string, any>;
7
+ run(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAoBrC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,OAAgB,IAAI,KAAK;IAEzB,OAAgB,WAAW,SAAoE;IAE/F,OAAgB,QAAQ,WAMvB;IAED,OAAgB,KAAK,sBAAkC;IAE1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuNlC"}
@@ -0,0 +1,9 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Upload extends Command {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: string[];
6
+ static flags: Record<string, any>;
7
+ run(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/commands/upload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAiBrC,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;CA6HlC"}
@@ -0,0 +1,4 @@
1
+ export declare const DEFAULT_CACHE_MAX_ENTRIES = 10000;
2
+ export declare const CACHE_DIR = ".ario-deploy";
3
+ export declare const CACHE_FILE = "transaction-cache.json";
4
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/constants/cache.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,QAAS,CAAA;AAC/C,eAAO,MAAM,SAAS,iBAAiB,CAAA;AACvC,eAAO,MAAM,UAAU,2BAA2B,CAAA"}
@@ -0,0 +1,122 @@
1
+ import { type ResolvedConfig } from '../utils/config-resolver.js';
2
+ /**
3
+ * Global flag definitions - single source of truth for all flags
4
+ * Each flag includes its oclif definition and optional prompt function
5
+ */
6
+ export declare const globalFlags: {
7
+ arnsName: import("../utils/config-resolver.js").FlagConfig<string, any>;
8
+ cluster: import("../utils/config-resolver.js").FlagConfig<string, any>;
9
+ dedupeCacheMaxEntries: import("../utils/config-resolver.js").FlagConfig<number, any>;
10
+ deployFile: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
11
+ deployFolder: import("../utils/config-resolver.js").FlagConfig<string, any>;
12
+ maxTokenAmount: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
13
+ noDedupe: import("../utils/config-resolver.js").FlagConfig<boolean, any>;
14
+ onDemand: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
15
+ privateKey: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
16
+ rpcUrl: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
17
+ sigType: import("../utils/config-resolver.js").FlagConfig<string, any>;
18
+ ttlSeconds: import("../utils/config-resolver.js").FlagConfig<string, any>;
19
+ undername: import("../utils/config-resolver.js").FlagConfig<string, any>;
20
+ uploader: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
21
+ useArns: import("../utils/config-resolver.js").FlagConfig<boolean, any>;
22
+ wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
23
+ };
24
+ /**
25
+ * Complete set of flags for the deploy command
26
+ */
27
+ export declare const deployFlags: {
28
+ 'arns-name': any;
29
+ cluster: any;
30
+ 'dedupe-cache-max-entries': any;
31
+ 'deploy-file': any;
32
+ 'deploy-folder': any;
33
+ 'max-token-amount': any;
34
+ 'no-dedupe': any;
35
+ 'on-demand': any;
36
+ 'private-key': any;
37
+ 'rpc-url': any;
38
+ 'sig-type': any;
39
+ 'ttl-seconds': any;
40
+ undername: any;
41
+ uploader: any;
42
+ 'use-arns': any;
43
+ wallet: any;
44
+ };
45
+ /**
46
+ * ArNS-specific flags (subset of deploy flags)
47
+ */
48
+ export declare const arnsFlags: {
49
+ 'arns-name': any;
50
+ cluster: any;
51
+ 'rpc-url': any;
52
+ 'ttl-seconds': any;
53
+ undername: any;
54
+ };
55
+ /**
56
+ * Wallet/authentication flags (subset of deploy flags)
57
+ */
58
+ export declare const walletFlags: {
59
+ 'private-key': any;
60
+ 'sig-type': any;
61
+ wallet: any;
62
+ };
63
+ /**
64
+ * Deploy command configuration type
65
+ */
66
+ export interface DeployConfig {
67
+ 'arns-name'?: string;
68
+ cluster: string;
69
+ 'dedupe-cache-max-entries': number;
70
+ 'deploy-file'?: string;
71
+ 'deploy-folder': string;
72
+ 'max-token-amount'?: string;
73
+ 'no-dedupe': boolean;
74
+ 'on-demand'?: string;
75
+ 'private-key'?: string;
76
+ 'rpc-url'?: string;
77
+ 'sig-type': string;
78
+ 'ttl-seconds': string;
79
+ undername: string;
80
+ 'use-arns': boolean;
81
+ uploader?: string;
82
+ wallet?: string;
83
+ }
84
+ /**
85
+ * Deploy command flag configurations
86
+ * Maps kebab-case flag names to their camelCase globalFlags definitions
87
+ */
88
+ export declare const deployFlagConfigs: {
89
+ readonly 'arns-name': import("../utils/config-resolver.js").FlagConfig<string, any>;
90
+ readonly cluster: import("../utils/config-resolver.js").FlagConfig<string, any>;
91
+ readonly 'dedupe-cache-max-entries': import("../utils/config-resolver.js").FlagConfig<number, any>;
92
+ readonly 'deploy-file': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
93
+ readonly 'deploy-folder': import("../utils/config-resolver.js").FlagConfig<string, any>;
94
+ readonly 'max-token-amount': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
95
+ readonly 'no-dedupe': import("../utils/config-resolver.js").FlagConfig<boolean, any>;
96
+ readonly 'on-demand': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
97
+ readonly 'private-key': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
98
+ readonly 'rpc-url': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
99
+ readonly 'sig-type': import("../utils/config-resolver.js").FlagConfig<string, any>;
100
+ readonly 'ttl-seconds': import("../utils/config-resolver.js").FlagConfig<string, any>;
101
+ readonly undername: import("../utils/config-resolver.js").FlagConfig<string, any>;
102
+ readonly uploader: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
103
+ readonly 'use-arns': import("../utils/config-resolver.js").FlagConfig<boolean, any>;
104
+ readonly wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
105
+ };
106
+ /**
107
+ * Upload command — file/folder to Arweave via Turbo without updating ArNS
108
+ */
109
+ export declare const uploadFlagConfigs: {
110
+ readonly 'dedupe-cache-max-entries': import("../utils/config-resolver.js").FlagConfig<number, any>;
111
+ readonly 'deploy-file': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
112
+ readonly 'deploy-folder': import("../utils/config-resolver.js").FlagConfig<string, any>;
113
+ readonly 'max-token-amount': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
114
+ readonly 'no-dedupe': import("../utils/config-resolver.js").FlagConfig<boolean, any>;
115
+ readonly 'on-demand': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
116
+ readonly 'private-key': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
117
+ readonly 'sig-type': import("../utils/config-resolver.js").FlagConfig<string, any>;
118
+ readonly uploader: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
119
+ readonly wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
120
+ };
121
+ export type UploadConfig = ResolvedConfig<typeof uploadFlagConfigs>;
122
+ //# sourceMappingURL=flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../src/constants/flags.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAUnF;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAgLvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAiBvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAIvB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,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,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiBpB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { run } from '@oclif/core';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,13 @@
1
+ export interface AdvancedOptions {
2
+ cluster: string;
3
+ maxTokenAmount?: string;
4
+ onDemand?: string;
5
+ ttlSeconds: string;
6
+ undername: string;
7
+ }
8
+ export declare function promptArnsName(): Promise<string>;
9
+ export declare function promptUndername(): Promise<string>;
10
+ export declare function promptTtl(): Promise<string>;
11
+ export declare function promptCluster(): Promise<string>;
12
+ export declare function promptAdvancedOptions(): Promise<AdvancedOptions | null>;
13
+ //# sourceMappingURL=arns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arns.d.ts","sourceRoot":"","sources":["../../../src/prompts/arns.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAMtD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAKvD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAMjD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CASrD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAoD7E"}
@@ -0,0 +1,6 @@
1
+ export interface DeployTarget {
2
+ path: string;
3
+ type: 'file' | 'folder';
4
+ }
5
+ export declare function promptDeployTarget(): Promise<DeployTarget>;
6
+ //# sourceMappingURL=deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../src/prompts/deployment.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;CACxB;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAwBhE"}
@@ -0,0 +1,11 @@
1
+ export interface WalletConfig {
2
+ method: 'env' | 'file' | 'string';
3
+ privateKey?: string;
4
+ wallet?: string;
5
+ }
6
+ export declare function promptWalletMethod(): Promise<string>;
7
+ export declare function promptWalletFile(): Promise<string>;
8
+ export declare function promptPrivateKey(): Promise<string>;
9
+ export declare function promptSignerType(): Promise<string>;
10
+ export declare function getWalletConfig(): Promise<WalletConfig>;
11
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/prompts/wallet.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAS1D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAMxD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAKxD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAYxD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAY7D"}
@@ -0,0 +1,31 @@
1
+ import type { Flag } from '@oclif/core/lib/interfaces';
2
+ export type SignerType = 'arweave' | 'ethereum' | 'kyve' | 'polygon' | 'solana';
3
+ export interface DeployOptions {
4
+ 'arns-name'?: string;
5
+ cluster: string;
6
+ 'deploy-file': string;
7
+ 'deploy-folder': string;
8
+ 'private-key': string;
9
+ 'sig-type': SignerType;
10
+ 'ttl-seconds': string;
11
+ undername: string;
12
+ wallet: string;
13
+ }
14
+ export type DeployFlags = Partial<Record<keyof DeployOptions, Flag<string>>>;
15
+ export interface UploadResult {
16
+ id: string;
17
+ manifest?: {
18
+ paths: Record<string, {
19
+ id: string;
20
+ }>;
21
+ };
22
+ manifestResponse?: {
23
+ id: string;
24
+ };
25
+ }
26
+ export interface ArnsRecord {
27
+ processId: string;
28
+ type: string;
29
+ undernames?: string[];
30
+ }
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAEtD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/E,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAE5E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KACtC,CAAA;IACD,gBAAgB,CAAC,EAAE;QACjB,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/__tests__/cache.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/__tests__/constants.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=display.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/__tests__/display.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ export interface TransactionCacheEntry {
2
+ createdAtTimestamp: number;
3
+ lastUsedTimestamp: number;
4
+ transactionId: string;
5
+ }
6
+ export type TransactionCache = Record<string, TransactionCacheEntry>;
7
+ /**
8
+ * Get the path to the cache file in the current working directory
9
+ */
10
+ export declare function getCachePath(): string;
11
+ /**
12
+ * Load the transaction cache from disk
13
+ * Returns an empty object if the cache file doesn't exist or is invalid
14
+ */
15
+ export declare function loadCache(): TransactionCache;
16
+ /**
17
+ * Save the transaction cache to disk
18
+ * Creates the cache directory if it doesn't exist
19
+ */
20
+ export declare function saveCache(cache: TransactionCache): void;
21
+ /**
22
+ * Compute the SHA-256 hash of a file using streaming
23
+ */
24
+ export declare function hashFile(filePath: string): Promise<string>;
25
+ /**
26
+ * Recursively get all files in a directory
27
+ * Returns relative paths from the base directory
28
+ */
29
+ export declare function getAllFiles(dirPath: string, basePath?: string): string[];
30
+ /**
31
+ * Get a cached transaction entry by its file hash
32
+ */
33
+ export declare function getCachedTransaction(cache: TransactionCache, hash: string): TransactionCacheEntry | undefined;
34
+ /**
35
+ * Add or update a cache entry for a file hash
36
+ * Updates lastUsedTimestamp if the entry already exists
37
+ */
38
+ export declare function setCachedTransaction(cache: TransactionCache, hash: string, transactionId: string): TransactionCache;
39
+ /**
40
+ * Update the lastUsedTimestamp for an existing cache entry
41
+ */
42
+ export declare function touchCacheEntry(cache: TransactionCache, hash: string): TransactionCache;
43
+ /**
44
+ * Clean up the cache by keeping only the most recently used entries
45
+ * Entries are sorted by lastUsedTimestamp descending, keeping the newest maxEntries
46
+ */
47
+ export declare function cleanupCache(cache: TransactionCache, maxEntries: number): TransactionCache;
48
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/utils/cache.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;AAEpE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,gBAAgB,CAc5C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CASvD;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAShE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAgB,GAAG,MAAM,EAAE,CAgBjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,SAAS,CAEnC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,gBAAgB,CAYlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAavF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAc1F"}
@@ -0,0 +1,9 @@
1
+ declare const colorCodes: readonly [readonly ["bold", "\u001B[1m"], readonly ["dim", "\u001B[2m"], readonly ["italic", "\u001B[3m"], readonly ["underline", "\u001B[4m"], readonly ["inverse", "\u001B[7m"], readonly ["strikethrough", "\u001B[9m"], readonly ["black", "\u001B[30m"], readonly ["red", "\u001B[31m"], readonly ["green", "\u001B[32m"], readonly ["yellow", "\u001B[33m"], readonly ["blue", "\u001B[34m"], readonly ["magenta", "\u001B[35m"], readonly ["cyan", "\u001B[36m"], readonly ["white", "\u001B[37m"], readonly ["gray", "\u001B[90m"], readonly ["grey", "\u001B[90m"], readonly ["blackBright", "\u001B[90m"], readonly ["redBright", "\u001B[91m"], readonly ["greenBright", "\u001B[92m"], readonly ["yellowBright", "\u001B[93m"], readonly ["blueBright", "\u001B[94m"], readonly ["magentaBright", "\u001B[95m"], readonly ["cyanBright", "\u001B[96m"], readonly ["whiteBright", "\u001B[97m"], readonly ["bgBlack", "\u001B[40m"], readonly ["bgRed", "\u001B[41m"], readonly ["bgGreen", "\u001B[42m"], readonly ["bgYellow", "\u001B[43m"], readonly ["bgBlue", "\u001B[44m"], readonly ["bgMagenta", "\u001B[45m"], readonly ["bgCyan", "\u001B[46m"], readonly ["bgWhite", "\u001B[47m"], readonly ["bgBlackBright", "\u001B[100m"]];
2
+ type ColorName = (typeof colorCodes)[number][0];
3
+ type ColorFunction = (text: unknown) => string;
4
+ type Chalk = {
5
+ highlight: ColorFunction;
6
+ } & Record<ColorName, ColorFunction>;
7
+ export declare const chalk: Chalk;
8
+ export {};
9
+ //# sourceMappingURL=chalk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chalk.d.ts","sourceRoot":"","sources":["../../../src/utils/chalk.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,UAAU,urCAqCN,CAAA;AAEV,KAAK,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/C,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAA;AAC9C,KAAK,KAAK,GAAG;IACX,SAAS,EAAE,aAAa,CAAA;CACzB,GAAG,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;AAapC,eAAO,MAAM,KAAK,EAAE,KAElB,CAAA"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Configuration for a single flag with its associated prompt
3
+ */
4
+ export type FlagConfig<T = any, F = any> = {
5
+ /** The oclif flag definition */
6
+ flag: F;
7
+ /** Optional prompt function to get the value interactively */
8
+ prompt?: () => Promise<T>;
9
+ /** Transform function to apply to the resolved value */
10
+ transform?: (value: T) => T;
11
+ /** Whether this flag triggers interactive mode when missing */
12
+ triggersInteractive?: boolean;
13
+ };
14
+ /**
15
+ * Map of flag configurations
16
+ */
17
+ export type FlagConfigMap = Record<string, FlagConfig<any, any>>;
18
+ /**
19
+ * Extract the resolved config type from a FlagConfigMap
20
+ * Infers the actual type (string, number, boolean) and optionality from each FlagConfig
21
+ */
22
+ export type ResolvedConfig<T extends FlagConfigMap> = {
23
+ [K in keyof T]: T[K] extends FlagConfig<infer U, any> ? U : any;
24
+ };
25
+ /**
26
+ * Options for resolveConfig
27
+ */
28
+ export interface ResolveConfigOptions {
29
+ /** Whether to run in interactive mode */
30
+ interactive?: boolean;
31
+ /** Custom logic to determine if interactive mode should be enabled */
32
+ shouldBeInteractive?: (parsedFlags: Record<string, any>) => boolean;
33
+ }
34
+ /**
35
+ * Resolves configuration by combining parsed CLI flags with interactive prompts
36
+ *
37
+ * @param flagConfigs - Map of flag names to their configurations
38
+ * @param parsedFlags - Parsed flags from this.parse()
39
+ * @param options - Resolution options
40
+ * @returns Fully resolved configuration object
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const config = await resolveConfig(
45
+ * {
46
+ * arnsName: {
47
+ * flag: globalFlags.arnsName,
48
+ * prompt: promptArnsName,
49
+ * triggersInteractive: true,
50
+ * },
51
+ * wallet: {
52
+ * flag: globalFlags.wallet,
53
+ * prompt: async () => (await getWalletConfig()).wallet,
54
+ * },
55
+ * },
56
+ * flags,
57
+ * {
58
+ * shouldBeInteractive: (flags) => !flags['arns-name'],
59
+ * }
60
+ * )
61
+ * ```
62
+ */
63
+ export declare function resolveConfig<T extends FlagConfigMap>(flagConfigs: T, parsedFlags: Record<string, any>, options?: ResolveConfigOptions): Promise<ResolvedConfig<T>>;
64
+ /**
65
+ * Helper to create a flag configuration with proper type inference
66
+ */
67
+ export declare function createFlagConfig<T, F = any>(config: FlagConfig<T, F>): FlagConfig<T, F>;
68
+ /**
69
+ * Helper to extract just the flags from a FlagConfigMap for use in command static flags
70
+ */
71
+ export declare function extractFlags<T extends FlagConfigMap>(flagConfigs: T): Record<string, any>;
72
+ //# sourceMappingURL=config-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-resolver.d.ts","sourceRoot":"","sources":["../../../src/utils/config-resolver.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI;IACzC,gCAAgC;IAChC,IAAI,EAAE,CAAC,CAAA;IACP,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;IACzB,wDAAwD;IACxD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;IAC3B,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAEhE;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,aAAa,IAAI;KACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;CAChE,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAA;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,aAAa,EACzD,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAqC5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAEvF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAOzF"}
@@ -0,0 +1,4 @@
1
+ export declare const ARWEAVE_TX_ID_REGEX: RegExp;
2
+ export declare const TTL_MIN = 60;
3
+ export declare const TTL_MAX = 86400;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAAgB,CAAA;AAEhD,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB,eAAO,MAAM,OAAO,QAAS,CAAA"}