apify-cli 1.0.0 → 1.1.1-beta.0

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 (225) hide show
  1. package/CHANGELOG.md +242 -84
  2. package/LICENSE.md +201 -0
  3. package/README.md +49 -543
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/actor.js +3 -0
  6. package/dist/actor.js.map +1 -0
  7. package/dist/apify.js +3 -0
  8. package/dist/apify.js.map +1 -0
  9. package/dist/chunk-C7RW4NOZ.js +242 -0
  10. package/dist/chunk-C7RW4NOZ.js.map +1 -0
  11. package/dist/index.js +2 -3
  12. package/package.json +113 -89
  13. package/bin/dev.cmd +0 -3
  14. package/bin/dev.js +0 -21
  15. package/bin/dev.sh +0 -4
  16. package/bin/run.cmd +0 -3
  17. package/bin/run.js +0 -23
  18. package/dist/commands/actor/get-input.d.ts +0 -6
  19. package/dist/commands/actor/get-input.d.ts.map +0 -1
  20. package/dist/commands/actor/get-input.js +0 -14
  21. package/dist/commands/actor/get-input.js.map +0 -1
  22. package/dist/commands/actor/get-value.d.ts +0 -9
  23. package/dist/commands/actor/get-value.d.ts.map +0 -1
  24. package/dist/commands/actor/get-value.js +0 -27
  25. package/dist/commands/actor/get-value.js.map +0 -1
  26. package/dist/commands/actor/index.d.ts +0 -6
  27. package/dist/commands/actor/index.d.ts.map +0 -1
  28. package/dist/commands/actor/index.js +0 -13
  29. package/dist/commands/actor/index.js.map +0 -1
  30. package/dist/commands/actor/push-data.d.ts +0 -11
  31. package/dist/commands/actor/push-data.d.ts.map +0 -1
  32. package/dist/commands/actor/push-data.js +0 -56
  33. package/dist/commands/actor/push-data.js.map +0 -1
  34. package/dist/commands/actor/set-value.d.ts +0 -15
  35. package/dist/commands/actor/set-value.d.ts.map +0 -1
  36. package/dist/commands/actor/set-value.js +0 -76
  37. package/dist/commands/actor/set-value.js.map +0 -1
  38. package/dist/commands/call.d.ts +0 -19
  39. package/dist/commands/call.d.ts.map +0 -1
  40. package/dist/commands/call.js +0 -193
  41. package/dist/commands/call.js.map +0 -1
  42. package/dist/commands/check-version.d.ts +0 -11
  43. package/dist/commands/check-version.d.ts.map +0 -1
  44. package/dist/commands/check-version.js +0 -39
  45. package/dist/commands/check-version.js.map +0 -1
  46. package/dist/commands/create.d.ts +0 -15
  47. package/dist/commands/create.d.ts.map +0 -1
  48. package/dist/commands/create.js +0 -201
  49. package/dist/commands/create.js.map +0 -1
  50. package/dist/commands/edit-input-schema.d.ts +0 -11
  51. package/dist/commands/edit-input-schema.d.ts.map +0 -1
  52. package/dist/commands/edit-input-schema.js +0 -176
  53. package/dist/commands/edit-input-schema.js.map +0 -1
  54. package/dist/commands/info.d.ts +0 -6
  55. package/dist/commands/info.d.ts.map +0 -1
  56. package/dist/commands/info.js +0 -26
  57. package/dist/commands/info.js.map +0 -1
  58. package/dist/commands/init-wrap-scrapy.d.ts +0 -10
  59. package/dist/commands/init-wrap-scrapy.d.ts.map +0 -1
  60. package/dist/commands/init-wrap-scrapy.js +0 -41
  61. package/dist/commands/init-wrap-scrapy.js.map +0 -1
  62. package/dist/commands/init.d.ts +0 -12
  63. package/dist/commands/init.d.ts.map +0 -1
  64. package/dist/commands/init.js +0 -88
  65. package/dist/commands/init.js.map +0 -1
  66. package/dist/commands/login.d.ts +0 -10
  67. package/dist/commands/login.d.ts.map +0 -1
  68. package/dist/commands/login.js +0 -174
  69. package/dist/commands/login.js.map +0 -1
  70. package/dist/commands/logout.d.ts +0 -6
  71. package/dist/commands/logout.d.ts.map +0 -1
  72. package/dist/commands/logout.js +0 -20
  73. package/dist/commands/logout.js.map +0 -1
  74. package/dist/commands/pull.d.ts +0 -12
  75. package/dist/commands/pull.d.ts.map +0 -1
  76. package/dist/commands/pull.js +0 -148
  77. package/dist/commands/pull.js.map +0 -1
  78. package/dist/commands/push.d.ts +0 -18
  79. package/dist/commands/push.d.ts.map +0 -1
  80. package/dist/commands/push.js +0 -298
  81. package/dist/commands/push.js.map +0 -1
  82. package/dist/commands/run.d.ts +0 -16
  83. package/dist/commands/run.d.ts.map +0 -1
  84. package/dist/commands/run.js +0 -383
  85. package/dist/commands/run.js.map +0 -1
  86. package/dist/commands/secrets/add.d.ts +0 -10
  87. package/dist/commands/secrets/add.d.ts.map +0 -1
  88. package/dist/commands/secrets/add.js +0 -31
  89. package/dist/commands/secrets/add.js.map +0 -1
  90. package/dist/commands/secrets/index.d.ts +0 -6
  91. package/dist/commands/secrets/index.d.ts.map +0 -1
  92. package/dist/commands/secrets/index.js +0 -24
  93. package/dist/commands/secrets/index.js.map +0 -1
  94. package/dist/commands/secrets/rm.d.ts +0 -9
  95. package/dist/commands/secrets/rm.d.ts.map +0 -1
  96. package/dist/commands/secrets/rm.js +0 -27
  97. package/dist/commands/secrets/rm.js.map +0 -1
  98. package/dist/commands/task/index.d.ts +0 -6
  99. package/dist/commands/task/index.d.ts.map +0 -1
  100. package/dist/commands/task/index.js +0 -13
  101. package/dist/commands/task/index.js.map +0 -1
  102. package/dist/commands/task/run.d.ts +0 -16
  103. package/dist/commands/task/run.d.ts.map +0 -1
  104. package/dist/commands/task/run.js +0 -91
  105. package/dist/commands/task/run.js.map +0 -1
  106. package/dist/commands/validate-schema.d.ts +0 -10
  107. package/dist/commands/validate-schema.d.ts.map +0 -1
  108. package/dist/commands/validate-schema.js +0 -58
  109. package/dist/commands/validate-schema.js.map +0 -1
  110. package/dist/hooks/deprecations.d.ts +0 -4
  111. package/dist/hooks/deprecations.d.ts.map +0 -1
  112. package/dist/hooks/deprecations.js +0 -18
  113. package/dist/hooks/deprecations.js.map +0 -1
  114. package/dist/hooks/init.d.ts +0 -7
  115. package/dist/hooks/init.d.ts.map +0 -1
  116. package/dist/hooks/init.js +0 -17
  117. package/dist/hooks/init.js.map +0 -1
  118. package/dist/index.d.ts +0 -2
  119. package/dist/index.d.ts.map +0 -1
  120. package/dist/index.js.map +0 -1
  121. package/dist/lib/actor.d.ts +0 -27
  122. package/dist/lib/actor.d.ts.map +0 -1
  123. package/dist/lib/actor.js +0 -67
  124. package/dist/lib/actor.js.map +0 -1
  125. package/dist/lib/apify-oclif-help.d.ts +0 -15
  126. package/dist/lib/apify-oclif-help.d.ts.map +0 -1
  127. package/dist/lib/apify-oclif-help.js +0 -19
  128. package/dist/lib/apify-oclif-help.js.map +0 -1
  129. package/dist/lib/apify_command.d.ts +0 -21
  130. package/dist/lib/apify_command.d.ts.map +0 -1
  131. package/dist/lib/apify_command.js +0 -104
  132. package/dist/lib/apify_command.js.map +0 -1
  133. package/dist/lib/commands/resolve-input.d.ts +0 -5
  134. package/dist/lib/commands/resolve-input.d.ts.map +0 -1
  135. package/dist/lib/commands/resolve-input.js +0 -29
  136. package/dist/lib/commands/resolve-input.js.map +0 -1
  137. package/dist/lib/commands/run-on-cloud.d.ts +0 -20
  138. package/dist/lib/commands/run-on-cloud.d.ts.map +0 -1
  139. package/dist/lib/commands/run-on-cloud.js +0 -89
  140. package/dist/lib/commands/run-on-cloud.js.map +0 -1
  141. package/dist/lib/community.d.ts +0 -2
  142. package/dist/lib/community.d.ts.map +0 -1
  143. package/dist/lib/community.js +0 -4
  144. package/dist/lib/community.js.map +0 -1
  145. package/dist/lib/consts.d.ts +0 -54
  146. package/dist/lib/consts.d.ts.map +0 -1
  147. package/dist/lib/consts.js +0 -65
  148. package/dist/lib/consts.js.map +0 -1
  149. package/dist/lib/create-utils.d.ts +0 -8
  150. package/dist/lib/create-utils.d.ts.map +0 -1
  151. package/dist/lib/create-utils.js +0 -148
  152. package/dist/lib/create-utils.js.map +0 -1
  153. package/dist/lib/exec.d.ts +0 -3
  154. package/dist/lib/exec.d.ts.map +0 -1
  155. package/dist/lib/exec.js +0 -40
  156. package/dist/lib/exec.js.map +0 -1
  157. package/dist/lib/files.d.ts +0 -14
  158. package/dist/lib/files.d.ts.map +0 -1
  159. package/dist/lib/files.js +0 -58
  160. package/dist/lib/files.js.map +0 -1
  161. package/dist/lib/input_schema.d.ts +0 -28
  162. package/dist/lib/input_schema.d.ts.map +0 -1
  163. package/dist/lib/input_schema.js +0 -126
  164. package/dist/lib/input_schema.js.map +0 -1
  165. package/dist/lib/local_state.d.ts +0 -11
  166. package/dist/lib/local_state.d.ts.map +0 -1
  167. package/dist/lib/local_state.js +0 -27
  168. package/dist/lib/local_state.js.map +0 -1
  169. package/dist/lib/outputs.d.ts +0 -19
  170. package/dist/lib/outputs.d.ts.map +0 -1
  171. package/dist/lib/outputs.js +0 -45
  172. package/dist/lib/outputs.js.map +0 -1
  173. package/dist/lib/project_analyzer.d.ts +0 -4
  174. package/dist/lib/project_analyzer.d.ts.map +0 -1
  175. package/dist/lib/project_analyzer.js +0 -30
  176. package/dist/lib/project_analyzer.js.map +0 -1
  177. package/dist/lib/projects/CrawleeAnalyzer.d.ts +0 -4
  178. package/dist/lib/projects/CrawleeAnalyzer.d.ts.map +0 -1
  179. package/dist/lib/projects/CrawleeAnalyzer.js +0 -20
  180. package/dist/lib/projects/CrawleeAnalyzer.js.map +0 -1
  181. package/dist/lib/projects/OldApifySDKAnalyzer.d.ts +0 -4
  182. package/dist/lib/projects/OldApifySDKAnalyzer.d.ts.map +0 -1
  183. package/dist/lib/projects/OldApifySDKAnalyzer.js +0 -38
  184. package/dist/lib/projects/OldApifySDKAnalyzer.js.map +0 -1
  185. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.d.ts +0 -17
  186. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.d.ts.map +0 -1
  187. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.js +0 -87
  188. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.js.map +0 -1
  189. package/dist/lib/projects/scrapy/Spider.d.ts +0 -14
  190. package/dist/lib/projects/scrapy/Spider.d.ts.map +0 -1
  191. package/dist/lib/projects/scrapy/Spider.js +0 -33
  192. package/dist/lib/projects/scrapy/Spider.js.map +0 -1
  193. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.d.ts +0 -7
  194. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.d.ts.map +0 -1
  195. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js +0 -25
  196. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js.map +0 -1
  197. package/dist/lib/projects/scrapy/wrapScrapyProject.d.ts +0 -4
  198. package/dist/lib/projects/scrapy/wrapScrapyProject.d.ts.map +0 -1
  199. package/dist/lib/projects/scrapy/wrapScrapyProject.js +0 -109
  200. package/dist/lib/projects/scrapy/wrapScrapyProject.js.map +0 -1
  201. package/dist/lib/projects/shared.d.ts +0 -2
  202. package/dist/lib/projects/shared.d.ts.map +0 -1
  203. package/dist/lib/projects/shared.js +0 -13
  204. package/dist/lib/projects/shared.js.map +0 -1
  205. package/dist/lib/secrets.d.ts +0 -22
  206. package/dist/lib/secrets.d.ts.map +0 -1
  207. package/dist/lib/secrets.js +0 -104
  208. package/dist/lib/secrets.js.map +0 -1
  209. package/dist/lib/telemetry.d.ts +0 -21
  210. package/dist/lib/telemetry.d.ts.map +0 -1
  211. package/dist/lib/telemetry.js +0 -87
  212. package/dist/lib/telemetry.js.map +0 -1
  213. package/dist/lib/types.d.ts +0 -11
  214. package/dist/lib/types.d.ts.map +0 -1
  215. package/dist/lib/types.js +0 -2
  216. package/dist/lib/types.js.map +0 -1
  217. package/dist/lib/utils.d.ts +0 -102
  218. package/dist/lib/utils.d.ts.map +0 -1
  219. package/dist/lib/utils.js +0 -577
  220. package/dist/lib/utils.js.map +0 -1
  221. package/dist/lib/version_check.d.ts +0 -14
  222. package/dist/lib/version_check.d.ts.map +0 -1
  223. package/dist/lib/version_check.js +0 -90
  224. package/dist/lib/version_check.js.map +0 -1
  225. package/oclif.manifest.json +0 -867
