forge-solana-sdk 2.2.5 → 3.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 (76) hide show
  1. package/README.md +179 -1
  2. package/dist/cli.js +123 -7
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/analytics.d.ts +2 -0
  5. package/dist/commands/analytics.d.ts.map +1 -0
  6. package/dist/commands/analytics.js +51 -0
  7. package/dist/commands/analytics.js.map +1 -0
  8. package/dist/commands/audit.d.ts +1 -1
  9. package/dist/commands/audit.d.ts.map +1 -1
  10. package/dist/commands/audit.js +60 -2
  11. package/dist/commands/audit.js.map +1 -1
  12. package/dist/commands/ci.d.ts +2 -0
  13. package/dist/commands/ci.d.ts.map +1 -0
  14. package/dist/commands/ci.js +107 -0
  15. package/dist/commands/ci.js.map +1 -0
  16. package/dist/commands/cost.d.ts +2 -0
  17. package/dist/commands/cost.d.ts.map +1 -0
  18. package/dist/commands/cost.js +53 -0
  19. package/dist/commands/cost.js.map +1 -0
  20. package/dist/commands/docs.d.ts +2 -0
  21. package/dist/commands/docs.d.ts.map +1 -0
  22. package/dist/commands/docs.js +85 -0
  23. package/dist/commands/docs.js.map +1 -0
  24. package/dist/commands/init.d.ts +2 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +88 -1
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/interactive.d.ts +2 -0
  29. package/dist/commands/interactive.d.ts.map +1 -0
  30. package/dist/commands/interactive.js +51 -0
  31. package/dist/commands/interactive.js.map +1 -0
  32. package/dist/commands/keypair.d.ts +2 -0
  33. package/dist/commands/keypair.d.ts.map +1 -0
  34. package/dist/commands/keypair.js +54 -0
  35. package/dist/commands/keypair.js.map +1 -0
  36. package/dist/commands/migrate.d.ts +2 -0
  37. package/dist/commands/migrate.d.ts.map +1 -0
  38. package/dist/commands/migrate.js +15 -0
  39. package/dist/commands/migrate.js.map +1 -0
  40. package/dist/commands/monitor.d.ts +2 -0
  41. package/dist/commands/monitor.d.ts.map +1 -0
  42. package/dist/commands/monitor.js +49 -0
  43. package/dist/commands/monitor.js.map +1 -0
  44. package/dist/commands/network.d.ts +2 -0
  45. package/dist/commands/network.d.ts.map +1 -0
  46. package/dist/commands/network.js +58 -0
  47. package/dist/commands/network.js.map +1 -0
  48. package/dist/commands/profile.d.ts +2 -0
  49. package/dist/commands/profile.d.ts.map +1 -0
  50. package/dist/commands/profile.js +41 -0
  51. package/dist/commands/profile.js.map +1 -0
  52. package/dist/commands/quality.d.ts +2 -0
  53. package/dist/commands/quality.d.ts.map +1 -0
  54. package/dist/commands/quality.js +58 -0
  55. package/dist/commands/quality.js.map +1 -0
  56. package/dist/commands/search.d.ts +2 -0
  57. package/dist/commands/search.d.ts.map +1 -0
  58. package/dist/commands/search.js +26 -0
  59. package/dist/commands/search.js.map +1 -0
  60. package/dist/commands/upgrade.d.ts +2 -0
  61. package/dist/commands/upgrade.d.ts.map +1 -0
  62. package/dist/commands/upgrade.js +136 -0
  63. package/dist/commands/upgrade.js.map +1 -0
  64. package/dist/cpi.d.ts +1 -1
  65. package/dist/cpi.d.ts.map +1 -1
  66. package/dist/cpi.js +14 -0
  67. package/dist/cpi.js.map +1 -1
  68. package/dist/templates/index.d.ts +16 -0
  69. package/dist/templates/index.d.ts.map +1 -0
  70. package/dist/templates/index.js +81 -0
  71. package/dist/templates/index.js.map +1 -0
  72. package/dist/templates/token-program.d.ts +3 -0
  73. package/dist/templates/token-program.d.ts.map +1 -0
  74. package/dist/templates/token-program.js +158 -0
  75. package/dist/templates/token-program.js.map +1 -0
  76. package/package.json +2 -2
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ciCommand = ciCommand;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ async function ciCommand(platform = 'github') {
7
+ console.log('šŸ”„ FORGE CI/CD Integration\n');
8
+ try {
9
+ if (!(0, fs_1.existsSync)('Anchor.toml')) {
10
+ console.error('āŒ Not in an Anchor project directory');
11
+ process.exit(1);
12
+ }
13
+ if (platform === 'github') {
14
+ await generateGitHubActions();
15
+ }
16
+ else {
17
+ console.error(`āŒ Platform "${platform}" not supported`);
18
+ console.error('Supported platforms: github');
19
+ process.exit(1);
20
+ }
21
+ console.log('\nāœ… CI/CD workflow generated!');
22
+ console.log('šŸ“ Next steps:');
23
+ console.log(' 1. Review the generated workflow file');
24
+ console.log(' 2. Commit and push to GitHub');
25
+ console.log(' 3. Workflows will run automatically on push/PR');
26
+ }
27
+ catch (error) {
28
+ console.error('āŒ CI/CD setup failed');
29
+ console.error(`Error: ${error.message}`);
30
+ process.exit(1);
31
+ }
32
+ }
33
+ async function generateGitHubActions() {
34
+ const workflowsDir = (0, path_1.join)('.github', 'workflows');
35
+ (0, fs_1.mkdirSync)(workflowsDir, { recursive: true });
36
+ const workflow = `name: FORGE CI/CD
37
+
38
+ on:
39
+ push:
40
+ branches: [ main, develop ]
41
+ pull_request:
42
+ branches: [ main, develop ]
43
+
44
+ jobs:
45
+ test:
46
+ runs-on: ubuntu-latest
47
+
48
+ steps:
49
+ - uses: actions/checkout@v3
50
+
51
+ - name: Install Rust
52
+ uses: actions-rs/toolchain@v1
53
+ with:
54
+ toolchain: stable
55
+ override: true
56
+
57
+ - name: Install Solana CLI
58
+ run: |
59
+ sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
60
+ echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH
61
+
62
+ - name: Install Anchor
63
+ run: |
64
+ cargo install --git https://github.com/coral-xyz/anchor anchor-cli --tag v0.32.1 --locked
65
+
66
+ - name: Cache Anchor build
67
+ uses: actions/cache@v3
68
+ with:
69
+ path: |
70
+ ~/.cargo/bin/
71
+ target/
72
+ key: \${{ runner.os }}-anchor-\${{ hashFiles('**/Cargo.lock') }}
73
+
74
+ - name: Build program
75
+ run: anchor build
76
+
77
+ - name: Run tests
78
+ run: anchor test --skip-local-validator
79
+
80
+ - name: Run security audit
81
+ run: forge audit
82
+
83
+ - name: Check code quality
84
+ run: forge quality
85
+
86
+ deploy-devnet:
87
+ needs: test
88
+ runs-on: ubuntu-latest
89
+ if: github.ref == 'refs/heads/main'
90
+
91
+ steps:
92
+ - uses: actions/checkout@v3
93
+
94
+ - name: Install dependencies
95
+ run: |
96
+ sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
97
+ cargo install --git https://github.com/coral-xyz/anchor anchor-cli --tag v0.32.1 --locked
98
+
99
+ - name: Deploy to devnet
100
+ run: forge deploy --env devnet
101
+ env:
102
+ SOLANA_NETWORK: devnet
103
+ `;
104
+ (0, fs_1.writeFileSync)((0, path_1.join)(workflowsDir, 'forge-ci.yml'), workflow);
105
+ console.log('āœ… Generated: .github/workflows/forge-ci.yml');
106
+ }
107
+ //# sourceMappingURL=ci.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/commands/ci.ts"],"names":[],"mappings":";;AAGA,8BA4BC;AA/BD,2BAA0D;AAC1D,+BAA4B;AAErB,KAAK,UAAU,SAAS,CAAC,WAAmB,QAAQ;IACzD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,qBAAqB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,iBAAiB,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAEnE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,IAAA,cAAS,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmElB,CAAC;IAEA,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,YAAY,EAAE,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function costCommand(): Promise<void>;
2
+ //# sourceMappingURL=cost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA2CjD"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.costCommand = costCommand;
4
+ const fs_1 = require("fs");
5
+ async function costCommand() {
6
+ console.log('šŸ’° FORGE Cost Calculator\n');
7
+ try {
8
+ if (!(0, fs_1.existsSync)('Anchor.toml')) {
9
+ console.error('āŒ Not in an Anchor project directory');
10
+ process.exit(1);
11
+ }
12
+ const programId = getProgramId();
13
+ console.log('šŸ“Š Deployment Costs:\n');
14
+ console.log('šŸ’¾ Program Deployment:');
15
+ console.log(' • Rent (program account): ~2.5 SOL');
16
+ console.log(' • Transaction fee: ~0.000005 SOL');
17
+ console.log(' • Total: ~2.5 SOL');
18
+ console.log('\n⚔ Per-Transaction Costs:');
19
+ console.log(' • Basic instruction: ~0.000005 SOL');
20
+ console.log(' • Token transfer: ~0.00001 SOL');
21
+ console.log(' • Account creation: ~0.002 SOL (rent)');
22
+ console.log(' • PDA creation: ~0.002 SOL (rent)');
23
+ console.log('\nšŸ“ˆ Monthly Estimates (1000 transactions/day):');
24
+ console.log(' • Transaction fees: ~0.15 SOL/month');
25
+ console.log(' • Account creation (10/day): ~6 SOL/month');
26
+ console.log(' • Total: ~6.15 SOL/month');
27
+ console.log('\nšŸ’” Cost Optimization Tips:');
28
+ console.log(' • Reuse accounts when possible');
29
+ console.log(' • Use PDAs instead of creating new accounts');
30
+ console.log(' • Batch operations to reduce transaction count');
31
+ console.log(' • Close unused accounts to reclaim rent');
32
+ if (programId) {
33
+ console.log(`\nšŸ”— Check current rent: https://explorer.solana.com/address/${programId}`);
34
+ }
35
+ }
36
+ catch (error) {
37
+ console.error('āŒ Cost calculation failed');
38
+ console.error(`Error: ${error.message}`);
39
+ process.exit(1);
40
+ }
41
+ }
42
+ function getProgramId() {
43
+ try {
44
+ const { readFileSync } = require('fs');
45
+ const anchorToml = readFileSync('Anchor.toml', 'utf8');
46
+ const match = anchorToml.match(/\[programs\.localnet\]\s*([^=]+)\s*=\s*"([^"]+)"/);
47
+ return match ? match[2] : null;
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ //# sourceMappingURL=cost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":";;AAEA,kCA2CC;AA7CD,2BAAgC;AAEzB,KAAK,UAAU,WAAW;IAC/B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAEpC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAE1D,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,gEAAgE,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;IAEH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function docsCommand(): Promise<void>;
2
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAiEjD"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.docsCommand = docsCommand;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ async function docsCommand() {
7
+ console.log('šŸ“– FORGE Documentation Generator\n');
8
+ try {
9
+ if (!(0, fs_1.existsSync)('Anchor.toml')) {
10
+ console.error('āŒ Not in an Anchor project directory');
11
+ process.exit(1);
12
+ }
13
+ const idlPath = (0, path_1.join)('target', 'idl', `${getProgramName()}.json`);
14
+ if (!(0, fs_1.existsSync)(idlPath)) {
15
+ console.error('āŒ IDL not found. Run "anchor build" first.');
16
+ process.exit(1);
17
+ }
18
+ const idl = JSON.parse((0, fs_1.readFileSync)(idlPath, 'utf8'));
19
+ const docsDir = (0, path_1.join)('docs');
20
+ (0, fs_1.mkdirSync)(docsDir, { recursive: true });
21
+ let docs = `# ${idl.name} - API Documentation\n\n`;
22
+ docs += `Generated by FORGE\n\n`;
23
+ docs += `## Program ID\n\`\`\`\n${getProgramId()}\n\`\`\`\n\n`;
24
+ if (idl.instructions) {
25
+ docs += `## Instructions\n\n`;
26
+ for (const instruction of idl.instructions) {
27
+ docs += `### ${instruction.name}\n\n`;
28
+ if (instruction.accounts) {
29
+ docs += `**Accounts:**\n\n`;
30
+ for (const account of instruction.accounts) {
31
+ docs += `- \`${account.name}\`: ${account.isMut ? 'Mutable' : 'Read-only'} ${account.isSigner ? 'Signer' : ''}\n`;
32
+ }
33
+ docs += '\n';
34
+ }
35
+ if (instruction.args) {
36
+ docs += `**Arguments:**\n\n`;
37
+ for (const arg of instruction.args) {
38
+ docs += `- \`${arg.name}\`: ${arg.type}\n`;
39
+ }
40
+ docs += '\n';
41
+ }
42
+ }
43
+ }
44
+ if (idl.accounts) {
45
+ docs += `## Accounts\n\n`;
46
+ for (const account of idl.accounts) {
47
+ docs += `### ${account.name}\n\n`;
48
+ if (account.type?.fields) {
49
+ for (const field of account.type.fields) {
50
+ docs += `- \`${field.name}\`: ${field.type}\n`;
51
+ }
52
+ }
53
+ docs += '\n';
54
+ }
55
+ }
56
+ (0, fs_1.writeFileSync)((0, path_1.join)(docsDir, 'API.md'), docs);
57
+ console.log('āœ… Documentation generated: docs/API.md');
58
+ }
59
+ catch (error) {
60
+ console.error('āŒ Documentation generation failed');
61
+ console.error(`Error: ${error.message}`);
62
+ process.exit(1);
63
+ }
64
+ }
65
+ function getProgramName() {
66
+ try {
67
+ const anchorToml = (0, fs_1.readFileSync)('Anchor.toml', 'utf8');
68
+ const match = anchorToml.match(/\[programs\.localnet\]\s*([^=]+)\s*=\s*"([^"]+)"/);
69
+ return match ? match[1] : 'my-program';
70
+ }
71
+ catch {
72
+ return 'my-program';
73
+ }
74
+ }
75
+ function getProgramId() {
76
+ try {
77
+ const anchorToml = (0, fs_1.readFileSync)('Anchor.toml', 'utf8');
78
+ const match = anchorToml.match(/\[programs\.localnet\]\s*([^=]+)\s*=\s*"([^"]+)"/);
79
+ return match ? match[2] : 'Unknown';
80
+ }
81
+ catch {
82
+ return 'Unknown';
83
+ }
84
+ }
85
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function initCommand(projectName?: string, intent?: string, anchorVersion?: string): Promise<void>;
1
+ export declare function initCommand(projectName?: string, intent?: string, anchorVersion?: string, templateId?: string): Promise<void>;
2
+ export declare function listTemplatesCommand(): Promise<void>;
2
3
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,wBAAsB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkO9G"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,wBAAsB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiPnI;AAkED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB1D"}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initCommand = initCommand;
4
+ exports.listTemplatesCommand = listTemplatesCommand;
4
5
  const child_process_1 = require("child_process");
