permaweb-deploy 0.0.0-rc-20251001215907 → 0.0.0-rc-20251001221705

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 (59) hide show
  1. package/dist/commands/deploy.d.ts +9 -0
  2. package/dist/commands/deploy.d.ts.map +1 -0
  3. package/dist/commands/deploy.js +199 -0
  4. package/dist/commands/deploy.js.map +1 -0
  5. package/dist/commands/interactive.d.ts +7 -0
  6. package/dist/commands/interactive.d.ts.map +1 -0
  7. package/dist/commands/interactive.js +63 -0
  8. package/dist/commands/interactive.js.map +1 -0
  9. package/dist/constants/flags.d.ts +76 -0
  10. package/dist/constants/flags.d.ts.map +1 -0
  11. package/dist/constants/flags.js +172 -0
  12. package/dist/constants/flags.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +2 -299
  16. package/dist/index.js.map +1 -0
  17. package/dist/prompts/arns.d.ts +11 -0
  18. package/dist/prompts/arns.d.ts.map +1 -0
  19. package/dist/prompts/arns.js +62 -0
  20. package/dist/prompts/arns.js.map +1 -0
  21. package/dist/prompts/deployment.d.ts +6 -0
  22. package/dist/prompts/deployment.d.ts.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.d.ts +11 -0
  26. package/dist/prompts/wallet.d.ts.map +1 -0
  27. package/dist/prompts/wallet.js +51 -0
  28. package/dist/prompts/wallet.js.map +1 -0
  29. package/dist/types/index.d.ts +31 -0
  30. package/dist/types/index.d.ts.map +1 -0
  31. package/dist/types/index.js +2 -0
  32. package/dist/types/index.js.map +1 -0
  33. package/dist/utils/__tests__/constants.test.d.ts +2 -0
  34. package/dist/utils/__tests__/constants.test.d.ts.map +1 -0
  35. package/dist/utils/config-resolver.d.ts +72 -0
  36. package/dist/utils/config-resolver.d.ts.map +1 -0
  37. package/dist/utils/config-resolver.js +39 -0
  38. package/dist/utils/config-resolver.js.map +1 -0
  39. package/dist/utils/constants.d.ts +4 -0
  40. package/dist/utils/constants.d.ts.map +1 -0
  41. package/dist/utils/constants.js +6 -0
  42. package/dist/utils/constants.js.map +1 -0
  43. package/dist/utils/path.d.ts +5 -0
  44. package/dist/utils/path.d.ts.map +1 -0
  45. package/dist/utils/path.js +15 -0
  46. package/dist/utils/path.js.map +1 -0
  47. package/dist/utils/signer.d.ts +17 -0
  48. package/dist/utils/signer.d.ts.map +1 -0
  49. package/dist/utils/signer.js +40 -0
  50. package/dist/utils/signer.js.map +1 -0
  51. package/dist/utils/uploader.d.ts +4 -0
  52. package/dist/utils/uploader.d.ts.map +1 -0
  53. package/dist/utils/uploader.js +75 -0
  54. package/dist/utils/uploader.js.map +1 -0
  55. package/dist/utils/validators.d.ts +29 -0
  56. package/dist/utils/validators.d.ts.map +1 -0
  57. package/dist/utils/validators.js +62 -0
  58. package/dist/utils/validators.js.map +1 -0
  59. package/package.json +2 -2
