apify-cli 0.19.3-beta.4 → 1.0.0-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 (231) hide show
  1. package/README.md +87 -63
  2. package/bin/dev.cmd +3 -0
  3. package/bin/dev.js +16 -0
  4. package/bin/run.js +16 -0
  5. package/dist/.tsbuildinfo +1 -0
  6. package/dist/commands/actor/get-input.d.ts +6 -0
  7. package/dist/commands/actor/get-input.d.ts.map +1 -0
  8. package/dist/commands/actor/get-input.js +14 -0
  9. package/dist/commands/actor/get-input.js.map +1 -0
  10. package/dist/commands/actor/get-value.d.ts +9 -0
  11. package/dist/commands/actor/get-value.d.ts.map +1 -0
  12. package/dist/commands/actor/get-value.js +27 -0
  13. package/dist/commands/actor/get-value.js.map +1 -0
  14. package/dist/commands/actor/index.d.ts +6 -0
  15. package/dist/commands/actor/index.d.ts.map +1 -0
  16. package/dist/commands/actor/index.js +13 -0
  17. package/dist/commands/actor/index.js.map +1 -0
  18. package/dist/commands/actor/push-data.d.ts +11 -0
  19. package/dist/commands/actor/push-data.d.ts.map +1 -0
  20. package/dist/commands/actor/push-data.js +56 -0
  21. package/dist/commands/actor/push-data.js.map +1 -0
  22. package/dist/commands/actor/set-value.d.ts +15 -0
  23. package/dist/commands/actor/set-value.d.ts.map +1 -0
  24. package/dist/commands/actor/set-value.js +76 -0
  25. package/dist/commands/actor/set-value.js.map +1 -0
  26. package/dist/commands/call.d.ts +15 -0
  27. package/dist/commands/call.d.ts.map +1 -0
  28. package/dist/commands/call.js +142 -0
  29. package/dist/commands/call.js.map +1 -0
  30. package/dist/commands/check-version.d.ts +11 -0
  31. package/dist/commands/check-version.d.ts.map +1 -0
  32. package/dist/commands/check-version.js +39 -0
  33. package/dist/commands/check-version.js.map +1 -0
  34. package/dist/commands/create.d.ts +14 -0
  35. package/dist/commands/create.d.ts.map +1 -0
  36. package/dist/commands/create.js +181 -0
  37. package/dist/commands/create.js.map +1 -0
  38. package/dist/commands/edit-input-schema.d.ts +11 -0
  39. package/dist/commands/edit-input-schema.d.ts.map +1 -0
  40. package/{src → dist}/commands/edit-input-schema.js +81 -85
  41. package/dist/commands/edit-input-schema.js.map +1 -0
  42. package/dist/commands/info.d.ts +6 -0
  43. package/dist/commands/info.d.ts.map +1 -0
  44. package/dist/commands/info.js +26 -0
  45. package/dist/commands/info.js.map +1 -0
  46. package/dist/commands/init-wrap-scrapy.d.ts +10 -0
  47. package/dist/commands/init-wrap-scrapy.d.ts.map +1 -0
  48. package/dist/commands/init-wrap-scrapy.js +41 -0
  49. package/dist/commands/init-wrap-scrapy.js.map +1 -0
  50. package/dist/commands/init.d.ts +12 -0
  51. package/dist/commands/init.d.ts.map +1 -0
  52. package/dist/commands/init.js +88 -0
  53. package/dist/commands/init.js.map +1 -0
  54. package/dist/commands/login-new.d.ts +10 -0
  55. package/dist/commands/login-new.d.ts.map +1 -0
  56. package/{src → dist}/commands/login-new.js +79 -82
  57. package/dist/commands/login-new.js.map +1 -0
  58. package/dist/commands/login.d.ts +9 -0
  59. package/dist/commands/login.d.ts.map +1 -0
  60. package/dist/commands/login.js +43 -0
  61. package/dist/commands/login.js.map +1 -0
  62. package/dist/commands/logout.d.ts +6 -0
  63. package/dist/commands/logout.d.ts.map +1 -0
  64. package/dist/commands/logout.js +20 -0
  65. package/dist/commands/logout.js.map +1 -0
  66. package/dist/commands/pull.d.ts +12 -0
  67. package/dist/commands/pull.d.ts.map +1 -0
  68. package/dist/commands/pull.js +148 -0
  69. package/dist/commands/pull.js.map +1 -0
  70. package/dist/commands/push.d.ts +16 -0
  71. package/dist/commands/push.d.ts.map +1 -0
  72. package/dist/commands/push.js +242 -0
  73. package/dist/commands/push.js.map +1 -0
  74. package/dist/commands/run.d.ts +12 -0
  75. package/dist/commands/run.d.ts.map +1 -0
  76. package/{src → dist}/commands/run.js +96 -109
  77. package/dist/commands/run.js.map +1 -0
  78. package/dist/commands/secrets/add.d.ts +10 -0
  79. package/dist/commands/secrets/add.d.ts.map +1 -0
  80. package/dist/commands/secrets/add.js +31 -0
  81. package/dist/commands/secrets/add.js.map +1 -0
  82. package/dist/commands/secrets/index.d.ts +6 -0
  83. package/dist/commands/secrets/index.d.ts.map +1 -0
  84. package/dist/commands/secrets/index.js +24 -0
  85. package/dist/commands/secrets/index.js.map +1 -0
  86. package/dist/commands/secrets/rm.d.ts +9 -0
  87. package/dist/commands/secrets/rm.d.ts.map +1 -0
  88. package/dist/commands/secrets/rm.js +27 -0
  89. package/dist/commands/secrets/rm.js.map +1 -0
  90. package/dist/commands/vis.d.ts +9 -0
  91. package/dist/commands/vis.d.ts.map +1 -0
  92. package/dist/commands/vis.js +52 -0
  93. package/dist/commands/vis.js.map +1 -0
  94. package/dist/hooks/init.d.ts +7 -0
  95. package/dist/hooks/init.d.ts.map +1 -0
  96. package/dist/hooks/init.js +17 -0
  97. package/dist/hooks/init.js.map +1 -0
  98. package/dist/index.d.ts +2 -0
  99. package/dist/index.d.ts.map +1 -0
  100. package/dist/index.js +3 -0
  101. package/dist/index.js.map +1 -0
  102. package/dist/lib/actor.d.ts +27 -0
  103. package/dist/lib/actor.d.ts.map +1 -0
  104. package/{src → dist}/lib/actor.js +21 -44
  105. package/dist/lib/actor.js.map +1 -0
  106. package/dist/lib/apify-oclif-help.d.ts +15 -0
  107. package/dist/lib/apify-oclif-help.d.ts.map +1 -0
  108. package/dist/lib/apify-oclif-help.js +19 -0
  109. package/dist/lib/apify-oclif-help.js.map +1 -0
  110. package/dist/lib/apify_command.d.ts +22 -0
  111. package/dist/lib/apify_command.d.ts.map +1 -0
  112. package/dist/lib/apify_command.js +103 -0
  113. package/dist/lib/apify_command.js.map +1 -0
  114. package/dist/lib/community.d.ts +2 -0
  115. package/dist/lib/community.d.ts.map +1 -0
  116. package/dist/lib/community.js +4 -0
  117. package/dist/lib/community.js.map +1 -0
  118. package/dist/lib/consts.d.ts +45 -0
  119. package/dist/lib/consts.d.ts.map +1 -0
  120. package/dist/lib/consts.js +54 -0
  121. package/dist/lib/consts.js.map +1 -0
  122. package/dist/lib/create-utils.d.ts +8 -0
  123. package/dist/lib/create-utils.d.ts.map +1 -0
  124. package/{src → dist}/lib/create-utils.js +74 -113
  125. package/dist/lib/create-utils.js.map +1 -0
  126. package/dist/lib/exec.d.ts +4 -0
  127. package/dist/lib/exec.d.ts.map +1 -0
  128. package/{src → dist}/lib/exec.js +15 -16
  129. package/dist/lib/exec.js.map +1 -0
  130. package/dist/lib/files.d.ts +14 -0
  131. package/dist/lib/files.d.ts.map +1 -0
  132. package/dist/lib/files.js +58 -0
  133. package/dist/lib/files.js.map +1 -0
  134. package/dist/lib/input_schema.d.ts +26 -0
  135. package/dist/lib/input_schema.d.ts.map +1 -0
  136. package/{src → dist}/lib/input_schema.js +34 -55
  137. package/dist/lib/input_schema.js.map +1 -0
  138. package/dist/lib/local_state.d.ts +11 -0
  139. package/dist/lib/local_state.d.ts.map +1 -0
  140. package/dist/lib/local_state.js +27 -0
  141. package/dist/lib/local_state.js.map +1 -0
  142. package/dist/lib/outputs.d.ts +7 -0
  143. package/dist/lib/outputs.d.ts.map +1 -0
  144. package/{src → dist}/lib/outputs.js +8 -15
  145. package/dist/lib/outputs.js.map +1 -0
  146. package/dist/lib/project_analyzer.d.ts +4 -0
  147. package/dist/lib/project_analyzer.d.ts.map +1 -0
  148. package/{src → dist}/lib/project_analyzer.js +6 -11
  149. package/dist/lib/project_analyzer.js.map +1 -0
  150. package/dist/lib/projects/CrawleeAnalyzer.d.ts +4 -0
  151. package/dist/lib/projects/CrawleeAnalyzer.d.ts.map +1 -0
  152. package/{src → dist}/lib/projects/CrawleeAnalyzer.js +7 -24
  153. package/dist/lib/projects/CrawleeAnalyzer.js.map +1 -0
  154. package/dist/lib/projects/OldApifySDKAnalyzer.d.ts +4 -0
  155. package/dist/lib/projects/OldApifySDKAnalyzer.d.ts.map +1 -0
  156. package/{src → dist}/lib/projects/OldApifySDKAnalyzer.js +9 -32
  157. package/dist/lib/projects/OldApifySDKAnalyzer.js.map +1 -0
  158. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.d.ts +17 -0
  159. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.d.ts.map +1 -0
  160. package/{src/lib/scrapy-wrapper → dist/lib/projects/scrapy}/ScrapyProjectAnalyzer.js +33 -36
  161. package/dist/lib/projects/scrapy/ScrapyProjectAnalyzer.js.map +1 -0
  162. package/dist/lib/projects/scrapy/Spider.d.ts +14 -0
  163. package/dist/lib/projects/scrapy/Spider.d.ts.map +1 -0
  164. package/dist/lib/projects/scrapy/Spider.js +33 -0
  165. package/dist/lib/projects/scrapy/Spider.js.map +1 -0
  166. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.d.ts +7 -0
  167. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.d.ts.map +1 -0
  168. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js +25 -0
  169. package/dist/lib/projects/scrapy/SpiderFileAnalyzer.js.map +1 -0
  170. package/dist/lib/projects/scrapy/wrapScrapyProject.d.ts +4 -0
  171. package/dist/lib/projects/scrapy/wrapScrapyProject.d.ts.map +1 -0
  172. package/{src/lib/scrapy-wrapper/index.js → dist/lib/projects/scrapy/wrapScrapyProject.js} +43 -73
  173. package/dist/lib/projects/scrapy/wrapScrapyProject.js.map +1 -0
  174. package/dist/lib/projects/shared.d.ts +2 -0
  175. package/dist/lib/projects/shared.d.ts.map +1 -0
  176. package/dist/lib/projects/shared.js +13 -0
  177. package/dist/lib/projects/shared.js.map +1 -0
  178. package/dist/lib/secrets.d.ts +22 -0
  179. package/dist/lib/secrets.d.ts.map +1 -0
  180. package/{src → dist}/lib/secrets.js +32 -40
  181. package/dist/lib/secrets.js.map +1 -0
  182. package/dist/lib/telemetry.d.ts +21 -0
  183. package/dist/lib/telemetry.d.ts.map +1 -0
  184. package/dist/lib/telemetry.js +87 -0
  185. package/dist/lib/telemetry.js.map +1 -0
  186. package/dist/lib/types.d.ts +11 -0
  187. package/dist/lib/types.d.ts.map +1 -0
  188. package/dist/lib/types.js +2 -0
  189. package/dist/lib/types.js.map +1 -0
  190. package/dist/lib/utils.d.ts +106 -0
  191. package/dist/lib/utils.d.ts.map +1 -0
  192. package/{src → dist}/lib/utils.js +235 -347
  193. package/dist/lib/utils.js.map +1 -0
  194. package/dist/lib/version_check.d.ts +14 -0
  195. package/dist/lib/version_check.d.ts.map +1 -0
  196. package/{src → dist}/lib/version_check.js +25 -54
  197. package/dist/lib/version_check.js.map +1 -0
  198. package/oclif.manifest.json +722 -1
  199. package/package.json +137 -113
  200. package/index.js +0 -1
  201. package/src/bin/run +0 -16
  202. package/src/commands/actor/get-input.js +0 -12
  203. package/src/commands/actor/get-value.js +0 -23
  204. package/src/commands/actor/index.js +0 -13
  205. package/src/commands/actor/push-data.js +0 -44
  206. package/src/commands/actor/set-value.js +0 -63
  207. package/src/commands/call.js +0 -131
  208. package/src/commands/check-version.js +0 -28
  209. package/src/commands/create.js +0 -203
  210. package/src/commands/info.js +0 -24
  211. package/src/commands/init-wrap-scrapy.js +0 -34
  212. package/src/commands/init.js +0 -83
  213. package/src/commands/login.js +0 -40
  214. package/src/commands/logout.js +0 -18
  215. package/src/commands/pull.js +0 -154
  216. package/src/commands/push.js +0 -234
  217. package/src/commands/secrets/add.js +0 -28
  218. package/src/commands/secrets/index.js +0 -24
  219. package/src/commands/secrets/rm.js +0 -23
  220. package/src/commands/vis.js +0 -50
  221. package/src/hooks/init.js +0 -16
  222. package/src/lib/apify-oclif-help.js +0 -23
  223. package/src/lib/apify_command.js +0 -82
  224. package/src/lib/community.js +0 -3
  225. package/src/lib/consts.js +0 -69
  226. package/src/lib/files.js +0 -76
  227. package/src/lib/local_state.js +0 -39
  228. package/src/lib/scrapy-wrapper/Spider.js +0 -10
  229. package/src/lib/scrapy-wrapper/SpiderFileAnalyzer.js +0 -26
  230. package/src/lib/telemetry.js +0 -104
  231. /package/{src/bin → bin}/run.cmd +0 -0