5
6
  const fs_1 = require("fs");
6
7
  const path_1 = require("path");
7
8
  const ascii_js_1 = require("../ascii.js");
8
9
  const cpi_js_1 = require("../cpi.js");
9
10
  const sdk_generator_js_1 = require("../sdk-generator.js");
10
- async function initCommand(projectName, intent, anchorVersion) {
11
+ const index_js_1 = require("../templates/index.js");
12
+ const token_program_js_1 = require("../templates/token-program.js");
13
+ async function initCommand(projectName, intent, anchorVersion, templateId) {
11
14
  console.log(ascii_js_1.logo);
12
15
  console.log('FORGE - Solana Development Platform\n');
13
16
  const name = projectName || 'forge-project';
@@ -51,6 +54,18 @@ async function initCommand(projectName, intent, anchorVersion) {
51
54
  catch (error) {
52
55
  console.warn('āš ļø Could not check Rust version. Ensure Rust 1.85.0+ is installed.');
53
56
  }
57
+ // Handle template if provided
58
+ if (templateId) {
59
+ const template = (0, index_js_1.getTemplate)(templateId);
60
+ if (!template) {
61
+ console.error(`āŒ Template "${templateId}" not found`);
62
+ console.error(`Available templates: ${index_js_1.templates.map(t => t.id).join(', ')}`);
63
+ process.exit(1);
64
+ }
65
+ console.log(`šŸ“š Using template: ${template.name}`);
66
+ console.log(` ${template.description}\n`);
67
+ return await initFromTemplate(name, template, anchorVersion || '0.32.1');
68
+ }
54
69
  console.log(`Initializing ${name}...\n`);
55
70
  // Create project directory
56
71
  const projectPath = (0, path_1.join)(process.cwd(), name);
@@ -217,4 +232,76 @@ pub struct ProcessIntent {${extraAccounts}
217
232
  console.log(` cd client && npm install && npm run build # Build the client SDK`);
218
233
  }
219
234
  }
235
+ async function initFromTemplate(projectName, template, anchorVersion) {
236
+ const projectPath = (0, path_1.join)(process.cwd(), projectName);
237
+ if ((0, fs_1.existsSync)(projectPath)) {
238
+ console.error(`āŒ Directory ${projectName} already exists`);
239
+ process.exit(1);
240
+ }
241
+ (0, fs_1.mkdirSync)(projectPath, { recursive: true });
242
+ (0, fs_1.mkdirSync)((0, path_1.join)(projectPath, 'programs', projectName, 'src'), { recursive: true });
243
+ const programId = "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS";
244
+ // Generate template files based on template ID
245
+ let templateFiles = [];
246
+ switch (template.id) {
247
+ case 'token-program':
248
+ templateFiles = (0, token_program_js_1.generateTokenProgramTemplate)(projectName, anchorVersion);
249
+ break;
250
+ default:
251
+ console.error(`āŒ Template "${template.id}" generator not yet implemented`);
252
+ process.exit(1);
253
+ }
254
+ // Create Anchor.toml
255
+ const anchorToml = `[toolchain]
256
+ anchor_version = "${anchorVersion}"
257
+
258
+ [features]
259
+ seeds = false
260
+ skip-lint = false
261
+
262
+ [programs.localnet]
263
+ ${projectName} = "${programId}"
264
+
265
+ [registry]
266
+ url = "https://api.apr.dev"
267
+
268
+ [provider]
269
+ cluster = "Localnet"
270
+ wallet = "~/.config/solana/id.json"
271
+
272
+ [scripts]
273
+ test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
274
+ `;
275
+ (0, fs_1.writeFileSync)((0, path_1.join)(projectPath, 'Anchor.toml'), anchorToml);
276
+ // Write template files
277
+ for (const file of templateFiles) {
278
+ const filePath = (0, path_1.join)(projectPath, file.path);
279
+ const dir = (0, path_1.join)(filePath, '..');
280
+ (0, fs_1.mkdirSync)(dir, { recursive: true });
281
+ (0, fs_1.writeFileSync)(filePath, file.content);
282
+ }
283
+ console.log('āœ… Template project created successfully!');
284
+ console.log(`\nNext steps:`);
285
+ console.log(` cd ${projectName}`);
286
+ console.log(` anchor build`);
287
+ console.log(` anchor test`);
288
+ console.log(`\nšŸ“š Template features: ${template.features.join(', ')}`);
289
+ }
290
+ async function listTemplatesCommand() {
291
+ console.log('šŸ“š Available FORGE Templates\n');
292
+ const categories = ['token', 'nft', 'dao', 'defi', 'utility'];
293
+ for (const category of categories) {
294
+ const categoryTemplates = index_js_1.templates.filter(t => t.category === category);
295
+ if (categoryTemplates.length > 0) {
296
+ console.log(`šŸ“¦ ${category.toUpperCase()}:`);
297
+ for (const template of categoryTemplates) {
298
+ console.log(` ${template.id.padEnd(20)} - ${template.name}`);
299
+ console.log(` ${' '.repeat(22)}${template.description}`);
300
+ console.log(` ${' '.repeat(22)}Features: ${template.features.join(', ')}\n`);
301
+ }
302
+ }
303
+ }
304
+ console.log('šŸ’” Usage: forge init <project-name> --template <template-id>');
305
+ console.log(' Example: forge init my-token --template token-program');
306
+ }
220
307
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function interactiveCommand(): Promise<void>;
2
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AAGA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqDxD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interactiveCommand = interactiveCommand;
4
+ const readline_1 = require("readline");
5
+ const init_js_1 = require("./init.js");
6
+ async function interactiveCommand() {
7
+ console.log('šŸŽÆ FORGE Interactive Setup\n');
8
+ console.log('Answer a few questions to set up your project:\n');
9
+ const rl = (0, readline_1.createInterface)({
10
+ input: process.stdin,
11
+ output: process.stdout
12
+ });
13
+ const question = (query) => {
14
+ return new Promise((resolve) => {
15
+ rl.question(query, resolve);
16
+ });
17
+ };
18
+ try {
19
+ const projectName = await question('šŸ“¦ Project name: ');
20
+ const useTemplate = await question('šŸ“š Use a template? (y/n): ');
21
+ let template;
22
+ if (useTemplate.toLowerCase() === 'y') {
23
+ console.log('\nAvailable templates:');
24
+ console.log(' 1. token-program - SPL Token Program');
25
+ console.log(' 2. nft-marketplace - NFT Marketplace');
26
+ console.log(' 3. dao-governance - DAO Governance');
27
+ console.log(' 4. staking-rewards - Staking & Rewards');
28
+ console.log(' 5. escrow-swap - Escrow Swap');
29
+ console.log(' 6. token-vesting - Token Vesting\n');
30
+ const templateChoice = await question('Select template (1-6): ');
31
+ const templates = ['token-program', 'nft-marketplace', 'dao-governance', 'staking-rewards', 'escrow-swap', 'token-vesting'];
32
+ template = templates[parseInt(templateChoice) - 1];
33
+ }
34
+ const useIntent = await question('\nšŸ’” Use intent-driven generation? (y/n): ');
35
+ let intent;
36
+ if (useIntent.toLowerCase() === 'y') {
37
+ intent = await question('Describe what your program should do: ');
38
+ }
39
+ const anchorVersion = await question('\nšŸ”§ Anchor version (default: 0.32.1): ') || '0.32.1';
40
+ rl.close();
41
+ console.log('\nšŸš€ Creating project...\n');
42
+ await (0, init_js_1.initCommand)(projectName || undefined, intent, anchorVersion, template);
43
+ }
44
+ catch (error) {
45
+ rl.close();
46
+ console.error('āŒ Interactive setup failed');
47
+ console.error(`Error: ${error.message}`);
48
+ process.exit(1);
49
+ }
50
+ }
51
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":";;AAGA,gDAqDC;AAxDD,uCAA2C;AAC3C,uCAAwC;AAEjC,KAAK,UAAU,kBAAkB;IACtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAEhE,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAmB,EAAE;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QAEjE,IAAI,QAA4B,CAAC;QACjC,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAEpD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;YAC5H,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,4CAA4C,CAAC,CAAC;QAC/E,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YACpC,MAAM,GAAG,MAAM,QAAQ,CAAC,wCAAwC,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,yCAAyC,CAAC,IAAI,QAAQ,CAAC;QAE5F,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,IAAA,qBAAW,EAAC,WAAW,IAAI,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE/E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function keypairCommand(action?: string, outputPath?: string): Promise<void>;
2
+ //# sourceMappingURL=keypair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keypair.d.ts","sourceRoot":"","sources":["../../src/commands/keypair.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CxF"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.keypairCommand = keypairCommand;
4
+ const child_process_1 = require("child_process");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ async function keypairCommand(action, outputPath) {
8
+ console.log('šŸ”‘ FORGE Keypair Management\n');
9
+ try {
10
+ if (action === 'generate' || !action) {
11
+ const path = outputPath || 'keypair.json';
12
+ console.log(`Generating new keypair: ${path}...`);
13
+ (0, child_process_1.execSync)(`solana-keygen new --outfile ${path} --no-bip39-passphrase`, { stdio: 'inherit' });
14
+ console.log(`\nāœ… Keypair generated: ${path}`);
15
+ console.log('āš ļø Keep this file secure! Never commit it to version control.');
16
+ }
17
+ else if (action === 'import') {
18
+ if (!outputPath) {
19
+ console.error('āŒ Please provide path to keypair file');
20
+ process.exit(1);
21
+ }
22
+ if (!(0, fs_1.existsSync)(outputPath)) {
23
+ console.error(`āŒ Keypair file not found: ${outputPath}`);
24
+ process.exit(1);
25
+ }
26
+ console.log(`āœ… Keypair imported from: ${outputPath}`);
27
+ const pubkey = (0, child_process_1.execSync)(`solana-keygen pubkey ${outputPath}`, { encoding: 'utf8' }).trim();
28
+ console.log(` Public key: ${pubkey}`);
29
+ }
30
+ else if (action === 'info') {
31
+ const defaultKeypair = (0, path_1.join)(process.env.HOME || '~', '.config', 'solana', 'id.json');
32
+ if ((0, fs_1.existsSync)(defaultKeypair)) {
33
+ const pubkey = (0, child_process_1.execSync)(`solana-keygen pubkey ${defaultKeypair}`, { encoding: 'utf8' }).trim();
34
+ console.log(`Default keypair: ${defaultKeypair}`);
35
+ console.log(`Public key: ${pubkey}`);
36
+ }
37
+ else {
38
+ console.log('No default keypair found.');
39
+ console.log('Generate one with: forge keypair generate');
40
+ }
41
+ }
42
+ else {
43
+ console.error(`āŒ Unknown action: ${action}`);
44
+ console.error('Available actions: generate, import, info');
45
+ process.exit(1);
46
+ }
47
+ }
48
+ catch (error) {
49
+ console.error('āŒ Keypair operation failed');
50
+ console.error(`Error: ${error.message}`);
51
+ process.exit(1);
52
+ }
53
+ }
54
+ //# sourceMappingURL=keypair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../src/commands/keypair.ts"],"names":[],"mappings":";;AAIA,wCA0CC;AA9CD,iDAAyC;AACzC,2BAAgC;AAChC,+BAA4B;AAErB,KAAK,UAAU,cAAc,CAAC,MAAe,EAAE,UAAmB;IACvE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,UAAU,IAAI,cAAc,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,KAAK,CAAC,CAAC;YAClD,IAAA,wBAAQ,EAAC,+BAA+B,IAAI,wBAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5F,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,wBAAwB,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACrF,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,wBAAwB,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/F,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function migrateCommand(targetVersion?: string): Promise<void>;
2
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW1E"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateCommand = migrateCommand;
4
+ const upgrade_js_1 = require("./upgrade.js");
5
+ async function migrateCommand(targetVersion) {
6
+ console.log('šŸ”„ FORGE Migration Assistant\n');
7
+ console.log('This command helps migrate between Anchor versions.\n');
8
+ await (0, upgrade_js_1.upgradeCommand)(targetVersion);
9
+ console.log('\nšŸ“‹ Additional Migration Steps:');
10
+ console.log(' 1. Review breaking changes in Anchor changelog');
11
+ console.log(' 2. Update any custom account serialization');
12
+ console.log(' 3. Test all instructions thoroughly');
13
+ console.log(' 4. Update client SDKs if needed');
14
+ }
15
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":";;AAEA,wCAWC;AAbD,6CAA8C;AAEvC,KAAK,UAAU,cAAc,CAAC,aAAsB;IACzD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IAErE,MAAM,IAAA,2BAAc,EAAC,aAAa,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function monitorCommand(): Promise<void>;
2
+ //# sourceMappingURL=monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsCpD"}