@crawlee-cloud/cli 0.3.0 ā 0.8.5
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/README.md +51 -7
- package/dist/bin.js +0 -0
- package/dist/commands/info.d.ts +14 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +98 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +8 -6
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/profile.d.ts +17 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +70 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +83 -2
- package/dist/commands/push.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/config.d.ts +59 -6
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +134 -21
- package/dist/utils/config.js.map +1 -1
- package/package.json +5 -3
- package/dist/commands/create.d.ts +0 -9
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -70
- package/dist/commands/create.js.map +0 -1
package/README.md
CHANGED
|
@@ -26,11 +26,17 @@ crc <command> [options]
|
|
|
26
26
|
|
|
27
27
|
### Commands
|
|
28
28
|
|
|
29
|
-
- `login` - Login to your Crawlee Cloud account
|
|
29
|
+
- `login` - Login to your Crawlee Cloud account (supports `--profile` for multi-environment setups)
|
|
30
|
+
- `info` - Show the active profile, API URL, server status, and authenticated user
|
|
31
|
+
- `profile` - Manage saved login profiles (`list`, `use`, `rm`)
|
|
32
|
+
- `init` - Scaffold a new Actor project from an Apify template
|
|
30
33
|
- `push` - Deploy an Actor to the cloud
|
|
31
|
-
- `run` -
|
|
32
|
-
- `call` - Run an Actor
|
|
34
|
+
- `run` - Run an Actor locally
|
|
35
|
+
- `call` - Run an Actor on the platform (with optional `--wait`)
|
|
36
|
+
- `list` - List actors and runs
|
|
33
37
|
- `logs` - Stream logs from a running Actor
|
|
38
|
+
- `status` - Check the status of a run
|
|
39
|
+
- `dev` - Run an Actor locally with hot reload
|
|
34
40
|
|
|
35
41
|
## Example
|
|
36
42
|
|
|
@@ -56,12 +62,50 @@ crc login --url https://your-server.com
|
|
|
56
62
|
|
|
57
63
|
You'll be prompted for your API token. Credentials are stored in `~/.crawlee-cloud/config.json`.
|
|
58
64
|
|
|
65
|
+
### Profiles (multi-environment)
|
|
66
|
+
|
|
67
|
+
Switch between local, staging, and production with named profiles. Each profile holds its own API URL + token.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Save credentials under a named profile
|
|
71
|
+
crc login --profile local --url http://localhost:3000 --token <T>
|
|
72
|
+
crc login --profile staging --url https://crc.staging.com --token <T>
|
|
73
|
+
crc login --profile prod --url https://crc.prod.com --token <T>
|
|
74
|
+
|
|
75
|
+
# List all profiles (active marked with *)
|
|
76
|
+
crc profile list
|
|
77
|
+
|
|
78
|
+
# Switch the active profile
|
|
79
|
+
crc profile use staging
|
|
80
|
+
|
|
81
|
+
# Remove a profile
|
|
82
|
+
crc profile rm staging
|
|
83
|
+
|
|
84
|
+
# Check what's currently active and reachable
|
|
85
|
+
crc info
|
|
86
|
+
crc info --json # for scripts / CI healthchecks
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
For per-invocation overrides without changing the active profile, use the `CRAWLEE_CLOUD_PROFILE` env var:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
CRAWLEE_CLOUD_PROFILE=prod crc push # one-off push to prod, no `profile use` needed
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`crc info` exits non-zero if the server is unreachable or the token is invalid, which makes it suitable as a CI gate before `crc push`:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
crc info --json >/dev/null && crc push
|
|
99
|
+
```
|
|
100
|
+
|
|
59
101
|
### Environment Variables
|
|
60
102
|
|
|
61
|
-
| Variable
|
|
62
|
-
|
|
|
63
|
-
| `CRAWLEE_CLOUD_API_URL`
|
|
64
|
-
| `CRAWLEE_CLOUD_TOKEN`
|
|
103
|
+
| Variable | Description |
|
|
104
|
+
| ---------------------------- | --------------------------------------------------------------- |
|
|
105
|
+
| `CRAWLEE_CLOUD_API_URL` | Override the active profile's API base URL |
|
|
106
|
+
| `CRAWLEE_CLOUD_TOKEN` | Override the active profile's API token |
|
|
107
|
+
| `CRAWLEE_CLOUD_PROFILE` | Override the active profile name for this invocation |
|
|
108
|
+
| `CRAWLEE_CLOUD_REGISTRY_URL` | Docker registry URL used by `crc push` for image push, optional |
|
|
65
109
|
|
|
66
110
|
## Documentation
|
|
67
111
|
|
package/dist/bin.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `crawlee-cloud info` command.
|
|
3
|
+
*
|
|
4
|
+
* The "where am I?" command. Prints the active profile, the API URL, the
|
|
5
|
+
* authenticated user, and a quick reachability check on the server.
|
|
6
|
+
*
|
|
7
|
+
* Output is intentionally short ā operators run this when context-switching
|
|
8
|
+
* between environments and want a one-line "did that `profile use` actually
|
|
9
|
+
* change what I think it changed?" answer. We avoid pulling in heavy data
|
|
10
|
+
* (recent runs, build counts, etc.) so this command stays sub-100ms.
|
|
11
|
+
*/
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
export declare const infoCommand: Command;
|
|
14
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,eAAO,MAAM,WAAW,SAyGpB,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `crawlee-cloud info` command.
|
|
3
|
+
*
|
|
4
|
+
* The "where am I?" command. Prints the active profile, the API URL, the
|
|
5
|
+
* authenticated user, and a quick reachability check on the server.
|
|
6
|
+
*
|
|
7
|
+
* Output is intentionally short ā operators run this when context-switching
|
|
8
|
+
* between environments and want a one-line "did that `profile use` actually
|
|
9
|
+
* change what I think it changed?" answer. We avoid pulling in heavy data
|
|
10
|
+
* (recent runs, build counts, etc.) so this command stays sub-100ms.
|
|
11
|
+
*/
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
import chalk from 'chalk';
|
|
14
|
+
import { getConfig, getActiveProfileName } from '../utils/config.js';
|
|
15
|
+
export const infoCommand = new Command('info')
|
|
16
|
+
.description('Show the active profile, API URL, user, and server status')
|
|
17
|
+
.option('-j, --json', 'Output as JSON (for piping into scripts)')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
const profile = await getActiveProfileName();
|
|
20
|
+
const config = await getConfig();
|
|
21
|
+
// Two parallel HEAD-ish calls so a slow server doesn't make us wait
|
|
22
|
+
// for both serially. /health is unauthenticated; /v2/auth/me is
|
|
23
|
+
// authenticated and tells us who the token belongs to.
|
|
24
|
+
const start = Date.now();
|
|
25
|
+
const [healthRes, meRes] = await Promise.allSettled([
|
|
26
|
+
fetch(`${config.apiBaseUrl}/health`),
|
|
27
|
+
config.token
|
|
28
|
+
? fetch(`${config.apiBaseUrl}/v2/auth/me`, {
|
|
29
|
+
headers: { Authorization: `Bearer ${config.token}` },
|
|
30
|
+
})
|
|
31
|
+
: Promise.reject(new Error('no token')),
|
|
32
|
+
]);
|
|
33
|
+
const latencyMs = Date.now() - start;
|
|
34
|
+
let serverVersion;
|
|
35
|
+
let serverReachable = false;
|
|
36
|
+
if (healthRes.status === 'fulfilled' && healthRes.value.ok) {
|
|
37
|
+
serverReachable = true;
|
|
38
|
+
const health = (await healthRes.value.json());
|
|
39
|
+
serverVersion = health.version;
|
|
40
|
+
}
|
|
41
|
+
let user = null;
|
|
42
|
+
let authValid = false;
|
|
43
|
+
if (meRes.status === 'fulfilled' && meRes.value.ok) {
|
|
44
|
+
authValid = true;
|
|
45
|
+
const body = (await meRes.value.json());
|
|
46
|
+
user = { email: body.data.email, role: body.data.role };
|
|
47
|
+
}
|
|
48
|
+
const tokenPreview = config.token ? `${config.token.slice(0, 12)}...` : '(not set)';
|
|
49
|
+
if (options.json) {
|
|
50
|
+
// Stable, scriptable shape. We omit the full token ā the preview is
|
|
51
|
+
// enough for "is this the right token?" checks without leaking it
|
|
52
|
+
// into shell history / log files.
|
|
53
|
+
console.log(JSON.stringify({
|
|
54
|
+
profile,
|
|
55
|
+
apiBaseUrl: config.apiBaseUrl,
|
|
56
|
+
tokenPreview,
|
|
57
|
+
serverReachable,
|
|
58
|
+
serverVersion,
|
|
59
|
+
authValid,
|
|
60
|
+
user,
|
|
61
|
+
latencyMs,
|
|
62
|
+
}, null, 2));
|
|
63
|
+
// Both output formats share the same exit-code contract ā an
|
|
64
|
+
// unreachable server or invalid token must exit non-zero so
|
|
65
|
+
// `crc info --json >/dev/null && crc push` works as a CI gate.
|
|
66
|
+
// Doing the check here (instead of `return`-ing early) keeps
|
|
67
|
+
// human + JSON in lockstep.
|
|
68
|
+
if (!serverReachable || !authValid)
|
|
69
|
+
process.exit(1);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// Human-readable output. The label column is right-padded to a fixed
|
|
73
|
+
// width so values line up ā operators scan this fast, alignment helps.
|
|
74
|
+
const PAD = 11;
|
|
75
|
+
const row = (k, v) => ` ${chalk.dim(k.padEnd(PAD))} ${v}`;
|
|
76
|
+
console.log();
|
|
77
|
+
console.log(row('Profile:', chalk.green(profile) + chalk.dim(' (active)')));
|
|
78
|
+
console.log(row('API:', config.apiBaseUrl));
|
|
79
|
+
console.log(row('Server:', serverReachable
|
|
80
|
+
? chalk.green(`v${serverVersion ?? 'unknown'}`) + chalk.dim(` reachable, ${latencyMs}ms`)
|
|
81
|
+
: chalk.red('unreachable')));
|
|
82
|
+
console.log(row('Auth:', authValid
|
|
83
|
+
? chalk.green('valid')
|
|
84
|
+
: config.token
|
|
85
|
+
? chalk.red('invalid token')
|
|
86
|
+
: chalk.yellow('no token (run `crc login`)')));
|
|
87
|
+
if (user) {
|
|
88
|
+
console.log(row('User:', user.email + (user.role ? chalk.dim(` (${user.role})`) : '')));
|
|
89
|
+
}
|
|
90
|
+
console.log(row('Token:', chalk.dim(tokenPreview)));
|
|
91
|
+
console.log();
|
|
92
|
+
// Exit non-zero if anything is wrong ā useful in CI healthchecks
|
|
93
|
+
// (`crc info >/dev/null && do-other-stuff`).
|
|
94
|
+
if (!serverReachable || !authValid) {
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,eAAO,MAAM,YAAY,SAkFrB,CAAC"}
|
package/dist/commands/login.js
CHANGED
|
@@ -11,6 +11,7 @@ export const loginCommand = new Command('login')
|
|
|
11
11
|
.description('Authenticate with Crawlee Cloud')
|
|
12
12
|
.option('-t, --token <token>', 'API token')
|
|
13
13
|
.option('-u, --url <url>', 'API base URL')
|
|
14
|
+
.option('-p, --profile <name>', 'Profile name to save under. Use to manage multiple environments (e.g. local / prod).')
|
|
14
15
|
.action(async (options) => {
|
|
15
16
|
console.log(chalk.bold('\nš Login to Crawlee Cloud\n'));
|
|
16
17
|
const existingConfig = await getConfig();
|
|
@@ -50,12 +51,13 @@ export const loginCommand = new Command('login')
|
|
|
50
51
|
const userData = (await authResponse.json());
|
|
51
52
|
console.log(chalk.green(`ā
Connected to Crawlee Cloud v${health.version ?? '1.0.0'}`));
|
|
52
53
|
console.log(chalk.dim(` Authenticated as: ${userData.data.email}`));
|
|
53
|
-
// Save config only after successful validation
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
});
|
|
58
|
-
|
|
54
|
+
// Save config only after successful validation. When --profile is
|
|
55
|
+
// passed, save into that named profile AND make it active so the
|
|
56
|
+
// user can immediately run subsequent commands against it without
|
|
57
|
+
// an extra `profile use` step.
|
|
58
|
+
await saveConfig({ apiBaseUrl, token }, { profile: options.profile, setActive: true });
|
|
59
|
+
const profileName = options.profile ?? 'default';
|
|
60
|
+
console.log(chalk.dim(`\nSaved to profile "${profileName}" in ~/.crawlee-cloud/config.json`));
|
|
59
61
|
console.log(chalk.green('\nā
Login successful!\n'));
|
|
60
62
|
}
|
|
61
63
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `crawlee-cloud profile` command.
|
|
3
|
+
*
|
|
4
|
+
* Switch / list / remove named profiles. A profile is a stored API URL +
|
|
5
|
+
* token pair; one is active at a time. See utils/config.ts for the
|
|
6
|
+
* persisted shape and resolution rules.
|
|
7
|
+
*
|
|
8
|
+
* Subcommands:
|
|
9
|
+
* crc profile list # show all profiles, mark active
|
|
10
|
+
* crc profile use <name> # switch active profile
|
|
11
|
+
* crc profile rm <name> # delete a profile
|
|
12
|
+
*
|
|
13
|
+
* Use `crc login --profile <name>` to create a new profile.
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
export declare const profileCommand: Command;
|
|
17
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,cAAc,SAKxB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `crawlee-cloud profile` command.
|
|
3
|
+
*
|
|
4
|
+
* Switch / list / remove named profiles. A profile is a stored API URL +
|
|
5
|
+
* token pair; one is active at a time. See utils/config.ts for the
|
|
6
|
+
* persisted shape and resolution rules.
|
|
7
|
+
*
|
|
8
|
+
* Subcommands:
|
|
9
|
+
* crc profile list # show all profiles, mark active
|
|
10
|
+
* crc profile use <name> # switch active profile
|
|
11
|
+
* crc profile rm <name> # delete a profile
|
|
12
|
+
*
|
|
13
|
+
* Use `crc login --profile <name>` to create a new profile.
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
import chalk from 'chalk';
|
|
17
|
+
import { listProfiles, useProfile, removeProfile } from '../utils/config.js';
|
|
18
|
+
export const profileCommand = new Command('profile')
|
|
19
|
+
.description('Manage saved login profiles (multiple environments / accounts)')
|
|
20
|
+
.addHelpText('after', '\nCreate a profile with `crc login --profile <name>`. Use `crc info` to see the active profile.');
|
|
21
|
+
profileCommand
|
|
22
|
+
.command('list')
|
|
23
|
+
.alias('ls')
|
|
24
|
+
.description('List all profiles. The active one is marked.')
|
|
25
|
+
.action(async () => {
|
|
26
|
+
const profiles = await listProfiles();
|
|
27
|
+
if (profiles.length === 0) {
|
|
28
|
+
console.log(chalk.dim('No profiles configured. Run `crc login` to create one.'));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Two-column-ish layout: marker + name + url + token preview.
|
|
32
|
+
// We don't pull in `table` here because the formatting is so simple
|
|
33
|
+
// it'd be overkill for a four-column print.
|
|
34
|
+
const namePad = Math.max(...profiles.map((p) => p.name.length), 7);
|
|
35
|
+
for (const p of profiles) {
|
|
36
|
+
const marker = p.active ? chalk.green('* ') : ' ';
|
|
37
|
+
const name = (p.active ? chalk.green : chalk.white)(p.name.padEnd(namePad));
|
|
38
|
+
console.log(`${marker}${name} ${chalk.dim(p.apiBaseUrl)} ${chalk.dim(p.tokenPreview)}`);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
profileCommand
|
|
42
|
+
.command('use')
|
|
43
|
+
.description('Set the active profile')
|
|
44
|
+
.argument('<name>', 'Profile name to switch to')
|
|
45
|
+
.action(async (name) => {
|
|
46
|
+
try {
|
|
47
|
+
await useProfile(name);
|
|
48
|
+
console.log(chalk.green(`ā
Active profile is now "${name}"`));
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
console.error(chalk.red(`ā ${err.message}`));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
profileCommand
|
|
56
|
+
.command('rm')
|
|
57
|
+
.alias('remove')
|
|
58
|
+
.description('Remove a saved profile')
|
|
59
|
+
.argument('<name>', 'Profile name to remove')
|
|
60
|
+
.action(async (name) => {
|
|
61
|
+
try {
|
|
62
|
+
await removeProfile(name);
|
|
63
|
+
console.log(chalk.green(`ā
Removed profile "${name}"`));
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
console.error(chalk.red(`ā ${err.message}`));
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCpC,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCpC,eAAO,MAAM,WAAW,SA8NpB,CAAC"}
|
package/dist/commands/push.js
CHANGED
|
@@ -41,6 +41,8 @@ export const pushCommand = new Command('push')
|
|
|
41
41
|
.option('--ghcr <repo>', 'Push to GitHub Container Registry (e.g. org/repo)')
|
|
42
42
|
.option('--ghcr-user <user>', 'GHCR username (default: github)')
|
|
43
43
|
.option('--ghcr-token <token>', 'GHCR token (or set GHCR_TOKEN env var)')
|
|
44
|
+
.option('-e, --env <KEY=VALUE>', 'Set actor default env var (repeatable). Empty values are dropped.', collectEnv, {})
|
|
45
|
+
.option('--env-file <path>', 'Load actor default env vars from a file (KEY=VALUE per line, # comments allowed)')
|
|
44
46
|
.action(async (options) => {
|
|
45
47
|
console.log(chalk.bold('\nš¤ Pushing Actor to Crawlee Cloud\n'));
|
|
46
48
|
const cwd = process.cwd();
|
|
@@ -140,13 +142,45 @@ export const pushCommand = new Command('push')
|
|
|
140
142
|
if (existing)
|
|
141
143
|
existingId = existing.id;
|
|
142
144
|
}
|
|
145
|
+
// Resolve actor default env vars. Precedence (later wins):
|
|
146
|
+
// actor.json `environmentVariables`
|
|
147
|
+
// < --env-file (CI-friendly: gitignored .env-style file)
|
|
148
|
+
// < --env KEY=VALUE flag (per-run override)
|
|
149
|
+
// Empties are dropped from each *override* layer before merging ā an
|
|
150
|
+
// empty override means "don't override," so an unset CI secret can't
|
|
151
|
+
// clobber a non-empty actor.json default. (Whatever ships in
|
|
152
|
+
// actor.json is the author's intent, so we don't strip it.)
|
|
153
|
+
const fromActorJson = actorJson.environmentVariables ?? {};
|
|
154
|
+
const fromFile = options.envFile ? await loadEnvFile(options.envFile) : {};
|
|
155
|
+
const fromFlag = options.env ?? {};
|
|
156
|
+
const mergedEnvVars = {
|
|
157
|
+
...fromActorJson,
|
|
158
|
+
...dropEmpty(fromFile),
|
|
159
|
+
...dropEmpty(fromFlag),
|
|
160
|
+
};
|
|
161
|
+
// Resolve the image reference runners will pull. Mirrors the build/push
|
|
162
|
+
// branches above so the stored value matches whatever was actually pushed:
|
|
163
|
+
// --ghcr: ghcr.io/<repo>/actor-<name>:<tag>
|
|
164
|
+
// config.registryUrl + local: <registryUrl>/actor-<name>:<tag>
|
|
165
|
+
// local only / remote: imageName (local Docker daemon convention)
|
|
166
|
+
// Without this, ghcr / registryUrl deploys would store the local
|
|
167
|
+
// `crawlee-cloud/actor-...` tag and runners would fail to pull it.
|
|
168
|
+
const runtimeImage = buildMode === 'ghcr'
|
|
169
|
+
? `ghcr.io/${options.ghcr.toLowerCase()}/actor-${actorName}:${options.tag}`
|
|
170
|
+
: config.registryUrl && buildMode === 'local'
|
|
171
|
+
? `${config.registryUrl}/actor-${actorName}:${options.tag}`
|
|
172
|
+
: imageName;
|
|
143
173
|
const actorPayload = {
|
|
144
174
|
name: actorName,
|
|
145
175
|
title: actorJson.title,
|
|
146
176
|
description: actorJson.description,
|
|
177
|
+
// Source version from .actor/actor.json. Sent so the API can upsert
|
|
178
|
+
// an actor_versions row and link the build to it. Apify uses this
|
|
179
|
+
// for the version selector on the dashboard's build history.
|
|
180
|
+
version: actorJson.version,
|
|
147
181
|
defaultRunOptions: {
|
|
148
|
-
image:
|
|
149
|
-
envVars:
|
|
182
|
+
image: runtimeImage,
|
|
183
|
+
envVars: Object.keys(mergedEnvVars).length > 0 ? mergedEnvVars : undefined,
|
|
150
184
|
},
|
|
151
185
|
};
|
|
152
186
|
if (existingId) {
|
|
@@ -279,6 +313,53 @@ async function buildAndPushGhcr(cwd, _imageName, actorName, options) {
|
|
|
279
313
|
}
|
|
280
314
|
}
|
|
281
315
|
// ---- Helpers ----
|
|
316
|
+
/**
|
|
317
|
+
* commander value-collector for repeatable `-e KEY=VALUE` flags.
|
|
318
|
+
* Throws on malformed input rather than silently dropping it ā bad args
|
|
319
|
+
* during CI deploys would otherwise look like "no env vars set" later.
|
|
320
|
+
*/
|
|
321
|
+
function collectEnv(arg, prev) {
|
|
322
|
+
const eq = arg.indexOf('=');
|
|
323
|
+
if (eq <= 0) {
|
|
324
|
+
throw new Error(`Invalid --env value "${arg}". Expected KEY=VALUE.`);
|
|
325
|
+
}
|
|
326
|
+
const key = arg.slice(0, eq);
|
|
327
|
+
const value = arg.slice(eq + 1);
|
|
328
|
+
return { ...prev, [key]: value };
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Parse a .env-style file into a flat map. Supports `# comments`, blank
|
|
332
|
+
* lines, and quoted values. Does NOT do shell interpolation (no `$VAR`
|
|
333
|
+
* expansion) ā that's the caller's job if they want it.
|
|
334
|
+
*/
|
|
335
|
+
async function loadEnvFile(filePath) {
|
|
336
|
+
const content = await fs.readFile(filePath, 'utf8');
|
|
337
|
+
const out = {};
|
|
338
|
+
for (const rawLine of content.split('\n')) {
|
|
339
|
+
const line = rawLine.trim();
|
|
340
|
+
if (!line || line.startsWith('#'))
|
|
341
|
+
continue;
|
|
342
|
+
const eq = line.indexOf('=');
|
|
343
|
+
if (eq <= 0)
|
|
344
|
+
continue;
|
|
345
|
+
const key = line.slice(0, eq).trim();
|
|
346
|
+
let value = line.slice(eq + 1).trim();
|
|
347
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
348
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
349
|
+
value = value.slice(1, -1);
|
|
350
|
+
}
|
|
351
|
+
out[key] = value;
|
|
352
|
+
}
|
|
353
|
+
return out;
|
|
354
|
+
}
|
|
355
|
+
function dropEmpty(map) {
|
|
356
|
+
const out = {};
|
|
357
|
+
for (const [k, v] of Object.entries(map)) {
|
|
358
|
+
if (v !== undefined && v !== '')
|
|
359
|
+
out[k] = v;
|
|
360
|
+
}
|
|
361
|
+
return out;
|
|
362
|
+
}
|
|
282
363
|
function runCommand(cmd, args, cwd) {
|
|
283
364
|
return new Promise((resolve, reject) => {
|
|
284
365
|
const child = spawn(cmd, args, { cwd, stdio: 'pipe' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAiB/C,SAAS,iBAAiB,CAAC,SAAoB;IAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,CAAC;KACvD,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC;KACzC,MAAM,CAAC,uBAAuB,EAAE,0CAA0C,EAAE,EAAE,CAAC;KAC/E,MAAM,CAAC,sBAAsB,EAAE,kCAAkC,CAAC;KAClE,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;KACtD,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC;KAC5E,MAAM,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;KAC/D,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,mCAAmC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC;;;;IAId,CAAC,CACE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAoB,CAAC;IACzB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvD,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,IAAK,CAAC;IAClC,MAAM,SAAS,GAAG,uBAAuB,SAAS,IAAI,OAAO,CAAC,GAAa,EAAE,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAI,SAAS,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzE,IAAI,SAAS,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC;IAE9C,uBAAuB;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,0BAA0B;IAC1B,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU;QACzC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5B,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM,CAAC,WAAW,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,WAAW,UAAU,SAAS,IAAI,OAAO,CAAC,GAAa,EAAE,CAAC;YACxF,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;YACjE,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,WAAW,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,MAAM,eAAe,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpE,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,oBAAoB,EAAE;YACpE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE;SACrD,CAAC,CAAC;QAEH,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAErC,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACvE,IAAI,QAAQ;gBAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,iBAAiB,EAAE;gBACjB,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,SAAS,CAAC,oBAAoB;aACxC;SACF,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,YAAY,UAAU,EAAE,EAAE;gBACzE,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE;iBACxC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;aACnC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,UAAU,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE;iBACxC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;aACnC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,SAAS,0BAA0B,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAE7B,KAAK,UAAU,UAAU,CACvB,GAAW,EACX,SAAiB,EACjB,OAA8B;IAE9B,MAAM,YAAY,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAW,EACX,SAAiB,EACjB,OAA4C;IAE5C,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,qBAAqB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEpD,+BAA+B;QAC/B,YAAY,CAAC,IAAI,GAAG,0BAA0B,CAAC;QAC/C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAE9F,kBAAkB;QAClB,YAAY,CAAC,IAAI,GAAG,uBAAuB,CAAC;QAC5C,MAAM,UAAU,CACd,KAAK,EACL,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,SAAS,uBAAuB,SAAS,IAAI,CAAC,EACjF,GAAG,CACJ,CAAC;QAEF,iBAAiB;QACjB,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAElF,YAAY,CAAC,OAAO,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,UAAkB,EAClB,SAAiB,EACjB,OAAgG;IAEhG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,QAAQ,CAAC;IACvE,MAAM,SAAS,GAAG,WAAW,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAE5F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB,MAAM,YAAY,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,mBAAmB,CACvB,QAAQ,EACR,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EACxD,SAAS,EACT,GAAG,CACJ,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ;IACR,MAAM,YAAY,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;IACP,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,SAAS,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,oBAAoB;AAEpB,SAAS,UAAU,CAAC,GAAW,EAAE,IAAc,EAAE,GAAW;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,4BAA4B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAW,EACX,IAAc,EACd,KAAa,EACb,GAAW;IAEX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEzE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAEnB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,4BAA4B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,OAAO,SAAgB,CAAC;AAoBrC,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,8 @@ import { logsCommand } from './commands/logs.js';
|
|
|
21
21
|
import { statusCommand } from './commands/status.js';
|
|
22
22
|
import { loginCommand } from './commands/login.js';
|
|
23
23
|
import { listCommand } from './commands/list.js';
|
|
24
|
+
import { profileCommand } from './commands/profile.js';
|
|
25
|
+
import { infoCommand } from './commands/info.js';
|
|
24
26
|
export const program = new Command();
|
|
25
27
|
program
|
|
26
28
|
.name('crawlee-cloud')
|
|
@@ -36,6 +38,8 @@ program.addCommand(logsCommand);
|
|
|
36
38
|
program.addCommand(statusCommand);
|
|
37
39
|
program.addCommand(loginCommand);
|
|
38
40
|
program.addCommand(listCommand);
|
|
41
|
+
program.addCommand(profileCommand);
|
|
42
|
+
program.addCommand(infoCommand);
|
|
39
43
|
export { program as cli };
|
|
40
44
|
// v0.2.1 trigger
|
|
41
45
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC;AAE1B,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC;AAE1B,iBAAiB"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration utilities for CLI.
|
|
3
|
+
*
|
|
4
|
+
* The config file supports multiple named "profiles" ā separate API URL +
|
|
5
|
+
* token sets for different environments (local / staging / prod / per-team).
|
|
6
|
+
* One profile is active at a time; `getConfig()` returns its values so the
|
|
7
|
+
* rest of the CLI doesn't need to know about profiles at all.
|
|
8
|
+
*
|
|
9
|
+
* Persisted shape (~/.crawlee-cloud/config.json):
|
|
10
|
+
* {
|
|
11
|
+
* "activeProfile": "default",
|
|
12
|
+
* "profiles": {
|
|
13
|
+
* "default": { "apiBaseUrl": "...", "token": "...", "registryUrl": "..." },
|
|
14
|
+
* "prod": { ... },
|
|
15
|
+
* "staging": { ... }
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* Backwards-compat: if the file is in the OLD flat shape
|
|
20
|
+
* { "apiBaseUrl": "...", "token": "..." }
|
|
21
|
+
* we migrate it on first read into a `default` profile, transparently.
|
|
22
|
+
*
|
|
23
|
+
* Profile selection precedence (highest wins):
|
|
24
|
+
* 1. CRAWLEE_CLOUD_PROFILE env var (per-invocation override)
|
|
25
|
+
* 2. activeProfile in config.json
|
|
26
|
+
* 3. "default"
|
|
27
|
+
*
|
|
28
|
+
* Env-var overrides for the active profile's fields still apply
|
|
29
|
+
* (CRAWLEE_CLOUD_API_URL, CRAWLEE_CLOUD_TOKEN, etc.) ā useful for CI.
|
|
3
30
|
*/
|
|
4
31
|
export interface CLIConfig {
|
|
5
32
|
apiBaseUrl: string;
|
|
@@ -7,15 +34,41 @@ export interface CLIConfig {
|
|
|
7
34
|
registryUrl?: string;
|
|
8
35
|
}
|
|
9
36
|
/**
|
|
10
|
-
* Get CLI configuration.
|
|
37
|
+
* Get the effective CLI configuration for the active profile.
|
|
38
|
+
*
|
|
39
|
+
* Resolution order per field (highest wins):
|
|
40
|
+
* 1. Direct env var (CRAWLEE_CLOUD_API_URL, CRAWLEE_CLOUD_TOKEN, ...)
|
|
41
|
+
* 2. Active profile in config.json
|
|
42
|
+
* 3. Hard-coded defaults
|
|
11
43
|
*/
|
|
12
44
|
export declare function getConfig(): Promise<CLIConfig>;
|
|
13
45
|
/**
|
|
14
|
-
* Save
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*
|
|
46
|
+
* Save (merge) into the active profile. Used by `crc login` to persist
|
|
47
|
+
* after a successful auth handshake.
|
|
48
|
+
*
|
|
49
|
+
* If `profile` is passed, that named profile is updated/created instead
|
|
50
|
+
* of the active one ā this is how `crc login --profile prod` adds a new
|
|
51
|
+
* profile without disturbing the active selection.
|
|
19
52
|
*/
|
|
53
|
+
export declare function saveConfig(config: Partial<CLIConfig>, options?: {
|
|
54
|
+
profile?: string;
|
|
55
|
+
setActive?: boolean;
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
/** Delete every persisted profile + reset active. Used in test cleanup. */
|
|
20
58
|
export declare function clearConfig(): Promise<void>;
|
|
59
|
+
export interface ProfileSummary {
|
|
60
|
+
name: string;
|
|
61
|
+
apiBaseUrl: string;
|
|
62
|
+
/** First 12 chars of the token, suffix masked. */
|
|
63
|
+
tokenPreview: string;
|
|
64
|
+
active: boolean;
|
|
65
|
+
}
|
|
66
|
+
/** List every persisted profile with its API URL and a masked token preview. */
|
|
67
|
+
export declare function listProfiles(): Promise<ProfileSummary[]>;
|
|
68
|
+
/** Set the active profile. Throws if the named profile doesn't exist. */
|
|
69
|
+
export declare function useProfile(name: string): Promise<void>;
|
|
70
|
+
/** Remove a named profile. If it was active, fall back to "default" or first. */
|
|
71
|
+
export declare function removeProfile(name: string): Promise<void>;
|
|
72
|
+
/** Get the currently-active profile's name (after env-var override). */
|
|
73
|
+
export declare function getActiveProfileName(): Promise<string>;
|
|
21
74
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4CD;;;;;;;GAOG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,CAmBpD;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,EAC1B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACtD,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,2EAA2E;AAC3E,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,gFAAgF;AAChF,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAU9D;AAED,yEAAyE;AACzE,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5D;AAED,iFAAiF;AACjF,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/D;AAED,wEAAwE;AACxE,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAG5D"}
|
package/dist/utils/config.js
CHANGED
|
@@ -1,46 +1,159 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration utilities for CLI.
|
|
3
|
+
*
|
|
4
|
+
* The config file supports multiple named "profiles" ā separate API URL +
|
|
5
|
+
* token sets for different environments (local / staging / prod / per-team).
|
|
6
|
+
* One profile is active at a time; `getConfig()` returns its values so the
|
|
7
|
+
* rest of the CLI doesn't need to know about profiles at all.
|
|
8
|
+
*
|
|
9
|
+
* Persisted shape (~/.crawlee-cloud/config.json):
|
|
10
|
+
* {
|
|
11
|
+
* "activeProfile": "default",
|
|
12
|
+
* "profiles": {
|
|
13
|
+
* "default": { "apiBaseUrl": "...", "token": "...", "registryUrl": "..." },
|
|
14
|
+
* "prod": { ... },
|
|
15
|
+
* "staging": { ... }
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* Backwards-compat: if the file is in the OLD flat shape
|
|
20
|
+
* { "apiBaseUrl": "...", "token": "..." }
|
|
21
|
+
* we migrate it on first read into a `default` profile, transparently.
|
|
22
|
+
*
|
|
23
|
+
* Profile selection precedence (highest wins):
|
|
24
|
+
* 1. CRAWLEE_CLOUD_PROFILE env var (per-invocation override)
|
|
25
|
+
* 2. activeProfile in config.json
|
|
26
|
+
* 3. "default"
|
|
27
|
+
*
|
|
28
|
+
* Env-var overrides for the active profile's fields still apply
|
|
29
|
+
* (CRAWLEE_CLOUD_API_URL, CRAWLEE_CLOUD_TOKEN, etc.) ā useful for CI.
|
|
3
30
|
*/
|
|
4
31
|
import fs from 'fs-extra';
|
|
5
32
|
import path from 'path';
|
|
6
33
|
import os from 'os';
|
|
7
34
|
const CONFIG_DIR = path.join(os.homedir(), '.crawlee-cloud');
|
|
8
35
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
36
|
+
const DEFAULT_PROFILE = 'default';
|
|
37
|
+
/** Read the on-disk file, migrating the old flat shape if needed. */
|
|
38
|
+
async function readProfileFile() {
|
|
39
|
+
if (!(await fs.pathExists(CONFIG_FILE)))
|
|
40
|
+
return {};
|
|
41
|
+
const raw = (await fs.readJson(CONFIG_FILE));
|
|
42
|
+
// Already in profile shape: it has a `profiles` object.
|
|
43
|
+
if (raw && typeof raw === 'object' && 'profiles' in raw) {
|
|
44
|
+
return raw;
|
|
45
|
+
}
|
|
46
|
+
// Legacy flat shape: { apiBaseUrl, token, registryUrl }. Wrap it as the
|
|
47
|
+
// default profile so the new code paths see a consistent layout. We
|
|
48
|
+
// don't write the migrated file back here ā saveConfig() does that on
|
|
49
|
+
// the next mutation, so reading is non-destructive.
|
|
50
|
+
if (raw && typeof raw === 'object' && ('token' in raw || 'apiBaseUrl' in raw)) {
|
|
51
|
+
return {
|
|
52
|
+
activeProfile: DEFAULT_PROFILE,
|
|
53
|
+
profiles: { [DEFAULT_PROFILE]: raw },
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolve which profile to use for this invocation.
|
|
60
|
+
* Looks at CRAWLEE_CLOUD_PROFILE env var first (per-invocation override),
|
|
61
|
+
* then the file's activeProfile, then "default".
|
|
62
|
+
*/
|
|
63
|
+
function activeProfileName(file) {
|
|
64
|
+
return process.env.CRAWLEE_CLOUD_PROFILE || file.activeProfile || DEFAULT_PROFILE;
|
|
65
|
+
}
|
|
9
66
|
/**
|
|
10
|
-
* Get CLI configuration.
|
|
67
|
+
* Get the effective CLI configuration for the active profile.
|
|
68
|
+
*
|
|
69
|
+
* Resolution order per field (highest wins):
|
|
70
|
+
* 1. Direct env var (CRAWLEE_CLOUD_API_URL, CRAWLEE_CLOUD_TOKEN, ...)
|
|
71
|
+
* 2. Active profile in config.json
|
|
72
|
+
* 3. Hard-coded defaults
|
|
11
73
|
*/
|
|
12
74
|
export async function getConfig() {
|
|
13
|
-
// Check environment variables first
|
|
14
75
|
const envConfig = {
|
|
15
|
-
apiBaseUrl: process.env.CRAWLEE_CLOUD_API_URL ||
|
|
16
|
-
|
|
76
|
+
apiBaseUrl: process.env.CRAWLEE_CLOUD_API_URL ||
|
|
77
|
+
process.env.APIFY_API_BASE_URL?.replace('/v2', '') ||
|
|
78
|
+
undefined,
|
|
79
|
+
token: process.env.CRAWLEE_CLOUD_TOKEN || process.env.APIFY_TOKEN || undefined,
|
|
17
80
|
registryUrl: process.env.CRAWLEE_CLOUD_REGISTRY_URL,
|
|
18
81
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
return envConfig;
|
|
82
|
+
const file = await readProfileFile();
|
|
83
|
+
const name = activeProfileName(file);
|
|
84
|
+
const fromFile = file.profiles?.[name];
|
|
85
|
+
return {
|
|
86
|
+
apiBaseUrl: envConfig.apiBaseUrl ?? fromFile?.apiBaseUrl ?? 'http://localhost:3000',
|
|
87
|
+
token: envConfig.token ?? fromFile?.token ?? '',
|
|
88
|
+
registryUrl: envConfig.registryUrl ?? fromFile?.registryUrl,
|
|
89
|
+
};
|
|
28
90
|
}
|
|
29
91
|
/**
|
|
30
|
-
* Save
|
|
92
|
+
* Save (merge) into the active profile. Used by `crc login` to persist
|
|
93
|
+
* after a successful auth handshake.
|
|
94
|
+
*
|
|
95
|
+
* If `profile` is passed, that named profile is updated/created instead
|
|
96
|
+
* of the active one ā this is how `crc login --profile prod` adds a new
|
|
97
|
+
* profile without disturbing the active selection.
|
|
31
98
|
*/
|
|
32
|
-
export async function saveConfig(config) {
|
|
99
|
+
export async function saveConfig(config, options = {}) {
|
|
33
100
|
await fs.ensureDir(CONFIG_DIR);
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
|
|
101
|
+
const file = await readProfileFile();
|
|
102
|
+
const name = options.profile ?? activeProfileName(file);
|
|
103
|
+
const profiles = file.profiles ?? {};
|
|
104
|
+
const existing = profiles[name] ?? { apiBaseUrl: '', token: '' };
|
|
105
|
+
profiles[name] = { ...existing, ...config };
|
|
106
|
+
const next = {
|
|
107
|
+
activeProfile: options.setActive ? name : (file.activeProfile ?? name),
|
|
108
|
+
profiles,
|
|
109
|
+
};
|
|
110
|
+
await fs.writeJson(CONFIG_FILE, next, { spaces: 2, mode: 0o600 });
|
|
37
111
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Clear CLI configuration.
|
|
40
|
-
*/
|
|
112
|
+
/** Delete every persisted profile + reset active. Used in test cleanup. */
|
|
41
113
|
export async function clearConfig() {
|
|
42
114
|
if (await fs.pathExists(CONFIG_FILE)) {
|
|
43
115
|
await fs.remove(CONFIG_FILE);
|
|
44
116
|
}
|
|
45
117
|
}
|
|
118
|
+
/** List every persisted profile with its API URL and a masked token preview. */
|
|
119
|
+
export async function listProfiles() {
|
|
120
|
+
const file = await readProfileFile();
|
|
121
|
+
const active = activeProfileName(file);
|
|
122
|
+
const profiles = file.profiles ?? {};
|
|
123
|
+
return Object.entries(profiles).map(([name, p]) => ({
|
|
124
|
+
name,
|
|
125
|
+
apiBaseUrl: p.apiBaseUrl,
|
|
126
|
+
tokenPreview: p.token ? `${p.token.slice(0, 12)}...` : '(no token)',
|
|
127
|
+
active: name === active,
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
/** Set the active profile. Throws if the named profile doesn't exist. */
|
|
131
|
+
export async function useProfile(name) {
|
|
132
|
+
const file = await readProfileFile();
|
|
133
|
+
if (!file.profiles?.[name]) {
|
|
134
|
+
throw new Error(`Profile "${name}" not found. Run \`crc profile list\` to see available profiles.`);
|
|
135
|
+
}
|
|
136
|
+
await fs.writeJson(CONFIG_FILE, { ...file, activeProfile: name }, { spaces: 2, mode: 0o600 });
|
|
137
|
+
}
|
|
138
|
+
/** Remove a named profile. If it was active, fall back to "default" or first. */
|
|
139
|
+
export async function removeProfile(name) {
|
|
140
|
+
const file = await readProfileFile();
|
|
141
|
+
if (!file.profiles?.[name]) {
|
|
142
|
+
throw new Error(`Profile "${name}" not found.`);
|
|
143
|
+
}
|
|
144
|
+
delete file.profiles[name];
|
|
145
|
+
// If we removed the active profile, pick a sensible new active so the
|
|
146
|
+
// user isn't left in a "no profile" limbo. Prefer DEFAULT_PROFILE,
|
|
147
|
+
// otherwise the alphabetically first remaining one, otherwise undefined.
|
|
148
|
+
if (file.activeProfile === name) {
|
|
149
|
+
const remaining = Object.keys(file.profiles);
|
|
150
|
+
file.activeProfile = file.profiles[DEFAULT_PROFILE] ? DEFAULT_PROFILE : remaining.sort()[0];
|
|
151
|
+
}
|
|
152
|
+
await fs.writeJson(CONFIG_FILE, file, { spaces: 2, mode: 0o600 });
|
|
153
|
+
}
|
|
154
|
+
/** Get the currently-active profile's name (after env-var override). */
|
|
155
|
+
export async function getActiveProfileName() {
|
|
156
|
+
const file = await readProfileFile();
|
|
157
|
+
return activeProfileName(file);
|
|
158
|
+
}
|
|
46
159
|
//# sourceMappingURL=config.js.map
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crawlee-cloud/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.5",
|
|
4
4
|
"description": "CLI for Crawlee Cloud - run and deploy Actors",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"build": "tsc",
|
|
14
14
|
"dev": "tsx src/bin.ts",
|
|
15
15
|
"clean": "rm -rf dist",
|
|
16
|
-
"typecheck": "tsc --noEmit"
|
|
16
|
+
"typecheck": "tsc --noEmit",
|
|
17
|
+
"test:integration": "vitest run --config vitest.integration.config.ts"
|
|
17
18
|
},
|
|
18
19
|
"keywords": [
|
|
19
20
|
"crawlee",
|
|
@@ -38,7 +39,8 @@
|
|
|
38
39
|
"@types/fs-extra": "^11.0.4",
|
|
39
40
|
"@types/node": "^20.10.0",
|
|
40
41
|
"tsx": "^4.7.0",
|
|
41
|
-
"typescript": "^5.7.2"
|
|
42
|
+
"typescript": "^5.7.2",
|
|
43
|
+
"vitest": "^2.1.9"
|
|
42
44
|
},
|
|
43
45
|
"files": [
|
|
44
46
|
"dist"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `crawlee-cloud create` command
|
|
3
|
-
*
|
|
4
|
-
* Creates a new Actor project using official Apify templates.
|
|
5
|
-
* This ensures 100% compatibility with Apify Cloud for zero-code migration.
|
|
6
|
-
*/
|
|
7
|
-
import { Command } from 'commander';
|
|
8
|
-
export declare const createCommand: Command;
|
|
9
|
-
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAiEtB,CAAC"}
|
package/dist/commands/create.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `crawlee-cloud create` command
|
|
3
|
-
*
|
|
4
|
-
* Creates a new Actor project using official Apify templates.
|
|
5
|
-
* This ensures 100% compatibility with Apify Cloud for zero-code migration.
|
|
6
|
-
*/
|
|
7
|
-
import { Command } from 'commander';
|
|
8
|
-
import chalk from 'chalk';
|
|
9
|
-
import { spawn } from 'child_process';
|
|
10
|
-
import { input } from '@inquirer/prompts';
|
|
11
|
-
export const createCommand = new Command('create')
|
|
12
|
-
.description('Create a new Actor project (uses official Apify templates)')
|
|
13
|
-
.argument('[name]', 'Actor name')
|
|
14
|
-
.option('-t, --template <template>', 'Template to use (passed to apify-cli)')
|
|
15
|
-
.option('--skip-install', 'Skip npm install after creation')
|
|
16
|
-
.action(async (name, options) => {
|
|
17
|
-
console.log(chalk.bold('\nš Create new Crawlee Cloud Actor\n'));
|
|
18
|
-
console.log(chalk.dim('Using official Apify templates for 100% compatibility\n'));
|
|
19
|
-
// Get name if not provided
|
|
20
|
-
const actorName = name || await input({
|
|
21
|
-
message: 'Actor name:',
|
|
22
|
-
default: 'my-actor',
|
|
23
|
-
validate: (value) => {
|
|
24
|
-
if (!/^[a-z0-9-]+$/.test(value)) {
|
|
25
|
-
return 'Name must be lowercase letters, numbers, and hyphens only';
|
|
26
|
-
}
|
|
27
|
-
return true;
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
// Build apify-cli create command arguments
|
|
31
|
-
const args = ['apify-cli', 'create', actorName];
|
|
32
|
-
if (options.template) {
|
|
33
|
-
args.push('--template', options.template);
|
|
34
|
-
}
|
|
35
|
-
if (options.skipInstall) {
|
|
36
|
-
args.push('--skip-dependency-install');
|
|
37
|
-
}
|
|
38
|
-
console.log(chalk.dim(`Running: npx ${args.join(' ')}\n`));
|
|
39
|
-
// Run npx apify-cli create
|
|
40
|
-
const child = spawn('npx', args, {
|
|
41
|
-
stdio: 'inherit',
|
|
42
|
-
shell: true,
|
|
43
|
-
});
|
|
44
|
-
child.on('close', (code) => {
|
|
45
|
-
if (code === 0) {
|
|
46
|
-
console.log(chalk.green('\nā
Actor created successfully!'));
|
|
47
|
-
console.log(chalk.dim('\nYour Actor is 100% compatible with both:'));
|
|
48
|
-
console.log(chalk.cyan(' ⢠Apify Cloud (apify.com)'));
|
|
49
|
-
console.log(chalk.cyan(' ⢠Crawlee Cloud (self-hosted)'));
|
|
50
|
-
console.log();
|
|
51
|
-
console.log(chalk.dim('To run locally:'));
|
|
52
|
-
console.log(chalk.cyan(` cd ${actorName}`));
|
|
53
|
-
console.log(chalk.cyan(' npm start'));
|
|
54
|
-
console.log();
|
|
55
|
-
console.log(chalk.dim('To deploy to Crawlee Cloud:'));
|
|
56
|
-
console.log(chalk.cyan(' crawlee-cloud push'));
|
|
57
|
-
console.log();
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
console.log(chalk.red(`\nā Failed to create Actor (exit code: ${code})`));
|
|
61
|
-
process.exit(code ?? 1);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
child.on('error', (err) => {
|
|
65
|
-
console.error(chalk.red('\nā Failed to run apify-cli:'), err.message);
|
|
66
|
-
console.log(chalk.dim('\nMake sure you have npx available (comes with npm 5.2+)'));
|
|
67
|
-
process.exit(1);
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|