bdy 1.18.10-dev → 1.18.12-dev
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/distTs/package.json +1 -1
- package/distTs/src/command/domain/buy.js +107 -35
- package/distTs/src/command/domain/search.js +64 -10
- package/distTs/src/command/scrape/validation.js +4 -1
- package/distTs/src/command/scrape.js +2 -2
- package/distTs/src/texts.js +6 -4
- package/distTs/src/visualTest/requests.js +1 -2
- package/package.json +1 -1
package/distTs/package.json
CHANGED
|
@@ -7,19 +7,36 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const output_1 = __importDefault(require("../../output"));
|
|
9
9
|
const input_1 = __importDefault(require("../../input"));
|
|
10
|
+
const sortDomains = (arr, sort) => {
|
|
11
|
+
return arr.sort((a, b) => {
|
|
12
|
+
if (sort === 'name') {
|
|
13
|
+
return a.name.localeCompare(b.name);
|
|
14
|
+
}
|
|
15
|
+
else if (sort === 'price') {
|
|
16
|
+
if (a.price === b.price)
|
|
17
|
+
return a.name.localeCompare(b.name);
|
|
18
|
+
return a.price < b.price ? -1 : 1;
|
|
19
|
+
}
|
|
20
|
+
return 0;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
10
23
|
const commandDomainBuy = (0, utils_1.newCommand)('buy', texts_1.DESC_COMMAND_DOMAIN_BUY);
|
|
11
24
|
commandDomainBuy.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
25
|
commandDomainBuy.option('-d, --tld <tld...>', texts_1.OPT_COMMAND_DOMAIN_BUY_TLD);
|
|
13
26
|
commandDomainBuy.option('-o, --owner-behalf', texts_1.OPT_COMMAND_DOMAIN_BUY_OWNER);
|
|
27
|
+
commandDomainBuy.option('-s, --sort <name|price>', texts_1.OPT_COMMAND_DOMAIN_SORT);
|
|
28
|
+
commandDomainBuy.option('-a, --only-available', texts_1.OPT_COMMAND_DOMAIN_ONLY_AVAILABLE);
|
|
14
29
|
commandDomainBuy.argument('[domain|prompt]', texts_1.OPT_COMMAND_DOMAIN_PHRASE);
|
|
15
30
|
commandDomainBuy.action(async (text, options) => {
|
|
31
|
+
const onlyAvailable = options.onlyAvailable;
|
|
32
|
+
const sort = options.sort;
|
|
16
33
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
17
34
|
const client = input_1.default.restApiTokenClient();
|
|
18
35
|
const tlds = input_1.default.allowedTlds(options.tld);
|
|
19
36
|
const prompt = (text || '').trim().toLowerCase();
|
|
20
37
|
const onOwnerBehalf = !!options.ownerBehalf;
|
|
21
38
|
if (output_1.default.isTTY()) {
|
|
22
|
-
await interactive(client, workspace, prompt, tlds, onOwnerBehalf);
|
|
39
|
+
await interactive(client, workspace, prompt, tlds, onOwnerBehalf, onlyAvailable, sort);
|
|
23
40
|
}
|
|
24
41
|
else {
|
|
25
42
|
await nonInteractive(client, workspace, prompt, tlds, onOwnerBehalf);
|
|
@@ -42,7 +59,7 @@ const buyNonInteractive = async (client, workspace, domain, onOwnerBehalf) => {
|
|
|
42
59
|
output_1.default.normal(`${domain.name} bought`);
|
|
43
60
|
}
|
|
44
61
|
};
|
|
45
|
-
const interactive = async (client, workspace, prompt, tlds, onOwnerBehalf) => {
|
|
62
|
+
const interactive = async (client, workspace, prompt, tlds, onOwnerBehalf, onlyAvailable, sort) => {
|
|
46
63
|
if (!prompt) {
|
|
47
64
|
prompt = await output_1.default.inputString(texts_1.TXT_COMMAND_DOMAIN_PROVIDE_PROMPT);
|
|
48
65
|
}
|
|
@@ -51,7 +68,8 @@ const interactive = async (client, workspace, prompt, tlds, onOwnerBehalf) => {
|
|
|
51
68
|
}
|
|
52
69
|
output_1.default.arrowSign();
|
|
53
70
|
output_1.default.normal(`Searching...`);
|
|
54
|
-
let
|
|
71
|
+
let toSort = [];
|
|
72
|
+
const items = [];
|
|
55
73
|
const added = {};
|
|
56
74
|
const createValue = (type, name, available) => {
|
|
57
75
|
return `${type}:${name}:${available ? '1' : '0'}`;
|
|
@@ -60,17 +78,26 @@ const interactive = async (client, workspace, prompt, tlds, onOwnerBehalf) => {
|
|
|
60
78
|
const subdomain = (0, utils_1.getSubdomain)(prompt);
|
|
61
79
|
const claims = await client.domainClaimable(workspace, subdomain);
|
|
62
80
|
const claimable = claims.domains.find((c) => `${subdomain}.${c.domain}` === prompt);
|
|
63
|
-
if (claimable) {
|
|
64
|
-
|
|
65
|
-
|
|
81
|
+
if (claimable && (!onlyAvailable || claimable.available)) {
|
|
82
|
+
toSort.push({
|
|
83
|
+
formatted: output_1.default.formatDomainClaim(prompt, claimable.available),
|
|
84
|
+
value: createValue('claim', prompt, claimable.available),
|
|
85
|
+
name: prompt,
|
|
86
|
+
price: 0,
|
|
87
|
+
});
|
|
66
88
|
added[prompt] = true;
|
|
67
89
|
}
|
|
68
90
|
else {
|
|
69
91
|
const search = await client.domainSearch(workspace, [prompt]);
|
|
70
92
|
const buyable = search.domains.find((d) => d.name === prompt);
|
|
71
|
-
if (buyable
|
|
72
|
-
|
|
73
|
-
|
|
93
|
+
if (buyable &&
|
|
94
|
+
(!onlyAvailable || (buyable.available && !buyable.premium))) {
|
|
95
|
+
toSort.push({
|
|
96
|
+
formatted: output_1.default.formatDomain(buyable),
|
|
97
|
+
value: createValue('domain', prompt, buyable.available && !buyable.premium),
|
|
98
|
+
name: prompt,
|
|
99
|
+
price: buyable.available && !buyable.premium ? buyable.prices.create.price : Infinity,
|
|
100
|
+
});
|
|
74
101
|
added[prompt] = true;
|
|
75
102
|
}
|
|
76
103
|
}
|
|
@@ -98,49 +125,80 @@ const interactive = async (client, workspace, prompt, tlds, onOwnerBehalf) => {
|
|
|
98
125
|
const domainsUnavailable = search.domains.filter((d) => !d.available || d.premium);
|
|
99
126
|
domainsAvailable.forEach((d) => {
|
|
100
127
|
if (!added[d.name]) {
|
|
101
|
-
|
|
128
|
+
toSort.push({
|
|
129
|
+
formatted: output_1.default.formatDomain(d),
|
|
130
|
+
value: createValue('domain', d.name, true),
|
|
131
|
+
name: d.name,
|
|
132
|
+
price: d.prices.create.price,
|
|
133
|
+
});
|
|
102
134
|
added[d.name] = true;
|
|
103
135
|
}
|
|
104
136
|
});
|
|
105
137
|
claimsAvailable.forEach((c, i) => {
|
|
106
138
|
const domain = `${prompt}.${c.domain}`;
|
|
107
139
|
if (!added[domain]) {
|
|
108
|
-
const item =
|
|
140
|
+
const item = {
|
|
141
|
+
formatted: output_1.default.formatDomainClaim(domain, true),
|
|
142
|
+
value: createValue('claim', domain, true),
|
|
143
|
+
name: domain,
|
|
144
|
+
price: 0,
|
|
145
|
+
};
|
|
109
146
|
if (i < 5)
|
|
110
|
-
|
|
147
|
+
toSort.unshift(item);
|
|
111
148
|
else
|
|
112
|
-
|
|
113
|
-
added[domain] = true;
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
domainsUnavailable.forEach((d) => {
|
|
117
|
-
if (!added[d.name]) {
|
|
118
|
-
items.push(output_1.default.createMenuItem(output_1.default.formatDomain(d), createValue('domain', d.name, false)));
|
|
119
|
-
added[d.name] = true;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
claimsUnavailable.forEach((c) => {
|
|
123
|
-
const domain = `${prompt}.${c.domain}`;
|
|
124
|
-
if (!added[domain]) {
|
|
125
|
-
const item = output_1.default.createMenuItem(output_1.default.formatDomainClaim(domain, false), createValue('claim', domain, false));
|
|
126
|
-
items.push(item);
|
|
149
|
+
toSort.push(item);
|
|
127
150
|
added[domain] = true;
|
|
128
151
|
}
|
|
129
152
|
});
|
|
130
|
-
if (
|
|
131
|
-
|
|
132
|
-
|
|
153
|
+
if (!onlyAvailable) {
|
|
154
|
+
domainsUnavailable.forEach((d) => {
|
|
155
|
+
if (!added[d.name]) {
|
|
156
|
+
toSort.push({
|
|
157
|
+
formatted: output_1.default.formatDomain(d),
|
|
158
|
+
value: createValue('domain', d.name, false),
|
|
159
|
+
name: d.name,
|
|
160
|
+
price: Infinity,
|
|
161
|
+
});
|
|
162
|
+
added[d.name] = true;
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
claimsUnavailable.forEach((c) => {
|
|
166
|
+
const domain = `${prompt}.${c.domain}`;
|
|
167
|
+
if (!added[domain]) {
|
|
168
|
+
toSort.push({
|
|
169
|
+
formatted: output_1.default.formatDomainClaim(domain, false),
|
|
170
|
+
value: createValue('claim', domain, false),
|
|
171
|
+
name: domain,
|
|
172
|
+
price: 0,
|
|
173
|
+
});
|
|
174
|
+
added[domain] = true;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
133
178
|
}
|
|
134
179
|
}
|
|
180
|
+
if (toSort.length > 30)
|
|
181
|
+
toSort = toSort.filter((_, i) => i < 30);
|
|
182
|
+
if (toSort.length > 0) {
|
|
183
|
+
items.push(output_1.default.createMenuSeparator('Matched'));
|
|
184
|
+
sortDomains(toSort, sort).forEach((item) => {
|
|
185
|
+
items.push(output_1.default.createMenuItem(item.formatted, item.value));
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
toSort = [];
|
|
135
189
|
const suggestions = await client.domainSuggest(workspace, prompt, tlds, 5);
|
|
136
190
|
if (suggestions.domains.length > 0 || suggestions.claims.length > 0) {
|
|
137
|
-
items.push(output_1.default.createMenuSeparator('Suggestions'));
|
|
138
191
|
let i = 0;
|
|
139
192
|
suggestions.claims.forEach((c) => {
|
|
140
193
|
if (i >= 10)
|
|
141
194
|
return;
|
|
142
195
|
if (!added[c]) {
|
|
143
|
-
|
|
196
|
+
toSort.push({
|
|
197
|
+
formatted: output_1.default.formatDomainClaim(c, true),
|
|
198
|
+
value: createValue('claim', c, true),
|
|
199
|
+
name: c,
|
|
200
|
+
price: 0,
|
|
201
|
+
});
|
|
144
202
|
added[c] = true;
|
|
145
203
|
i += 1;
|
|
146
204
|
}
|
|
@@ -149,12 +207,23 @@ const interactive = async (client, workspace, prompt, tlds, onOwnerBehalf) => {
|
|
|
149
207
|
if (i >= 10)
|
|
150
208
|
return;
|
|
151
209
|
if (!added[d.name]) {
|
|
152
|
-
|
|
210
|
+
toSort.push({
|
|
211
|
+
formatted: output_1.default.formatDomain(d),
|
|
212
|
+
value: createValue('domain', d.name, true),
|
|
213
|
+
name: d.name,
|
|
214
|
+
price: d.available && !d.premium ? d.prices.create.price : Infinity,
|
|
215
|
+
});
|
|
153
216
|
added[d.name] = true;
|
|
154
217
|
i += 1;
|
|
155
218
|
}
|
|
156
219
|
});
|
|
157
220
|
}
|
|
221
|
+
if (toSort.length > 0) {
|
|
222
|
+
items.push(output_1.default.createMenuSeparator('Suggestions'));
|
|
223
|
+
sortDomains(toSort, sort).forEach((item) => {
|
|
224
|
+
items.push(output_1.default.createMenuItem(item.formatted, item.value));
|
|
225
|
+
});
|
|
226
|
+
}
|
|
158
227
|
output_1.default.clearPreviousLine();
|
|
159
228
|
if (!items.length) {
|
|
160
229
|
output_1.default.exitError(texts_1.ERR_COMMAND_DOMAIN_NOT_FOUND);
|
|
@@ -199,8 +268,11 @@ const nonInteractive = async (client, workspace, prompt, tlds, onOwnerBehalf) =>
|
|
|
199
268
|
await claimNonInteractive(client, workspace, suggestions.claims[0], onOwnerBehalf);
|
|
200
269
|
return;
|
|
201
270
|
}
|
|
202
|
-
|
|
203
|
-
|
|
271
|
+
const domains = suggestions.domains.sort((a, b) => {
|
|
272
|
+
return a.prices.create.price < b.prices.create.price ? -1 : 1;
|
|
273
|
+
});
|
|
274
|
+
if (domains.length > 0) {
|
|
275
|
+
await buyNonInteractive(client, workspace, domains[0], onOwnerBehalf);
|
|
204
276
|
return;
|
|
205
277
|
}
|
|
206
278
|
output_1.default.exitError(texts_1.ERR_COMMAND_DOMAIN_NOT_FOUND);
|
|
@@ -7,11 +7,27 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
const texts_1 = require("../../texts");
|
|
8
8
|
const input_1 = __importDefault(require("../../input"));
|
|
9
9
|
const output_1 = __importDefault(require("../../output"));
|
|
10
|
+
const sort = (arr, sort) => {
|
|
11
|
+
return arr.sort((a, b) => {
|
|
12
|
+
if (sort === 'name') {
|
|
13
|
+
return a.name.localeCompare(b.name);
|
|
14
|
+
}
|
|
15
|
+
else if (sort === 'price') {
|
|
16
|
+
if (a.price === b.price)
|
|
17
|
+
return a.name.localeCompare(b.name);
|
|
18
|
+
return a.price < b.price ? -1 : 1;
|
|
19
|
+
}
|
|
20
|
+
return 0;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
10
23
|
const commandDomainSearch = (0, utils_1.newCommand)('search', texts_1.DESC_COMMAND_DOMAIN_SEARCH);
|
|
11
24
|
commandDomainSearch.option('-w, --workspace <domain>', texts_1.OPTION_REST_API_WORKSPACE);
|
|
12
25
|
commandDomainSearch.option('-d, --tld <tld...>', texts_1.OPT_COMMAND_DOMAIN_BUY_TLD);
|
|
26
|
+
commandDomainSearch.option('-s, --sort <name|price>', texts_1.OPT_COMMAND_DOMAIN_SORT);
|
|
27
|
+
commandDomainSearch.option('-a, --only-available', texts_1.OPT_COMMAND_DOMAIN_ONLY_AVAILABLE);
|
|
13
28
|
commandDomainSearch.argument('[domain|prompt]', texts_1.OPT_COMMAND_DOMAIN_PHRASE);
|
|
14
29
|
commandDomainSearch.action(async (text, options) => {
|
|
30
|
+
const onlyAvailable = options.onlyAvailable;
|
|
15
31
|
const workspace = input_1.default.restApiWorkspace(options.workspace);
|
|
16
32
|
const client = input_1.default.restApiTokenClient();
|
|
17
33
|
const tlds = input_1.default.allowedTlds(options.tld);
|
|
@@ -29,14 +45,25 @@ commandDomainSearch.action(async (text, options) => {
|
|
|
29
45
|
const subdomain = (0, utils_1.getSubdomain)(prompt);
|
|
30
46
|
const claims = await client.domainClaimable(workspace, subdomain);
|
|
31
47
|
const claimable = claims.domains.find((c) => `${subdomain}.${c.domain}` === prompt);
|
|
32
|
-
if (claimable) {
|
|
33
|
-
matched.push(
|
|
48
|
+
if (claimable && (!onlyAvailable || claimable.available)) {
|
|
49
|
+
matched.push({
|
|
50
|
+
formatted: output_1.default.formatDomainClaim(prompt, claimable.available),
|
|
51
|
+
price: 0,
|
|
52
|
+
name: prompt,
|
|
53
|
+
});
|
|
34
54
|
}
|
|
35
55
|
else {
|
|
36
56
|
const search = await client.domainSearch(workspace, [prompt]);
|
|
37
57
|
const buyable = search.domains.find((d) => d.name === prompt);
|
|
38
|
-
if (buyable
|
|
39
|
-
|
|
58
|
+
if (buyable &&
|
|
59
|
+
(!onlyAvailable || (buyable.available && !buyable.premium))) {
|
|
60
|
+
matched.push({
|
|
61
|
+
formatted: output_1.default.formatDomain(buyable),
|
|
62
|
+
price: !buyable.available || buyable.premium
|
|
63
|
+
? Infinity
|
|
64
|
+
: buyable.prices.create.price,
|
|
65
|
+
name: buyable.name,
|
|
66
|
+
});
|
|
40
67
|
}
|
|
41
68
|
}
|
|
42
69
|
}
|
|
@@ -57,10 +84,23 @@ commandDomainSearch.action(async (text, options) => {
|
|
|
57
84
|
return aIdx < bIdx ? -1 : 1;
|
|
58
85
|
});
|
|
59
86
|
claims.domains.forEach((c) => {
|
|
60
|
-
|
|
87
|
+
if (!onlyAvailable || c.available) {
|
|
88
|
+
const name = `${prompt}.${c.domain}`;
|
|
89
|
+
matched.push({
|
|
90
|
+
formatted: output_1.default.formatDomainClaim(name, c.available),
|
|
91
|
+
price: 0,
|
|
92
|
+
name,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
61
95
|
});
|
|
62
96
|
search.domains.forEach((d) => {
|
|
63
|
-
|
|
97
|
+
if (!onlyAvailable || (d.available && !d.premium)) {
|
|
98
|
+
matched.push({
|
|
99
|
+
formatted: output_1.default.formatDomain(d),
|
|
100
|
+
price: !d.available || d.premium ? Infinity : d.prices.create.price,
|
|
101
|
+
name: d.name,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
64
104
|
});
|
|
65
105
|
}
|
|
66
106
|
const result = await client.domainSuggest(workspace, prompt, tlds, 5);
|
|
@@ -69,18 +109,32 @@ commandDomainSearch.action(async (text, options) => {
|
|
|
69
109
|
if (matched.length > 0) {
|
|
70
110
|
hasAny = true;
|
|
71
111
|
output_1.default.normal('Matched');
|
|
72
|
-
matched.forEach((m) => {
|
|
73
|
-
output_1.default.normal(m);
|
|
112
|
+
sort(matched, options.sort).forEach((m) => {
|
|
113
|
+
output_1.default.normal(m.formatted);
|
|
74
114
|
});
|
|
75
115
|
}
|
|
76
116
|
if (result.domains.length > 0 || result.claims.length > 0) {
|
|
77
117
|
hasAny = true;
|
|
78
118
|
output_1.default.normal('Suggestions');
|
|
119
|
+
const suggestions = [];
|
|
79
120
|
result.claims.forEach((c) => {
|
|
80
|
-
|
|
121
|
+
suggestions.push({
|
|
122
|
+
formatted: output_1.default.formatDomainClaim(c, true),
|
|
123
|
+
price: 0,
|
|
124
|
+
name: c,
|
|
125
|
+
});
|
|
81
126
|
});
|
|
82
127
|
result.domains.forEach((d) => {
|
|
83
|
-
|
|
128
|
+
if (!onlyAvailable || (d.available && !d.premium)) {
|
|
129
|
+
suggestions.push({
|
|
130
|
+
formatted: output_1.default.formatDomain(d),
|
|
131
|
+
price: !d.available || d.premium ? Infinity : d.prices.create.price,
|
|
132
|
+
name: d.name,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
sort(suggestions, options.sort).forEach((s) => {
|
|
137
|
+
output_1.default.normal(s.formatted);
|
|
84
138
|
});
|
|
85
139
|
}
|
|
86
140
|
if (!hasAny)
|
|
@@ -68,6 +68,7 @@ function validateInputAndOptions(input, options) {
|
|
|
68
68
|
})
|
|
69
69
|
.optional(),
|
|
70
70
|
quality: zod_1.z.number().min(1).max(100).optional(),
|
|
71
|
+
fullPage: zod_1.z.boolean().optional(),
|
|
71
72
|
})
|
|
72
73
|
.transform((data) => ({
|
|
73
74
|
...data,
|
|
@@ -98,6 +99,9 @@ function validateInputAndOptions(input, options) {
|
|
|
98
99
|
if (typeof quality === 'number') {
|
|
99
100
|
entry.quality = quality;
|
|
100
101
|
}
|
|
102
|
+
if (fullPage) {
|
|
103
|
+
entry.fullPage = fullPage;
|
|
104
|
+
}
|
|
101
105
|
parsedOutputTypes = [entry];
|
|
102
106
|
}
|
|
103
107
|
let parsedDevices;
|
|
@@ -129,7 +133,6 @@ function validateInputAndOptions(input, options) {
|
|
|
129
133
|
respectRobots,
|
|
130
134
|
outputTypes: parsedOutputTypes,
|
|
131
135
|
outputDir,
|
|
132
|
-
fullPage,
|
|
133
136
|
colorScheme,
|
|
134
137
|
browsers: parsedBrowsers,
|
|
135
138
|
devices: parsedDevices,
|
|
@@ -50,11 +50,11 @@ commandScrape.action(async (inputUrl, options) => {
|
|
|
50
50
|
if (!checkToken('scrape')) {
|
|
51
51
|
output_1.default.exitError(texts_1.ERR_MISSING_SCRAPE_TOKEN);
|
|
52
52
|
}
|
|
53
|
-
const { url, follow, respectRobots, outputTypes, outputDir,
|
|
53
|
+
const { url, follow, respectRobots, outputTypes, outputDir, colorScheme, browsers, devices, cookies, requestHeaders, delay, waitForSelectors, localStorage, } = validateInputAndOptions(inputUrl, options);
|
|
54
54
|
try {
|
|
55
55
|
const ciAndGitInfo = await getCiAndGitInfo({});
|
|
56
56
|
setCiAndCommitInfo(ciAndGitInfo);
|
|
57
|
-
const { buildId } = await sendScrap(url, follow, respectRobots, outputTypes,
|
|
57
|
+
const { buildId } = await sendScrap(url, follow, respectRobots, outputTypes, colorScheme, browsers, devices, cookies, requestHeaders, delay, waitForSelectors, localStorage);
|
|
58
58
|
const status = await watchSessionStatus(buildId);
|
|
59
59
|
if (!status.ok) {
|
|
60
60
|
output_1.default.exitError(`Scrape session failed: ${status.error}`);
|
package/distTs/src/texts.js
CHANGED
|
@@ -12,9 +12,9 @@ exports.OPTION_SANDBOX_YAML = exports.OPTION_SANDBOX_TAGS = exports.OPTION_SANDB
|
|
|
12
12
|
exports.DESC_COMMAND_SANDBOX_SNAPSHOT_LIST = exports.DESC_COMMAND_SANDBOX_SNAPSHOT = exports.TXT_SANDBOX_COMMAND_KILLED = exports.OPTION_SANDBOX_COMMAND_KILL_CONFIRM = exports.OPTION_SANDBOX_LOGS_LIMIT = exports.OPTION_SANDBOX_APP_ID = exports.OPTION_SANDBOX_COMMAND_ID = exports.DESC_COMMAND_SANDBOX_EXEC_KILL = exports.DESC_COMMAND_SANDBOX_EXEC_LOGS = exports.DESC_COMMAND_SANDBOX_APP_START = exports.DESC_COMMAND_SANDBOX_APP_STOP = exports.DESC_COMMAND_SANDBOX_APP_STATUS = exports.DESC_COMMAND_SANDBOX_APP_LOGS = exports.DESC_COMMAND_SANDBOX_EXEC_STATUS = exports.DESC_COMMAND_SANDBOX_EXEC_LIST = exports.DESC_COMMAND_SANDBOX_APP_LIST = exports.TXT_SANDBOX_WAITING_START = exports.TXT_SANDBOX_WAITING_STOP = exports.TXT_SANDBOX_WAITING_APPS = exports.TXT_SANDBOX_WAITING_SETUP = exports.TXT_SANDBOX_WAITING_RUNNING = exports.TXT_SANDBOX_STOPPED = exports.TXT_SANDBOX_STARTED = exports.TXT_SANDBOX_DESTROYED = exports.TXT_SANDBOX_DESTROY_CONFIRM = exports.TXT_SANDBOX_UPDATED = exports.TXT_SANDBOX_CREATED = exports.TXT_SANDBOX_CREATING = exports.TXT_SANDBOX_APP_STARTED = exports.TXT_SANDBOX_APP_STOPPED = exports.OPTION_SANDBOX_WAIT = exports.OPTION_SANDBOX_WAIT_APPS = exports.OPTION_SANDBOX_WAIT_CONFIGURED = exports.OPTION_SANDBOX_WAIT_RUNNING = exports.ERR_SANDBOX_STOP_FAILED = exports.ERR_SANDBOX_NO_COMMANDS = exports.ERR_SANDBOX_RUNNING_FAILED = exports.ERR_SANDBOX_STOP_TIMEOUT = exports.ERR_SANDBOX_SNAPSHOT_TIMEOUT = exports.ERR_SANDBOX_RUNNING_TIMEOUT = exports.ERR_SANDBOX_APPS_TIMEOUT = exports.ERR_SANDBOX_SETUP_TIMEOUT = exports.ERR_SANDBOX_APP_FAILED = exports.ERR_SANDBOX_SETUP_FAILED = exports.ERR_SANDBOX_INVALID_RESOURCES = exports.ERR_SANDBOX_APP_NOT_FOUND = exports.ERR_SANDBOX_NOT_FOUND = exports.OPTION_SANDBOX_RUNTIME = exports.OPTION_SANDBOX_APP_DIR = exports.OPTION_SANDBOX_APP_COMMAND = void 0;
|
|
13
13
|
exports.TXT_SANDBOX_EXEC_ID = exports.ERR_SANDBOX_CP_INVALID_SOURCE = exports.ERR_SANDBOX_CP_INVALID_DEST = exports.ERR_SANDBOX_CP_REPLACE = exports.ERR_SANDBOX_CP_MKDIR = exports.ERR_SANDBOX_CP_PATH_EXISTS = exports.ERR_SANDBOX_CP_NOT_EMPTY_DIR = exports.ERR_SANDBOX_CP_READDIR = exports.ERR_SANDBOX_CP_DEST_NOT_FOLDER = exports.ERR_SANDBOX_CP_SOURCE_NOT_FOUND = exports.TXT_SANDBOX_CP_DONE = exports.TXT_SANDBOX_CP_PROGRESS = exports.TXT_SANDBOX_UNZIPPING_COUNT = exports.TXT_SANDBOX_UNZIP_DONE = exports.TXT_SANDBOX_UNZIP = exports.TXT_SANDBOX_CP_DOWNLOAD_DONE = exports.TXT_SANDBOX_CP_DOWNLOAD = exports.OPTION_SANDBOX_CP_DOWNLOAD_REPLACE = exports.OPTION_SANDBOX_CP_DOWNLOAD_MERGE = exports.OPTION_SANDBOX_CP_DEST = exports.OPTION_SANDBOX_CP_SOURCE = exports.DESC_COMMAND_SANDBOX_CP = exports.ERR_SANDBOX_ENDPOINTS_NOT_FOUND = exports.ERR_SANDBOX_ENDPOINT_NOT_FOUND = exports.ERR_SANDBOX_ENDPOINT_EXISTS = exports.TXT_SANDBOX_ENDPOINT_DELETED = exports.TXT_SANDBOX_ENDPOINT_DELETE_CONFIRM = exports.TXT_SANDBOX_ENDPOINT_ADDED = exports.OPTION_SANDBOX_ENDPOINT_TYPE = exports.OPTION_SANDBOX_ENDPOINT_PORT = exports.OPTION_SANDBOX_ENDPOINT_NAME_ARG = exports.OPTION_SANDBOX_ENDPOINT_NAME = exports.DESC_COMMAND_SANDBOX_ENDPOINT_DELETE = exports.DESC_COMMAND_SANDBOX_ENDPOINT_ADD = exports.DESC_COMMAND_SANDBOX_ENDPOINT_GET = exports.DESC_COMMAND_SANDBOX_ENDPOINT_LIST = exports.DESC_COMMAND_SANDBOX_ENDPOINT = exports.ERR_SANDBOX_SNAPSHOTS_NOT_FOUND = exports.ERR_SANDBOX_SNAPSHOT_NOT_FOUND = exports.ERR_SANDBOX_SNAPSHOT_FAILED = exports.TXT_SANDBOX_SNAPSHOT_WAITING = exports.TXT_SANDBOX_SNAPSHOT_DELETE_CONFIRM = exports.TXT_SANDBOX_SNAPSHOT_DELETED = exports.TXT_SANDBOX_SNAPSHOT_CREATED = exports.OPTION_SANDBOX_FROM_SNAPSHOT = exports.OPTION_SANDBOX_SNAPSHOT_NAME_ARG = exports.OPTION_SANDBOX_SNAPSHOT_NAME = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_DELETE = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_GET = exports.DESC_COMMAND_SANDBOX_SNAPSHOT_CREATE = void 0;
|
|
14
14
|
exports.TXT_LOGIN_SELECT_REGION = exports.TXT_WORKSPACE_NONE = exports.TXT_WORKSPACE_SET_SUCCESS = exports.ARG_COMMAND_WORKSPACE = exports.DESC_COMMAND_WORKSPACE_GET = exports.DESC_COMMAND_WORKSPACE_SET = exports.DESC_COMMAND_WORKSPACE_LIST = exports.DESC_COMMAND_WORKSPACE = exports.TXT_LOGOUT_SUCCESS = exports.DESC_COMMAND_LOGOUT = exports.DESC_COMMAND_LOGIN = exports.ERR_API_MEDIA_TYPE_NOT_IMPLEMENTED = exports.ERR_API_PARAMETER_NOT_REPLACED = exports.TXT_API_ENDPOINT_REQUIRED_SCOPES = exports.ERR_API_ENDPOINT_NOT_FOUND = exports.ERR_API_WRONG_METHOD = exports.ERR_SCHEMA_FETCH_FAILED = exports.OPT_COMMAND_API_INFO_URL = exports.OPT_COMMAND_API_INFO_SCHEMA = exports.OPT_COMMAND_API_INFO_METHOD = exports.OPT_COMMAND_API_LIST_SEARCH = exports.OPT_COMMAND_API_LIST_METHOD = exports.ERR_API_REQUEST_BODY_VALUE = exports.ERR_API_REQUEST_QUERY_VALUE = exports.ERR_API_REQUEST_INVALID_JSON = exports.ERR_API_REQUEST_FILE_ERROR = exports.ERR_API_REQUEST_OUTPUT_EXISTS = exports.DESC_COMMAND_API_INFO = exports.DESC_COMMAND_API_FORM = exports.DESC_COMMAND_API_JSON = exports.DESC_COMMAND_API_DATA = exports.DESC_COMMAND_API_OUTPUT = exports.DESC_COMMAND_API_REQUEST_QUERY = exports.DESC_COMMAND_API_PROJECT = exports.DESC_COMMAND_API_WORKSPACE = exports.DESC_COMMAND_API_REQUEST_URL = exports.DESC_COMMAND_API_GET = exports.DESC_COMMAND_API_PATCH = exports.DESC_COMMAND_API_DELETE = exports.DESC_COMMAND_API_PUT = exports.DESC_COMMAND_API_POST = exports.DESC_COMMAND_API_LIST = exports.DESC_COMMAND_API = exports.ERR_WHOAMI_LOGOUT = exports.TXT_WHOAMI_NO_WORKSPACE = exports.DESC_COMMAND_WHOAMI = exports.TXT_SANDBOX_EXEC_FAILED = exports.TXT_SANDBOX_EXEC_INPROGRESS = exports.TXT_SANDBOX_EXEC_SUCCESS = exports.TXT_SANDBOX_EXEC_BACKGROUND = void 0;
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.EXAMPLE_PACKAGE_VERSION_DELETE = exports.EXAMPLE_PACKAGE_VERSION_GET = exports.EXAMPLE_PACKAGE_VERSION_LIST = exports.EXAMPLE_PACKAGE_CREATE = exports.EXAMPLE_PACKAGE_DELETE = exports.EXAMPLE_PACKAGE_DOWNLOAD = exports.EXAMPLE_PACKAGE_PUBLISH = exports.EXAMPLE_PIPELINE_RUN = exports.EXAMPLE_SANDBOX_ENDPOINT_LIST = exports.EXAMPLE_SANDBOX_ENDPOINT_GET = exports.EXAMPLE_SANDBOX_ENDPOINT_DELETE = exports.EXAMPLE_SANDBOX_ENDPOINT_CREATE = exports.EXAMPLE_SANDBOX_SNAPSHOT_LIST = exports.EXAMPLE_SANDBOX_SNAPSHOT_GET = exports.EXAMPLE_SANDBOX_SNAPSHOT_DELETE = void 0;
|
|
15
|
+
exports.TXT_PACKAGE_VERSION_DELETED = exports.TXT_PACKAGE_DELETED = exports.ERR_COMMAND_PACKAGE_TYPE = exports.OPT_COMMAND_PACKAGE_VERSION = exports.OPT_COMMAND_PACKAGE_IDENTIFIER = exports.OPT_COMMAND_PACKAGE_CREATE_IDENTIFIER = exports.OPT_COMMAND_PACKAGE_NAME = exports.OPT_COMMAND_PACKAGE_TYPE = exports.DESC_COMMAND_PACKAGE_CREATE = exports.DESC_COMMAND_PACKAGE_GET = exports.TXT_PACKAGE_DOCKER_LOGIN_FAILED = exports.TXT_PACKAGE_DOCKER_LOGIN_SUCCESS = exports.TXT_PACKAGE_VERSION_DELETE_CONFIRM = exports.TXT_PACKAGE_DELETE_CONFIRM = exports.DESC_COMMAND_PACKAGE_DELETE = exports.ERR_COMMAND_PACKAGE_NO_PROJECTS = exports.DESC_COMMAND_PACKAGE_VERSION_GET = exports.DESC_COMMAND_PACKAGE_VERSION_LIST = exports.DESC_COMMAND_PACKAGE_VERSION_DELETE = exports.DESC_COMMAND_PACKAGE_DOCKER_LOGIN = exports.DESC_COMMAND_PACKAGE_LIST = exports.DESC_COMMAND_PACKAGE_VERSION = exports.ERR_COMMAND_DOMAIN_UNAVAILABLE = exports.OPTION_COMMAND_DOMAIN_IDENTIFIER = exports.ERR_COMMAND_DOMAIN_NO_DOMAINS = exports.TXT_COMMAND_DOMAIN_PROMPT_REQUIRED = exports.TXT_COMMAND_DOMAIN_BUY_SELECT_DOMAIN = exports.TXT_COMMAND_DOMAIN_PROVIDE_PROMPT = exports.ERR_COMMAND_DOMAIN_NOT_FOUND = exports.OPT_COMMAND_DOMAIN_ONLY_AVAILABLE = exports.OPT_COMMAND_DOMAIN_SORT = exports.OPT_COMMAND_DOMAIN_PHRASE = exports.OPT_COMMAND_DOMAIN_BUY_OWNER = exports.OPT_COMMAND_DOMAIN_BUY_TLD = exports.DESC_COMMAND_DOMAIN_GET = exports.DESC_COMMAND_DOMAIN_LIST = exports.DESC_COMMAND_DOMAIN_SEARCH = exports.DESC_COMMAND_DOMAIN_BUY = exports.DESC_COMMAND_DOMAIN = exports.ERR_API_MESSAGE_REPLACER = exports.ERR_LOGIN_INVALID_BASE_URL = exports.ERR_LOGIN_NO_WORKSPACE_FOUND = exports.ERR_LOGIN_NO_WORKSPACES = exports.ERR_LOGIN_HTTP_SUCCESS = exports.ERR_LOGIN_HTTP_FAILED = exports.TXT_LOGIN_OAUTH = exports.ERR_LOGIN_HTTP_SERVER_PORT_TAKEN = exports.TXT_LOGIN_SUCCESS = exports.TXT_LOGIN_SELECT_WORKSPACE = exports.TXT_LOGIN_ENTER_BASE_URL = void 0;
|
|
16
|
+
exports.EXAMPLE_SANDBOX_EXEC_LOGS = exports.EXAMPLE_SANDBOX_APP_STATUS = exports.EXAMPLE_SANDBOX_APP_STOP = exports.EXAMPLE_SANDBOX_APP_START = exports.EXAMPLE_SANDBOX_APP_LOGS = exports.EXAMPLE_SANDBOX_EXEC_LIST = exports.EXAMPLE_SANDBOX_APP_LIST = exports.EXAMPLE_SANDBOX_EXEC_KILL = exports.EXAMPLE_SANDBOX_EXEC_COMMAND = exports.EXAMPLE_TUNNEL_START = exports.EXAMPLE_TUNNEL_TCP = exports.EXAMPLE_TUNNEL_TLS = exports.EXAMPLE_AGENT_TUNNEL_START = exports.EXAMPLE_AGENT_TUNNEL_STATUS = exports.EXAMPLE_AGENT_TUNNEL_REMOVE = exports.EXAMPLE_AGENT_TUNNEL_LIST = exports.EXAMPLE_TUNNEL_HTTP = exports.EXAMPLE_SANDBOX_CREATE = exports.EXAMPLE_SANDBOX_CP = exports.ERR_PROJECT_NO_PROJECTS = exports.TXT_LOGIN_SELECT_PROJECT = exports.TXT_COMMAND_PROJECT_CREATED = exports.TXT_COMMAND_PROJECT_LINK_NOT_FOUND = exports.TXT_COMMAND_PROJECT_LINK_NAME = exports.TXT_COMMAND_PROJECT_LINK_SELECT_PROJECT = exports.TXT_COMMAND_PROJECT_LINK_TO = exports.TXT_COMMAND_PROJECT_LINK_EXISTING_DESC = exports.TXT_COMMAND_PROJECT_LINK_EXISTING = exports.TXT_COMMAND_PROJECT_LINK_CREATE_NEW_DESC = exports.TXT_COMMAND_PROJECT_LINK_CREATE_NEW = exports.ERR_COMMAND_PROJECT_LINK_DIR_NOT_DIR = exports.TXT_COMMAND_PROJECT_LINK_GIT_REPO_INITIALIZED = exports.TXT_COMMAND_PROJECT_LINK_GIT_REPO = exports.TXT_COMMAND_PROJECT_LINK_DIR_CONFIRM = exports.TXT_COMMAND_PROJECT_LINK_DIR_LINKED = exports.ERR_COMMAND_PROJECT_LINK_DIR_CREATE = exports.OPT_COMMAND_PROJECT_LINK_TRY_NOW = exports.OPT_COMMAND_PROJECT_LINK_SET_GIT_REMOTE = exports.OPT_COMMAND_PROJECT_LINK_HAS_REMOTE = exports.OPT_COMMAND_PROJECT_LINK_DIRECTORY = exports.OPT_COMMAND_PROJECT_LINK_GIT = exports.OPT_COMMAND_PROJECT_LINK_RELINK = exports.DESC_COMMAND_PROJECT_LINK = exports.DESC_COMMAND_PROJECT_LIST = exports.DESC_COMMAND_PROJECT_GIT = exports.DESC_COMMAND_PROJECT_GIT_CREDENTIAL = exports.DESC_COMMAND_PROJECT = exports.TXT_PACKAGE_VERSION_DOWNLOAD = exports.TXT_PACKAGE_PUBLISH = exports.TXT_PACKAGE_CREATED = void 0;
|
|
17
|
+
exports.EXAMPLE_PACKAGE_VERSION_DELETE = exports.EXAMPLE_PACKAGE_VERSION_GET = exports.EXAMPLE_PACKAGE_VERSION_LIST = exports.EXAMPLE_PACKAGE_CREATE = exports.EXAMPLE_PACKAGE_DELETE = exports.EXAMPLE_PACKAGE_DOWNLOAD = exports.EXAMPLE_PACKAGE_PUBLISH = exports.EXAMPLE_PIPELINE_RUN = exports.EXAMPLE_SANDBOX_ENDPOINT_LIST = exports.EXAMPLE_SANDBOX_ENDPOINT_GET = exports.EXAMPLE_SANDBOX_ENDPOINT_DELETE = exports.EXAMPLE_SANDBOX_ENDPOINT_CREATE = exports.EXAMPLE_SANDBOX_SNAPSHOT_LIST = exports.EXAMPLE_SANDBOX_SNAPSHOT_GET = exports.EXAMPLE_SANDBOX_SNAPSHOT_DELETE = exports.EXAMPLE_SANDBOX_SNAPSHOT_CREATE = exports.EXAMPLE_SANDBOX_EXEC_STATUS = void 0;
|
|
18
18
|
const utils_1 = require("./utils");
|
|
19
19
|
exports.ERR_REST_API_GENERAL_ERROR = 'Something went wrong';
|
|
20
20
|
exports.ERR_REST_API_NOT_RESPONDING = 'Api endpoint not responding. Try again later...';
|
|
@@ -414,7 +414,7 @@ exports.OPTION_SCRAPE_DEVICES = 'Devices definition as JSON array (e.g., --devic
|
|
|
414
414
|
exports.OPTION_SCRAPE_LOCAL_STORAGE = 'Set localStorage values used when visiting urls (format: [scope::]key=value)';
|
|
415
415
|
exports.OPTION_SCRAPE_DELAY = 'Delay in milliseconds';
|
|
416
416
|
exports.OPTION_SCRAPE_OUTPUT_DIR = 'Output directory';
|
|
417
|
-
exports.OPTION_SCRAPE_OUTPUT_TYPES = 'Output types as JSON array (e.g., --outputTypes \'[{"type":"
|
|
417
|
+
exports.OPTION_SCRAPE_OUTPUT_TYPES = 'Output types as JSON array (e.g., --outputTypes \'[{"type":"md","selector":{"type":"CSS","value":".main"}},{"type":"jpeg","quality":80,"fullPage":true}]\')';
|
|
418
418
|
exports.LOG_REGISTERING_AGENT = 'Registering agent...';
|
|
419
419
|
exports.LOG_SAVING_AGENT_SYSTEM_CONFIG = 'Saving agent system config...';
|
|
420
420
|
exports.LOG_SAVING_AGENT_PROC_ID = 'Saving agent process id in lock file...';
|
|
@@ -803,6 +803,8 @@ exports.DESC_COMMAND_DOMAIN_GET = 'Get domain';
|
|
|
803
803
|
exports.OPT_COMMAND_DOMAIN_BUY_TLD = 'Filter tld. Can be passed multiple times or separated by comma. Example: --tld=de --tld=com,io';
|
|
804
804
|
exports.OPT_COMMAND_DOMAIN_BUY_OWNER = 'Buy domain on workspace owner behalf';
|
|
805
805
|
exports.OPT_COMMAND_DOMAIN_PHRASE = 'Phrase, full domain or part of it';
|
|
806
|
+
exports.OPT_COMMAND_DOMAIN_SORT = 'Sort domains by "price" or "name"';
|
|
807
|
+
exports.OPT_COMMAND_DOMAIN_ONLY_AVAILABLE = 'Show only available domains';
|
|
806
808
|
exports.ERR_COMMAND_DOMAIN_NOT_FOUND = 'Domain not found';
|
|
807
809
|
exports.TXT_COMMAND_DOMAIN_PROVIDE_PROMPT = 'Enter domain name or describe your needs:';
|
|
808
810
|
exports.TXT_COMMAND_DOMAIN_BUY_SELECT_DOMAIN = 'Select domain:';
|
|
@@ -267,13 +267,12 @@ async function sendCompareLinks(urls, validatedOptions, sitemapSource) {
|
|
|
267
267
|
}
|
|
268
268
|
return response;
|
|
269
269
|
}
|
|
270
|
-
async function sendScrap(url, follow, respectRobots, outputTypes,
|
|
270
|
+
async function sendScrap(url, follow, respectRobots, outputTypes, colorScheme, browsers, devices, cookies, requestHeaders, delay, waitForSelectors, localStorage) {
|
|
271
271
|
const payload = {
|
|
272
272
|
url,
|
|
273
273
|
follow,
|
|
274
274
|
respectRobots,
|
|
275
275
|
outputTypes,
|
|
276
|
-
fullPage,
|
|
277
276
|
colorScheme,
|
|
278
277
|
browsers,
|
|
279
278
|
devices,
|