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
@@ -1,90 +0,0 @@
1
- import { realpathSync } from 'node:fs';
2
- import axios from 'axios';
3
- import chalk from 'chalk';
4
- import { gt } from 'semver';
5
- import { CHECK_VERSION_EVERY_MILLIS, CURRENT_APIFY_CLI_VERSION } from './consts.js';
6
- import { extendLocalState, getLocalState } from './local_state.js';
7
- import { info, simpleLog, warning } from './outputs.js';
8
- const INSTALLATION_TYPE = {
9
- HOMEBREW: 'HOMEBREW',
10
- NPM: 'NPM',
11
- };
12
- const UPDATE_COMMAND = {
13
- [INSTALLATION_TYPE.HOMEBREW]: 'brew update && brew upgrade apify-cli',
14
- [INSTALLATION_TYPE.NPM]: 'npm install -g apify-cli@latest',
15
- };
16
- export const SKIP_UPDATE_CHECK = (process.env.APIFY_CLI_SKIP_UPDATE_CHECK
17
- && !['0', 'false'].includes(process.env.APIFY_CLI_SKIP_UPDATE_CHECK.toLowerCase()));
18
- /**
19
- * Detect through which package manager the Apify CLI was installed.
20
- * The installation type of the CLI.
21
- */
22
- export const detectInstallationType = () => {
23
- // The path of the alias to the `src/bin/run` file is in process.argv[1]
24
- const commandPath = process.argv[1];
25
- if (commandPath) {
26
- // If the real command path is like `/opt/homebrew/Cellar/apify-cli/...` or `/home/linuxbrew/.linuxbrew/Cellar/apify-cli/...`,
27
- // then the CLI is installed via Homebrew
28
- if (process.platform === 'linux' || process.platform === 'darwin') {
29
- const realCommandPath = realpathSync(commandPath);
30
- if (realCommandPath.includes('homebrew/Cellar') || realCommandPath.includes('linuxbrew/Cellar')) {
31
- return INSTALLATION_TYPE.HOMEBREW;
32
- }
33
- }
34
- // Add more install types here once we have the CLI in other package managers
35
- }
36
- // If we didn't detect otherwise, assume the CLI was installed through NPM
37
- return INSTALLATION_TYPE.NPM;
38
- };
39
- export const getLatestNpmVersion = async () => {
40
- const response = await axios({ url: 'https://registry.npmjs.org/apify-cli/latest' });
41
- const latestVersion = response.data.version;
42
- return latestVersion;
43
- };
44
- /**
45
- * Fetches the latest NPM version of Apify CLI and caches it locally.
46
- */
47
- const getAndCacheLatestNpmVersion = async () => {
48
- try {
49
- info({ message: 'Making sure that Apify CLI is up to date...' });
50
- const latestNpmVersion = await getLatestNpmVersion();
51
- extendLocalState({
52
- latestNpmVersion,
53
- latestNpmVersionCheckedAt: new Date(),
54
- });
55
- return latestNpmVersion;
56
- }
57
- catch (err) {
58
- console.error(err);
59
- warning({ message: 'Cannot fetch the latest Apify CLI version from NPM, using the cached version instead.' });
60
- return undefined;
61
- }
62
- };
63
- /**
64
- * Logs warning if client local package is not in the latest version
65
- * Check'll be skip if user is offline
66
- * Check results will be cached for 24 hours
67
- */
68
- export const checkLatestVersion = async (enforceUpdate = false) => {
69
- const { latestNpmVersion: cachedLatestNpmVersion, latestNpmVersionCheckedAt, } = getLocalState();
70
- const isCheckOutdated = !latestNpmVersionCheckedAt || Date.now() - new Date(latestNpmVersionCheckedAt).getTime() > CHECK_VERSION_EVERY_MILLIS;
71
- const isOnline = await import('is-online');
72
- // If check is outdated and we are online then update the current NPM version.
73
- const shouldGetCurrentVersion = enforceUpdate || (isCheckOutdated && await isOnline.default({ timeout: 500 }));
74
- const latestNpmVersion = shouldGetCurrentVersion
75
- ? await getAndCacheLatestNpmVersion()
76
- : cachedLatestNpmVersion;
77
- if (latestNpmVersion && gt(latestNpmVersion, CURRENT_APIFY_CLI_VERSION)) {
78
- const installationType = detectInstallationType();
79
- const updateCommand = `' ${UPDATE_COMMAND[installationType]} '`;
80
- simpleLog({ message: '' });
81
- warning({ message: 'You are using an old version of Apify CLI. We strongly recommend you always use the latest available version.' });
82
- simpleLog({ message: ` ↪ Run ${chalk.bgWhite(chalk.black(updateCommand))} to update! 👍 \n` });
83
- }
84
- else if (shouldGetCurrentVersion) {
85
- // In this case the version was refreshed from the NPM which took a while and "Info: Making sure that Apify ..." was printed
86
- // so also print the state.
87
- info({ message: 'Apify CLI is up to date 👍 \n' });
88
- }
89
- };
90
- //# sourceMappingURL=version_check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version_check.js","sourceRoot":"","sources":["../../src/lib/version_check.ts"],"names":[],"mappings":"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"}