@@ -1,77 +1,64 @@
1
- const { cryptoRandomObjectId } = require('@apify/utilities');
2
- const { flags: flagsHelper } = require('@oclif/command');
3
- const computerName = require('computer-name');
4
- const cors = require('cors');
5
- const express = require('express');
6
- const inquirer = require('inquirer');
7
- const open = require('open');
8
-
9
- const { ApifyCommand } = require('../lib/apify_command');
10
- const outputs = require('../lib/outputs');
11
- const { useApifyIdentity } = require('../lib/telemetry');
12
- const { getLoggedClient } = require('../lib/utils');
13
- const { getLocalUserInfo } = require('../lib/utils');
14
-
1
+ import { cryptoRandomObjectId } from '@apify/utilities';
2
+ import { Flags } from '@oclif/core';
3
+ import computerName from 'computer-name';
4
+ import cors from 'cors';
5
+ import express from 'express';
6
+ import inquirer from 'inquirer';
7
+ import open from 'open';
8
+ import { ApifyCommand } from '../lib/apify_command.js';
9
+ import { error, info, success, warning } from '../lib/outputs.js';
10
+ import { useApifyIdentity } from '../lib/telemetry.js';
11
+ import { getLocalUserInfo, getLoggedClient } from '../lib/utils.js';
15
12
  const CONSOLE_BASE_URL = 'https://console.apify.com/account?tab=integrations';
