@proappstore/cli 2.6.5 → 2.6.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"integrate.d.ts","sourceRoot":"","sources":["../src/integrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,gBAAgB,SA6FzB,CAAC"}
1
+ {"version":3,"file":"integrate.d.ts","sourceRoot":"","sources":["../src/integrate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,gBAAgB,SAiGzB,CAAC"}
package/dist/integrate.js CHANGED
@@ -1,14 +1,19 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { createInterface } from 'node:readline/promises';
3
+ import { dirname, join } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
1
5
  import { Command } from 'commander';
2
6
  import { bearer, dieFromHttp, requireSession, resolveAppIdOrExit } from './secret.js';
3
- import catalog from './integrations.json' with { type: 'json' };
4
- const integrations = catalog;
7
+ // Load catalog at runtime from the file shipped alongside the compiled JS.
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+ const catalogPath = join(__dirname, 'integrations.json');
10
+ const integrations = JSON.parse(readFileSync(catalogPath, 'utf8'));
5
11
  export const integrateCommand = new Command('integrate')
6
12
  .description('Connect a third-party API using pre-configured proxy rules.')
7
- .argument('<name>', `integration name (${Object.keys(integrations).join(', ')})`)
13
+ .argument('[name]', `integration name (run "pas integrate list" to see all)`)
8
14
  .option('--app <id>', 'app id (defaults to package.json name in cwd)')
9
- .option('--list', 'list all available integrations')
10
15
  .action(async (name, opts) => {
11
- if (name === 'list' || opts.list) {
16
+ if (!name || name === 'list') {
12
17
  process.stdout.write('\nAvailable integrations:\n\n');
13
18
  for (const [id, int] of Object.entries(integrations)) {
14
19
  process.stdout.write(` ${id.padEnd(20)} ${int.name}\n`);
@@ -27,22 +32,28 @@ export const integrateCommand = new Command('integrate')
27
32
  const cfg = await requireSession();
28
33
  const appId = await resolveAppIdOrExit(opts.app);
29
34
  const prefix = name.toUpperCase().replace(/-/g, '_');
30
- process.stdout.write(`\n Integrating ${integration.name} for ${appId}\n\n`);
35
+ process.stdout.write(`\n Integrating ${integration.name} for ${appId}\n`);
36
+ process.stdout.write(` Docs: ${integration.docs}\n\n`);
31
37
  if (integration.note) {
32
38
  process.stdout.write(` Note: ${integration.note}\n\n`);
33
39
  }
34
40
  // Collect secrets interactively
41
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
35
42
  const secretValues = {};
36
- for (const secretSuffix of integration.secrets) {
37
- const secretName = `${prefix}_${secretSuffix}`;
38
- process.stdout.write(` ${secretName}: `);
39
- const value = await readLine();
40
- if (!value.trim()) {
41
- process.stderr.write(`\n Aborted — ${secretName} is required.\n`);
42
- process.stderr.write(` Get yours at: ${integration.docs}\n\n`);
43
- process.exit(1);
43
+ try {
44
+ for (const secretSuffix of integration.secrets) {
45
+ const secretName = `${prefix}_${secretSuffix}`;
46
+ const value = await rl.question(` ${secretName}: `);
47
+ if (!value.trim()) {
48
+ process.stderr.write(`\n Aborted — ${secretName} is required.\n`);
49
+ process.stderr.write(` Get yours at: ${integration.docs}\n\n`);
50
+ process.exit(1);
51
+ }
52
+ secretValues[secretName] = value.trim();
44
53
  }
45
- secretValues[secretName] = value.trim();
54
+ }
55
+ finally {
56
+ rl.close();
46
57
  }
47
58
  // Store secrets
48
59
  for (const [secretName, value] of Object.entries(secretValues)) {
@@ -83,9 +94,9 @@ export const integrateCommand = new Command('integrate')
83
94
  await dieFromHttp(res, `add rule for ${pattern}`);
84
95
  process.stdout.write(` [+] Proxy rule: ${pattern}\n`);
85
96
  }
86
- process.stdout.write(`\n Done! Use in your app:\n`);
87
97
  const exampleHost = new URL(integration.patterns[0]).host;
88
98
  const examplePath = new URL(integration.patterns[0]).pathname;
99
+ process.stdout.write(`\n Done! Use in your app:\n`);
89
100
  process.stdout.write(` const res = await app.proxy.fetch('${exampleHost}${examplePath}...')\n\n`);
90
101
  });
91
102
  function mapInjectKind(int) {
@@ -111,15 +122,4 @@ function mapAuth(int) {
111
122
  return `query:${int.queryParam ?? 'key'}`;
112
123
  return int.auth;
113
124
  }
114
- function readLine() {
115
- return new Promise((resolve) => {
116
- let data = '';
117
- process.stdin.setEncoding('utf8');
118
- process.stdin.once('data', (chunk) => {
119
- data = String(chunk).replace(/\n$/, '');
120
- resolve(data);
121
- });
122
- process.stdin.resume();
123
- });
124
- }
125
125
  //# sourceMappingURL=integrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"integrate.js","sourceRoot":"","sources":["../src/integrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrate.js","sourceRoot":"","sources":["../src/integrate.ts"],"names":[],"mappings":"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"}
@@ -1,131 +1,131 @@
1
1
  {
2
- "openai": {
3
- "name": "OpenAI (GPT, DALL-E, Whisper)",
4
- "auth": "bearer",
5
- "patterns": ["https://api.openai.com/"],
6
- "methods": ["GET", "POST"],
7
- "secrets": ["API_KEY"],
8
- "docs": "https://platform.openai.com/api-keys"
9
- },
10
- "anthropic": {
11
- "name": "Anthropic (Claude)",
12
- "auth": "header",
13
- "headerName": "x-api-key",
14
- "patterns": ["https://api.anthropic.com/"],
15
- "methods": ["GET", "POST"],
16
- "secrets": ["API_KEY"],
17
- "docs": "https://console.anthropic.com/settings/keys"
18
- },
19
- "google-ai": {
20
- "name": "Google AI (Gemini)",
21
- "auth": "query",
22
- "queryParam": "key",
23
- "patterns": ["https://generativelanguage.googleapis.com/"],
24
- "methods": ["GET", "POST"],
25
- "secrets": ["API_KEY"],
26
- "docs": "https://aistudio.google.com/apikey"
27
- },
28
- "openrouter": {
29
- "name": "OpenRouter (multi-model gateway)",
30
- "auth": "bearer",
31
- "patterns": ["https://openrouter.ai/api/"],
32
- "methods": ["GET", "POST"],
33
- "secrets": ["API_KEY"],
34
- "docs": "https://openrouter.ai/keys"
35
- },
36
- "replicate": {
37
- "name": "Replicate (open source models)",
38
- "auth": "bearer",
39
- "patterns": ["https://api.replicate.com/"],
40
- "methods": ["GET", "POST"],
41
- "secrets": ["API_KEY"],
42
- "docs": "https://replicate.com/account/api-tokens"
43
- },
44
- "stability": {
45
- "name": "Stability AI (image generation)",
46
- "auth": "bearer",
47
- "patterns": ["https://api.stability.ai/"],
48
- "methods": ["GET", "POST"],
49
- "secrets": ["API_KEY"],
50
- "docs": "https://platform.stability.ai/account/keys"
51
- },
52
- "elevenlabs": {
53
- "name": "ElevenLabs (text-to-speech)",
54
- "auth": "header",
55
- "headerName": "xi-api-key",
56
- "patterns": ["https://api.elevenlabs.io/"],
57
- "methods": ["GET", "POST"],
58
- "secrets": ["API_KEY"],
59
- "docs": "https://elevenlabs.io/app/settings/api-keys"
60
- },
61
- "amadeus": {
62
- "name": "Amadeus (flights & hotels)",
63
- "auth": "oauth2_cc",
64
- "tokenUrl": "https://test.api.amadeus.com/v1/security/oauth2/token",
65
- "patterns": ["https://test.api.amadeus.com/v2/"],
66
- "methods": ["GET", "POST"],
67
- "secrets": ["CLIENT_ID", "CLIENT_SECRET"],
68
- "docs": "https://developers.amadeus.com/register"
69
- },
70
- "amadeus-prod": {
71
- "name": "Amadeus Production (flights & hotels)",
72
- "auth": "oauth2_cc",
73
- "tokenUrl": "https://api.amadeus.com/v1/security/oauth2/token",
74
- "patterns": ["https://api.amadeus.com/v2/"],
75
- "methods": ["GET", "POST"],
76
- "secrets": ["CLIENT_ID", "CLIENT_SECRET"],
77
- "docs": "https://developers.amadeus.com/register"
78
- },
79
- "spotify": {
80
- "name": "Spotify (music, playlists)",
81
- "auth": "oauth2_cc",
82
- "tokenUrl": "https://accounts.spotify.com/api/token",
83
- "patterns": ["https://api.spotify.com/v1/"],
84
- "methods": ["GET", "POST", "PUT", "DELETE"],
85
- "secrets": ["CLIENT_ID", "CLIENT_SECRET"],
86
- "docs": "https://developer.spotify.com/dashboard"
87
- },
88
- "github": {
89
- "name": "GitHub API",
90
- "auth": "bearer",
91
- "patterns": ["https://api.github.com/"],
92
- "methods": ["GET", "POST", "PUT", "PATCH", "DELETE"],
93
- "secrets": ["TOKEN"],
94
- "docs": "https://github.com/settings/tokens"
95
- },
96
- "openweathermap": {
97
- "name": "OpenWeatherMap",
98
- "auth": "query",
99
- "queryParam": "appid",
100
- "patterns": ["https://api.openweathermap.org/data/2.5/", "https://api.openweathermap.org/data/3.0/"],
101
- "methods": ["GET"],
102
- "secrets": ["API_KEY"],
103
- "docs": "https://home.openweathermap.org/api_keys"
104
- },
105
- "rapidapi": {
106
- "name": "RapidAPI (any API on the hub)",
107
- "auth": "header",
108
- "headerName": "X-RapidAPI-Key",
109
- "patterns": [],
110
- "methods": ["GET", "POST"],
111
- "secrets": ["API_KEY"],
112
- "docs": "https://rapidapi.com/developer/dashboard",
113
- "note": "After integrating, add proxy rules for the specific RapidAPI host(s) you use."
114
- },
115
- "resend": {
116
- "name": "Resend (email API)",
117
- "auth": "bearer",
118
- "patterns": ["https://api.resend.com/"],
119
- "methods": ["GET", "POST"],
120
- "secrets": ["API_KEY"],
121
- "docs": "https://resend.com/api-keys"
122
- },
123
- "stripe": {
124
- "name": "Stripe API",
125
- "auth": "bearer",
126
- "patterns": ["https://api.stripe.com/"],
127
- "methods": ["GET", "POST", "DELETE"],
128
- "secrets": ["SECRET_KEY"],
129
- "docs": "https://dashboard.stripe.com/apikeys"
130
- }
2
+ "openai": {
3
+ "name": "OpenAI (GPT, DALL-E, Whisper)",
4
+ "auth": "bearer",
5
+ "patterns": ["https://api.openai.com/"],
6
+ "methods": ["GET", "POST"],
7
+ "secrets": ["API_KEY"],
8
+ "docs": "https://platform.openai.com/api-keys"
9
+ },
10
+ "anthropic": {
11
+ "name": "Anthropic (Claude)",
12
+ "auth": "header",
13
+ "headerName": "x-api-key",
14
+ "patterns": ["https://api.anthropic.com/"],
15
+ "methods": ["GET", "POST"],
16
+ "secrets": ["API_KEY"],
17
+ "docs": "https://console.anthropic.com/settings/keys"
18
+ },
19
+ "google-ai": {
20
+ "name": "Google AI (Gemini)",
21
+ "auth": "query",
22
+ "queryParam": "key",
23
+ "patterns": ["https://generativelanguage.googleapis.com/"],
24
+ "methods": ["GET", "POST"],
25
+ "secrets": ["API_KEY"],
26
+ "docs": "https://aistudio.google.com/apikey"
27
+ },
28
+ "openrouter": {
29
+ "name": "OpenRouter (multi-model gateway)",
30
+ "auth": "bearer",
31
+ "patterns": ["https://openrouter.ai/api/"],
32
+ "methods": ["GET", "POST"],
33
+ "secrets": ["API_KEY"],
34
+ "docs": "https://openrouter.ai/keys"
35
+ },
36
+ "replicate": {
37
+ "name": "Replicate (open source models)",
38
+ "auth": "bearer",
39
+ "patterns": ["https://api.replicate.com/"],
40
+ "methods": ["GET", "POST"],
41
+ "secrets": ["API_KEY"],
42
+ "docs": "https://replicate.com/account/api-tokens"
43
+ },
44
+ "stability": {
45
+ "name": "Stability AI (image generation)",
46
+ "auth": "bearer",
47
+ "patterns": ["https://api.stability.ai/"],
48
+ "methods": ["GET", "POST"],
49
+ "secrets": ["API_KEY"],
50
+ "docs": "https://platform.stability.ai/account/keys"
51
+ },
52
+ "elevenlabs": {
53
+ "name": "ElevenLabs (text-to-speech)",
54
+ "auth": "header",
55
+ "headerName": "xi-api-key",
56
+ "patterns": ["https://api.elevenlabs.io/"],
57
+ "methods": ["GET", "POST"],
58
+ "secrets": ["API_KEY"],
59
+ "docs": "https://elevenlabs.io/app/settings/api-keys"
60
+ },
61
+ "amadeus": {
62
+ "name": "Amadeus (flights & hotels)",
63
+ "auth": "oauth2_cc",
64
+ "tokenUrl": "https://test.api.amadeus.com/v1/security/oauth2/token",
65
+ "patterns": ["https://test.api.amadeus.com/v2/"],
66
+ "methods": ["GET", "POST"],
67
+ "secrets": ["CLIENT_ID", "CLIENT_SECRET"],
68
+ "docs": "https://developers.amadeus.com/register"
69
+ },
70
+ "amadeus-prod": {
71
+ "name": "Amadeus Production (flights & hotels)",
72
+ "auth": "oauth2_cc",
73
+ "tokenUrl": "https://api.amadeus.com/v1/security/oauth2/token",
74
+ "patterns": ["https://api.amadeus.com/v2/"],
75
+ "methods": ["GET", "POST"],
76
+ "secrets": ["CLIENT_ID", "CLIENT_SECRET"],
77
+ "docs": "https://developers.amadeus.com/register"
78
+ },
79
+ "spotify": {
80
+ "name": "Spotify (music, playlists)",
81
+ "auth": "oauth2_cc",
82
+ "tokenUrl": "https://accounts.spotify.com/api/token",
83
+ "patterns": ["https://api.spotify.com/v1/"],
84
+ "methods": ["GET", "POST", "PUT", "DELETE"],
85
+ "secrets": ["CLIENT_ID", "CLIENT_SECRET"],
86
+ "docs": "https://developer.spotify.com/dashboard"
87
+ },
88
+ "github": {
89
+ "name": "GitHub API",
90
+ "auth": "bearer",
91
+ "patterns": ["https://api.github.com/"],
92
+ "methods": ["GET", "POST", "PUT", "PATCH", "DELETE"],
93
+ "secrets": ["TOKEN"],
94
+ "docs": "https://github.com/settings/tokens"
95
+ },
96
+ "openweathermap": {
97
+ "name": "OpenWeatherMap",
98
+ "auth": "query",
99
+ "queryParam": "appid",
100
+ "patterns": ["https://api.openweathermap.org/data/2.5/", "https://api.openweathermap.org/data/3.0/"],
101
+ "methods": ["GET"],
102
+ "secrets": ["API_KEY"],
103
+ "docs": "https://home.openweathermap.org/api_keys"
104
+ },
105
+ "rapidapi": {
106
+ "name": "RapidAPI (any API on the hub)",
107
+ "auth": "header",
108
+ "headerName": "X-RapidAPI-Key",
109
+ "patterns": [],
110
+ "methods": ["GET", "POST"],
111
+ "secrets": ["API_KEY"],
112
+ "docs": "https://rapidapi.com/developer/dashboard",
113
+ "note": "After integrating, add proxy rules for the specific RapidAPI host(s) you use."
114
+ },
115
+ "resend": {
116
+ "name": "Resend (email API)",
117
+ "auth": "bearer",
118
+ "patterns": ["https://api.resend.com/"],
119
+ "methods": ["GET", "POST"],
120
+ "secrets": ["API_KEY"],
121
+ "docs": "https://resend.com/api-keys"
122
+ },
123
+ "stripe": {
124
+ "name": "Stripe API",
125
+ "auth": "bearer",
126
+ "patterns": ["https://api.stripe.com/"],
127
+ "methods": ["GET", "POST", "DELETE"],
128
+ "secrets": ["SECRET_KEY"],
129
+ "docs": "https://dashboard.stripe.com/apikeys"
130
+ }
131
131
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proappstore/cli",
3
- "version": "2.6.5",
3
+ "version": "2.6.6",
4
4
  "description": "pas — CLI for publishing paid apps to proappstore.online",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,7 +29,7 @@
29
29
  "typescript": "^5.7.0"
30
30
  },
31
31
  "scripts": {
32
- "build": "tsc",
32
+ "build": "tsc && cp src/integrations.json dist/integrations.json",
33
33
  "typecheck": "tsc --noEmit"
34
34
  }
35
35
  }