apify-cli 0.21.10-beta.2 → 0.21.10-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/actor.js +3 -0
  4. package/dist/actor.js.map +1 -0
  5. package/dist/apify.js +3 -0
  6. package/dist/apify.js.map +1 -0
  7. package/dist/chunk-ATQHWRBX.js +242 -0
  8. package/dist/chunk-ATQHWRBX.js.map +1 -0
  9. package/dist/index.js +2 -3
  10. package/package.json +16 -18
  11. package/dist/commands/_register.js +0 -68
  12. package/dist/commands/_register.js.map +0 -1
  13. package/dist/commands/actor/_index.js +0 -24
  14. package/dist/commands/actor/_index.js.map +0 -1
  15. package/dist/commands/actor/charge.js +0 -84
  16. package/dist/commands/actor/charge.js.map +0 -1
  17. package/dist/commands/actor/get-input.js +0 -10
  18. package/dist/commands/actor/get-input.js.map +0 -1
  19. package/dist/commands/actor/get-public-url.js +0 -52
  20. package/dist/commands/actor/get-public-url.js.map +0 -1
  21. package/dist/commands/actor/get-value.js +0 -18
  22. package/dist/commands/actor/get-value.js.map +0 -1
  23. package/dist/commands/actor/push-data.js +0 -38
  24. package/dist/commands/actor/push-data.js.map +0 -1
  25. package/dist/commands/actor/set-value.js +0 -52
  26. package/dist/commands/actor/set-value.js.map +0 -1
  27. package/dist/commands/actors/_index.js +0 -28
  28. package/dist/commands/actors/_index.js.map +0 -1
  29. package/dist/commands/actors/build.js +0 -6
  30. package/dist/commands/actors/build.js.map +0 -1
  31. package/dist/commands/actors/call.js +0 -224
  32. package/dist/commands/actors/call.js.map +0 -1
  33. package/dist/commands/actors/info.js +0 -203
  34. package/dist/commands/actors/info.js.map +0 -1
  35. package/dist/commands/actors/ls.js +0 -226
  36. package/dist/commands/actors/ls.js.map +0 -1
  37. package/dist/commands/actors/pull.js +0 -150
  38. package/dist/commands/actors/pull.js.map +0 -1
  39. package/dist/commands/actors/push.js +0 -300
  40. package/dist/commands/actors/push.js.map +0 -1
  41. package/dist/commands/actors/rm.js +0 -43
  42. package/dist/commands/actors/rm.js.map +0 -1
  43. package/dist/commands/actors/start.js +0 -125
  44. package/dist/commands/actors/start.js.map +0 -1
  45. package/dist/commands/builds/_index.js +0 -22
  46. package/dist/commands/builds/_index.js.map +0 -1
  47. package/dist/commands/builds/create.js +0 -130
  48. package/dist/commands/builds/create.js.map +0 -1
  49. package/dist/commands/builds/info.js +0 -78
  50. package/dist/commands/builds/info.js.map +0 -1
  51. package/dist/commands/builds/log.js +0 -35
  52. package/dist/commands/builds/log.js.map +0 -1
  53. package/dist/commands/builds/ls.js +0 -141
  54. package/dist/commands/builds/ls.js.map +0 -1
  55. package/dist/commands/builds/rm.js +0 -59
  56. package/dist/commands/builds/rm.js.map +0 -1
  57. package/dist/commands/call.js +0 -5
  58. package/dist/commands/call.js.map +0 -1
  59. package/dist/commands/create.js +0 -264
  60. package/dist/commands/create.js.map +0 -1
  61. package/dist/commands/datasets/_index.js +0 -25
  62. package/dist/commands/datasets/_index.js.map +0 -1
  63. package/dist/commands/datasets/create.js +0 -38
  64. package/dist/commands/datasets/create.js.map +0 -1
  65. package/dist/commands/datasets/get-items.js +0 -84
  66. package/dist/commands/datasets/get-items.js.map +0 -1
  67. package/dist/commands/datasets/info.js +0 -125
  68. package/dist/commands/datasets/info.js.map +0 -1
  69. package/dist/commands/datasets/ls.js +0 -73
  70. package/dist/commands/datasets/ls.js.map +0 -1
  71. package/dist/commands/datasets/push-items.js +0 -70
  72. package/dist/commands/datasets/push-items.js.map +0 -1
  73. package/dist/commands/datasets/rename.js +0 -71
  74. package/dist/commands/datasets/rename.js.map +0 -1
  75. package/dist/commands/datasets/rm.js +0 -48
  76. package/dist/commands/datasets/rm.js.map +0 -1
  77. package/dist/commands/edit-input-schema.js +0 -162
  78. package/dist/commands/edit-input-schema.js.map +0 -1
  79. package/dist/commands/help.js +0 -43
  80. package/dist/commands/help.js.map +0 -1
  81. package/dist/commands/info.js +0 -21
  82. package/dist/commands/info.js.map +0 -1
  83. package/dist/commands/init-wrap-scrapy.js +0 -27
  84. package/dist/commands/init-wrap-scrapy.js.map +0 -1
  85. package/dist/commands/init.js +0 -94
  86. package/dist/commands/init.js.map +0 -1
  87. package/dist/commands/key-value-stores/_index.js +0 -30
  88. package/dist/commands/key-value-stores/_index.js.map +0 -1
  89. package/dist/commands/key-value-stores/create.js +0 -38
  90. package/dist/commands/key-value-stores/create.js.map +0 -1
  91. package/dist/commands/key-value-stores/delete-value.js +0 -61
  92. package/dist/commands/key-value-stores/delete-value.js.map +0 -1
  93. package/dist/commands/key-value-stores/get-value.js +0 -70
  94. package/dist/commands/key-value-stores/get-value.js.map +0 -1
  95. package/dist/commands/key-value-stores/info.js +0 -127
  96. package/dist/commands/key-value-stores/info.js.map +0 -1
  97. package/dist/commands/key-value-stores/keys.js +0 -61
  98. package/dist/commands/key-value-stores/keys.js.map +0 -1
  99. package/dist/commands/key-value-stores/ls.js +0 -70
  100. package/dist/commands/key-value-stores/ls.js.map +0 -1
  101. package/dist/commands/key-value-stores/rename.js +0 -71
  102. package/dist/commands/key-value-stores/rename.js.map +0 -1
  103. package/dist/commands/key-value-stores/rm.js +0 -48
  104. package/dist/commands/key-value-stores/rm.js.map +0 -1
  105. package/dist/commands/key-value-stores/set-value.js +0 -57
  106. package/dist/commands/key-value-stores/set-value.js.map +0 -1
  107. package/dist/commands/login.js +0 -183
  108. package/dist/commands/login.js.map +0 -1
  109. package/dist/commands/logout.js +0 -16
  110. package/dist/commands/logout.js.map +0 -1
  111. package/dist/commands/pull.js +0 -5
  112. package/dist/commands/pull.js.map +0 -1
  113. package/dist/commands/push.js +0 -5
  114. package/dist/commands/push.js.map +0 -1
  115. package/dist/commands/request-queues/_index.js +0 -9
  116. package/dist/commands/request-queues/_index.js.map +0 -1
  117. package/dist/commands/run.js +0 -434
  118. package/dist/commands/run.js.map +0 -1
  119. package/dist/commands/runs/_index.js +0 -23
  120. package/dist/commands/runs/_index.js.map +0 -1
  121. package/dist/commands/runs/abort.js +0 -68
  122. package/dist/commands/runs/abort.js.map +0 -1
  123. package/dist/commands/runs/info.js +0 -238
  124. package/dist/commands/runs/info.js.map +0 -1
  125. package/dist/commands/runs/log.js +0 -32
  126. package/dist/commands/runs/log.js.map +0 -1
  127. package/dist/commands/runs/ls.js +0 -106
  128. package/dist/commands/runs/ls.js.map +0 -1
  129. package/dist/commands/runs/resurrect.js +0 -54
  130. package/dist/commands/runs/resurrect.js.map +0 -1
  131. package/dist/commands/runs/rm.js +0 -58
  132. package/dist/commands/runs/rm.js.map +0 -1
  133. package/dist/commands/secrets/_index.js +0 -25
  134. package/dist/commands/secrets/_index.js.map +0 -1
  135. package/dist/commands/secrets/add.js +0 -22
  136. package/dist/commands/secrets/add.js.map +0 -1
  137. package/dist/commands/secrets/rm.js +0 -18
  138. package/dist/commands/secrets/rm.js.map +0 -1
  139. package/dist/commands/task/_index.js +0 -11
  140. package/dist/commands/task/_index.js.map +0 -1
  141. package/dist/commands/task/run.js +0 -91
  142. package/dist/commands/task/run.js.map +0 -1
  143. package/dist/commands/upgrade.js +0 -74
  144. package/dist/commands/upgrade.js.map +0 -1
  145. package/dist/commands/validate-schema.js +0 -44
  146. package/dist/commands/validate-schema.js.map +0 -1
  147. package/dist/entrypoints/_shared.js +0 -256
  148. package/dist/entrypoints/_shared.js.map +0 -1
  149. package/dist/entrypoints/actor.js +0 -19
  150. package/dist/entrypoints/actor.js.map +0 -1
  151. package/dist/entrypoints/apify.js +0 -18
  152. package/dist/entrypoints/apify.js.map +0 -1
  153. package/dist/index.js.map +0 -1
  154. package/dist/lib/actor.js +0 -74
  155. package/dist/lib/actor.js.map +0 -1
  156. package/dist/lib/command-framework/apify-command.js +0 -426
  157. package/dist/lib/command-framework/apify-command.js.map +0 -1
  158. package/dist/lib/command-framework/args.js +0 -24
  159. package/dist/lib/command-framework/args.js.map +0 -1
  160. package/dist/lib/command-framework/flags.js +0 -99
  161. package/dist/lib/command-framework/flags.js.map +0 -1
  162. package/dist/lib/command-framework/help/CommandHelp.js +0 -228
  163. package/dist/lib/command-framework/help/CommandHelp.js.map +0 -1
  164. package/dist/lib/command-framework/help/CommandWithSubcommands.js +0 -75
  165. package/dist/lib/command-framework/help/CommandWithSubcommands.js.map +0 -1
  166. package/dist/lib/command-framework/help/_BaseCommandRenderer.js +0 -63
  167. package/dist/lib/command-framework/help/_BaseCommandRenderer.js.map +0 -1
  168. package/dist/lib/command-framework/help/consts.js +0 -27
  169. package/dist/lib/command-framework/help/consts.js.map +0 -1
  170. package/dist/lib/command-framework/help.js +0 -105
  171. package/dist/lib/command-framework/help.js.map +0 -1
  172. package/dist/lib/commands/pretty-print-bytes.js +0 -13
  173. package/dist/lib/commands/pretty-print-bytes.js.map +0 -1
  174. package/dist/lib/commands/pretty-print-status.js +0 -29
  175. package/dist/lib/commands/pretty-print-status.js.map +0 -1
  176. package/dist/lib/commands/read-stdin.js +0 -42
  177. package/dist/lib/commands/read-stdin.js.map +0 -1
  178. package/dist/lib/commands/resolve-actor-context.js +0 -70
  179. package/dist/lib/commands/resolve-actor-context.js.map +0 -1
  180. package/dist/lib/commands/resolve-input.js +0 -162
  181. package/dist/lib/commands/resolve-input.js.map +0 -1
  182. package/dist/lib/commands/responsive-table.js +0 -129
  183. package/dist/lib/commands/responsive-table.js.map +0 -1
  184. package/dist/lib/commands/run-on-cloud.js +0 -126
  185. package/dist/lib/commands/run-on-cloud.js.map +0 -1
  186. package/dist/lib/commands/storage-size.js +0 -8
  187. package/dist/lib/commands/storage-size.js.map +0 -1
  188. package/dist/lib/commands/storages.js +0 -30
  189. package/dist/lib/commands/storages.js.map +0 -1
  190. package/dist/lib/consts.js +0 -69
  191. package/dist/lib/consts.js.map +0 -1
  192. package/dist/lib/create-utils.js +0 -156
  193. package/dist/lib/create-utils.js.map +0 -1
  194. package/dist/lib/exec.js +0 -34
  195. package/dist/lib/exec.js.map +0 -1
  196. package/dist/lib/files.js +0 -54
  197. package/dist/lib/files.js.map +0 -1
  198. package/dist/lib/hooks/runtimes/javascript.js +0 -86
  199. package/dist/lib/hooks/runtimes/javascript.js.map +0 -1
  200. package/dist/lib/hooks/runtimes/python.js +0 -80
  201. package/dist/lib/hooks/runtimes/python.js.map +0 -1
  202. package/dist/lib/hooks/runtimes/utils.js +0 -16
  203. package/dist/lib/hooks/runtimes/utils.js.map +0 -1
  204. package/dist/lib/hooks/useActorConfig.js +0 -177
  205. package/dist/lib/hooks/useActorConfig.js.map +0 -1
  206. package/dist/lib/hooks/useCLIMetadata.js +0 -73
  207. package/dist/lib/hooks/useCLIMetadata.js.map +0 -1
  208. package/dist/lib/hooks/useCLIVersionCheck.js +0 -91
  209. package/dist/lib/hooks/useCLIVersionCheck.js.map +0 -1
  210. package/dist/lib/hooks/useCommandSuggestions.js +0 -37
  211. package/dist/lib/hooks/useCommandSuggestions.js.map +0 -1
  212. package/dist/lib/hooks/useCwdProject.js +0 -174
  213. package/dist/lib/hooks/useCwdProject.js.map +0 -1
  214. package/dist/lib/hooks/useLocalState.js +0 -56
  215. package/dist/lib/hooks/useLocalState.js.map +0 -1
  216. package/dist/lib/hooks/useModuleVersion.js +0 -103
  217. package/dist/lib/hooks/useModuleVersion.js.map +0 -1
  218. package/dist/lib/hooks/useStdin.js +0 -65
  219. package/dist/lib/hooks/useStdin.js.map +0 -1
  220. package/dist/lib/input_schema.js +0 -130
  221. package/dist/lib/input_schema.js.map +0 -1
  222. package/dist/lib/outputs.js +0 -45
  223. package/dist/lib/outputs.js.map +0 -1
  224. package/dist/lib/project_analyzer.js +0 -30
  225. package/dist/lib/project_analyzer.js.map +0 -1
  226. package/dist/lib/projects/CrawleeAnalyzer.js +0 -20
  227. package/dist/lib/projects/CrawleeAnalyzer.js.map +0 -1
  228. package/dist/lib/projects/OldApifySDKAnalyzer.js +0 -38
  229. package/dist/lib/projects/OldApifySDKAnalyzer.js.map +0 -1
  230. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.js +0 -73
  231. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.js.map +0 -1
  232. package/dist/lib/projects/scrapy/Spider.js +0 -13
  233. package/dist/lib/projects/scrapy/Spider.js.map +0 -1
  234. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js +0 -20
  235. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js.map +0 -1
  236. package/dist/lib/projects/scrapy/wrapScrapyProject.js +0 -113
  237. package/dist/lib/projects/scrapy/wrapScrapyProject.js.map +0 -1
  238. package/dist/lib/projects/shared.js +0 -13
  239. package/dist/lib/projects/shared.js.map +0 -1
  240. package/dist/lib/secrets.js +0 -106
  241. package/dist/lib/secrets.js.map +0 -1
  242. package/dist/lib/telemetry.js +0 -86
  243. package/dist/lib/telemetry.js.map +0 -1
  244. package/dist/lib/types.js +0 -4
  245. package/dist/lib/types.js.map +0 -1
  246. package/dist/lib/utils/cliDebugPrint.js +0 -7
  247. package/dist/lib/utils/cliDebugPrint.js.map +0 -1
  248. package/dist/lib/utils/confirm.js +0 -28
  249. package/dist/lib/utils/confirm.js.map +0 -1
  250. package/dist/lib/utils.js +0 -457
  251. package/dist/lib/utils.js.map +0 -1
