@intuned/runtime 1.3.17 → 1.3.18-interface.7
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/bin/intuned +0 -0
- package/bin/intuned-interface +7 -0
- package/dist/chunk-6ZRJOUQS.mjs +16 -0
- package/dist/chunk-6ZRJOUQS.mjs.map +1 -0
- package/dist/chunk-7YL2JUTE.mjs +146 -0
- package/dist/chunk-7YL2JUTE.mjs.map +1 -0
- package/dist/chunk-B3T6RXPC.mjs +794 -0
- package/dist/chunk-B3T6RXPC.mjs.map +1 -0
- package/dist/chunk-FGV5T6SI.mjs +27 -0
- package/dist/chunk-FGV5T6SI.mjs.map +1 -0
- package/dist/chunk-G4PO5RIV.mjs +85 -0
- package/dist/chunk-G4PO5RIV.mjs.map +1 -0
- package/dist/chunk-LZOMFHX3.mjs +38 -0
- package/dist/chunk-LZOMFHX3.mjs.map +1 -0
- package/dist/{common/formatZodError.js → chunk-NDMVGENG.mjs} +9 -9
- package/dist/chunk-NDMVGENG.mjs.map +1 -0
- package/dist/chunk-W4UX6G4X.mjs +17 -0
- package/dist/chunk-W4UX6G4X.mjs.map +1 -0
- package/dist/chunk-XC75QGFG.mjs +1106 -0
- package/dist/chunk-XC75QGFG.mjs.map +1 -0
- package/dist/chunk-XOAZ2MGA.mjs +59 -0
- package/dist/chunk-XOAZ2MGA.mjs.map +1 -0
- package/dist/commands/interface/run.d.mts +3 -0
- package/dist/commands/interface/run.d.ts +3 -1
- package/dist/commands/interface/run.js +2060 -178
- package/dist/commands/interface/run.js.map +1 -0
- package/dist/commands/interface/run.mjs +255 -0
- package/dist/commands/interface/run.mjs.map +1 -0
- package/dist/common/asyncLocalStorage/index.d.mts +17 -0
- package/dist/common/asyncLocalStorage/index.d.ts +9 -8
- package/dist/common/asyncLocalStorage/index.js +34 -9
- package/dist/common/asyncLocalStorage/index.js.map +1 -0
- package/dist/common/asyncLocalStorage/index.mjs +12 -0
- package/dist/common/asyncLocalStorage/index.mjs.map +1 -0
- package/dist/common/binStartupScript.d.mts +2 -0
- package/dist/common/binStartupScript.d.ts +2 -1
- package/dist/common/binStartupScript.js +127 -11
- package/dist/common/binStartupScript.js.map +1 -0
- package/dist/common/binStartupScript.mjs +135 -0
- package/dist/common/binStartupScript.mjs.map +1 -0
- package/dist/common/cleanEnvironmentVariables.d.mts +3 -0
- package/dist/common/cleanEnvironmentVariables.d.ts +3 -1
- package/dist/common/cleanEnvironmentVariables.js +30 -7
- package/dist/common/cleanEnvironmentVariables.js.map +1 -0
- package/dist/common/cleanEnvironmentVariables.mjs +8 -0
- package/dist/common/cleanEnvironmentVariables.mjs.map +1 -0
- package/dist/common/constants.d.mts +13 -0
- package/dist/common/constants.d.ts +13 -10
- package/dist/common/constants.js +58 -14
- package/dist/common/constants.js.map +1 -0
- package/dist/common/constants.mjs +28 -0
- package/dist/common/constants.mjs.map +1 -0
- package/dist/common/contextStorageStateHelpers.d.mts +24 -0
- package/dist/common/contextStorageStateHelpers.d.ts +8 -5
- package/dist/common/contextStorageStateHelpers.js +51 -23
- package/dist/common/contextStorageStateHelpers.js.map +1 -0
- package/dist/common/contextStorageStateHelpers.mjs +10 -0
- package/dist/common/contextStorageStateHelpers.mjs.map +1 -0
- package/dist/common/jwtTokenManager.d.mts +19 -0
- package/dist/common/jwtTokenManager.d.ts +6 -4
- package/dist/common/jwtTokenManager.js +112 -40
- package/dist/common/jwtTokenManager.js.map +1 -0
- package/dist/common/jwtTokenManager.mjs +11 -0
- package/dist/common/jwtTokenManager.mjs.map +1 -0
- package/dist/common/runApi/index.d.mts +11 -0
- package/dist/common/runApi/index.d.ts +10 -10
- package/dist/common/runApi/index.js +1776 -93
- package/dist/common/runApi/index.js.map +1 -0
- package/dist/common/runApi/index.mjs +18 -0
- package/dist/common/runApi/index.mjs.map +1 -0
- package/dist/common/settingsSchema.d.mts +540 -0
- package/dist/common/settingsSchema.d.ts +58 -51
- package/dist/common/settingsSchema.js +55 -20
- package/dist/common/settingsSchema.js.map +1 -0
- package/dist/common/settingsSchema.mjs +10 -0
- package/dist/common/settingsSchema.mjs.map +1 -0
- package/dist/common/telemetry.d.mts +6 -0
- package/dist/common/telemetry.d.ts +6 -3
- package/dist/common/telemetry.js +41 -9
- package/dist/common/telemetry.js.map +1 -0
- package/dist/common/telemetry.mjs +31 -0
- package/dist/common/telemetry.mjs.map +1 -0
- package/dist/export.d-BAUMB-lG.d.mts +140 -0
- package/dist/export.d-BAUMB-lG.d.ts +140 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +783 -98
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +47 -0
- package/dist/index.mjs.map +1 -0
- package/dist/runtime/index.d.mts +168 -0
- package/dist/runtime/index.d.ts +168 -10
- package/dist/runtime/index.js +779 -88
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/index.mjs +42 -0
- package/dist/runtime/index.mjs.map +1 -0
- package/package.json +78 -23
- package/.babelrc +0 -21
- package/.eslintignore +0 -10
- package/.eslintrc.js +0 -39
- package/InterfaceTemplate/__utils.ts +0 -61
- package/InterfaceTemplate/index.playwright.ts +0 -6
- package/WebTemplate.zip +0 -0
- package/dist/commands/api/run.d.ts +0 -6
- package/dist/commands/api/run.js +0 -119
- package/dist/commands/auth-sessions/load.d.ts +0 -2
- package/dist/commands/auth-sessions/load.js +0 -35
- package/dist/commands/auth-sessions/run-check.d.ts +0 -2
- package/dist/commands/auth-sessions/run-check.js +0 -74
- package/dist/commands/auth-sessions/run-create.d.ts +0 -2
- package/dist/commands/auth-sessions/run-create.js +0 -78
- package/dist/commands/browser/save-state.d.ts +0 -2
- package/dist/commands/browser/save-state.js +0 -17
- package/dist/commands/browser/start-browser.d.ts +0 -2
- package/dist/commands/browser/start-browser.js +0 -14
- package/dist/commands/build.d.ts +0 -1
- package/dist/commands/build.js +0 -84
- package/dist/commands/common/browserUtils.d.ts +0 -14
- package/dist/commands/common/browserUtils.js +0 -58
- package/dist/commands/common/getFirstLineNumber.d.ts +0 -9
- package/dist/commands/common/getFirstLineNumber.js +0 -101
- package/dist/commands/common/getFirstLineNumber.test.js +0 -228
- package/dist/commands/common/projectExclusions.d.ts +0 -2
- package/dist/commands/common/projectExclusions.js +0 -8
- package/dist/commands/common/sendMessageToClient.d.ts +0 -1
- package/dist/commands/common/sendMessageToClient.js +0 -10
- package/dist/commands/common/tsNodeImport.d.ts +0 -2
- package/dist/commands/common/tsNodeImport.js +0 -43
- package/dist/commands/common/utils/fileUtils.d.ts +0 -6
- package/dist/commands/common/utils/fileUtils.js +0 -33
- package/dist/commands/common/utils/settings.d.ts +0 -2
- package/dist/commands/common/utils/settings.js +0 -31
- package/dist/commands/common/utils/template.d.ts +0 -2
- package/dist/commands/common/utils/template.js +0 -31
- package/dist/commands/common/utils/unixSocket.d.ts +0 -23
- package/dist/commands/common/utils/unixSocket.js +0 -87
- package/dist/commands/get-headless-user-agent.d.ts +0 -1
- package/dist/commands/get-headless-user-agent.js +0 -18
- 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 -31
- 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 -35
- package/dist/commands/intuned-cli/commands/types.js +0 -31
- 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 -398
- package/dist/commands/intuned-cli/controller/__test__/authSession.test.js +0 -1060
- 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 -424
- package/dist/commands/intuned-cli/controller/build.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/build.js +0 -36
- package/dist/commands/intuned-cli/controller/deploy.d.ts +0 -5
- package/dist/commands/intuned-cli/controller/deploy.js +0 -318
- package/dist/commands/intuned-cli/controller/index.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/index.js +0 -46
- package/dist/commands/intuned-cli/controller/provision.d.ts +0 -21
- package/dist/commands/intuned-cli/controller/provision.js +0 -300
- 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 -115
- 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 -15
- package/dist/commands/intuned-cli/helpers/browser.js +0 -64
- 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 -39
- 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 -36
- package/dist/commands/intuned-cli/types.d.ts +0 -70
- package/dist/commands/intuned-cli/types.js +0 -22
- package/dist/commands/ts-check.d.ts +0 -2
- package/dist/commands/ts-check.js +0 -56
- package/dist/common/Logger/Logger/index.d.ts +0 -12
- package/dist/common/Logger/Logger/index.js +0 -60
- package/dist/common/Logger/Logger/types.d.ts +0 -8
- package/dist/common/Logger/Logger/types.js +0 -5
- package/dist/common/Logger/index.d.ts +0 -12
- package/dist/common/Logger/index.js +0 -60
- package/dist/common/Logger/types.d.ts +0 -8
- package/dist/common/Logger/types.js +0 -5
- package/dist/common/backendFunctions/getAuthSessionParameters.d.ts +0 -1
- package/dist/common/backendFunctions/getAuthSessionParameters.js +0 -38
- package/dist/common/extension/extensionsHelpers.d.ts +0 -11
- package/dist/common/extension/extensionsHelpers.js +0 -147
- package/dist/common/extension/intunedExtensionServer.d.ts +0 -24
- package/dist/common/extension/intunedExtensionServer.js +0 -178
- package/dist/common/extension/types.d.ts +0 -212
- package/dist/common/extension/types.js +0 -51
- package/dist/common/formatZodError.d.ts +0 -2
- package/dist/common/intunedJson.d.ts +0 -229
- package/dist/common/intunedJson.js +0 -133
- package/dist/common/launchBrowser.d.ts +0 -33
- package/dist/common/launchBrowser.js +0 -235
- package/dist/common/playwrightContext.d.ts +0 -31
- package/dist/common/playwrightContext.js +0 -150
- package/dist/common/runApi/errors.d.ts +0 -72
- package/dist/common/runApi/errors.js +0 -169
- package/dist/common/runApi/importUsingImportFunction.d.ts +0 -9
- package/dist/common/runApi/importUsingImportFunction.js +0 -46
- package/dist/common/runApi/types.d.ts +0 -830
- package/dist/common/runApi/types.js +0 -73
- package/dist/common/setupContextHook.d.ts +0 -17
- package/dist/common/setupContextHook.js +0 -22
- package/dist/runtime/RunError.d.ts +0 -5
- package/dist/runtime/RunError.js +0 -19
- package/dist/runtime/attemptStore.d.ts +0 -2
- package/dist/runtime/attemptStore.js +0 -23
- package/dist/runtime/captcha.d.ts +0 -15
- package/dist/runtime/captcha.js +0 -191
- package/dist/runtime/captcha.test.js +0 -821
- package/dist/runtime/downloadDirectory.d.ts +0 -1
- package/dist/runtime/downloadDirectory.js +0 -19
- package/dist/runtime/enums.d.js +0 -5
- package/dist/runtime/enums.d.ts +0 -11
- package/dist/runtime/enums.js +0 -18
- package/dist/runtime/executionHelpers.test.js +0 -52
- package/dist/runtime/export.d.js +0 -5
- package/dist/runtime/export.d.ts +0 -284
- package/dist/runtime/extendPayload.d.ts +0 -2
- package/dist/runtime/extendPayload.js +0 -21
- package/dist/runtime/extendTimeout.d.ts +0 -1
- package/dist/runtime/extendTimeout.js +0 -23
- package/dist/runtime/getAiGatewayConfig.d.ts +0 -10
- package/dist/runtime/getAiGatewayConfig.js +0 -16
- package/dist/runtime/getAuthSessionParameters.d.ts +0 -1
- package/dist/runtime/getAuthSessionParameters.js +0 -20
- package/dist/runtime/persistentStore.d.ts +0 -2
- package/dist/runtime/persistentStore.js +0 -37
- package/dist/runtime/persistentStore.test.js +0 -101
- package/dist/runtime/runInfo.d.ts +0 -2
- package/dist/runtime/runInfo.js +0 -21
- package/template.tsconfig.json +0 -11
- package/tsconfig.eslint.json +0 -5
- package/tsconfig.json +0 -25
- package/typedoc.json +0 -49
- /package/dist/common/assets/{browser_scripts.js → assets/browser_scripts.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../packages/runtime-interface/src/errors.ts","../../packages/runtime-interface/src/types.ts","../../packages/runtime-interface/src/interfaceClient.ts","../../packages/runtime-interface/src/index.ts","../src/common/runApi/index.ts","../src/common/playwrightContext.ts","../src/common/setupContextHook.ts","../src/common/runApi/importUsingImportFunction.ts","../src/common/launchBrowser.ts"],"sourcesContent":["// import { RunError } from \"../../runtime\";\n// import { RunErrorOptions } from \"../../runtime/export\";\n\nexport const apiNotFoundErrorCode = \"APINotFoundError\";\nexport const invalidApiErrorCode = \"InvalidAPIError\";\nexport const invalidCheckErrorCode = \"InvalidCheckError\";\nexport const abortedErrorCode = \"AbortedError\";\nexport const authRequiredErrorCode = \"AuthRequiredError\";\nexport const authCheckNotFoundErrorCode = \"AuthCheckNotFoundError\";\nexport const authCheckFailedErrorCode = \"AuthCheckFailedError\";\nexport const maxLevelsExceededErrorCode = \"MaxLevelsExceededError\";\nexport const automationError = \"AutomationError\";\nexport const internalInvalidInputErrorCode = \"InternalInvalidInputError\";\nexport const resultTooBigErrorCode = \"ResultTooBigError\";\n\nexport const runAutomationErrorCodes = [\n apiNotFoundErrorCode,\n invalidApiErrorCode,\n invalidCheckErrorCode,\n abortedErrorCode,\n authRequiredErrorCode,\n authCheckNotFoundErrorCode,\n authCheckFailedErrorCode,\n maxLevelsExceededErrorCode,\n automationError,\n internalInvalidInputErrorCode,\n resultTooBigErrorCode,\n] as const;\n\nexport type RunAutomationErrorCode = (typeof runAutomationErrorCodes)[number];\n\nexport type RunAutomationErrorJSON = {\n code: RunAutomationErrorCode;\n details?: any;\n cause?: RunAutomationErrorJSON;\n [key: string]: any;\n};\n\nexport abstract class RunAutomationError<T = any> {\n cause?: RunAutomationError;\n details?: T;\n\n constructor(public code: RunAutomationErrorCode, public message: string) {}\n\n get json(): RunAutomationErrorJSON {\n return {\n code: this.code,\n details: this.details,\n cause: this.cause?.json,\n };\n }\n}\n\nexport class ApiNotFoundError extends RunAutomationError {\n constructor(apiName: string) {\n super(apiNotFoundErrorCode, `API ${apiName} not found`);\n }\n}\n\nexport class InvalidApiError extends RunAutomationError {\n constructor(message: string) {\n super(invalidApiErrorCode, `API is invalid: ${message}`);\n\n this.details = {\n message,\n };\n }\n}\n\nexport class InvalidCheckError extends RunAutomationError {\n constructor(message: string, cause?: RunAutomationError) {\n super(invalidCheckErrorCode, message);\n this.cause = cause;\n }\n}\n\nexport class AbortedError extends RunAutomationError {\n constructor() {\n super(abortedErrorCode, \"Operation was aborted\");\n }\n}\n\nexport class AuthRequiredError extends RunAutomationError {\n constructor() {\n super(authRequiredErrorCode, \"AuthSessions are required\");\n }\n}\n\nexport class AuthCheckNotFoundError extends RunAutomationError {\n constructor() {\n super(authCheckNotFoundErrorCode, \"AuthSession check not found\");\n }\n}\n\nexport class AuthCheckFailedError extends RunAutomationError {\n constructor() {\n super(authCheckFailedErrorCode, \"AuthSession check failed\");\n }\n}\n\nexport class MaxLevelsExceededError extends RunAutomationError<{\n levels: number;\n}> {\n constructor(levels: number) {\n super(\n maxLevelsExceededErrorCode,\n `Max levels exceeded. Only ${levels} levels are supported`\n );\n this.details = { levels };\n }\n}\n\nexport class AutomationError extends RunAutomationError<{\n name?: string;\n message?: string;\n statusCode?: number;\n errorCode?: string;\n}> {\n error: any;\n\n constructor(error: any) {\n super(automationError, `[${error?.name ?? error}] ${error?.message}`);\n this.details = {\n ...error,\n };\n }\n}\n\nexport class InternalInvalidInputError extends RunAutomationError {\n constructor(message: string, details?: any) {\n super(internalInvalidInputErrorCode, message);\n this.details = details;\n }\n}\n\nexport class ResultTooBigError extends RunAutomationError<{\n sizeInBytes: number;\n maxSizeInBytes: number;\n}> {\n constructor(sizeInBytes: number, maxSizeInBytes: number) {\n super(\n resultTooBigErrorCode,\n `Automation result is too big. Size: ${\n Math.round((sizeInBytes / 1024 / 1024) * 100) / 100\n }MB, Max allowed: ${\n Math.round((maxSizeInBytes / 1024 / 1024) * 100) / 100\n }MB`\n );\n this.details = { sizeInBytes, maxSizeInBytes };\n }\n}\n","import type { Result } from \"neverthrow\";\nimport type { RunAutomationError } from \"./errors\";\nimport z from \"zod\";\n\nexport type Payload = {\n api: string;\n parameters: any;\n};\nexport interface PayloadToAppend {\n apiName: string;\n parameters: Record<string, any>;\n}\n\nexport interface RunAutomationSuccessResult {\n result: any;\n status: number;\n payloadToAppend: PayloadToAppend[] | null;\n session?: RunApiStorageState;\n}\n\nexport interface RunAutomationErrorResult {\n error: string;\n message: string;\n status?: number;\n details?: any;\n [key: string]: any;\n}\n\nexport type RunAutomationResult =\n | RunAutomationSuccessResult\n | RunAutomationErrorResult;\n\nexport interface RunAutomationResponse {\n status: number;\n body: RunAutomationResult;\n}\n\nexport const runApiStorageStateSchema = z.object({\n cookies: z.array(\n z.object({\n name: z.string(),\n value: z.string(),\n domain: z.string(),\n path: z.string(),\n expires: z.number(),\n httpOnly: z.boolean(),\n secure: z.boolean(),\n sameSite: z.enum([\"Strict\", \"Lax\", \"None\"]),\n })\n ),\n origins: z.array(\n z.object({\n origin: z.string(),\n localStorage: z.array(\n z.object({\n name: z.string(),\n value: z.string(),\n })\n ),\n })\n ),\n sessionStorage: z\n .array(\n z.object({\n origin: z.string(),\n sessionStorage: z.array(\n z.object({\n name: z.string(),\n value: z.string(),\n })\n ),\n })\n )\n .optional(),\n});\n\nexport type RunApiStorageState = z.input<typeof runApiStorageStateSchema>;\n\nexport const runApiSessionSchema = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"file\"),\n path: z.string(),\n }),\n z.object({\n type: z.literal(\"state\"),\n state: runApiStorageStateSchema.nullable().optional(),\n }),\n]);\n\nexport const runApiAutomationFunctionSchema = z.object({\n name: z.string(),\n params: z.any().optional(),\n});\n\nexport type RunApiAutomationFunction = z.infer<\n typeof runApiAutomationFunctionSchema\n>;\n\nexport const runApiTracingSchema = z\n .discriminatedUnion(\"enabled\", [\n z.object({ enabled: z.literal(false) }),\n z.object({ enabled: z.literal(true), filePath: z.string() }),\n ])\n .optional()\n .default({ enabled: false });\n\nexport type RunApiTracing = z.infer<typeof runApiTracingSchema>;\n\nexport const runApiAuthSchema = z\n .object({\n session: runApiSessionSchema,\n parameters: z.record(z.any()).optional(),\n })\n .optional();\n\nexport type RunApiAuth = z.infer<typeof runApiAuthSchema>;\n\nexport const runApiStandaloneRunOptionsSchema = z.object({\n environment: z.literal(\"standalone\"),\n headless: z.boolean().default(true),\n proxy: z\n .object({\n server: z.string(),\n username: z.string(),\n password: z.string(),\n })\n .optional(),\n});\n\nexport type RunApiStandaloneRunOptions = z.infer<\n typeof runApiStandaloneRunOptionsSchema\n>;\n\nexport const runApiCdpRunOptionsSchema = z.object({\n environment: z.literal(\"cdp\"),\n cdpAddress: z.string(),\n cdpTargetId: z.string().optional(),\n});\n\nexport type RunApiCdpRunOptions = z.infer<typeof runApiCdpRunOptionsSchema>;\n\nexport const runApiRunOptionsSchema = z\n .discriminatedUnion(\"environment\", [\n runApiStandaloneRunOptionsSchema,\n runApiCdpRunOptionsSchema,\n ])\n .default({ environment: \"standalone\", headless: true });\n\nexport type RunApiRunOptions = z.infer<typeof runApiRunOptionsSchema>;\n\nexport const runApiParametersSchema = z.object({\n automationFunction: runApiAutomationFunctionSchema,\n tracing: runApiTracingSchema,\n auth: runApiAuthSchema,\n runOptions: runApiRunOptionsSchema,\n retrieveSession: z.boolean().default(false),\n});\n\nexport type RunApiSession = z.infer<typeof runApiSessionSchema>;\n\nexport type RunApiParameters = z.input<typeof runApiParametersSchema>;\n\nexport type ImportFunctionError =\n | {\n type: \"not_found\";\n }\n | {\n type: \"other\";\n error: any;\n };\n\nexport type ImportFunction = (\n name: string\n) => Promise<Result<any, ImportFunctionError>>;\n\nexport type ExtendedRunApiParameters = RunApiParameters & {\n abortSignal?: AbortSignal;\n importFunction: ImportFunction;\n};\n\nexport function runApiResultOkSchema<R extends any>(\n resultSchema: z.ZodType<R>\n) {\n return z.object({\n result: resultSchema,\n extendedPayloads: z\n .array(\n z.object({\n api: z.string(),\n parameters: z.record(z.any()),\n })\n )\n .optional(),\n });\n}\n\nexport type RunApiResultOk<R = any> = {\n result: R;\n extendedPayloads: Payload[] | undefined;\n};\n\nexport function runApiResultWithSessionOkSchema<R extends any>(\n resultSchema: z.ZodType<R>\n) {\n return runApiResultOkSchema(resultSchema).extend({\n session: runApiStorageStateSchema,\n });\n}\n\nexport type RunApiResultWithSessionOk<R = any> = RunApiResultOk<R> & {\n session: RunApiStorageState;\n};\n\nexport type RunApiResult<\n R = any,\n FullResult extends RunApiResultOk<R> = RunApiResultOk<R>\n> = Result<FullResult, RunAutomationError>;\n\n// incoming messages\n\nexport const startRunApiParametersSchema = runApiParametersSchema.extend({\n retrieveSession: z.boolean(),\n functionsToken: z.string().optional(),\n context: z\n .object({\n jobId: z.string().optional(),\n jobRunId: z.string().optional(),\n runId: z.string().optional(),\n queueId: z.string().optional(),\n authSessionId: z.string().optional(),\n })\n .optional(),\n});\n\nexport type StartRunApiParameters = z.infer<typeof startRunApiParametersSchema>;\n\nexport const startRunApiSchema = z.object({\n type: z.literal(\"start\"),\n parameters: startRunApiParametersSchema,\n});\n\nexport type StartRunApiMessage = z.infer<typeof startRunApiSchema>;\n\nexport const abortRunApiSchema = z.object({\n type: z.literal(\"abort\"),\n parameters: z.object({}).optional(),\n});\n\nexport type AbortRunApiMessage = z.infer<typeof abortRunApiSchema>;\n\nexport const tokenUpdateSchema = z.object({\n type: z.literal(\"tokenUpdate\"),\n parameters: z.object({\n functionsToken: z.string(),\n }),\n});\n\nexport type TokenUpdateMessage = z.infer<typeof tokenUpdateSchema>;\n\nexport const pingSchema = z.object({\n type: z.literal(\"ping\"),\n parameters: z.object({}).optional(),\n});\n\nexport type PingMessage = z.infer<typeof pingSchema>;\n\nexport const runApiInputSchema = z.union([\n startRunApiSchema,\n abortRunApiSchema,\n tokenUpdateSchema,\n pingSchema,\n]);\n\nexport type RunApiInputMessage = z.infer<typeof runApiInputSchema>;\n\n// outgoing messages\n\nexport const extendMessageSchema = z.object({ type: z.literal(\"extend\") });\n\nexport type ExtendMessage = z.infer<typeof extendMessageSchema>;\n\nexport const doneMessageSchema = z.object({\n type: z.literal(\"done\"),\n result: z.any(),\n success: z.boolean(),\n});\n\nexport type DoneMessage = z.infer<typeof doneMessageSchema>;\n\nexport const pongMessageSchema = z.object({\n type: z.literal(\"pong\"),\n});\n\nexport type PongMessage = z.infer<typeof pongMessageSchema>;\n\nexport const outputRunApiSchema = z.union([\n extendMessageSchema,\n doneMessageSchema,\n pongMessageSchema,\n]);\n\nexport type RunApiOutputMessage = z.infer<typeof outputRunApiSchema>;\n","import * as net from \"net\";\nimport * as fs from \"fs-extra\";\nimport { createInterface } from \"readline\";\nimport { setTimeout } from \"timers/promises\";\n\nexport interface InterfaceClient {\n sendJSON(data: any): void;\n receiveJSON(): AsyncGenerator<any, void, unknown>;\n close(): void;\n get closed(): boolean;\n}\n\nexport class SocketClient implements InterfaceClient {\n static readonly LENGTH_HEADER_LENGTH = 4;\n protected readonly socket: net.Socket;\n\n constructor(socket: net.Socket) {\n this.socket = socket;\n }\n\n sendJSON(data: any) {\n const dataToSend = JSON.stringify(data);\n // calculate length\n const length = Buffer.byteLength(dataToSend);\n // create buffer\n const buffer = Buffer.alloc(SocketClient.LENGTH_HEADER_LENGTH + length);\n\n // write length in big endian\n buffer.writeUInt32BE(length, 0);\n // write data\n buffer.write(dataToSend, SocketClient.LENGTH_HEADER_LENGTH);\n\n this.socket.write(buffer);\n }\n\n async *receiveJSON() {\n let buffer = Buffer.alloc(0);\n const endPromise = new Promise<void>((resolve, reject) => {\n this.socket.once(\"end\", () => {\n resolve();\n });\n this.socket.once(\"error\", reject);\n });\n\n while (true) {\n const chunk = await Promise.race([\n new Promise<Buffer>((resolve) =>\n this.socket.once(\"data\", (data) => {\n if(typeof data === \"string\") {\n return resolve(Buffer.from(data));\n }\n resolve(data);\n })\n ),\n endPromise,\n ]);\n\n if (!(chunk instanceof Buffer)) {\n break;\n }\n\n buffer = Buffer.concat([buffer, chunk]);\n\n const length = buffer.readUInt32BE(0);\n if (buffer.length < length + SocketClient.LENGTH_HEADER_LENGTH) {\n continue;\n }\n\n const data = buffer.subarray(\n SocketClient.LENGTH_HEADER_LENGTH,\n length + SocketClient.LENGTH_HEADER_LENGTH\n );\n buffer = buffer.subarray(length + SocketClient.LENGTH_HEADER_LENGTH);\n\n yield JSON.parse(data.toString());\n }\n }\n\n async close() {\n this.socket.end();\n\n await Promise.race([\n new Promise((resolve) => this.socket.once(\"close\", resolve)),\n new Promise((resolve) => this.socket.once(\"error\", resolve)),\n setTimeout(3000),\n ]);\n }\n\n get closed(): boolean {\n return this.socket.closed;\n }\n}\n\nexport class UnixSocketClient extends SocketClient {\n constructor(path: string) {\n super(net.createConnection(path));\n }\n}\n\nexport class TCPSocketClient extends SocketClient {\n constructor(host: string, port: number) {\n super(net.createConnection(port, host));\n }\n}\n\nexport class JSONLFileClient implements InterfaceClient {\n private readonly fileStream: fs.ReadStream;\n constructor(filePath: string) {\n this.fileStream = fs.createReadStream(filePath, { encoding: \"utf-8\" });\n }\n\n sendJSON(data: any) {\n console.log(\"Sending message\", data);\n }\n\n async *receiveJSON() {\n const rl = createInterface({\n input: this.fileStream,\n crlfDelay: Infinity,\n });\n\n for await (const line of rl) {\n if (line.trim() === \"\") {\n continue;\n }\n yield JSON.parse(line);\n }\n }\n\n async close() {\n this.fileStream.close();\n\n await Promise.race([\n new Promise((resolve) => this.fileStream.once(\"close\", resolve)),\n new Promise((resolve) => this.fileStream.once(\"error\", resolve)),\n setTimeout(3000),\n ]);\n }\n\n get closed(): boolean {\n return this.fileStream.closed;\n }\n}\n","export * from \"./errors\";\nexport * from \"./types\";\nexport * from \"./interfaceClient\";","import { getDownloadDirectoryPath } from \"../../runtime/downloadDirectory\";\nimport { getExecutionContext } from \"../asyncLocalStorage\";\nimport * as fs from \"fs-extra\";\nimport { remove } from \"fs-extra\";\nimport { ok, err, Result } from \"neverthrow\";\nimport type { Page, BrowserContext } from \"playwright\";\nimport { AUTH_SESSIONS_FOLDER_NAME } from \"../constants\";\nimport {\n browserScriptsFile,\n loadSessionToContext,\n withPlaywrightContext,\n WithPlaywrightContextWrappedFunction,\n} from \"../playwrightContext\";\nimport { formatZodError } from \"../formatZodError\";\nimport { cleanEnvironmentVariables } from \"../cleanEnvironmentVariables\";\nimport { importUsingImportFunction } from \"./importUsingImportFunction\";\nimport {\n ExtendedRunApiParameters,\n runApiParametersSchema,\n RunApiResult,\n RunApiResultOk,\n RunApiResultWithSessionOk,\n AbortedError,\n AuthRequiredError,\n AutomationError,\n InternalInvalidInputError,\n ResultTooBigError,\n RunAutomationError,\n} from \"@intuned/runtime-interface\";\nimport { getStorageState } from \"../contextStorageStateHelpers\";\n\n// Helper function to calculate the approximate size of an object in bytes\nfunction getObjectSizeInBytes(obj: any): number {\n try {\n return new TextEncoder().encode(JSON.stringify(obj)).length;\n } catch (error) {\n // If JSON.stringify fails (e.g., circular references), return a conservative estimate\n return new TextEncoder().encode(String(obj)).length;\n }\n}\n\nexport async function runApi<ResultType = any>(\n input: ExtendedRunApiParameters & {\n retrieveSession: true;\n }\n): Promise<RunApiResult<ResultType, RunApiResultWithSessionOk<ResultType>>>;\nexport async function runApi<ResultType = any>(\n input: ExtendedRunApiParameters\n): Promise<RunApiResult<ResultType>>;\nexport async function runApi<ResultType = any>({\n abortSignal,\n importFunction,\n retrieveSession = false,\n ...input\n}: ExtendedRunApiParameters): Promise<\n | RunApiResult<ResultType>\n | RunApiResult<ResultType, RunApiResultWithSessionOk<ResultType>>\n> {\n let traceStarted = false;\n const inputParseResult = runApiParametersSchema.safeParse(input);\n if (!inputParseResult.success) {\n return err(\n new InternalInvalidInputError(\n \"Input validation failed\",\n formatZodError(inputParseResult.error)\n )\n );\n }\n const {\n automationFunction: { name, params },\n runOptions,\n tracing,\n auth,\n } = inputParseResult.data;\n\n const abortSymbol = Symbol(\"abort\");\n\n const abortPromise = new Promise<typeof abortSymbol>((resolve) => {\n if (!abortSignal) return;\n abortSignal.addEventListener(\"abort\", () => {\n resolve(abortSymbol);\n });\n });\n\n async function runAutomation() {\n const validatedModuleResult = await importUsingImportFunction<ResultType>({\n path: name,\n importFunction,\n });\n if (validatedModuleResult.isErr()) {\n return err(validatedModuleResult.error);\n }\n\n const automationFunction = validatedModuleResult.value;\n\n if (auth && auth.session.type === \"state\") {\n const state = auth.session.state;\n if (state === undefined || state === null) {\n return err(new AuthRequiredError());\n }\n }\n\n const playwrightContextParameters = {\n apiName: name,\n apiParameters: params,\n importFunction,\n };\n\n const intunedContext = getExecutionContext();\n\n const runAutomationWithContext: WithPlaywrightContextWrappedFunction<\n RunApiResultOk<ResultType> | RunApiResultWithSessionOk<ResultType>\n > = async (context, page) => {\n async function saveTraceIfNeeded({\n errorMessage,\n }: {\n errorMessage: string;\n }) {\n if (!tracing.enabled || !traceStarted) {\n return;\n }\n try {\n await context?.tracing.stop({ path: tracing.filePath });\n } catch (error: any) {\n console.log(errorMessage, error?.message);\n await remove(tracing.filePath);\n }\n }\n\n if (auth) {\n await loadSessionToContext({\n context,\n session: auth.session,\n });\n if (intunedContext && auth.parameters) {\n intunedContext.getAuthSessionParameters = async () =>\n auth.parameters!;\n }\n }\n\n const scriptContent = await fs.readFile(browserScriptsFile, \"utf-8\");\n await context.addInitScript({\n content: scriptContent,\n });\n\n for (const page of context.pages()) {\n await page.evaluate(scriptContent);\n }\n\n if (tracing.enabled) {\n await context.tracing.start({\n screenshots: true,\n snapshots: true,\n sources: true,\n });\n traceStarted = true;\n }\n\n cleanEnvironmentVariables();\n\n const automationFunctionParameters = [\n ...(params !== undefined ? [params] : []),\n page,\n context,\n ];\n\n try {\n const [automationFunctionResult] = await Promise.all([\n automationFunction(...automationFunctionParameters),\n ]);\n const MAX_RESULT_SIZE_BYTES = 2 * 1024 * 1024; // 2MB\n const resultSizeInBytes = getObjectSizeInBytes(\n automationFunctionResult\n );\n if (resultSizeInBytes > MAX_RESULT_SIZE_BYTES) {\n return err(\n new ResultTooBigError(resultSizeInBytes, MAX_RESULT_SIZE_BYTES)\n );\n }\n\n if (retrieveSession) {\n return ok({\n result: automationFunctionResult as ResultType,\n extendedPayloads: intunedContext?.extendedPayloads,\n session: await getStorageState(context),\n });\n }\n return ok({\n result: automationFunctionResult as ResultType,\n extendedPayloads: intunedContext?.extendedPayloads,\n });\n } catch (error) {\n return err(new AutomationError(error));\n } finally {\n await saveTraceIfNeeded({ errorMessage: \"failed to save trace\" });\n }\n };\n\n if (intunedContext?.store) {\n intunedContext.store = {};\n }\n\n if (runOptions.environment === \"standalone\") {\n const downloadsPath = getDownloadDirectoryPath();\n try {\n return await withPlaywrightContext(\n {\n headless: runOptions.headless,\n proxy: runOptions.proxy,\n downloadsPath,\n ...playwrightContextParameters,\n },\n runAutomationWithContext\n );\n } finally {\n await fs.remove(downloadsPath);\n }\n } else {\n return await withPlaywrightContext(\n {\n cdpAddress: runOptions.cdpAddress,\n cdpTargetId: runOptions.cdpTargetId,\n ...playwrightContextParameters,\n },\n runAutomationWithContext\n );\n }\n }\n\n const result = await Promise.race([await runAutomation(), abortPromise]);\n\n if (result === abortSymbol) {\n return err(new AbortedError());\n }\n\n return result;\n}\n\nexport async function checkAuthSessionWithRetries(\n page: Page,\n context: BrowserContext,\n checkFn: (..._: any) => Promise<boolean>,\n retries = 3\n): Promise<Result<boolean, RunAutomationError>> {\n if (retries === 0) {\n return ok(false);\n }\n\n let tryNumber = 0;\n\n console.log(\n \"Checking AuthSession with retries\",\n `${AUTH_SESSIONS_FOLDER_NAME}/check`\n );\n\n while (retries > tryNumber) {\n const result = await checkFn(page, context);\n if (result) return ok(true);\n\n tryNumber++;\n }\n\n return ok(false);\n}\n","import type * as playwright from \"playwright\";\nimport { setStorageState } from \"./contextStorageStateHelpers\";\nimport path from \"path\";\nimport * as fs from \"fs-extra\";\nimport { getFullPathInProject } from \"../commands/common/utils/fileUtils\";\nimport { err, Err, ok, Ok } from \"neverthrow\";\nimport { SetupContextHook, loadSetupContextHook } from \"./setupContextHook\";\nimport { getPort } from \"portfinder\";\nimport {\n getLocalCdpAddress,\n launchBrowser,\n type Proxy,\n getCdpWebSocketUrl,\n} from \"./launchBrowser\";\nimport {\n RunApiStorageState,\n ImportFunction,\n AutomationError,\n RunAutomationError,\n RunApiSession,\n} from \"@intuned/runtime-interface\";\n\nexport const browserScriptsFile = path.join(\n __dirname,\n \"./assets/browser_scripts.js\"\n);\n\ntype WithPlaywrightContextParameters =\n | {\n importFunction: ImportFunction;\n apiName: string;\n apiParameters: any;\n }\n | {\n importFunction?: undefined;\n apiName?: undefined;\n apiParameters?: undefined;\n };\n\ntype WithPlaywrightContextWrappedFunctionReturn<R> =\n | Ok<R, any>\n | Err<any, RunAutomationError>;\n\nexport type WithPlaywrightContextWrappedFunction<R> = (\n context: playwright.BrowserContext,\n page: playwright.Page\n) => Promise<WithPlaywrightContextWrappedFunctionReturn<R>>;\n\nexport async function withPlaywrightContext<R>(\n options: {\n proxy?: Proxy;\n headless: boolean;\n downloadsPath: string;\n } & WithPlaywrightContextParameters,\n fn: WithPlaywrightContextWrappedFunction<R>\n): Promise<Ok<R, any> | Err<any, RunAutomationError>>;\n\nexport async function withPlaywrightContext<R>(\n options: {\n cdpAddress: string;\n cdpTargetId?: string;\n } & WithPlaywrightContextParameters,\n fn: WithPlaywrightContextWrappedFunction<R>\n): Promise<Ok<R, any> | Err<any, RunAutomationError>>;\n\nexport async function withPlaywrightContext<R>(\n {\n cdpAddress,\n cdpTargetId,\n proxy,\n headless = true,\n downloadsPath,\n importFunction,\n apiName,\n apiParameters,\n }: {\n cdpAddress?: string;\n cdpTargetId?: string;\n proxy?: Proxy;\n headless?: boolean;\n downloadsPath?: string;\n } & WithPlaywrightContextParameters,\n fn: WithPlaywrightContextWrappedFunction<R>\n): Promise<Ok<R, any> | Err<any, RunAutomationError>> {\n let context: playwright.BrowserContext | undefined;\n let page: playwright.Page;\n\n try {\n const setupContextHookResult = importFunction\n ? await loadSetupContextHook({\n importFunction,\n })\n : ok(null);\n if (setupContextHookResult.isErr()) {\n return setupContextHookResult;\n }\n const setupContextHook = setupContextHookResult.value;\n\n if (setupContextHook === null) {\n if (cdpAddress !== undefined) {\n ({ page, context } = await launchBrowser({ cdpAddress, cdpTargetId }));\n } else {\n ({ page, context } = await launchBrowser({\n proxy,\n headless,\n downloadsPath,\n }));\n }\n return await fn(context, page);\n }\n\n let hookCdpUrl: string | null = null;\n if (cdpAddress) {\n hookCdpUrl = cdpAddress;\n ({ context, page } = await launchBrowser({ cdpAddress, cdpTargetId }));\n } else {\n const port = await getPort({\n port: 9222,\n });\n ({ context, page } = await launchBrowser({\n proxy,\n headless,\n downloadsPath,\n cdpPort: port,\n }));\n\n hookCdpUrl = getLocalCdpAddress(port);\n }\n\n let hookResult: Awaited<ReturnType<SetupContextHook>>;\n try {\n const wsUrlResult = await getCdpWebSocketUrl(hookCdpUrl);\n if (wsUrlResult.isOk()) {\n hookCdpUrl = wsUrlResult.value;\n } else {\n throw new Error(wsUrlResult.error);\n }\n hookResult = await setupContextHook({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n apiName: apiName!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n apiParameters: apiParameters!,\n cdpUrl: hookCdpUrl,\n });\n } catch (error) {\n return err(new AutomationError(error));\n }\n if (!hookResult) {\n return await fn(context, page);\n }\n const { page: newPage, context: newContext, cleanup } = hookResult;\n\n let result:\n | {\n return: WithPlaywrightContextWrappedFunctionReturn<R>;\n }\n | {\n throw: Error;\n };\n\n try {\n result = { return: await fn(newContext, newPage ?? page) };\n } catch (e) {\n result = { throw: e };\n }\n try {\n await cleanup?.();\n } catch (e) {\n result = { return: err(new AutomationError(e)) };\n }\n\n if (\"throw\" in result) {\n throw result.throw;\n }\n return result.return;\n } finally {\n await context?.close();\n }\n}\n\nexport async function loadSessionToContext({\n context,\n session,\n}: {\n context: playwright.BrowserContext;\n session: RunApiSession;\n}) {\n let sessionToLoad: RunApiStorageState;\n if (session.type === \"state\") {\n const state = session.state;\n if (state === undefined || state === null) {\n return;\n }\n sessionToLoad = state;\n } else {\n const fullPath = getFullPathInProject(session.path);\n sessionToLoad = await fs.readJson(fullPath);\n }\n\n await setStorageState(context, sessionToLoad);\n}\n","import type * as playwright from \"playwright\";\nimport { ok, type Err, type Ok } from \"neverthrow\";\nimport { importUsingImportFunction } from \"./runApi/importUsingImportFunction\";\nimport {\n ImportFunction,\n ApiNotFoundError,\n type RunAutomationError,\n} from \"@intuned/runtime-interface\";\n\nexport type InitializeContextHookOptions = {\n apiName: string;\n apiParameters: any;\n cdpUrl: string;\n};\n\nexport type SetupContextHook = (\n options: InitializeContextHookOptions\n) => Promise<{\n page: playwright.Page | null;\n context: playwright.BrowserContext;\n cleanup?: () => Promise<void>;\n} | null>;\n\nconst setupContextHookPath = \"hooks/setupContext\";\n\nexport async function loadSetupContextHook({\n importFunction,\n}: {\n importFunction: ImportFunction;\n}): Promise<Ok<SetupContextHook | null, any> | Err<any, RunAutomationError>> {\n const importedFunctionResult = await importUsingImportFunction({\n path: setupContextHookPath,\n importFunction,\n });\n if (\n importedFunctionResult.isErr() &&\n importedFunctionResult.error instanceof ApiNotFoundError\n ) {\n return ok(null);\n }\n return importedFunctionResult;\n}\n","import { ok, err, Result } from \"neverthrow\";\nimport {\n ImportFunction,\n ApiNotFoundError,\n AutomationError,\n InvalidApiError,\n RunAutomationError,\n} from \"@intuned/runtime-interface\";\n\nexport async function importUsingImportFunction<_ReturnType = any>({\n path,\n allowGenerators = true,\n importFunction,\n}: {\n path: string;\n importFunction: ImportFunction;\n allowGenerators?: boolean;\n}): Promise<Result<(..._: any) => Promise<_ReturnType>, RunAutomationError>> {\n try {\n const importedResult = await importFunction(path);\n if (importedResult.isErr()) {\n if (importedResult.error.type === \"not_found\") {\n return err(new ApiNotFoundError(path));\n }\n return err(new AutomationError(importedResult.error.error));\n }\n const imported = importedResult.value;\n if (!imported || !imported.default || !imported.default.constructor) {\n return err(new InvalidApiError(`${path} does not have a default export`));\n }\n if (imported.default.constructor.name === \"AsyncGeneratorFunction\") {\n if (!allowGenerators) {\n return err(\n new InvalidApiError(\n `${path} default export must be an async function`\n )\n );\n }\n return ok(async (...args) => {\n const generator = imported.default(\n ...args\n ) as AsyncGenerator<_ReturnType>;\n const result = await generator.next();\n if (!result.done) {\n throw new Error(\"Yield is not supported\");\n }\n return result.value;\n });\n }\n if (imported.default.constructor.name === \"AsyncFunction\") {\n return ok(imported.default);\n }\n return err(\n new InvalidApiError(`${path} default export must be an async function`)\n );\n } catch (error: any) {\n return err(new AutomationError(error));\n }\n}\n","import * as playwright from \"playwright\";\nimport { mkdir, mkdtemp, rm, writeFile } from \"fs-extra\";\nimport { join } from \"path\";\nimport * as fs from \"fs-extra\";\nimport waitOn from \"wait-on\";\nimport { exec } from \"child_process\";\nimport {\n buildExtensionsList,\n getIntunedExtensionWorker,\n isIntunedExtensionEnabled,\n isIntunedExtensionLoaded,\n setupIntunedExtension,\n} from \"./extension/extensionsHelpers\";\nimport {\n cleanIntunedExtensionServer,\n setupIntunedExtensionServer,\n} from \"./extension/intunedExtensionServer\";\nimport { promisify } from \"util\";\nimport { Result, err, ok } from \"neverthrow\";\nimport { z } from \"zod\";\n\nconst execAsync = promisify(exec);\n\nexport interface Proxy {\n server: string;\n username: string;\n password: string;\n}\n\nasync function createUserDirWithPreferences() {\n const playwrightTempDir = await mkdtemp(\"/tmp/pw-\");\n const userDir = join(playwrightTempDir, \"userdir\");\n const defaultDir = join(userDir, \"Default\");\n await mkdir(defaultDir, {\n recursive: true,\n });\n const preferences = {\n plugins: {\n always_open_pdf_externally: true,\n },\n };\n await writeFile(join(defaultDir, \"Preferences\"), JSON.stringify(preferences));\n\n return userDir;\n}\n\nexport type LaunchBrowserResult = {\n page: playwright.Page;\n context: playwright.BrowserContext;\n};\n\nexport type LaunchChromiumStandaloneOptions = {\n proxy?: Proxy;\n headless: boolean;\n downloadsPath?: string;\n cdpPort?: number;\n appModeInitialUrl?: string;\n executablePath?: string;\n};\n\nexport type LaunchChromiumCdpOptions = {\n cdpAddress: string;\n cdpTargetId?: string;\n};\n\nexport async function launchChromium(\n options: LaunchChromiumStandaloneOptions\n): Promise<LaunchBrowserResult>;\n\nexport async function launchChromium(\n options: LaunchChromiumCdpOptions\n): Promise<LaunchBrowserResult>;\n\nexport async function launchChromium(\n options: LaunchChromiumStandaloneOptions | LaunchChromiumCdpOptions\n): Promise<LaunchBrowserResult> {\n if (\"cdpAddress\" in options) {\n if (await isIntunedExtensionEnabled()) {\n await setupIntunedExtensionServer();\n }\n\n const browser = await playwright.chromium.connectOverCDP(\n options.cdpAddress\n );\n if (browser.contexts().length === 0) {\n throw new Error(\"No browser contexts found in the connected browser\");\n }\n const context = browser.contexts()[0];\n let page = context.pages().at(0) ?? (await context.newPage());\n const targetId = options.cdpTargetId;\n if (targetId) {\n for (const p of context.pages()) {\n let cdp: playwright.CDPSession | null = null;\n try {\n cdp = await context.newCDPSession(p);\n const result = await cdp.send(\"Target.getTargetInfo\");\n if (result.targetInfo.targetId === targetId) {\n page = p;\n break;\n }\n } catch (error) {\n } finally {\n await cdp?.detach();\n }\n }\n }\n\n return { page, context };\n }\n const { headless, appModeInitialUrl, cdpPort, proxy, downloadsPath } =\n options;\n\n let { executablePath } = options;\n\n const defaultArgsToIgnore: string[] = [\n \"--disable-extensions\",\n \"--disable-component-extensions-with-background-pages\",\n \"--disable-background-networking\",\n \"--disable-backgrounding-occluded-windows\",\n \"--disable-background-timer-throttling\",\n ];\n const extraArgs: string[] = [];\n\n const userDataDir = await createUserDirWithPreferences();\n\n if (isIntunedExtensionLoaded()) {\n const extensionsList = buildExtensionsList();\n const extensions = extensionsList.join(\",\");\n extraArgs.push(`--disable-extensions-except=${extensions}`);\n extraArgs.push(`--load-extension=${extensions}`);\n }\n\n if (await isIntunedExtensionEnabled()) {\n await setupIntunedExtension();\n if (proxy) {\n extraArgs.push('--proxy-bypass-list=\"<-loopback>\"'); // This is added to bypass proxy for localhost traffic because some proxy providers block localhost traffic, and localhost traffic doesn't need proxying\n }\n }\n\n if (cdpPort) {\n extraArgs.push(`--remote-debugging-port=${cdpPort}`);\n }\n if (headless) {\n defaultArgsToIgnore.push(\"--headless=old\");\n extraArgs.push(\"--headless=new\");\n }\n\n if (appModeInitialUrl) {\n extraArgs.push(`--app=${appModeInitialUrl}`);\n }\n\n if (executablePath) {\n executablePath = await fs.realpath(executablePath);\n if (!(await fs.exists(executablePath))) {\n console.log(\n `Warning: Executable path ${executablePath} does not exist. Falling back to default.`\n );\n executablePath = undefined;\n }\n }\n\n const viewport = null;\n const userAgent =\n process.env.__PLAYWRIGHT_USER_AGENT_OVERRIDE ??\n (await getHeadlessUserAgent({\n executablePath,\n }));\n\n const context = await playwright.chromium.launchPersistentContext(\n userDataDir,\n {\n userAgent,\n executablePath,\n headless,\n viewport,\n proxy,\n downloadsPath,\n args: extraArgs,\n ignoreDefaultArgs: defaultArgsToIgnore,\n }\n );\n\n context.once(\"close\", async () => {\n try {\n await rm(userDataDir, {\n recursive: true,\n force: true,\n retryDelay: 1000,\n maxRetries: 5,\n });\n if (await isIntunedExtensionEnabled()) {\n await cleanIntunedExtensionServer();\n }\n } catch (error) {\n console.error(\"Failed to remove user data dir\", error);\n }\n });\n\n if (cdpPort) {\n const createdCdpAddress = getLocalCdpAddress(cdpPort);\n await waitOnCdpAddress(createdCdpAddress);\n }\n\n const page = context.pages().at(0) ?? (await context.newPage());\n\n if (await isIntunedExtensionEnabled()) {\n await getIntunedExtensionWorker(context);\n }\n\n return {\n page,\n context,\n };\n}\n\nexport async function getBrowserExecutablePath(): Promise<string | undefined> {\n const browserType = getBrowserType();\n if (browserType === \"brave\") {\n return await getBraveExecutablePath();\n }\n}\n\nexport async function launchBrowser(\n options:\n | Omit<LaunchChromiumStandaloneOptions, \"executablePath\">\n | LaunchChromiumCdpOptions\n): Promise<LaunchBrowserResult> {\n if (\"cdpAddress\" in options) {\n return launchChromium(options);\n }\n\n return launchChromium({\n ...options,\n executablePath: await getBrowserExecutablePath(),\n });\n}\n\nfunction getBrowserType() {\n if (process.env.BROWSER_TYPE === \"brave\") {\n return \"brave\";\n }\n return \"chromium\";\n}\n\nasync function getBraveExecutablePath() {\n const { stdout } = await execAsync(\"which brave-browser-stable\");\n const bravePath = stdout.trim();\n if (bravePath.length === 0) {\n throw new Error(\"Brave browser not found\");\n }\n return bravePath;\n}\n\nexport function getLocalCdpAddress(port: number): string {\n return `http://localhost:${port}`;\n}\n\nexport async function getCdpWebSocketUrl(\n cdpAddress: string\n): Promise<Result<string, string>> {\n let response: Response;\n try {\n response = await fetch(`${cdpAddress}/json/version`);\n } catch (error) {\n return err(\n `Failed to fetch CDP version from ${cdpAddress}: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n if (!response.ok) {\n return err(\n `Failed to get CDP WebSocket URL from ${cdpAddress}: ${response.status} ${response.statusText}`\n );\n }\n let data: any;\n try {\n data = await response.json();\n } catch (error) {\n return err(\n `Invalid CDP version response from ${cdpAddress}: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n const cdpJsonVersionResponseSchema = z.object({\n webSocketDebuggerUrl: z.string().url(),\n });\n const parseResult = cdpJsonVersionResponseSchema.safeParse(data);\n if (!parseResult.success) {\n return err(\n `Invalid CDP version response from ${cdpAddress}: ${JSON.stringify(\n parseResult.error.format()\n )}`\n );\n }\n return ok(parseResult.data.webSocketDebuggerUrl);\n}\n\nasync function waitOnCdpAddress(cdpAddress: string) {\n const cdpAddressWithoutProtocol = cdpAddress\n .replace(\"http://\", \"\")\n .replace(\"https://\", \"\")\n .replace(\"localhost\", \"127.0.0.1\");\n\n await waitOn({\n resources: [`http-get://${cdpAddressWithoutProtocol}/json/version`],\n delay: 100,\n interval: 100,\n timeout: 5000,\n tcpTimeout: 1000,\n window: 1000,\n });\n}\n\nexport async function getHeadlessUserAgent({\n executablePath,\n args,\n ignoreDefaultArgs,\n}: {\n executablePath?: string;\n args?: string[];\n ignoreDefaultArgs?: string[];\n}) {\n const browser = await playwright.chromium.launch({\n headless: true,\n executablePath,\n args,\n ignoreDefaultArgs,\n });\n const context = await browser.newContext();\n const page = await context.newPage();\n let userAgent = await page.evaluate(() => navigator.userAgent);\n await browser.close();\n if (!userAgent || typeof userAgent !== \"string\") {\n return undefined;\n }\n userAgent = userAgent.replace(\"HeadlessChrome\", \"Chrome\");\n return userAgent;\n}\n"],"mappings":"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","names":["RunAutomationError","ApiNotFoundError","InvalidApiError","AbortedError","AuthRequiredError","AutomationError","InternalInvalidInputError","ResultTooBigError","fs","data","path","fs","remove","ok","err","fs","err","ok","ok","path","import_runtime_interface","ok","err","ok","context","page","import_runtime_interface","ok","err","import_runtime_interface","err","remove","page","ok"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// src/common/settingsSchema.ts
|
|
2
|
+
import * as z from "zod";
|
|
3
|
+
var baseCaptchaSchema = z.object({
|
|
4
|
+
enabled: z.boolean()
|
|
5
|
+
});
|
|
6
|
+
var customCaptchaSchema = baseCaptchaSchema.extend({
|
|
7
|
+
imageLocators: z.array(z.string()).min(1, "At least one image locator is required"),
|
|
8
|
+
submitLocators: z.array(z.string()).min(1, "At least one submit locator is required"),
|
|
9
|
+
inputLocators: z.array(z.string()).min(1, "At least one input locator is required")
|
|
10
|
+
});
|
|
11
|
+
var textCaptchaSchema = baseCaptchaSchema.extend({
|
|
12
|
+
labelLocators: z.array(z.string()).min(1, "At least one image locator is required"),
|
|
13
|
+
submitLocators: z.array(z.string()).min(1, "At least one submit locator is required"),
|
|
14
|
+
inputLocators: z.array(z.string()).min(1, "At least one input locator is required")
|
|
15
|
+
});
|
|
16
|
+
var captchaSolverSolveSettingsSchema = z.object({
|
|
17
|
+
autoSolve: z.boolean().default(true),
|
|
18
|
+
solveDelay: z.number().min(0).default(2e3),
|
|
19
|
+
maxRetries: z.number().min(0).default(3),
|
|
20
|
+
timeout: z.number().min(0).default(3e4)
|
|
21
|
+
});
|
|
22
|
+
var captchaSolverSettingsSchema = z.object({
|
|
23
|
+
enabled: z.boolean().default(false),
|
|
24
|
+
port: z.number().int().min(1).max(65535).optional(),
|
|
25
|
+
cloudflare: baseCaptchaSchema.optional(),
|
|
26
|
+
googleRecaptchaV2: baseCaptchaSchema.optional(),
|
|
27
|
+
googleRecaptchaV3: baseCaptchaSchema.optional(),
|
|
28
|
+
awscaptcha: baseCaptchaSchema.optional(),
|
|
29
|
+
hcaptcha: baseCaptchaSchema.optional(),
|
|
30
|
+
funcaptcha: baseCaptchaSchema.optional(),
|
|
31
|
+
geetest: baseCaptchaSchema.optional(),
|
|
32
|
+
lemin: baseCaptchaSchema.optional(),
|
|
33
|
+
customCaptcha: customCaptchaSchema.optional(),
|
|
34
|
+
text: textCaptchaSchema.optional(),
|
|
35
|
+
settings: captchaSolverSolveSettingsSchema.default(
|
|
36
|
+
captchaSolverSolveSettingsSchema.parse({})
|
|
37
|
+
)
|
|
38
|
+
}).default({});
|
|
39
|
+
var authSessionsSchema = z.object({
|
|
40
|
+
enabled: z.boolean()
|
|
41
|
+
}).optional().default({
|
|
42
|
+
enabled: false
|
|
43
|
+
});
|
|
44
|
+
var stealthModeSchema = z.object({
|
|
45
|
+
enabled: z.boolean()
|
|
46
|
+
}).optional().default({
|
|
47
|
+
enabled: false
|
|
48
|
+
});
|
|
49
|
+
var settingsSchema = z.object({
|
|
50
|
+
authSessions: authSessionsSchema,
|
|
51
|
+
stealthMode: stealthModeSchema,
|
|
52
|
+
captchaSolver: captchaSolverSettingsSchema.optional()
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
export {
|
|
56
|
+
captchaSolverSettingsSchema,
|
|
57
|
+
settingsSchema
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-XOAZ2MGA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/settingsSchema.ts"],"sourcesContent":["import * as z from \"zod\";\n\nconst baseCaptchaSchema = z.object({\n enabled: z.boolean(),\n});\n\nconst customCaptchaSchema = baseCaptchaSchema.extend({\n imageLocators: z\n .array(z.string())\n .min(1, \"At least one image locator is required\"),\n submitLocators: z\n .array(z.string())\n .min(1, \"At least one submit locator is required\"),\n inputLocators: z\n .array(z.string())\n .min(1, \"At least one input locator is required\"),\n});\n\nconst textCaptchaSchema = baseCaptchaSchema.extend({\n labelLocators: z\n .array(z.string())\n .min(1, \"At least one image locator is required\"),\n submitLocators: z\n .array(z.string())\n .min(1, \"At least one submit locator is required\"),\n inputLocators: z\n .array(z.string())\n .min(1, \"At least one input locator is required\"),\n});\n\nconst captchaSolverSolveSettingsSchema = z.object({\n autoSolve: z.boolean().default(true),\n solveDelay: z.number().min(0).default(2000),\n maxRetries: z.number().min(0).default(3),\n timeout: z.number().min(0).default(30000),\n});\n\nexport const captchaSolverSettingsSchema = z\n .object({\n enabled: z.boolean().default(false),\n port: z.number().int().min(1).max(65535).optional(),\n cloudflare: baseCaptchaSchema.optional(),\n googleRecaptchaV2: baseCaptchaSchema.optional(),\n googleRecaptchaV3: baseCaptchaSchema.optional(),\n awscaptcha: baseCaptchaSchema.optional(),\n hcaptcha: baseCaptchaSchema.optional(),\n funcaptcha: baseCaptchaSchema.optional(),\n geetest: baseCaptchaSchema.optional(),\n lemin: baseCaptchaSchema.optional(),\n customCaptcha: customCaptchaSchema.optional(),\n text: textCaptchaSchema.optional(),\n settings: captchaSolverSolveSettingsSchema.default(\n captchaSolverSolveSettingsSchema.parse({})\n ),\n })\n .default({});\n\nexport type CaptchaSolverSettings = z.infer<typeof captchaSolverSettingsSchema>;\n\nexport type CaptchaSolverSettingsWithRunContext = CaptchaSolverSettings & {\n workspaceId: string;\n projectId: string;\n baseUrl: string;\n authentication:\n | { type: \"apiKey\"; apiKey: string }\n | { type: \"basic\" | \"bearer\"; token?: string };\n};\n\nconst authSessionsSchema = z\n .object({\n enabled: z.boolean(),\n })\n .optional()\n .default({\n enabled: false,\n });\n\nconst stealthModeSchema = z\n .object({\n enabled: z.boolean(),\n })\n .optional()\n .default({\n enabled: false,\n });\n\nexport const settingsSchema = z.object({\n authSessions: authSessionsSchema,\n stealthMode: stealthModeSchema,\n captchaSolver: captchaSolverSettingsSchema.optional(),\n});\n\nexport type IntunedSettings = z.infer<typeof settingsSchema>;\n"],"mappings":";AAAA,YAAY,OAAO;AAEnB,IAAM,oBAAsB,SAAO;AAAA,EACjC,SAAW,UAAQ;AACrB,CAAC;AAED,IAAM,sBAAsB,kBAAkB,OAAO;AAAA,EACnD,eACG,QAAQ,SAAO,CAAC,EAChB,IAAI,GAAG,wCAAwC;AAAA,EAClD,gBACG,QAAQ,SAAO,CAAC,EAChB,IAAI,GAAG,yCAAyC;AAAA,EACnD,eACG,QAAQ,SAAO,CAAC,EAChB,IAAI,GAAG,wCAAwC;AACpD,CAAC;AAED,IAAM,oBAAoB,kBAAkB,OAAO;AAAA,EACjD,eACG,QAAQ,SAAO,CAAC,EAChB,IAAI,GAAG,wCAAwC;AAAA,EAClD,gBACG,QAAQ,SAAO,CAAC,EAChB,IAAI,GAAG,yCAAyC;AAAA,EACnD,eACG,QAAQ,SAAO,CAAC,EAChB,IAAI,GAAG,wCAAwC;AACpD,CAAC;AAED,IAAM,mCAAqC,SAAO;AAAA,EAChD,WAAa,UAAQ,EAAE,QAAQ,IAAI;AAAA,EACnC,YAAc,SAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAI;AAAA,EAC1C,YAAc,SAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;AAAA,EACvC,SAAW,SAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAK;AAC1C,CAAC;AAEM,IAAM,8BACV,SAAO;AAAA,EACN,SAAW,UAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,MAAQ,SAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE,SAAS;AAAA,EAClD,YAAY,kBAAkB,SAAS;AAAA,EACvC,mBAAmB,kBAAkB,SAAS;AAAA,EAC9C,mBAAmB,kBAAkB,SAAS;AAAA,EAC9C,YAAY,kBAAkB,SAAS;AAAA,EACvC,UAAU,kBAAkB,SAAS;AAAA,EACrC,YAAY,kBAAkB,SAAS;AAAA,EACvC,SAAS,kBAAkB,SAAS;AAAA,EACpC,OAAO,kBAAkB,SAAS;AAAA,EAClC,eAAe,oBAAoB,SAAS;AAAA,EAC5C,MAAM,kBAAkB,SAAS;AAAA,EACjC,UAAU,iCAAiC;AAAA,IACzC,iCAAiC,MAAM,CAAC,CAAC;AAAA,EAC3C;AACF,CAAC,EACA,QAAQ,CAAC,CAAC;AAab,IAAM,qBACH,SAAO;AAAA,EACN,SAAW,UAAQ;AACrB,CAAC,EACA,SAAS,EACT,QAAQ;AAAA,EACP,SAAS;AACX,CAAC;AAEH,IAAM,oBACH,SAAO;AAAA,EACN,SAAW,UAAQ;AACrB,CAAC,EACA,SAAS,EACT,QAAQ;AAAA,EACP,SAAS;AACX,CAAC;AAEI,IAAM,iBAAmB,SAAO;AAAA,EACrC,cAAc;AAAA,EACd,aAAa;AAAA,EACb,eAAe,4BAA4B,SAAS;AACtD,CAAC;","names":[]}
|