16
13
  // const CONSOLE_BASE_URL = 'http://localhost:3000/account?tab=integrations';
17
14
  const CONSOLE_URL_ORIGIN = new URL(CONSOLE_BASE_URL).origin;
18
-
19
15
  const API_BASE_URL = CONSOLE_BASE_URL.includes('localhost') ? 'http://localhost:3333' : undefined;
20
-
21
16
  // Not really checked right now, but it might come useful if we ever need to do some breaking changes
22
17
  const API_VERSION = 'v1';
23
-
24
18
  const tryToLogin = async (token) => {
25
19
  const isUserLogged = await getLoggedClient(token, API_BASE_URL);
26
- const userInfo = getLocalUserInfo();
20
+ const userInfo = await getLocalUserInfo();
27
21
  if (isUserLogged) {
28
22
  await useApifyIdentity(userInfo.id);
29
- outputs.success(`You are logged in to Apify as ${userInfo.username || userInfo.id}!`);
30
- } else {
31
- outputs.error('Login to Apify failed, the provided API token is not valid.');
23
+ success(`You are logged in to Apify as ${userInfo.username || userInfo.id}!`);
24
+ }
25
+ else {
26
+ error('Login to Apify failed, the provided API token is not valid.');
32
27
  }
33
28
  return isUserLogged;
34
29
  };
