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,264 +0,0 @@
1
- import { mkdir, readdir, stat } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- import process from 'node:process';
4
- import { gte, minVersion } from 'semver';
5
- import { fetchManifest, manifestUrl } from '@apify/actor-templates';
6
- import { ApifyCommand } from '../lib/command-framework/apify-command.js';
7
- import { Args } from '../lib/command-framework/args.js';
8
- import { Flags } from '../lib/command-framework/flags.js';
9
- import { EMPTY_LOCAL_CONFIG, LOCAL_CONFIG_PATH, MINIMUM_SUPPORTED_PYTHON_VERSION, PYTHON_VENV_PATH, SUPPORTED_NODEJS_VERSION, } from '../lib/consts.js';
10
- import { enhanceReadmeWithLocalSuffix, ensureValidActorName, getTemplateDefinition } from '../lib/create-utils.js';
11
- import { execWithLog } from '../lib/exec.js';
12
- import { updateLocalJson } from '../lib/files.js';
13
- import { usePythonRuntime } from '../lib/hooks/runtimes/python.js';
14
- import { ProjectLanguage, useCwdProject } from '../lib/hooks/useCwdProject.js';
15
- import { createPrefilledInputFileFromInputSchema } from '../lib/input_schema.js';
16
- import { error, info, success, warning } from '../lib/outputs.js';
17
- import { downloadAndUnzip, getJsonFileContent, isNodeVersionSupported, isPythonVersionSupported, setLocalConfig, setLocalEnv, } from '../lib/utils.js';
18
- export class CreateCommand extends ApifyCommand {
19
- static name = 'create';
20
- static description = 'Creates an Actor project from a template in a new directory.';
21
- static flags = {
22
- template: Flags.string({
23
- char: 't',
24
- description: 'Template for the Actor. If not provided, the command will prompt for it.\n' +
25
- `Visit ${manifestUrl} to find available template names.`,
26
- required: false,
27
- }),
28
- 'skip-dependency-install': Flags.boolean({
29
- description: 'Skip installing Actor dependencies.',
30
- required: false,
31
- }),
32
- 'template-archive-url': Flags.string({
33
- description: 'Actor template archive url. Useful for developing new templates.',
34
- required: false,
35
- hidden: true,
36
- }),
37
- 'omit-optional-deps': Flags.boolean({
38
- aliases: ['no-optional'],
39
- description: 'Skip installing optional dependencies.',
40
- required: false,
41
- }),
42
- };
43
- static args = {
44
- actorName: Args.string({
45
- required: false,
46
- description: 'Name of the Actor and its directory',
47
- }),
48
- };
49
- async run() {
50
- let { actorName } = this.args;
51
- const { template: templateName, skipDependencyInstall } = this.flags;
52
- // --template-archive-url is an internal, undocumented flag that's used
53
- // for testing of templates that are not yet published in the manifest
54
- let { templateArchiveUrl } = this.flags;
55
- let skipOptionalDeps = false;
56
- // Start fetching manifest immediately to prevent
57
- // annoying delays that sometimes happen on CLI startup.
58
- const manifestPromise = fetchManifest().catch((err) => {
59
- return new Error(`Could not fetch template list from server. Cause: ${err?.message}`);
60
- });
61
- actorName = await ensureValidActorName(actorName);
62
- const cwd = process.cwd();
63
- let actFolderDir = join(cwd, actorName);
64
- while (true) {
65
- const folderExists = await stat(actFolderDir).catch(() => null);
66
- const folderHasFiles = folderExists &&
67
- (await readdir(actFolderDir)
68
- .then((files) => files.length > 0)
69
- .catch(() => false));
70
- if (folderExists?.isDirectory() && folderHasFiles) {
71
- error({
72
- message: `Cannot create new Actor, directory '${actorName}' already exists. Please provide a different name.` +
73
- ' You can use "apify init" to create a local Actor environment inside an existing directory.',
74
- });
75
- actorName = await ensureValidActorName();
76
- actFolderDir = join(cwd, actorName);
77
- continue;
78
- }
79
- // Create Actor directory structure
80
- if (!folderExists) {
81
- await mkdir(actFolderDir, { recursive: true });
82
- }
83
- break;
84
- }
85
- let messages = null;
86
- this.telemetryData.fromArchiveUrl = !!templateArchiveUrl;
87
- if (!templateArchiveUrl) {
88
- const templateDefinition = await getTemplateDefinition(templateName, manifestPromise);
89
- ({ archiveUrl: templateArchiveUrl, messages } = templateDefinition);
90
- this.telemetryData.templateId = templateDefinition.id;
91
- this.telemetryData.templateName = templateDefinition.name;
92
- this.telemetryData.templateLanguage = templateDefinition.category;
93
- // This "exists"
94
- if ('skipOptionalDeps' in templateDefinition) {
95
- skipOptionalDeps = templateDefinition.skipOptionalDeps;
96
- }
97
- }
98
- // Set this _after_ the template is resolved, so that the flag takes precedence
99
- if (this.flags.omitOptionalDeps) {
100
- skipOptionalDeps = true;
101
- }
102
- await downloadAndUnzip({ url: templateArchiveUrl, pathTo: actFolderDir });
103
- // There may be .actor/actor.json file in used template - let's try to load it and change the name prop value to actorName
104
- const localConfig = getJsonFileContent(join(actFolderDir, LOCAL_CONFIG_PATH));
105
- await setLocalConfig(Object.assign(localConfig || EMPTY_LOCAL_CONFIG, { name: actorName }), actFolderDir);
106
- await setLocalEnv(actFolderDir);
107
- // Create prefilled INPUT.json file from the input schema prefills
108
- await createPrefilledInputFileFromInputSchema(actFolderDir);
109
- const packageJsonPath = join(actFolderDir, 'package.json');
110
- const readmePath = join(actFolderDir, 'README.md');
111
- // Add localReadmeSuffix which is fetched from manifest to README.md
112
- // The suffix contains local development instructions
113
- await enhanceReadmeWithLocalSuffix(readmePath, manifestPromise);
114
- let dependenciesInstalled = false;
115
- if (!skipDependencyInstall) {
116
- const cwdProjectResult = await useCwdProject({ cwd: actFolderDir });
117
- await cwdProjectResult.inspectAsync(async (project) => {
118
- const minimumSupportedNodeVersion = minVersion(SUPPORTED_NODEJS_VERSION);
119
- if (!project.runtime) {
120
- switch (project.type) {
121
- case ProjectLanguage.JavaScript: {
122
- warning({
123
- message: `No Node.js detected! Please install Node.js ${minimumSupportedNodeVersion} or higher` +
124
- ' to be able to run Node.js Actors locally.',
125
- });
126
- break;
127
- }
128
- case ProjectLanguage.Scrapy:
129
- case ProjectLanguage.Python: {
130
- warning({
131
- message: `No Python detected! Please install Python ${MINIMUM_SUPPORTED_PYTHON_VERSION} or higher to be able to run Python Actors locally.`,
132
- });
133
- break;
134
- }
135
- default:
136
- // Do nothing
137
- }
138
- return;
139
- }
140
- let { runtime } = project;
141
- switch (project.type) {
142
- case ProjectLanguage.JavaScript: {
143
- if (!isNodeVersionSupported(runtime.version)) {
144
- warning({
145
- message: `You are running Node.js version ${runtime.version}, which is no longer supported. ` +
146
- `Please upgrade to Node.js version ${minimumSupportedNodeVersion} or later.`,
147
- });
148
- }
149
- // If the Actor is a Node.js Actor (has package.json), run `npm install`
150
- await updateLocalJson(packageJsonPath, { name: actorName });
151
- // Run npm install in Actor dir.
152
- // For efficiency, don't install Puppeteer for templates that don't use it
153
- const cmdArgs = ['install'];
154
- if (skipOptionalDeps) {
155
- switch (runtime.pmName) {
156
- case 'npm': {
157
- if (gte(runtime.pmVersion, '7.0.0')) {
158
- cmdArgs.push('--omit=optional');
159
- }
160
- else {
161
- cmdArgs.push('--no-optional');
162
- }
163
- break;
164
- }
165
- case 'bun': {
166
- cmdArgs.push('--omit=optional');
167
- break;
168
- }
169
- case 'deno': {
170
- // We want to make deno use the node_modules dir
171
- cmdArgs.push('--node-modules-dir');
172
- break;
173
- }
174
- default:
175
- // Do nothing
176
- }
177
- }
178
- await execWithLog({
179
- cmd: runtime.pmPath,
180
- args: cmdArgs,
181
- opts: { cwd: actFolderDir },
182
- overrideCommand: runtime.pmName,
183
- });
184
- dependenciesInstalled = true;
185
- break;
186
- }
187
- case ProjectLanguage.Python:
188
- case ProjectLanguage.Scrapy: {
189
- if (!isPythonVersionSupported(runtime.version)) {
190
- warning({
191
- message: `Python Actors require Python 3.9 or higher, but you have Python ${runtime.version}!`,
192
- });
193
- warning({
194
- message: 'Please install Python 3.9 or higher to be able to run Python Actors locally.',
195
- });
196
- return;
197
- }
198
- const venvPath = join(actFolderDir, '.venv');
199
- info({ message: `Python version ${runtime.version} detected.` });
200
- info({
201
- message: `Creating a virtual environment in "${venvPath}" and installing dependencies from "requirements.txt"...`,
202
- });
203
- if (!process.env.VIRTUAL_ENV) {
204
- // If Python is not running in a virtual environment, create a new one
205
- await execWithLog({
206
- cmd: runtime.executablePath,
207
- args: ['-m', 'venv', '--prompt', '.', PYTHON_VENV_PATH],
208
- opts: { cwd: actFolderDir },
209
- });
210
- // regenerate the `pythonCommand` after we create the virtual environment
211
- runtime = (await usePythonRuntime({ cwd: actFolderDir, force: true })).unwrap();
212
- project.runtime = runtime;
213
- }
214
- await execWithLog({
215
- cmd: runtime.executablePath,
216
- args: [
217
- '-m',
218
- 'pip',
219
- 'install',
220
- '--no-cache-dir',
221
- '--no-warn-script-location',
222
- '--upgrade',
223
- 'pip',
224
- 'setuptools',
225
- 'wheel',
226
- ],
227
- opts: { cwd: actFolderDir },
228
- });
229
- await execWithLog({
230
- cmd: runtime.executablePath,
231
- args: [
232
- '-m',
233
- 'pip',
234
- 'install',
235
- '--no-cache-dir',
236
- '--no-warn-script-location',
237
- '-r',
238
- 'requirements.txt',
239
- ],
240
- opts: { cwd: actFolderDir },
241
- });
242
- dependenciesInstalled = true;
243
- break;
244
- }
245
- default:
246
- // Do nothing
247
- }
248
- });
249
- }
250
- if (dependenciesInstalled) {
251
- success({ message: `Actor '${actorName}' was created. To run it, run "cd ${actorName}" and "apify run".` });
252
- info({ message: 'To run your code in the cloud, run "apify push" and deploy your code to Apify Console.' });
253
- if (messages?.postCreate) {
254
- info({ message: messages?.postCreate });
255
- }
256
- }
257
- else {
258
- success({
259
- message: `Actor '${actorName}' was created. Please install its dependencies to be able to run it using "apify run".`,
260
- });
261
- }
262
- }
263
- }
264
- //# 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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"}
@@ -1,25 +0,0 @@
1
- import { ApifyCommand } from '../../lib/command-framework/apify-command.js';
2
- import { DatasetsCreateCommand } from './create.js';
3
- import { DatasetsGetItems } from './get-items.js';
4
- import { DatasetsInfoCommand } from './info.js';
5
- import { DatasetsLsCommand } from './ls.js';
6
- import { DatasetsPushDataCommand } from './push-items.js';
7
- import { DatasetsRenameCommand } from './rename.js';
8
- import { DatasetsRmCommand } from './rm.js';
9
- export class DatasetsIndexCommand extends ApifyCommand {
10
- static name = 'datasets';
11
- static description = 'Manages structured data storage and retrieval.';
12
- static subcommands = [
13
- DatasetsCreateCommand,
14
- DatasetsGetItems,
15
- DatasetsLsCommand,
16
- DatasetsInfoCommand,
17
- DatasetsRmCommand,
18
- DatasetsRenameCommand,
19
- DatasetsPushDataCommand,
20
- ];
21
- async run() {
22
- this.printHelp();
23
- }
24
- }
25
- //# sourceMappingURL=_index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_index.js","sourceRoot":"","sources":["../../../src/commands/datasets/_index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,OAAO,oBAAqB,SAAQ,YAAyC;IAClF,MAAM,CAAU,IAAI,GAAG,UAAmB,CAAC;IAE3C,MAAM,CAAU,WAAW,GAAG,gDAAgD,CAAC;IAE/E,MAAM,CAAU,WAAW,GAAG;QAC7B,qBAAqB;QACrB,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,iBAAiB;QACjB,qBAAqB;QACrB,uBAAuB;KACvB,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC"}
@@ -1,38 +0,0 @@
1
- import chalk from 'chalk';
2
- import { ApifyCommand } from '../../lib/command-framework/apify-command.js';
3
- import { Args } from '../../lib/command-framework/args.js';
4
- import { tryToGetDataset } from '../../lib/commands/storages.js';
5
- import { error, success } from '../../lib/outputs.js';
6
- import { getLoggedClientOrThrow, printJsonToStdout } from '../../lib/utils.js';
7
- export class DatasetsCreateCommand extends ApifyCommand {
8
- static name = 'create';
9
- static description = 'Creates a new dataset for storing structured data on your account.';
10
- static args = {
11
- datasetName: Args.string({
12
- description: 'Optional name for the Dataset',
13
- required: false,
14
- }),
15
- };
16
- static enableJsonFlag = true;
17
- async run() {
18
- const { datasetName } = this.args;
19
- const client = await getLoggedClientOrThrow();
20
- if (datasetName) {
21
- const existing = await tryToGetDataset(client, datasetName);
22
- if (existing) {
23
- error({ message: 'A Dataset with this name already exists!' });
24
- return;
25
- }
26
- }
27
- const newDataset = await client.datasets().getOrCreate(datasetName);
28
- if (this.flags.json) {
29
- printJsonToStdout(newDataset);
30
- return;
31
- }
32
- success({
33
- message: `Dataset with ID ${chalk.yellow(newDataset.id)}${datasetName ? ` (called ${chalk.yellow(datasetName)})` : ''} was created.`,
34
- stdout: true,
35
- });
36
- }
37
- }
38
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/datasets/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,OAAO,qBAAsB,SAAQ,YAA0C;IACpF,MAAM,CAAU,IAAI,GAAG,QAAiB,CAAC;IAEzC,MAAM,CAAU,WAAW,GAAG,oEAAoE,CAAC;IAEnG,MAAM,CAAU,IAAI,GAAG;QACtB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,KAAK;SACf,CAAC;KACF,CAAC;IAEF,MAAM,CAAU,cAAc,GAAG,IAAI,CAAC;IAEtC,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAE9C,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAE5D,IAAI,QAAQ,EAAE,CAAC;gBACd,KAAK,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;gBAC/D,OAAO;YACR,CAAC;QACF,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,OAAO,CAAC;YACP,OAAO,EAAE,mBAAmB,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe;YACpI,MAAM,EAAE,IAAI;SACZ,CAAC,CAAC;IACJ,CAAC"}
@@ -1,84 +0,0 @@
1
- import { DownloadItemsFormat } from 'apify-client';
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, simpleLog } from '../../lib/outputs.js';
6
- import { getLocalUserInfo, getLoggedClientOrThrow } from '../../lib/utils.js';
7
- const downloadFormatToContentType = {
8
- [DownloadItemsFormat.JSON]: 'application/json',
9
- [DownloadItemsFormat.JSONL]: 'application/jsonl',
10
- [DownloadItemsFormat.CSV]: 'text/csv',
11
- [DownloadItemsFormat.HTML]: 'text/html',
12
- [DownloadItemsFormat.RSS]: 'application/rss+xml',
13
- [DownloadItemsFormat.XML]: 'application/xml',
14
- [DownloadItemsFormat.XLSX]: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
15
- };
16
- export class DatasetsGetItems extends ApifyCommand {
17
- static name = 'get-items';
18
- static description = 'Retrieves dataset items in specified format (JSON, CSV, etc).';
19
- static flags = {
20
- limit: Flags.integer({
21
- description: 'The amount of elements to get from the dataset. By default, it will return all available items.',
22
- }),
23
- offset: Flags.integer({
24
- description: 'The offset in the dataset where to start getting items.',
25
- }),
26
- format: Flags.string({
27
- description: "The format of the returned output. By default, it is set to 'json'",
28
- choices: Object.keys(downloadFormatToContentType),
29
- default: DownloadItemsFormat.JSON,
30
- }),
31
- };
32
- static args = {
33
- datasetId: Args.string({
34
- description: 'The ID of the Dataset to export the items for',
35
- required: true,
36
- }),
37
- };
38
- async run() {
39
- const { limit, offset, format } = this.flags;
40
- const { datasetId } = this.args;
41
- const apifyClient = await getLoggedClientOrThrow();
42
- const maybeDataset = await this.tryToGetDataset(apifyClient, datasetId);
43
- if (!maybeDataset) {
44
- error({ message: `Dataset with ID "${datasetId}" not found.` });
45
- return;
46
- }
47
- const { datasetClient } = maybeDataset;
48
- // Write something already to stdout
49
- process.stdout.write('');
50
- const result = await datasetClient.downloadItems(format, {
51
- limit,
52
- offset,
53
- });
54
- const contentType = downloadFormatToContentType[format] ?? 'application/octet-stream';
55
- simpleLog({ message: contentType });
56
- process.stdout.write(result);
57
- process.stdout.write('\n');
58
- }
59
- async tryToGetDataset(client, datasetId) {
60
- const byIdOrName = await client
61
- .dataset(datasetId)
62
- .get()
63
- .catch(() => undefined);
64
- if (byIdOrName) {
65
- return {
66
- dataset: byIdOrName,
67
- datasetClient: client.dataset(byIdOrName.id),
68
- };
69
- }
70
- const info = await getLocalUserInfo();
71
- const byName = await client
72
- .dataset(`${info.username}/${datasetId}`)
73
- .get()
74
- .catch(() => undefined);
75
- if (byName) {
76
- return {
77
- dataset: byName,
78
- datasetClient: client.dataset(byName.id),
79
- };
80
- }
81
- return null;
82
- }
83
- }
84
- //# sourceMappingURL=get-items.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-items.js","sourceRoot":"","sources":["../../../src/commands/datasets/get-items.ts"],"names":[],"mappings":"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"}
@@ -1,125 +0,0 @@
1
- import chalk from 'chalk';
2
- import { ApifyCommand } from '../../lib/command-framework/apify-command.js';
3
- import { Args } from '../../lib/command-framework/args.js';
4
- import { prettyPrintBytes } from '../../lib/commands/pretty-print-bytes.js';
5
- import { CompactMode, ResponsiveTable } from '../../lib/commands/responsive-table.js';
6
- import { getUserPlanPricing } from '../../lib/commands/storage-size.js';
7
- import { tryToGetDataset } from '../../lib/commands/storages.js';
8
- import { error, simpleLog } from '../../lib/outputs.js';
9
- import { getLoggedClientOrThrow, printJsonToStdout, TimestampFormatter } from '../../lib/utils.js';
10
- const consoleLikeTable = new ResponsiveTable({
11
- allColumns: ['Row1', 'Row2'],
12
- mandatoryColumns: ['Row1', 'Row2'],
13
- });
14
- export class DatasetsInfoCommand extends ApifyCommand {
15
- static name = 'info';
16
- static description = 'Prints information about a specific dataset.';
17
- static args = {
18
- storeId: Args.string({
19
- description: 'The dataset store ID to print information about.',
20
- required: true,
21
- }),
22
- };
23
- static enableJsonFlag = true;
24
- async run() {
25
- const { storeId } = this.args;
26
- const apifyClient = await getLoggedClientOrThrow();
27
- const maybeStore = await tryToGetDataset(apifyClient, storeId);
28
- if (!maybeStore) {
29
- error({
30
- message: `Key-value store with ID or name "${storeId}" not found.`,
31
- });
32
- return;
33
- }
34
- const { dataset: info } = maybeStore;
35
- const [user, actor, run] = await Promise.all([
36
- apifyClient
37
- .user(info.userId)
38
- .get()
39
- .then((u) => u),
40
- info.actId ? apifyClient.actor(info.actId).get() : Promise.resolve(undefined),
41
- info.actRunId ? apifyClient.run(info.actRunId).get() : Promise.resolve(undefined),
42
- ]);
43
- let task;
44
- if (run?.actorTaskId) {
45
- task = await apifyClient
46
- .task(run.actorTaskId)
47
- .get()
48
- .catch(() => undefined);
49
- }
50
- if (this.flags.json) {
51
- printJsonToStdout({
52
- ...info,
53
- user,
54
- actor: actor || null,
55
- run: run || null,
56
- task: task || null,
57
- });
58
- return;
59
- }
60
- const fullSizeInBytes = info.stats?.storageBytes || 0;
61
- const readCount = info.stats?.readCount || 0;
62
- const writeCount = info.stats?.writeCount || 0;
63
- const cleanCount = (info.cleanItemCount || 0).toLocaleString('en-US');
64
- const totalCount = (info.itemCount || 0).toLocaleString('en-US');
65
- const operationsParts = [
66
- `${chalk.bold(readCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(readCount, 'read', 'reads'))}`,
67
- `${chalk.bold(writeCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(writeCount, 'write', 'writes'))}`,
68
- ];
69
- let row3 = `Items: ${chalk.bold(cleanCount)} ${chalk.gray('clean')} / ${chalk.bold(totalCount)} ${chalk.gray('total')}\nOperations: ${operationsParts.join(' / ')}`;
70
- if (user.plan) {
71
- const pricing = getUserPlanPricing(user.plan);
72
- if (pricing) {
73
- const storeCostPerHour = pricing.KEY_VALUE_STORE_TIMED_STORAGE_GBYTE_HOURS * (fullSizeInBytes / 1000 ** 3);
74
- const storeCostPerMonth = storeCostPerHour * 24 * 30;
75
- const usdAmountString = storeCostPerMonth > 1 ? `$${storeCostPerMonth.toFixed(2)}` : `$${storeCostPerHour.toFixed(3)}`;
76
- row3 += `\nStorage size: ${prettyPrintBytes({ bytes: fullSizeInBytes, shortBytes: true, precision: 1 })} / ${chalk.gray(`${usdAmountString} per month`)}`;
77
- }
78
- }
79
- else {
80
- row3 += `\nStorage size: ${prettyPrintBytes({ bytes: fullSizeInBytes, shortBytes: true, precision: 1 })}`;
81
- }
82
- const row1 = [
83
- `Dataset ID: ${chalk.bgGray(info.id)}`,
84
- `Name: ${info.name ? chalk.bgGray(info.name) : chalk.bold(chalk.italic('Unnamed'))}`,
85
- `Created: ${chalk.bold(TimestampFormatter.display(info.createdAt))}`,
86
- `Modified: ${chalk.bold(TimestampFormatter.display(info.modifiedAt))}`,
87
- ].join('\n');
88
- let runInfo = chalk.bold('—');
89
- if (info.actRunId) {
90
- if (run) {
91
- runInfo = chalk.bgBlue(run.id);
92
- }
93
- else {
94
- runInfo = chalk.italic(chalk.gray('Run removed'));
95
- }
96
- }
97
- let actorInfo = chalk.bold('—');
98
- if (actor) {
99
- actorInfo = chalk.blue(actor.title || actor.name);
100
- }
101
- let taskInfo = chalk.bold('—');
102
- if (task) {
103
- taskInfo = chalk.blue(task.title || task.name);
104
- }
105
- const row2 = [`Run: ${runInfo}`, `Actor: ${actorInfo}`, `Task: ${taskInfo}`].join('\n');
106
- consoleLikeTable.pushRow({
107
- Row1: row1,
108
- Row2: row2,
109
- });
110
- const rendered = consoleLikeTable.render(CompactMode.NoLines);
111
- const rows = rendered.split('\n').map((row) => row.trim());
112
- // Remove the first row
113
- rows.shift();
114
- const message = [
115
- `${chalk.bold(info.name || chalk.italic('Unnamed'))}`,
116
- `${chalk.gray(info.name ? `${user.username}/${info.name}` : info.id)} ${chalk.gray('Owned by')} ${chalk.blue(user.username)}`,
117
- '',
118
- rows.join('\n'),
119
- '',
120
- row3,
121
- ].join('\n');
122
- simpleLog({ message, stdout: true });
123
- }
124
- }
125
- //# sourceMappingURL=info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/datasets/info.ts"],"names":[],"mappings":"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"}