@@ -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":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAgBrC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,OAAgB,IAAI,KAAK;IAEzB,OAAgB,WAAW,SAA4C;IAEvE,OAAgB,QAAQ,WAQvB;IAED,OAAgB,KAAK,sBAAkC;IAE1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgOlC"}
@@ -0,0 +1,199 @@
1
+ import fs from 'node:fs';
2
+ import { ARIO, AOProcess, ANT } from '@ar.io/sdk';
3
+ import { TurboFactory } from '@ardrive/turbo-sdk';
4
+ import { Command } from '@oclif/core';
5
+ import { connect } from '@permaweb/aoconnect';
6
+ import boxen from 'boxen';
7
+ import chalk from 'chalk';
8
+ import Table from 'cli-table3';
9
+ import ora from 'ora';
10
+ import { deployFlagConfigs } from '../constants/flags.js';
11
+ import { promptAdvancedOptions } from '../prompts/arns.js';
12
+ import { getWalletConfig } from '../prompts/wallet.js';
13
+ import { extractFlags, resolveConfig } from '../utils/config-resolver.js';
14
+ import { expandPath } from '../utils/path.js';
15
+ import { createSigner } from '../utils/signer.js';
16
+ import { uploadFile, uploadFolder } from '../utils/uploader.js';
17
+
18
+ class Deploy extends Command {
19
+ static args = {};
20
+ static description = "Deploy your application to the permaweb";
21
+ static examples = [
22
+ "<%= config.bin %> deploy # Interactive mode",
23
+ "<%= config.bin %> deploy --arns-name my-app --wallet ./wallet.json",
24
+ '<%= config.bin %> deploy --arns-name my-app --private-key "$(cat wallet.json)"',
25
+ "<%= config.bin %> deploy --arns-name my-app --undername staging",
26
+ "<%= config.bin %> deploy --arns-name my-app --deploy-file ./dist/index.html",
27
+ "<%= config.bin %> deploy --arns-name my-app --sig-type ethereum --wallet ./private-key.txt",
28
+ '<%= config.bin %> deploy --arns-name my-app --sig-type ethereum --private-key "0x..."'
29
+ ];
30
+ static flags = extractFlags(deployFlagConfigs);
31
+ async run() {
32
+ try {
33
+ const { flags } = await this.parse(Deploy);
34
+ const interactive = !flags["arns-name"];
35
+ if (interactive) {
36
+ this.log(chalk.cyan.bold("\n🎯 Interactive Deployment Mode\n"));
37
+ }
38
+ const baseConfig = await resolveConfig(deployFlagConfigs, flags, {
39
+ interactive
40
+ });
41
+ let walletConfig = {
42
+ privateKey: baseConfig["private-key"],
43
+ wallet: baseConfig.wallet
44
+ };
45
+ if (interactive && !baseConfig.wallet && !baseConfig["private-key"]) {
46
+ const config = await getWalletConfig();
47
+ walletConfig = {
48
+ privateKey: config.privateKey,
49
+ wallet: config.wallet
50
+ };
51
+ }
52
+ let advancedOptions;
53
+ if (interactive) {
54
+ const options = await promptAdvancedOptions();
55
+ advancedOptions = options || void 0;
56
+ }
57
+ const deployConfig = {
58
+ "ario-process": advancedOptions?.arioProcess || baseConfig["ario-process"],
59
+ "arns-name": baseConfig["arns-name"],
60
+ "deploy-file": baseConfig["deploy-file"],
61
+ "deploy-folder": baseConfig["deploy-folder"],
62
+ "private-key": walletConfig.privateKey,
63
+ "sig-type": baseConfig["sig-type"],
64
+ "ttl-seconds": advancedOptions?.ttlSeconds || baseConfig["ttl-seconds"],
65
+ undername: advancedOptions?.undername || baseConfig.undername,
66
+ wallet: walletConfig.wallet
67
+ };
68
+ if (interactive) {
69
+ this.log("");
70
+ }
71
+ let deployKey;
72
+ if (deployConfig.wallet) {
73
+ const walletPath = expandPath(deployConfig.wallet);
74
+ if (!fs.existsSync(walletPath)) {
75
+ this.error(`Wallet file [${deployConfig.wallet}] does not exist`);
76
+ }
77
+ const walletContent = fs.readFileSync(walletPath, "utf8");
78
+ deployKey = deployConfig["sig-type"] === "arweave" ? Buffer.from(walletContent).toString("base64") : walletContent.trim();
79
+ } else if (deployConfig["private-key"]) {
80
+ deployKey = deployConfig["sig-type"] === "arweave" ? Buffer.from(deployConfig["private-key"]).toString("base64") : deployConfig["private-key"].trim();
81
+ } else {
82
+ deployKey = process.env.DEPLOY_KEY || "";
83
+ if (!deployKey) {
84
+ this.error(
85
+ "DEPLOY_KEY environment variable not set. Use --wallet, --private-key, or set DEPLOY_KEY"
86
+ );
87
+ }
88
+ }
89
+ const arioProcess = deployConfig["ario-process"];
90
+ this.log(chalk.cyan.bold("\n🚀 Starting deployment...\n"));
91
+ try {
92
+ const spinner = ora("Initializing ARIO").start();
93
+ const ario = ARIO.init({
94
+ process: new AOProcess({
95
+ ao: connect({
96
+ CU_URL: "https://cu.ardrive.io",
97
+ MODE: "legacy"
98
+ }),
99
+ processId: arioProcess
100
+ })
101
+ });
102
+ spinner.succeed("ARIO initialized");
103
+ spinner.start(`Fetching ArNS record for ${chalk.yellow(deployConfig["arns-name"])}`);
104
+ const arnsNameRecord = await ario.getArNSRecord({ name: deployConfig["arns-name"] }).catch(() => {
105
+ spinner.fail(`ArNS name ${chalk.red(deployConfig["arns-name"])} does not exist`);
106
+ this.error(`ArNS name [${deployConfig["arns-name"]}] does not exist`);
107
+ });
108
+ spinner.succeed(`ArNS record fetched for ${chalk.green(deployConfig["arns-name"])}`);
109
+ spinner.start("Creating signer");
110
+ const { signer, token } = createSigner(deployConfig["sig-type"], deployKey);
111
+ spinner.succeed(`Signer created (${chalk.cyan(deployConfig["sig-type"])})`);
112
+ spinner.start("Initializing Turbo");
113
+ const turbo = TurboFactory.authenticated({
114
+ signer,
115
+ token
116
+ });
117
+ spinner.succeed("Turbo initialized");
118
+ let txOrManifestId;
119
+ if (deployConfig["deploy-file"]) {
120
+ const filePath = expandPath(deployConfig["deploy-file"]);
121
+ spinner.start(`Uploading file ${chalk.yellow(deployConfig["deploy-file"])}`);
122
+ txOrManifestId = await uploadFile(turbo, filePath);
123
+ spinner.succeed(`File uploaded: ${chalk.green(txOrManifestId)}`);
124
+ } else {
125
+ const folderPath = expandPath(deployConfig["deploy-folder"]);
126
+ spinner.start(`Uploading folder ${chalk.yellow(deployConfig["deploy-folder"])}`);
127
+ txOrManifestId = await uploadFolder(turbo, folderPath);
128
+ spinner.succeed(`Folder uploaded: ${chalk.green(txOrManifestId)}`);
129
+ }
130
+ this.log("");
131
+ spinner.start("Updating ANT record");
132
+ const ant = ANT.init({ processId: arnsNameRecord.processId, signer });
133
+ await ant.setRecord(
134
+ {
135
+ transactionId: txOrManifestId,
136
+ ttlSeconds: Number.parseInt(deployConfig["ttl-seconds"], 10),
137
+ undername: deployConfig.undername
138
+ },
139
+ {
140
+ tags: [
141
+ {
142
+ name: "App-Name",
143
+ value: "Permaweb-Deploy"
144
+ },
145
+ ...process.env.GITHUB_SHA ? [
146
+ {
147
+ name: "GIT-HASH",
148
+ value: process.env.GITHUB_SHA
149
+ }
150
+ ] : []
151
+ ]
152
+ }
153
+ );
154
+ spinner.succeed("ANT record updated");
155
+ const table = new Table({
156
+ head: [chalk.cyan.bold("Property"), chalk.cyan.bold("Value")],
157
+ style: {
158
+ head: []
159
+ }
160
+ });
161
+ table.push(
162
+ ["Tx ID", chalk.green(txOrManifestId)],
163
+ ["ArNS Name", chalk.yellow(deployConfig["arns-name"])],
164
+ ["Undername", chalk.yellow(deployConfig.undername)],
165
+ ["ANT", chalk.cyan(arnsNameRecord.processId)],
166
+ ["ARIO Process", chalk.gray(arioProcess)],
167
+ ["TTL Seconds", chalk.blue(deployConfig["ttl-seconds"])]
168
+ );
169
+ const successMessage = boxen(
170
+ `${chalk.green.bold("✨ Deployment Successful!")}
171
+
172
+ ${table.toString()}`,
173
+ {
174
+ borderColor: "green",
175
+ borderStyle: "round",
176
+ padding: 1,
177
+ title: chalk.bold("🚀 Permaweb Deploy"),
178
+ titleAlignment: "center"
179
+ }
180
+ );
181
+ this.log(`
182
+ ${successMessage}`);
183
+ } catch (error) {
184
+ this.error(
185
+ chalk.red(`Deployment failed: ${error instanceof Error ? error.message : String(error)}`)
186
+ );
187
+ }
188
+ } catch (error) {
189
+ if (error instanceof Error && error.name === "ExitPromptError") {
190
+ this.log(chalk.yellow("\n\n👋 Deployment cancelled"));
191
+ this.exit(0);
192
+ }
193
+ throw error;
194
+ }
195
+ }
196
+ }
197
+
198
+ export { Deploy as default };
199
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sources":["../../src/commands/deploy.ts"],"sourcesContent":["import fs from 'node:fs'\n\nimport { ANT, AOProcess, ARIO } from '@ar.io/sdk'\nimport { TurboFactory } from '@ardrive/turbo-sdk'\nimport { Command } from '@oclif/core'\nimport { connect } from '@permaweb/aoconnect'\nimport boxen from 'boxen'\nimport chalk from 'chalk'\nimport Table from 'cli-table3'\nimport ora from 'ora'\n\nimport { type DeployConfig, deployFlagConfigs } from '../constants/flags.js'\nimport { promptAdvancedOptions } from '../prompts/arns.js'\nimport { getWalletConfig } from '../prompts/wallet.js'\nimport type { SignerType } from '../types/index.js'\nimport { extractFlags, resolveConfig } from '../utils/config-resolver.js'\nimport { expandPath } from '../utils/path.js'\nimport { createSigner } from '../utils/signer.js'\nimport { uploadFile, uploadFolder } from '../utils/uploader.js'\n\nexport default class Deploy extends Command {\n static override args = {}\n\n static override description = 'Deploy your application to the permaweb'\n\n static override examples = [\n '<%= config.bin %> deploy # Interactive mode',\n '<%= config.bin %> deploy --arns-name my-app --wallet ./wallet.json',\n '<%= config.bin %> deploy --arns-name my-app --private-key \"$(cat wallet.json)\"',\n '<%= config.bin %> deploy --arns-name my-app --undername staging',\n '<%= config.bin %> deploy --arns-name my-app --deploy-file ./dist/index.html',\n '<%= config.bin %> deploy --arns-name my-app --sig-type ethereum --wallet ./private-key.txt',\n '<%= config.bin %> deploy --arns-name my-app --sig-type ethereum --private-key \"0x...\"',\n ]\n\n static override flags = extractFlags(deployFlagConfigs)\n\n public async run(): Promise<void> {\n try {\n const { flags } = await this.parse(Deploy)\n\n // Check if we need interactive mode (no arns-name provided)\n const interactive = !flags['arns-name']\n\n if (interactive) {\n this.log(chalk.cyan.bold('\\n🎯 Interactive Deployment Mode\\n'))\n }\n\n // Resolve base configuration - prompts will run automatically in interactive mode\n const baseConfig = (await resolveConfig<typeof deployFlagConfigs>(deployFlagConfigs, flags, {\n interactive,\n })) as DeployConfig\n\n // Handle wallet configuration (shared between wallet and privateKey)\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 // Handle advanced options (shared between ttlSeconds, undername, arioProcess)\n let advancedOptions:\n | {\n arioProcess: string\n ttlSeconds: string\n undername: string\n }\n | undefined\n\n if (interactive) {\n const options = await promptAdvancedOptions()\n advancedOptions = options || undefined\n }\n\n // Build final config with shared prompt results\n const deployConfig: DeployConfig = {\n 'ario-process': advancedOptions?.arioProcess || baseConfig['ario-process'],\n 'arns-name': baseConfig['arns-name'],\n 'deploy-file': baseConfig['deploy-file'],\n 'deploy-folder': baseConfig['deploy-folder'],\n 'private-key': walletConfig.privateKey,\n 'sig-type': baseConfig['sig-type'],\n 'ttl-seconds': advancedOptions?.ttlSeconds || baseConfig['ttl-seconds'],\n undername: advancedOptions?.undername || baseConfig.undername,\n wallet: walletConfig.wallet,\n }\n\n if (interactive) {\n this.log('')\n }\n\n // Get deploy key from wallet file, private-key flag, or environment variable\n let deployKey: string\n if (deployConfig.wallet) {\n const walletPath = expandPath(deployConfig.wallet)\n if (!fs.existsSync(walletPath)) {\n this.error(`Wallet file [${deployConfig.wallet}] does not exist`)\n }\n\n const walletContent = fs.readFileSync(walletPath, 'utf8')\n // For Arweave wallets (JWK), encode to base64. For others (private keys), use as-is\n deployKey =\n deployConfig['sig-type'] === 'arweave'\n ? Buffer.from(walletContent).toString('base64')\n : walletContent.trim()\n } else if (deployConfig['private-key']) {\n // For Arweave wallets (JWK JSON), encode to base64. For others, use as-is\n deployKey =\n deployConfig['sig-type'] === 'arweave'\n ? Buffer.from(deployConfig['private-key']).toString('base64')\n : deployConfig['private-key'].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 // All validation is now handled in resolveDeployConfig\n const arioProcess = deployConfig['ario-process']\n\n this.log(chalk.cyan.bold('\\n🚀 Starting deployment...\\n'))\n try {\n // Initialize ARIO\n const spinner = ora('Initializing ARIO').start()\n\n const ario = ARIO.init({\n process: new AOProcess({\n ao: connect({\n CU_URL: 'https://cu.ardrive.io',\n MODE: 'legacy',\n }),\n processId: arioProcess,\n }),\n })\n\n spinner.succeed('ARIO initialized')\n\n // Get ArNS record\n spinner.start(`Fetching ArNS record for ${chalk.yellow(deployConfig['arns-name'])}`)\n const arnsNameRecord = await ario\n .getArNSRecord({ name: deployConfig['arns-name'] })\n .catch(() => {\n spinner.fail(`ArNS name ${chalk.red(deployConfig['arns-name'])} does not exist`)\n this.error(`ArNS name [${deployConfig['arns-name']}] does not exist`)\n })\n\n spinner.succeed(`ArNS record fetched for ${chalk.green(deployConfig['arns-name'])}`)\n\n // Create signer\n spinner.start('Creating signer')\n const { signer, token } = createSigner(deployConfig['sig-type'] as SignerType, deployKey)\n spinner.succeed(`Signer created (${chalk.cyan(deployConfig['sig-type'])})`)\n\n // Initialize Turbo\n spinner.start('Initializing Turbo')\n const turbo = TurboFactory.authenticated({\n signer,\n token,\n })\n spinner.succeed('Turbo initialized')\n\n // Upload file or folder\n let txOrManifestId: string\n if (deployConfig['deploy-file']) {\n const filePath = expandPath(deployConfig['deploy-file'])\n spinner.start(`Uploading file ${chalk.yellow(deployConfig['deploy-file'])}`)\n txOrManifestId = await uploadFile(turbo, filePath)\n spinner.succeed(`File uploaded: ${chalk.green(txOrManifestId)}`)\n } else {\n const folderPath = expandPath(deployConfig['deploy-folder'])\n spinner.start(`Uploading folder ${chalk.yellow(deployConfig['deploy-folder'])}`)\n txOrManifestId = await uploadFolder(turbo, folderPath)\n spinner.succeed(`Folder uploaded: ${chalk.green(txOrManifestId)}`)\n }\n\n this.log('')\n\n // Initialize ANT and update record\n spinner.start('Updating ANT record')\n const ant = ANT.init({ processId: arnsNameRecord.processId, signer })\n\n await ant.setRecord(\n {\n transactionId: txOrManifestId,\n ttlSeconds: Number.parseInt(deployConfig['ttl-seconds'], 10),\n undername: deployConfig.undername,\n },\n {\n tags: [\n {\n name: 'App-Name',\n value: 'Permaweb-Deploy',\n },\n ...(process.env.GITHUB_SHA\n ? [\n {\n name: 'GIT-HASH',\n value: process.env.GITHUB_SHA,\n },\n ]\n : []),\n ],\n },\n )\n\n spinner.succeed('ANT record updated')\n\n // Display deployment details in a table inside a success box\n const table = new Table({\n head: [chalk.cyan.bold('Property'), chalk.cyan.bold('Value')],\n style: {\n head: [],\n },\n })\n\n table.push(\n ['Tx ID', chalk.green(txOrManifestId)],\n ['ArNS Name', chalk.yellow(deployConfig['arns-name'])],\n ['Undername', chalk.yellow(deployConfig.undername)],\n ['ANT', chalk.cyan(arnsNameRecord.processId)],\n ['ARIO Process', chalk.gray(arioProcess)],\n ['TTL Seconds', chalk.blue(deployConfig['ttl-seconds'])],\n )\n\n const successMessage = boxen(\n `${chalk.green.bold('✨ Deployment 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 } catch (error) {\n this.error(\n chalk.red(`Deployment failed: ${error instanceof Error ? error.message : String(error)}`),\n )\n }\n } catch (error) {\n // Handle user cancellation (Ctrl+C)\n if (error instanceof Error && error.name === 'ExitPromptError') {\n this.log(chalk.yellow('\\n\\n👋 Deployment cancelled'))\n this.exit(0)\n }\n\n throw error\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Interactive extends Command {
3
+ static description: string;
4
+ static examples: string[];
5
+ run(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGrC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,OAAgB,WAAW,SAAqD;IAEhF,OAAgB,QAAQ,WAGvB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyDlC"}
@@ -0,0 +1,63 @@
1
+ import { select } from '@inquirer/prompts';
2
+ import { Command } from '@oclif/core';
3
+ import chalk from 'chalk';
4
+
5
+ class Interactive extends Command {
6
+ static description = "Interactive command selector for permaweb-deploy";
7
+ static examples = [
8
+ "<%= config.bin %> interactive",
9
+ "<%= config.bin %> interactive --help"
10
+ ];
11
+ async run() {
12
+ try {
13
+ this.log("🚀 Welcome to Permaweb Deploy!\n");
14
+ const command = await select({
15
+ choices: [
16
+ {
17
+ description: "Deploy your application to the permaweb",
18
+ name: "Deploy to Permaweb",
19
+ value: "deploy"
20
+ },
21
+ {
22
+ description: "Display help information",
23
+ name: "Show Help",
24
+ value: "help"
25
+ },
26
+ {
27
+ description: "Exit the interactive prompt",
28
+ name: "Exit",
29
+ value: "exit"
30
+ }
31
+ ],
32
+ message: "What would you like to do?"
33
+ });
34
+ switch (command) {
35
+ case "deploy": {
36
+ this.log("\n📦 Starting deployment wizard...\n");
37
+ await this.config.runCommand("deploy", []);
38
+ break;
39
+ }
40
+ case "help": {
41
+ await this.config.runCommand("help", []);
42
+ break;
43
+ }
44
+ case "exit": {
45
+ this.log("\n👋 Goodbye!");
46
+ break;
47
+ }
48
+ default: {
49
+ this.log("Unknown command");
50
+ }
51
+ }
52
+ } catch (error) {
53
+ if (error instanceof Error && error.name === "ExitPromptError") {
54
+ this.log(chalk.yellow("\n\n👋 Goodbye!"));
55
+ this.exit(0);
56
+ }
57
+ throw error;
58
+ }
59
+ }
60
+ }
61
+
62
+ export { Interactive as default };
63
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sources":["../../src/commands/interactive.ts"],"sourcesContent":["import { select } from '@inquirer/prompts'\nimport { Command } from '@oclif/core'\nimport chalk from 'chalk'\n\nexport default class Interactive extends Command {\n static override description = 'Interactive command selector for permaweb-deploy'\n\n static override examples = [\n '<%= config.bin %> interactive',\n '<%= config.bin %> interactive --help',\n ]\n\n public async run(): Promise<void> {\n try {\n this.log('🚀 Welcome to Permaweb Deploy!\\n')\n\n const command = await select({\n choices: [\n {\n description: 'Deploy your application to the permaweb',\n name: 'Deploy to Permaweb',\n value: 'deploy',\n },\n {\n description: 'Display help information',\n name: 'Show Help',\n value: 'help',\n },\n {\n description: 'Exit the interactive prompt',\n name: 'Exit',\n value: 'exit',\n },\n ],\n message: 'What would you like to do?',\n })\n\n switch (command) {\n case 'deploy': {\n this.log('\\n📦 Starting deployment wizard...\\n')\n // Run the deploy command\n await this.config.runCommand('deploy', [])\n break\n }\n\n case 'help': {\n await this.config.runCommand('help', [])\n break\n }\n\n case 'exit': {\n this.log('\\n👋 Goodbye!')\n break\n }\n\n default: {\n this.log('Unknown command')\n }\n }\n } catch (error) {\n // Handle user cancellation (Ctrl+C)\n if (error instanceof Error && error.name === 'ExitPromptError') {\n this.log(chalk.yellow('\\n\\n👋 Goodbye!'))\n this.exit(0)\n }\n\n throw error\n }\n }\n}\n"],"names":[],"mappings":";;;;AAIA,MAAqB,oBAAoB,OAAA,CAAQ;AAAA,EAC/C,OAAgB,WAAA,GAAc,kDAAA;AAAA,EAE9B,OAAgB,QAAA,GAAW;AAAA,IACzB,+BAAA;AAAA,IACA;AAAA,GACF;AAAA,EAEA,MAAa,GAAA,GAAqB;AAChC,IAAA,IAAI;AACF,MAAA,IAAA,CAAK,IAAI,kCAAkC,CAAA;AAE3C,MAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO;AAAA,QAC3B,OAAA,EAAS;AAAA,UACP;AAAA,YACE,WAAA,EAAa,yCAAA;AAAA,YACb,IAAA,EAAM,oBAAA;AAAA,YACN,KAAA,EAAO;AAAA,WACT;AAAA,UACA;AAAA,YACE,WAAA,EAAa,0BAAA;AAAA,YACb,IAAA,EAAM,WAAA;AAAA,YACN,KAAA,EAAO;AAAA,WACT;AAAA,UACA;AAAA,YACE,WAAA,EAAa,6BAAA;AAAA,YACb,IAAA,EAAM,MAAA;AAAA,YACN,KAAA,EAAO;AAAA;AACT,SACF;AAAA,QACA,OAAA,EAAS;AAAA,OACV,CAAA;AAED,MAAA,QAAQ,OAAA;AAAS,QACf,KAAK,QAAA,EAAU;AACb,UAAA,IAAA,CAAK,IAAI,sCAAsC,CAAA;AAE/C,UAAA,MAAM,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW,QAAA,EAAU,EAAE,CAAA;AACzC,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,MAAA,EAAQ;AACX,UAAA,MAAM,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW,MAAA,EAAQ,EAAE,CAAA;AACvC,UAAA;AAAA,QACF;AAAA,QAEA,KAAK,MAAA,EAAQ;AACX,UAAA,IAAA,CAAK,IAAI,eAAe,CAAA;AACxB,UAAA;AAAA,QACF;AAAA,QAEA,SAAS;AACP,UAAA,IAAA,CAAK,IAAI,iBAAiB,CAAA;AAAA,QAC5B;AAAA;AACF,IACF,SAAS,KAAA,EAAO;AAEd,MAAA,IAAI,KAAA,YAAiB,KAAA,IAAS,KAAA,CAAM,IAAA,KAAS,iBAAA,EAAmB;AAC9D,QAAA,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,MAAA,CAAO,iBAAiB,CAAC,CAAA;AACxC,QAAA,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,MACb;AAEA,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AACF;;;;"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Global flag definitions - single source of truth for all flags
3
+ * Each flag includes its oclif definition and optional prompt function
4
+ */
5
+ export declare const globalFlags: {
6
+ arioProcess: import("../utils/config-resolver.js").FlagConfig<string, any>;
7
+ arnsName: import("../utils/config-resolver.js").FlagConfig<string, any>;
8
+ deployFile: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
9
+ deployFolder: import("../utils/config-resolver.js").FlagConfig<string, any>;
10
+ privateKey: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
11
+ sigType: import("../utils/config-resolver.js").FlagConfig<string, any>;
12
+ ttlSeconds: import("../utils/config-resolver.js").FlagConfig<string, any>;
13
+ undername: import("../utils/config-resolver.js").FlagConfig<string, any>;
14
+ wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
15
+ };
16
+ /**
17
+ * Complete set of flags for the deploy command
18
+ */
19
+ export declare const deployFlags: {
20
+ 'ario-process': any;
21
+ 'arns-name': any;
22
+ 'deploy-file': any;
23
+ 'deploy-folder': any;
24
+ 'private-key': any;
25
+ 'sig-type': any;
26
+ 'ttl-seconds': any;
27
+ undername: any;
28
+ wallet: any;
29
+ };
30
+ /**
31
+ * ArNS-specific flags (subset of deploy flags)
32
+ */
33
+ export declare const arnsFlags: {
34
+ 'ario-process': any;
35
+ 'arns-name': any;
36
+ 'ttl-seconds': any;
37
+ undername: any;
38
+ };
39
+ /**
40
+ * Wallet/authentication flags (subset of deploy flags)
41
+ */
42
+ export declare const walletFlags: {
43
+ 'private-key': any;
44
+ 'sig-type': any;
45
+ wallet: any;
46
+ };
47
+ /**
48
+ * Deploy command configuration type
49
+ */
50
+ export interface DeployConfig {
51
+ 'ario-process': string;
52
+ 'arns-name': string;
53
+ 'deploy-file'?: string;
54
+ 'deploy-folder': string;
55
+ 'private-key'?: string;
56
+ 'sig-type': string;
57
+ 'ttl-seconds': string;
58
+ undername: string;
59
+ wallet?: string;
60
+ }
61
+ /**
62
+ * Deploy command flag configurations
63
+ * Maps kebab-case flag names to their camelCase globalFlags definitions
64
+ */
65
+ export declare const deployFlagConfigs: {
66
+ readonly 'ario-process': import("../utils/config-resolver.js").FlagConfig<string, any>;
67
+ readonly 'arns-name': import("../utils/config-resolver.js").FlagConfig<string, any>;
68
+ readonly 'deploy-file': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
69
+ readonly 'deploy-folder': import("../utils/config-resolver.js").FlagConfig<string, any>;
70
+ readonly 'private-key': import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
71
+ readonly 'sig-type': import("../utils/config-resolver.js").FlagConfig<string, any>;
72
+ readonly 'ttl-seconds': import("../utils/config-resolver.js").FlagConfig<string, any>;
73
+ readonly undername: import("../utils/config-resolver.js").FlagConfig<string, any>;
74
+ readonly wallet: import("../utils/config-resolver.js").FlagConfig<string | undefined, any>;
75
+ };
76
+ //# sourceMappingURL=flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/constants/flags.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAoIvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAUvB,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,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAUpB,CAAA"}
@@ -0,0 +1,172 @@
1
+ import { ARIO_MAINNET_PROCESS_ID } from '@ar.io/sdk';
2
+ import { Flags } from '@oclif/core';
3
+ import { promptArnsName, promptArioProcess } from '../prompts/arns.js';
4
+ import { promptDeployTarget } from '../prompts/deployment.js';
5
+ import { promptSignerType } from '../prompts/wallet.js';
6
+ import { createFlagConfig } from '../utils/config-resolver.js';
7
+ import { TTL_MIN, TTL_MAX } from '../utils/constants.js';
8
+ import { validateFileExists, validateUndername, validateTtl, validateFolderExists, validateArioProcess, resolveArioProcess } from '../utils/validators.js';
9
+
10
+ const globalFlags = {
11
+ arioProcess: createFlagConfig({
12
+ flag: Flags.string({
13
+ char: "p",
14
+ default: ARIO_MAINNET_PROCESS_ID,
15
+ description: "The ARIO process to use (mainnet, testnet, or process ID)",
16
+ async parse(input) {
17
+ const validation = validateArioProcess(input);
18
+ if (validation !== true) {
19
+ throw new Error(validation);
20
+ }
21
+ return resolveArioProcess(input);
22
+ },
23
+ required: false
24
+ }),
25
+ prompt: promptArioProcess
26
+ }),
27
+ arnsName: createFlagConfig({
28
+ flag: Flags.string({
29
+ char: "n",
30
+ description: "The ArNS name to deploy to",
31
+ required: false
32
+ }),
33
+ prompt: promptArnsName,
34
+ triggersInteractive: true
35
+ }),
36
+ deployFile: createFlagConfig({
37
+ flag: Flags.string({
38
+ char: "f",
39
+ description: "File to deploy (overrides deploy-folder)",
40
+ async parse(input) {
41
+ const validation = validateFileExists(input);
42
+ if (validation !== true) {
43
+ throw new Error(validation);
44
+ }
45
+ return input;
46
+ },
47
+ required: false
48
+ }),
49
+ async prompt() {
50
+ const target = await promptDeployTarget();
51
+ return target.type === "file" ? target.path : void 0;
52
+ }
53
+ }),
54
+ deployFolder: createFlagConfig({
55
+ flag: Flags.string({
56
+ char: "d",
57
+ default: "./dist",
58
+ description: "Folder to deploy",
59
+ async parse(input) {
60
+ const validation = validateFolderExists(input);
61
+ if (validation !== true) {
62
+ throw new Error(validation);
63
+ }
64
+ return input;
65
+ },
66
+ required: false
67
+ }),
68
+ async prompt() {
69
+ const target = await promptDeployTarget();
70
+ return target.type === "folder" ? target.path : "./dist";
71
+ }
72
+ }),
73
+ privateKey: createFlagConfig({
74
+ flag: Flags.string({
75
+ char: "k",
76
+ description: "Private key or JWK JSON string (alternative to --wallet)",
77
+ exclusive: ["wallet"],
78
+ required: false
79
+ })
80
+ }),
81
+ sigType: createFlagConfig({
82
+ flag: Flags.string({
83
+ char: "s",
84
+ default: "arweave",
85
+ description: "Signer type for deployment",
86
+ options: ["arweave", "ethereum", "polygon", "kyve"],
87
+ required: false
88
+ }),
89
+ prompt: promptSignerType
90
+ }),
91
+ ttlSeconds: createFlagConfig({
92
+ flag: Flags.string({
93
+ char: "t",
94
+ default: "60",
95
+ description: `ArNS TTL in seconds (${TTL_MIN}-${TTL_MAX})`,
96
+ async parse(input) {
97
+ const validation = validateTtl(input);
98
+ if (validation !== true) {
99
+ throw new Error(validation);
100
+ }
101
+ return input;
102
+ },
103
+ required: false
104
+ })
105
+ }),
106
+ undername: createFlagConfig({
107
+ flag: Flags.string({
108
+ char: "u",
109
+ default: "@",
110
+ description: "ANT undername to update",
111
+ async parse(input) {
112
+ const validation = validateUndername(input);
113
+ if (validation !== true) {
114
+ throw new Error(validation);
115
+ }
116
+ return input;
117
+ },
118
+ required: false
119
+ })
120
+ }),
121
+ wallet: createFlagConfig({
122
+ flag: Flags.string({
123
+ char: "w",
124
+ description: "Path to wallet file (JWK for Arweave, private key for others)",
125
+ exclusive: ["private-key"],
126
+ async parse(input) {
127
+ const validation = validateFileExists(input);
128
+ if (validation !== true) {
129
+ throw new Error(validation);
130
+ }
131
+ return input;
132
+ },
133
+ required: false
134
+ })
135
+ })
136
+ };
137
+ const deployFlags = {
138
+ "ario-process": globalFlags.arioProcess.flag,
139
+ "arns-name": globalFlags.arnsName.flag,
140
+ "deploy-file": globalFlags.deployFile.flag,
141
+ "deploy-folder": globalFlags.deployFolder.flag,
142
+ "private-key": globalFlags.privateKey.flag,
143
+ "sig-type": globalFlags.sigType.flag,
144
+ "ttl-seconds": globalFlags.ttlSeconds.flag,
145
+ undername: globalFlags.undername.flag,
146
+ wallet: globalFlags.wallet.flag
147
+ };
148
+ const arnsFlags = {
149
+ "ario-process": globalFlags.arioProcess.flag,
150
+ "arns-name": globalFlags.arnsName.flag,
151
+ "ttl-seconds": globalFlags.ttlSeconds.flag,
152
+ undername: globalFlags.undername.flag
153
+ };
154
+ const walletFlags = {
155
+ "private-key": globalFlags.privateKey.flag,
156
+ "sig-type": globalFlags.sigType.flag,
157
+ wallet: globalFlags.wallet.flag
158
+ };
159
+ const deployFlagConfigs = {
160
+ "ario-process": globalFlags.arioProcess,
161
+ "arns-name": globalFlags.arnsName,
162
+ "deploy-file": globalFlags.deployFile,
163
+ "deploy-folder": globalFlags.deployFolder,
164
+ "private-key": globalFlags.privateKey,
165
+ "sig-type": globalFlags.sigType,
166
+ "ttl-seconds": globalFlags.ttlSeconds,
167
+ undername: globalFlags.undername,
168
+ wallet: globalFlags.wallet
169
+ };
170
+
171
+ export { arnsFlags, deployFlagConfigs, deployFlags, globalFlags, walletFlags };
172
+ //# sourceMappingURL=flags.js.map
@@ -0,0 +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 } 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'\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 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 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 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 'deploy-file': globalFlags.deployFile.flag,\n 'deploy-folder': globalFlags.deployFolder.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 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 'deploy-file'?: string\n 'deploy-folder': string\n 'private-key'?: string\n 'sig-type': string\n 'ttl-seconds': string\n undername: 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 'deploy-file': globalFlags.deployFile,\n 'deploy-folder': globalFlags.deployFolder,\n 'private-key': globalFlags.privateKey,\n 'sig-type': globalFlags.sigType,\n 'ttl-seconds': globalFlags.ttlSeconds,\n undername: globalFlags.undername,\n wallet: globalFlags.wallet,\n} as const\n"],"names":[],"mappings":"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"}
@@ -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"}