35
-
36
- class LoginNewCommand extends ApifyCommand {
30
+ export class LoginNewCommand extends ApifyCommand {
37
31
  async run() {
38
- outputs.warning('This command is still experimental and might break at any time. Use at your own risk.\n');
39
-
40
- const { flags } = this.parse(LoginNewCommand);
41
- const { token } = flags;
32
+ warning('This command is still experimental and might break at any time. Use at your own risk.\n');
33
+ const { token } = this.flags;
42
34
  if (token) {
43
- return tryToLogin(token);
35
+ await tryToLogin(token);
36
+ return;
44
37
  }
45
-
46
38
  const answer = await inquirer.prompt([{
47
- type: 'list',
48
- name: 'loginMethod',
49
- message: 'Choose how you want to log in to Apify',
50
- choices: [
51
- { value: 'console', name: 'Through Apify Console in your default browser', short: 'Through Apify Console' },
52
- { value: 'manual', name: 'Enter API token manually', short: 'Manually' },
53
- ],
54
- loop: false,
55
- }]);
56
-
39
+ type: 'list',
40
+ name: 'loginMethod',
41
+ message: 'Choose how you want to log in to Apify',
42
+ choices: [
43
+ { value: 'console', name: 'Through Apify Console in your default browser', short: 'Through Apify Console' },
44
+ { value: 'manual', name: 'Enter API token manually', short: 'Manually' },
45
+ ],
46
+ loop: false,
47
+ }]);
57
48
  if (answer.loginMethod === 'console') {
58
49
  let server;
59
50
  const app = express();
60
-
61
51
  // To send requests from browser to localhost, CORS has to be configured properly
62
52
  app.use(cors({
63
53
  origin: CONSOLE_URL_ORIGIN,
64
54
  allowedHeaders: ['Content-Type', 'Authorization'],
65
55
  }));
66
-
67
56
  // Turn off keepalive, otherwise closing the server when command is finished is lagging
68
- app.use((req, res, next) => {
57
+ app.use((_, res, next) => {
69
58
  res.set('Connection', 'close');
70
59
  next();
71
60
  });
72
-
73
61
  app.use(express.json());
74
-
75
62
  // Basic authorization via a random token, which is passed to the Apify Console,
76
63
  // and that sends it back via the `token` query param, or `Authorization` header
77
64
  const authToken = cryptoRandomObjectId();
@@ -86,84 +73,94 @@ class LoginNewCommand extends ApifyCommand {
86
73
  }
87
74
  }
88
75
  }
89
-
90
76
  if (serverToken !== authToken) {
91
77
  res.status(401);
92
78
  res.send('Authorization failed');
93
- } else {
79
+ }
80
+ else {
94
81
  next();
95
82
  }
96
83
  });
97
-
98
84
  const apiRouter = express.Router();
99
85
  app.use(`/api/${API_VERSION}`, apiRouter);
