@intuned/runtime-dev 1.3.21-fix.0 → 1.3.22-dev.5
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 +1 -0
- package/bin/intuned +20 -2
- package/dist/commands/api/run.js +1 -1
- package/dist/commands/common/browserUtils.js +10 -1
- package/dist/common/launchBrowser.d.ts +7 -0
- package/dist/common/launchBrowser.js +34 -2
- package/dist/common/playwrightContext.d.ts +2 -0
- package/dist/common/playwrightContext.js +10 -4
- package/dist/common/runApi/index.js +2 -0
- package/dist/vendor/runtime-interface.js +4 -2
- package/package.json +3 -3
- package/.claude/settings.local.json +0 -7
- package/dist/commands/intuned-cli/commands/attempt.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt.command.js +0 -8
- package/dist/commands/intuned-cli/commands/attempt_api.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_api.command.js +0 -30
- package/dist/commands/intuned-cli/commands/attempt_authsession.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_authsession.command.js +0 -8
- package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.js +0 -19
- package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.js +0 -24
- package/dist/commands/intuned-cli/commands/authsession.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/authsession.command.js +0 -8
- package/dist/commands/intuned-cli/commands/authsession_record.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/authsession_record.command.js +0 -32
- package/dist/commands/intuned-cli/commands/authsession_scaffold.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/authsession_scaffold.command.js +0 -16
- package/dist/commands/intuned-cli/commands/build.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/build.command.js +0 -12
- package/dist/commands/intuned-cli/commands/command.d.ts +0 -2
- package/dist/commands/intuned-cli/commands/command.js +0 -9
- package/dist/commands/intuned-cli/commands/deploy.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/deploy.command.js +0 -42
- package/dist/commands/intuned-cli/commands/index.d.ts +0 -18
- package/dist/commands/intuned-cli/commands/index.js +0 -203
- package/dist/commands/intuned-cli/commands/provision.command.d.ts +0 -13
- package/dist/commands/intuned-cli/commands/provision.command.js +0 -50
- package/dist/commands/intuned-cli/commands/run.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run.command.js +0 -8
- package/dist/commands/intuned-cli/commands/run_api.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_api.command.js +0 -46
- package/dist/commands/intuned-cli/commands/run_authsession.command.d.ts +0 -35
- package/dist/commands/intuned-cli/commands/run_authsession.command.js +0 -17
- package/dist/commands/intuned-cli/commands/run_authsession_create.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_authsession_create.command.js +0 -35
- package/dist/commands/intuned-cli/commands/run_authsession_update.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_authsession_update.command.js +0 -35
- package/dist/commands/intuned-cli/commands/run_authsession_validate.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_authsession_validate.command.js +0 -33
- package/dist/commands/intuned-cli/commands/types.d.ts +0 -39
- package/dist/commands/intuned-cli/commands/types.js +0 -33
- package/dist/commands/intuned-cli/constants/index.d.ts +0 -17
- package/dist/commands/intuned-cli/constants/index.js +0 -25
- package/dist/commands/intuned-cli/controller/__test__/api.test.js +0 -399
- package/dist/commands/intuned-cli/controller/__test__/authSession.test.js +0 -1061
- package/dist/commands/intuned-cli/controller/api.d.ts +0 -42
- package/dist/commands/intuned-cli/controller/api.js +0 -194
- package/dist/commands/intuned-cli/controller/authSession.d.ts +0 -209
- package/dist/commands/intuned-cli/controller/authSession.js +0 -425
- package/dist/commands/intuned-cli/controller/build.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/build.js +0 -35
- package/dist/commands/intuned-cli/controller/deploy.d.ts +0 -5
- package/dist/commands/intuned-cli/controller/deploy.js +0 -317
- package/dist/commands/intuned-cli/controller/index.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/index.js +0 -45
- package/dist/commands/intuned-cli/controller/provision.d.ts +0 -21
- package/dist/commands/intuned-cli/controller/provision.js +0 -299
- package/dist/commands/intuned-cli/controller/scaffold.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/scaffold.js +0 -77
- package/dist/commands/intuned-cli/helpers/__test__/browser.test.js +0 -152
- package/dist/commands/intuned-cli/helpers/__test__/tracing.test.js +0 -41
- package/dist/commands/intuned-cli/helpers/api.d.ts +0 -3
- package/dist/commands/intuned-cli/helpers/api.js +0 -16
- package/dist/commands/intuned-cli/helpers/auth.d.ts +0 -46
- package/dist/commands/intuned-cli/helpers/auth.js +0 -147
- package/dist/commands/intuned-cli/helpers/backend.d.ts +0 -8
- package/dist/commands/intuned-cli/helpers/backend.js +0 -35
- package/dist/commands/intuned-cli/helpers/browser.d.ts +0 -14
- package/dist/commands/intuned-cli/helpers/browser.js +0 -93
- package/dist/commands/intuned-cli/helpers/context.d.ts +0 -3
- package/dist/commands/intuned-cli/helpers/context.js +0 -33
- package/dist/commands/intuned-cli/helpers/errors.d.ts +0 -16
- package/dist/commands/intuned-cli/helpers/errors.js +0 -44
- package/dist/commands/intuned-cli/helpers/index.d.ts +0 -12
- package/dist/commands/intuned-cli/helpers/index.js +0 -137
- package/dist/commands/intuned-cli/helpers/intunedJson.d.ts +0 -40
- package/dist/commands/intuned-cli/helpers/intunedJson.js +0 -20
- package/dist/commands/intuned-cli/helpers/prompts.d.ts +0 -3
- package/dist/commands/intuned-cli/helpers/prompts.js +0 -71
- package/dist/commands/intuned-cli/helpers/proxy.d.ts +0 -5
- package/dist/commands/intuned-cli/helpers/proxy.js +0 -23
- package/dist/commands/intuned-cli/helpers/terminal.d.ts +0 -5
- package/dist/commands/intuned-cli/helpers/terminal.js +0 -13
- package/dist/commands/intuned-cli/helpers/timeout.d.ts +0 -1
- package/dist/commands/intuned-cli/helpers/timeout.js +0 -23
- package/dist/commands/intuned-cli/helpers/traces.d.ts +0 -2
- package/dist/commands/intuned-cli/helpers/traces.js +0 -32
- package/dist/commands/intuned-cli/helpers/validation.d.ts +0 -2
- package/dist/commands/intuned-cli/helpers/validation.js +0 -14
- package/dist/commands/intuned-cli/helpers/wrapper.d.ts +0 -2
- package/dist/commands/intuned-cli/helpers/wrapper.js +0 -76
- package/dist/commands/intuned-cli/index.d.ts +0 -1
- package/dist/commands/intuned-cli/index.js +0 -16
- package/dist/commands/intuned-cli/main.d.ts +0 -1
- package/dist/commands/intuned-cli/main.js +0 -35
- package/dist/commands/intuned-cli/types.d.ts +0 -70
- package/dist/commands/intuned-cli/types.js +0 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# UNRELEASED
|
|
2
2
|
|
|
3
|
+
- Add support for `ignoreHttpErrors` parameter to handle HTTP errors during browser navigation via `INTUNED_PLAYWRIGHT_CONTEXT_IGNORE_HTTP_ERRORS` environment variable.
|
|
3
4
|
- Add `timeout` parameter (in seconds, defaults to 30) to `launchBrowser` and `launchChromium` functions
|
|
4
5
|
|
|
5
6
|
# 1.3.11
|
package/bin/intuned
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require("
|
|
3
|
+
// detect `intunedctl` in PATH and run it with the provided arguments
|
|
4
|
+
const spawn = require("child_process").spawn;
|
|
5
|
+
const which = require("which");
|
|
6
|
+
|
|
7
|
+
const intunedctlPath = which.sync("intunedctl", { nothrow: true });
|
|
8
|
+
|
|
9
|
+
if (!intunedctlPath) {
|
|
10
|
+
console.error(
|
|
11
|
+
"Install Intuned CLI globally with `npm install -g @intuned/cli` to run this command."
|
|
12
|
+
);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const child = spawn(intunedctlPath, process.argv.slice(2), {
|
|
17
|
+
stdio: "inherit",
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
child.on("exit", (code) => {
|
|
21
|
+
process.exit(code ?? 0);
|
|
22
|
+
});
|
package/dist/commands/api/run.js
CHANGED
|
@@ -113,7 +113,7 @@ _commander.program.description("run the user function in the cli for testing pur
|
|
|
113
113
|
runId: (0, _nanoid.nanoid)(),
|
|
114
114
|
proxy: options.proxy,
|
|
115
115
|
getAuthSessionParameters: authSessionParametersJson !== undefined ? async () => authSessionParametersJson : undefined
|
|
116
|
-
},
|
|
116
|
+
}, () => executeCLI(apiName, mode, inputData, options));
|
|
117
117
|
process.exit(0);
|
|
118
118
|
});
|
|
119
119
|
_commander.program.parse(process.argv);
|
|
@@ -15,7 +15,16 @@ var _contextStorageStateHelpers = require("../../common/contextStorageStateHelpe
|
|
|
15
15
|
var playwright = _interopRequireWildcard(require("playwright"));
|
|
16
16
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
17
|
const REMOTE_DEBUGGING_PORT = exports.REMOTE_DEBUGGING_PORT = 9222;
|
|
18
|
-
|
|
18
|
+
function getMacKeychainBypassArgs() {
|
|
19
|
+
if (process.platform !== "darwin") {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
if (process.env.INTUNED_MAC_DISABLE_KEYCHAIN_PROMPTS === "0") {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
return ["--use-mock-keychain", "--password-store=basic"];
|
|
26
|
+
}
|
|
27
|
+
const getChromiumLaunchArgs = () => ["--no-sandbox", `--remote-debugging-port=${REMOTE_DEBUGGING_PORT}`, `--user-data-dir=/tmp/${Date.now()}`, "--new-window", "--start-maximized", "--disable-popup-blocking", ...getMacKeychainBypassArgs()];
|
|
19
28
|
exports.getChromiumLaunchArgs = getChromiumLaunchArgs;
|
|
20
29
|
async function getBrowser() {
|
|
21
30
|
let playwrightBrowser = null;
|
|
@@ -5,6 +5,11 @@ export interface Proxy {
|
|
|
5
5
|
username: string;
|
|
6
6
|
password: string;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Get ignore_http_errors setting from CLI option or environment variable.
|
|
10
|
+
* Priority: cliOption > environment variable > false
|
|
11
|
+
*/
|
|
12
|
+
export declare function getIgnoreHttpErrorsFromConfig(cliOption?: boolean): Promise<boolean>;
|
|
8
13
|
export type LaunchBrowserResult = {
|
|
9
14
|
page: playwright.Page;
|
|
10
15
|
context: playwright.BrowserContext;
|
|
@@ -16,11 +21,13 @@ export type LaunchChromiumStandaloneOptions = {
|
|
|
16
21
|
cdpPort?: number;
|
|
17
22
|
appModeInitialUrl?: string;
|
|
18
23
|
executablePath?: string;
|
|
24
|
+
ignoreHttpErrors?: boolean;
|
|
19
25
|
timeout?: number;
|
|
20
26
|
};
|
|
21
27
|
export type LaunchChromiumCdpOptions = {
|
|
22
28
|
cdpAddress: string;
|
|
23
29
|
cdpTargetId?: string;
|
|
30
|
+
ignoreHttpErrors?: boolean;
|
|
24
31
|
timeout?: number;
|
|
25
32
|
};
|
|
26
33
|
export declare function launchChromium(options: LaunchChromiumStandaloneOptions): Promise<LaunchBrowserResult>;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getBrowserExecutablePath = getBrowserExecutablePath;
|
|
7
7
|
exports.getCdpWebSocketUrl = getCdpWebSocketUrl;
|
|
8
8
|
exports.getHeadlessUserAgent = getHeadlessUserAgent;
|
|
9
|
+
exports.getIgnoreHttpErrorsFromConfig = getIgnoreHttpErrorsFromConfig;
|
|
9
10
|
exports.getLocalCdpAddress = getLocalCdpAddress;
|
|
10
11
|
exports.launchBrowser = launchBrowser;
|
|
11
12
|
exports.launchChromium = launchChromium;
|
|
@@ -24,6 +25,15 @@ var _intunedJson = require("./intunedJson");
|
|
|
24
25
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
25
26
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
26
27
|
const execAsync = (0, _util.promisify)(_child_process.exec);
|
|
28
|
+
function getMacKeychainBypassArgs() {
|
|
29
|
+
if (process.platform !== "darwin") {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
if (process.env.INTUNED_MAC_DISABLE_KEYCHAIN_PROMPTS === "0") {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
return ["--use-mock-keychain", "--password-store=basic"];
|
|
36
|
+
}
|
|
27
37
|
async function createUserDirWithPreferences() {
|
|
28
38
|
const playwrightTempDir = await (0, _fsExtra.mkdtemp)("/tmp/pw-");
|
|
29
39
|
const userDir = (0, _path.join)(playwrightTempDir, "userdir");
|
|
@@ -39,8 +49,23 @@ async function createUserDirWithPreferences() {
|
|
|
39
49
|
await (0, _fsExtra.writeFile)((0, _path.join)(defaultDir, "Preferences"), JSON.stringify(preferences));
|
|
40
50
|
return userDir;
|
|
41
51
|
}
|
|
52
|
+
async function getIgnoreHttpErrorsFromConfig(cliOption) {
|
|
53
|
+
if (cliOption !== undefined) {
|
|
54
|
+
console.log(`[ignore_http_errors] using cli option value: ${cliOption}`);
|
|
55
|
+
return cliOption;
|
|
56
|
+
}
|
|
57
|
+
const envValue = process.env.INTUNED_PLAYWRIGHT_CONTEXT_IGNORE_HTTP_ERRORS;
|
|
58
|
+
if (envValue !== undefined) {
|
|
59
|
+
const parsedValue = envValue.toLowerCase() === "true" || envValue === "1" || envValue.toLowerCase() === "yes";
|
|
60
|
+
console.log(`[ignore_http_errors] using env value: ${parsedValue}`);
|
|
61
|
+
return parsedValue;
|
|
62
|
+
}
|
|
63
|
+
console.log("[ignore_http_errors] env not set, using default: false");
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
42
66
|
async function launchChromium(options) {
|
|
43
67
|
if ("cdpAddress" in options) {
|
|
68
|
+
console.log(`[ignore_http_errors] launchChromium (cdp) received value: ${options.ignoreHttpErrors}`);
|
|
44
69
|
if (await (0, _extensionsHelpers.isIntunedExtensionEnabled)()) {
|
|
45
70
|
await (0, _intunedExtensionServer.setupIntunedExtensionServer)();
|
|
46
71
|
}
|
|
@@ -80,13 +105,18 @@ async function launchChromium(options) {
|
|
|
80
105
|
cdpPort,
|
|
81
106
|
proxy,
|
|
82
107
|
downloadsPath,
|
|
108
|
+
ignoreHttpErrors: ignoreHttpErrorsParam,
|
|
83
109
|
timeout
|
|
84
110
|
} = options;
|
|
85
111
|
let {
|
|
86
112
|
executablePath
|
|
87
113
|
} = options;
|
|
114
|
+
const ignoreHttpErrors = await getIgnoreHttpErrorsFromConfig(ignoreHttpErrorsParam);
|
|
115
|
+
console.log(`[ignore_http_errors] launchChromium resolved value: ${ignoreHttpErrors}`);
|
|
88
116
|
const defaultArgsToIgnore = ["--disable-extensions", "--disable-component-extensions-with-background-pages", "--disable-background-networking", "--disable-backgrounding-occluded-windows", "--disable-background-timer-throttling"];
|
|
89
117
|
const extraArgs = [];
|
|
118
|
+
const macKeychainBypassArgs = getMacKeychainBypassArgs();
|
|
119
|
+
extraArgs.push(...macKeychainBypassArgs);
|
|
90
120
|
const stealthConfig = await (0, _intunedJson.getStealthModeConfig)();
|
|
91
121
|
if (stealthConfig.enabled && stealthConfig.type === "intunedBrowser") {
|
|
92
122
|
extraArgs.push("--stealth-mode");
|
|
@@ -126,7 +156,8 @@ async function launchChromium(options) {
|
|
|
126
156
|
}
|
|
127
157
|
const viewport = null;
|
|
128
158
|
const userAgent = process.env.__PLAYWRIGHT_USER_AGENT_OVERRIDE ?? (await getHeadlessUserAgent({
|
|
129
|
-
executablePath
|
|
159
|
+
executablePath,
|
|
160
|
+
args: macKeychainBypassArgs
|
|
130
161
|
}));
|
|
131
162
|
const context = await playwright.chromium.launchPersistentContext(userDataDir, {
|
|
132
163
|
userAgent,
|
|
@@ -136,7 +167,8 @@ async function launchChromium(options) {
|
|
|
136
167
|
proxy,
|
|
137
168
|
downloadsPath,
|
|
138
169
|
args: extraArgs,
|
|
139
|
-
ignoreDefaultArgs: defaultArgsToIgnore
|
|
170
|
+
ignoreDefaultArgs: defaultArgsToIgnore,
|
|
171
|
+
ignoreHTTPSErrors: ignoreHttpErrors
|
|
140
172
|
});
|
|
141
173
|
if (timeout !== undefined) {
|
|
142
174
|
context.setDefaultTimeout(timeout * 1000);
|
|
@@ -17,10 +17,12 @@ export declare function withPlaywrightContext<R>(options: {
|
|
|
17
17
|
proxy?: Proxy;
|
|
18
18
|
headless: boolean;
|
|
19
19
|
downloadsPath: string;
|
|
20
|
+
ignoreHttpErrors?: boolean;
|
|
20
21
|
} & WithPlaywrightContextParameters, fn: WithPlaywrightContextWrappedFunction<R>): Promise<Ok<R, any> | Err<any, RunAutomationError>>;
|
|
21
22
|
export declare function withPlaywrightContext<R>(options: {
|
|
22
23
|
cdpAddress: string;
|
|
23
24
|
cdpTargetId?: string;
|
|
25
|
+
ignoreHttpErrors?: boolean;
|
|
24
26
|
} & WithPlaywrightContextParameters, fn: WithPlaywrightContextWrappedFunction<R>): Promise<Ok<R, any> | Err<any, RunAutomationError>>;
|
|
25
27
|
export declare function loadSessionToContext({ context, session, }: {
|
|
26
28
|
context: playwright.BrowserContext;
|
|
@@ -20,6 +20,7 @@ async function withPlaywrightContext({
|
|
|
20
20
|
proxy,
|
|
21
21
|
headless = true,
|
|
22
22
|
downloadsPath,
|
|
23
|
+
ignoreHttpErrors: cliIgnoreHttpErrors,
|
|
23
24
|
importFunction,
|
|
24
25
|
apiName,
|
|
25
26
|
apiParameters
|
|
@@ -27,6 +28,7 @@ async function withPlaywrightContext({
|
|
|
27
28
|
let context;
|
|
28
29
|
let page;
|
|
29
30
|
try {
|
|
31
|
+
const ignoreHttpErrors = await (0, _launchBrowser.getIgnoreHttpErrorsFromConfig)(cliIgnoreHttpErrors);
|
|
30
32
|
const setupContextHookResult = importFunction ? await (0, _setupContextHook.loadSetupContextHook)({
|
|
31
33
|
importFunction
|
|
32
34
|
}) : (0, _neverthrow.ok)(null);
|
|
@@ -41,7 +43,8 @@ async function withPlaywrightContext({
|
|
|
41
43
|
context
|
|
42
44
|
} = await (0, _launchBrowser.launchBrowser)({
|
|
43
45
|
cdpAddress,
|
|
44
|
-
cdpTargetId
|
|
46
|
+
cdpTargetId,
|
|
47
|
+
ignoreHttpErrors
|
|
45
48
|
}));
|
|
46
49
|
} else {
|
|
47
50
|
({
|
|
@@ -50,7 +53,8 @@ async function withPlaywrightContext({
|
|
|
50
53
|
} = await (0, _launchBrowser.launchBrowser)({
|
|
51
54
|
proxy,
|
|
52
55
|
headless,
|
|
53
|
-
downloadsPath
|
|
56
|
+
downloadsPath,
|
|
57
|
+
ignoreHttpErrors
|
|
54
58
|
}));
|
|
55
59
|
}
|
|
56
60
|
return await fn(context, page);
|
|
@@ -63,7 +67,8 @@ async function withPlaywrightContext({
|
|
|
63
67
|
page
|
|
64
68
|
} = await (0, _launchBrowser.launchBrowser)({
|
|
65
69
|
cdpAddress,
|
|
66
|
-
cdpTargetId
|
|
70
|
+
cdpTargetId,
|
|
71
|
+
ignoreHttpErrors
|
|
67
72
|
}));
|
|
68
73
|
} else {
|
|
69
74
|
const port = await (0, _portfinder.getPort)({
|
|
@@ -76,7 +81,8 @@ async function withPlaywrightContext({
|
|
|
76
81
|
proxy,
|
|
77
82
|
headless,
|
|
78
83
|
downloadsPath,
|
|
79
|
-
cdpPort: port
|
|
84
|
+
cdpPort: port,
|
|
85
|
+
ignoreHttpErrors
|
|
80
86
|
}));
|
|
81
87
|
hookCdpUrl = (0, _launchBrowser.getLocalCdpAddress)(port);
|
|
82
88
|
}
|
|
@@ -147,6 +147,7 @@ async function runApi({
|
|
|
147
147
|
headless: runOptions.headless,
|
|
148
148
|
proxy: runOptions.proxy,
|
|
149
149
|
downloadsPath,
|
|
150
|
+
ignoreHttpErrors: runOptions.ignoreHttpErrors,
|
|
150
151
|
...playwrightContextParameters
|
|
151
152
|
}, runAutomationWithContext);
|
|
152
153
|
} finally {
|
|
@@ -156,6 +157,7 @@ async function runApi({
|
|
|
156
157
|
return await (0, _playwrightContext.withPlaywrightContext)({
|
|
157
158
|
cdpAddress: runOptions.cdpAddress,
|
|
158
159
|
cdpTargetId: runOptions.cdpTargetId,
|
|
160
|
+
ignoreHttpErrors: runOptions.ignoreHttpErrors,
|
|
159
161
|
...playwrightContextParameters
|
|
160
162
|
}, runAutomationWithContext);
|
|
161
163
|
}
|
|
@@ -222,12 +222,14 @@ var require_types = __commonJS({
|
|
|
222
222
|
server: zod_1.default.string(),
|
|
223
223
|
username: zod_1.default.string(),
|
|
224
224
|
password: zod_1.default.string()
|
|
225
|
-
}).optional()
|
|
225
|
+
}).optional(),
|
|
226
|
+
ignoreHttpErrors: zod_1.default.boolean().optional()
|
|
226
227
|
});
|
|
227
228
|
exports2.runApiCdpRunOptionsSchema = zod_1.default.object({
|
|
228
229
|
environment: zod_1.default.literal("cdp"),
|
|
229
230
|
cdpAddress: zod_1.default.string(),
|
|
230
|
-
cdpTargetId: zod_1.default.string().optional()
|
|
231
|
+
cdpTargetId: zod_1.default.string().optional(),
|
|
232
|
+
ignoreHttpErrors: zod_1.default.boolean().optional()
|
|
231
233
|
});
|
|
232
234
|
exports2.runApiRunOptionsSchema = zod_1.default.discriminatedUnion("environment", [
|
|
233
235
|
exports2.runApiStandaloneRunOptionsSchema,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intuned/runtime-dev",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.22-dev.5",
|
|
4
4
|
"description": "Intuned runtime",
|
|
5
5
|
"packageManager": "yarn@4.12.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
"intuned-auth-session-create": "vite-node ./src/commands/auth/run-create.ts",
|
|
34
34
|
"intuned-auth-session-load": "vite-node ./src/commands/auth/load.ts",
|
|
35
35
|
"intuned-ts-check": "yarn prepublishOnly && vite-node ./src/commands/ts-check.ts",
|
|
36
|
-
"intuned": "vite-node ./src/commands/intuned-cli/main.ts",
|
|
37
36
|
"intuned-get-headless-user-agent": "vite-node ./src/commands/get-headless-user-agent.ts",
|
|
38
37
|
"build": "rm -rf dist && tsc -p tsconfig.json && yarn copy-dts && babel src --out-dir dist --extensions '.ts' && tsup && cp -r ./src/common/assets dist/common/assets",
|
|
39
38
|
"test": "vitest run",
|
|
@@ -90,7 +89,7 @@
|
|
|
90
89
|
"prettier": "2.8.0",
|
|
91
90
|
"promptly": "3.2.0",
|
|
92
91
|
"prompts": "^2.4.2",
|
|
93
|
-
"rollup": "3.
|
|
92
|
+
"rollup": "3.30.0",
|
|
94
93
|
"smol-toml": "^1.4.2",
|
|
95
94
|
"source-map": "0.7.4",
|
|
96
95
|
"terminal-kit": "^3.1.2",
|
|
@@ -101,6 +100,7 @@
|
|
|
101
100
|
"typescript": "5.1.6",
|
|
102
101
|
"uuid": "11.1.0",
|
|
103
102
|
"wait-on": "7.2.0",
|
|
103
|
+
"which": "^6.0.1",
|
|
104
104
|
"yaml": "2.8.1",
|
|
105
105
|
"zod": "^3.21.4"
|
|
106
106
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const attemptCommand: import("commander").Command;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.attemptCommand = void 0;
|
|
7
|
-
var _command = require("./command");
|
|
8
|
-
const attemptCommand = exports.attemptCommand = _command.program.command("attempt").description("Execute an Intuned attempt");
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const attemptApiCommand: import("commander").Command;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.attemptApiCommand = void 0;
|
|
7
|
-
var _api = require("../controller/api");
|
|
8
|
-
var _controller = require("../controller");
|
|
9
|
-
var _zod = require("zod");
|
|
10
|
-
var _types = require("./types");
|
|
11
|
-
var _helpers = require("../helpers");
|
|
12
|
-
var _attempt = require("./attempt.command");
|
|
13
|
-
const argsSchema = _zod.z.tuple([_zod.z.string().min(1, "API name is required"), _zod.z.string().min(1, "Parameters are required")]);
|
|
14
|
-
const optionsSchema = _types.baseCommandOptionsSchema.extend({
|
|
15
|
-
authSession: _zod.z.string().optional(),
|
|
16
|
-
outputFile: _zod.z.string().optional()
|
|
17
|
-
});
|
|
18
|
-
const attemptApiCommand = exports.attemptApiCommand = (0, _types.withBaseOptions)(_attempt.attemptCommand.command("api").description("Execute an Intuned API attempt with parameters").argument("<api-name>", "Name of the API to run").argument("<parameters>", "Path to the JSON file containing API parameters OR the parameters as a JSON string").option("-a, --auth-session <id>", "ID of the AuthSession to use for the API. This is expected to be in ./auth-sessions-instances/<id>.json").option("-o, --output-file <path>", "output file path")).action((0, _helpers.cliCommandWrapper)(argsSchema, optionsSchema, async ([apiName, parameters], {
|
|
19
|
-
authSession,
|
|
20
|
-
...rest
|
|
21
|
-
}) => {
|
|
22
|
-
await (0, _helpers.assertAuthConsistent)(authSession);
|
|
23
|
-
const parametersData = await (0, _controller.loadParameters)(parameters);
|
|
24
|
-
await (0, _api.executeAttemptApiCLI)({
|
|
25
|
-
apiName,
|
|
26
|
-
inputData: parametersData,
|
|
27
|
-
authSessionId: authSession,
|
|
28
|
-
...rest
|
|
29
|
-
});
|
|
30
|
-
}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const attemptAuthSessionCommand: import("commander").Command;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.attemptAuthSessionCommand = void 0;
|
|
7
|
-
var _attempt = require("./attempt.command");
|
|
8
|
-
const attemptAuthSessionCommand = exports.attemptAuthSessionCommand = _attempt.attemptCommand.command("authsession").description("Manage AuthSessions");
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const attemptAuthSessionCheckCommand: import("commander").Command;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.attemptAuthSessionCheckCommand = void 0;
|
|
7
|
-
var _zod = require("zod");
|
|
8
|
-
var _authSession = require("../controller/authSession");
|
|
9
|
-
var _attempt_authsession = require("./attempt_authsession.command");
|
|
10
|
-
var _helpers = require("../helpers");
|
|
11
|
-
var _types = require("./types");
|
|
12
|
-
const argsSchema = _zod.z.tuple([_zod.z.string().min(1, "ID of the AuthSession is required")]);
|
|
13
|
-
const attemptAuthSessionCheckCommand = exports.attemptAuthSessionCheckCommand = (0, _types.withBaseOptions)(_attempt_authsession.attemptAuthSessionCommand.command("check").description("Check an existing AuthSession").argument("<id>", "ID of the AuthSession to check")).action((0, _helpers.cliCommandWrapper)(argsSchema, _types.baseCommandOptionsSchema, async ([id], options) => {
|
|
14
|
-
await (0, _helpers.assertAuthEnabled)();
|
|
15
|
-
await (0, _authSession.executeAttemptCheckAuthSessionCLI)({
|
|
16
|
-
id,
|
|
17
|
-
...options
|
|
18
|
-
});
|
|
19
|
-
}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const attemptAuthSessionCreateCommand: import("commander").Command;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.attemptAuthSessionCreateCommand = void 0;
|
|
7
|
-
var _controller = require("../controller");
|
|
8
|
-
var _zod = require("zod");
|
|
9
|
-
var _authSession = require("../controller/authSession");
|
|
10
|
-
var _attempt_authsession = require("./attempt_authsession.command");
|
|
11
|
-
var _helpers = require("../helpers");
|
|
12
|
-
var _types = require("./types");
|
|
13
|
-
const argsSchema = _zod.z.tuple([_zod.z.string().min(1, "Parameters are required")]);
|
|
14
|
-
const optionsSchema = _types.baseCommandOptionsSchema.extend({
|
|
15
|
-
id: _zod.z.string().optional()
|
|
16
|
-
});
|
|
17
|
-
const attemptAuthSessionCreateCommand = exports.attemptAuthSessionCreateCommand = (0, _types.withBaseOptions)(_attempt_authsession.attemptAuthSessionCommand.command("create").description("Create a new AuthSession").argument("<parameters>", "Parameters for the AuthSession command").option("--id <id>", "ID of the AuthSession to use for the command. Defaults to ./auth-sessions-instances/[current timestamp].json")).action((0, _helpers.cliCommandWrapper)(argsSchema, optionsSchema, async ([parameters], options) => {
|
|
18
|
-
await (0, _helpers.assertAuthEnabled)();
|
|
19
|
-
const authSessionInput = (await (0, _controller.loadParameters)(parameters)) ?? {};
|
|
20
|
-
await (0, _authSession.executeAttemptCreateAuthSessionCLI)({
|
|
21
|
-
input: authSessionInput,
|
|
22
|
-
...options
|
|
23
|
-
});
|
|
24
|
-
}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const authSessionCommand: import("commander").Command;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.authSessionCommand = void 0;
|
|
7
|
-
var _command = require("./command");
|
|
8
|
-
const authSessionCommand = exports.authSessionCommand = _command.program.command("authsession").description("Manage AuthSessions");
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const authSessionRecordCommand: import("commander").Command | null;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.authSessionRecordCommand = void 0;
|
|
7
|
-
var _zod = require("zod");
|
|
8
|
-
var _authSession = require("../controller/authSession");
|
|
9
|
-
var _helpers = require("../helpers");
|
|
10
|
-
var _authsession = require("./authsession.command");
|
|
11
|
-
var _run_authsession = require("./run_authsession.command");
|
|
12
|
-
var _types = require("./types");
|
|
13
|
-
const optionsSchema = _run_authsession.baseRunAuthSessionCommandOptionsSchema.extend({
|
|
14
|
-
id: _zod.z.string().optional()
|
|
15
|
-
});
|
|
16
|
-
const isAuthSessionRecorderEnabled = process.env.INTUNED_AUTH_SESSION_RECORDER_ENABLED === "true";
|
|
17
|
-
const authSessionRecordCommand = exports.authSessionRecordCommand = isAuthSessionRecorderEnabled ? (0, _types.withBaseOptions)(_authsession.authSessionCommand.command("record").description("Record a new AuthSession").option("--id <id>", "ID of the AuthSession to use for the command. Defaults to auth-session-[current timestamp]").option("--check-attempts <number>", "Number of attempts to check the AuthSession validity", "1")).action((0, _helpers.cliCommandWrapper)(undefined, optionsSchema, async (_, {
|
|
18
|
-
checkAttempts,
|
|
19
|
-
...rest
|
|
20
|
-
}) => {
|
|
21
|
-
await (0, _helpers.assertAuthEnabled)();
|
|
22
|
-
const {
|
|
23
|
-
startUrl,
|
|
24
|
-
finishUrl
|
|
25
|
-
} = await (0, _helpers.getAuthSessionRecorderParameters)();
|
|
26
|
-
await (0, _authSession.executeRecordAuthSessionCLI)({
|
|
27
|
-
checkRetries: checkAttempts,
|
|
28
|
-
startUrl,
|
|
29
|
-
finishUrl,
|
|
30
|
-
...rest
|
|
31
|
-
});
|
|
32
|
-
})) : null;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const authSessionScaffoldCommand: import("commander").Command;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.authSessionScaffoldCommand = void 0;
|
|
7
|
-
var _zod = require("zod");
|
|
8
|
-
var _helpers = require("../helpers");
|
|
9
|
-
var _authsession = require("./authsession.command");
|
|
10
|
-
var _types = require("./types");
|
|
11
|
-
var _scaffold = require("../controller/scaffold");
|
|
12
|
-
const optionsSchema = _zod.z.object({});
|
|
13
|
-
const authSessionScaffoldCommand = exports.authSessionScaffoldCommand = (0, _types.withBaseOptions)(_authsession.authSessionCommand.command("scaffold").description("Scaffold AuthSession files")).action((0, _helpers.cliCommandWrapper)(undefined, optionsSchema, async _ => {
|
|
14
|
-
await (0, _helpers.assertAuthEnabled)();
|
|
15
|
-
await (0, _scaffold.scaffoldAuthSessionFiles)();
|
|
16
|
-
}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const buildCommand: import("commander").Command;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.buildCommand = void 0;
|
|
7
|
-
var _command = require("./command");
|
|
8
|
-
var _build = require("../controller/build");
|
|
9
|
-
var _helpers = require("../helpers");
|
|
10
|
-
const buildCommand = exports.buildCommand = _command.program.command("build").description("Build Intuned project").action((0, _helpers.cliCommandWrapper)(undefined, undefined, async () => {
|
|
11
|
-
await (0, _build.runBuild)();
|
|
12
|
-
}));
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.program = void 0;
|
|
7
|
-
var _commander = require("commander");
|
|
8
|
-
const program = exports.program = new _commander.Command();
|
|
9
|
-
program.name("intuned").description("Intuned CLI for creating, developing and deploying Intuned projects").version("1.0.0").enablePositionalOptions(true);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const deployCommand: import("commander").Command;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.deployCommand = void 0;
|
|
7
|
-
var _command = require("./command");
|
|
8
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
9
|
-
var _provision = require("../controller/provision");
|
|
10
|
-
var _deploy = require("../controller/deploy");
|
|
11
|
-
var _helpers = require("../helpers");
|
|
12
|
-
var _provision2 = require("./provision.command");
|
|
13
|
-
var _prompts = require("../helpers/prompts");
|
|
14
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
-
_dotenv.default.config({
|
|
16
|
-
path: `.env`
|
|
17
|
-
});
|
|
18
|
-
const deployCommand = exports.deployCommand = _command.program.command("deploy").description("Deploy an Intuned project to the platform").argument("[project-name]", "Name of the project to deploy").option("-w, --workspace-id <id>", "Your Intuned workspace ID").option("-k, --api-key <key>", "Your Intuned API key").action((0, _helpers.cliCommandWrapper)(_provision2.saveOrDeployArgsSchema, _provision2.saveOrDeployOptionsSchema, async ([projectName], options) => {
|
|
19
|
-
const {
|
|
20
|
-
isValid,
|
|
21
|
-
errorMessage
|
|
22
|
-
} = await (0, _provision.validateIntunedProject)();
|
|
23
|
-
if (!isValid) {
|
|
24
|
-
const message = `^r^+Project to be deployed is not valid:^:^R ${errorMessage}:\n`;
|
|
25
|
-
throw new _helpers.CLIError(message, {
|
|
26
|
-
autoColor: false
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
const _projectName = projectName || (await (0, _helpers.loadIntunedJson)()).projectName || (await (0, _prompts.promptForProjectName)(name => {
|
|
30
|
-
const result = (0, _provision.validateProjectName)(name);
|
|
31
|
-
return result.isValid || result.errorMessage;
|
|
32
|
-
}));
|
|
33
|
-
if (!_projectName) {
|
|
34
|
-
throw new _helpers.CLIError(`Project name is required. Set it in ${await (0, _helpers.getIntunedSettingsFile)()} or provide it as an argument by running 'intuned deploy <project-name>'.`);
|
|
35
|
-
}
|
|
36
|
-
const projectNameValidation = (0, _provision.validateProjectName)(_projectName);
|
|
37
|
-
if (!projectNameValidation.isValid) {
|
|
38
|
-
throw new _helpers.CLIError(`Invalid project name: ${projectNameValidation.errorMessage}`);
|
|
39
|
-
}
|
|
40
|
-
const auth = await (0, _helpers.getAuthCredentials)(options);
|
|
41
|
-
await (0, _deploy.runDeployProject)(_projectName, auth);
|
|
42
|
-
}));
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export * from "./command";
|
|
2
|
-
export * from "./build.command";
|
|
3
|
-
export * from "./deploy.command";
|
|
4
|
-
export * from "./provision.command";
|
|
5
|
-
export * from "./run.command";
|
|
6
|
-
export * from "./run_api.command";
|
|
7
|
-
export * from "./run_authsession.command";
|
|
8
|
-
export * from "./run_authsession_create.command";
|
|
9
|
-
export * from "./run_authsession_update.command";
|
|
10
|
-
export * from "./run_authsession_validate.command";
|
|
11
|
-
export * from "./attempt.command";
|
|
12
|
-
export * from "./attempt_api.command";
|
|
13
|
-
export * from "./attempt_authsession.command";
|
|
14
|
-
export * from "./attempt_authsession_create.command";
|
|
15
|
-
export * from "./attempt_authsession_check.command";
|
|
16
|
-
export * from "./authsession.command";
|
|
17
|
-
export * from "./authsession_record.command";
|
|
18
|
-
export * from "./authsession_scaffold.command";
|