@jam-nodes/playground 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 (62) hide show
  1. package/dist/commands/credentials.d.ts +6 -0
  2. package/dist/commands/credentials.d.ts.map +1 -0
  3. package/dist/commands/credentials.js +205 -0
  4. package/dist/commands/credentials.js.map +1 -0
  5. package/dist/commands/index.d.ts +5 -0
  6. package/dist/commands/index.d.ts.map +1 -0
  7. package/dist/commands/index.js +5 -0
  8. package/dist/commands/index.js.map +1 -0
  9. package/dist/commands/init.d.ts +6 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +76 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/list.d.ts +6 -0
  14. package/dist/commands/list.d.ts.map +1 -0
  15. package/dist/commands/list.js +111 -0
  16. package/dist/commands/list.js.map +1 -0
  17. package/dist/commands/run.d.ts +6 -0
  18. package/dist/commands/run.d.ts.map +1 -0
  19. package/dist/commands/run.js +245 -0
  20. package/dist/commands/run.js.map +1 -0
  21. package/dist/credentials/env-provider.d.ts +54 -0
  22. package/dist/credentials/env-provider.d.ts.map +1 -0
  23. package/dist/credentials/env-provider.js +177 -0
  24. package/dist/credentials/env-provider.js.map +1 -0
  25. package/dist/credentials/index.d.ts +2 -0
  26. package/dist/credentials/index.d.ts.map +1 -0
  27. package/dist/credentials/index.js +2 -0
  28. package/dist/credentials/index.js.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +24 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/ui/index.d.ts +2 -0
  34. package/dist/ui/index.d.ts.map +1 -0
  35. package/dist/ui/index.js +2 -0
  36. package/dist/ui/index.js.map +1 -0
  37. package/dist/ui/prompts.d.ts +49 -0
  38. package/dist/ui/prompts.d.ts.map +1 -0
  39. package/dist/ui/prompts.js +189 -0
  40. package/dist/ui/prompts.js.map +1 -0
  41. package/dist/utils/index.d.ts +2 -0
  42. package/dist/utils/index.d.ts.map +1 -0
  43. package/dist/utils/index.js +2 -0
  44. package/dist/utils/index.js.map +1 -0
  45. package/dist/utils/mock-generator.d.ts +11 -0
  46. package/dist/utils/mock-generator.d.ts.map +1 -0
  47. package/dist/utils/mock-generator.js +199 -0
  48. package/dist/utils/mock-generator.js.map +1 -0
  49. package/package.json +53 -0
  50. package/src/commands/credentials.ts +242 -0
  51. package/src/commands/index.ts +4 -0
  52. package/src/commands/init.ts +80 -0
  53. package/src/commands/list.ts +124 -0
  54. package/src/commands/run.ts +273 -0
  55. package/src/credentials/env-provider.ts +208 -0
  56. package/src/credentials/index.ts +10 -0
  57. package/src/index.ts +32 -0
  58. package/src/ui/index.ts +9 -0
  59. package/src/ui/prompts.ts +259 -0
  60. package/src/utils/index.ts +1 -0
  61. package/src/utils/mock-generator.ts +227 -0
  62. package/tsconfig.json +15 -0
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Credentials command - manage saved credentials
4
+ */
5
+ export declare const credentialsCommand: Command;
6
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/commands/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC;;GAEG;AACH,eAAO,MAAM,kBAAkB,SAEW,CAAC"}
@@ -0,0 +1,205 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import inquirer from 'inquirer';
4
+ import { getCredentials, saveCredentials, deleteCredentials, listSavedCredentials, getCredentialSource, clearAllCredentials, getStorePath, } from '../credentials/index.js';
5
+ /**
6
+ * Known credential types and their required fields
7
+ */
8
+ const CREDENTIAL_SCHEMAS = {
9
+ apollo: [{ name: 'apiKey', message: 'Apollo API Key:', type: 'password' }],
10
+ hunter: [{ name: 'apiKey', message: 'Hunter API Key:', type: 'password' }],
11
+ openai: [{ name: 'apiKey', message: 'OpenAI API Key:', type: 'password' }],
12
+ anthropic: [{ name: 'apiKey', message: 'Anthropic API Key:', type: 'password' }],
13
+ sendgrid: [{ name: 'apiKey', message: 'SendGrid API Key:', type: 'password' }],
14
+ hubspot: [{ name: 'apiKey', message: 'HubSpot API Key:', type: 'password' }],
15
+ clearbit: [{ name: 'apiKey', message: 'Clearbit API Key:', type: 'password' }],
16
+ dropcontact: [{ name: 'apiKey', message: 'Dropcontact API Key:', type: 'password' }],
17
+ twitter: [{ name: 'bearerToken', message: 'Twitter Bearer Token:', type: 'password' }],
18
+ linkedin: [{ name: 'accessToken', message: 'LinkedIn Access Token:', type: 'password' }],
19
+ reddit: [
20
+ { name: 'clientId', message: 'Reddit Client ID:', type: 'input' },
21
+ { name: 'clientSecret', message: 'Reddit Client Secret:', type: 'password' },
22
+ ],
23
+ dataforseo: [
24
+ { name: 'login', message: 'DataForSEO Login:', type: 'input' },
25
+ { name: 'password', message: 'DataForSEO Password:', type: 'password' },
26
+ ],
27
+ };
28
+ /**
29
+ * Credentials command - manage saved credentials
30
+ */
31
+ export const credentialsCommand = new Command('credentials')
32
+ .alias('creds')
33
+ .description('Manage saved credentials');
34
+ /**
35
+ * List saved credentials
36
+ */
37
+ credentialsCommand
38
+ .command('list')
39
+ .description('List all saved credentials')
40
+ .action(async () => {
41
+ const saved = listSavedCredentials();
42
+ console.log();
43
+ console.log(chalk.bold('Saved Credentials'));
44
+ console.log(chalk.dim(`Store: ${getStorePath()}`));
45
+ console.log();
46
+ if (saved.length === 0) {
47
+ console.log(chalk.dim('No credentials saved yet.'));
48
+ console.log(chalk.dim('Use "jam-playground credentials set <service>" to add credentials.'));
49
+ return;
50
+ }
51
+ for (const service of saved) {
52
+ const source = await getCredentialSource(service);
53
+ const icon = source === 'env' ? '🌍' : '💾';
54
+ console.log(` ${icon} ${chalk.bold(service)} ${chalk.dim(`(${source})`)}`);
55
+ }
56
+ console.log();
57
+ console.log(chalk.dim('🌍 = from environment, 💾 = saved to config'));
58
+ });
59
+ /**
60
+ * Set credentials for a service
61
+ */
62
+ credentialsCommand
63
+ .command('set <service>')
64
+ .description('Set credentials for a service')
65
+ .action(async (service) => {
66
+ const serviceLower = service.toLowerCase();
67
+ // Get schema for this service
68
+ const schema = CREDENTIAL_SCHEMAS[serviceLower];
69
+ if (!schema) {
70
+ console.log(chalk.yellow(`Unknown service: ${service}`));
71
+ console.log(chalk.dim('Known services:'));
72
+ console.log(chalk.dim(` ${Object.keys(CREDENTIAL_SCHEMAS).join(', ')}`));
73
+ console.log();
74
+ // Allow custom single API key
75
+ const { proceed } = await inquirer.prompt([
76
+ {
77
+ type: 'confirm',
78
+ name: 'proceed',
79
+ message: 'Would you like to set a custom API key for this service?',
80
+ default: true,
81
+ },
82
+ ]);
83
+ if (!proceed)
84
+ return;
85
+ const { apiKey } = await inquirer.prompt([
86
+ {
87
+ type: 'password',
88
+ name: 'apiKey',
89
+ message: `${service} API Key:`,
90
+ mask: '*',
91
+ },
92
+ ]);
93
+ saveCredentials(serviceLower, { apiKey });
94
+ console.log(chalk.green(`✓ ${service} credentials saved`));
95
+ return;
96
+ }
97
+ // Check if already exists
98
+ const existing = await getCredentials(serviceLower);
99
+ if (existing) {
100
+ const { overwrite } = await inquirer.prompt([
101
+ {
102
+ type: 'confirm',
103
+ name: 'overwrite',
104
+ message: `Credentials for ${service} already exist. Overwrite?`,
105
+ default: false,
106
+ },
107
+ ]);
108
+ if (!overwrite)
109
+ return;
110
+ }
111
+ // Prompt for credentials
112
+ console.log();
113
+ console.log(chalk.dim(`Enter credentials for ${service}:`));
114
+ const answers = await inquirer.prompt(schema.map((field) => ({
115
+ type: field.type || 'password',
116
+ name: field.name,
117
+ message: field.message,
118
+ mask: '*',
119
+ })));
120
+ saveCredentials(serviceLower, answers);
121
+ console.log(chalk.green(`✓ ${service} credentials saved`));
122
+ });
123
+ /**
124
+ * Delete credentials for a service
125
+ */
126
+ credentialsCommand
127
+ .command('delete <service>')
128
+ .alias('rm')
129
+ .description('Delete credentials for a service')
130
+ .action(async (service) => {
131
+ const serviceLower = service.toLowerCase();
132
+ // Check if exists
133
+ const existing = await getCredentials(serviceLower);
134
+ if (!existing) {
135
+ console.log(chalk.yellow(`No credentials found for ${service}`));
136
+ return;
137
+ }
138
+ const { confirm } = await inquirer.prompt([
139
+ {
140
+ type: 'confirm',
141
+ name: 'confirm',
142
+ message: `Delete credentials for ${service}?`,
143
+ default: false,
144
+ },
145
+ ]);
146
+ if (!confirm)
147
+ return;
148
+ if (deleteCredentials(serviceLower)) {
149
+ console.log(chalk.green(`✓ ${service} credentials deleted`));
150
+ }
151
+ else {
152
+ console.log(chalk.yellow(`Could not delete ${service} credentials`));
153
+ }
154
+ });
155
+ /**
156
+ * Check credentials for a service
157
+ */
158
+ credentialsCommand
159
+ .command('check <service>')
160
+ .description('Check if credentials exist for a service')
161
+ .action(async (service) => {
162
+ const serviceLower = service.toLowerCase();
163
+ const source = await getCredentialSource(serviceLower);
164
+ if (source) {
165
+ console.log(chalk.green(`✓ ${service} credentials found (${source})`));
166
+ }
167
+ else {
168
+ console.log(chalk.red(`✗ ${service} credentials not found`));
169
+ }
170
+ });
171
+ /**
172
+ * Clear all saved credentials
173
+ */
174
+ credentialsCommand
175
+ .command('clear')
176
+ .description('Clear all saved credentials')
177
+ .action(async () => {
178
+ const saved = listSavedCredentials();
179
+ if (saved.length === 0) {
180
+ console.log(chalk.dim('No credentials to clear.'));
181
+ return;
182
+ }
183
+ const { confirm } = await inquirer.prompt([
184
+ {
185
+ type: 'confirm',
186
+ name: 'confirm',
187
+ message: `Delete all ${saved.length} saved credentials?`,
188
+ default: false,
189
+ },
190
+ ]);
191
+ if (!confirm)
192
+ return;
193
+ clearAllCredentials();
194
+ console.log(chalk.green('✓ All credentials cleared'));
195
+ });
196
+ /**
197
+ * Show credential store path
198
+ */
199
+ credentialsCommand
200
+ .command('path')
201
+ .description('Show the credential store path')
202
+ .action(() => {
203
+ console.log(getStorePath());
204
+ });
205
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/commands/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,kBAAkB,GAGpB;IACF,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC1E,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC1E,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC1E,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAChF,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9E,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC5E,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9E,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACpF,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACtF,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACxF,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;QACjE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,UAAU,EAAE;KAC7E;IACD,UAAU,EAAE;QACV,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;QAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE;KACxE;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACzD,KAAK,CAAC,OAAO,CAAC;KACd,WAAW,CAAC,0BAA0B,CAAC,CAAC;AAE3C;;GAEG;AACH,kBAAkB;KACf,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IAErC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,kBAAkB;KACf,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,8BAA8B;IAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,8BAA8B;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,0DAA0D;gBACnE,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACvC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,OAAO,WAAW;gBAC9B,IAAI,EAAE,GAAG;aACV;SACF,CAAC,CAAC;QAEH,eAAe,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,oBAAoB,CAAC,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,mBAAmB,OAAO,4BAA4B;gBAC/D,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS;YAAE,OAAO;IACzB,CAAC;IAED,yBAAyB;IACzB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,OAAO,GAAG,CAAC,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CACnC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,UAAU;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,GAAG;KACV,CAAC,CAAC,CACJ,CAAC;IAEF,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,kBAAkB;KACf,OAAO,CAAC,kBAAkB,CAAC;KAC3B,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,kBAAkB;IAClB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,0BAA0B,OAAO,GAAG;YAC7C,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,IAAI,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,sBAAsB,CAAC,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,OAAO,cAAc,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,kBAAkB;KACf,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAEvD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,uBAAuB,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,wBAAwB,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,kBAAkB;KACf,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,cAAc,KAAK,CAAC,MAAM,qBAAqB;YACxD,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,mBAAmB,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,kBAAkB;KACf,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { listCommand } from './list.js';
2
+ export { runCommand } from './run.js';
3
+ export { initCommand } from './init.js';
4
+ export { credentialsCommand } from './credentials.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { listCommand } from './list.js';
2
+ export { runCommand } from './run.js';
3
+ export { initCommand } from './init.js';
4
+ export { credentialsCommand } from './credentials.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Init command - initializes a .env file with template
4
+ */
5
+ export declare const initCommand: Command;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC;;GAEG;AACH,eAAO,MAAM,WAAW,SA0BpB,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+ /**
6
+ * Template for .env file
7
+ */
8
+ const ENV_TEMPLATE = `# jam-nodes Playground Configuration
9
+ # Add your API keys below
10
+
11
+ # Apollo.io (Contact Search)
12
+ # JAM_APOLLO_API_KEY=your_api_key_here
13
+
14
+ # Hunter.io (Email Finder)
15
+ # JAM_HUNTER_API_KEY=your_api_key_here
16
+
17
+ # OpenAI (AI Features)
18
+ # JAM_OPENAI_API_KEY=your_api_key_here
19
+
20
+ # Anthropic (AI Features)
21
+ # JAM_ANTHROPIC_API_KEY=your_api_key_here
22
+
23
+ # Twitter/X (Social Monitoring)
24
+ # JAM_TWITTER_BEARER_TOKEN=your_bearer_token_here
25
+
26
+ # Reddit (Social Monitoring)
27
+ # JAM_REDDIT_CLIENT_ID=your_client_id_here
28
+ # JAM_REDDIT_CLIENT_SECRET=your_client_secret_here
29
+
30
+ # LinkedIn (Social Monitoring)
31
+ # JAM_LINKEDIN_ACCESS_TOKEN=your_access_token_here
32
+
33
+ # DataForSEO (SEO Tools)
34
+ # JAM_DATAFORSEO_LOGIN=your_login_here
35
+ # JAM_DATAFORSEO_PASSWORD=your_password_here
36
+
37
+ # SendGrid (Email Sending)
38
+ # JAM_SENDGRID_API_KEY=your_api_key_here
39
+
40
+ # HubSpot (CRM)
41
+ # JAM_HUBSPOT_API_KEY=your_api_key_here
42
+
43
+ # Clearbit (Enrichment)
44
+ # JAM_CLEARBIT_API_KEY=your_api_key_here
45
+
46
+ # Dropcontact (Enrichment)
47
+ # JAM_DROPCONTACT_API_KEY=your_api_key_here
48
+ `;
49
+ /**
50
+ * Init command - initializes a .env file with template
51
+ */
52
+ export const initCommand = new Command('init')
53
+ .description('Initialize a .env file with credential template')
54
+ .option('-f, --force', 'Overwrite existing .env file')
55
+ .option('-p, --path <path>', 'Custom path for .env file', '.env')
56
+ .action((options) => {
57
+ const envPath = path.resolve(process.cwd(), options.path);
58
+ // Check if file exists
59
+ if (fs.existsSync(envPath) && !options.force) {
60
+ console.log(chalk.yellow(`⚠ ${options.path} already exists`));
61
+ console.log(chalk.dim('Use --force to overwrite'));
62
+ return;
63
+ }
64
+ // Write template
65
+ fs.writeFileSync(envPath, ENV_TEMPLATE, 'utf-8');
66
+ console.log(chalk.green(`✓ Created ${options.path}`));
67
+ console.log();
68
+ console.log(chalk.dim('Edit the file to add your API keys.'));
69
+ console.log(chalk.dim('Uncomment and fill in the keys you need.'));
70
+ console.log();
71
+ console.log(chalk.bold('Quick start:'));
72
+ console.log(chalk.dim('1. Open .env in your editor'));
73
+ console.log(chalk.dim('2. Add your API keys'));
74
+ console.log(chalk.dim('3. Run: jam-playground run <node-type>'));
75
+ });
76
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,CAAC;KAChE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,uBAAuB;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,iBAAiB;IACjB,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * List command - displays all available nodes
4
+ */
5
+ export declare const listCommand: Command;
6
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC;;GAEG;AACH,eAAO,MAAM,WAAW,SAwFpB,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { createRegistry } from '@jam-nodes/core';
4
+ import { builtInNodes } from '@jam-nodes/nodes';
5
+ // Create and populate the registry
6
+ const registry = createRegistry();
7
+ for (const node of builtInNodes) {
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ registry.register(node);
10
+ }
11
+ /**
12
+ * Category colors for display
13
+ */
14
+ const categoryColors = {
15
+ logic: chalk.blue,
16
+ transform: chalk.green,
17
+ integration: chalk.magenta,
18
+ action: chalk.yellow,
19
+ };
20
+ /**
21
+ * Category labels for display
22
+ */
23
+ const categoryLabels = {
24
+ logic: 'Logic',
25
+ transform: 'Transform',
26
+ integration: 'Integration',
27
+ action: 'Action',
28
+ };
29
+ /**
30
+ * List command - displays all available nodes
31
+ */
32
+ export const listCommand = new Command('list')
33
+ .description('List all available jam-nodes')
34
+ .option('-c, --category <category>', 'Filter by category (logic, transform, integration, action)')
35
+ .option('--json', 'Output as JSON')
36
+ .action((options) => {
37
+ const allDefinitions = registry.getAllDefinitions();
38
+ // Filter by category if specified
39
+ let definitions = allDefinitions;
40
+ if (options.category) {
41
+ const category = options.category.toLowerCase();
42
+ definitions = allDefinitions.filter((d) => d.category === category);
43
+ if (definitions.length === 0) {
44
+ console.log(chalk.yellow(`No nodes found in category: ${options.category}`));
45
+ console.log(chalk.dim(`Available categories: logic, transform, integration, action`));
46
+ return;
47
+ }
48
+ }
49
+ // JSON output
50
+ if (options.json) {
51
+ const output = definitions.map((d) => ({
52
+ type: d.type,
53
+ name: d.name,
54
+ description: d.description,
55
+ category: d.category,
56
+ estimatedDuration: d.estimatedDuration,
57
+ capabilities: d.capabilities,
58
+ }));
59
+ console.log(JSON.stringify(output, null, 2));
60
+ return;
61
+ }
62
+ // Group by category
63
+ const byCategory = definitions.reduce((acc, def) => {
64
+ const cat = def.category;
65
+ if (!acc[cat])
66
+ acc[cat] = [];
67
+ acc[cat].push(def);
68
+ return acc;
69
+ }, {});
70
+ // Header
71
+ console.log();
72
+ console.log(chalk.bold('Available jam-nodes'));
73
+ console.log(chalk.dim(`Total: ${definitions.length} nodes`));
74
+ console.log();
75
+ // Display by category
76
+ const categories = ['logic', 'transform', 'integration', 'action'];
77
+ for (const category of categories) {
78
+ const nodes = byCategory[category];
79
+ if (!nodes || nodes.length === 0)
80
+ continue;
81
+ const colorFn = categoryColors[category];
82
+ const label = categoryLabels[category];
83
+ console.log(colorFn(`━━━ ${label} (${nodes.length}) ━━━`));
84
+ console.log();
85
+ for (const node of nodes) {
86
+ console.log(` ${chalk.bold(node.type)}`);
87
+ console.log(` ${chalk.dim(node.name)} - ${node.description}`);
88
+ // Show capabilities if present
89
+ const caps = node.capabilities;
90
+ if (caps) {
91
+ const capList = [];
92
+ if (caps.supportsEnrichment)
93
+ capList.push('enrichment');
94
+ if (caps.supportsBulkActions)
95
+ capList.push('bulk');
96
+ if (caps.supportsRerun)
97
+ capList.push('rerun');
98
+ if (caps.supportsApproval)
99
+ capList.push('approval');
100
+ if (capList.length > 0) {
101
+ console.log(` ${chalk.dim('Capabilities:')} ${capList.join(', ')}`);
102
+ }
103
+ }
104
+ console.log();
105
+ }
106
+ }
107
+ // Usage hint
108
+ console.log(chalk.dim('Run a node: jam-playground run <node-type>'));
109
+ console.log(chalk.dim('Example: jam-playground run conditional'));
110
+ });
111
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Run command - executes a node with input
4
+ */
5
+ export declare const runCommand: Command;
6
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCpC;;GAEG;AACH,eAAO,MAAM,UAAU,SAoKnB,CAAC"}