100
-
101
86
  apiRouter.post('/login-token', async (req, res) => {
102
87
  try {
103
88
  if (req.body.apiToken) {
104
89
  await tryToLogin(req.body.apiToken);
105
- } else {
90
+ }
91
+ else {
106
92
  throw new Error('Request did not contain API token');
107
93
  }
108
94
  res.end();
109
- } catch (err) {
95
+ }
96
+ catch (err) {
110
97
  const errorMessage = `Login to Apify failed with error: ${err.message}`;
111
- outputs.error(errorMessage);
98
+ error(errorMessage);
112
99
  res.status(500);
113
100
  res.send(errorMessage);
114
101
  }
115
102
  server.close();
116
103
  });
117
-
118
104
  apiRouter.post('/exit', (req, res) => {
119
105
  if (req.body.isWindowClosed) {
120
- outputs.error('Login to Apify failed, the console window was closed.');
121
- } else if (req.body.actionCanceled) {
122
- outputs.error('Login to Apify failed, the action was canceled in the Apify Console.');
123
- } else {
124
- outputs.error('Login to Apify failed.');
106
+ error('Login to Apify failed, the console window was closed.');
107
+ }
108
+ else if (req.body.actionCanceled) {
109
+ error('Login to Apify failed, the action was canceled in the Apify Console.');
110
+ }
111
+ else {
112
+ error('Login to Apify failed.');
125
113
  }
126
-
127
114
  res.end();
128
115
  server.close();
129
116
  });
130
-
131
117
  // Listening on port 0 will assign a random available port
132
118
  server = app.listen(0);
133
119
  const { port } = server.address();
134
-
135
120
  const consoleUrl = new URL(CONSOLE_BASE_URL);
136
121
  consoleUrl.searchParams.set('localCliCommand', 'login');
137
- consoleUrl.searchParams.set('localCliPort', port);
122
+ consoleUrl.searchParams.set('localCliPort', `${port}`);
138
123
  consoleUrl.searchParams.set('localCliToken', authToken);
139
124
  consoleUrl.searchParams.set('localCliApiVersion', API_VERSION);
140
125
  try {
141
126
  consoleUrl.searchParams.set('localCliComputerName', encodeURIComponent(computerName()));
142
- } catch {
127
+ }
128
+ catch {
143
129
  // Ignore errors from fetching computer name as it's not critical
144
130
  }
145
-
146
- outputs.info(`Opening Apify Console at "${consoleUrl.href}"...`);
131
+ info(`Opening Apify Console at "${consoleUrl.href}"...`);
147
132
  await open(consoleUrl.href);
148
- } else {
133
+ }
134
+ else {
149
135
  const tokenAnswer = await inquirer.prompt([{ name: 'token', message: 'Insert your Apify API token', type: 'password' }]);
150
- return tryToLogin(tokenAnswer.token);
136
+ await tryToLogin(tokenAnswer.token);
151
137
  }
152
138
  }
153
139
  }
