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,109 +0,0 @@
1
- import { appendFileSync, copyFileSync, createWriteStream, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
2
- import { basename, join, relative, sep } from 'node:path';
3
- import { fetchManifest, wrapperManifestUrl } from '@apify/actor-templates';
4
- import rootWalk from '@root/walk';
5
- import ConfigParser from 'configparser';
6
- import Handlebars from 'handlebars';
7
- import inquirer from 'inquirer';
8
- import { ScrapyProjectAnalyzer } from './ScrapyProjectAnalyzer.js';
9
- import { info, success } from '../../outputs.js';
10
- import { downloadAndUnzip, sanitizeActorName } from '../../utils.js';
11
- /**
12
- * Files that should be concatenated instead of copied (and overwritten).
13
- */
14
- const concatenableFiles = ['.dockerignore', '.gitignore'];
15
- async function merge(fromPath, toPath, options = { bindings: {} }) {
16
- await rootWalk.walk(fromPath, async (_err, pathname, dirent) => {
17
- if (pathname === fromPath)
18
- return;
19
- const relPath = relative(fromPath, pathname);
20
- const toRelPath = relPath.split(sep).map((part) => {
21
- if (part.startsWith('{') && part.endsWith('}')) {
22
- part = part.replace('{', '').replace('}', '');
23
- const binding = options.bindings[part];
24
- if (!binding) {
25
- throw new Error(`Binding for ${part} not found.`);
26
- }
27
- return binding;
28
- }
29
- return part;
30
- }).join(sep);
31
- const targetPath = join(toPath, toRelPath);
32
- if (dirent.isDirectory()) {
33
- if (!existsSync(targetPath)) {
34
- mkdirSync(targetPath);
35
- }
36
- return merge(pathname, targetPath);
37
- }
38
- if (relPath.includes('.template')) {
39
- writeFileSync(join(toPath, toRelPath.replace('.template', '')), Handlebars.compile(readFileSync(pathname, 'utf8'))(options.bindings));
40
- }
41
- else if (existsSync(targetPath) && concatenableFiles.includes(basename(toRelPath))) {
42
- appendFileSync(targetPath, readFileSync(pathname));
43
- }
44
- else {
45
- copyFileSync(pathname, targetPath);
46
- }
47
- });
48
- }
49
- export async function wrapScrapyProject({ projectPath }) {
50
- if (!projectPath) {
51
- projectPath = '.';
52
- }
53
- const analyzer = new ScrapyProjectAnalyzer(projectPath);
54
- if (analyzer.configuration.hasSection('apify')) {
55
- throw new Error(`The Scrapy project configuration already contains Apify settings. Are you sure you didn't already wrap this project?`);
56
- }
57
- await analyzer.init();
58
- const { spiderIndex } = await inquirer.prompt([
59
- {
60
- type: 'list',
61
- name: 'spiderIndex',
62
- message: 'Pick the Scrapy spider you want to wrap:',
63
- choices: analyzer.getAvailableSpiders().map((spider, i) => ({
64
- name: `${spider.class_name} (${spider.pathname})`,
65
- value: i,
66
- })),
67
- },
68
- ]);
69
- function translatePathToRelativeModuleName(pathname) {
70
- const relPath = relative(projectPath, pathname);
71
- return `.${relPath.split(sep).slice(1).join('.').replace('.py', '')}`;
72
- }
73
- const templateBindings = {
74
- botName: sanitizeActorName(analyzer.settings.BOT_NAME),
75
- scrapy_settings_module: analyzer.configuration.get('settings', 'default'),
76
- apify_module_path: `${analyzer.settings.BOT_NAME}.apify`,
77
- spider_class_name: analyzer.getAvailableSpiders()[spiderIndex].class_name,
78
- spider_module_name: `${translatePathToRelativeModuleName(analyzer.getAvailableSpiders()[spiderIndex].pathname)}`,
79
- projectFolder: analyzer.settings.BOT_NAME,
80
- };
81
- const manifest = await fetchManifest(wrapperManifestUrl);
82
- info({ message: 'Downloading the latest Scrapy wrapper template...' });
83
- const { archiveUrl } = manifest.templates.find(({ id }) => id === 'python-scrapy');
84
- const templatePath = join(__dirname, 'templates', 'python-scrapy');
85
- if (existsSync(templatePath))
86
- rmSync(templatePath, { recursive: true });
87
- await downloadAndUnzip({
88
- url: archiveUrl,
89
- pathTo: templatePath,
90
- });
91
- info({ message: 'Wrapping the Scrapy project...' });
92
- await merge(join(__dirname, 'templates', 'python-scrapy'), projectPath, {
93
- bindings: templateBindings,
94
- });
95
- const apifyConf = new ConfigParser();
96
- apifyConf.addSection('apify');
97
- apifyConf.set('apify', 'mainpy_location', analyzer.settings.BOT_NAME);
98
- const s = createWriteStream(join(projectPath, 'scrapy.cfg'), { flags: 'a' });
99
- await new Promise((r) => {
100
- s.on('open', (fd) => {
101
- s.write('\n', () => {
102
- apifyConf.write(fd);
103
- r();
104
- });
105
- });
106
- });
107
- success({ message: 'The Scrapy project has been wrapped successfully.' });
108
- }
109
- //# sourceMappingURL=wrapScrapyProject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrapScrapyProject.js","sourceRoot":"","sources":["../../../../src/lib/projects/scrapy/wrapScrapyProject.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const CRAWLEE_PACKAGES: string[];
2
- //# sourceMappingURL=shared.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/lib/projects/shared.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,UAW5B,CAAC"}
@@ -1,13 +0,0 @@
1
- export const CRAWLEE_PACKAGES = [
2
- 'crawlee',
3
- '@crawlee/core',
4
- '@crawlee/puppeteer',
5
- '@crawlee/playwright',
6
- '@crawlee/cheerio',
7
- '@crawlee/jsdom',
8
- '@crawlee/linkedom',
9
- '@crawlee/http',
10
- '@crawlee/browser',
11
- '@crawlee/basic',
12
- ];
13
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/lib/projects/shared.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,SAAS;IACT,eAAe;IACf,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;CACnB,CAAC"}
@@ -1,22 +0,0 @@
1
- export declare const getSecretsFile: () => Record<string, string>;
2
- export declare const addSecret: (name: string, value: string) => Record<string, string>;
3
- export declare const removeSecret: (name: string) => void;
4
- /**
5
- * Replaces secure values in env with proper values from local secrets file.
6
- * @param env
7
- * @param secrets - Object with secrets, if not set, will be load from secrets file.
8
- */
9
- export declare const replaceSecretsValue: (env: Record<string, string>, secrets?: Record<string, string>) => {};
10
- interface EnvVar {
11
- name: string;
12
- value: string;
13
- isSecret?: boolean;
14
- }
15
- /**
16
- * Transform env to envVars format attribute, which uses Apify API
17
- * It replaces secrets to values from secrets file.
18
- * @param secrets - Object with secrets, if not set, will be load from secrets file.
19
- */
20
- export declare const transformEnvToEnvVars: (env: Record<string, string>, secrets?: Record<string, string>) => EnvVar[];
21
- export {};
22
- //# sourceMappingURL=secrets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/lib/secrets.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,cAAc,8BAM1B,CAAC;AAQF,eAAO,MAAM,SAAS,SAAU,MAAM,SAAS,MAAM,2BAapD,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,MAAM,SAKxC,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAkBhG,CAAC;AAEF,UAAU,MAAM;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;EAIE;AACF,eAAO,MAAM,qBAAqB,QAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAuBlG,CAAC"}
@@ -1,104 +0,0 @@
1
- import { loadJsonFileSync } from 'load-json-file';
2
- import _ from 'underscore';
3
- import { writeJsonFileSync } from 'write-json-file';
4
- import { SECRETS_FILE_PATH } from './consts.js';
5
- import { warning } from './outputs.js';
6
- import { ensureApifyDirectory } from './utils.js';
7
- const SECRET_KEY_PREFIX = '@';
8
- // TODO: Moved to shared
9
- const MAX_ENV_VAR_NAME_LENGTH = 100;
10
- const MAX_ENV_VAR_VALUE_LENGTH = 50000;
11
- export const getSecretsFile = () => {
12
- try {
13
- return loadJsonFileSync(SECRETS_FILE_PATH()) || {};
14
- }
15
- catch (e) {
16
- return {};
17
- }
18
- };
19
- const writeSecretsFile = (secrets) => {
20
- ensureApifyDirectory(SECRETS_FILE_PATH());
21
- writeJsonFileSync(SECRETS_FILE_PATH(), secrets);
22
- return secrets;
23
- };
24
- export const addSecret = (name, value) => {
25
- const secrets = getSecretsFile();
26
- if (secrets[name])
27
- throw new Error(`Secret with name ${name} already exists. Call "apify secrets rm ${name}" to remove it.`);
28
- if (!_.isString(name) || name.length > MAX_ENV_VAR_NAME_LENGTH) {
29
- throw new Error(`Secret name has to be string with maximum length ${MAX_ENV_VAR_NAME_LENGTH}.`);
30
- }
31
- if (!_.isString(value) || value.length > MAX_ENV_VAR_VALUE_LENGTH) {
32
- throw new Error(`Secret value has to be string with maximum length ${MAX_ENV_VAR_VALUE_LENGTH}.`);
33
- }
34
- secrets[name] = value;
35
- return writeSecretsFile(secrets);
36
- };
37
- export const removeSecret = (name) => {
38
- const secrets = getSecretsFile();
39
- if (!secrets[name])
40
- throw new Error(`Secret with name ${name} doesn't exist.`);
41
- delete secrets[name];
42
- writeSecretsFile(secrets);
43
- };
44
- const isSecretKey = (envValue) => {
45
- return new RegExp(`^${SECRET_KEY_PREFIX}.{1}`).test(envValue);
46
- };
47
- /**
48
- * Replaces secure values in env with proper values from local secrets file.
49
- * @param env
50
- * @param secrets - Object with secrets, if not set, will be load from secrets file.
51
- */
52
- export const replaceSecretsValue = (env, secrets) => {
53
- secrets = secrets || getSecretsFile();
54
- const updatedEnv = {};
55
- Object.keys(env).forEach((key) => {
56
- if (isSecretKey(env[key])) {
57
- const secretKey = env[key].replace(new RegExp(`^${SECRET_KEY_PREFIX}`), '');
58
- if (secrets[secretKey]) {
59
- // @ts-expect-error - we are replacing the value
60
- updatedEnv[key] = secrets[secretKey];
61
- }
62
- else {
63
- warning({ message: `Value for ${secretKey} not found in local secrets. Set it by calling "apify secrets add ${secretKey} [SECRET_VALUE]"` });
64
- }
65
- }
66
- else {
67
- // @ts-expect-error - we are replacing the value
68
- updatedEnv[key] = env[key];
69
- }
70
- });
71
- return updatedEnv;
72
- };
73
- /**
74
- * Transform env to envVars format attribute, which uses Apify API
75
- * It replaces secrets to values from secrets file.
76
- * @param secrets - Object with secrets, if not set, will be load from secrets file.
77
- */
78
- export const transformEnvToEnvVars = (env, secrets) => {
79
- secrets = secrets || getSecretsFile();
80
- const envVars = [];
81
- Object.keys(env).forEach((key) => {
82
- if (isSecretKey(env[key])) {
83
- const secretKey = env[key].replace(new RegExp(`^${SECRET_KEY_PREFIX}`), '');
84
- if (secrets[secretKey]) {
85
- envVars.push({
86
- name: key,
87
- value: secrets[secretKey],
88
- isSecret: true,
89
- });
90
- }
91
- else {
92
- warning({ message: `Value for ${secretKey} not found in local secrets. Set it by calling "apify secrets add ${secretKey} [SECRET_VALUE]"` });
93
- }
94
- }
95
- else {
96
- envVars.push({
97
- name: key,
98
- value: env[key],
99
- });
100
- }
101
- });
102
- return envVars;
103
- };
104
- //# sourceMappingURL=secrets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/lib/secrets.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import Mixpanel from 'mixpanel';
2
- export declare const mixpanel: Mixpanel.Mixpanel;
3
- /**
4
- * Returns telemetry distinctId for current local environment or creates new one.
5
- *
6
- */
7
- export declare const getOrCreateLocalDistinctId: () => Promise<string>;
8
- export declare const regenerateLocalDistinctId: () => void;
9
- export declare const isTelemetryEnabled: boolean;
10
- /**
11
- * Tracks telemetry event if telemetry is enabled.
12
- */
13
- export declare const maybeTrackTelemetry: ({ eventName, eventData }: {
14
- eventName: string;
15
- eventData: Record<string, unknown>;
16
- }) => Promise<void>;
17
- /**
18
- * Uses Apify identity with local distinctId.
19
- */
20
- export declare const useApifyIdentity: (userId: string) => Promise<void>;
21
- //# sourceMappingURL=telemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAIA,OAAO,QAA0B,MAAM,UAAU,CAAC;AAOlD,eAAO,MAAM,QAAQ,mBAAsD,CAAC;AAa5E;;;GAGG;AACH,eAAO,MAAM,0BAA0B,uBAgBtC,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAOrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,SACwC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,mBAAmB,6BAAoC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,kBAY5H,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAkB,MAAM,kBAgBpD,CAAC"}
@@ -1,87 +0,0 @@
1
- import { promisify } from 'node:util';
2
- import { cryptoRandomObjectId } from '@apify/utilities';
3
- import { loadJsonFile } from 'load-json-file';
4
- import Mixpanel from 'mixpanel';
5
- import { writeJsonFile, writeJsonFileSync } from 'write-json-file';
6
- import { MIXPANEL_TOKEN, TELEMETRY_FILE_PATH } from './consts.js';
7
- import { info } from './outputs.js';
8
- import { ensureApifyDirectory, getLocalUserInfo } from './utils.js';
9
- export const mixpanel = Mixpanel.init(MIXPANEL_TOKEN, { keepAlive: false });
10
- const TELEMETRY_WARNING_TEXT = 'Apify collects telemetry data about general usage of Apify CLI to help us improve the product. '
11
- + 'This feature is enabled by default, and you can disable it by setting the "APIFY_CLI_DISABLE_TELEMETRY" environment variable to "1". '
12
- + 'You can find more information about our telemetry in https://docs.apify.com/cli/docs/telemetry.';
13
- const promisifiedTrack = promisify(mixpanel.track.bind(mixpanel));
14
- /**
15
- * Returns distinctId for current local environment.
16
- * Use CLI prefix to distinguish between id generated by CLI.
17
- */
18
- const createLocalDistinctId = () => `CLI:${cryptoRandomObjectId()}`;
19
- /**
20
- * Returns telemetry distinctId for current local environment or creates new one.
21
- *
22
- */
23
- export const getOrCreateLocalDistinctId = async () => {
24
- try {
25
- const telemetry = await loadJsonFile(TELEMETRY_FILE_PATH());
26
- return telemetry.distinctId;
27
- }
28
- catch (e) {
29
- const userInfo = await getLocalUserInfo();
30
- const distinctId = userInfo.id || createLocalDistinctId();
31
- // This first time we are tracking telemetry, so we want to notify user about it.
32
- info({ message: TELEMETRY_WARNING_TEXT });
33
- ensureApifyDirectory(TELEMETRY_FILE_PATH());
34
- await writeJsonFile(TELEMETRY_FILE_PATH(), { distinctId });
35
- return distinctId;
36
- }
37
- };
38
- export const regenerateLocalDistinctId = () => {
39
- try {
40
- ensureApifyDirectory(TELEMETRY_FILE_PATH());
41
- writeJsonFileSync(TELEMETRY_FILE_PATH(), { distinctId: createLocalDistinctId() });
42
- }
43
- catch {
44
- // Ignore errors
45
- }
46
- };
47
- export const isTelemetryEnabled = !process.env.APIFY_CLI_DISABLE_TELEMETRY
48
- || ['false', '0'].includes(process.env.APIFY_CLI_DISABLE_TELEMETRY);
49
- /**
50
- * Tracks telemetry event if telemetry is enabled.
51
- */
52
- export const maybeTrackTelemetry = async ({ eventName, eventData }) => {
53
- if (!isTelemetryEnabled)
54
- return;
55
- try {
56
- const distinctId = getOrCreateLocalDistinctId();
57
- await promisifiedTrack(eventName, {
58
- distinct_id: distinctId,
59
- ...eventData,
60
- });
61
- }
62
- catch (e) {
63
- // Ignore errors
64
- }
65
- };
66
- /**
67
- * Uses Apify identity with local distinctId.
68
- */
69
- export const useApifyIdentity = async (userId) => {
70
- if (!isTelemetryEnabled)
71
- return;
72
- try {
73
- const distinctId = getOrCreateLocalDistinctId();
74
- ensureApifyDirectory(TELEMETRY_FILE_PATH());
75
- await writeJsonFile(TELEMETRY_FILE_PATH(), { distinctId: userId });
76
- await maybeTrackTelemetry({
77
- eventName: '$create_alias',
78
- eventData: {
79
- alias: distinctId,
80
- },
81
- });
82
- }
83
- catch (e) {
84
- // Ignore errors
85
- }
86
- };
87
- //# sourceMappingURL=telemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,QAA0B,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,MAAM,sBAAsB,GAAG,iGAAiG;MAC1H,uIAAuI;MACvI,iGAAiG,CAAC;AAExG,MAAM,gBAAgB,GAAG,SAAS,CAA6B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE9F;;;GAGG;AACH,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,OAAO,oBAAoB,EAAE,EAAE,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,IAAI,EAAE;IACjD,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAyB,mBAAmB,EAAE,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC,UAAU,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,IAAI,qBAAqB,EAAE,CAAC;QAE1D,iFAAiF;QACjF,IAAI,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAE1C,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC5C,MAAM,aAAa,CAAC,mBAAmB,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAE3D,OAAO,UAAU,CAAC;IACtB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC1C,IAAI,CAAC;QACD,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC5C,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACL,gBAAgB;IACpB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B;OACnE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAA6D,EAAE,EAAE;IAC7H,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAEhC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,0BAA0B,EAAE,CAAC;QAChD,MAAM,gBAAgB,CAAC,SAAS,EAAE;YAC9B,WAAW,EAAE,UAAU;YACvB,GAAG,SAAS;SACf,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,gBAAgB;IACpB,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IACrD,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAEhC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,0BAA0B,EAAE,CAAC;QAChD,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC5C,MAAM,aAAa,CAAC,mBAAmB,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,mBAAmB,CAAC;YACtB,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE;gBACP,KAAK,EAAE,UAAU;aACpB;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,gBAAgB;IACpB,CAAC;AACL,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- export interface AuthJSON {
2
- token?: string;
3
- id?: string;
4
- username?: string;
5
- email?: string;
6
- proxy?: {
7
- password: string;
8
- };
9
- organizationOwnerUserId?: string;
10
- }
11
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACpC"}
package/dist/lib/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":""}
@@ -1,102 +0,0 @@
1
- import { IncomingMessage } from 'node:http';
2
- import { ActorRun, ApifyClient, ApifyClientOptions, Build } from 'apify-client';
3
- import { Language } from './consts.js';
4
- import { AuthJSON } from './types.js';
5
- export declare const Ajv: typeof import("ajv").default;
6
- export declare const httpsGet: (url: string) => Promise<IncomingMessage>;
7
- export declare const getLocalStorageDir: () => string;
8
- export declare const getLocalKeyValueStorePath: (storeId?: string) => string;
9
- export declare const getLocalDatasetPath: (storeId?: string) => string;
10
- export declare const getLocalRequestQueuePath: (storeId?: string) => string;
11
- /**
12
- * Returns object from auth file or empty object.
13
- */
14
- export declare const getLocalUserInfo: () => Promise<AuthJSON>;
15
- /**
16
- * Gets instance of ApifyClient for user otherwise throws error
17
- */
18
- export declare const getLoggedClientOrThrow: () => Promise<ApifyClient>;
19
- /**
20
- * Returns options for ApifyClient
21
- */
22
- export declare const getApifyClientOptions: (token?: string, apiBaseUrl?: string) => ApifyClientOptions;
23
- /**
24
- * Gets instance of ApifyClient for token or for params from global auth file.
25
- * NOTE: It refreshes global auth file each run
26
- * @param [token]
27
- */
28
- export declare const getLoggedClient: (token?: string, apiBaseUrl?: string) => Promise<ApifyClient | null>;
29
- export declare const getJsonFileContent: <T = Record<string, unknown>>(filePath: string) => T | undefined;
30
- export declare const getLocalConfig: (cwd: string) => Record<string, unknown> | undefined;
31
- export declare const getLocalConfigOrThrow: (cwd: string) => Promise<Record<string, unknown> | undefined>;
32
- export declare const setLocalConfig: (localConfig: Record<string, unknown>, actDir?: string) => Promise<void>;
33
- export declare const setLocalEnv: (actDir: string) => Promise<void>;
34
- type CamelCase<S extends string> = S extends `${infer P1}-${infer P2}${infer P3}` | `${infer P1}_${infer P2}${infer P3}` ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<Lowercase<P3>>}` : S;
35
- export type KeysToCamelCase<T> = {
36
- [K in keyof T as CamelCase<string & K>]: T[K];
37
- };
38
- /**
39
- * Convert Object with kebab-case keys to camelCased keys
40
- */
41
- export declare const argsToCamelCase: <T extends object>(object: T) => KeysToCamelCase<T>;
42
- export declare const createSourceFiles: (paths: string[], cwd: string) => Promise<{
43
- name: string;
44
- format: "TEXT" | "BASE64";
45
- content: string;
46
- }[]>;
47
- /**
48
- * Get Actor local files, omit files defined in .gitignore and .git folder
49
- * All dot files(.file) and folders(.folder/) are included.
50
- */
51
- export declare const getActorLocalFilePaths: (cwd?: string) => Promise<string[]>;
52
- /**
53
- * Create zip file with all Actor files specified with pathsToZip
54
- */
55
- export declare const createActZip: (zipName: string, pathsToZip: string[], cwd: string) => Promise<void>;
56
- /**
57
- * Get Actor input from local store
58
- */
59
- export declare const getLocalInput: (cwd: string) => {
60
- body: Buffer;
61
- contentType: string | null;
62
- } | undefined;
63
- export declare const purgeDefaultQueue: () => Promise<void>;
64
- export declare const purgeDefaultDataset: () => Promise<void>;
65
- export declare const purgeDefaultKeyValueStore: () => Promise<void>;
66
- export declare const outputJobLog: (job: ActorRun | Build, timeout?: number) => Promise<unknown>;
67
- /**
68
- * Returns npm command for current os
69
- * NOTE: For window we have to returns npm.cmd instead of npm, otherwise it doesn't work
70
- */
71
- export declare const getNpmCmd: () => string;
72
- /**
73
- * Returns true if apify storage is empty (expect INPUT.*)
74
- */
75
- export declare const checkIfStorageIsEmpty: () => Promise<boolean>;
76
- /**
77
- * Validates Actor name, if finds issue throws error.
78
- * @param actorName
79
- */
80
- export declare const validateActorName: (actorName: string) => void;
81
- export declare const sanitizeActorName: (actorName: string) => string;
82
- export declare const getPythonCommand: (directory: string) => string;
83
- export declare const detectPythonVersion: (directory: string) => string | undefined;
84
- export declare const isPythonVersionSupported: (installedPythonVersion: string) => boolean;
85
- export declare const detectNodeVersion: () => string | undefined;
86
- export declare const isNodeVersionSupported: (installedNodeVersion: string) => boolean;
87
- export declare const detectNpmVersion: () => string | undefined;
88
- export interface ActorLanguage {
89
- language: Language;
90
- languageVersion?: string;
91
- }
92
- export declare const detectLocalActorLanguage: (cwd: string) => ActorLanguage;
93
- export declare const downloadAndUnzip: ({ url, pathTo }: {
94
- url: string;
95
- pathTo: string;
96
- }) => Promise<void>;
97
- /**
98
- * Ensures the Apify directory exists, as well as nested folders (for tests)
99
- */
100
- export declare const ensureApifyDirectory: (file: string) => void;
101
- export {};
102
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}