@@ -1,434 +0,0 @@
1
- import { existsSync, renameSync } from 'node:fs';
2
- import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
3
- import { dirname, join } from 'node:path';
4
- import process from 'node:process';
5
- import mime from 'mime';
6
- import { minVersion } from 'semver';
7
- import { APIFY_ENV_VARS } from '@apify/consts';
8
- import { validateInputSchema, validateInputUsingValidator } from '@apify/input_schema';
9
- import { ApifyCommand, StdinMode } from '../lib/command-framework/apify-command.js';
10
- import { Flags } from '../lib/command-framework/flags.js';
11
- import { getInputOverride } from '../lib/commands/resolve-input.js';
12
- import { CommandExitCodes, DEFAULT_LOCAL_STORAGE_DIR, LEGACY_LOCAL_STORAGE_DIR, MINIMUM_SUPPORTED_PYTHON_VERSION, SUPPORTED_NODEJS_VERSION, } from '../lib/consts.js';
13
- import { execWithLog } from '../lib/exec.js';
14
- import { deleteFile } from '../lib/files.js';
15
- import { useActorConfig } from '../lib/hooks/useActorConfig.js';
16
- import { ProjectLanguage, useCwdProject } from '../lib/hooks/useCwdProject.js';
17
- import { useModuleVersion } from '../lib/hooks/useModuleVersion.js';
18
- import { getAjvValidator, getDefaultsFromInputSchema, readInputSchema } from '../lib/input_schema.js';
19
- import { error, info, warning } from '../lib/outputs.js';
20
- import { replaceSecretsValue } from '../lib/secrets.js';
21
- import { Ajv2019, checkIfStorageIsEmpty, getLocalInput, getLocalKeyValueStorePath, getLocalStorageDir, getLocalUserInfo, isNodeVersionSupported, isPythonVersionSupported, purgeDefaultDataset, purgeDefaultKeyValueStore, purgeDefaultQueue, } from '../lib/utils.js';
22
- var RunType;
23
- (function (RunType) {
24
- RunType[RunType["DirectFile"] = 0] = "DirectFile";
25
- RunType[RunType["Module"] = 1] = "Module";
26
- RunType[RunType["Script"] = 2] = "Script";
27
- })(RunType || (RunType = {}));
28
- export class RunCommand extends ApifyCommand {
29
- static name = 'run';
30
- static description = `Executes Actor locally with simulated Apify environment variables.\n` +
31
- `Stores data in local '${DEFAULT_LOCAL_STORAGE_DIR}' directory.\n\n` +
32
- `NOTE: For Node.js Actors, customize behavior by modifying the 'start' script in package.json file.`;
33
- static flags = {
34
- purge: Flags.boolean({
35
- char: 'p',
36
- description: 'Whether to purge the default request queue, dataset and key-value store before the run starts.\nFor crawlee projects, this is the default behavior, and the flag is optional.\nUse `--no-purge` to keep the storage folder intact.',
37
- required: false,
38
- default: true,
39
- exclusive: ['resurrect'],
40
- }),
41
- resurrect: Flags.boolean({
42
- description: 'Whether to keep the default request queue, dataset and key-value store before the run starts.',
43
- required: false,
44
- default: false,
45
- exclusive: ['purge'],
46
- }),
47
- entrypoint: Flags.string({
48
- description: [
49
- 'Optional entrypoint for running with injected environment variables.',
50
- '\n',
51
- 'For Python, it is the module name, or a path to a file.',
52
- '\n',
53
- 'For Node.js, it is the npm script name, or a path to a JS/MJS file.',
54
- 'You can also pass in a directory name, provided that directory contains an "index.js" file.',
55
- ].join(' '),
56
- required: false,
57
- }),
58
- input: Flags.string({
59
- char: 'i',
60
- description: 'Optional JSON input to be given to the Actor.',
61
- required: false,
62
- stdin: StdinMode.Stringified,
63
- exclusive: ['input-file'],
64
- }),
65
- 'input-file': Flags.string({
66
- aliases: ['if'],
67
- description: '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.',
68
- required: false,
69
- stdin: StdinMode.Stringified,
70
- exclusive: ['input'],
71
- }),
72
- };
73
- async run() {
74
- const cwd = process.cwd();
75
- const { proxy, id: userId, token } = await getLocalUserInfo();
76
- const localConfigResult = await useActorConfig({ cwd });
77
- if (localConfigResult.isErr()) {
78
- const { message, cause } = localConfigResult.unwrapErr();
79
- error({ message: `${message}${cause ? `\n ${cause.message}` : ''}` });
80
- process.exitCode = CommandExitCodes.InvalidActorJson;
81
- return;
82
- }
83
- const { config: localConfig } = localConfigResult.unwrap();
84
- const actualStoragePath = getLocalStorageDir();
85
- const projectRuntimeResult = await useCwdProject({ cwd });
86
- if (projectRuntimeResult.isErr()) {
87
- error({ message: projectRuntimeResult.unwrapErr().message });
88
- process.exitCode = CommandExitCodes.InvalidActorJson;
89
- return;
90
- }
91
- const project = projectRuntimeResult.unwrap();
92
- const { type, entrypoint: cwdEntrypoint, runtime } = project;
93
- if (type === ProjectLanguage.Unknown) {
94
- throw new Error('Actor is of an unknown format.' +
95
- ` Make sure your project is supported by Apify CLI (either a package.json file is present, or a Python entrypoint could be found) or you are in a migrated Scrapy project.`);
96
- }
97
- if (!runtime) {
98
- switch (type) {
99
- case ProjectLanguage.JavaScript:
100
- error({
101
- message: `No Node.js detected! Please install Node.js ${SUPPORTED_NODEJS_VERSION} (or higher) to be able to run Node.js Actors locally.`,
102
- });
103
- break;
104
- case ProjectLanguage.Scrapy:
105
- case ProjectLanguage.Python:
106
- error({
107
- message: `No Python detected! Please install Python ${MINIMUM_SUPPORTED_PYTHON_VERSION} (or higher) to be able to run Python Actors locally.`,
108
- });
109
- break;
110
- default:
111
- error({
112
- message: `No runtime detected! Make sure you have Python ${MINIMUM_SUPPORTED_PYTHON_VERSION} (or higher) or Node.js ${SUPPORTED_NODEJS_VERSION} (or higher) installed.`,
113
- });
114
- }
115
- return;
116
- }
117
- let runType;
118
- let entrypoint;
119
- if (this.flags.entrypoint) {
120
- entrypoint = this.flags.entrypoint;
121
- const entrypointPath = join(cwd, this.flags.entrypoint);
122
- const entrypointStat = await stat(entrypointPath).catch(() => null);
123
- if (entrypointStat?.isDirectory()) {
124
- // Directory -> We just try to run it as a module (in python, it needs to have a main.py file, in node.js, an index.(m)js file)
125
- runType = RunType.Module;
126
- }
127
- // File -> ./src/file for example (running custom scripts)
128
- else if (entrypointStat?.isFile()) {
129
- runType = RunType.DirectFile;
130
- }
131
- // If it's not a file, or a directory, we just let it be a script
132
- else {
133
- runType = RunType.Script;
134
- }
135
- }
136
- else if (cwdEntrypoint?.script) {
137
- runType = RunType.Script;
138
- entrypoint = cwdEntrypoint.script;
139
- }
140
- else if (cwdEntrypoint?.path) {
141
- runType = type !== ProjectLanguage.JavaScript ? RunType.Module : RunType.DirectFile;
142
- entrypoint = cwdEntrypoint.path;
143
- }
144
- else {
145
- error({
146
- message: `No entrypoint detected! Please provide an entrypoint using the --entrypoint flag, or make sure your project has an entrypoint.`,
147
- });
148
- return;
149
- }
150
- if (existsSync(LEGACY_LOCAL_STORAGE_DIR) && !existsSync(actualStoragePath)) {
151
- renameSync(LEGACY_LOCAL_STORAGE_DIR, actualStoragePath);
152
- warning({
153
- message: `The legacy 'apify_storage' directory was renamed to '${actualStoragePath}' to align it with Apify SDK v3.` +
154
- ' Contents were left intact.',
155
- });
156
- }
157
- const crawleeVersion = await useModuleVersion({
158
- moduleName: 'crawlee',
159
- project,
160
- });
161
- let CRAWLEE_PURGE_ON_START = '0';
162
- // Mark resurrect as a special case of --no-purge
163
- if (this.flags.resurrect) {
164
- this.flags.purge = false;
165
- }
166
- // Purge stores
167
- if (this.flags.purge) {
168
- CRAWLEE_PURGE_ON_START = '1';
169
- if (crawleeVersion.isNone()) {
170
- await Promise.all([purgeDefaultQueue(), purgeDefaultKeyValueStore(), purgeDefaultDataset()]);
171
- info({ message: 'All default local stores were purged.' });
172
- }
173
- }
174
- if (!this.flags.purge) {
175
- const isStorageEmpty = await checkIfStorageIsEmpty();
176
- if (!isStorageEmpty && !this.flags.resurrect) {
177
- warning({
178
- message: 'The storage directory contains a previous state, the Actor will continue where it left off. ' +
179
- 'To start from the initial state, use --purge parameter to clean the storage directory.',
180
- });
181
- }
182
- }
183
- // Select correct input and validate it
184
- const inputOverride = await getInputOverride(cwd, this.flags.input, this.flags.inputFile);
185
- // Means we couldn't resolve input, so we should exit
186
- if (inputOverride === false) {
187
- return;
188
- }
189
- const storedInputResults = await this.validateAndStoreInput(inputOverride);
190
- // Attach env vars from local config files
191
- const localEnvVars = {
192
- [APIFY_ENV_VARS.LOCAL_STORAGE_DIR]: actualStoragePath,
193
- CRAWLEE_STORAGE_DIR: actualStoragePath,
194
- CRAWLEE_PURGE_ON_START,
195
- };
196
- if (proxy && proxy.password)
197
- localEnvVars[APIFY_ENV_VARS.PROXY_PASSWORD] = proxy.password;
198
- if (userId)
199
- localEnvVars[APIFY_ENV_VARS.USER_ID] = userId;
200
- if (token)
201
- localEnvVars[APIFY_ENV_VARS.TOKEN] = token;
202
- if (localConfig.environmentVariables) {
203
- const updatedEnv = replaceSecretsValue(localConfig.environmentVariables);
204
- Object.assign(localEnvVars, updatedEnv);
205
- }
206
- // NOTE: User can overwrite env vars
207
- const env = Object.assign(localEnvVars, process.env);
208
- if (!userId) {
209
- warning({
210
- message: 'You are not logged in with your Apify Account. Some features like Apify Proxy will not work. Call "apify login" to fix that.',
211
- });
212
- }
213
- try {
214
- switch (type) {
215
- case ProjectLanguage.JavaScript: {
216
- const minimumSupportedNodeVersion = minVersion(SUPPORTED_NODEJS_VERSION);
217
- if (isNodeVersionSupported(runtime.version)) {
218
- // --max-http-header-size=80000
219
- // Increases default size of headers. The original limit was 80kb, but from node 10+ they decided to lower it to 8kb.
220
- // However they did not think about all the sites there with large headers,
221
- // so we put back the old limit of 80kb, which seems to work just fine.
222
- env.NODE_OPTIONS = env.NODE_OPTIONS
223
- ? `${env.NODE_OPTIONS} --max-http-header-size=80000`
224
- : '--max-http-header-size=80000';
225
- }
226
- else {
227
- warning({
228
- message: `You are running Node.js version ${runtime.version}, which is no longer supported. ` +
229
- `Please upgrade to Node.js version ${minimumSupportedNodeVersion} or later.`,
230
- });
231
- }
232
- if (runType === RunType.DirectFile || runType === RunType.Module) {
233
- await execWithLog({
234
- cmd: runtime.executablePath,
235
- args: [entrypoint],
236
- opts: { env, cwd },
237
- });
238
- }
239
- else {
240
- // Assert the package.json content for scripts
241
- const packageJson = await readFile(join(cwd, 'package.json'), 'utf8').catch(() => '{}');
242
- const packageJsonObj = JSON.parse(packageJson);
243
- if (!packageJsonObj.scripts) {
244
- throw new Error('No scripts were found in package.json. Please set it up for your project. ' +
245
- 'For more information about that call "apify help run".');
246
- }
247
- if (!packageJsonObj.scripts[entrypoint]) {
248
- throw new Error(`The script "${entrypoint}" was not found in package.json. Please set it up for your project. ` +
249
- 'For more information about that call "apify help run".');
250
- }
251
- if (!runtime.pmPath) {
252
- throw new Error('No npm executable found! Please make sure your Node.js runtime has npm installed if you want to run package.json scripts locally.');
253
- }
254
- await execWithLog({
255
- cmd: runtime.pmPath,
256
- args: ['run', entrypoint],
257
- opts: { env, cwd },
258
- overrideCommand: runtime.pmName,
259
- });
260
- }
261
- break;
262
- }
263
- case ProjectLanguage.Python:
264
- case ProjectLanguage.Scrapy: {
265
- if (!isPythonVersionSupported(runtime.version)) {
266
- error({
267
- message: `Python Actors require Python 3.9 or higher, but you have Python ${runtime.version}!`,
268
- });
269
- error({
270
- message: 'Please install Python 3.9 or higher to be able to run Python Actors locally.',
271
- });
272
- return;
273
- }
274
- if (runType === RunType.Module) {
275
- await execWithLog({
276
- cmd: runtime.executablePath,
277
- args: ['-m', entrypoint],
278
- opts: { env, cwd },
279
- });
280
- }
281
- else {
282
- await execWithLog({
283
- cmd: runtime.executablePath,
284
- args: [entrypoint],
285
- opts: { env, cwd },
286
- });
287
- }
288
- break;
289
- }
290
- default:
291
- error({
292
- message: `Failed to detect the language of your project. Please report this issue to the Apify team with your project structure over at https://github.com/apify/apify-cli/issues`,
293
- });
294
- }
295
- }
296
- catch (err) {
297
- const { stderr } = err;
298
- if (stderr) {
299
- // TODO: maybe throw in helpful tips for debugging issues (missing scripts, trying to start a ts file with old node, etc)
300
- }
301
- }
302
- finally {
303
- if (storedInputResults) {
304
- if (storedInputResults.existingInput) {
305
- // Check if the input file was modified since we modified it. If it was, we abort the re-overwrite and warn the user
306
- const stats = await stat(storedInputResults.inputFilePath);
307
- const mtime = Math.trunc(stats.mtimeMs);
308
- // If its in a 5ms range, we assume the file was modified (realistically impossible)
309
- if (mtime - storedInputResults.writtenAt >= 5) {
310
- warning({
311
- message: `The "${storedInputResults.inputFilePath}" file was overwritten during the run. The CLI will not undo the setting of missing default fields from your input schema.`,
312
- });
313
- // eslint-disable-next-line no-unsafe-finally -- we do not return anything in the commands anyways
314
- return;
315
- }
316
- // Overwrite with the original input
317
- await writeFile(storedInputResults.inputFilePath, storedInputResults.existingInput.body);
318
- }
319
- else {
320
- // No file -> we made it -> we delete it
321
- await deleteFile(storedInputResults.inputFilePath);
322
- }
323
- }
324
- }
325
- }
326
- /**
327
- * Ensures the input that the actor will be ran with locally matches the input schema (and prefills default values if missing)
328
- * @param inputOverride Optional input received through command flags
329
- */
330
- async validateAndStoreInput(inputOverride) {
331
- const { inputSchema } = await readInputSchema({ cwd: process.cwd() });
332
- if (!inputSchema) {
333
- if (!inputOverride) {
334
- return null;
335
- }
336
- // We cannot validate input schema if it is not found -> default to no validation and overriding if flags are given
337
- const existingInput = getLocalInput(process.cwd());
338
- // Prepare the file path for where we'll temporarily store the validated input
339
- const inputFilePath = join(process.cwd(), getLocalKeyValueStorePath(), existingInput?.fileName ?? 'INPUT.json');
340
- await mkdir(dirname(inputFilePath), { recursive: true });
341
- await writeFile(inputFilePath, JSON.stringify(inputOverride.input, null, 2));
342
- return {
343
- existingInput,
344
- inputFilePath,
345
- writtenAt: Date.now(),
346
- };
347
- }
348
- // Step 1: validate the input schema
349
- const validator = new Ajv2019({ strict: false, unicodeRegExp: false });
350
- validateInputSchema(validator, inputSchema); // This one throws an error in a case of invalid schema.
351
- const defaults = getDefaultsFromInputSchema(inputSchema);
352
- const compiledInputSchema = getAjvValidator(inputSchema, validator);
353
- // Step 2: try to fetch the existing INPUT from the local storage
354
- const existingInput = getLocalInput(process.cwd());
355
- // Prepare the file path for where we'll temporarily store the validated input
356
- const inputFilePath = join(process.cwd(), getLocalKeyValueStorePath(), existingInput?.fileName ?? 'INPUT.json');
357
- let errorHeader;
358
- switch (inputOverride?.source) {
359
- case 'stdin':
360
- errorHeader =
361
- 'The input provided through standard input is invalid. Please fix the following errors:\n';
362
- break;
363
- case 'input':
364
- errorHeader =
365
- 'The input provided through the --input flag is invalid. Please fix the following errors:\n';
366
- break;
367
- default:
368
- if (inputOverride) {
369
- errorHeader = `The input provided through the ${inputOverride.source} file is invalid. Please fix the following errors:\n`;
370
- }
371
- else {
372
- errorHeader = 'The input in your storage is invalid. Please fix the following errors:\n';
373
- }
374
- break;
375
- }
376
- // Step 2. If there is an input override, we validate it and store it
377
- if (inputOverride) {
378
- const fullInputOverride = {
379
- ...defaults,
380
- ...inputOverride.input,
381
- };
382
- const errors = validateInputUsingValidator(compiledInputSchema, inputSchema, fullInputOverride);
383
- if (errors.length > 0) {
384
- throw new Error(`${errorHeader}${errors
385
- .map((e) => ` - ${e.message.replace('Field input.', 'Field ')}`)
386
- .join('\n')}`);
387
- }
388
- await mkdir(dirname(inputFilePath), { recursive: true });
389
- await writeFile(inputFilePath, JSON.stringify(fullInputOverride, null, 2));
390
- return {
391
- existingInput,
392
- inputFilePath,
393
- writtenAt: Date.now(),
394
- };
395
- }
396
- if (!existingInput) {
397
- await mkdir(dirname(inputFilePath), { recursive: true });
398
- // No input -> use defaults for this run
399
- await writeFile(inputFilePath, JSON.stringify(defaults, null, 2));
400
- return {
401
- existingInput,
402
- inputFilePath,
403
- writtenAt: Date.now(),
404
- };
405
- }
406
- if (mime.getExtension(existingInput.contentType) === 'json') {
407
- // Step 4: validate the input
408
- const inputJson = JSON.parse(existingInput.body.toString('utf-8'));
409
- if (Array.isArray(inputJson)) {
410
- throw new Error('The input in your storage is invalid. It should be an object, not an array.');
411
- }
412
- const fullInput = {
413
- ...defaults,
414
- ...inputJson,
415
- };
416
- const errors = validateInputUsingValidator(compiledInputSchema, inputSchema, fullInput);
417
- if (errors.length > 0) {
418
- throw new Error(`${errorHeader}${errors
419
- .map((e) => ` - ${e.message.replace('Field input.', 'Field ')}`)
420
- .join('\n')}`);
421
- }
422
- // Step 4: store the input
423
- await mkdir(dirname(inputFilePath), { recursive: true });
424
- await writeFile(inputFilePath, JSON.stringify(fullInput, null, 2));
425
- return {
426
- existingInput,
427
- inputFilePath,
428
- writtenAt: Date.now(),
429
- };
430
- }
431
- return null;
432
- }
433
- }
434
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { ApifyCommand } from '../../lib/command-framework/apify-command.js';
2
- import { RunsAbortCommand } from './abort.js';
3
- import { RunsInfoCommand } from './info.js';
4
- import { RunsLogCommand } from './log.js';
5
- import { RunsLsCommand } from './ls.js';
6
- import { RunsResurrectCommand } from './resurrect.js';
7
- import { RunsRmCommand } from './rm.js';
8
- export class RunsIndexCommand extends ApifyCommand {
9
- static name = 'runs';
10
- static description = 'Manages Actor run operations ';
11
- static subcommands = [
12
- RunsAbortCommand,
13
- RunsInfoCommand,
14
- RunsLogCommand,
15
- RunsLsCommand,
16
- RunsResurrectCommand,
17
- RunsRmCommand,
18
- ];
19
- async run() {
20
- this.printHelp();
21
- }
22
- }
23
- //# sourceMappingURL=_index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_index.js","sourceRoot":"","sources":["../../../src/commands/runs/_index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,OAAO,gBAAiB,SAAQ,YAAqC;IAC1E,MAAM,CAAU,IAAI,GAAG,MAAe,CAAC;IAEvC,MAAM,CAAU,WAAW,GAAG,+BAA+B,CAAC;IAE9D,MAAM,CAAU,WAAW,GAAG;QAC7B,gBAAgB;QAChB,eAAe;QACf,cAAc;QACd,aAAa;QACb,oBAAoB;QACpB,aAAa;KACb,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC"}
@@ -1,68 +0,0 @@
1
- import { ACTOR_JOB_STATUSES } from '@apify/consts';
2
- import { ApifyCommand } from '../../lib/command-framework/apify-command.js';
3
- import { Args } from '../../lib/command-framework/args.js';
4
- import { Flags } from '../../lib/command-framework/flags.js';
5
- import { error, success } from '../../lib/outputs.js';
6
- import { getLoggedClientOrThrow, printJsonToStdout } from '../../lib/utils.js';
7
- const runningStatuses = [ACTOR_JOB_STATUSES.READY, ACTOR_JOB_STATUSES.RUNNING];
8
- const abortingStatuses = [ACTOR_JOB_STATUSES.ABORTING, ACTOR_JOB_STATUSES.TIMING_OUT];
9
- export class RunsAbortCommand extends ApifyCommand {
10
- static name = 'abort';
11
- static description = 'Aborts an Actor run.';
12
- static args = {
13
- runId: Args.string({
14
- required: true,
15
- description: 'The run ID to abort.',
16
- }),
17
- };
18
- static flags = {
19
- force: Flags.boolean({
20
- description: 'Whether to force the run to abort immediately, instead of gracefully.',
21
- default: false,
22
- char: 'f',
23
- }),
24
- };
25
- static enableJsonFlag = true;
26
- async run() {
27
- const { runId } = this.args;
28
- const apifyClient = await getLoggedClientOrThrow();
29
- const run = await apifyClient.run(runId).get();
30
- if (!run) {
31
- error({ message: `Run with ID "${runId}" was not found on your account.`, stdout: true });
32
- return;
33
- }
34
- if (!runningStatuses.includes(run.status)) {
35
- if (abortingStatuses.includes(run.status)) {
36
- error({ message: `Run with ID "${runId}" is already aborting.`, stdout: true });
37
- }
38
- else {
39
- error({ message: `Run with ID "${runId}" is already aborted.`, stdout: true });
40
- }
41
- return;
42
- }
43
- try {
44
- const result = await apifyClient.run(runId).abort({ gracefully: !this.flags.force });
45
- if (this.flags.json) {
46
- printJsonToStdout(result);
47
- return;
48
- }
49
- if (this.flags.force) {
50
- success({ message: `Triggered the immediate abort of run "${runId}".`, stdout: true });
51
- }
52
- else {
53
- success({
54
- message: `Triggered the abort of run "${runId}", it should finish aborting in up to 30 seconds.`,
55
- stdout: true,
56
- });
57
- }
58
- }
59
- catch (err) {
60
- const casted = err;
61
- error({
62
- message: `Failed to abort run "${runId}".\n ${casted.message || casted}`,
63
- stdout: true,
64
- });
65
- }
66
- }
67
- }
68
- //# sourceMappingURL=abort.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../src/commands/runs/abort.ts"],"names":[],"mappings":"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"}