apify-cli 0.21.10-beta.5 → 0.21.10-beta.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/actor.js +3 -0
- package/dist/actor.js.map +1 -0
- package/dist/apify.js +3 -0
- package/dist/apify.js.map +1 -0
- package/dist/chunk-SA3HH2MX.js +236 -0
- package/dist/chunk-SA3HH2MX.js.map +1 -0
- package/dist/index.js +2 -3
- package/package.json +6 -6
- package/dist/commands/_register.js +0 -72
- package/dist/commands/_register.js.map +0 -1
- package/dist/commands/actor/_index.js +0 -24
- package/dist/commands/actor/_index.js.map +0 -1
- package/dist/commands/actor/charge.js +0 -84
- package/dist/commands/actor/charge.js.map +0 -1
- package/dist/commands/actor/get-input.js +0 -10
- package/dist/commands/actor/get-input.js.map +0 -1
- package/dist/commands/actor/get-public-url.js +0 -52
- package/dist/commands/actor/get-public-url.js.map +0 -1
- package/dist/commands/actor/get-value.js +0 -18
- package/dist/commands/actor/get-value.js.map +0 -1
- package/dist/commands/actor/push-data.js +0 -38
- package/dist/commands/actor/push-data.js.map +0 -1
- package/dist/commands/actor/set-value.js +0 -52
- package/dist/commands/actor/set-value.js.map +0 -1
- package/dist/commands/actors/_index.js +0 -28
- package/dist/commands/actors/_index.js.map +0 -1
- package/dist/commands/actors/build.js +0 -6
- package/dist/commands/actors/build.js.map +0 -1
- package/dist/commands/actors/call.js +0 -224
- package/dist/commands/actors/call.js.map +0 -1
- package/dist/commands/actors/info.js +0 -203
- package/dist/commands/actors/info.js.map +0 -1
- package/dist/commands/actors/ls.js +0 -226
- package/dist/commands/actors/ls.js.map +0 -1
- package/dist/commands/actors/pull.js +0 -150
- package/dist/commands/actors/pull.js.map +0 -1
- package/dist/commands/actors/push.js +0 -300
- package/dist/commands/actors/push.js.map +0 -1
- package/dist/commands/actors/rm.js +0 -43
- package/dist/commands/actors/rm.js.map +0 -1
- package/dist/commands/actors/start.js +0 -125
- package/dist/commands/actors/start.js.map +0 -1
- package/dist/commands/builds/_index.js +0 -22
- package/dist/commands/builds/_index.js.map +0 -1
- package/dist/commands/builds/create.js +0 -130
- package/dist/commands/builds/create.js.map +0 -1
- package/dist/commands/builds/info.js +0 -78
- package/dist/commands/builds/info.js.map +0 -1
- package/dist/commands/builds/log.js +0 -35
- package/dist/commands/builds/log.js.map +0 -1
- package/dist/commands/builds/ls.js +0 -141
- package/dist/commands/builds/ls.js.map +0 -1
- package/dist/commands/builds/rm.js +0 -59
- package/dist/commands/builds/rm.js.map +0 -1
- package/dist/commands/call.js +0 -5
- package/dist/commands/call.js.map +0 -1
- package/dist/commands/cli-management/install.js +0 -138
- package/dist/commands/cli-management/install.js.map +0 -1
- package/dist/commands/cli-management/upgrade.js +0 -270
- package/dist/commands/cli-management/upgrade.js.map +0 -1
- package/dist/commands/create.js +0 -264
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/datasets/_index.js +0 -25
- package/dist/commands/datasets/_index.js.map +0 -1
- package/dist/commands/datasets/create.js +0 -38
- package/dist/commands/datasets/create.js.map +0 -1
- package/dist/commands/datasets/get-items.js +0 -84
- package/dist/commands/datasets/get-items.js.map +0 -1
- package/dist/commands/datasets/info.js +0 -125
- package/dist/commands/datasets/info.js.map +0 -1
- package/dist/commands/datasets/ls.js +0 -73
- package/dist/commands/datasets/ls.js.map +0 -1
- package/dist/commands/datasets/push-items.js +0 -70
- package/dist/commands/datasets/push-items.js.map +0 -1
- package/dist/commands/datasets/rename.js +0 -71
- package/dist/commands/datasets/rename.js.map +0 -1
- package/dist/commands/datasets/rm.js +0 -48
- package/dist/commands/datasets/rm.js.map +0 -1
- package/dist/commands/edit-input-schema.js +0 -162
- package/dist/commands/edit-input-schema.js.map +0 -1
- package/dist/commands/help.js +0 -43
- package/dist/commands/help.js.map +0 -1
- package/dist/commands/info.js +0 -21
- package/dist/commands/info.js.map +0 -1
- package/dist/commands/init-wrap-scrapy.js +0 -27
- package/dist/commands/init-wrap-scrapy.js.map +0 -1
- package/dist/commands/init.js +0 -94
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/key-value-stores/_index.js +0 -30
- package/dist/commands/key-value-stores/_index.js.map +0 -1
- package/dist/commands/key-value-stores/create.js +0 -38
- package/dist/commands/key-value-stores/create.js.map +0 -1
- package/dist/commands/key-value-stores/delete-value.js +0 -61
- package/dist/commands/key-value-stores/delete-value.js.map +0 -1
- package/dist/commands/key-value-stores/get-value.js +0 -70
- package/dist/commands/key-value-stores/get-value.js.map +0 -1
- package/dist/commands/key-value-stores/info.js +0 -127
- package/dist/commands/key-value-stores/info.js.map +0 -1
- package/dist/commands/key-value-stores/keys.js +0 -61
- package/dist/commands/key-value-stores/keys.js.map +0 -1
- package/dist/commands/key-value-stores/ls.js +0 -70
- package/dist/commands/key-value-stores/ls.js.map +0 -1
- package/dist/commands/key-value-stores/rename.js +0 -71
- package/dist/commands/key-value-stores/rename.js.map +0 -1
- package/dist/commands/key-value-stores/rm.js +0 -48
- package/dist/commands/key-value-stores/rm.js.map +0 -1
- package/dist/commands/key-value-stores/set-value.js +0 -57
- package/dist/commands/key-value-stores/set-value.js.map +0 -1
- package/dist/commands/login.js +0 -183
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.js +0 -16
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/pull.js +0 -5
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/push.js +0 -5
- package/dist/commands/push.js.map +0 -1
- package/dist/commands/request-queues/_index.js +0 -9
- package/dist/commands/request-queues/_index.js.map +0 -1
- package/dist/commands/run.js +0 -434
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/runs/_index.js +0 -23
- package/dist/commands/runs/_index.js.map +0 -1
- package/dist/commands/runs/abort.js +0 -68
- package/dist/commands/runs/abort.js.map +0 -1
- package/dist/commands/runs/info.js +0 -238
- package/dist/commands/runs/info.js.map +0 -1
- package/dist/commands/runs/log.js +0 -32
- package/dist/commands/runs/log.js.map +0 -1
- package/dist/commands/runs/ls.js +0 -106
- package/dist/commands/runs/ls.js.map +0 -1
- package/dist/commands/runs/resurrect.js +0 -54
- package/dist/commands/runs/resurrect.js.map +0 -1
- package/dist/commands/runs/rm.js +0 -58
- package/dist/commands/runs/rm.js.map +0 -1
- package/dist/commands/secrets/_index.js +0 -25
- package/dist/commands/secrets/_index.js.map +0 -1
- package/dist/commands/secrets/add.js +0 -22
- package/dist/commands/secrets/add.js.map +0 -1
- package/dist/commands/secrets/rm.js +0 -18
- package/dist/commands/secrets/rm.js.map +0 -1
- package/dist/commands/task/_index.js +0 -11
- package/dist/commands/task/_index.js.map +0 -1
- package/dist/commands/task/run.js +0 -91
- package/dist/commands/task/run.js.map +0 -1
- package/dist/commands/validate-schema.js +0 -44
- package/dist/commands/validate-schema.js.map +0 -1
- package/dist/entrypoints/_shared.js +0 -258
- package/dist/entrypoints/_shared.js.map +0 -1
- package/dist/entrypoints/actor.js +0 -19
- package/dist/entrypoints/actor.js.map +0 -1
- package/dist/entrypoints/apify.js +0 -18
- package/dist/entrypoints/apify.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/actor.js +0 -74
- package/dist/lib/actor.js.map +0 -1
- package/dist/lib/command-framework/apify-command.js +0 -429
- package/dist/lib/command-framework/apify-command.js.map +0 -1
- package/dist/lib/command-framework/args.js +0 -24
- package/dist/lib/command-framework/args.js.map +0 -1
- package/dist/lib/command-framework/flags.js +0 -99
- package/dist/lib/command-framework/flags.js.map +0 -1
- package/dist/lib/command-framework/help/CommandHelp.js +0 -233
- package/dist/lib/command-framework/help/CommandHelp.js.map +0 -1
- package/dist/lib/command-framework/help/CommandWithSubcommands.js +0 -75
- package/dist/lib/command-framework/help/CommandWithSubcommands.js.map +0 -1
- package/dist/lib/command-framework/help/_BaseCommandRenderer.js +0 -63
- package/dist/lib/command-framework/help/_BaseCommandRenderer.js.map +0 -1
- package/dist/lib/command-framework/help/consts.js +0 -27
- package/dist/lib/command-framework/help/consts.js.map +0 -1
- package/dist/lib/command-framework/help.js +0 -105
- package/dist/lib/command-framework/help.js.map +0 -1
- package/dist/lib/commands/pretty-print-bytes.js +0 -13
- package/dist/lib/commands/pretty-print-bytes.js.map +0 -1
- package/dist/lib/commands/pretty-print-status.js +0 -29
- package/dist/lib/commands/pretty-print-status.js.map +0 -1
- package/dist/lib/commands/read-stdin.js +0 -42
- package/dist/lib/commands/read-stdin.js.map +0 -1
- package/dist/lib/commands/resolve-actor-context.js +0 -70
- package/dist/lib/commands/resolve-actor-context.js.map +0 -1
- package/dist/lib/commands/resolve-input.js +0 -162
- package/dist/lib/commands/resolve-input.js.map +0 -1
- package/dist/lib/commands/responsive-table.js +0 -129
- package/dist/lib/commands/responsive-table.js.map +0 -1
- package/dist/lib/commands/run-on-cloud.js +0 -126
- package/dist/lib/commands/run-on-cloud.js.map +0 -1
- package/dist/lib/commands/storage-size.js +0 -8
- package/dist/lib/commands/storage-size.js.map +0 -1
- package/dist/lib/commands/storages.js +0 -30
- package/dist/lib/commands/storages.js.map +0 -1
- package/dist/lib/consts.js +0 -58
- package/dist/lib/consts.js.map +0 -1
- package/dist/lib/create-utils.js +0 -156
- package/dist/lib/create-utils.js.map +0 -1
- package/dist/lib/exec.js +0 -34
- package/dist/lib/exec.js.map +0 -1
- package/dist/lib/files.js +0 -54
- package/dist/lib/files.js.map +0 -1
- package/dist/lib/hooks/runtimes/javascript.js +0 -86
- package/dist/lib/hooks/runtimes/javascript.js.map +0 -1
- package/dist/lib/hooks/runtimes/python.js +0 -80
- package/dist/lib/hooks/runtimes/python.js.map +0 -1
- package/dist/lib/hooks/runtimes/utils.js +0 -16
- package/dist/lib/hooks/runtimes/utils.js.map +0 -1
- package/dist/lib/hooks/useActorConfig.js +0 -177
- package/dist/lib/hooks/useActorConfig.js.map +0 -1
- package/dist/lib/hooks/useCLIMetadata.js +0 -83
- package/dist/lib/hooks/useCLIMetadata.js.map +0 -1
- package/dist/lib/hooks/useCLIVersionAssets.js +0 -92
- package/dist/lib/hooks/useCLIVersionAssets.js.map +0 -1
- package/dist/lib/hooks/useCLIVersionCheck.js +0 -91
- package/dist/lib/hooks/useCLIVersionCheck.js.map +0 -1
- package/dist/lib/hooks/useCommandSuggestions.js +0 -37
- package/dist/lib/hooks/useCommandSuggestions.js.map +0 -1
- package/dist/lib/hooks/useCwdProject.js +0 -174
- package/dist/lib/hooks/useCwdProject.js.map +0 -1
- package/dist/lib/hooks/useLocalState.js +0 -56
- package/dist/lib/hooks/useLocalState.js.map +0 -1
- package/dist/lib/hooks/useModuleVersion.js +0 -103
- package/dist/lib/hooks/useModuleVersion.js.map +0 -1
- package/dist/lib/hooks/useStdin.js +0 -65
- package/dist/lib/hooks/useStdin.js.map +0 -1
- package/dist/lib/input_schema.js +0 -130
- package/dist/lib/input_schema.js.map +0 -1
- package/dist/lib/outputs.js +0 -45
- package/dist/lib/outputs.js.map +0 -1
- package/dist/lib/project_analyzer.js +0 -30
- package/dist/lib/project_analyzer.js.map +0 -1
- package/dist/lib/projects/CrawleeAnalyzer.js +0 -20
- package/dist/lib/projects/CrawleeAnalyzer.js.map +0 -1
- package/dist/lib/projects/OldApifySDKAnalyzer.js +0 -38
- package/dist/lib/projects/OldApifySDKAnalyzer.js.map +0 -1
- package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.js +0 -73
- package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.js.map +0 -1
- package/dist/lib/projects/scrapy/Spider.js +0 -13
- package/dist/lib/projects/scrapy/Spider.js.map +0 -1
- package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js +0 -20
- package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js.map +0 -1
- package/dist/lib/projects/scrapy/wrapScrapyProject.js +0 -113
- package/dist/lib/projects/scrapy/wrapScrapyProject.js.map +0 -1
- package/dist/lib/projects/shared.js +0 -13
- package/dist/lib/projects/shared.js.map +0 -1
- package/dist/lib/secrets.js +0 -106
- package/dist/lib/secrets.js.map +0 -1
- package/dist/lib/telemetry.js +0 -86
- package/dist/lib/telemetry.js.map +0 -1
- package/dist/lib/types.js +0 -4
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/utils/cliDebugPrint.js +0 -7
- package/dist/lib/utils/cliDebugPrint.js.map +0 -1
- package/dist/lib/utils/confirm.js +0 -28
- package/dist/lib/utils/confirm.js.map +0 -1
- package/dist/lib/utils.js +0 -457
- package/dist/lib/utils.js.map +0 -1
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import indent from 'indent-string';
|
|
3
|
-
import width from 'string-width';
|
|
4
|
-
import stripAnsi from 'strip-ansi';
|
|
5
|
-
import widestLine from 'widest-line';
|
|
6
|
-
import wrap from 'wrap-ansi';
|
|
7
|
-
import { BaseCommandRenderer } from './_BaseCommandRenderer.js';
|
|
8
|
-
import { getMaxLineWidth } from './consts.js';
|
|
9
|
-
/*
|
|
10
|
-
Executes Actor remotely using your authenticated account.
|
|
11
|
-
|
|
12
|
-
USAGE
|
|
13
|
-
$ apify call [ACTORID] -o [--json] [-b <value>] [-t <value>] [-m <value>] [-i <value> | --input-file <value>] [-s]
|
|
14
|
-
|
|
15
|
-
ARGUMENTS
|
|
16
|
-
ACTORID Name or ID of the Actor to run (e.g. "my-actor", "apify/hello-world" or "E2jjCZBezvAZnX8Rb"). If not provided, the command runs the remote Actor specified in the '.actor/actor.json' file.
|
|
17
|
-
|
|
18
|
-
FLAGS
|
|
19
|
-
-b, --build=<value> Tag or number of the build to run (e.g. "latest" or "1.2.34").
|
|
20
|
-
-i, --input=<value> Optional JSON input to be given to the Actor.
|
|
21
|
-
-m, --memory=<value> Amount of memory allocated for the Actor run, in megabytes.
|
|
22
|
-
-o, --output-dataset (required) Prints out the entire default dataset on successful run of the Actor.
|
|
23
|
-
-s, --silent Prevents printing the logs of the Actor run to the console.
|
|
24
|
-
-t, --timeout=<value> Timeout for the Actor run in seconds. Zero value means there is no timeout.
|
|
25
|
-
--input-file=<value> Optional path to a file with JSON input to be given to the Actor. The file must be a valid JSON file. You can also specify `-` to read from standard input.
|
|
26
|
-
|
|
27
|
-
DESCRIPTION
|
|
28
|
-
Blah blah blah
|
|
29
|
-
|
|
30
|
-
GLOBAL FLAGS
|
|
31
|
-
--json Format output as json.
|
|
32
|
-
|
|
33
|
-
USAGE
|
|
34
|
-
$ apify login [-t <value>] [-m console|manual]
|
|
35
|
-
|
|
36
|
-
FLAGS
|
|
37
|
-
-m, --method=<option> [Optional] Method of logging in to Apify
|
|
38
|
-
<options: console|manual>
|
|
39
|
-
-t, --token=<value> [Optional] Apify API token
|
|
40
|
-
|
|
41
|
-
*/
|
|
42
|
-
export class CommandHelp extends BaseCommandRenderer {
|
|
43
|
-
render() {
|
|
44
|
-
const result = [];
|
|
45
|
-
this.pushShortDescription(result);
|
|
46
|
-
this.pushUsageString(result);
|
|
47
|
-
if (this.command.description) {
|
|
48
|
-
this.pushDescription(result);
|
|
49
|
-
}
|
|
50
|
-
return result.join('\n').trim();
|
|
51
|
-
}
|
|
52
|
-
selectiveRender(options) {
|
|
53
|
-
const result = [];
|
|
54
|
-
if (options.showShortDescription) {
|
|
55
|
-
this.pushShortDescription(result);
|
|
56
|
-
}
|
|
57
|
-
if (options.showUsageString) {
|
|
58
|
-
this.pushUsageString(result);
|
|
59
|
-
}
|
|
60
|
-
if (options.showDescription && this.command.description) {
|
|
61
|
-
this.pushDescription(result);
|
|
62
|
-
}
|
|
63
|
-
return result.join('\n').trim();
|
|
64
|
-
}
|
|
65
|
-
pushUsageString(result) {
|
|
66
|
-
result.push(chalk.bold('USAGE'));
|
|
67
|
-
const baseString = `$ ${this.entrypoint} ${this.command.name}`;
|
|
68
|
-
const indentLevel = 2 + width(baseString);
|
|
69
|
-
const finalString = [baseString];
|
|
70
|
-
const args = Object.entries(this.command.args ?? {});
|
|
71
|
-
if (args.length) {
|
|
72
|
-
for (const [argName, arg] of args) {
|
|
73
|
-
if (typeof arg === 'string') {
|
|
74
|
-
throw new RangeError('This is a type-check only value, do not actually use it');
|
|
75
|
-
}
|
|
76
|
-
this.pushNewLineBeforeNewEntryIfLengthIsPastTheLimit({
|
|
77
|
-
state: finalString,
|
|
78
|
-
itemToAdd: arg.required ? `<${argName}>` : `[${argName}]`,
|
|
79
|
-
indentSize: indentLevel,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
const flags = Object.entries(this.command.flags ?? {}).filter(([, flag]) => {
|
|
84
|
-
if (typeof flag === 'string') {
|
|
85
|
-
throw new RangeError('This is a type-check only value, do not actually use it');
|
|
86
|
-
}
|
|
87
|
-
return !flag.hidden;
|
|
88
|
-
});
|
|
89
|
-
if (this.command.enableJsonFlag) {
|
|
90
|
-
flags.push([
|
|
91
|
-
'json',
|
|
92
|
-
{
|
|
93
|
-
choicesType: null,
|
|
94
|
-
flagTag: 'boolean',
|
|
95
|
-
hasDefault: false,
|
|
96
|
-
required: false,
|
|
97
|
-
stdin: null,
|
|
98
|
-
builder: null,
|
|
99
|
-
aliases: undefined,
|
|
100
|
-
char: undefined,
|
|
101
|
-
description: 'Format the command output as JSON',
|
|
102
|
-
hidden: undefined,
|
|
103
|
-
exclusive: undefined,
|
|
104
|
-
},
|
|
105
|
-
]);
|
|
106
|
-
}
|
|
107
|
-
const sortedFlags = new Map(flags.sort((a, b) => {
|
|
108
|
-
if (typeof a[1] === 'string') {
|
|
109
|
-
throw new RangeError('This is a type-check only value, do not actually use it');
|
|
110
|
-
}
|
|
111
|
-
if (typeof b[1] === 'string') {
|
|
112
|
-
throw new RangeError('This is a type-check only value, do not actually use it');
|
|
113
|
-
}
|
|
114
|
-
if (a[1].required && !b[1].required) {
|
|
115
|
-
return -1;
|
|
116
|
-
}
|
|
117
|
-
if (!a[1].required && b[1].required) {
|
|
118
|
-
return 1;
|
|
119
|
-
}
|
|
120
|
-
return a[0].localeCompare(b[0]);
|
|
121
|
-
}));
|
|
122
|
-
const flagsToIgnore = new Set();
|
|
123
|
-
if (flags.length) {
|
|
124
|
-
for (const [flagName, flag] of sortedFlags) {
|
|
125
|
-
if (typeof flag === 'string') {
|
|
126
|
-
throw new RangeError('This is a type-check only value, do not actually use it');
|
|
127
|
-
}
|
|
128
|
-
if (flagsToIgnore.has(flagName)) {
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
let requiredState = flag.required;
|
|
132
|
-
const flagString = this.makeFlagString(flagName, flag);
|
|
133
|
-
const flagParts = [flagString];
|
|
134
|
-
if (flag.exclusive?.length) {
|
|
135
|
-
for (const exclusiveFlagName of flag.exclusive) {
|
|
136
|
-
flagsToIgnore.add(exclusiveFlagName);
|
|
137
|
-
const exclusiveFlag = sortedFlags.get(exclusiveFlagName);
|
|
138
|
-
const exclusiveFlagString = this.makeFlagString(exclusiveFlagName, exclusiveFlag);
|
|
139
|
-
flagParts.push(exclusiveFlagString);
|
|
140
|
-
if (exclusiveFlag.required) {
|
|
141
|
-
requiredState = true;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
this.pushNewLineBeforeNewEntryIfLengthIsPastTheLimit({
|
|
146
|
-
state: finalString,
|
|
147
|
-
itemToAdd: requiredState ? flagParts.join(' | ') : `[${flagParts.join(' | ')}]`,
|
|
148
|
-
indentSize: indentLevel,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
const wrapped = wrap(finalString.join(' '), getMaxLineWidth() - indentLevel);
|
|
153
|
-
// + 1 here is to align everything properly
|
|
154
|
-
const indented = indent(wrapped, indentLevel + 1).trim();
|
|
155
|
-
result.push(` ${indented}`, '');
|
|
156
|
-
if (args.length) {
|
|
157
|
-
this.pushArguments(result, args);
|
|
158
|
-
}
|
|
159
|
-
if (flags.length) {
|
|
160
|
-
this.pushFlags(result, sortedFlags);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
pushArguments(result, args) {
|
|
164
|
-
if (!args.length) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
result.push(chalk.bold('ARGUMENTS'));
|
|
168
|
-
const widestArgNameLength = widestLine(args.map(([argName]) => argName).join('\n'));
|
|
169
|
-
for (const [argName, arg] of args) {
|
|
170
|
-
const fullString = `${argName.padEnd(widestArgNameLength)} ${arg.description}`;
|
|
171
|
-
// -2 for the space between the name and the description
|
|
172
|
-
const wrapped = wrap(fullString, getMaxLineWidth() - widestArgNameLength - 2);
|
|
173
|
-
// +2 for the space between the name and the description
|
|
174
|
-
// +2 for the indent
|
|
175
|
-
const indented = indent(wrapped, widestArgNameLength + 2 + 2).trim();
|
|
176
|
-
result.push(` ${indented}`);
|
|
177
|
-
}
|
|
178
|
-
result.push('');
|
|
179
|
-
}
|
|
180
|
-
pushFlags(result, flags) {
|
|
181
|
-
if (!flags.size) {
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
result.push(chalk.bold('FLAGS'));
|
|
185
|
-
const linesOfFlags = new Map();
|
|
186
|
-
for (const [flagName, flag] of flags) {
|
|
187
|
-
const stringParts = [];
|
|
188
|
-
if (flag.char) {
|
|
189
|
-
stringParts.push(`-${flag.char},`);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
stringParts.push(' '.repeat(3));
|
|
193
|
-
}
|
|
194
|
-
switch (flag.flagTag) {
|
|
195
|
-
case 'boolean':
|
|
196
|
-
stringParts.push(`--${this.kebabFlagName(flagName)}`);
|
|
197
|
-
break;
|
|
198
|
-
case 'string':
|
|
199
|
-
case 'integer': {
|
|
200
|
-
const flagValues = flag.choicesType ? '<option>' : '<value>';
|
|
201
|
-
stringParts.push(`--${this.kebabFlagName(flagName)}=${chalk.underline(flagValues)}`);
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
default:
|
|
205
|
-
throw new Error(`Unhandled flag tag: ${flag.flagTag}`);
|
|
206
|
-
}
|
|
207
|
-
linesOfFlags.set(stringParts.join(' '), flag);
|
|
208
|
-
}
|
|
209
|
-
const widestFlagNameLength = widestLine([...linesOfFlags.keys()].join('\n'));
|
|
210
|
-
for (const [flagString, flag] of linesOfFlags) {
|
|
211
|
-
const paddingToAdd = widestFlagNameLength - stripAnsi(flagString).length;
|
|
212
|
-
let fullString = `${flagString}${' '.repeat(paddingToAdd)} ${flag.description ?? ''}`;
|
|
213
|
-
if (flag.choicesType?.length) {
|
|
214
|
-
fullString += `\n<options: ${flag.choicesType.join('|')}>`;
|
|
215
|
-
}
|
|
216
|
-
const wrapped = wrap(fullString, getMaxLineWidth() - widestFlagNameLength);
|
|
217
|
-
const indented = indent(wrapped, widestFlagNameLength)
|
|
218
|
-
.trim()
|
|
219
|
-
.split('\n')
|
|
220
|
-
.map((line) => {
|
|
221
|
-
// For lines that don't start with a short flag, add 4 spaces to indent them further, and align with the flags that also have a short form
|
|
222
|
-
if (!/^-[a-z]/.test(line.trim())) {
|
|
223
|
-
return ` ${line}`;
|
|
224
|
-
}
|
|
225
|
-
return line;
|
|
226
|
-
})
|
|
227
|
-
.join('\n');
|
|
228
|
-
result.push(` ${indented}`);
|
|
229
|
-
}
|
|
230
|
-
result.push('');
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
//# sourceMappingURL=CommandHelp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHelp.js","sourceRoot":"","sources":["../../../../src/lib/command-framework/help/CommandHelp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Manages secure environment variables for Actors.
|
|
3
|
-
|
|
4
|
-
USAGE
|
|
5
|
-
$ apify secrets
|
|
6
|
-
|
|
7
|
-
DESCRIPTION
|
|
8
|
-
Manages secure environment variables for Actors.
|
|
9
|
-
|
|
10
|
-
Example:
|
|
11
|
-
$ apify secrets add mySecret TopSecretValue123
|
|
12
|
-
|
|
13
|
-
The "mySecret" value can be used in an environment variable defined in '.actor/actor.json' file by adding the "@"
|
|
14
|
-
prefix:
|
|
15
|
-
|
|
16
|
-
{
|
|
17
|
-
"actorSpecification": 1,
|
|
18
|
-
"name": "my_actor",
|
|
19
|
-
"environmentVariables": { "SECRET_ENV_VAR": "@mySecret" },
|
|
20
|
-
"version": "0.1"
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
When the Actor is pushed to Apify cloud, the "SECRET_ENV_VAR" and its value is stored as a secret environment variable
|
|
24
|
-
of the Actor.
|
|
25
|
-
|
|
26
|
-
COMMANDS
|
|
27
|
-
secrets add Adds a new secret to '~/.apify' for use in Actor environment variables.
|
|
28
|
-
secrets rm Permanently deletes a secret from your stored credentials.
|
|
29
|
-
*/
|
|
30
|
-
import chalk from 'chalk';
|
|
31
|
-
import indentString from 'indent-string';
|
|
32
|
-
import widestLine from 'widest-line';
|
|
33
|
-
import wrapAnsi from 'wrap-ansi';
|
|
34
|
-
import { BaseCommandRenderer } from './_BaseCommandRenderer.js';
|
|
35
|
-
import { getMaxLineWidth } from './consts.js';
|
|
36
|
-
export class CommandWithSubcommandsHelp extends BaseCommandRenderer {
|
|
37
|
-
render() {
|
|
38
|
-
const result = [];
|
|
39
|
-
this.pushShortDescription(result);
|
|
40
|
-
if (this.command.description) {
|
|
41
|
-
this.pushDescription(result);
|
|
42
|
-
}
|
|
43
|
-
this.pushSubcommands(result);
|
|
44
|
-
return result.join('\n').trim();
|
|
45
|
-
}
|
|
46
|
-
selectiveRender(options) {
|
|
47
|
-
const result = [];
|
|
48
|
-
if (options.showShortDescription) {
|
|
49
|
-
this.pushShortDescription(result);
|
|
50
|
-
}
|
|
51
|
-
if (options.showDescription && this.command.description) {
|
|
52
|
-
this.pushDescription(result);
|
|
53
|
-
}
|
|
54
|
-
if (options.showSubcommands) {
|
|
55
|
-
this.pushSubcommands(result);
|
|
56
|
-
}
|
|
57
|
-
return result.join('\n').trim();
|
|
58
|
-
}
|
|
59
|
-
pushSubcommands(result) {
|
|
60
|
-
if (!this.command.subcommands?.length) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
result.push(chalk.bold('SUBCOMMANDS'));
|
|
64
|
-
const widestSubcommandNameLength = widestLine(this.command.subcommands.map((subcommand) => `${this.command.name} ${subcommand.name}`).join('\n'));
|
|
65
|
-
for (const subcommand of this.command.subcommands) {
|
|
66
|
-
const shortDescription = subcommand.shortDescription || subcommand.description?.split('\n')[0] || '';
|
|
67
|
-
const fullString = `${this.command.name} ${subcommand.name.padEnd(widestSubcommandNameLength - this.command.name.length - 1)} ${shortDescription}`;
|
|
68
|
-
const wrapped = wrapAnsi(fullString, getMaxLineWidth() - widestSubcommandNameLength - 2);
|
|
69
|
-
const indented = indentString(wrapped, widestSubcommandNameLength + 2 + 2).trim();
|
|
70
|
-
result.push(` ${indented}`);
|
|
71
|
-
}
|
|
72
|
-
result.push('');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=CommandWithSubcommands.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommandWithSubcommands.js","sourceRoot":"","sources":["../../../../src/lib/command-framework/help/CommandWithSubcommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BE;AAEF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAA+B,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAO,0BAA2B,SAAQ,mBAAmB;IAC3D,MAAM;QACZ,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAEM,eAAe,CAAC,OAA+B;QACrD,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAES,eAAe,CAAC,MAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACvC,OAAO;QACR,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAEvC,MAAM,0BAA0B,GAAG,UAAU,CAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAClG,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAErG,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;YAEpJ,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,0BAA0B,GAAG,CAAC,CAAC,CAAC;YAEzF,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAElF,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;CACD"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import indent from 'indent-string';
|
|
3
|
-
import width from 'string-width';
|
|
4
|
-
import wrap from 'wrap-ansi';
|
|
5
|
-
import { camelCaseToKebabCase, kebabCaseString } from '../apify-command.js';
|
|
6
|
-
import { getMaxLineWidth } from './consts.js';
|
|
7
|
-
export class BaseCommandRenderer {
|
|
8
|
-
command;
|
|
9
|
-
entrypoint;
|
|
10
|
-
constructor(entrypoint, command) {
|
|
11
|
-
this.entrypoint = entrypoint;
|
|
12
|
-
this.command = command;
|
|
13
|
-
}
|
|
14
|
-
pushShortDescription(result) {
|
|
15
|
-
if (this.command.shortDescription) {
|
|
16
|
-
result.push(this.command.shortDescription, '');
|
|
17
|
-
// Fallback to first line of description
|
|
18
|
-
}
|
|
19
|
-
else if (this.command.description) {
|
|
20
|
-
result.push(this.command.description.split('\n')[0], '');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
pushDescription(result) {
|
|
24
|
-
if (!this.command.description) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
result.push(chalk.bold('DESCRIPTION'));
|
|
28
|
-
const wrapped = wrap(this.command.description, getMaxLineWidth() - 2, { trim: false });
|
|
29
|
-
const indented = indent(wrapped, 2);
|
|
30
|
-
result.push(indented);
|
|
31
|
-
result.push('');
|
|
32
|
-
}
|
|
33
|
-
pushNewLineBeforeNewEntryIfLengthIsPastTheLimit({ state, itemToAdd, indentSize, }) {
|
|
34
|
-
// Check the _last line_ of the state, not the whole string, as otherwise we get false positives
|
|
35
|
-
const currentLength = width(state.join(' ').split('\n').at(-1) || '') + indentSize;
|
|
36
|
-
const sizeOfItemToAdd = width(itemToAdd);
|
|
37
|
-
if (currentLength + sizeOfItemToAdd > getMaxLineWidth()) {
|
|
38
|
-
state.push('\n');
|
|
39
|
-
}
|
|
40
|
-
state.push(itemToAdd);
|
|
41
|
-
}
|
|
42
|
-
kebabFlagName(flagName) {
|
|
43
|
-
return kebabCaseString(camelCaseToKebabCase(flagName)).toLowerCase();
|
|
44
|
-
}
|
|
45
|
-
makeFlagString(flagName, flag) {
|
|
46
|
-
const flagKey = this.kebabFlagName(flagName);
|
|
47
|
-
const mainFlagPart = flag.char ? `-${flag.char}` : `--${flagKey}`;
|
|
48
|
-
switch (flag.flagTag) {
|
|
49
|
-
case 'boolean': {
|
|
50
|
-
return mainFlagPart;
|
|
51
|
-
}
|
|
52
|
-
case 'string':
|
|
53
|
-
case 'integer': {
|
|
54
|
-
const flagValues = flag.choicesType?.length ? `${flag.choicesType.join('|')}` : '<value>';
|
|
55
|
-
return `${mainFlagPart} ${flagValues}`;
|
|
56
|
-
}
|
|
57
|
-
default: {
|
|
58
|
-
throw new RangeError(`Unhandled flag type: ${flag.flagTag}`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=_BaseCommandRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_BaseCommandRenderer.js","sourceRoot":"","sources":["../../../../src/lib/command-framework/help/_BaseCommandRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
let cachedMaxLineWidth;
|
|
2
|
-
export function getMaxLineWidth() {
|
|
3
|
-
if (cachedMaxLineWidth) {
|
|
4
|
-
return cachedMaxLineWidth;
|
|
5
|
-
}
|
|
6
|
-
const override = Number(process.env.APIFY_CLI_MAX_LINE_WIDTH);
|
|
7
|
-
if (!Number.isNaN(override)) {
|
|
8
|
-
cachedMaxLineWidth = override;
|
|
9
|
-
}
|
|
10
|
-
else if (!process.stdout.isTTY) {
|
|
11
|
-
cachedMaxLineWidth = 80;
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
const windowWidth = process.stdout.getWindowSize?.()[0] ?? -1;
|
|
15
|
-
if (windowWidth < 1) {
|
|
16
|
-
cachedMaxLineWidth = 80;
|
|
17
|
-
}
|
|
18
|
-
else if (windowWidth < 40) {
|
|
19
|
-
cachedMaxLineWidth = 40;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
cachedMaxLineWidth = windowWidth;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return cachedMaxLineWidth;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=consts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../../../src/lib/command-framework/help/consts.ts"],"names":[],"mappings":"AAAA,IAAI,kBAAsC,CAAC;AAE3C,MAAM,UAAU,eAAe;IAC9B,IAAI,kBAAkB,EAAE,CAAC;QACxB,OAAO,kBAAkB,CAAC;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,kBAAkB,GAAG,QAAQ,CAAC;IAC/B,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,kBAAkB,GAAG,EAAE,CAAC;IACzB,CAAC;SAAM,CAAC;QACP,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACrB,kBAAkB,GAAG,EAAE,CAAC;QACzB,CAAC;aAAM,IAAI,WAAW,GAAG,EAAE,EAAE,CAAC;YAC7B,kBAAkB,GAAG,EAAE,CAAC;QACzB,CAAC;aAAM,CAAC;YACP,kBAAkB,GAAG,WAAW,CAAC;QAClC,CAAC;IACF,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC3B,CAAC"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import indentString from 'indent-string';
|
|
3
|
-
import widestLine from 'widest-line';
|
|
4
|
-
import wrapAnsi from 'wrap-ansi';
|
|
5
|
-
import { useCLIMetadata } from '../hooks/useCLIMetadata.js';
|
|
6
|
-
import { error } from '../outputs.js';
|
|
7
|
-
import { mapGroupBy } from '../utils.js';
|
|
8
|
-
import { CommandHelp } from './help/CommandHelp.js';
|
|
9
|
-
import { CommandWithSubcommandsHelp } from './help/CommandWithSubcommands.js';
|
|
10
|
-
import { getMaxLineWidth } from './help/consts.js';
|
|
11
|
-
const commands = new Map();
|
|
12
|
-
export function registerCommandForHelpGeneration(entrypoint, command) {
|
|
13
|
-
if (command.name.toLowerCase() !== command.name) {
|
|
14
|
-
error({
|
|
15
|
-
message: `Command name "${command.name}" is not correctly set up internally. Make sure you fill out the "name" field in the command class extension.`,
|
|
16
|
-
});
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
if (command.subcommands?.length) {
|
|
20
|
-
commands.set(command, new CommandWithSubcommandsHelp(entrypoint, command));
|
|
21
|
-
for (const subcommand of command.subcommands) {
|
|
22
|
-
registerCommandForHelpGeneration(`${entrypoint} ${command.name}`, subcommand);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
commands.set(command, new CommandHelp(entrypoint, command));
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
export function renderHelpForCommand(command) {
|
|
30
|
-
const renderer = commands.get(command);
|
|
31
|
-
if (!renderer) {
|
|
32
|
-
throw new Error(`No help renderer found for command ${command.name}`);
|
|
33
|
-
}
|
|
34
|
-
return renderer.render();
|
|
35
|
-
}
|
|
36
|
-
export function selectiveRenderHelpForCommand(command, options) {
|
|
37
|
-
const renderer = commands.get(command);
|
|
38
|
-
if (!renderer) {
|
|
39
|
-
throw new Error(`No help renderer found for command ${command.name}`);
|
|
40
|
-
}
|
|
41
|
-
return renderer.selectiveRender(options);
|
|
42
|
-
}
|
|
43
|
-
function sortByName(itemA, itemB) {
|
|
44
|
-
return itemA[0].name.localeCompare(itemB[0].name);
|
|
45
|
-
}
|
|
46
|
-
export function renderMainHelpMenu(entrypoint) {
|
|
47
|
-
const cliMetadata = useCLIMetadata();
|
|
48
|
-
const result = [];
|
|
49
|
-
result.push('Apify command-line interface (CLI) helps you manage the Apify cloud platform and develop, build, and deploy Apify Actors.', '');
|
|
50
|
-
result.push(chalk.bold('VERSION'));
|
|
51
|
-
result.push(` ${cliMetadata.fullVersionString}`);
|
|
52
|
-
result.push('');
|
|
53
|
-
result.push(chalk.bold('USAGE'));
|
|
54
|
-
result.push(` $ ${entrypoint} <command> [options]`);
|
|
55
|
-
result.push('');
|
|
56
|
-
const allGroupedByType = mapGroupBy(commands, ([command, helpGenerator]) => {
|
|
57
|
-
// We register the help generators for all subcommands with an entrypoint that includes the root command,
|
|
58
|
-
// so we need to ignore those
|
|
59
|
-
if (helpGenerator.entrypoint.includes(' ')) {
|
|
60
|
-
return 'ignored';
|
|
61
|
-
}
|
|
62
|
-
if (command.hidden) {
|
|
63
|
-
return 'ignored';
|
|
64
|
-
}
|
|
65
|
-
if (helpGenerator instanceof CommandWithSubcommandsHelp) {
|
|
66
|
-
return 'subcommand';
|
|
67
|
-
}
|
|
68
|
-
return 'command';
|
|
69
|
-
});
|
|
70
|
-
const groupedSubcommands = allGroupedByType.get('subcommand')?.sort(sortByName);
|
|
71
|
-
const groupedCommands = allGroupedByType.get('command')?.sort(sortByName);
|
|
72
|
-
if (groupedSubcommands?.length) {
|
|
73
|
-
result.push(chalk.bold('TOPICS'));
|
|
74
|
-
const lines = [];
|
|
75
|
-
const widestTopicNameLength = widestLine(groupedSubcommands.map(([subcommand]) => subcommand.name).join('\n'));
|
|
76
|
-
for (const [subcommand] of groupedSubcommands) {
|
|
77
|
-
if (subcommand.hidden) {
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
const shortDescription = subcommand.shortDescription || subcommand.description?.split('\n')[0] || '';
|
|
81
|
-
const fullString = `${subcommand.name.padEnd(widestTopicNameLength)} ${shortDescription}`;
|
|
82
|
-
const wrapped = wrapAnsi(fullString, getMaxLineWidth() - widestTopicNameLength - 2);
|
|
83
|
-
lines.push(` ${indentString(wrapped, widestTopicNameLength + 2 + 2).trim()}`);
|
|
84
|
-
}
|
|
85
|
-
result.push(...lines, '');
|
|
86
|
-
}
|
|
87
|
-
if (groupedCommands?.length) {
|
|
88
|
-
result.push(chalk.bold('COMMANDS'));
|
|
89
|
-
const lines = [];
|
|
90
|
-
const widestCommandNameLength = widestLine(groupedCommands.map(([command]) => command.name).join('\n'));
|
|
91
|
-
for (const [command] of groupedCommands) {
|
|
92
|
-
if (command.hidden) {
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
const shortDescription = command.shortDescription || command.description?.split('\n')[0] || '';
|
|
96
|
-
const fullString = `${command.name.padEnd(widestCommandNameLength)} ${shortDescription}`;
|
|
97
|
-
const wrapped = wrapAnsi(fullString, getMaxLineWidth() - widestCommandNameLength - 2);
|
|
98
|
-
lines.push(` ${indentString(wrapped, widestCommandNameLength + 2 + 2).trim()}`);
|
|
99
|
-
}
|
|
100
|
-
result.push(...lines, '');
|
|
101
|
-
}
|
|
102
|
-
result.push(chalk.bold('TROUBLESHOOTING'), ' For general support, reach out to us at https://apify.com/contact', '', ' If you believe you are encountering a bug, file it at https://github.com/apify/apify-cli/issues/new');
|
|
103
|
-
return result.join('\n').trim();
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=help.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/lib/command-framework/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const noColor = (val) => val;
|
|
2
|
-
export function prettyPrintBytes({ bytes, shortBytes = false, colorFunc = noColor, precision = 2, }) {
|
|
3
|
-
const sizes = [shortBytes ? 'B' : 'Bytes', 'KB', 'MB', 'GB', 'TB'];
|
|
4
|
-
if (bytes === 0) {
|
|
5
|
-
if (shortBytes) {
|
|
6
|
-
return `${(0).toPrecision(precision)} B`;
|
|
7
|
-
}
|
|
8
|
-
return `${(0).toPrecision(precision)} Byte`;
|
|
9
|
-
}
|
|
10
|
-
const i = Math.floor(Math.log(bytes) / Math.log(1000));
|
|
11
|
-
return `${(bytes / 1000 ** i).toFixed(precision)} ${colorFunc(sizes[i])}`;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=pretty-print-bytes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pretty-print-bytes.js","sourceRoot":"","sources":["../../../src/lib/commands/pretty-print-bytes.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC;AAErC,MAAM,UAAU,gBAAgB,CAAC,EAChC,KAAK,EACL,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,OAAO,EACnB,SAAS,GAAG,CAAC,GAMb;IACA,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEnE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QACjB,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvD,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
// TIMED-OUT -> Timed Out
|
|
3
|
-
// ABORTED -> Aborted
|
|
4
|
-
export function prettyPrintStatus(status) {
|
|
5
|
-
switch (status) {
|
|
6
|
-
case 'READY':
|
|
7
|
-
return chalk.green('Ready');
|
|
8
|
-
case 'RUNNING':
|
|
9
|
-
return chalk.blue('Running');
|
|
10
|
-
case 'SUCCEEDED':
|
|
11
|
-
return chalk.green('Succeeded');
|
|
12
|
-
case 'FAILED':
|
|
13
|
-
return chalk.red('Failed');
|
|
14
|
-
case 'ABORTING':
|
|
15
|
-
return chalk.yellow('Aborting');
|
|
16
|
-
case 'ABORTED':
|
|
17
|
-
return chalk.red('Aborted');
|
|
18
|
-
case 'TIMING-OUT':
|
|
19
|
-
return chalk.yellow('Timing Out');
|
|
20
|
-
case 'TIMED-OUT':
|
|
21
|
-
return chalk.red('Timed Out');
|
|
22
|
-
default:
|
|
23
|
-
return chalk.gray(status
|
|
24
|
-
.split('-')
|
|
25
|
-
.map((part) => part[0].toUpperCase() + part.slice(1).toLowerCase())
|
|
26
|
-
.join(' '));
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=pretty-print-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pretty-print-status.js","sourceRoot":"","sources":["../../../src/lib/commands/pretty-print-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,yBAAyB;AACzB,qBAAqB;AACrB,MAAM,UAAU,iBAAiB,CAChC,MAAmH;IAEnH,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,OAAO;YACX,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,WAAW;YACf,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,KAAK,UAAU;YACd,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,YAAY;YAChB,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnC,KAAK,WAAW;YACf,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B;YACC,OAAO,KAAK,CAAC,IAAI,CACf,MAAiB;iBAChB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;iBAClE,IAAI,CAAC,GAAG,CAAC,CACX,CAAC;IACJ,CAAC;AACF,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { once } from 'node:events';
|
|
2
|
-
import { useStdin } from '../hooks/useStdin.js';
|
|
3
|
-
export async function readStdin() {
|
|
4
|
-
const { hasData, waitDelay, stream } = await useStdin();
|
|
5
|
-
if (!hasData) {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
const bufferChunks = [];
|
|
9
|
-
const controller = new AbortController();
|
|
10
|
-
let timeout = null;
|
|
11
|
-
if (waitDelay) {
|
|
12
|
-
timeout = setTimeout(() => {
|
|
13
|
-
controller.abort();
|
|
14
|
-
}, waitDelay).unref();
|
|
15
|
-
}
|
|
16
|
-
stream.on('data', (chunk) => {
|
|
17
|
-
bufferChunks.push(chunk);
|
|
18
|
-
// If we got some data already, we can clear the timeout, as we will get more
|
|
19
|
-
if (timeout) {
|
|
20
|
-
clearTimeout(timeout);
|
|
21
|
-
timeout = null;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
try {
|
|
25
|
-
await once(stream, 'end', { signal: controller.signal });
|
|
26
|
-
}
|
|
27
|
-
catch (error) {
|
|
28
|
-
const casted = error;
|
|
29
|
-
if (casted.name === 'AbortError') {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (timeout) {
|
|
34
|
-
clearTimeout(timeout);
|
|
35
|
-
}
|
|
36
|
-
const concat = Buffer.concat(bufferChunks);
|
|
37
|
-
if (concat.length) {
|
|
38
|
-
return concat;
|
|
39
|
-
}
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=read-stdin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-stdin.js","sourceRoot":"","sources":["../../../src/lib/commands/read-stdin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC9B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;IAExD,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;IACR,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,IAAI,OAAO,GAA0B,IAAI,CAAC;IAE1C,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,UAAU,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,6EAA6E;QAC7E,IAAI,OAAO,EAAE,CAAC;YACb,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACJ,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,KAAc,CAAC;QAE9B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,OAAO;QACR,CAAC;IACF,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,YAAY,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE3C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|