@intuned/runtime-dev 1.3.18-interface.8 → 1.3.19-new-cli.0

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.
Files changed (205) hide show
  1. package/.babelrc +27 -0
  2. package/.claude/settings.local.json +7 -0
  3. package/.eslintignore +10 -0
  4. package/.eslintrc.js +39 -0
  5. package/CHANGELOG.md +1 -1
  6. package/InterfaceTemplate/__utils.ts +63 -0
  7. package/InterfaceTemplate/index.playwright.ts +6 -0
  8. package/bin/intuned +20 -2
  9. package/dist/commands/api/run.d.ts +6 -0
  10. package/dist/commands/api/run.js +119 -0
  11. package/dist/commands/auth-sessions/load.d.ts +2 -0
  12. package/dist/commands/auth-sessions/load.js +35 -0
  13. package/dist/commands/auth-sessions/run-check.d.ts +2 -0
  14. package/dist/commands/auth-sessions/run-check.js +74 -0
  15. package/dist/commands/auth-sessions/run-create.d.ts +2 -0
  16. package/dist/commands/auth-sessions/run-create.js +78 -0
  17. package/dist/commands/browser/save-state.d.ts +2 -0
  18. package/dist/commands/browser/save-state.js +17 -0
  19. package/dist/commands/browser/start-browser.d.ts +2 -0
  20. package/dist/commands/browser/start-browser.js +14 -0
  21. package/dist/commands/build.d.ts +1 -0
  22. package/dist/commands/build.js +83 -0
  23. package/dist/commands/common/browserUtils.d.ts +14 -0
  24. package/dist/commands/common/browserUtils.js +57 -0
  25. package/dist/commands/common/getFirstLineNumber.d.ts +9 -0
  26. package/dist/commands/common/getFirstLineNumber.js +101 -0
  27. package/dist/commands/common/getFirstLineNumber.test.js +227 -0
  28. package/dist/commands/common/projectExclusions.d.ts +2 -0
  29. package/dist/commands/common/projectExclusions.js +8 -0
  30. package/dist/commands/common/sendMessageToClient.d.ts +1 -0
  31. package/dist/commands/common/sendMessageToClient.js +10 -0
  32. package/dist/commands/common/tsNodeImport.d.ts +2 -0
  33. package/dist/commands/common/tsNodeImport.js +42 -0
  34. package/dist/commands/common/utils/fileUtils.d.ts +6 -0
  35. package/dist/commands/common/utils/fileUtils.js +32 -0
  36. package/dist/commands/common/utils/interfaceClient.d.ts +31 -0
  37. package/dist/commands/common/utils/interfaceClient.js +98 -0
  38. package/dist/commands/common/utils/settings.d.ts +2 -0
  39. package/dist/commands/common/utils/settings.js +31 -0
  40. package/dist/commands/common/utils/template.d.ts +2 -0
  41. package/dist/commands/common/utils/template.js +30 -0
  42. package/dist/commands/get-headless-user-agent.d.ts +1 -0
  43. package/dist/commands/get-headless-user-agent.js +18 -0
  44. package/dist/commands/interface/run.d.ts +1 -3
  45. package/dist/commands/interface/run.js +139 -2047
  46. package/dist/commands/ts-check.d.ts +2 -0
  47. package/dist/commands/ts-check.js +55 -0
  48. package/dist/common/Logger/Logger/index.d.ts +12 -0
  49. package/dist/common/Logger/Logger/index.js +60 -0
  50. package/dist/common/Logger/Logger/types.d.ts +8 -0
  51. package/dist/common/Logger/Logger/types.js +5 -0
  52. package/dist/common/Logger/index.d.ts +12 -0
  53. package/dist/common/Logger/index.js +60 -0
  54. package/dist/common/Logger/types.d.ts +8 -0
  55. package/dist/common/Logger/types.js +5 -0
  56. package/dist/common/asyncLocalStorage/index.d.ts +8 -9
  57. package/dist/common/asyncLocalStorage/index.js +9 -34
  58. package/dist/common/backendFunctions/getAuthSessionParameters.d.ts +1 -0
  59. package/dist/common/backendFunctions/getAuthSessionParameters.js +38 -0
  60. package/dist/common/binStartupScript.d.ts +1 -2
  61. package/dist/common/binStartupScript.js +25 -132
  62. package/dist/common/browserTabs.d.ts +72 -0
  63. package/dist/common/browserTabs.js +74 -0
  64. package/dist/common/cleanEnvironmentVariables.d.ts +1 -3
  65. package/dist/common/cleanEnvironmentVariables.js +7 -30
  66. package/dist/common/constants.d.ts +11 -13
  67. package/dist/common/constants.js +15 -58
  68. package/dist/common/contextStorageStateHelpers.d.ts +6 -8
  69. package/dist/common/contextStorageStateHelpers.js +26 -48
  70. package/dist/common/extension/extensionsHelpers.d.ts +11 -0
  71. package/dist/common/extension/extensionsHelpers.js +147 -0
  72. package/dist/common/extension/intunedExtensionServer.d.ts +24 -0
  73. package/dist/common/extension/intunedExtensionServer.js +178 -0
  74. package/dist/common/extension/types.d.ts +219 -0
  75. package/dist/common/extension/types.js +51 -0
  76. package/dist/common/formatZodError.d.ts +2 -0
  77. package/dist/{chunk-NDMVGENG.mjs → common/formatZodError.js} +9 -9
  78. package/dist/common/intunedJson.d.ts +244 -0
  79. package/dist/common/intunedJson.js +154 -0
  80. package/dist/common/jwtTokenManager.d.ts +4 -6
  81. package/dist/common/jwtTokenManager.js +40 -108
  82. package/dist/common/launchBrowser.d.ts +36 -0
  83. package/dist/common/launchBrowser.js +269 -0
  84. package/dist/common/playwrightContext.d.ts +29 -0
  85. package/dist/common/playwrightContext.js +148 -0
  86. package/dist/common/runApi/importUsingImportFunction.d.ts +7 -0
  87. package/dist/common/runApi/importUsingImportFunction.js +46 -0
  88. package/dist/common/runApi/index.d.ts +6 -9
  89. package/dist/common/runApi/index.js +73 -1782
  90. package/dist/common/settingsSchema.d.ts +6 -9
  91. package/dist/common/settingsSchema.js +18 -54
  92. package/dist/common/setupContextHook.d.ts +16 -0
  93. package/dist/common/setupContextHook.js +22 -0
  94. package/dist/common/telemetry.d.ts +3 -6
  95. package/dist/common/telemetry.js +8 -41
  96. package/dist/index.d.ts +4 -6
  97. package/dist/index.js +92 -784
  98. package/dist/runtime/RunError.d.ts +5 -0
  99. package/dist/runtime/RunError.js +19 -0
  100. package/dist/runtime/attemptStore.d.ts +2 -0
  101. package/dist/runtime/attemptStore.js +23 -0
  102. package/dist/runtime/captcha.d.ts +15 -0
  103. package/dist/runtime/captcha.js +191 -0
  104. package/dist/runtime/captcha.test.js +821 -0
  105. package/dist/runtime/downloadDirectory.d.ts +1 -0
  106. package/dist/runtime/downloadDirectory.js +19 -0
  107. package/dist/runtime/enums.d.js +5 -0
  108. package/dist/runtime/enums.d.ts +11 -0
  109. package/dist/runtime/enums.js +18 -0
  110. package/dist/runtime/executionHelpers.test.js +52 -0
  111. package/dist/runtime/export.d.js +5 -0
  112. package/dist/runtime/export.d.ts +284 -0
  113. package/dist/runtime/extendPayload.d.ts +2 -0
  114. package/dist/runtime/extendPayload.js +21 -0
  115. package/dist/runtime/extendTimeout.d.ts +1 -0
  116. package/dist/runtime/extendTimeout.js +23 -0
  117. package/dist/runtime/getAiGatewayConfig.d.ts +10 -0
  118. package/dist/runtime/getAiGatewayConfig.js +16 -0
  119. package/dist/runtime/getAuthSessionParameters.d.ts +1 -0
  120. package/dist/runtime/getAuthSessionParameters.js +20 -0
  121. package/dist/runtime/index.d.ts +10 -168
  122. package/dist/runtime/index.js +88 -779
  123. package/dist/runtime/persistentStore.d.ts +2 -0
  124. package/dist/runtime/persistentStore.js +37 -0
  125. package/dist/runtime/persistentStore.test.js +101 -0
  126. package/dist/runtime/runInfo.d.ts +2 -0
  127. package/dist/runtime/runInfo.js +21 -0
  128. package/dist/vendor/runtime-interface.d.ts +1 -0
  129. package/dist/vendor/runtime-interface.js +479 -0
  130. package/package.json +20 -74
  131. package/template.tsconfig.json +11 -0
  132. package/tsconfig.eslint.json +5 -0
  133. package/tsconfig.json +25 -0
  134. package/tsup.config.ts +12 -0
  135. package/typedoc.json +49 -0
  136. package/dist/chunk-6ZRJOUQS.mjs +0 -16
  137. package/dist/chunk-6ZRJOUQS.mjs.map +0 -1
  138. package/dist/chunk-7YL2JUTE.mjs +0 -146
  139. package/dist/chunk-7YL2JUTE.mjs.map +0 -1
  140. package/dist/chunk-B3T6RXPC.mjs +0 -794
  141. package/dist/chunk-B3T6RXPC.mjs.map +0 -1
  142. package/dist/chunk-FGV5T6SI.mjs +0 -27
  143. package/dist/chunk-FGV5T6SI.mjs.map +0 -1
  144. package/dist/chunk-G4PO5RIV.mjs +0 -85
  145. package/dist/chunk-G4PO5RIV.mjs.map +0 -1
  146. package/dist/chunk-LZOMFHX3.mjs +0 -38
  147. package/dist/chunk-LZOMFHX3.mjs.map +0 -1
  148. package/dist/chunk-NDMVGENG.mjs.map +0 -1
  149. package/dist/chunk-W4UX6G4X.mjs +0 -17
  150. package/dist/chunk-W4UX6G4X.mjs.map +0 -1
  151. package/dist/chunk-XC75QGFG.mjs +0 -1106
  152. package/dist/chunk-XC75QGFG.mjs.map +0 -1
  153. package/dist/chunk-XOAZ2MGA.mjs +0 -59
  154. package/dist/chunk-XOAZ2MGA.mjs.map +0 -1
  155. package/dist/commands/interface/run.d.mts +0 -3
  156. package/dist/commands/interface/run.js.map +0 -1
  157. package/dist/commands/interface/run.mjs +0 -255
  158. package/dist/commands/interface/run.mjs.map +0 -1
  159. package/dist/common/asyncLocalStorage/index.d.mts +0 -17
  160. package/dist/common/asyncLocalStorage/index.js.map +0 -1
  161. package/dist/common/asyncLocalStorage/index.mjs +0 -12
  162. package/dist/common/asyncLocalStorage/index.mjs.map +0 -1
  163. package/dist/common/binStartupScript.d.mts +0 -2
  164. package/dist/common/binStartupScript.js.map +0 -1
  165. package/dist/common/binStartupScript.mjs +0 -135
  166. package/dist/common/binStartupScript.mjs.map +0 -1
  167. package/dist/common/cleanEnvironmentVariables.d.mts +0 -3
  168. package/dist/common/cleanEnvironmentVariables.js.map +0 -1
  169. package/dist/common/cleanEnvironmentVariables.mjs +0 -8
  170. package/dist/common/cleanEnvironmentVariables.mjs.map +0 -1
  171. package/dist/common/constants.d.mts +0 -13
  172. package/dist/common/constants.js.map +0 -1
  173. package/dist/common/constants.mjs +0 -28
  174. package/dist/common/constants.mjs.map +0 -1
  175. package/dist/common/contextStorageStateHelpers.d.mts +0 -24
  176. package/dist/common/contextStorageStateHelpers.js.map +0 -1
  177. package/dist/common/contextStorageStateHelpers.mjs +0 -10
  178. package/dist/common/contextStorageStateHelpers.mjs.map +0 -1
  179. package/dist/common/jwtTokenManager.d.mts +0 -19
  180. package/dist/common/jwtTokenManager.js.map +0 -1
  181. package/dist/common/jwtTokenManager.mjs +0 -11
  182. package/dist/common/jwtTokenManager.mjs.map +0 -1
  183. package/dist/common/runApi/index.d.mts +0 -11
  184. package/dist/common/runApi/index.js.map +0 -1
  185. package/dist/common/runApi/index.mjs +0 -18
  186. package/dist/common/runApi/index.mjs.map +0 -1
  187. package/dist/common/settingsSchema.d.mts +0 -540
  188. package/dist/common/settingsSchema.js.map +0 -1
  189. package/dist/common/settingsSchema.mjs +0 -10
  190. package/dist/common/settingsSchema.mjs.map +0 -1
  191. package/dist/common/telemetry.d.mts +0 -6
  192. package/dist/common/telemetry.js.map +0 -1
  193. package/dist/common/telemetry.mjs +0 -31
  194. package/dist/common/telemetry.mjs.map +0 -1
  195. package/dist/export.d-BAUMB-lG.d.mts +0 -140
  196. package/dist/export.d-BAUMB-lG.d.ts +0 -140
  197. package/dist/index.d.mts +0 -6
  198. package/dist/index.js.map +0 -1
  199. package/dist/index.mjs +0 -47
  200. package/dist/index.mjs.map +0 -1
  201. package/dist/runtime/index.d.mts +0 -168
  202. package/dist/runtime/index.js.map +0 -1
  203. package/dist/runtime/index.mjs +0 -42
  204. package/dist/runtime/index.mjs.map +0 -1
  205. /package/dist/common/assets/{assets/browser_scripts.js → browser_scripts.js} +0 -0
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ var ts = _interopRequireWildcard(require("typescript"));
5
+ var _commander = require("commander");
6
+ var fs = _interopRequireWildcard(require("fs-extra"));
7
+ var path = _interopRequireWildcard(require("path"));
8
+ var _template = require("./common/utils/template");
9
+ 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); }
10
+ _commander.program.description("Check TypeScript types in the project").option("-t, --template <type>", "template to use", "InterfaceTemplate").allowUnknownOption().action(async ({
11
+ template
12
+ }) => {
13
+ await (0, _template.moveTemplateFiles)(template);
14
+ const templateTsConfig = path.resolve(__dirname, "..", "..", "template.tsconfig.json");
15
+ await fs.copy(templateTsConfig, `./intuned/${template}/tsconfig.json`);
16
+ checkTypes(template);
17
+ });
18
+ function checkTypes(template) {
19
+ const configPath = ts.findConfigFile(`./intuned/${template}`, ts.sys.fileExists, "tsconfig.json");
20
+ if (!configPath) {
21
+ console.error("Could not find a valid 'tsconfig.json'.");
22
+ process.exit(1);
23
+ }
24
+ const readConfigResult = ts.readConfigFile(configPath, ts.sys.readFile);
25
+ const config = readConfigResult.config;
26
+ const parseConfigHost = {
27
+ useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
28
+ readDirectory: ts.sys.readDirectory,
29
+ fileExists: ts.sys.fileExists,
30
+ readFile: ts.sys.readFile
31
+ };
32
+ const parsed = ts.parseJsonConfigFileContent(config, parseConfigHost, "./intuned");
33
+ const program = ts.createProgram(parsed.fileNames, parsed.options);
34
+ const emitResult = program.emit();
35
+ const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
36
+ allDiagnostics.forEach(diagnostic => {
37
+ if (diagnostic.file) {
38
+ const {
39
+ line,
40
+ character
41
+ } = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
42
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
43
+ console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`);
44
+ } else {
45
+ console.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
46
+ }
47
+ });
48
+ if (allDiagnostics.length === 0) {
49
+ console.log("✨ TypeScript type checking passed without errors.");
50
+ } else {
51
+ console.error("Errors found during TypeScript type checking.");
52
+ process.exit(1);
53
+ }
54
+ }
55
+ _commander.program.parse(process.argv);
@@ -0,0 +1,12 @@
1
+ import { LogEntry, LogMetadata } from "./types";
2
+ declare class Logger {
3
+ logFunction(entry: LogEntry): void;
4
+ private log;
5
+ trace(message: string, meta?: LogMetadata): void;
6
+ debug(message: string, meta?: LogMetadata): void;
7
+ info(message: string, meta?: LogMetadata): void;
8
+ warn(message: string, meta?: LogMetadata): void;
9
+ error(message: string, meta?: LogMetadata): void;
10
+ }
11
+ export declare const logger: Logger;
12
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.logger = void 0;
7
+ var _nodeUtil = require("node:util");
8
+ var _chalk = _interopRequireDefault(require("chalk"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const format = _nodeUtil.formatWithOptions.bind(undefined, {
11
+ colors: true
12
+ });
13
+ const LOG_LEVEL_COLORS = {
14
+ TRACE: _chalk.default.gray,
15
+ DEBUG: _chalk.default.blue,
16
+ INFO: _chalk.default.green,
17
+ WARN: _chalk.default.yellow,
18
+ ERROR: _chalk.default.red
19
+ };
20
+ class Logger {
21
+ logFunction(entry) {
22
+ const {
23
+ level,
24
+ timestamp,
25
+ message,
26
+ meta
27
+ } = entry;
28
+ const date = new Date(timestamp);
29
+ const levelColor = LOG_LEVEL_COLORS[level];
30
+ if (meta === undefined) {
31
+ process.stderr.write(`${format(date)} [@intuned/sdk][${levelColor(level)}] ${message}\n`);
32
+ } else {
33
+ process.stderr.write(`${format(date)} [@intuned/sdk][${levelColor(level)}] ${message} ${format(meta)}\n`);
34
+ }
35
+ }
36
+ log(level, message, meta) {
37
+ this.logFunction({
38
+ level,
39
+ message,
40
+ meta: meta && Object.keys(meta).length === 0 ? undefined : meta,
41
+ timestamp: Date.now()
42
+ });
43
+ }
44
+ trace(message, meta) {
45
+ this.log("TRACE", message, meta);
46
+ }
47
+ debug(message, meta) {
48
+ this.log("DEBUG", message, meta);
49
+ }
50
+ info(message, meta) {
51
+ this.log("INFO", message, meta);
52
+ }
53
+ warn(message, meta) {
54
+ this.log("WARN", message, meta);
55
+ }
56
+ error(message, meta) {
57
+ this.log("ERROR", message, meta);
58
+ }
59
+ }
60
+ const logger = exports.logger = new Logger();
@@ -0,0 +1,8 @@
1
+ export type LogLevel = "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR";
2
+ export type LogMetadata = Record<string | symbol, any>;
3
+ export interface LogEntry {
4
+ level: LogLevel;
5
+ message: string;
6
+ timestamp: number;
7
+ meta?: LogMetadata;
8
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,12 @@
1
+ import { LogEntry, LogMetadata } from "./types";
2
+ declare class Logger {
3
+ logFunction(entry: LogEntry): void;
4
+ private log;
5
+ trace(message: string, meta?: LogMetadata): void;
6
+ debug(message: string, meta?: LogMetadata): void;
7
+ info(message: string, meta?: LogMetadata): void;
8
+ warn(message: string, meta?: LogMetadata): void;
9
+ error(message: string, meta?: LogMetadata): void;
10
+ }
11
+ export declare const logger: Logger;
12
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.logger = void 0;
7
+ var _nodeUtil = require("node:util");
8
+ var _chalk = _interopRequireDefault(require("chalk"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const format = _nodeUtil.formatWithOptions.bind(undefined, {
11
+ colors: true
12
+ });
13
+ const LOG_LEVEL_COLORS = {
14
+ TRACE: _chalk.default.gray,
15
+ DEBUG: _chalk.default.blue,
16
+ INFO: _chalk.default.green,
17
+ WARN: _chalk.default.yellow,
18
+ ERROR: _chalk.default.red
19
+ };
20
+ class Logger {
21
+ logFunction(entry) {
22
+ const {
23
+ level,
24
+ timestamp,
25
+ message,
26
+ meta
27
+ } = entry;
28
+ const date = new Date(timestamp);
29
+ const levelColor = LOG_LEVEL_COLORS[level];
30
+ if (meta === undefined) {
31
+ process.stderr.write(`${format(date)} [@intuned/sdk][${levelColor(level)}] ${message}\n`);
32
+ } else {
33
+ process.stderr.write(`${format(date)} [@intuned/sdk][${levelColor(level)}] ${message} ${format(meta)}\n`);
34
+ }
35
+ }
36
+ log(level, message, meta) {
37
+ this.logFunction({
38
+ level,
39
+ message,
40
+ meta: meta && Object.keys(meta).length === 0 ? undefined : meta,
41
+ timestamp: Date.now()
42
+ });
43
+ }
44
+ trace(message, meta) {
45
+ this.log("TRACE", message, meta);
46
+ }
47
+ debug(message, meta) {
48
+ this.log("DEBUG", message, meta);
49
+ }
50
+ info(message, meta) {
51
+ this.log("INFO", message, meta);
52
+ }
53
+ warn(message, meta) {
54
+ this.log("WARN", message, meta);
55
+ }
56
+ error(message, meta) {
57
+ this.log("ERROR", message, meta);
58
+ }
59
+ }
60
+ const logger = exports.logger = new Logger();
@@ -0,0 +1,8 @@
1
+ export type LogLevel = "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR";
2
+ export type LogMetadata = Record<string | symbol, any>;
3
+ export interface LogEntry {
4
+ level: LogLevel;
5
+ message: string;
6
+ timestamp: number;
7
+ meta?: LogMetadata;
8
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,17 +1,16 @@
1
- import { AsyncLocalStorage } from 'node:async_hooks';
2
- import { R as RunInfo, P as Payload } from '../../export.d-BAUMB-lG.js';
3
-
4
- declare const asyncLocalStorage: AsyncLocalStorage<InternalRunInfo>;
5
- declare function runWithContext<R, TArgs extends any[]>(contextData: InternalRunInfo, callback: (...args: TArgs) => R, ...args: TArgs): R;
1
+ /// <reference types="node" />
2
+ import { AsyncLocalStorage } from "node:async_hooks";
3
+ import { Payload, RunInfo } from "../../runtime/export";
4
+ export declare const asyncLocalStorage: AsyncLocalStorage<InternalRunInfo>;
5
+ export declare function runWithContext<R, TArgs extends any[]>(contextData: InternalRunInfo, callback: (...args: TArgs) => R, ...args: TArgs): R;
6
6
  interface TimeoutInfo {
7
7
  extendTimeoutCallback?: () => Promise<void>;
8
8
  }
9
- interface InternalRunInfo extends RunInfo {
9
+ export interface InternalRunInfo extends RunInfo {
10
10
  extendedPayloads: Payload[];
11
11
  timeoutInfo?: TimeoutInfo;
12
12
  store?: Record<string, any>;
13
13
  getAuthSessionParameters?: () => Promise<any>;
14
14
  }
15
- declare function getExecutionContext(): InternalRunInfo | undefined;
16
-
17
- export { type InternalRunInfo, asyncLocalStorage, getExecutionContext, runWithContext };
15
+ export declare function getExecutionContext(): InternalRunInfo | undefined;
16
+ export {};
@@ -1,42 +1,17 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/common/asyncLocalStorage/index.ts
20
- var asyncLocalStorage_exports = {};
21
- __export(asyncLocalStorage_exports, {
22
- asyncLocalStorage: () => asyncLocalStorage,
23
- getExecutionContext: () => getExecutionContext,
24
- runWithContext: () => runWithContext
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
25
5
  });
26
- module.exports = __toCommonJS(asyncLocalStorage_exports);
27
- var import_node_async_hooks = require("async_hooks");
28
- var asyncLocalStorage = new import_node_async_hooks.AsyncLocalStorage();
6
+ exports.asyncLocalStorage = void 0;
7
+ exports.getExecutionContext = getExecutionContext;
8
+ exports.runWithContext = runWithContext;
9
+ var _nodeAsync_hooks = require("node:async_hooks");
10
+ const asyncLocalStorage = exports.asyncLocalStorage = new _nodeAsync_hooks.AsyncLocalStorage();
29
11
  function runWithContext(contextData, callback, ...args) {
30
12
  return asyncLocalStorage.run(contextData, callback, ...args);
31
13
  }
32
14
  function getExecutionContext() {
33
15
  const contextData = asyncLocalStorage.getStore();
34
16
  return contextData;
35
- }
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- asyncLocalStorage,
39
- getExecutionContext,
40
- runWithContext
41
- });
42
- //# sourceMappingURL=index.js.map
17
+ }
@@ -0,0 +1 @@
1
+ export declare function getAuthSessionParameters(): Promise<any>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAuthSessionParameters = getAuthSessionParameters;
7
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
8
+ var _asyncLocalStorage = require("../asyncLocalStorage");
9
+ var _zod = require("zod");
10
+ var _jwtTokenManager = require("../jwtTokenManager");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const authSessionParametersResponseSchema = _zod.z.object({
13
+ parameters: _zod.z.any().refine(v => v !== undefined)
14
+ });
15
+ async function getAuthSessionParameters() {
16
+ const context = (0, _asyncLocalStorage.getExecutionContext)();
17
+ if (!context) {
18
+ throw new Error("getAuthSessionParameters failed due to an internal error (context was not found).");
19
+ }
20
+ const authSessionId = context.authSessionId;
21
+ if ((0, _isNil.default)(authSessionId)) {
22
+ throw new Error("AuthSessions are not enabled");
23
+ }
24
+ const response = await (0, _jwtTokenManager.callBackendFunctionWithToken)(`auth-session/${authSessionId}/parameters`, {
25
+ method: "GET"
26
+ });
27
+ const body = await response.text();
28
+ if (!response.ok) {
29
+ throw new Error(`getAuthSessionParameters failed with status ${response.status}: ${body}`);
30
+ }
31
+ let json;
32
+ try {
33
+ json = JSON.parse(body);
34
+ } catch (e) {
35
+ throw new Error(`Expected JSON response, but got ${body}`);
36
+ }
37
+ return authSessionParametersResponseSchema.parse(json).parameters;
38
+ }
@@ -1,2 +1 @@
1
-
2
- export { }
1
+ export {};
@@ -1,146 +1,40 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
- mod
22
- ));
23
-
24
- // src/common/binStartupScript.ts
25
- var import_dotenv = __toESM(require("dotenv"));
26
- var path2 = __toESM(require("path"));
27
-
28
- // src/common/intunedJson.ts
29
- var import_path = __toESM(require("path"));
30
- var fs = __toESM(require("fs-extra"));
31
- var import_zod = require("zod");
32
- var JSONC = __toESM(require("jsonc-parser"));
33
- var YAML = __toESM(require("yaml"));
34
- var TOML = __toESM(require("smol-toml"));
35
- var import_neverthrow = require("neverthrow");
36
- var intunedJsonSchema = import_zod.z.object({
37
- projectName: import_zod.z.string().optional(),
38
- workspaceId: import_zod.z.string().optional(),
39
- metadata: import_zod.z.object({
40
- defaultJobInput: import_zod.z.record(import_zod.z.any()).optional().catch(void 0),
41
- defaultRunPlaygroundInput: import_zod.z.record(import_zod.z.any()).optional().catch(void 0),
42
- testAuthSessionInput: import_zod.z.record(import_zod.z.any()).optional().catch(void 0)
43
- }).optional().catch(void 0),
44
- stealthMode: import_zod.z.object({
45
- enabled: import_zod.z.boolean()
46
- }).optional().catch(void 0)
47
- }).passthrough().and(
48
- import_zod.z.union([
49
- import_zod.z.object({
50
- authSessions: import_zod.z.object({ enabled: import_zod.z.literal(false) }),
51
- apiAccess: import_zod.z.object({
52
- enabled: import_zod.z.literal(false)
53
- })
54
- }),
55
- import_zod.z.object({
56
- authSessions: import_zod.z.union([
57
- import_zod.z.object({ enabled: import_zod.z.literal(false) }),
58
- import_zod.z.object({
59
- enabled: import_zod.z.literal(true),
60
- type: import_zod.z.enum(["MANUAL", "API"]),
61
- startUrl: import_zod.z.string().optional(),
62
- finishUrl: import_zod.z.string().optional()
63
- })
64
- ]),
65
- apiAccess: import_zod.z.object({
66
- enabled: import_zod.z.literal(true)
67
- })
68
- })
69
- ])
70
- );
71
- var intunedSettingsFileNames = [
72
- "Intuned.json",
73
- "Intuned.jsonc",
74
- "Intuned.yaml",
75
- "Intuned.yml",
76
- "Intuned.toml"
77
- ];
78
- var intunedSettingsParsers = {
79
- "Intuned.json": JSON.parse,
80
- "Intuned.jsonc": JSONC.parse,
81
- "Intuned.yaml": YAML.parse,
82
- "Intuned.yml": YAML.parse,
83
- "Intuned.toml": TOML.parse
84
- };
85
- function loadIntunedJsonSync() {
86
- const settingsFileResult = getIntunedSettingsFileSync();
87
- if (!settingsFileResult.isOk()) {
88
- return settingsFileResult;
89
- }
90
- const settingsFile = settingsFileResult.value;
91
- const intunedJsonContent = fs.readFileSync(settingsFile.path, "utf-8");
92
- let intunedJson;
93
- try {
94
- intunedJson = settingsFile.parse(intunedJsonContent);
95
- } catch (e) {
96
- return (0, import_neverthrow.err)(`Failed to parse ${settingsFile.name}: ${e.message}`);
97
- }
98
- const parseResult = intunedJsonSchema.safeParse(intunedJson);
99
- if (!parseResult.success) {
100
- const formattedError = parseResult.error.errors.map((e) => `- ${e.path.join(".")}: ${e.message}`).join("\n");
101
- return (0, import_neverthrow.err)(
102
- `${settingsFile.name} is not valid:
103
- ${formattedError}
104
- Please fix the errors and try again.`
105
- );
106
- }
107
- return (0, import_neverthrow.ok)(parseResult.data);
108
- }
109
- function getIntunedSettingsFileSync() {
110
- for (const fileName of intunedSettingsFileNames) {
111
- const filePath = import_path.default.join(process.cwd(), fileName);
112
- if (fs.existsSync(filePath)) {
113
- return (0, import_neverthrow.ok)({
114
- name: fileName,
115
- path: filePath,
116
- parse: intunedSettingsParsers[fileName]
117
- });
118
- }
119
- }
120
- return (0, import_neverthrow.err)("No Intuned settings file found.");
121
- }
1
+ "use strict";
122
2
 
123
- // src/common/binStartupScript.ts
124
- import_dotenv.default.config({
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
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ _dotenv.default.config({
125
9
  path: `.env`
126
10
  });
127
- function isStealthModeEnabled() {
11
+ function getStealthModeConfig() {
128
12
  try {
129
- const settingsResult = loadIntunedJsonSync();
13
+ const settingsResult = (0, _intunedJson.loadIntunedJsonSync)();
130
14
  if (settingsResult.isErr()) {
131
15
  console.error(`Warning: Failed to load Intuned settings: ${settingsResult.error}
132
16
  Stealth mode will not be enabled.`);
133
- return false;
17
+ return {
18
+ enabled: false,
19
+ type: "patchright"
20
+ };
134
21
  }
135
- return settingsResult.value.stealthMode?.enabled === true;
22
+ return {
23
+ enabled: settingsResult.value.stealthMode?.enabled === true,
24
+ type: settingsResult.value.stealthMode?.type || "patchright"
25
+ };
136
26
  } catch (error) {
137
27
  console.error("Error reading Intuned.json:", error.message);
138
- return false;
28
+ return {
29
+ enabled: false,
30
+ type: "patchright"
31
+ };
139
32
  }
140
33
  }
141
34
  try {
142
- if (isStealthModeEnabled()) {
143
- const currentNodeModules = path2.resolve(process.cwd(), "node_modules");
35
+ const stealthConfig = getStealthModeConfig();
36
+ if (stealthConfig.enabled && stealthConfig.type === "patchright") {
37
+ const currentNodeModules = path.resolve(process.cwd(), "node_modules");
144
38
  process.env.NODE_PATH = process.env.NODE_PATH ? `${process.env.NODE_PATH}:${currentNodeModules}` : currentNodeModules;
145
39
  require("module").Module._initPaths();
146
40
  if (process.env.PLAYWRIGHT_PATCH_SCRIPT_PATH) {
@@ -149,5 +43,4 @@ try {
149
43
  }
150
44
  } catch (e) {
151
45
  console.error("Failed to apply stealth mode");
152
- }
153
- //# sourceMappingURL=binStartupScript.js.map
46
+ }
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Tab management utilities using CDP HTTP API.
3
+ *
4
+ * Provides functions to interact with browser tabs via Chrome DevTools Protocol HTTP endpoints.
5
+ * Refer to https://chromedevtools.github.io/devtools-protocol/ for the endpoints documentation.
6
+ * This approach is simpler than using the playwright API because it doesn't require us to create a playwright context.
7
+ */
8
+ export interface CDPTabInfo {
9
+ id: string;
10
+ type: string;
11
+ title: string;
12
+ url: string;
13
+ webSocketDebuggerUrl?: string;
14
+ devtoolsFrontendUrl?: string;
15
+ faviconUrl?: string;
16
+ description?: string;
17
+ }
18
+ /**
19
+ * Fetch current tabs from CDP /json endpoint.
20
+ *
21
+ * @param cdpAddress - CDP address (e.g., "http://localhost:9222")
22
+ * @returns List of tab info dictionaries from CDP (filtered to only "page" type)
23
+ *
24
+ * @example
25
+ * const tabs = await getCDPTabs("http://localhost:9222");
26
+ * // Returns:
27
+ * // [
28
+ * // {
29
+ * // "id": "1234",
30
+ * // "type": "page",
31
+ * // "title": "Google",
32
+ * // "url": "https://google.com",
33
+ * // ...
34
+ * // }
35
+ * // ]
36
+ */
37
+ export declare function getCDPTabs(cdpAddress: string): Promise<CDPTabInfo[]>;
38
+ /**
39
+ * Create new tab via CDP /json/new endpoint with optional URL.
40
+ *
41
+ * @param cdpAddress - CDP address (e.g., "http://localhost:9222")
42
+ * @param url - Initial URL for the tab (default: "about:blank")
43
+ * @returns Tab info dictionary from CDP
44
+ *
45
+ * @example
46
+ * const tab = await createCDPTab("http://localhost:9222", "https://google.com");
47
+ * // Returns:
48
+ * // {
49
+ * // "id": "1234",
50
+ * // "type": "page",
51
+ * // "title": "New Tab",
52
+ * // "url": "about:blank",
53
+ * // ...
54
+ * // }
55
+ */
56
+ export declare function createCDPTab(cdpAddress: string, url?: string): Promise<CDPTabInfo>;
57
+ /**
58
+ * Close tab via CDP /json/close/{id} endpoint.
59
+ *
60
+ * @param cdpAddress - CDP address (e.g., "http://localhost:9222")
61
+ * @param cdpTargetId - Full CDP target ID to close
62
+ * @returns True if successful, False otherwise
63
+ */
64
+ export declare function closeCDPTab(cdpAddress: string, cdpTargetId: string): Promise<boolean>;
65
+ /**
66
+ * Activate/bring to front a tab via CDP /json/activate/{id} endpoint.
67
+ *
68
+ * @param cdpAddress - CDP address (e.g., "http://localhost:9222")
69
+ * @param cdpTargetId - Full CDP target ID to activate
70
+ * @returns True if successful, False otherwise
71
+ */
72
+ export declare function activateCDPTab(cdpAddress: string, cdpTargetId: string): Promise<boolean>;