@intuned/runtime 1.3.22 → 1.3.24

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 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
@@ -72,7 +72,7 @@ function runAutomationCLI(importFunction) {
72
72
  extendTimeoutCallback: async () => {
73
73
  if (Date.now() - timeoutTimestamp < throttleTime) return;
74
74
  timeoutTimestamp = Date.now();
75
- client.sendJSON({
75
+ await client.sendJSON({
76
76
  type: "extend"
77
77
  });
78
78
  }
@@ -109,7 +109,7 @@ function runAutomationCLI(importFunction) {
109
109
  break;
110
110
  }
111
111
  if (message.type === "error") {
112
- client.sendJSON({
112
+ await client.sendJSON({
113
113
  type: "done",
114
114
  result: message.error.json,
115
115
  success: false
@@ -117,7 +117,7 @@ function runAutomationCLI(importFunction) {
117
117
  break;
118
118
  }
119
119
  if (message.type === "ping") {
120
- client.sendJSON({
120
+ await client.sendJSON({
121
121
  type: "pong"
122
122
  });
123
123
  break;
@@ -131,7 +131,7 @@ function runAutomationCLI(importFunction) {
131
131
  } = messageOrResult;
132
132
  const success = result.isOk();
133
133
  const resultToSend = success ? result.value : result.error.json;
134
- client.sendJSON({
134
+ await client.sendJSON({
135
135
  type: "done",
136
136
  result: resultToSend,
137
137
  success
@@ -1,46 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _dotenv = _interopRequireDefault(require("dotenv"));
4
- var path = _interopRequireWildcard(require("path"));
5
- var _intunedJson = require("./intunedJson");
6
- 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); }
7
4
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
5
  _dotenv.default.config({
9
6
  path: `.env`
10
- });
11
- function getStealthModeConfig() {
12
- try {
13
- const settingsResult = (0, _intunedJson.loadIntunedJsonSync)();
14
- if (settingsResult.isErr()) {
15
- console.error(`Warning: Failed to load Intuned settings: ${settingsResult.error}
16
- Stealth mode will not be enabled.`);
17
- return {
18
- enabled: false,
19
- type: "patchright"
20
- };
21
- }
22
- return {
23
- enabled: settingsResult.value.stealthMode?.enabled === true,
24
- type: settingsResult.value.stealthMode?.type || "patchright"
25
- };
26
- } catch (error) {
27
- console.error("Error reading Intuned.json:", error.message);
28
- return {
29
- enabled: false,
30
- type: "patchright"
31
- };
32
- }
33
- }
34
- try {
35
- const stealthConfig = getStealthModeConfig();
36
- if (stealthConfig.enabled && stealthConfig.type === "patchright") {
37
- const currentNodeModules = path.resolve(process.cwd(), "node_modules");
38
- process.env.NODE_PATH = process.env.NODE_PATH ? `${process.env.NODE_PATH}:${currentNodeModules}` : currentNodeModules;
39
- require("module").Module._initPaths();
40
- if (process.env.PLAYWRIGHT_PATCH_SCRIPT_PATH) {
41
- require(process.env.PLAYWRIGHT_PATCH_SCRIPT_PATH);
42
- }
43
- }
44
- } catch (e) {
45
- console.error("Failed to apply stealth mode");
46
- }
7
+ });
@@ -16,15 +16,22 @@ export declare const intunedJsonSchema: z.ZodIntersection<z.ZodObject<{
16
16
  defaultRunPlaygroundInput?: unknown;
17
17
  testAuthSessionInput?: unknown;
18
18
  }>>>;
19
+ browserSize: z.ZodCatch<z.ZodOptional<z.ZodObject<{
20
+ width: z.ZodNumber;
21
+ height: z.ZodNumber;
22
+ }, "strip", z.ZodTypeAny, {
23
+ width: number;
24
+ height: number;
25
+ }, {
26
+ width: number;
27
+ height: number;
28
+ }>>>;
19
29
  stealthMode: z.ZodCatch<z.ZodOptional<z.ZodObject<{
20
30
  enabled: z.ZodBoolean;
21
- type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["intunedBrowser", "patchright"]>>>;
22
31
  }, "strip", z.ZodTypeAny, {
23
- type: "intunedBrowser" | "patchright";
24
32
  enabled: boolean;
25
33
  }, {
26
34
  enabled: boolean;
27
- type?: "intunedBrowser" | "patchright" | undefined;
28
35
  }>>>;
29
36
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
30
37
  projectName: z.ZodOptional<z.ZodString>;
@@ -42,15 +49,22 @@ export declare const intunedJsonSchema: z.ZodIntersection<z.ZodObject<{
42
49
  defaultRunPlaygroundInput?: unknown;
43
50
  testAuthSessionInput?: unknown;
44
51
  }>>>;
52
+ browserSize: z.ZodCatch<z.ZodOptional<z.ZodObject<{
53
+ width: z.ZodNumber;
54
+ height: z.ZodNumber;
55
+ }, "strip", z.ZodTypeAny, {
56
+ width: number;
57
+ height: number;
58
+ }, {
59
+ width: number;
60
+ height: number;
61
+ }>>>;
45
62
  stealthMode: z.ZodCatch<z.ZodOptional<z.ZodObject<{
46
63
  enabled: z.ZodBoolean;
47
- type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["intunedBrowser", "patchright"]>>>;
48
64
  }, "strip", z.ZodTypeAny, {
49
- type: "intunedBrowser" | "patchright";
50
65
  enabled: boolean;
51
66
  }, {
52
67
  enabled: boolean;
53
- type?: "intunedBrowser" | "patchright" | undefined;
54
68
  }>>>;
55
69
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
56
70
  projectName: z.ZodOptional<z.ZodString>;
@@ -68,15 +82,22 @@ export declare const intunedJsonSchema: z.ZodIntersection<z.ZodObject<{
68
82
  defaultRunPlaygroundInput?: unknown;
69
83
  testAuthSessionInput?: unknown;
70
84
  }>>>;
85
+ browserSize: z.ZodCatch<z.ZodOptional<z.ZodObject<{
86
+ width: z.ZodNumber;
87
+ height: z.ZodNumber;
88
+ }, "strip", z.ZodTypeAny, {
89
+ width: number;
90
+ height: number;
91
+ }, {
92
+ width: number;
93
+ height: number;
94
+ }>>>;
71
95
  stealthMode: z.ZodCatch<z.ZodOptional<z.ZodObject<{
72
96
  enabled: z.ZodBoolean;
73
- type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["intunedBrowser", "patchright"]>>>;
74
97
  }, "strip", z.ZodTypeAny, {
75
- type: "intunedBrowser" | "patchright";
76
98
  enabled: boolean;
77
99
  }, {
78
100
  enabled: boolean;
79
- type?: "intunedBrowser" | "patchright" | undefined;
80
101
  }>>>;
81
102
  }, z.ZodTypeAny, "passthrough">>, z.ZodUnion<[z.ZodObject<{
82
103
  authSessions: z.ZodObject<{
@@ -166,7 +187,6 @@ export type IntunedJson = z.infer<typeof intunedJsonSchema>;
166
187
  export declare const intunedSettingsFileNames: readonly ["Intuned.json", "Intuned.jsonc", "Intuned.yaml", "Intuned.yml", "Intuned.toml"];
167
188
  export declare function loadIntunedJson(): Promise<Err<never, string> | Ok<{
168
189
  stealthMode?: {
169
- type: "intunedBrowser" | "patchright";
170
190
  enabled: boolean;
171
191
  } | undefined;
172
192
  workspaceId?: string | undefined;
@@ -176,6 +196,10 @@ export declare function loadIntunedJson(): Promise<Err<never, string> | Ok<{
176
196
  defaultRunPlaygroundInput?: Record<string, any> | undefined;
177
197
  testAuthSessionInput?: Record<string, any> | undefined;
178
198
  } | undefined;
199
+ browserSize?: {
200
+ width: number;
201
+ height: number;
202
+ } | undefined;
179
203
  } & {
180
204
  [k: string]: unknown;
181
205
  } & ({
@@ -206,7 +230,6 @@ export declare function getIntunedSettingsFile(): Promise<Ok<{
206
230
  export declare function getIntunedSettingsFileName(): Promise<Err<never, string> | Ok<"Intuned.json" | "Intuned.jsonc" | "Intuned.yaml" | "Intuned.yml" | "Intuned.toml", never>>;
207
231
  export declare function loadIntunedJsonSync(): Err<never, string> | Ok<{
208
232
  stealthMode?: {
209
- type: "intunedBrowser" | "patchright";
210
233
  enabled: boolean;
211
234
  } | undefined;
212
235
  workspaceId?: string | undefined;
@@ -216,6 +239,10 @@ export declare function loadIntunedJsonSync(): Err<never, string> | Ok<{
216
239
  defaultRunPlaygroundInput?: Record<string, any> | undefined;
217
240
  testAuthSessionInput?: Record<string, any> | undefined;
218
241
  } | undefined;
242
+ browserSize?: {
243
+ width: number;
244
+ height: number;
245
+ } | undefined;
219
246
  } & {
220
247
  [k: string]: unknown;
221
248
  } & ({
@@ -238,7 +265,10 @@ export declare function loadIntunedJsonSync(): Err<never, string> | Ok<{
238
265
  enabled: true;
239
266
  };
240
267
  }), never>;
268
+ export declare function getBrowserSizeConfig(): Promise<{
269
+ width: number;
270
+ height: number;
271
+ }>;
241
272
  export declare function getStealthModeConfig(): Promise<{
242
273
  enabled: boolean;
243
- type: "intunedBrowser" | "patchright";
244
274
  }>;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getBrowserSizeConfig = getBrowserSizeConfig;
6
7
  exports.getIntunedSettingsFile = getIntunedSettingsFile;
7
8
  exports.getIntunedSettingsFileName = getIntunedSettingsFileName;
8
9
  exports.getStealthModeConfig = getStealthModeConfig;
@@ -19,7 +20,6 @@ var _neverthrow = require("neverthrow");
19
20
  var _formatZodError = require("./formatZodError");
20
21
  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); }
21
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- const playwright = undefined;
23
23
  const intunedJsonSchema = exports.intunedJsonSchema = _zod.z.object({
24
24
  projectName: _zod.z.string().optional(),
25
25
  workspaceId: _zod.z.string().optional(),
@@ -28,9 +28,12 @@ const intunedJsonSchema = exports.intunedJsonSchema = _zod.z.object({
28
28
  defaultRunPlaygroundInput: _zod.z.record(_zod.z.any()).optional().catch(undefined),
29
29
  testAuthSessionInput: _zod.z.record(_zod.z.any()).optional().catch(undefined)
30
30
  }).optional().catch(undefined),
31
+ browserSize: _zod.z.object({
32
+ width: _zod.z.number().int().min(200).max(3840),
33
+ height: _zod.z.number().int().min(200).max(2160)
34
+ }).optional().catch(undefined),
31
35
  stealthMode: _zod.z.object({
32
- enabled: _zod.z.boolean(),
33
- type: _zod.z.enum(["intunedBrowser", "patchright"]).optional().default("patchright")
36
+ enabled: _zod.z.boolean()
34
37
  }).optional().catch(undefined)
35
38
  }).passthrough().and(_zod.z.union([_zod.z.object({
36
39
  authSessions: _zod.z.object({
@@ -132,23 +135,30 @@ function getIntunedSettingsFileSync() {
132
135
  }
133
136
  return (0, _neverthrow.err)("No Intuned settings file found.");
134
137
  }
138
+ async function getBrowserSizeConfig() {
139
+ const settingsResult = await loadIntunedJson();
140
+ if (settingsResult.isOk() && settingsResult.value.browserSize) {
141
+ return settingsResult.value.browserSize;
142
+ }
143
+ return {
144
+ width: 1024,
145
+ height: 800
146
+ };
147
+ }
135
148
  async function getStealthModeConfig() {
136
149
  try {
137
150
  const settingsResult = await loadIntunedJson();
138
151
  if (settingsResult.isErr()) {
139
152
  return {
140
- enabled: false,
141
- type: "patchright"
153
+ enabled: false
142
154
  };
143
155
  }
144
156
  return {
145
- enabled: settingsResult.value.stealthMode?.enabled === true,
146
- type: settingsResult.value.stealthMode?.type || "patchright"
157
+ enabled: settingsResult.value.stealthMode?.enabled === true
147
158
  };
148
159
  } catch {
149
160
  return {
150
- enabled: false,
151
- type: "patchright"
161
+ enabled: false
152
162
  };
153
163
  }
154
164
  }
@@ -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(true only) > 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,6 +21,7 @@ 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 = {
@@ -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;
@@ -43,11 +44,25 @@ async function createUserDirWithPreferences() {
43
44
  const preferences = {
44
45
  plugins: {
45
46
  always_open_pdf_externally: true
47
+ },
48
+ credentials_enable_service: false,
49
+ profile: {
50
+ password_manager_enabled: false
46
51
  }
47
52
  };
48
53
  await (0, _fsExtra.writeFile)((0, _path.join)(defaultDir, "Preferences"), JSON.stringify(preferences));
49
54
  return userDir;
50
55
  }
56
+ async function getIgnoreHttpErrorsFromConfig(cliOption) {
57
+ if (cliOption === true) {
58
+ return true;
59
+ }
60
+ const envValue = process.env.INTUNED_PLAYWRIGHT_CONTEXT_IGNORE_HTTP_ERRORS;
61
+ if (envValue !== undefined) {
62
+ return envValue.toLowerCase() === "true" || envValue === "1" || envValue.toLowerCase() === "yes";
63
+ }
64
+ return false;
65
+ }
51
66
  async function launchChromium(options) {
52
67
  if ("cdpAddress" in options) {
53
68
  if (await (0, _extensionsHelpers.isIntunedExtensionEnabled)()) {
@@ -89,17 +104,19 @@ async function launchChromium(options) {
89
104
  cdpPort,
90
105
  proxy,
91
106
  downloadsPath,
107
+ ignoreHttpErrors: ignoreHttpErrorsParam,
92
108
  timeout
93
109
  } = options;
94
110
  let {
95
111
  executablePath
96
112
  } = options;
113
+ const ignoreHttpErrors = await getIgnoreHttpErrorsFromConfig(ignoreHttpErrorsParam);
97
114
  const defaultArgsToIgnore = ["--disable-extensions", "--disable-component-extensions-with-background-pages", "--disable-background-networking", "--disable-backgrounding-occluded-windows", "--disable-background-timer-throttling"];
98
- const extraArgs = [];
115
+ const extraArgs = ["--disable-notifications"];
99
116
  const macKeychainBypassArgs = getMacKeychainBypassArgs();
100
117
  extraArgs.push(...macKeychainBypassArgs);
101
118
  const stealthConfig = await (0, _intunedJson.getStealthModeConfig)();
102
- if (stealthConfig.enabled && stealthConfig.type === "intunedBrowser") {
119
+ if (stealthConfig.enabled) {
103
120
  extraArgs.push("--stealth-mode");
104
121
  }
105
122
  const userDataDir = await createUserDirWithPreferences();
@@ -125,7 +142,7 @@ async function launchChromium(options) {
125
142
  if (appModeInitialUrl) {
126
143
  extraArgs.push(`--app=${appModeInitialUrl}`);
127
144
  }
128
- if (stealthConfig.enabled && stealthConfig.type === "intunedBrowser") {
145
+ if (stealthConfig.enabled) {
129
146
  const stealthExecutablePath = await getIntunedBrowserExecutablePath();
130
147
  executablePath = stealthExecutablePath;
131
148
  } else if (executablePath) {
@@ -135,6 +152,8 @@ async function launchChromium(options) {
135
152
  executablePath = undefined;
136
153
  }
137
154
  }
155
+ const browserSize = await (0, _intunedJson.getBrowserSizeConfig)();
156
+ extraArgs.push(`--window-size=${browserSize.width},${browserSize.height}`);
138
157
  const viewport = null;
139
158
  const userAgent = process.env.__PLAYWRIGHT_USER_AGENT_OVERRIDE ?? (await getHeadlessUserAgent({
140
159
  executablePath,
@@ -148,7 +167,8 @@ async function launchChromium(options) {
148
167
  proxy,
149
168
  downloadsPath,
150
169
  args: extraArgs,
151
- ignoreDefaultArgs: defaultArgsToIgnore
170
+ ignoreDefaultArgs: defaultArgsToIgnore,
171
+ ignoreHTTPSErrors: ignoreHttpErrors
152
172
  });
153
173
  if (timeout !== undefined) {
154
174
  context.setDefaultTimeout(timeout * 1000);
@@ -17,6 +17,7 @@ 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;
@@ -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);
@@ -50,7 +52,8 @@ async function withPlaywrightContext({
50
52
  } = await (0, _launchBrowser.launchBrowser)({
51
53
  proxy,
52
54
  headless,
53
- downloadsPath
55
+ downloadsPath,
56
+ ignoreHttpErrors
54
57
  }));
55
58
  }
56
59
  return await fn(context, page);
@@ -76,7 +79,8 @@ async function withPlaywrightContext({
76
79
  proxy,
77
80
  headless,
78
81
  downloadsPath,
79
- cdpPort: port
82
+ cdpPort: port,
83
+ ignoreHttpErrors
80
84
  }));
81
85
  hookCdpUrl = (0, _launchBrowser.getLocalCdpAddress)(port);
82
86
  }
@@ -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 {
@@ -8,7 +8,7 @@ var _constants = require("../common/constants");
8
8
  var _jwtTokenManager = require("../common/jwtTokenManager");
9
9
  function getAiGatewayConfig() {
10
10
  const baseUrl = `${_jwtTokenManager.backendFunctionsTokenManager.backendFunctionsBaseUrl}/intuned-ai-gateway`;
11
- const apiKey = _jwtTokenManager.backendFunctionsTokenManager.token ?? process.env[_constants.API_KEY_ENV_VAR_KEY] ?? "";
11
+ const apiKey = _jwtTokenManager.backendFunctionsTokenManager.token ?? process.env[_constants.API_KEY_ENV_VAR_KEY] ?? process.env[_constants.AUTH_TOKEN_ENV_VAR_KEY] ?? "";
12
12
  return {
13
13
  baseUrl,
14
14
  apiKey
@@ -163,7 +163,7 @@ var require_types = __commonJS({
163
163
  return mod && mod.__esModule ? mod : { "default": mod };
164
164
  };
165
165
  Object.defineProperty(exports2, "__esModule", { value: true });
166
- exports2.outputRunApiSchema = exports2.pongMessageSchema = exports2.doneMessageSchema = exports2.extendMessageSchema = exports2.runApiInputSchema = exports2.pingSchema = exports2.tokenUpdateSchema = exports2.abortRunApiSchema = exports2.startRunApiSchema = exports2.startRunApiParametersSchema = exports2.runApiParametersSchema = exports2.runApiRunOptionsSchema = exports2.runApiCdpRunOptionsSchema = exports2.runApiStandaloneRunOptionsSchema = exports2.runApiAuthSchema = exports2.runApiTracingSchema = exports2.runApiAutomationFunctionSchema = exports2.runApiSessionSchema = exports2.runApiStorageStateSchema = void 0;
166
+ exports2.outputRunApiSchema = exports2.pongMessageSchema = exports2.doneMessageSchema = exports2.extendMessageSchema = exports2.runApiInputSchema = exports2.pingSchema = exports2.tokenUpdateSchema = exports2.abortRunApiSchema = exports2.startRunApiSchema = exports2.startRunApiParametersSchema = exports2.runApiParametersSchema = exports2.runApiRunOptionsSchema = exports2.runApiCdpRunOptionsSchema = exports2.runApiStandaloneRunOptionsSchema = exports2.runApiProxySchema = exports2.runApiAuthSchema = exports2.runApiTracingSchema = exports2.runApiAutomationFunctionSchema = exports2.runApiSessionSchema = exports2.runApiStorageStateSchema = void 0;
167
167
  exports2.runApiResultOkSchema = runApiResultOkSchema;
168
168
  exports2.runApiResultWithSessionOkSchema = runApiResultWithSessionOkSchema;
169
169
  var zod_1 = __importDefault(require("zod"));
@@ -215,14 +215,16 @@ var require_types = __commonJS({
215
215
  session: exports2.runApiSessionSchema,
216
216
  parameters: zod_1.default.record(zod_1.default.any()).optional()
217
217
  }).optional();
218
+ exports2.runApiProxySchema = zod_1.default.object({
219
+ server: zod_1.default.string(),
220
+ username: zod_1.default.string(),
221
+ password: zod_1.default.string()
222
+ });
218
223
  exports2.runApiStandaloneRunOptionsSchema = zod_1.default.object({
219
224
  environment: zod_1.default.literal("standalone"),
220
225
  headless: zod_1.default.boolean().default(true),
221
- proxy: zod_1.default.object({
222
- server: zod_1.default.string(),
223
- username: zod_1.default.string(),
224
- password: zod_1.default.string()
225
- }).optional()
226
+ proxy: exports2.runApiProxySchema.optional(),
227
+ ignoreHttpErrors: zod_1.default.boolean().optional()
226
228
  });
227
229
  exports2.runApiCdpRunOptionsSchema = zod_1.default.object({
228
230
  environment: zod_1.default.literal("cdp"),
@@ -352,17 +354,18 @@ var require_interfaceClient = __commonJS({
352
354
  var net = __importStar(require("net"));
353
355
  var readline_1 = require("readline");
354
356
  var promises_1 = require("timers/promises");
357
+ var util_1 = require("util");
355
358
  var SocketClient = class _SocketClient {
356
359
  constructor(socket) {
357
360
  this.socket = socket;
358
361
  }
359
- sendJSON(data) {
362
+ async sendJSON(data) {
360
363
  const dataToSend = JSON.stringify(data);
361
364
  const length = Buffer.byteLength(dataToSend);
362
365
  const buffer = Buffer.alloc(_SocketClient.LENGTH_HEADER_LENGTH + length);
363
366
  buffer.writeUInt32BE(length, 0);
364
367
  buffer.write(dataToSend, _SocketClient.LENGTH_HEADER_LENGTH);
365
- this.socket.write(buffer);
368
+ await (0, util_1.promisify)((cb) => this.socket.write(buffer, cb))();
366
369
  }
367
370
  async *receiveJSON() {
368
371
  let buffer = Buffer.alloc(0);
@@ -402,6 +405,7 @@ var require_interfaceClient = __commonJS({
402
405
  }
403
406
  }
404
407
  async close() {
408
+ this.socket.end();
405
409
  this.socket.destroy();
406
410
  }
407
411
  get closed() {
@@ -426,7 +430,7 @@ var require_interfaceClient = __commonJS({
426
430
  constructor(filePath) {
427
431
  this.fileStream = fs.createReadStream(filePath, { encoding: "utf-8" });
428
432
  }
429
- sendJSON(data) {
433
+ async sendJSON(data) {
430
434
  console.log("Sending message", data);
431
435
  }
432
436
  async *receiveJSON() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intuned/runtime",
3
- "version": "1.3.22",
3
+ "version": "1.3.24",
4
4
  "description": "Intuned runtime",
5
5
  "packageManager": "yarn@4.12.0",
6
6
  "main": "./dist/index.js",
@@ -80,7 +80,7 @@
80
80
  "image-size": "^1.1.1",
81
81
  "jsonc-parser": "^3.3.1",
82
82
  "jsonwebtoken": "9.0.2",
83
- "lodash": "4.17.21",
83
+ "lodash": "4.18.1",
84
84
  "milliparsec": "2.3.0",
85
85
  "nanoid": "3",
86
86
  "neverthrow": "6.1.0",
@@ -1,7 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npm info:*)"
5
- ]
6
- }
7
- }