@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.
- package/dist/commands/credentials.d.ts +6 -0
- package/dist/commands/credentials.d.ts.map +1 -0
- package/dist/commands/credentials.js +205 -0
- package/dist/commands/credentials.js.map +1 -0
- package/dist/commands/index.d.ts +5 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +5 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +76 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +6 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +111 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/run.d.ts +6 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +245 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/credentials/env-provider.d.ts +54 -0
- package/dist/credentials/env-provider.d.ts.map +1 -0
- package/dist/credentials/env-provider.js +177 -0
- package/dist/credentials/env-provider.js.map +1 -0
- package/dist/credentials/index.d.ts +2 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +2 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompts.d.ts +49 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +189 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/mock-generator.d.ts +11 -0
- package/dist/utils/mock-generator.d.ts.map +1 -0
- package/dist/utils/mock-generator.js +199 -0
- package/dist/utils/mock-generator.js.map +1 -0
- package/package.json +53 -0
- package/src/commands/credentials.ts +242 -0
- package/src/commands/index.ts +4 -0
- package/src/commands/init.ts +80 -0
- package/src/commands/list.ts +124 -0
- package/src/commands/run.ts +273 -0
- package/src/credentials/env-provider.ts +208 -0
- package/src/credentials/index.ts +10 -0
- package/src/index.ts +32 -0
- package/src/ui/index.ts +9 -0
- package/src/ui/prompts.ts +259 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/mock-generator.ts +227 -0
- package/tsconfig.json +15 -0
|
@@ -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":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|