@intuned/runtime-dev 1.1.6-bot-detection → 1.1.6
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/dist/commands/cli-auth-sessions/utils.d.ts +1 -1
- package/dist/commands/cli-auth-sessions/utils.js +1 -1
- package/dist/commands/common/browserUtils.d.ts +1 -1
- package/dist/commands/common/browserUtils.js +1 -1
- package/dist/common/cli/constants.js +1 -1
- package/dist/common/contextStorageStateHelpers.d.ts +1 -1
- package/dist/common/contextStorageStateHelpers.js +56 -0
- package/dist/common/getPlaywrightConstructs.d.ts +1 -1
- package/dist/common/getPlaywrightConstructs.js +10 -2
- package/dist/common/runApi/errors.js +1 -1
- package/dist/common/runApi/index.d.ts +1 -1
- package/dist/common/runApi/types.d.ts +16 -16
- package/package.json +2 -2
- package/template.tsconfig.json +4 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StorageState } from "../../common/contextStorageStateHelpers";
|
|
2
2
|
import { AuthSessionMetadata, AuthSessionType } from "../../common/cli/types";
|
|
3
|
-
import * as playwright from "
|
|
3
|
+
import * as playwright from "playwright-core";
|
|
4
4
|
export declare function isAuthEnabled(): Promise<boolean>;
|
|
5
5
|
export declare function getAuthType(): Promise<AuthSessionType>;
|
|
6
6
|
export declare function ensureRecorderURLs(): Promise<{
|
|
@@ -26,7 +26,7 @@ var _tsNodeImport = require("../common/tsNodeImport");
|
|
|
26
26
|
var _promptly = require("promptly");
|
|
27
27
|
var _utils = require("../../common/cli/utils");
|
|
28
28
|
var _types = require("../../common/cli/types");
|
|
29
|
-
var playwright = _interopRequireWildcard(require("
|
|
29
|
+
var playwright = _interopRequireWildcard(require("playwright-core"));
|
|
30
30
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
31
31
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
32
32
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BrowserContext } from "
|
|
1
|
+
import { BrowserContext } from "playwright-core";
|
|
2
2
|
export declare const REMOTE_DEBUGGING_PORT = 9222;
|
|
3
3
|
export declare const getChromiumLaunchArgs: () => string[];
|
|
4
4
|
export declare function startOrRestartBrowser(): Promise<void>;
|
|
@@ -9,7 +9,7 @@ exports.saveSession = saveSession;
|
|
|
9
9
|
exports.saveSessionFromOpenedBrowser = saveSessionFromOpenedBrowser;
|
|
10
10
|
exports.startOrRestartBrowser = startOrRestartBrowser;
|
|
11
11
|
var _child_process = require("child_process");
|
|
12
|
-
var playwright = _interopRequireWildcard(require("
|
|
12
|
+
var playwright = _interopRequireWildcard(require("playwright-core"));
|
|
13
13
|
var fs = _interopRequireWildcard(require("fs-extra"));
|
|
14
14
|
var _fileUtils = require("./utils/fileUtils");
|
|
15
15
|
var _contextStorageStateHelpers = require("../../common/contextStorageStateHelpers");
|
|
@@ -9,6 +9,45 @@ async function setStorageState(context, state) {
|
|
|
9
9
|
if ("cookies" in state && state.cookies) {
|
|
10
10
|
await context.addCookies(state.cookies);
|
|
11
11
|
}
|
|
12
|
+
const page = await context.newPage();
|
|
13
|
+
if ("origins" in state && state.origins) {
|
|
14
|
+
for (const originData of state.origins || []) {
|
|
15
|
+
const origin = originData.origin;
|
|
16
|
+
await page.route(`${origin}/*`, route => route.fulfill({
|
|
17
|
+
body: "<html><head><title>Set Storage</title></head><body><h1>Set Storage</h1></body></html>",
|
|
18
|
+
contentType: "text/html",
|
|
19
|
+
status: 200
|
|
20
|
+
}));
|
|
21
|
+
try {
|
|
22
|
+
await page.goto(origin);
|
|
23
|
+
for (const item of originData.localStorage) {
|
|
24
|
+
await page.evaluate(([key, value]) => {
|
|
25
|
+
window.localStorage.setItem(key, value);
|
|
26
|
+
}, [item.name, item.value]);
|
|
27
|
+
}
|
|
28
|
+
} finally {
|
|
29
|
+
await page.unroute(`${origin}/*`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if ("sessionStorage" in state && state.sessionStorage) {
|
|
34
|
+
await context.addInitScript(storage => {
|
|
35
|
+
for (const {
|
|
36
|
+
origin,
|
|
37
|
+
sessionStorage
|
|
38
|
+
} of storage) {
|
|
39
|
+
if (window.location.origin === origin) {
|
|
40
|
+
for (const item of sessionStorage) {
|
|
41
|
+
const value = window.sessionStorage.getItem(item.name);
|
|
42
|
+
if (!value) {
|
|
43
|
+
window.sessionStorage.setItem(item.name, item.value);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}, state.sessionStorage);
|
|
49
|
+
}
|
|
50
|
+
await page.close();
|
|
12
51
|
}
|
|
13
52
|
async function getStorageState(context) {
|
|
14
53
|
const result = {};
|
|
@@ -19,6 +58,23 @@ async function getStorageState(context) {
|
|
|
19
58
|
const pages = await context.pages();
|
|
20
59
|
for (const page of pages) {
|
|
21
60
|
if (page.isClosed()) continue;
|
|
61
|
+
try {
|
|
62
|
+
const sessionData = await page.evaluate(() => {
|
|
63
|
+
const items = {
|
|
64
|
+
...window.sessionStorage
|
|
65
|
+
};
|
|
66
|
+
return {
|
|
67
|
+
origin: window.location.origin,
|
|
68
|
+
sessionStorage: Object.entries(items).map(([name, value]) => ({
|
|
69
|
+
name,
|
|
70
|
+
value
|
|
71
|
+
}))
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
sessionDataList.push(sessionData);
|
|
75
|
+
} catch (error) {
|
|
76
|
+
console.error("Error getting sessionStorage:", error);
|
|
77
|
+
}
|
|
22
78
|
}
|
|
23
79
|
result["sessionStorage"] = sessionDataList;
|
|
24
80
|
return result;
|
|
@@ -7,7 +7,7 @@ exports.getPlaywrightConstructsForMode = getPlaywrightConstructsForMode;
|
|
|
7
7
|
exports.getProductionPlaywrightConstructs = getProductionPlaywrightConstructs;
|
|
8
8
|
exports.getRemotePlaywrightContext = getRemotePlaywrightContext;
|
|
9
9
|
exports.loadSessionToContext = loadSessionToContext;
|
|
10
|
-
var playwright = _interopRequireWildcard(require("
|
|
10
|
+
var playwright = _interopRequireWildcard(require("playwright-core"));
|
|
11
11
|
var _fsExtra = _interopRequireWildcard(require("fs-extra"));
|
|
12
12
|
var fs = _fsExtra;
|
|
13
13
|
var _contextStorageStateHelpers = require("./contextStorageStateHelpers");
|
|
@@ -76,6 +76,9 @@ async function getProductionPlaywrightConstructs({
|
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
const assetsFile = _path.default.join(__dirname, "./assets/browser_scripts.js");
|
|
79
|
+
await context.addInitScript({
|
|
80
|
+
path: assetsFile
|
|
81
|
+
});
|
|
79
82
|
let page = context.pages().at(0);
|
|
80
83
|
if (page) {
|
|
81
84
|
const scriptString = await (0, _fsExtra.readFile)(assetsFile, "utf8");
|
|
@@ -101,10 +104,15 @@ async function getPlaywrightConstructsForMode(mode, cdpAddress, authSession) {
|
|
|
101
104
|
throw new Error("no context found");
|
|
102
105
|
}
|
|
103
106
|
const assetsFile = _path.default.join(__dirname, "./assets/browser_scripts.js");
|
|
107
|
+
await context.addInitScript({
|
|
108
|
+
path: assetsFile
|
|
109
|
+
});
|
|
104
110
|
const pages = await context.pages();
|
|
105
111
|
let page = null;
|
|
106
112
|
if (pages.length > 0) {
|
|
107
113
|
page = pages[0];
|
|
114
|
+
const scriptString = await fs.readFile(assetsFile, "utf8");
|
|
115
|
+
await page.evaluate(scriptString);
|
|
108
116
|
} else {
|
|
109
117
|
page = await context.newPage();
|
|
110
118
|
}
|
|
@@ -155,7 +163,7 @@ async function loadSessionToContext({
|
|
|
155
163
|
await (0, _contextStorageStateHelpers.setStorageState)(context, sessionToLoad);
|
|
156
164
|
}
|
|
157
165
|
async function getRemotePlaywrightContext(cdpAddress) {
|
|
158
|
-
const playwright = await Promise.resolve().then(() => _interopRequireWildcard(require("
|
|
166
|
+
const playwright = await Promise.resolve().then(() => _interopRequireWildcard(require("playwright-core")));
|
|
159
167
|
let browser = null;
|
|
160
168
|
if (!cdpAddress) {
|
|
161
169
|
throw new Error("cdpAddress is required");
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.runAutomationErrorCodes = exports.maxLevelsExceededErrorCode = exports.invalidCheckErrorCode = exports.invalidApiErrorCode = exports.internalInvalidInputErrorCode = exports.automationError = exports.authRequiredErrorCode = exports.authCheckNotFoundErrorCode = exports.authCheckFailedErrorCode = exports.apiNotFoundErrorCode = exports.abortedErrorCode = exports.RunAutomationError = exports.MaxLevelsExceededError = exports.InvalidCheckError = exports.InvalidApiError = exports.InternalInvalidInputError = exports.AutomationError = exports.AuthRequiredError = exports.AuthCheckNotFoundError = exports.AuthCheckFailedError = exports.ApiNotFoundError = exports.AbortedError = void 0;
|
|
7
7
|
var _runtime = require("../../runtime");
|
|
8
|
-
var playwright = _interopRequireWildcard(require("
|
|
8
|
+
var playwright = _interopRequireWildcard(require("playwright-core"));
|
|
9
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
10
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
11
|
const apiNotFoundErrorCode = exports.apiNotFoundErrorCode = "APINotFoundError";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Result } from "neverthrow";
|
|
2
2
|
import { RunAutomationError } from "./errors";
|
|
3
|
-
import { Page, BrowserContext } from "
|
|
3
|
+
import { Page, BrowserContext } from "playwright-core";
|
|
4
4
|
import { ExtendedRunApiParameters, RunApiResult, RunApiResultWithSessionOk } from "./types";
|
|
5
5
|
export * from "./types";
|
|
6
6
|
export * from "./errors";
|
|
@@ -47,18 +47,18 @@ export declare const runApiSessionSchema: z.ZodDiscriminatedUnion<"type", [z.Zod
|
|
|
47
47
|
secure: z.ZodBoolean;
|
|
48
48
|
sameSite: z.ZodEnum<["Strict", "Lax", "None"]>;
|
|
49
49
|
}, "strip", z.ZodTypeAny, {
|
|
50
|
-
path: string;
|
|
51
50
|
value: string;
|
|
52
51
|
name: string;
|
|
52
|
+
path: string;
|
|
53
53
|
domain: string;
|
|
54
54
|
expires: number;
|
|
55
55
|
httpOnly: boolean;
|
|
56
56
|
secure: boolean;
|
|
57
57
|
sameSite: "Strict" | "Lax" | "None";
|
|
58
58
|
}, {
|
|
59
|
-
path: string;
|
|
60
59
|
value: string;
|
|
61
60
|
name: string;
|
|
61
|
+
path: string;
|
|
62
62
|
domain: string;
|
|
63
63
|
expires: number;
|
|
64
64
|
httpOnly: boolean;
|
|
@@ -117,9 +117,9 @@ export declare const runApiSessionSchema: z.ZodDiscriminatedUnion<"type", [z.Zod
|
|
|
117
117
|
}>, "many">>;
|
|
118
118
|
}, "strip", z.ZodTypeAny, {
|
|
119
119
|
cookies: {
|
|
120
|
-
path: string;
|
|
121
120
|
value: string;
|
|
122
121
|
name: string;
|
|
122
|
+
path: string;
|
|
123
123
|
domain: string;
|
|
124
124
|
expires: number;
|
|
125
125
|
httpOnly: boolean;
|
|
@@ -142,9 +142,9 @@ export declare const runApiSessionSchema: z.ZodDiscriminatedUnion<"type", [z.Zod
|
|
|
142
142
|
}[] | undefined;
|
|
143
143
|
}, {
|
|
144
144
|
cookies: {
|
|
145
|
-
path: string;
|
|
146
145
|
value: string;
|
|
147
146
|
name: string;
|
|
147
|
+
path: string;
|
|
148
148
|
domain: string;
|
|
149
149
|
expires: number;
|
|
150
150
|
httpOnly: boolean;
|
|
@@ -170,9 +170,9 @@ export declare const runApiSessionSchema: z.ZodDiscriminatedUnion<"type", [z.Zod
|
|
|
170
170
|
type: "state";
|
|
171
171
|
state?: {
|
|
172
172
|
cookies: {
|
|
173
|
-
path: string;
|
|
174
173
|
value: string;
|
|
175
174
|
name: string;
|
|
175
|
+
path: string;
|
|
176
176
|
domain: string;
|
|
177
177
|
expires: number;
|
|
178
178
|
httpOnly: boolean;
|
|
@@ -198,9 +198,9 @@ export declare const runApiSessionSchema: z.ZodDiscriminatedUnion<"type", [z.Zod
|
|
|
198
198
|
type: "state";
|
|
199
199
|
state?: {
|
|
200
200
|
cookies: {
|
|
201
|
-
path: string;
|
|
202
201
|
value: string;
|
|
203
202
|
name: string;
|
|
203
|
+
path: string;
|
|
204
204
|
domain: string;
|
|
205
205
|
expires: number;
|
|
206
206
|
httpOnly: boolean;
|
|
@@ -273,18 +273,18 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
273
273
|
secure: z.ZodBoolean;
|
|
274
274
|
sameSite: z.ZodEnum<["Strict", "Lax", "None"]>;
|
|
275
275
|
}, "strip", z.ZodTypeAny, {
|
|
276
|
-
path: string;
|
|
277
276
|
value: string;
|
|
278
277
|
name: string;
|
|
278
|
+
path: string;
|
|
279
279
|
domain: string;
|
|
280
280
|
expires: number;
|
|
281
281
|
httpOnly: boolean;
|
|
282
282
|
secure: boolean;
|
|
283
283
|
sameSite: "Strict" | "Lax" | "None";
|
|
284
284
|
}, {
|
|
285
|
-
path: string;
|
|
286
285
|
value: string;
|
|
287
286
|
name: string;
|
|
287
|
+
path: string;
|
|
288
288
|
domain: string;
|
|
289
289
|
expires: number;
|
|
290
290
|
httpOnly: boolean;
|
|
@@ -343,9 +343,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
343
343
|
}>, "many">>;
|
|
344
344
|
}, "strip", z.ZodTypeAny, {
|
|
345
345
|
cookies: {
|
|
346
|
-
path: string;
|
|
347
346
|
value: string;
|
|
348
347
|
name: string;
|
|
348
|
+
path: string;
|
|
349
349
|
domain: string;
|
|
350
350
|
expires: number;
|
|
351
351
|
httpOnly: boolean;
|
|
@@ -368,9 +368,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
368
368
|
}[] | undefined;
|
|
369
369
|
}, {
|
|
370
370
|
cookies: {
|
|
371
|
-
path: string;
|
|
372
371
|
value: string;
|
|
373
372
|
name: string;
|
|
373
|
+
path: string;
|
|
374
374
|
domain: string;
|
|
375
375
|
expires: number;
|
|
376
376
|
httpOnly: boolean;
|
|
@@ -396,9 +396,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
396
396
|
type: "state";
|
|
397
397
|
state?: {
|
|
398
398
|
cookies: {
|
|
399
|
-
path: string;
|
|
400
399
|
value: string;
|
|
401
400
|
name: string;
|
|
401
|
+
path: string;
|
|
402
402
|
domain: string;
|
|
403
403
|
expires: number;
|
|
404
404
|
httpOnly: boolean;
|
|
@@ -424,9 +424,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
424
424
|
type: "state";
|
|
425
425
|
state?: {
|
|
426
426
|
cookies: {
|
|
427
|
-
path: string;
|
|
428
427
|
value: string;
|
|
429
428
|
name: string;
|
|
429
|
+
path: string;
|
|
430
430
|
domain: string;
|
|
431
431
|
expires: number;
|
|
432
432
|
httpOnly: boolean;
|
|
@@ -458,9 +458,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
458
458
|
type: "state";
|
|
459
459
|
state?: {
|
|
460
460
|
cookies: {
|
|
461
|
-
path: string;
|
|
462
461
|
value: string;
|
|
463
462
|
name: string;
|
|
463
|
+
path: string;
|
|
464
464
|
domain: string;
|
|
465
465
|
expires: number;
|
|
466
466
|
httpOnly: boolean;
|
|
@@ -492,9 +492,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
492
492
|
type: "state";
|
|
493
493
|
state?: {
|
|
494
494
|
cookies: {
|
|
495
|
-
path: string;
|
|
496
495
|
value: string;
|
|
497
496
|
name: string;
|
|
497
|
+
path: string;
|
|
498
498
|
domain: string;
|
|
499
499
|
expires: number;
|
|
500
500
|
httpOnly: boolean;
|
|
@@ -598,9 +598,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
598
598
|
type: "state";
|
|
599
599
|
state?: {
|
|
600
600
|
cookies: {
|
|
601
|
-
path: string;
|
|
602
601
|
value: string;
|
|
603
602
|
name: string;
|
|
603
|
+
path: string;
|
|
604
604
|
domain: string;
|
|
605
605
|
expires: number;
|
|
606
606
|
httpOnly: boolean;
|
|
@@ -644,9 +644,9 @@ export declare const runApiParametersSchema: z.ZodObject<{
|
|
|
644
644
|
type: "state";
|
|
645
645
|
state?: {
|
|
646
646
|
cookies: {
|
|
647
|
-
path: string;
|
|
648
647
|
value: string;
|
|
649
648
|
name: string;
|
|
649
|
+
path: string;
|
|
650
650
|
domain: string;
|
|
651
651
|
expires: number;
|
|
652
652
|
httpOnly: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intuned/runtime-dev",
|
|
3
|
-
"version": "1.1.6
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "Intuned runtime",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"minimatch": "10.0.1",
|
|
84
84
|
"nanoid": "3",
|
|
85
85
|
"neverthrow": "6.1.0",
|
|
86
|
-
"
|
|
86
|
+
"playwright": "1.44.1",
|
|
87
87
|
"playwright-extra": "4.3.6",
|
|
88
88
|
"prettier": "2.8.0",
|
|
89
89
|
"promptly": "3.2.0",
|
package/template.tsconfig.json
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"module": "ESNext",
|
|
4
3
|
"target": "ES2021",
|
|
5
|
-
"lib": [
|
|
6
|
-
"dom",
|
|
7
|
-
"es2021"
|
|
8
|
-
],
|
|
4
|
+
"lib": ["dom", "es2021"],
|
|
9
5
|
"resolveJsonModule": true,
|
|
10
6
|
"esModuleInterop": true,
|
|
11
|
-
"moduleResolution": "
|
|
7
|
+
"moduleResolution": "bundler",
|
|
8
|
+
"module": "esnext",
|
|
12
9
|
"skipLibCheck": true
|
|
13
10
|
}
|
|
14
|
-
}
|
|
11
|
+
}
|