154
-
155
- LoginNewCommand.description = 'Logs in to your Apify account using your API token.\nThe API token and other account '
156
- + 'information is stored in the ~/.apify directory, from where it is read by all other "apify" commands. '
157
- + 'To log out, call "apify logout".';
158
-
159
- LoginNewCommand.flags = {
160
- token: flagsHelper.string({
161
- char: 't',
162
- description: '[Optional] Apify API token',
163
- required: false,
164
- }),
165
- };
166
-
167
- LoginNewCommand.hidden = true;
168
-
169
- module.exports = LoginNewCommand;
140
+ Object.defineProperty(LoginNewCommand, "description", {
141
+ enumerable: true,
142
+ configurable: true,
143
+ writable: true,
144
+ value: 'Logs in to your Apify account using your API token.\nThe API token and other account '
145
+ + 'information is stored in the ~/.apify directory, from where it is read by all other "apify" commands. '
146
+ + 'To log out, call "apify logout".'
147
+ });
148
+ Object.defineProperty(LoginNewCommand, "flags", {
149
+ enumerable: true,
150
+ configurable: true,
151
+ writable: true,
152
+ value: {
153
+ token: Flags.string({
154
+ char: 't',
155
+ description: '[Optional] Apify API token',
156
+ required: false,
157
+ }),
158
+ }
159
+ });
160
+ Object.defineProperty(LoginNewCommand, "hidden", {
161
+ enumerable: true,
162
+ configurable: true,
163
+ writable: true,
164
+ value: true
165
+ });
166
+ //# sourceMappingURL=login-new.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-new.js","sourceRoot":"","sources":["../../src/commands/login-new.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,gBAAgB,GAAG,oDAAoD,CAAC;AAC9E,6EAA6E;AAC7E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;AAE5D,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;AAElG,qGAAqG;AACrG,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,MAAM,UAAU,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IACvC,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC1C,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAG,CAAC,CAAC;QACrC,OAAO,CAAC,iCAAiC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,YAAoC;IAerE,KAAK,CAAC,GAAG;QACL,OAAO,CAAC,yFAAyF,CAAC,CAAC;QAEnG,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE;oBACL,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,+CAA+C,EAAE,KAAK,EAAE,uBAAuB,EAAE;oBAC3G,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,UAAU,EAAE;iBAC3E;gBACD,IAAI,EAAE,KAAK;aACd,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,MAAc,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;YAEtB,iFAAiF;YACjF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;aACpD,CAAC,CAAC,CAAC;YAEJ,uFAAuF;YACvF,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACrB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAExB,gFAAgF;YAChF,gFAAgF;YAChF,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACvB,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,MAAM,mBAAmB,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBACrD,IAAI,mBAAmB,EAAE,CAAC;wBACtB,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACpF,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,QAAQ,IAAI,eAAe,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC7E,WAAW,GAAG,eAAe,CAAC;wBAClC,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChB,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACJ,IAAI,EAAE,CAAC;gBACX,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,CAAC,GAAG,CAAC,QAAQ,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;YAE1C,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC9C,IAAI,CAAC;oBACD,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACpB,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBACzD,CAAC;oBACD,GAAG,CAAC,GAAG,EAAE,CAAC;gBACd,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,MAAM,YAAY,GAAG,qCAAsC,GAAa,CAAC,OAAO,EAAE,CAAC;oBACnF,KAAK,CAAC,YAAY,CAAC,CAAC;oBACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACjC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC1B,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACnE,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACjC,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACpC,CAAC;gBAED,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,0DAA0D;YAC1D,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,EAAiB,CAAC;YAEjD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC7C,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACxD,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACvD,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YACxD,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACD,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC5F,CAAC;YAAC,MAAM,CAAC;gBACL,iEAAiE;YACrE,CAAC;YAED,IAAI,CAAC,6BAA6B,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,6BAA6B,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACzH,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;;AAjIe;;;;WAAc,uFAAuF;UACnH,wGAAwG;UACxG,kCAAkC;GAAC;AAErB;;;;WAAQ;QACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,KAAK;SAClB,CAAC;KACL;GAAC;AAEc;;;;WAAS,IAAI;GAAC"}
@@ -0,0 +1,9 @@
1
+ import { ApifyCommand } from '../lib/apify_command.js';
2
+ export declare class LoginCommand extends ApifyCommand<typeof LoginCommand> {
3
+ static description: string;
4
+ static flags: {
5
+ token: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
6
+ };
7
+ run(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,qBAAa,YAAa,SAAQ,YAAY,CAAC,OAAO,YAAY,CAAC;IAC/D,OAAgB,WAAW,SAEU;IAErC,OAAgB,KAAK;;MAMnB;IAEI,GAAG;CAgBZ"}
@@ -0,0 +1,43 @@
1
+ import { Flags } from '@oclif/core';
2
+ import inquirer from 'inquirer';
3
+ import { ApifyCommand } from '../lib/apify_command.js';
4
+ import { error, success } from '../lib/outputs.js';
5
+ import { useApifyIdentity } from '../lib/telemetry.js';
6
+ import { getLocalUserInfo, getLoggedClient } from '../lib/utils.js';
7
+ export class LoginCommand extends ApifyCommand {
8
+ async run() {
9
+ let { token } = this.flags;
10
+ if (!token) {
11
+ console.log('Enter your Apify API token. You can find it at https://console.apify.com/account#/integrations');
12
+ const tokenPrompt = await inquirer.prompt([{ name: 'token', message: 'token:', type: 'password' }]);
13
+ ({ token } = tokenPrompt);
14
+ }
15
+ const isUserLogged = await getLoggedClient(token);
16
+ const userInfo = await getLocalUserInfo();
17
+ await useApifyIdentity(userInfo.id);
18
+ return isUserLogged
19
+ ? success(`You are logged in to Apify as ${userInfo.username || userInfo.id}!`)
20
+ : error('Login to Apify failed, the provided API token is not valid.');
21
+ }
22
+ }
23
+ Object.defineProperty(LoginCommand, "description", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: 'Logs in to your Apify account using a provided API token.\nThe API token and other account '
28
+ + 'information is stored in the ~/.apify directory, from where it is read by all other "apify" commands. '
29
+ + 'To log out, call "apify logout".'
30
+ });
31
+ Object.defineProperty(LoginCommand, "flags", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: {
36
+ token: Flags.string({
37
+ char: 't',
38
+ description: '[Optional] Apify API token',
39
+ required: false,
40
+ }),
41
+ }
42
+ });
43
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,OAAO,YAAa,SAAQ,YAAiC;IAa/D,KAAK,CAAC,GAAG;QACL,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAC;YAC9G,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACvH,CAAC,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC1C,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAG,CAAC,CAAC;QACrC,OAAO,YAAY;YACf,CAAC,CAAC,OAAO,CAAC,iCAAiC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,GAAG,CAAC;YAC/E,CAAC,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC/E,CAAC;;AA3Be;;;;WAAc,6FAA6F;UACzH,wGAAwG;UACxG,kCAAkC;GAAC;AAErB;;;;WAAQ;QACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,KAAK;SAClB,CAAC;KACL;GAAC"}
@@ -0,0 +1,6 @@
1
+ import { ApifyCommand } from '../lib/apify_command.js';
2
+ export declare class LogoutCommand extends ApifyCommand<typeof LogoutCommand> {
3
+ static description: string;
4
+ run(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=logout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMvD,qBAAa,aAAc,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IACjE,OAAgB,WAAW,SACoE;IAEzF,GAAG;CAKZ"}
@@ -0,0 +1,20 @@
1
+ import { ApifyCommand } from '../lib/apify_command.js';
2
+ import { AUTH_FILE_PATH } from '../lib/consts.js';
3
+ import { rimrafPromised } from '../lib/files.js';
4
+ import { success } from '../lib/outputs.js';
5
+ import { regenerateLocalDistinctId } from '../lib/telemetry.js';
6
+ export class LogoutCommand extends ApifyCommand {
7
+ async run() {
8
+ await rimrafPromised(AUTH_FILE_PATH());
9
+ regenerateLocalDistinctId();
10
+ success('You are logged out from your Apify account.');
11
+ }
12
+ }
13
+ Object.defineProperty(LogoutCommand, "description", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: 'Logs out of your Apify account.\nThe command deletes the API token and all other '
18
+ + 'account information stored in the ~/.apify directory. To log in again, call "apify login".'
19
+ });
20
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,OAAO,aAAc,SAAQ,YAAkC;IAIjE,KAAK,CAAC,GAAG;QACL,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC;QACvC,yBAAyB,EAAE,CAAC;QAC5B,OAAO,CAAC,6CAA6C,CAAC,CAAC;IAC3D,CAAC;;AAPe;;;;WAAc,mFAAmF;UAC/G,4FAA4F;GAAC"}
@@ -0,0 +1,12 @@
1
+ import { ApifyCommand } from '../lib/apify_command.js';
2
+ export declare class PullCommand extends ApifyCommand<typeof PullCommand> {
3
+ static description: string;
4
+ static flags: {
5
+ version: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
6
+ };
7
+ static args: {
8
+ actorId: import("@oclif/core/lib/interfaces/parser.js").Arg<string | undefined, Record<string, unknown>>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=pull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAavD,qBAAa,WAAY,SAAQ,YAAY,CAAC,OAAO,WAAW,CAAC;IAC7D,OAAgB,WAAW,SACsF;IAEjH,OAAgB,KAAK;;MAMnB;IAEF,OAAgB,IAAI;;MAMlB;IAEI,GAAG;CA2GZ"}
@@ -0,0 +1,148 @@
1
+ import { mkdirSync, readdirSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import process from 'node:process';
4
+ import { Args, Flags } from '@oclif/core';
5
+ import AdmZip from 'adm-zip';
6
+ import axios from 'axios';
7
+ import jju from 'jju';
8
+ import { gt } from 'semver';
9
+ import tiged from 'tiged';
10
+ import { ApifyCommand } from '../lib/apify_command.js';
11
+ import { LOCAL_CONFIG_PATH } from '../lib/consts.js';
12
+ import { error, success } from '../lib/outputs.js';
13
+ import { getLocalConfigOrThrow, getLocalUserInfo, getLoggedClientOrThrow } from '../lib/utils.js';
14
+ const extractGitHubZip = async (url, directoryPath) => {
15
+ const { data } = await axios.get(url, { responseType: 'arraybuffer' });
16
+ const zipFile = new AdmZip(Buffer.from(data, 'binary'));
17
+ zipFile.extractEntryTo(zipFile.getEntries()[0].entryName, directoryPath, false);
18
+ };
19
+ export class PullCommand extends ApifyCommand {
20
+ async run() {
21
+ const cwd = process.cwd();
22
+ const localConfig = await getLocalConfigOrThrow(cwd);
23
+ const userInfo = await getLocalUserInfo();
24
+ const apifyClient = await getLoggedClientOrThrow();
25
+ const isActorAutomaticallyDetected = !this.args?.actorId;
26
+ const usernameOrId = userInfo.username || userInfo.id;
27
+ const actorId = this.args?.actorId || localConfig?.id || (localConfig?.name ? `${usernameOrId}/${localConfig.name}` : undefined);
28
+ if (!actorId)
29
+ throw new Error('Cannot find Actor in this directory.');
30
+ let actor;
31
+ try {
32
+ actor = await apifyClient.actor(actorId).get();
33
+ }
34
+ catch {
35
+ throw new Error(`Cannot find Actor with ID/name '${actorId}' in your account.`);
36
+ }
37
+ if (!actor)
38
+ throw new Error(`Cannot find Actor with ID/name '${actorId}' in your account.`);
39
+ const { name, versions } = actor;
40
+ let correctVersion = null;
41
+ if (this.flags?.version) {
42
+ correctVersion = versions.find((version) => version.versionNumber === this.flags?.version);
43
+ if (!correctVersion) {
44
+ throw new Error(`Cannot find version ${this.flags?.version} of Actor ${actorId}.`);
45
+ }
46
+ }
47
+ if (!correctVersion) {
48
+ correctVersion = versions.reduce((match, curr) => {
49
+ if (gt(`${curr.versionNumber}.0`, `${match.versionNumber}.0`))
50
+ return curr;
51
+ return match;
52
+ });
53
+ }
54
+ const dirpath = isActorAutomaticallyDetected ? cwd : join(cwd, name);
55
+ mkdirSync(dirpath, { recursive: true });
56
+ if (!isActorAutomaticallyDetected && !(readdirSync(dirpath).length === 0)) {
57
+ error(`Directory ${dirpath} is not empty. Please empty it or choose another directory.`);
58
+ return;
59
+ }
60
+ switch (correctVersion.sourceType) {
61
+ case 'TARBALL': {
62
+ await extractGitHubZip(correctVersion.tarballUrl, dirpath);
63
+ break;
64
+ }
65
+ case 'SOURCE_FILES': {
66
+ const { sourceFiles } = correctVersion;
67
+ for (const file of sourceFiles) {
68
+ const folderPath = dirname(file.name);
69
+ mkdirSync(`${dirpath}/${folderPath}`, { recursive: true });
70
+ // @ts-expect-error TODO: is this an actual field?
71
+ if (!file.folder) {
72
+ const fileContent = file.format === 'BASE64' ? Buffer.from(file.content, 'base64').toString() : file.content;
73
+ if (file.name === LOCAL_CONFIG_PATH) {
74
+ const actorJson = jju.parse(fileContent);
75
+ actorJson.name = actor.name;
76
+ writeFileSync(`${dirpath}/${file.name}`, jju.update(fileContent, actorJson));
77
+ }
78
+ else {
79
+ writeFileSync(`${dirpath}/${file.name}`, fileContent);
80
+ }
81
+ }
82
+ }
83
+ break;
84
+ }
85
+ case 'GIT_REPO': {
86
+ // e.g. https://github.com/jakubbalada/Datasety.git#master:RejstrikPolitickychStran
87
+ const { gitRepoUrl } = correctVersion;
88
+ const [repoUrl, branchDirPart] = gitRepoUrl.split('#');
89
+ let branch;
90
+ let dir;
91
+ if (branchDirPart)
92
+ [branch, dir] = branchDirPart.split(':');
93
+ let branchDirRepoUrl = repoUrl;
94
+ if (dir)
95
+ branchDirRepoUrl += `/${dir}`;
96
+ if (branch)
97
+ branchDirRepoUrl += `#${branch}`;
98
+ const emitter = tiged(branchDirRepoUrl);
99
+ try {
100
+ await emitter.clone(dirpath);
101
+ }
102
+ catch (err) {
103
+ throw new Error(`Failed to pull Actor from ${gitRepoUrl}. ${err.message}`);
104
+ }
105
+ break;
106
+ }
107
+ case 'GITHUB_GIST': {
108
+ await extractGitHubZip(`${correctVersion.gitHubGistUrl}/archive/master.zip`, dirpath);
109
+ break;
110
+ }
111
+ default:
112
+ throw new Error(`Unknown source type: ${correctVersion.sourceType}`);
113
+ }
114
+ success(isActorAutomaticallyDetected ? `Actor ${name} updated at ${dirpath}/` : `Pulled to ${dirpath}/`);
115
+ }
116
+ }
117
+ Object.defineProperty(PullCommand, "description", {
118
+ enumerable: true,
119
+ configurable: true,
120
+ writable: true,
121
+ value: 'Pulls an Actor from the Apify platform to the current directory. '
122
+ + 'If it is defined as Git repository, it will be cloned. If it is defined as Web IDE, it will fetch the files.'
123
+ });
124
+ Object.defineProperty(PullCommand, "flags", {
125
+ enumerable: true,
126
+ configurable: true,
127
+ writable: true,
128
+ value: {
129
+ version: Flags.string({
130
+ char: 'v',
131
+ description: 'Actor version number which will be pulled, e.g. 1.2. Default: the highest version',
132
+ required: false,
133
+ }),
134
+ }
135
+ });
136
+ Object.defineProperty(PullCommand, "args", {
137
+ enumerable: true,
138
+ configurable: true,
139
+ writable: true,
140
+ value: {
141
+ actorId: Args.string({
142
+ required: false,
143
+ description: 'Name or ID of the Actor to run (e.g. "apify/hello-world" or "E2jjCZBezvAZnX8Rb"). '
144
+ + 'If not provided, the command will update the Actor in the current directory based on its name in ".actor/actor.json" file.',
145
+ }),
146
+ }
147
+ });
148
+ //# sourceMappingURL=pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ApifyCommand } from '../lib/apify_command.js';
2
+ export declare class PushCommand extends ApifyCommand<typeof PushCommand> {
3
+ static description: string;
4
+ static flags: {
5
+ 'version-number': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
6
+ version: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ 'build-tag': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ 'wait-for-finish': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ 'no-prompt': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ };
11
+ static args: {
12
+ actorId: import("@oclif/core/lib/interfaces/parser.js").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA6BvD,qBAAa,WAAY,SAAQ,YAAY,CAAC,OAAO,WAAW,CAAC;IAC7D,OAAgB,WAAW,SAIoE;IAE/F,OAAgB,KAAK;;;;;;MA2BnB;IAEF,OAAgB,IAAI;;MAMlB;IAEI,GAAG;CAmKZ"}