apify-cli 1.0.0-beta.1 → 1.0.0-beta.100
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.
- package/CHANGELOG.md +200 -0
- package/README.md +128 -77
- package/bin/dev.js +7 -2
- package/bin/dev.sh +4 -0
- package/bin/run.js +7 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/commands/actor/push-data.js +2 -2
- package/dist/commands/actor/set-value.js +3 -3
- package/dist/commands/actor/set-value.js.map +1 -1
- package/dist/commands/call.d.ts +2 -1
- package/dist/commands/call.d.ts.map +1 -1
- package/dist/commands/call.js +56 -90
- package/dist/commands/call.js.map +1 -1
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +49 -29
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/edit-input-schema.js +15 -15
- package/dist/commands/edit-input-schema.js.map +1 -1
- package/dist/commands/init-wrap-scrapy.js +1 -1
- package/dist/commands/init-wrap-scrapy.js.map +1 -1
- package/dist/commands/init.js +5 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +143 -12
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/pull.js +2 -2
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +80 -24
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/run.d.ts +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +101 -35
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/secrets/index.js +1 -1
- package/dist/commands/task/index.d.ts +6 -0
- package/dist/commands/task/index.d.ts.map +1 -0
- package/dist/commands/task/index.js +13 -0
- package/dist/commands/task/index.js.map +1 -0
- package/dist/commands/task/run.d.ts +16 -0
- package/dist/commands/task/run.d.ts.map +1 -0
- package/dist/commands/task/run.js +91 -0
- package/dist/commands/task/run.js.map +1 -0
- package/dist/commands/{vis.d.ts → validate-schema.d.ts} +2 -1
- package/dist/commands/validate-schema.d.ts.map +1 -0
- package/dist/commands/{vis.js → validate-schema.js} +10 -4
- package/dist/commands/validate-schema.js.map +1 -0
- package/dist/hooks/deprecations.d.ts +4 -0
- package/dist/hooks/deprecations.d.ts.map +1 -0
- package/dist/hooks/deprecations.js +18 -0
- package/dist/hooks/deprecations.js.map +1 -0
- package/dist/lib/actor.d.ts +1 -1
- package/dist/lib/actor.js +2 -2
- package/dist/lib/actor.js.map +1 -1
- package/dist/lib/commands/run-on-cloud.d.ts +19 -0
- package/dist/lib/commands/run-on-cloud.d.ts.map +1 -0
- package/dist/lib/commands/run-on-cloud.js +90 -0
- package/dist/lib/commands/run-on-cloud.js.map +1 -0
- package/dist/lib/consts.d.ts +8 -0
- package/dist/lib/consts.d.ts.map +1 -1
- package/dist/lib/consts.js +10 -0
- package/dist/lib/consts.js.map +1 -1
- package/dist/lib/create-utils.js +1 -1
- package/dist/lib/create-utils.js.map +1 -1
- package/dist/lib/exec.d.ts.map +1 -1
- package/dist/lib/exec.js +7 -2
- package/dist/lib/exec.js.map +1 -1
- package/dist/lib/input_schema.d.ts +1 -1
- package/dist/lib/input_schema.d.ts.map +1 -1
- package/dist/lib/input_schema.js +1 -1
- package/dist/lib/input_schema.js.map +1 -1
- package/dist/lib/outputs.d.ts +18 -6
- package/dist/lib/outputs.d.ts.map +1 -1
- package/dist/lib/outputs.js +43 -18
- package/dist/lib/outputs.js.map +1 -1
- package/dist/lib/projects/scrapy/wrapScrapyProject.js +3 -3
- package/dist/lib/projects/scrapy/wrapScrapyProject.js.map +1 -1
- package/dist/lib/secrets.js +3 -3
- package/dist/lib/secrets.js.map +1 -1
- package/dist/lib/telemetry.d.ts.map +1 -1
- package/dist/lib/telemetry.js +1 -1
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/utils.d.ts +6 -7
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +40 -43
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/version_check.js +7 -7
- package/dist/lib/version_check.js.map +1 -1
- package/oclif.manifest.json +131 -38
- package/package.json +148 -141
- package/dist/commands/login-new.d.ts +0 -10
- package/dist/commands/login-new.d.ts.map +0 -1
- package/dist/commands/login-new.js +0 -166
- package/dist/commands/login-new.js.map +0 -1
- package/dist/commands/vis.d.ts.map +0 -1
- package/dist/commands/vis.js.map +0 -1
package/dist/commands/init.js
CHANGED
|
@@ -14,18 +14,18 @@ export class InitCommand extends ApifyCommand {
|
|
|
14
14
|
let { actorName } = this.args;
|
|
15
15
|
const cwd = process.cwd();
|
|
16
16
|
if (ProjectAnalyzer.getProjectType(cwd) === PROJECT_TYPES.SCRAPY) {
|
|
17
|
-
info('The current directory looks like a Scrapy project. Using automatic project wrapping.');
|
|
17
|
+
info({ message: 'The current directory looks like a Scrapy project. Using automatic project wrapping.' });
|
|
18
18
|
this.telemetryData.actorWrapper = PROJECT_TYPES.SCRAPY;
|
|
19
19
|
return wrapScrapyProject({ projectPath: cwd });
|
|
20
20
|
}
|
|
21
21
|
if (!this.flags.yes && detectLocalActorLanguage(cwd).language === LANGUAGE.UNKNOWN) {
|
|
22
|
-
warning('The current directory does not look like a Node.js or Python project.');
|
|
22
|
+
warning({ message: 'The current directory does not look like a Node.js or Python project.' });
|
|
23
23
|
const { c } = await inquirer.prompt([{ name: 'c', message: 'Do you want to continue?', type: 'confirm' }]);
|
|
24
24
|
if (!c)
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
if (getLocalConfig(cwd)) {
|
|
28
|
-
warning(`Skipping creation of "${LOCAL_CONFIG_PATH}", the file already exists in the current directory.`);
|
|
28
|
+
warning({ message: `Skipping creation of "${LOCAL_CONFIG_PATH}", the file already exists in the current directory.` });
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
31
|
if (!actorName) {
|
|
@@ -37,7 +37,7 @@ export class InitCommand extends ApifyCommand {
|
|
|
37
37
|
response = answer;
|
|
38
38
|
}
|
|
39
39
|
catch (err) {
|
|
40
|
-
error(err.message);
|
|
40
|
+
error({ message: err.message });
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
({ actName: actorName } = response);
|
|
@@ -49,7 +49,7 @@ export class InitCommand extends ApifyCommand {
|
|
|
49
49
|
await setLocalEnv(cwd);
|
|
50
50
|
// Create prefilled INPUT.json file from the input schema prefills
|
|
51
51
|
await createPrefilledInputFileFromInputSchema(cwd);
|
|
52
|
-
success('The Actor has been initialized in the current directory.');
|
|
52
|
+
success({ message: 'The Actor has been initialized in the current directory.' });
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
Object.defineProperty(InitCommand, "description", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7H,OAAO,EAAE,uCAAuC,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,qBAAqB,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElJ,MAAM,OAAO,WAAY,SAAQ,YAAgC;IAuB7D,KAAK,CAAC,GAAG;QACL,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,IAAI,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;YAC/D,IAAI,CAAC,sFAAsF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/login.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare class LoginCommand extends ApifyCommand<typeof LoginCommand> {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static flags: {
|
|
5
5
|
token: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
6
|
+
method: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
6
7
|
};
|
|
7
8
|
run(): Promise<void>;
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA0BvD,qBAAa,YAAa,SAAQ,YAAY,CAAC,OAAO,YAAY,CAAC;IAC/D,OAAgB,WAAW,SAEU;IAErC,OAAgB,KAAK;;;MAYnB;IAEI,GAAG;CA6HZ"}
|
package/dist/commands/login.js
CHANGED
|
@@ -1,30 +1,155 @@
|
|
|
1
|
+
import { cryptoRandomObjectId } from '@apify/utilities';
|
|
1
2
|
import { Flags } from '@oclif/core';
|
|
3
|
+
import computerName from 'computer-name';
|
|
4
|
+
import cors from 'cors';
|
|
5
|
+
import express from 'express';
|
|
2
6
|
import inquirer from 'inquirer';
|
|
7
|
+
import open from 'open';
|
|
3
8
|
import { ApifyCommand } from '../lib/apify_command.js';
|
|
4
|
-
import { error, success } from '../lib/outputs.js';
|
|
9
|
+
import { error, info, success } from '../lib/outputs.js';
|
|
5
10
|
import { useApifyIdentity } from '../lib/telemetry.js';
|
|
6
11
|
import { getLocalUserInfo, getLoggedClient } from '../lib/utils.js';
|
|
12
|
+
const CONSOLE_BASE_URL = 'https://console.apify.com/account?tab=integrations';
|
|
13
|
+
// const CONSOLE_BASE_URL = 'http://localhost:3000/account?tab=integrations';
|
|
14
|
+
const CONSOLE_URL_ORIGIN = new URL(CONSOLE_BASE_URL).origin;
|
|
15
|
+
const API_BASE_URL = CONSOLE_BASE_URL.includes('localhost') ? 'http://localhost:3333' : undefined;
|
|
16
|
+
// Not really checked right now, but it might come useful if we ever need to do some breaking changes
|
|
17
|
+
const API_VERSION = 'v1';
|
|
18
|
+
const tryToLogin = async (token) => {
|
|
19
|
+
const isUserLogged = await getLoggedClient(token, API_BASE_URL);
|
|
20
|
+
const userInfo = await getLocalUserInfo();
|
|
21
|
+
if (isUserLogged) {
|
|
22
|
+
await useApifyIdentity(userInfo.id);
|
|
23
|
+
success({ message: `You are logged in to Apify as ${userInfo.username || userInfo.id}!` });
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
error({ message: 'Login to Apify failed, the provided API token is not valid.' });
|
|
27
|
+
}
|
|
28
|
+
return isUserLogged;
|
|
29
|
+
};
|
|
7
30
|
export class LoginCommand extends ApifyCommand {
|
|
8
31
|
async run() {
|
|
9
|
-
|
|
10
|
-
if (
|
|
32
|
+
const { token, method } = this.flags;
|
|
33
|
+
if (token) {
|
|
34
|
+
await tryToLogin(token);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
let selectedMethod = method;
|
|
38
|
+
if (!method) {
|
|
39
|
+
const answer = await inquirer.prompt([{
|
|
40
|
+
type: 'list',
|
|
41
|
+
name: 'loginMethod',
|
|
42
|
+
message: 'Choose how you want to log in to Apify',
|
|
43
|
+
choices: [
|
|
44
|
+
{
|
|
45
|
+
value: 'console',
|
|
46
|
+
name: 'Through Apify Console in your default browser',
|
|
47
|
+
short: 'Through Apify Console',
|
|
48
|
+
},
|
|
49
|
+
{ value: 'manual', name: 'Enter API token manually', short: 'Manually' },
|
|
50
|
+
],
|
|
51
|
+
loop: true,
|
|
52
|
+
}]);
|
|
53
|
+
selectedMethod = answer.loginMethod;
|
|
54
|
+
}
|
|
55
|
+
if (selectedMethod === 'console') {
|
|
56
|
+
let server;
|
|
57
|
+
const app = express();
|
|
58
|
+
// To send requests from browser to localhost, CORS has to be configured properly
|
|
59
|
+
app.use(cors({
|
|
60
|
+
origin: CONSOLE_URL_ORIGIN,
|
|
61
|
+
allowedHeaders: ['Content-Type', 'Authorization'],
|
|
62
|
+
}));
|
|
63
|
+
// Turn off keepalive, otherwise closing the server when command is finished is lagging
|
|
64
|
+
app.use((_, res, next) => {
|
|
65
|
+
res.set('Connection', 'close');
|
|
66
|
+
next();
|
|
67
|
+
});
|
|
68
|
+
app.use(express.json());
|
|
69
|
+
// Basic authorization via a random token, which is passed to the Apify Console,
|
|
70
|
+
// and that sends it back via the `token` query param, or `Authorization` header
|
|
71
|
+
const authToken = cryptoRandomObjectId();
|
|
72
|
+
app.use((req, res, next) => {
|
|
73
|
+
let { token: serverToken } = req.query;
|
|
74
|
+
if (!serverToken) {
|
|
75
|
+
const authorizationHeader = req.get('Authorization');
|
|
76
|
+
if (authorizationHeader) {
|
|
77
|
+
const [schema, tokenFromHeader, ...extra] = authorizationHeader.trim().split(/\s+/);
|
|
78
|
+
if (schema.toLowerCase() === 'bearer' && tokenFromHeader && extra.length === 0) {
|
|
79
|
+
serverToken = tokenFromHeader;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (serverToken !== authToken) {
|
|
84
|
+
res.status(401);
|
|
85
|
+
res.send('Authorization failed');
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
next();
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
const apiRouter = express.Router();
|
|
92
|
+
app.use(`/api/${API_VERSION}`, apiRouter);
|
|
93
|
+
apiRouter.post('/login-token', async (req, res) => {
|
|
94
|
+
try {
|
|
95
|
+
if (req.body.apiToken) {
|
|
96
|
+
await tryToLogin(req.body.apiToken);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
throw new Error('Request did not contain API token');
|
|
100
|
+
}
|
|
101
|
+
res.end();
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
const errorMessage = `Login to Apify failed with error: ${err.message}`;
|
|
105
|
+
error({ message: errorMessage });
|
|
106
|
+
res.status(500);
|
|
107
|
+
res.send(errorMessage);
|
|
108
|
+
}
|
|
109
|
+
server.close();
|
|
110
|
+
});
|
|
111
|
+
apiRouter.post('/exit', (req, res) => {
|
|
112
|
+
if (req.body.isWindowClosed) {
|
|
113
|
+
error({ message: 'Login to Apify failed, the console window was closed.' });
|
|
114
|
+
}
|
|
115
|
+
else if (req.body.actionCanceled) {
|
|
116
|
+
error({ message: 'Login to Apify failed, the action was canceled in the Apify Console.' });
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
error({ message: 'Login to Apify failed.' });
|
|
120
|
+
}
|
|
121
|
+
res.end();
|
|
122
|
+
server.close();
|
|
123
|
+
});
|
|
124
|
+
// Listening on port 0 will assign a random available port
|
|
125
|
+
server = app.listen(0);
|
|
126
|
+
const { port } = server.address();
|
|
127
|
+
const consoleUrl = new URL(CONSOLE_BASE_URL);
|
|
128
|
+
consoleUrl.searchParams.set('localCliCommand', 'login');
|
|
129
|
+
consoleUrl.searchParams.set('localCliPort', `${port}`);
|
|
130
|
+
consoleUrl.searchParams.set('localCliToken', authToken);
|
|
131
|
+
consoleUrl.searchParams.set('localCliApiVersion', API_VERSION);
|
|
132
|
+
try {
|
|
133
|
+
consoleUrl.searchParams.set('localCliComputerName', encodeURIComponent(computerName()));
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Ignore errors from fetching computer name as it's not critical
|
|
137
|
+
}
|
|
138
|
+
info({ message: `Opening Apify Console at "${consoleUrl.href}"...` });
|
|
139
|
+
await open(consoleUrl.href);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
11
142
|
console.log('Enter your Apify API token. You can find it at https://console.apify.com/account#/integrations');
|
|
12
|
-
const
|
|
13
|
-
(
|
|
143
|
+
const tokenAnswer = await inquirer.prompt([{ name: 'token', message: 'token:', type: 'password' }]);
|
|
144
|
+
await tryToLogin(tokenAnswer.token);
|
|
14
145
|
}
|
|
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
146
|
}
|
|
22
147
|
}
|
|
23
148
|
Object.defineProperty(LoginCommand, "description", {
|
|
24
149
|
enumerable: true,
|
|
25
150
|
configurable: true,
|
|
26
151
|
writable: true,
|
|
27
|
-
value: 'Logs in to your Apify account
|
|
152
|
+
value: 'Logs in to your Apify account.\nThe API token and other account '
|
|
28
153
|
+ 'information is stored in the ~/.apify directory, from where it is read by all other "apify" commands. '
|
|
29
154
|
+ 'To log out, call "apify logout".'
|
|
30
155
|
});
|
|
@@ -38,6 +163,12 @@ Object.defineProperty(LoginCommand, "flags", {
|
|
|
38
163
|
description: '[Optional] Apify API token',
|
|
39
164
|
required: false,
|
|
40
165
|
}),
|
|
166
|
+
method: Flags.string({
|
|
167
|
+
char: 'm',
|
|
168
|
+
description: '[Optional] Method of logging in to Apify',
|
|
169
|
+
options: ['console', 'manual'],
|
|
170
|
+
required: false,
|
|
171
|
+
}),
|
|
41
172
|
}
|
|
42
173
|
});
|
|
43
174
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/logout.js
CHANGED
|
@@ -7,7 +7,7 @@ export class LogoutCommand extends ApifyCommand {
|
|
|
7
7
|
async run() {
|
|
8
8
|
await rimrafPromised(AUTH_FILE_PATH());
|
|
9
9
|
regenerateLocalDistinctId();
|
|
10
|
-
success('You are logged out from your Apify account.');
|
|
10
|
+
success({ message: 'You are logged out from your Apify account.' });
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
Object.defineProperty(LogoutCommand, "description", {
|
|
@@ -1 +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;
|
|
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,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;IACxE,CAAC;;AAPe;;;;WAAc,mFAAmF;UAC/G,4FAA4F;GAAC"}
|
package/dist/commands/pull.js
CHANGED
|
@@ -54,7 +54,7 @@ export class PullCommand extends ApifyCommand {
|
|
|
54
54
|
const dirpath = isActorAutomaticallyDetected ? cwd : join(cwd, name);
|
|
55
55
|
mkdirSync(dirpath, { recursive: true });
|
|
56
56
|
if (!isActorAutomaticallyDetected && !(readdirSync(dirpath).length === 0)) {
|
|
57
|
-
error(`Directory ${dirpath} is not empty. Please empty it or choose another directory.`);
|
|
57
|
+
error({ message: `Directory ${dirpath} is not empty. Please empty it or choose another directory.` });
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
switch (correctVersion.sourceType) {
|
|
@@ -111,7 +111,7 @@ export class PullCommand extends ApifyCommand {
|
|
|
111
111
|
default:
|
|
112
112
|
throw new Error(`Unknown source type: ${correctVersion.sourceType}`);
|
|
113
113
|
}
|
|
114
|
-
success(isActorAutomaticallyDetected ? `Actor ${name} updated at ${dirpath}/` : `Pulled to ${dirpath}/`);
|
|
114
|
+
success({ message: isActorAutomaticallyDetected ? `Actor ${name} updated at ${dirpath}/` : `Pulled to ${dirpath}/` });
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
Object.defineProperty(PullCommand, "description", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/push.d.ts
CHANGED
|
@@ -7,10 +7,12 @@ export declare class PushCommand extends ApifyCommand<typeof PushCommand> {
|
|
|
7
7
|
'build-tag': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
8
|
'wait-for-finish': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
9
|
'no-prompt': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
force: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
11
|
};
|
|
11
12
|
static args: {
|
|
12
13
|
actorId: import("@oclif/core/lib/interfaces/parser.js").Arg<string | undefined, Record<string, unknown>>;
|
|
13
14
|
};
|
|
15
|
+
catch(caughtError: Error): Promise<void>;
|
|
14
16
|
run(): Promise<void>;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=push.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA6BvD,qBAAa,WAAY,SAAQ,YAAY,CAAC,OAAO,WAAW,CAAC;IAC7D,OAAgB,WAAW,SAI4H;IAEvJ,OAAgB,KAAK;;;;;;;MAgCnB;IAEF,OAAgB,IAAI;;MAMlB;IAGa,KAAK,CAAC,WAAW,EAAE,KAAK;IAIjC,GAAG;CA8NZ"}
|
package/dist/commands/push.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { readFileSync, unlinkSync } from 'node:fs';
|
|
1
|
+
import { readFileSync, unlinkSync, statSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
2
3
|
import process from 'node:process';
|
|
3
4
|
import { fetchManifest } from '@apify/actor-templates';
|
|
4
5
|
import { ACTOR_JOB_STATUSES, ACTOR_SOURCE_TYPES, MAX_MULTIFILE_BYTES } from '@apify/consts';
|
|
@@ -7,7 +8,7 @@ import inquirer from 'inquirer';
|
|
|
7
8
|
import isCI from 'is-ci';
|
|
8
9
|
import open from 'open';
|
|
9
10
|
import { ApifyCommand } from '../lib/apify_command.js';
|
|
10
|
-
import { LOCAL_CONFIG_PATH, UPLOADS_STORE_NAME } from '../lib/consts.js';
|
|
11
|
+
import { CommandExitCodes, DEPRECATED_LOCAL_CONFIG_NAME, LOCAL_CONFIG_PATH, UPLOADS_STORE_NAME } from '../lib/consts.js';
|
|
11
12
|
import { sumFilesSizeInBytes } from '../lib/files.js';
|
|
12
13
|
import { error, info, link, run, success, warning } from '../lib/outputs.js';
|
|
13
14
|
import { transformEnvToEnvVars } from '../lib/secrets.js';
|
|
@@ -21,12 +22,43 @@ const DEFAULT_RUN_OPTIONS = {
|
|
|
21
22
|
const DEFAULT_ACTOR_VERSION_NUMBER = '0.0';
|
|
22
23
|
// It would be better to use `version-0.0` or similar,
|
|
23
24
|
// or even have no default tag, but the platform complains when
|
|
24
|
-
//
|
|
25
|
+
// Actor does not have a build with a `latest` tag, so until
|
|
25
26
|
// that changes, we have to add it.
|
|
26
27
|
const DEFAULT_BUILD_TAG = 'latest';
|
|
27
28
|
export class PushCommand extends ApifyCommand {
|
|
29
|
+
// TODO: Global handler in ApifyCommand
|
|
30
|
+
async catch(caughtError) {
|
|
31
|
+
throw caughtError;
|
|
32
|
+
}
|
|
28
33
|
async run() {
|
|
29
34
|
const cwd = process.cwd();
|
|
35
|
+
// Validate there are files before rest of the logic
|
|
36
|
+
const filePathsToPush = await getActorLocalFilePaths(cwd);
|
|
37
|
+
if (!filePathsToPush.length) {
|
|
38
|
+
error({ message: 'You need to call this command from a folder that has an Actor in it!' });
|
|
39
|
+
process.exitCode = CommandExitCodes.NoFilesToPush;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (
|
|
43
|
+
// Check that some of these files exist, cuz otherwise we cannot do much
|
|
44
|
+
![
|
|
45
|
+
// old apify project
|
|
46
|
+
DEPRECATED_LOCAL_CONFIG_NAME,
|
|
47
|
+
// new apify project
|
|
48
|
+
'actor.json',
|
|
49
|
+
'.actor/actor.json',
|
|
50
|
+
// The .actor folder existing in general
|
|
51
|
+
'.actor',
|
|
52
|
+
].some((filePath) => filePathsToPush.some((fp) => fp === filePath || fp.startsWith(filePath)))) {
|
|
53
|
+
error({
|
|
54
|
+
message: [
|
|
55
|
+
'A valid Actor could not be found in the current directory. Please make sure you are in the correct directory.',
|
|
56
|
+
'You can also turn this directory into an Actor by running `apify init`.',
|
|
57
|
+
].join('\n'),
|
|
58
|
+
});
|
|
59
|
+
process.exitCode = CommandExitCodes.NoFilesToPush;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
30
62
|
const apifyClient = await getLoggedClientOrThrow();
|
|
31
63
|
const localConfig = await getLocalConfigOrThrow(cwd);
|
|
32
64
|
const userInfo = await getLocalUserInfo();
|
|
@@ -34,7 +66,8 @@ export class PushCommand extends ApifyCommand {
|
|
|
34
66
|
const redirectUrlPart = isOrganizationLoggedIn ? `/organization/${userInfo.id}` : '';
|
|
35
67
|
let actorId;
|
|
36
68
|
let actor;
|
|
37
|
-
|
|
69
|
+
let isActorCreatedNow = false;
|
|
70
|
+
// User can override Actor version and build tag, attributes in localConfig will remain same.
|
|
38
71
|
const version = this.flags.version || this.flags.versionNumber || localConfig?.version || DEFAULT_ACTOR_VERSION_NUMBER;
|
|
39
72
|
let buildTag = this.flags.buildTag || localConfig.buildTag;
|
|
40
73
|
// We can't add the default build tag to everything. If a user creates a new
|
|
@@ -47,8 +80,8 @@ export class PushCommand extends ApifyCommand {
|
|
|
47
80
|
const waitForFinishMillis = Number.isNaN(this.flags.waitForFinish)
|
|
48
81
|
? undefined
|
|
49
82
|
: Number.parseInt(this.flags.waitForFinish, 10) * 1000;
|
|
50
|
-
// User can override actorId of pushing
|
|
51
|
-
// It causes that we push
|
|
83
|
+
// User can override actorId of pushing Actor.
|
|
84
|
+
// It causes that we push Actor to this id but attributes in localConfig will remain same.
|
|
52
85
|
const forceActorId = this.args.actorId;
|
|
53
86
|
if (forceActorId) {
|
|
54
87
|
actor = (await apifyClient.actor(forceActorId).get());
|
|
@@ -79,23 +112,38 @@ export class PushCommand extends ApifyCommand {
|
|
|
79
112
|
};
|
|
80
113
|
actor = await apifyClient.actors().create(newActor);
|
|
81
114
|
actorId = actor.id;
|
|
82
|
-
|
|
115
|
+
isActorCreatedNow = true;
|
|
116
|
+
info({ message: `Created Actor with name ${localConfig.name} on Apify.` });
|
|
83
117
|
}
|
|
84
118
|
}
|
|
85
|
-
info(`Deploying Actor '${localConfig.name}' to Apify.`);
|
|
86
|
-
const filePathsToPush = await getActorLocalFilePaths(cwd);
|
|
119
|
+
info({ message: `Deploying Actor '${localConfig.name}' to Apify.` });
|
|
87
120
|
const filesSize = await sumFilesSizeInBytes(filePathsToPush, cwd);
|
|
88
121
|
const actorClient = apifyClient.actor(actorId);
|
|
89
122
|
let sourceType;
|
|
90
123
|
let sourceFiles;
|
|
91
124
|
let tarballUrl;
|
|
92
125
|
if (filesSize < MAX_MULTIFILE_BYTES) {
|
|
126
|
+
const client = await actorClient.get();
|
|
127
|
+
if (!isActorCreatedNow) {
|
|
128
|
+
// Check when was files modified last
|
|
129
|
+
const mostRecentModifiedFileMs = filePathsToPush.reduce((modifiedMs, filePath) => {
|
|
130
|
+
const { mtimeMs, ctimeMs } = statSync(join(cwd, filePath));
|
|
131
|
+
// Sometimes it's possible mtimeMs is some messed up value (like 2000/01/01 midnight), then we want to check created if it's newer
|
|
132
|
+
const fileModifiedMs = mtimeMs > ctimeMs ? mtimeMs : ctimeMs;
|
|
133
|
+
return modifiedMs > fileModifiedMs ? modifiedMs : fileModifiedMs;
|
|
134
|
+
}, 0);
|
|
135
|
+
const actorModifiedMs = client?.modifiedAt.valueOf();
|
|
136
|
+
if (!this.flags.force && actorModifiedMs && mostRecentModifiedFileMs < actorModifiedMs && (localConfig?.name || forceActorId)) {
|
|
137
|
+
throw new Error(`Actor with identifier "${localConfig?.name || forceActorId}" is already on the platform and was modified there since modified locally.
|
|
138
|
+
Skipping push. Use --force to override.`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
93
141
|
sourceFiles = await createSourceFiles(filePathsToPush, cwd);
|
|
94
142
|
sourceType = ACTOR_SOURCE_TYPES.SOURCE_FILES;
|
|
95
143
|
}
|
|
96
144
|
else {
|
|
97
145
|
// Create zip
|
|
98
|
-
run('Zipping Actor files');
|
|
146
|
+
run({ message: 'Zipping Actor files' });
|
|
99
147
|
await createActZip(TEMP_ZIP_FILE_NAME, filePathsToPush, cwd);
|
|
100
148
|
// Upload it to Apify.keyValueStores
|
|
101
149
|
const store = await apifyClient.keyValueStores().getOrCreate(UPLOADS_STORE_NAME);
|
|
@@ -111,7 +159,7 @@ export class PushCommand extends ApifyCommand {
|
|
|
111
159
|
tarballUrl = `${apifyClient.baseUrl}/key-value-stores/${store.id}/records/${key}?disableRedirect=true`;
|
|
112
160
|
sourceType = ACTOR_SOURCE_TYPES.TARBALL;
|
|
113
161
|
}
|
|
114
|
-
// Update
|
|
162
|
+
// Update Actor version
|
|
115
163
|
const actorCurrentVersion = await actorClient.version(version).get();
|
|
116
164
|
const envVars = localConfig.environmentVariables
|
|
117
165
|
? transformEnvToEnvVars(localConfig.environmentVariables)
|
|
@@ -120,7 +168,7 @@ export class PushCommand extends ApifyCommand {
|
|
|
120
168
|
const actorVersionModifier = { tarballUrl, sourceFiles, buildTag, sourceType, envVars };
|
|
121
169
|
// TODO: fix this type too -.-
|
|
122
170
|
await actorClient.version(version).update(actorVersionModifier);
|
|
123
|
-
run(`Updated version ${version} for Actor ${actor.name}.`);
|
|
171
|
+
run({ message: `Updated version ${version} for Actor ${actor.name}.` });
|
|
124
172
|
}
|
|
125
173
|
else {
|
|
126
174
|
const actorNewVersion = {
|
|
@@ -134,10 +182,10 @@ export class PushCommand extends ApifyCommand {
|
|
|
134
182
|
await actorClient.versions().create({
|
|
135
183
|
...actorNewVersion,
|
|
136
184
|
});
|
|
137
|
-
run(`Created version ${version} for Actor ${actor.name}.`);
|
|
185
|
+
run({ message: `Created version ${version} for Actor ${actor.name}.` });
|
|
138
186
|
}
|
|
139
|
-
// Build
|
|
140
|
-
run(`Building Actor ${actor.name}`);
|
|
187
|
+
// Build Actor on Apify and wait for build to finish
|
|
188
|
+
run({ message: `Building Actor ${actor.name}` });
|
|
141
189
|
let build = await actorClient.build(version, {
|
|
142
190
|
useCache: true,
|
|
143
191
|
waitForFinish: 2, // NOTE: We need to wait some time to Apify open stream and we can create connection
|
|
@@ -146,11 +194,11 @@ export class PushCommand extends ApifyCommand {
|
|
|
146
194
|
await outputJobLog(build, waitForFinishMillis);
|
|
147
195
|
}
|
|
148
196
|
catch (err) {
|
|
149
|
-
warning('Can not get log:');
|
|
197
|
+
warning({ message: 'Can not get log:' });
|
|
150
198
|
console.error(err);
|
|
151
199
|
}
|
|
152
200
|
build = (await apifyClient.build(build.id).get());
|
|
153
|
-
link('Actor build detail', `https://console.apify.com${redirectUrlPart}/actors/${build.actId}#/builds/${build.buildNumber}`);
|
|
201
|
+
link({ message: 'Actor build detail', url: `https://console.apify.com${redirectUrlPart}/actors/${build.actId}#/builds/${build.buildNumber}` });
|
|
154
202
|
// Disable open browser on CI, or if user passed --no-prompt flag
|
|
155
203
|
if (!isCI && !this.flags.noPrompt) {
|
|
156
204
|
const shouldOpenBrowser = await inquirer.prompt([
|
|
@@ -161,26 +209,29 @@ export class PushCommand extends ApifyCommand {
|
|
|
161
209
|
}
|
|
162
210
|
}
|
|
163
211
|
if (build.status === ACTOR_JOB_STATUSES.SUCCEEDED) {
|
|
164
|
-
success('Actor was deployed to Apify cloud and built there.');
|
|
212
|
+
success({ message: 'Actor was deployed to Apify cloud and built there.' });
|
|
165
213
|
// @ts-expect-error FIX THESE TYPES 😢
|
|
166
214
|
}
|
|
167
215
|
else if (build.status === ACTOR_JOB_STATUSES.READY) {
|
|
168
|
-
warning('Build is waiting for allocation.');
|
|
216
|
+
warning({ message: 'Build is waiting for allocation.' });
|
|
169
217
|
// @ts-expect-error FIX THESE TYPES 😢
|
|
170
218
|
}
|
|
171
219
|
else if (build.status === ACTOR_JOB_STATUSES.RUNNING) {
|
|
172
|
-
warning('Build is still running.');
|
|
220
|
+
warning({ message: 'Build is still running.' });
|
|
173
221
|
// @ts-expect-error FIX THESE TYPES 😢
|
|
174
222
|
}
|
|
175
223
|
else if (build.status === ACTOR_JOB_STATUSES.ABORTED || build.status === ACTOR_JOB_STATUSES.ABORTING) {
|
|
176
|
-
warning('Build was aborted!');
|
|
224
|
+
warning({ message: 'Build was aborted!' });
|
|
225
|
+
process.exitCode = CommandExitCodes.BuildAborted;
|
|
177
226
|
// @ts-expect-error FIX THESE TYPES 😢
|
|
178
227
|
}
|
|
179
228
|
else if (build.status === ACTOR_JOB_STATUSES.TIMED_OUT || build.status === ACTOR_JOB_STATUSES.TIMING_OUT) {
|
|
180
|
-
warning('Build timed out!');
|
|
229
|
+
warning({ message: 'Build timed out!' });
|
|
230
|
+
process.exitCode = CommandExitCodes.BuildTimedOut;
|
|
181
231
|
}
|
|
182
232
|
else {
|
|
183
|
-
error('Build failed!');
|
|
233
|
+
error({ message: 'Build failed!' });
|
|
234
|
+
process.exitCode = CommandExitCodes.BuildFailed;
|
|
184
235
|
}
|
|
185
236
|
}
|
|
186
237
|
}
|
|
@@ -192,7 +243,7 @@ Object.defineProperty(PushCommand, "description", {
|
|
|
192
243
|
+ `The Actor settings are read from the "${LOCAL_CONFIG_PATH}" file in the current directory, but they can be overridden using command-line options.\n`
|
|
193
244
|
+ `NOTE: If the source files are smaller than ${MAX_MULTIFILE_BYTES / (1024 ** 2)} MB then they are uploaded as \n`
|
|
194
245
|
+ '"Multiple source files", otherwise they are uploaded as "Zip file".\n\n'
|
|
195
|
-
+ '
|
|
246
|
+
+ 'When there\'s an attempt to push files that are older than the Actor on the platform, the command will fail. Can be overwritten with --force flag.'
|
|
196
247
|
});
|
|
197
248
|
Object.defineProperty(PushCommand, "flags", {
|
|
198
249
|
enumerable: true,
|
|
@@ -225,6 +276,11 @@ Object.defineProperty(PushCommand, "flags", {
|
|
|
225
276
|
default: false,
|
|
226
277
|
required: false,
|
|
227
278
|
}),
|
|
279
|
+
force: Flags.boolean({
|
|
280
|
+
description: 'Push an Actor even when the local files are older than the Actor on the platform.',
|
|
281
|
+
default: false,
|
|
282
|
+
required: false,
|
|
283
|
+
}),
|
|
228
284
|
}
|
|
229
285
|
});
|
|
230
286
|
Object.defineProperty(PushCommand, "args", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|