package/dist/lib/utils.js DELETED
@@ -1,577 +0,0 @@
1
- import { spawnSync } from 'node:child_process';
2
- import { createWriteStream, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, writeFileSync } from 'node:fs';
3
- import { get } from 'node:https';
4
- import { dirname, join } from 'node:path';
5
- import process from 'node:process';
6
- import { finished } from 'node:stream/promises';
7
- import { ACTOR_ENV_VARS, ACTOR_JOB_TERMINAL_STATUSES, ACTOR_NAME, APIFY_ENV_VARS, KEY_VALUE_STORE_KEYS, LOCAL_ACTOR_ENV_VARS, LOCAL_STORAGE_SUBDIRS, SOURCE_FILE_FORMATS, } from '@apify/consts';
8
- import AdmZip from 'adm-zip';
9
- import _Ajv from 'ajv';
10
- import { ApifyClient } from 'apify-client';
11
- import archiver from 'archiver';
12
- import { AxiosHeaders } from 'axios';
13
- import escapeStringRegexp from 'escape-string-regexp';
14
- import { globby } from 'globby';
15
- import inquirer from 'inquirer';
16
- import { getEncoding } from 'istextorbinary';
17
- import { loadJsonFile, loadJsonFileSync } from 'load-json-file';
18
- import { Mime } from 'mime';
19
- import otherMimes from 'mime/types/other.js';
20
- import standardMimes from 'mime/types/standard.js';
21
- import { gte, minVersion, satisfies } from 'semver';
22
- import _ from 'underscore';
23
- import { writeJsonFile, writeJsonFileSync } from 'write-json-file';
24
- import { ACTOR_SPECIFICATION_VERSION, APIFY_CLIENT_DEFAULT_HEADERS, AUTH_FILE_PATH, DEFAULT_LOCAL_STORAGE_DIR, DEPRECATED_LOCAL_CONFIG_NAME, GLOBAL_CONFIGS_FOLDER, INPUT_FILE_REG_EXP, LANGUAGE, LOCAL_CONFIG_PATH, MINIMUM_SUPPORTED_PYTHON_VERSION, PROJECT_TYPES, SUPPORTED_NODEJS_VERSION, } from './consts.js';
25
- import { deleteFile, ensureFolderExistsSync, rimrafPromised } from './files.js';
26
- import { info } from './outputs.js';
27
- import { ProjectAnalyzer } from './project_analyzer.js';
28
- // Export AJV properly: https://github.com/ajv-validator/ajv/issues/2132
29
- // Welcome to the state of JavaScript/TypeScript and CJS/ESM interop.
30
- export const Ajv = _Ajv;
31
- export const httpsGet = async (url) => {
32
- return new Promise((resolve, reject) => {
33
- get(url, (response) => {
34
- // Handle redirects
35
- if (response.statusCode === 301 || response.statusCode === 302) {
36
- resolve(httpsGet(response.headers.location));
37
- // Destroy the response to close the HTTP connection, otherwise this hangs for a long time with Node 19+ (due to HTTP keep-alive).
38
- response.destroy();
39
- }
40
- else {
41
- resolve(response);
42
- }
43
- }).on('error', reject);
44
- });
45
- };
46
- // Properties from apify.json file that will me migrated to Actor specs in .actor/actor.json
47
- const MIGRATED_APIFY_JSON_PROPERTIES = ['name', 'version', 'buildTag'];
48
- export const getLocalStorageDir = () => {
49
- const envVar = APIFY_ENV_VARS.LOCAL_STORAGE_DIR;
50
- return process.env[envVar] || process.env.CRAWLEE_STORAGE_DIR || DEFAULT_LOCAL_STORAGE_DIR;
51
- };
52
- export const getLocalKeyValueStorePath = (storeId) => {
53
- const envVar = ACTOR_ENV_VARS.DEFAULT_KEY_VALUE_STORE_ID;
54
- const storeDir = storeId || process.env[envVar] || LOCAL_ACTOR_ENV_VARS[envVar];
55
- return join(getLocalStorageDir(), LOCAL_STORAGE_SUBDIRS.keyValueStores, storeDir);
56
- };
57
- export const getLocalDatasetPath = (storeId) => {
58
- const envVar = ACTOR_ENV_VARS.DEFAULT_DATASET_ID;
59
- const storeDir = storeId || process.env[envVar] || LOCAL_ACTOR_ENV_VARS[envVar];
60
- return join(getLocalStorageDir(), LOCAL_STORAGE_SUBDIRS.datasets, storeDir);
61
- };
62
- export const getLocalRequestQueuePath = (storeId) => {
63
- const envVar = ACTOR_ENV_VARS.DEFAULT_REQUEST_QUEUE_ID;
64
- const storeDir = storeId || process.env[envVar] || LOCAL_ACTOR_ENV_VARS[envVar];
65
- return join(getLocalStorageDir(), LOCAL_STORAGE_SUBDIRS.requestQueues, storeDir);
66
- };
67
- /**
68
- * Returns object from auth file or empty object.
69
- */
70
- export const getLocalUserInfo = async () => {
71
- let result = {};
72
- try {
73
- result = await loadJsonFile(AUTH_FILE_PATH());
74
- }
75
- catch {
76
- return {};
77
- }
78
- if (!result.username && !result.id) {
79
- throw new Error('Corrupted local user info was found. Please run "apify login" to fix it.');
80
- }
81
- return result;
82
- };
83
- /**
84
- * Gets instance of ApifyClient for user otherwise throws error
85
- */
86
- export const getLoggedClientOrThrow = async () => {
87
- const loggedClient = await getLoggedClient();
88
- if (!loggedClient) {
89
- throw new Error('You are not logged in with your Apify account. Call "apify login" to fix that.');
90
- }
91
- return loggedClient;
92
- };
93
- const getTokenWithAuthFileFallback = (existingToken) => {
94
- if (!existingToken && existsSync(GLOBAL_CONFIGS_FOLDER()) && existsSync(AUTH_FILE_PATH())) {
95
- return loadJsonFileSync(AUTH_FILE_PATH()).token;
96
- }
97
- return existingToken;
98
- };
99
- /**
100
- * Returns options for ApifyClient
101
- */
102
- export const getApifyClientOptions = (token, apiBaseUrl) => {
103
- token = getTokenWithAuthFileFallback(token);
104
- return {
105
- token,
106
- baseUrl: apiBaseUrl || process.env.APIFY_CLIENT_BASE_URL,
107
- requestInterceptors: [(config) => {
108
- // @ts-expect-error CLI is ESM, client is CJS, the types "differ"
109
- config.headers ?? (config.headers = new AxiosHeaders());
110
- for (const [key, value] of Object.entries(APIFY_CLIENT_DEFAULT_HEADERS)) {
111
- config.headers[key] = value;
112
- }
113
- return config;
114
- }],
115
- };
116
- };
117
- /**
118
- * Gets instance of ApifyClient for token or for params from global auth file.
119
- * NOTE: It refreshes global auth file each run
120
- * @param [token]
121
- */
122
- export const getLoggedClient = async (token, apiBaseUrl) => {
123
- token = getTokenWithAuthFileFallback(token);
124
- const apifyClient = new ApifyClient(getApifyClientOptions(token, apiBaseUrl));
125
- let userInfo;
126
- try {
127
- userInfo = await apifyClient.user('me').get();
128
- }
129
- catch (err) {
130
- return null;
131
- }
132
- // Always refresh Auth file
133
- ensureApifyDirectory(AUTH_FILE_PATH());
134
- await writeJsonFile(AUTH_FILE_PATH(), { token: apifyClient.token, ...userInfo });
135
- return apifyClient;
136
- };
137
- const getLocalConfigPath = (cwd) => join(cwd, LOCAL_CONFIG_PATH);
138
- /**
139
- * @deprecated Use getLocalConfigPath
140
- */
141
- const getDeprecatedLocalConfigPath = (cwd) => join(cwd, DEPRECATED_LOCAL_CONFIG_NAME);
142
- export const getJsonFileContent = (filePath) => {
143
- if (!existsSync(filePath)) {
144
- return;
145
- }
146
- return loadJsonFileSync(filePath);
147
- };
148
- export const getLocalConfig = (cwd) => getJsonFileContent(getLocalConfigPath(cwd));
149
- /**
150
- * @deprecated Use getLocalConfig
151
- */
152
- const getDeprecatedLocalConfig = (cwd) => getJsonFileContent(getDeprecatedLocalConfigPath(cwd));
153
- export const getLocalConfigOrThrow = async (cwd) => {
154
- let localConfig = getLocalConfig(cwd);
155
- let deprecatedLocalConfig = getDeprecatedLocalConfig(cwd);
156
- if (localConfig && deprecatedLocalConfig) {
157
- const answer = await inquirer.prompt([{
158
- name: 'isConfirm',
159
- type: 'confirm',
160
- message: `The new version of Apify CLI uses the "${LOCAL_CONFIG_PATH}" instead of the "apify.json" file. Since we have found both files in your Actor directory, "apify.json" will be renamed to "apify.json.deprecated". Going forward, all commands will use "${LOCAL_CONFIG_PATH}". You can read about the differences between the old and the new config at https://github.com/apify/apify-cli/blob/master/MIGRATIONS.md. Do you want to continue?`,
161
- }]);
162
- if (!answer.isConfirm) {
163
- throw new Error('Command can not run with old "apify.json" file present in your Actor directory., Please, either rename or remove it.');
164
- }
165
- try {
166
- renameSync(getDeprecatedLocalConfigPath(cwd), `${getDeprecatedLocalConfigPath(cwd)}.deprecated`);
167
- // eslint-disable-next-line max-len
168
- info({ message: `The "apify.json" file has been renamed to "apify.json.deprecated". The deprecated file is no longer used by the CLI or Apify Console. If you do not need it for some specific purpose, it can be safely deleted.` });
169
- }
170
- catch (e) {
171
- throw new Error('Failed to rename deprecated "apify.json".');
172
- }
173
- }
174
- if (!localConfig && !deprecatedLocalConfig) {
175
- return {};
176
- }
177
- // If apify.json exists migrate it to .actor/actor.json
178
- if (!localConfig && deprecatedLocalConfig) {
179
- const answer = await inquirer.prompt([{
180
- name: 'isConfirm',
181
- type: 'confirm',
182
- // eslint-disable-next-line max-len
183
- message: `The new version of Apify CLI uses the "${LOCAL_CONFIG_PATH}" instead of the "apify.json" file. Your "apify.json" file will be automatically updated to the new format under "${LOCAL_CONFIG_PATH}". The original file will be renamed by adding the ".deprecated" suffix. Do you want to continue?`,
184
- }]);
185
- if (!answer.isConfirm) {
186
- throw new Error('Command can not run with old apify.json structure. Either let the CLI auto-update it or follow the guide on https://github.com/apify/apify-cli/blob/master/MIGRATIONS.md and update it manually.');
187
- }
188
- try {
189
- // Check if apify.json contains old deprecated structure. If so, updates it.
190
- if (_.isObject(deprecatedLocalConfig.version)) {
191
- deprecatedLocalConfig = updateLocalConfigStructure(deprecatedLocalConfig);
192
- }
193
- localConfig = {
194
- actorSpecification: ACTOR_SPECIFICATION_VERSION,
195
- environmentVariables: deprecatedLocalConfig?.env || undefined,
196
- ..._.pick(deprecatedLocalConfig, MIGRATED_APIFY_JSON_PROPERTIES),
197
- };
198
- await writeJsonFile(getLocalConfigPath(cwd), localConfig);
199
- renameSync(getDeprecatedLocalConfigPath(cwd), `${getDeprecatedLocalConfigPath(cwd)}.deprecated`);
200
- // eslint-disable-next-line max-len
201
- info({ message: `The "apify.json" file has been migrated to "${LOCAL_CONFIG_PATH}" and the original file renamed to "apify.json.deprecated". The deprecated file is no longer used by the CLI or Apify Console. If you do not need it for some specific purpose, it can be safely deleted. Do not forget to commit the new file to your Git repository.` });
202
- }
203
- catch (e) {
204
- throw new Error(`Can not update "${LOCAL_CONFIG_PATH}" structure. Follow guide on https://github.com/apify/apify-cli/blob/master/MIGRATIONS.md and update it manually.`);
205
- }
206
- }
207
- return localConfig;
208
- };
209
- export const setLocalConfig = async (localConfig, actDir) => {
210
- actDir = actDir || process.cwd();
211
- writeJsonFileSync(join(actDir, LOCAL_CONFIG_PATH), localConfig);
212
- };
213
- const GITIGNORE_REQUIRED_CONTENTS = [getLocalStorageDir(), 'node_modules', '.venv'];
214
- export const setLocalEnv = async (actDir) => {
215
- // Create folders for emulation Apify stores
216
- const keyValueStorePath = getLocalKeyValueStorePath();
217
- ensureFolderExistsSync(actDir, getLocalDatasetPath());
218
- ensureFolderExistsSync(actDir, getLocalRequestQueuePath());
219
- ensureFolderExistsSync(actDir, keyValueStorePath);
220
- // Create or update gitignore
221
- const gitignorePath = join(actDir, '.gitignore');
222
- let gitignoreContents = '';
223
- if (existsSync(gitignorePath)) {
224
- gitignoreContents = readFileSync(gitignorePath, { encoding: 'utf-8' });
225
- }
226
- const gitignoreAdditions = [];
227
- for (const gitignoreRequirement of GITIGNORE_REQUIRED_CONTENTS) {
228
- if (!RegExp(`^${escapeStringRegexp(gitignoreRequirement)}$`, 'mg').test(gitignoreContents)) {
229
- gitignoreAdditions.push(gitignoreRequirement);
230
- }
231
- }
232
- if (gitignoreAdditions.length > 0) {
233
- if (gitignoreContents.length > 0) {
234
- gitignoreAdditions.unshift('# Added by Apify CLI');
235
- writeFileSync(gitignorePath, `\n${gitignoreAdditions.join('\n')}\n`, { flag: 'a' });
236
- }
237
- else {
238
- writeFileSync(gitignorePath, `${gitignoreAdditions.join('\n')}\n`, { flag: 'w' });
239
- }
240
- }
241
- };
242
- /**
243
- * Convert Object with kebab-case keys to camelCased keys
244
- */
245
- export const argsToCamelCase = (object) => {
246
- const camelCasedObject = {};
247
- Object.keys(object).forEach((arg) => {
248
- const camelCasedArg = arg.replace(/-(.)/g, ($1) => $1.toUpperCase()).replace(/-/g, '');
249
- // @ts-expect-error This is very hard to make stricter than it already will be at the top level
250
- camelCasedObject[camelCasedArg] = object[arg];
251
- });
252
- return camelCasedObject;
253
- };
254
- const mime = new Mime(standardMimes, otherMimes).define({
255
- // .tgz files don't have a MIME type defined, this fixes it
256
- 'application/gzip': ['tgz'],
257
- // Default mime-type for .ts(x) files is video/mp2t. But in our usecases they're almost always TypeScript, which we want to treat as text
258
- 'text/typescript': ['ts', 'tsx', 'mts'],
259
- }, true);
260
- // Detect whether file is binary from its MIME type, or if not available, contents
261
- const getSourceFileFormat = (filePath, fileContent) => {
262
- // Try to detect the MIME type from the file path
263
- const contentType = mime.getType(filePath);
264
- if (contentType) {
265
- const format = (contentType.startsWith('text/')
266
- || contentType.includes('javascript')
267
- || contentType.includes('json')
268
- || contentType.includes('xml')
269
- || contentType.includes('application/node') // .cjs files
270
- || contentType.includes('application/toml') // for example pyproject.toml files
271
- || contentType.includes('application/x-httpd-php') // .php files
272
- )
273
- ? SOURCE_FILE_FORMATS.TEXT
274
- : SOURCE_FILE_FORMATS.BASE64;
275
- return format;
276
- }
277
- // If the MIME type detection failed, try to detect the file encoding from the file content
278
- const encoding = getEncoding(fileContent);
279
- return encoding === 'binary' ? SOURCE_FILE_FORMATS.BASE64 : SOURCE_FILE_FORMATS.TEXT;
280
- };
281
- export const createSourceFiles = async (paths, cwd) => {
282
- return paths.map((filePath) => {
283
- const file = readFileSync(join(cwd, filePath));
284
- const format = getSourceFileFormat(filePath, file);
285
- return {
286
- name: filePath,
287
- format,
288
- content: format === SOURCE_FILE_FORMATS.TEXT
289
- ? file.toString('utf8')
290
- : file.toString('base64'),
291
- };
292
- });
293
- };
294
- /**
295
- * Get Actor local files, omit files defined in .gitignore and .git folder
296
- * All dot files(.file) and folders(.folder/) are included.
297
- */
298
- export const getActorLocalFilePaths = async (cwd) => globby(['*', '**/**'], {
299
- ignore: ['.git/**', 'apify_storage', 'node_modules', 'storage', 'crawlee_storage'],
300
- gitignore: true,
301
- dot: true,
302
- cwd,
303
- });
304
- /**
305
- * Create zip file with all Actor files specified with pathsToZip
306
- */
307
- export const createActZip = async (zipName, pathsToZip, cwd) => {
308
- // NOTE: There can be a zip from a previous unfinished operation.
309
- if (existsSync(zipName)) {
310
- await deleteFile(zipName);
311
- }
312
- const writeStream = createWriteStream(zipName);
313
- const archive = archiver('zip');
314
- archive.pipe(writeStream);
315
- pathsToZip.forEach((globPath) => archive.glob(globPath, { cwd }));
316
- await archive.finalize();
317
- };
318
- /**
319
- * Get Actor input from local store
320
- */
321
- export const getLocalInput = (cwd) => {
322
- const defaultLocalStorePath = getLocalKeyValueStorePath();
323
- const folderExists = existsSync(join(cwd, defaultLocalStorePath));
324
- if (!folderExists)
325
- return;
326
- const files = readdirSync(join(cwd, defaultLocalStorePath));
327
- const inputName = files.find((file) => !!file.match(INPUT_FILE_REG_EXP));
328
- // No input file
329
- if (!inputName)
330
- return;
331
- const input = readFileSync(join(cwd, defaultLocalStorePath, inputName));
332
- const contentType = mime.getType(inputName);
333
- return { body: input, contentType };
334
- };
335
- export const purgeDefaultQueue = async () => {
336
- const defaultQueuesPath = getLocalRequestQueuePath();
337
- if (existsSync(getLocalStorageDir()) && existsSync(defaultQueuesPath)) {
338
- await rimrafPromised(defaultQueuesPath);
339
- }
340
- };
341
- export const purgeDefaultDataset = async () => {
342
- const defaultDatasetPath = getLocalDatasetPath();
343
- if (existsSync(getLocalStorageDir()) && existsSync(defaultDatasetPath)) {
344
- await rimrafPromised(defaultDatasetPath);
345
- }
346
- };
347
- export const purgeDefaultKeyValueStore = async () => {
348
- const defaultKeyValueStorePath = getLocalKeyValueStorePath();
349
- if (!existsSync(getLocalStorageDir()) || !existsSync(defaultKeyValueStorePath)) {
350
- return;
351
- }
352
- const filesToDelete = readdirSync(defaultKeyValueStorePath);
353
- const deletePromises = [];
354
- filesToDelete.forEach((file) => {
355
- if (!file.match(INPUT_FILE_REG_EXP)) {
356
- deletePromises.push(deleteFile(join(defaultKeyValueStorePath, file)));
357
- }
358
- });
359
- await Promise.all(deletePromises);
360
- };
361
- export const outputJobLog = async (job, timeout) => {
362
- const { id: logId, status } = job;
363
- const apifyClient = new ApifyClient({ baseUrl: process.env.APIFY_CLIENT_BASE_URL });
364
- // In case job was already done just output log
365
- if (ACTOR_JOB_TERMINAL_STATUSES.includes(status)) {
366
- if (process.env.APIFY_NO_LOGS_IN_TESTS) {
367
- return;
368
- }
369
- const log = await apifyClient.log(logId).get();
370
- process.stderr.write(log);
371
- return;
372
- }
373
- // In other case stream it to stderr
374
- // eslint-disable-next-line no-async-promise-executor
375
- return new Promise(async (resolve) => {
376
- const stream = await apifyClient.log(logId).stream();
377
- if (!stream) {
378
- resolve('no-logs');
379
- return;
380
- }
381
- let nodeTimeout = null;
382
- stream.on('data', (chunk) => {
383
- // In tests, writing to process.stderr directly messes with vitest's output
384
- // With that said, we still NEED to wait for this stream to end, as otherwise tests become flaky.
385
- if (process.env.APIFY_NO_LOGS_IN_TESTS) {
386
- return;
387
- }
388
- process.stderr.write(chunk.toString());
389
- });
390
- stream.once('end', () => {
391
- resolve('finished');
392
- if (nodeTimeout) {
393
- clearTimeout(nodeTimeout);
394
- }
395
- });
396
- if (timeout) {
397
- nodeTimeout = setTimeout(() => {
398
- stream.destroy();
399
- resolve('timeouts');
400
- }, timeout);
401
- }
402
- });
403
- };
404
- /**
405
- * Returns npm command for current os
406
- * NOTE: For window we have to returns npm.cmd instead of npm, otherwise it doesn't work
407
- */
408
- export const getNpmCmd = () => {
409
- return /^win/.test(process.platform) ? 'npm.cmd' : 'npm';
410
- };
411
- /**
412
- * Returns true if apify storage is empty (expect INPUT.*)
413
- */
414
- export const checkIfStorageIsEmpty = async () => {
415
- const filesWithoutInput = await globby([
416
- `${getLocalStorageDir()}/**`,
417
- // Omit INPUT.* file
418
- `!${getLocalKeyValueStorePath()}/${KEY_VALUE_STORE_KEYS.INPUT}.*`,
419
- // Omit INPUT_CLI-* files
420
- `!${getLocalKeyValueStorePath()}/${KEY_VALUE_STORE_KEYS.INPUT}_CLI-*`,
421
- ]);
422
- return filesWithoutInput.length === 0;
423
- };
424
- /**
425
- * Migration for deprecated structure of apify.json to latest.
426
- */
427
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
428
- const updateLocalConfigStructure = (localConfig) => {
429
- const updatedLocalConfig = {
430
- name: localConfig.name,
431
- template: localConfig.template,
432
- version: localConfig.version.versionNumber,
433
- buildTag: localConfig.version.buildTag,
434
- env: null,
435
- };
436
- if (localConfig.version.envVars && localConfig.version.envVars.length) {
437
- const env = {};
438
- localConfig.version.envVars.forEach((envVar) => {
439
- if (envVar.name && envVar.value)
440
- env[envVar.name] = envVar.value;
441
- });
442
- updatedLocalConfig.env = env;
443
- }
444
- return updatedLocalConfig;
445
- };
446
- /**
447
- * Validates Actor name, if finds issue throws error.
448
- * @param actorName
449
- */
450
- export const validateActorName = (actorName) => {
451
- if (!ACTOR_NAME.REGEX.test(actorName)) {
452
- throw new Error('The Actor name must be a DNS hostname-friendly string (e.g. my-newest-actor).');
453
- }
454
- if (actorName.length < ACTOR_NAME.MIN_LENGTH) {
455
- throw new Error('The Actor name must be at least 3 characters long.');
456
- }
457
- if (actorName.length > ACTOR_NAME.MAX_LENGTH) {
458
- throw new Error('The Actor name must be a maximum of 30 characters long.');
459
- }
460
- };
461
- export const sanitizeActorName = (actorName) => {
462
- let sanitizedName = actorName
463
- .replaceAll(/[^a-zA-Z0-9-]/g, '-');
464
- if (sanitizedName.length < ACTOR_NAME.MIN_LENGTH) {
465
- sanitizedName = `${sanitizedName}-apify-actor`;
466
- }
467
- sanitizedName = sanitizedName.replaceAll(/^-+/g, '').replaceAll(/-+$/g, '');
468
- return sanitizedName.slice(0, ACTOR_NAME.MAX_LENGTH);
469
- };
470
- export const getPythonCommand = (directory) => {
471
- const pythonVenvPath = /^win/.test(process.platform)
472
- ? 'Scripts/python.exe'
473
- : 'bin/python3';
474
- let fullPythonVenvPath;
475
- if (process.env.VIRTUAL_ENV) {
476
- fullPythonVenvPath = join(process.env.VIRTUAL_ENV, pythonVenvPath);
477
- }
478
- else {
479
- fullPythonVenvPath = join(directory, '.venv', pythonVenvPath);
480
- }
481
- if (existsSync(fullPythonVenvPath)) {
482
- return fullPythonVenvPath;
483
- }
484
- return /^win/.test(process.platform)
485
- ? 'python'
486
- : 'python3';
487
- };
488
- const spawnOptions = { shell: true, windowsHide: true };
489
- export const detectPythonVersion = (directory) => {
490
- const pythonCommand = getPythonCommand(directory);
491
- try {
492
- const spawnResult = spawnSync(pythonCommand, ['-c', '"import platform; print(platform.python_version())"'], {
493
- ...spawnOptions,
494
- encoding: 'utf-8',
495
- });
496
- if (!spawnResult.error && spawnResult.stdout) {
497
- return spawnResult.stdout.trim();
498
- }
499
- return undefined;
500
- }
501
- catch {
502
- return undefined;
503
- }
504
- };
505
- export const isPythonVersionSupported = (installedPythonVersion) => {
506
- return satisfies(installedPythonVersion, `^${MINIMUM_SUPPORTED_PYTHON_VERSION}`);
507
- };
508
- export const detectNodeVersion = () => {
509
- try {
510
- const spawnResult = spawnSync('node', ['--version'], {
511
- ...spawnOptions,
512
- encoding: 'utf-8',
513
- });
514
- if (!spawnResult.error && spawnResult.stdout) {
515
- return spawnResult.stdout.trim().replace(/^v/, '');
516
- }
517
- return undefined;
518
- }
519
- catch {
520
- return undefined;
521
- }
522
- };
523
- export const isNodeVersionSupported = (installedNodeVersion) => {
524
- // SUPPORTED_NODEJS_VERSION can be a version range,
525
- // we need to get the minimum supported version from that range to be able to compare them
526
- const minimumSupportedNodeVersion = minVersion(SUPPORTED_NODEJS_VERSION);
527
- return gte(installedNodeVersion, minimumSupportedNodeVersion);
528
- };
529
- export const detectNpmVersion = () => {
530
- const npmCommand = getNpmCmd();
531
- try {
532
- const spawnResult = spawnSync(npmCommand, ['--version'], {
533
- ...spawnOptions,
534
- encoding: 'utf-8',
535
- });
536
- if (!spawnResult.error && spawnResult.stdout) {
537
- return spawnResult.stdout.trim().replace(/^v/, '');
538
- }
539
- return undefined;
540
- }
541
- catch {
542
- return undefined;
543
- }
544
- };
545
- export const detectLocalActorLanguage = (cwd) => {
546
- const isActorInNode = existsSync(join(cwd, 'package.json'));
547
- const isActorInPython = existsSync(join(cwd, 'src/__main__.py')) || ProjectAnalyzer.getProjectType(cwd) === PROJECT_TYPES.SCRAPY;
548
- const result = {};
549
- if (isActorInNode) {
550
- result.language = LANGUAGE.NODEJS;
551
- result.languageVersion = detectNodeVersion();
552
- }
553
- else if (isActorInPython) {
554
- result.language = LANGUAGE.PYTHON;
555
- result.languageVersion = detectPythonVersion(cwd);
556
- }
557
- else {
558
- result.language = LANGUAGE.UNKNOWN;
559
- }
560
- return result;
561
- };
562
- export const downloadAndUnzip = async ({ url, pathTo }) => {
563
- const zipStream = await httpsGet(url);
564
- const chunks = [];
565
- zipStream.on('data', (chunk) => chunks.push(chunk));
566
- await finished(zipStream);
567
- const zip = new AdmZip(Buffer.concat(chunks));
568
- zip.extractAllTo(pathTo, true);
569
- };
570
- /**
571
- * Ensures the Apify directory exists, as well as nested folders (for tests)
572
- */
573
- export const ensureApifyDirectory = (file) => {
574
- const path = dirname(file);
575
- mkdirSync(path, { recursive: true });
576
- };
577
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export declare const SKIP_UPDATE_CHECK: boolean | "" | undefined;
2
- /**
3
- * Detect through which package manager the Apify CLI was installed.
4
- * The installation type of the CLI.
5
- */
6
- export declare const detectInstallationType: () => "HOMEBREW" | "NPM";
7
- export declare const getLatestNpmVersion: () => Promise<string>;
8
- /**
9
- * Logs warning if client local package is not in the latest version
10
- * Check'll be skip if user is offline
11
- * Check results will be cached for 24 hours
12
- */
13
- export declare const checkLatestVersion: (enforceUpdate?: boolean) => Promise<void>;
14
- //# sourceMappingURL=version_check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version_check.d.ts","sourceRoot":"","sources":["../../src/lib/version_check.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB,0BAG7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,0BAkBlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,uBAI/B,CAAC;AAyBF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,4CA0B9B,CAAC"}