@intuned/runtime-dev 1.3.28-dev1 → 1.3.32

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 (220) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/commands/common/utils/settings.d.ts +5 -0
  3. package/dist/commands/common/utils/settings.js +5 -17
  4. package/dist/common/asyncLocalStorage/index.d.ts +11 -0
  5. package/dist/common/asyncLocalStorage/index.js +4 -0
  6. package/dist/common/extension/intunedExtensionServer.js +3 -0
  7. package/dist/common/extension/types.d.ts +49 -25
  8. package/dist/common/extension/types.js +3 -2
  9. package/dist/common/launchBrowser.d.ts +11 -4
  10. package/dist/common/launchBrowser.js +27 -55
  11. package/dist/common/playwrightContext.d.ts +7 -3
  12. package/dist/common/playwrightContext.js +11 -7
  13. package/dist/common/runApi/index.js +24 -6
  14. package/dist/common/settingsSchema.d.ts +431 -25
  15. package/dist/common/settingsSchema.js +18 -2
  16. package/dist/runtime/captcha.js +15 -13
  17. package/dist/vendor/runtime-interface.js +14 -6
  18. package/{dist → package/dist}/commands/api/run.js +11 -7
  19. package/{dist → package/dist}/commands/auth-sessions/load.js +2 -2
  20. package/{dist → package/dist}/commands/auth-sessions/run-check.js +8 -8
  21. package/{dist → package/dist}/commands/auth-sessions/run-create.js +6 -6
  22. package/package/dist/commands/browser/save-state.d.ts +2 -0
  23. package/package/dist/commands/browser/save-state.js +17 -0
  24. package/package/dist/commands/browser/start-browser.d.ts +2 -0
  25. package/package/dist/commands/browser/start-browser.js +14 -0
  26. package/package/dist/commands/build.d.ts +1 -0
  27. package/package/dist/commands/build.js +84 -0
  28. package/package/dist/commands/common/browserUtils.d.ts +14 -0
  29. package/package/dist/commands/common/browserUtils.js +58 -0
  30. package/package/dist/commands/common/getFirstLineNumber.d.ts +9 -0
  31. package/package/dist/commands/common/getFirstLineNumber.js +101 -0
  32. package/package/dist/commands/common/getFirstLineNumber.test.js +228 -0
  33. package/package/dist/commands/common/projectExclusions.d.ts +2 -0
  34. package/package/dist/commands/common/projectExclusions.js +8 -0
  35. package/package/dist/commands/common/sendMessageToClient.d.ts +1 -0
  36. package/package/dist/commands/common/sendMessageToClient.js +10 -0
  37. package/package/dist/commands/common/tsNodeImport.d.ts +2 -0
  38. package/package/dist/commands/common/tsNodeImport.js +34 -0
  39. package/package/dist/commands/common/utils/fileUtils.d.ts +6 -0
  40. package/package/dist/commands/common/utils/fileUtils.js +33 -0
  41. package/package/dist/commands/common/utils/settings.d.ts +2 -0
  42. package/package/dist/commands/common/utils/settings.js +31 -0
  43. package/package/dist/commands/common/utils/template.d.ts +2 -0
  44. package/package/dist/commands/common/utils/template.js +31 -0
  45. package/package/dist/commands/common/utils/unixSocket.d.ts +9 -0
  46. package/package/dist/commands/common/utils/unixSocket.js +44 -0
  47. package/package/dist/commands/interface/run.d.ts +1 -0
  48. package/package/dist/commands/interface/run.js +216 -0
  49. package/package/dist/commands/intuned-cli/commands/attempt.command.d.ts +1 -0
  50. package/package/dist/commands/intuned-cli/commands/attempt.command.js +8 -0
  51. package/package/dist/commands/intuned-cli/commands/attempt_api.command.d.ts +1 -0
  52. package/package/dist/commands/intuned-cli/commands/attempt_api.command.js +30 -0
  53. package/package/dist/commands/intuned-cli/commands/attempt_authsession.command.d.ts +1 -0
  54. package/package/dist/commands/intuned-cli/commands/attempt_authsession.command.js +8 -0
  55. package/package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.d.ts +1 -0
  56. package/package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.js +19 -0
  57. package/package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.d.ts +1 -0
  58. package/package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.js +24 -0
  59. package/package/dist/commands/intuned-cli/commands/authsession.command.d.ts +1 -0
  60. package/package/dist/commands/intuned-cli/commands/authsession.command.js +8 -0
  61. package/package/dist/commands/intuned-cli/commands/authsession_record.command.d.ts +1 -0
  62. package/package/dist/commands/intuned-cli/commands/authsession_record.command.js +31 -0
  63. package/package/dist/commands/intuned-cli/commands/build.command.d.ts +1 -0
  64. package/package/dist/commands/intuned-cli/commands/build.command.js +12 -0
  65. package/package/dist/commands/intuned-cli/commands/command.d.ts +2 -0
  66. package/package/dist/commands/intuned-cli/commands/command.js +9 -0
  67. package/package/dist/commands/intuned-cli/commands/deploy.command.d.ts +1 -0
  68. package/package/dist/commands/intuned-cli/commands/deploy.command.js +38 -0
  69. package/package/dist/commands/intuned-cli/commands/index.d.ts +18 -0
  70. package/package/dist/commands/intuned-cli/commands/index.js +203 -0
  71. package/package/dist/commands/intuned-cli/commands/init.command.d.ts +1 -0
  72. package/package/dist/commands/intuned-cli/commands/init.command.js +13 -0
  73. package/package/dist/commands/intuned-cli/commands/run.command.d.ts +1 -0
  74. package/package/dist/commands/intuned-cli/commands/run.command.js +8 -0
  75. package/package/dist/commands/intuned-cli/commands/run_api.command.d.ts +1 -0
  76. package/package/dist/commands/intuned-cli/commands/run_api.command.js +46 -0
  77. package/package/dist/commands/intuned-cli/commands/run_authsession.command.d.ts +28 -0
  78. package/package/dist/commands/intuned-cli/commands/run_authsession.command.js +17 -0
  79. package/package/dist/commands/intuned-cli/commands/run_authsession_create.command.d.ts +1 -0
  80. package/package/dist/commands/intuned-cli/commands/run_authsession_create.command.js +35 -0
  81. package/package/dist/commands/intuned-cli/commands/run_authsession_update.command.d.ts +1 -0
  82. package/package/dist/commands/intuned-cli/commands/run_authsession_update.command.js +35 -0
  83. package/package/dist/commands/intuned-cli/commands/run_authsession_validate.command.d.ts +1 -0
  84. package/package/dist/commands/intuned-cli/commands/run_authsession_validate.command.js +33 -0
  85. package/package/dist/commands/intuned-cli/commands/save.command.d.ts +13 -0
  86. package/package/dist/commands/intuned-cli/commands/save.command.js +42 -0
  87. package/package/dist/commands/intuned-cli/commands/types.d.ts +31 -0
  88. package/package/dist/commands/intuned-cli/commands/types.js +29 -0
  89. package/package/dist/commands/intuned-cli/constants/index.d.ts +17 -0
  90. package/package/dist/commands/intuned-cli/constants/index.js +25 -0
  91. package/package/dist/commands/intuned-cli/controller/__test__/api.test.js +397 -0
  92. package/package/dist/commands/intuned-cli/controller/__test__/authSession.test.js +1059 -0
  93. package/package/dist/commands/intuned-cli/controller/api.d.ts +42 -0
  94. package/package/dist/commands/intuned-cli/controller/api.js +189 -0
  95. package/package/dist/commands/intuned-cli/controller/authSession.d.ts +209 -0
  96. package/package/dist/commands/intuned-cli/controller/authSession.js +420 -0
  97. package/package/dist/commands/intuned-cli/controller/build.d.ts +1 -0
  98. package/package/dist/commands/intuned-cli/controller/build.js +36 -0
  99. package/package/dist/commands/intuned-cli/controller/deploy.d.ts +4 -0
  100. package/package/dist/commands/intuned-cli/controller/deploy.js +139 -0
  101. package/package/dist/commands/intuned-cli/controller/index.d.ts +1 -0
  102. package/package/dist/commands/intuned-cli/controller/index.js +46 -0
  103. package/package/dist/commands/intuned-cli/controller/save.d.ts +14 -0
  104. package/package/dist/commands/intuned-cli/controller/save.js +345 -0
  105. package/package/dist/commands/intuned-cli/helpers/__test__/browser.test.js +103 -0
  106. package/package/dist/commands/intuned-cli/helpers/__test__/tracing.test.js +40 -0
  107. package/package/dist/commands/intuned-cli/helpers/api.d.ts +3 -0
  108. package/package/dist/commands/intuned-cli/helpers/api.js +19 -0
  109. package/package/dist/commands/intuned-cli/helpers/auth.d.ts +46 -0
  110. package/package/dist/commands/intuned-cli/helpers/auth.js +144 -0
  111. package/package/dist/commands/intuned-cli/helpers/backend.d.ts +8 -0
  112. package/package/dist/commands/intuned-cli/helpers/backend.js +27 -0
  113. package/package/dist/commands/intuned-cli/helpers/browser.d.ts +14 -0
  114. package/package/dist/commands/intuned-cli/helpers/browser.js +57 -0
  115. package/package/dist/commands/intuned-cli/helpers/context.d.ts +3 -0
  116. package/package/dist/commands/intuned-cli/helpers/context.js +33 -0
  117. package/package/dist/commands/intuned-cli/helpers/errors.d.ts +13 -0
  118. package/package/dist/commands/intuned-cli/helpers/errors.js +37 -0
  119. package/package/dist/commands/intuned-cli/helpers/index.d.ts +12 -0
  120. package/package/dist/commands/intuned-cli/helpers/index.js +137 -0
  121. package/package/dist/commands/intuned-cli/helpers/intunedJson.d.ts +69 -0
  122. package/package/dist/commands/intuned-cli/helpers/intunedJson.js +71 -0
  123. package/package/dist/commands/intuned-cli/helpers/proxy.d.ts +5 -0
  124. package/package/dist/commands/intuned-cli/helpers/proxy.js +23 -0
  125. package/package/dist/commands/intuned-cli/helpers/terminal.d.ts +5 -0
  126. package/package/dist/commands/intuned-cli/helpers/terminal.js +13 -0
  127. package/package/dist/commands/intuned-cli/helpers/timeout.d.ts +1 -0
  128. package/package/dist/commands/intuned-cli/helpers/timeout.js +23 -0
  129. package/package/dist/commands/intuned-cli/helpers/traces.d.ts +2 -0
  130. package/package/dist/commands/intuned-cli/helpers/traces.js +32 -0
  131. package/package/dist/commands/intuned-cli/helpers/validation.d.ts +2 -0
  132. package/package/dist/commands/intuned-cli/helpers/validation.js +14 -0
  133. package/package/dist/commands/intuned-cli/helpers/wrapper.d.ts +2 -0
  134. package/package/dist/commands/intuned-cli/helpers/wrapper.js +60 -0
  135. package/package/dist/commands/intuned-cli/index.d.ts +1 -0
  136. package/package/dist/commands/intuned-cli/index.js +16 -0
  137. package/package/dist/commands/intuned-cli/main.d.ts +1 -0
  138. package/package/dist/commands/intuned-cli/main.js +22 -0
  139. package/package/dist/commands/intuned-cli/types.d.ts +41 -0
  140. package/package/dist/commands/intuned-cli/types.js +12 -0
  141. package/package/dist/commands/ts-check.d.ts +2 -0
  142. package/package/dist/commands/ts-check.js +56 -0
  143. package/package/dist/common/Logger/Logger/index.d.ts +12 -0
  144. package/package/dist/common/Logger/Logger/index.js +60 -0
  145. package/package/dist/common/Logger/Logger/types.d.ts +8 -0
  146. package/package/dist/common/Logger/Logger/types.js +5 -0
  147. package/package/dist/common/Logger/index.d.ts +12 -0
  148. package/package/dist/common/Logger/index.js +60 -0
  149. package/package/dist/common/Logger/types.d.ts +8 -0
  150. package/package/dist/common/Logger/types.js +5 -0
  151. package/package/dist/common/assets/browser_scripts.js +2580 -0
  152. package/package/dist/common/asyncLocalStorage/index.d.ts +16 -0
  153. package/package/dist/common/asyncLocalStorage/index.js +17 -0
  154. package/package/dist/common/backendFunctions/getAuthSessionParameters.d.ts +1 -0
  155. package/package/dist/common/backendFunctions/getAuthSessionParameters.js +38 -0
  156. package/package/dist/common/cleanEnvironmentVariables.d.ts +1 -0
  157. package/package/dist/common/cleanEnvironmentVariables.js +16 -0
  158. package/package/dist/common/constants.d.ts +10 -0
  159. package/package/dist/common/constants.js +16 -0
  160. package/package/dist/common/contextStorageStateHelpers.d.ts +21 -0
  161. package/package/dist/common/contextStorageStateHelpers.js +81 -0
  162. package/package/dist/common/extensionsHelpers.d.ts +8 -0
  163. package/package/dist/common/extensionsHelpers.js +80 -0
  164. package/package/dist/common/formatZodError.d.ts +2 -0
  165. package/package/dist/common/formatZodError.js +18 -0
  166. package/package/dist/common/jwtTokenManager.d.ts +17 -0
  167. package/package/dist/common/jwtTokenManager.js +109 -0
  168. package/package/dist/common/launchBrowser.d.ts +25 -0
  169. package/package/dist/common/launchBrowser.js +172 -0
  170. package/package/dist/common/playwrightContext.d.ts +31 -0
  171. package/package/dist/common/playwrightContext.js +144 -0
  172. package/package/dist/common/runApi/errors.d.ts +72 -0
  173. package/package/dist/common/runApi/errors.js +169 -0
  174. package/package/dist/common/runApi/importUsingImportFunction.d.ts +9 -0
  175. package/package/dist/common/runApi/importUsingImportFunction.js +46 -0
  176. package/package/dist/common/runApi/index.d.ts +11 -0
  177. package/package/dist/common/runApi/index.js +199 -0
  178. package/package/dist/common/runApi/types.d.ts +830 -0
  179. package/package/dist/common/runApi/types.js +73 -0
  180. package/package/dist/common/settingsSchema.d.ts +518 -0
  181. package/package/dist/common/settingsSchema.js +57 -0
  182. package/package/dist/common/setupContextHook.d.ts +17 -0
  183. package/package/dist/common/setupContextHook.js +22 -0
  184. package/package/dist/common/telemetry.d.ts +3 -0
  185. package/package/dist/common/telemetry.js +32 -0
  186. package/package/dist/index.d.ts +4 -0
  187. package/package/dist/index.js +69 -0
  188. package/package/dist/runtime/RunError.d.ts +5 -0
  189. package/package/dist/runtime/RunError.js +19 -0
  190. package/package/dist/runtime/attemptStore.d.ts +2 -0
  191. package/package/dist/runtime/attemptStore.js +23 -0
  192. package/package/dist/runtime/downloadDirectory.d.ts +1 -0
  193. package/package/dist/runtime/downloadDirectory.js +19 -0
  194. package/package/dist/runtime/enums.d.js +5 -0
  195. package/package/dist/runtime/enums.d.ts +11 -0
  196. package/package/dist/runtime/enums.js +18 -0
  197. package/package/dist/runtime/executionHelpers.test.js +52 -0
  198. package/package/dist/runtime/export.d.js +5 -0
  199. package/package/dist/runtime/export.d.ts +228 -0
  200. package/package/dist/runtime/extendPayload.d.ts +2 -0
  201. package/package/dist/runtime/extendPayload.js +21 -0
  202. package/package/dist/runtime/extendTimeout.d.ts +1 -0
  203. package/package/dist/runtime/extendTimeout.js +23 -0
  204. package/package/dist/runtime/getAuthSessionParameters.d.ts +1 -0
  205. package/package/dist/runtime/getAuthSessionParameters.js +20 -0
  206. package/package/dist/runtime/index.d.ts +7 -0
  207. package/package/dist/runtime/index.js +54 -0
  208. package/package/dist/runtime/runInfo.d.ts +2 -0
  209. package/package/dist/runtime/runInfo.js +21 -0
  210. package/package.json +2 -10
  211. package/bin/intuned-api-run +0 -4
  212. package/bin/intuned-auth-session-check +0 -4
  213. package/bin/intuned-auth-session-create +0 -4
  214. package/bin/intuned-auth-session-load +0 -4
  215. package/dist/common/intunedJson.d.ts +0 -252
  216. package/dist/common/intunedJson.js +0 -162
  217. /package/{dist → package/dist}/commands/api/run.d.ts +0 -0
  218. /package/{dist → package/dist}/commands/auth-sessions/load.d.ts +0 -0
  219. /package/{dist → package/dist}/commands/auth-sessions/run-check.d.ts +0 -0
  220. /package/{dist → package/dist}/commands/auth-sessions/run-create.d.ts +0 -0
@@ -14,6 +14,7 @@ const customCaptchaSchema = baseCaptchaSchema.extend({
14
14
  submitLocators: z.array(z.string()).min(1, "At least one submit locator is required"),
15
15
  inputLocators: z.array(z.string()).min(1, "At least one input locator is required")
16
16
  });
17
+ const mathCaptchaSchema = customCaptchaSchema;
17
18
  const textCaptchaSchema = baseCaptchaSchema.extend({
18
19
  labelLocators: z.array(z.string()).min(1, "At least one image locator is required"),
19
20
  submitLocators: z.array(z.string()).min(1, "At least one submit locator is required"),
@@ -29,17 +30,32 @@ const captchaSolverSettingsSchema = exports.captchaSolverSettingsSchema = z.obje
29
30
  enabled: z.boolean().default(false),
30
31
  port: z.number().int().min(1).max(65535).optional(),
31
32
  cloudflare: baseCaptchaSchema.optional(),
33
+ googleRecaptcha: baseCaptchaSchema.optional(),
32
34
  googleRecaptchaV2: baseCaptchaSchema.optional(),
33
- googleRecaptchaV3: baseCaptchaSchema.optional(),
34
35
  awscaptcha: baseCaptchaSchema.optional(),
36
+ datadome: baseCaptchaSchema.optional(),
35
37
  hcaptcha: baseCaptchaSchema.optional(),
36
38
  funcaptcha: baseCaptchaSchema.optional(),
37
39
  geetest: baseCaptchaSchema.optional(),
38
40
  lemin: baseCaptchaSchema.optional(),
41
+ tiktok: baseCaptchaSchema.optional(),
42
+ temu: baseCaptchaSchema.optional(),
39
43
  customCaptcha: customCaptchaSchema.optional(),
44
+ mathCaptcha: mathCaptchaSchema.optional(),
40
45
  text: textCaptchaSchema.optional(),
41
46
  settings: captchaSolverSolveSettingsSchema.default(captchaSolverSolveSettingsSchema.parse({}))
42
- }).default({});
47
+ }).default({}).transform(({
48
+ googleRecaptchaV2,
49
+ googleRecaptcha,
50
+ ...rest
51
+ }) => {
52
+ const value = googleRecaptcha ?? googleRecaptchaV2;
53
+ return {
54
+ ...rest,
55
+ googleRecaptcha: value,
56
+ googleRecaptchaV2: value
57
+ };
58
+ });
43
59
  const authSessionsSchema = z.object({
44
60
  enabled: z.boolean()
45
61
  }).optional().default({
@@ -20,7 +20,7 @@ async function withWaitForCaptchaSolve(callback, options) {
20
20
  settleDurationMs = 5_000,
21
21
  waitForNetworkSettled = true
22
22
  } = options;
23
- console.error(`Starting captcha solve wait (timeout=${timeoutInMs}ms, settleDuration=${settleDurationMs}ms, waitForNetworkSettled=${waitForNetworkSettled})`);
23
+ console.info(`Starting captcha solve wait (timeout=${timeoutInMs}ms, settleDuration=${settleDurationMs}ms, waitForNetworkSettled=${waitForNetworkSettled})`);
24
24
  const extensionServer = (0, _intunedExtensionServer.getIntunedExtensionServer)();
25
25
  let settledResolve = null;
26
26
  let settledPromise = new Promise(resolve => {
@@ -40,19 +40,21 @@ async function withWaitForCaptchaSolve(callback, options) {
40
40
  const onCaptchaUpdate = async _captcha => {
41
41
  const solvingCaptchas = await extensionServer.getCaptchas(page, "solving");
42
42
  const errorCaptchas = await extensionServer.getCaptchas(page, "error");
43
- console.error(`Captcha update received: solving=${solvingCaptchas.length}, errors=${errorCaptchas.length}`);
43
+ console.debug(`Captcha update received: solving=${solvingCaptchas.length}, errors=${errorCaptchas.length}`);
44
44
  if (solvingCaptchas.length > 0) {
45
+ if (!captchasAppeared) {
46
+ console.info(`Captchas detected: ${solvingCaptchas.map(c => c.id).join(", ")}`);
47
+ }
45
48
  captchasAppeared = true;
46
- console.error(`Captchas detected: ${solvingCaptchas.map(c => c.id).join(", ")}`);
47
49
  }
48
50
  if (errorCaptchas.length > 0) {
49
51
  error = errorCaptchas[0].error;
50
- console.error(`Captcha error detected: ${error?.code}`);
52
+ console.info(`Captcha error detected: ${error?.code}`);
51
53
  await maybeSettle();
52
54
  return;
53
55
  }
54
56
  if (solvingCaptchas.length === 0) {
55
- console.error("No pending captchas, settling");
57
+ console.debug("No pending captchas, settling");
56
58
  await maybeSettle();
57
59
  }
58
60
  };
@@ -68,7 +70,7 @@ async function withWaitForCaptchaSolve(callback, options) {
68
70
  const timeoutPromise = new Promise(resolve => {
69
71
  setTimeout(() => {
70
72
  isTimeout = true;
71
- console.error("Captcha solve timeout reached");
73
+ console.info("Captcha solve timeout reached");
72
74
  settledResolve?.();
73
75
  resolve();
74
76
  }, timeoutInMs);
@@ -76,7 +78,7 @@ async function withWaitForCaptchaSolve(callback, options) {
76
78
  await extensionServer.subscribe(page, onCaptchaUpdate);
77
79
  try {
78
80
  const initialPending = await getPendingCaptchas();
79
- console.error(`Found ${initialPending.length} ongoing captchas`);
81
+ console.info(`Found ${initialPending.length} ongoing captchas`);
80
82
  if (initialPending.length > 0) {
81
83
  captchasAppeared = true;
82
84
  }
@@ -84,24 +86,24 @@ async function withWaitForCaptchaSolve(callback, options) {
84
86
  let shouldContinue = true;
85
87
  while (shouldContinue) {
86
88
  await Promise.race([settledPromise, timeoutPromise]);
87
- console.error(`Settled event received, waiting ${settleDurationMs}ms before checking`);
89
+ console.debug(`Settled event received, waiting ${settleDurationMs}ms before checking`);
88
90
  await new Promise(r => setTimeout(r, settleDurationMs));
89
91
  if (error) {
90
- console.error(`Raising captcha error: ${error.code}`);
92
+ console.info(`Raising captcha error: ${error.code}`);
91
93
  throw new _types.CaptchaSolveError(`CAPTCHA Solve Error: ${error.code}`, error);
92
94
  }
93
95
  const noPendingCaptchas = await hasNoPendingCaptchas();
94
96
  const pending = await getPendingCaptchas();
95
- console.error(`Check point: actionDone=${actionDone}, noPendingCaptchas=${noPendingCaptchas}, isTimeout=${isTimeout}, pendingCount=${pending.length}`);
97
+ console.debug(`Check point: actionDone=${actionDone}, noPendingCaptchas=${noPendingCaptchas}, isTimeout=${isTimeout}, pendingCount=${pending.length}`);
96
98
  if (actionDone && noPendingCaptchas || isTimeout) {
97
99
  if (isTimeout && !noPendingCaptchas) {
98
- console.error(`Timeout with ${pending.length} pending captchas`);
100
+ console.info(`Timeout with ${pending.length} pending captchas`);
99
101
  throw new _types.TimeoutError("CAPTCHA Solve timed out with pending captchas.");
100
102
  }
101
- console.error("Captcha solve completed successfully");
103
+ console.info("Captcha solve completed successfully");
102
104
  shouldContinue = false;
103
105
  } else {
104
- console.error(`Still have ${pending.length} pending captchas, waiting for more updates`);
106
+ console.info(`Still have ${pending.length} pending captchas, waiting for more updates`);
105
107
  settledPromise = new Promise(resolve => {
106
108
  settledResolve = resolve;
107
109
  });
@@ -165,7 +165,7 @@ var require_types = __commonJS({
165
165
  return mod && mod.__esModule ? mod : { "default": mod };
166
166
  };
167
167
  Object.defineProperty(exports2, "__esModule", { value: true });
168
- exports2.outputRunApiSchema = exports2.pongMessageSchema = exports2.doneMessageSchema = exports2.extendMessageSchema = exports2.runApiInputSchema = exports2.pingSchema = exports2.tokenUpdateSchema = exports2.abortRunApiSchema = exports2.startRunApiSchema = exports2.startRunApiParametersSchema = exports2.runApiParametersSchema = exports2.runApiRunOptionsSchema = exports2.runApiCdpRunOptionsSchema = exports2.runApiStandaloneRunOptionsSchema = exports2.profileModeSchema = exports2.runApiProxySchema = exports2.runApiAuthSchema = exports2.runApiTracingSchema = exports2.runApiAutomationFunctionSchema = exports2.runApiSessionSchema = exports2.runApiStorageStateSchema = void 0;
168
+ exports2.outputRunApiSchema = exports2.pongMessageSchema = exports2.doneMessageSchema = exports2.extendMessageSchema = exports2.runApiInputSchema = exports2.pingSchema = exports2.tokenUpdateSchema = exports2.abortRunApiSchema = exports2.startRunApiSchema = exports2.startRunApiParametersSchema = exports2.runApiParametersSchema = exports2.runApiRunOptionsSchema = exports2.runApiCdpRunOptionsSchema = exports2.runApiStandaloneRunOptionsSchema = exports2.runApiBrowserSizeSchema = exports2.runApiProxySchema = exports2.runApiAuthSchema = exports2.runApiTracingSchema = exports2.runApiAutomationFunctionSchema = exports2.runApiSessionSchema = exports2.runApiStorageStateSchema = void 0;
169
169
  exports2.runApiResultOkSchema = runApiResultOkSchema;
170
170
  exports2.runApiResultWithSessionOkSchema = runApiResultWithSessionOkSchema;
171
171
  var zod_1 = __importDefault(require("zod"));
@@ -222,7 +222,10 @@ var require_types = __commonJS({
222
222
  username: zod_1.default.string(),
223
223
  password: zod_1.default.string()
224
224
  });
225
- exports2.profileModeSchema = zod_1.default.enum(["isolated", "persistent"]).default("persistent");
225
+ exports2.runApiBrowserSizeSchema = zod_1.default.object({
226
+ width: zod_1.default.number().int().min(200).max(3840),
227
+ height: zod_1.default.number().int().min(200).max(2160)
228
+ });
226
229
  exports2.runApiStandaloneRunOptionsSchema = zod_1.default.object({
227
230
  environment: zod_1.default.literal("standalone"),
228
231
  headless: zod_1.default.boolean().default(true),
@@ -230,15 +233,16 @@ var require_types = __commonJS({
230
233
  ignoreHttpErrors: zod_1.default.boolean().optional(),
231
234
  profileTemplatePath: zod_1.default.string().optional(),
232
235
  encryptedProfile: zod_1.default.boolean().optional(),
233
- profileMode: exports2.profileModeSchema
236
+ browserPath: zod_1.default.string().optional(),
237
+ browserArgs: zod_1.default.array(zod_1.default.string()).optional(),
238
+ browserSize: exports2.runApiBrowserSizeSchema.optional()
234
239
  });
235
240
  exports2.runApiCdpRunOptionsSchema = zod_1.default.object({
236
241
  environment: zod_1.default.literal("cdp"),
237
242
  cdpAddress: zod_1.default.string(),
238
243
  cdpTargetId: zod_1.default.string().optional(),
239
244
  profileTemplatePath: zod_1.default.string().optional(),
240
- encryptedProfile: zod_1.default.boolean().optional(),
241
- profileMode: exports2.profileModeSchema
245
+ encryptedProfile: zod_1.default.boolean().optional()
242
246
  });
243
247
  exports2.runApiRunOptionsSchema = zod_1.default.discriminatedUnion("environment", [
244
248
  exports2.runApiStandaloneRunOptionsSchema,
@@ -249,7 +253,11 @@ var require_types = __commonJS({
249
253
  tracing: exports2.runApiTracingSchema,
250
254
  auth: exports2.runApiAuthSchema,
251
255
  runOptions: exports2.runApiRunOptionsSchema,
252
- retrieveSession: zod_1.default.boolean().default(false)
256
+ retrieveSession: zod_1.default.boolean().default(false),
257
+ // Opaque captcha-solver config, forwarded verbatim by the caller (CLI/UDAS).
258
+ // The TS runtime re-parses it with its own captchaSolverSettingsSchema so the
259
+ // authoritative schema stays in one place.
260
+ captchaSolver: zod_1.default.record(zod_1.default.any()).optional()
253
261
  });
254
262
  function runApiResultOkSchema(resultSchema) {
255
263
  return zod_1.default.object({
@@ -16,12 +16,12 @@ var _Logger = require("../../common/Logger");
16
16
  var _nanoid = require("nanoid");
17
17
  var _chalk = _interopRequireDefault(require("chalk"));
18
18
  var _runApi = require("../../common/runApi");
19
- var _runtimeInterface = require("../../vendor/runtime-interface");
20
19
  var _tsNodeImport = require("../common/tsNodeImport");
21
20
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
22
21
  var _constants = require("../../common/constants");
23
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
- 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); }
23
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
25
  _dotenv.default.config({
26
26
  path: `.env`
27
27
  });
@@ -31,12 +31,12 @@ async function executeCLI(apiName, mode, inputData, options) {
31
31
  const settings = await (0, _settings.getSettings)();
32
32
  if (settings.authSessions.enabled) {
33
33
  if (!options.authSessionPath) {
34
- throw new Error("AuthSessions are enabled but no AuthSession provided.\n" + "Please provide --auth-session-path option.\n" + "See https://intunedhq.com/docs/main/05-references/cli/dev for more information.");
34
+ throw new Error("Auth session is enabled but no auth session provided");
35
35
  }
36
36
  authSessionPathToUse = options.authSessionPath;
37
37
  } else {
38
38
  if (options.authSessionPath) {
39
- throw new Error("Authentication is not enabled but AuthSession was provided.\n" + "Enable AuthSessions in Intuned.json to use this feature.\n" + "See https://intunedhq.com/docs/main/05-references/cli/dev for more information.");
39
+ throw new Error("Auth session is not enabled but auth session provided. To use auth session please enable it in Intuned.json");
40
40
  }
41
41
  }
42
42
  const runApiResult = await (0, _runApi.runApi)({
@@ -57,7 +57,7 @@ async function executeCLI(apiName, mode, inputData, options) {
57
57
  importFunction: _tsNodeImport.tsNodeImport
58
58
  });
59
59
  if (runApiResult.isErr()) {
60
- if (runApiResult.error instanceof _runtimeInterface.AutomationError) {
60
+ if (runApiResult.error instanceof _runApi.AutomationError) {
61
61
  throw runApiResult.error.error;
62
62
  }
63
63
  console.error(runApiResult.error);
@@ -67,8 +67,12 @@ async function executeCLI(apiName, mode, inputData, options) {
67
67
  result,
68
68
  extendedPayloads: payloadToAppend
69
69
  } = runApiResult.value;
70
+ const isResponseObject = typeof result === "object" && result !== null;
71
+ const hasMoreThank5Keys = isResponseObject && Object.keys(result).length > 5;
72
+ const hasNestedObjects = isResponseObject && Object.values(result).some(value => typeof value === "object");
73
+ const shouldWriteToFile = isResponseObject && (hasMoreThank5Keys || hasNestedObjects);
70
74
  const resultsDir = "/tmp/run-results";
71
- if (options.outputFileId) {
75
+ if (options.outputFileId && shouldWriteToFile) {
72
76
  _Logger.logger.info(_chalk.default.underline.bgBlue.white(`Click to Open: Results saved (Run: ${options.outputFileId})`));
73
77
  fs.ensureDirSync(resultsDir);
74
78
  const path = `${resultsDir}/${options.outputFileId}.json`;
@@ -94,7 +98,7 @@ async function executeCLI(apiName, mode, inputData, options) {
94
98
  _Logger.logger.info("This will only take an effect if this API run was part of a job.");
95
99
  }
96
100
  }
97
- _commander.program.description("run the user function in the cli for testing purposes").option("-i, --input [file]", "input json file").option("-j, --json [json]", "input json string").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "AuthSession to use when executing the api").option("--outputFileId <outputFileId>", "the output file id to save the result in").option("--proxy <proxy>", "proxy to use").option("--authSessionParameters <authSessionParameters>", "parameters used to create the used AuthSession").argument("[apiName]", "name of the api", "default").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone", "playwright-headless"]).default("playwright-standalone").argOptional()).action(async (apiName, mode, options) => {
101
+ _commander.program.description("run the user function in the cli for testing purposes").option("-i, --input [file]", "input json file").option("-j, --json [json]", "input json string").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "auth session to use when executing the api").option("--outputFileId <outputFileId>", "the output file id to save the result in").option("--proxy <proxy>", "proxy to use").option("--authSessionParameters <authSessionParameters>", "parameters used to create the used auth session").argument("[apiName]", "name of the api", "default").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone", "playwright-headless"]).default("playwright-standalone").argOptional()).action(async (apiName, mode, options) => {
98
102
  let inputData = null;
99
103
  if (options.input) {
100
104
  inputData = await fs.readJSON(options.input);
@@ -10,13 +10,13 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
10
10
  _dotenv.default.config({
11
11
  path: `.env`
12
12
  });
13
- _commander.program.description("load AuthSession to browser").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "AuthSession to use when executing the api").allowUnknownOption().action(async ({
13
+ _commander.program.description("load auth session to browser").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "auth session to use when executing the api").allowUnknownOption().action(async ({
14
14
  cdpAddress,
15
15
  authSessionPath
16
16
  }) => {
17
17
  const setting = await (0, _settings.getSettings)();
18
18
  if (!setting.authSessions.enabled) {
19
- throw new Error("Authentication required but not configured.\n" + "Enable AuthSessions in Intuned.json to use this feature.\n" + "See https://intunedhq.com/docs/main/05-references/cli/dev for more information.");
19
+ throw new Error("Auth session is not enabled");
20
20
  }
21
21
  await (0, _playwrightContext.withPlaywrightContext)({
22
22
  cdpAddress
@@ -8,29 +8,29 @@ var _settings = require("../common/utils/settings");
8
8
  var _dotenv = _interopRequireDefault(require("dotenv"));
9
9
  var _constants = require("../../common/constants");
10
10
  var _runApi = require("../../common/runApi");
11
- var _runtimeInterface = require("../../vendor/runtime-interface");
12
11
  var _tsNodeImport = require("../common/tsNodeImport");
13
12
  var _enums = require("../../runtime/enums");
14
13
  var _nanoid = require("nanoid");
15
14
  var _asyncLocalStorage = require("../../common/asyncLocalStorage");
16
15
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
17
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
19
  _dotenv.default.config({
20
20
  path: `.env`
21
21
  });
22
- _commander.program.description("run AuthSession check").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "AuthSession to use when executing the check").option("--authSessionParameters <authSessionParameters>", "parameters used to create the used AuthSession").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone"]).default("playwright-standalone").argOptional()).action(async (mode, {
22
+ _commander.program.description("run auth session check").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("--authSessionPath <authSession>", "auth session to use when executing the check").option("--authSessionParameters <authSessionParameters>", "parameters used to create the used auth session").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone"]).default("playwright-standalone").argOptional()).action(async (mode, {
23
23
  cdpAddress,
24
24
  authSessionPath,
25
25
  authSessionParameters
26
26
  }) => {
27
27
  const setting = await (0, _settings.getSettings)();
28
28
  if (!setting.authSessions.enabled) {
29
- throw new Error("Authentication required but not configured.\n" + "Enable AuthSessions in Intuned.json to use this feature.\n" + "See https://intunedhq.com/docs/main/05-references/cli/dev for more information.");
29
+ throw new Error("auth session is not enabled");
30
30
  }
31
31
  const checkFilePath = (0, _fileUtils.getFullPathInProject)(_constants.AUTH_SESSIONS_FOLDER_NAME, "check");
32
32
  if (!fs.exists(checkFilePath)) {
33
- throw new Error("AuthSession check file not found");
33
+ throw new Error("auth session check file not found");
34
34
  }
35
35
  let authSessionParametersJson = undefined;
36
36
  if (!(0, _isNil.default)(authSessionParameters)) {
@@ -58,16 +58,16 @@ _commander.program.description("run AuthSession check").option("--cdpAddress <cd
58
58
  importFunction: _tsNodeImport.tsNodeImport
59
59
  }));
60
60
  if (runApiResult.isErr()) {
61
- if (runApiResult.error instanceof _runtimeInterface.AutomationError) {
61
+ if (runApiResult.error instanceof _runApi.AutomationError) {
62
62
  throw runApiResult.error.error;
63
63
  }
64
64
  console.error(runApiResult.error);
65
- throw new Error("Error running AuthSession check");
65
+ throw new Error("Error running auth session check");
66
66
  }
67
67
  const result = runApiResult.value.result;
68
68
  console.log("check result", result);
69
69
  if (!result) {
70
- throw new Error("AuthSession check failed");
70
+ throw new Error("auth session check failed");
71
71
  }
72
72
  process.exit(0);
73
73
  });
@@ -8,17 +8,17 @@ var _settings = require("../common/utils/settings");
8
8
  var _dotenv = _interopRequireDefault(require("dotenv"));
9
9
  var _constants = require("../../common/constants");
10
10
  var _runApi = require("../../common/runApi");
11
- var _runtimeInterface = require("../../vendor/runtime-interface");
12
11
  var _asyncLocalStorage = require("../../common/asyncLocalStorage");
13
12
  var _nanoid = require("nanoid");
14
13
  var _enums = require("../../runtime/enums");
15
14
  var _tsNodeImport = require("../common/tsNodeImport");
16
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- 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); }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  _dotenv.default.config({
19
19
  path: `.env`
20
20
  });
21
- _commander.program.description("run AuthSession create").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("-i, --input [file]", "input json file").option("-j, --json [json]", "input json string").option("--authSessionPath <authSession>", "AuthSession to use when executing the api").option("--pathToSave <pathToSave>", "path to save the AuthSession, if not provided, will discard the AuthSession").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone"]).default("playwright-standalone").argOptional()).action(async (mode, {
21
+ _commander.program.description("run auth session create").option("--cdpAddress <cdpAddress>", "CDP address", "http://localhost:9222").option("-i, --input [file]", "input json file").option("-j, --json [json]", "input json string").option("--authSessionPath <authSession>", "auth session to use when executing the api").option("--pathToSave <pathToSave>", "path to save the auth session, if not provided, will discard the auth session").allowUnknownOption().addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright", "playwright-standalone"]).default("playwright-standalone").argOptional()).action(async (mode, {
22
22
  cdpAddress,
23
23
  pathToSave,
24
24
  input,
@@ -34,11 +34,11 @@ _commander.program.description("run AuthSession create").option("--cdpAddress <c
34
34
  }
35
35
  const setting = await (0, _settings.getSettings)();
36
36
  if (!setting.authSessions.enabled) {
37
- throw new Error("Authentication required but not configured.\n" + "Enable AuthSessions in Intuned.json to use this feature.\n" + "See https://intunedhq.com/docs/main/05-references/cli/dev for more information.");
37
+ throw new Error("auth sessions feature is not enabled");
38
38
  }
39
39
  const createFilePath = (0, _fileUtils.getFullPathInProject)(_constants.AUTH_SESSIONS_FOLDER_NAME, "create.ts");
40
40
  if (!fs.exists(createFilePath)) {
41
- throw new Error("AuthSession create file not found");
41
+ throw new Error("auth session create file not found");
42
42
  }
43
43
  async function runCreate() {
44
44
  const result = await (0, _runApi.runApi)({
@@ -54,7 +54,7 @@ _commander.program.description("run AuthSession create").option("--cdpAddress <c
54
54
  importFunction: _tsNodeImport.tsNodeImport
55
55
  });
56
56
  if (result.isErr()) {
57
- if (result.error instanceof _runtimeInterface.AutomationError) {
57
+ if (result.error instanceof _runApi.AutomationError) {
58
58
  throw result.error.error;
59
59
  }
60
60
  console.error(result.error);
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ var _commander = require("commander");
5
+ var _browserUtils = require("../common/browserUtils");
6
+ var _dotenv = _interopRequireDefault(require("dotenv"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ _dotenv.default.config({
9
+ path: `.env`
10
+ });
11
+ _commander.program.description("save browser state to file storage.json").option("-p, --path [file]", "path for file", "./localSessions/default.json").allowUnknownOption().action(async ({
12
+ path
13
+ }) => {
14
+ await (0, _browserUtils.saveSessionFromOpenedBrowser)(path);
15
+ process.exit(0);
16
+ });
17
+ _commander.program.parse(process.argv);
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ var _commander = require("commander");
5
+ var _browserUtils = require("../common/browserUtils");
6
+ var _dotenv = _interopRequireDefault(require("dotenv"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ _dotenv.default.config({
9
+ path: `.env`
10
+ });
11
+ _commander.program.description("start browser testing purposes").allowUnknownOption().action(async () => {
12
+ await (0, _browserUtils.startOrRestartBrowser)();
13
+ });
14
+ _commander.program.parse(process.argv);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _commander = require("commander");
4
+ var _rollup = require("rollup");
5
+ var _pluginTypescript = _interopRequireDefault(require("@rollup/plugin-typescript"));
6
+ var _pluginCommonjs = _interopRequireDefault(require("@rollup/plugin-commonjs"));
7
+ var _pluginNodeResolve = require("@rollup/plugin-node-resolve");
8
+ var _pluginDynamicImportVars = _interopRequireDefault(require("@rollup/plugin-dynamic-import-vars"));
9
+ var _pluginJson = _interopRequireDefault(require("@rollup/plugin-json"));
10
+ var fs = _interopRequireWildcard(require("fs-extra"));
11
+ var path = _interopRequireWildcard(require("path"));
12
+ var _template = require("./common/utils/template");
13
+ var _dotenv = _interopRequireDefault(require("dotenv"));
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function isThirdPartyWarning(warning) {
18
+ if (warning.id && /node_modules/.test(warning.id)) return true;
19
+ if (warning.ids && warning.ids.every(id => /node_modules/.test(id))) return true;
20
+ return false;
21
+ }
22
+ _dotenv.default.config();
23
+ _commander.program.description("build the intuned server").option("-t, --template <type>", "template to use", "InterfaceTemplate").addArgument(new _commander.Argument("<mode>", "mode of execution").choices(["vanilla", "playwright"]).default("playwright").argOptional()).argument("[outfile]", "output bundle", "./output/bundle_v2.js").allowUnknownOption().action(async (mode, outfile, {
24
+ template
25
+ }) => {
26
+ await (0, _template.moveTemplateFiles)(template);
27
+ const currentTemplateTsConfig = path.resolve(path.dirname(__filename), "..", "..", "template.tsconfig.json");
28
+ await fs.copy(currentTemplateTsConfig, `./intuned/${template}/tsconfig.json`);
29
+ await build(outfile, mode, template);
30
+ });
31
+ async function build(outfile, mode, template) {
32
+ let bundle = null;
33
+ let buildFailed = false;
34
+ try {
35
+ bundle = await (0, _rollup.rollup)({
36
+ input: `./intuned/${template}/index.${mode}.ts`,
37
+ output: {
38
+ globals: {
39
+ crypto: "crypto"
40
+ }
41
+ },
42
+ plugins: [(0, _pluginJson.default)(), (0, _pluginNodeResolve.nodeResolve)({
43
+ exportConditions: ["node"],
44
+ preferBuiltins: true
45
+ }), (0, _pluginTypescript.default)({
46
+ tsconfig: `./intuned/${template}/tsconfig.json`
47
+ }), (0, _pluginCommonjs.default)({
48
+ include: ["node_modules/**", `intuned/${template}/**`, "dist", "../typescript-sdk/**", "../typescript-runtime/**"],
49
+ extensions: [".js"],
50
+ ignoreGlobal: false,
51
+ sourceMap: false,
52
+ dynamicRequireTargets: ["api/**/*.js", "auth-sessions/**/*.js"],
53
+ requireReturnsDefault: "auto",
54
+ transformMixedEsModules: true
55
+ }), (0, _pluginDynamicImportVars.default)({
56
+ include: ["**/*.js", "**/*.ts"],
57
+ exclude: ["**/*.d.ts", "**/*.js.map"]
58
+ })],
59
+ onwarn: (warning, warn) => {
60
+ if (isThirdPartyWarning(warning)) return;
61
+ warn(warning);
62
+ },
63
+ external: ["playwright", "playwright-core", "jsdom", "canvas", "pdfjs-dist", "pdf-to-png-converter", "crypto", "applicationinsights", "fingerprint-generator", "fingerprint-injector", "node-fetch"]
64
+ });
65
+ console.log(`📦 Building ${outfile}`);
66
+ const outfileFolder = path.dirname(outfile);
67
+ const assetsDir = path.resolve(path.dirname(__filename), "..", "common", "assets");
68
+ await fs.copy(assetsDir, `${outfileFolder}/assets`);
69
+ await bundle.write({
70
+ format: "cjs",
71
+ file: outfile,
72
+ inlineDynamicImports: true
73
+ });
74
+ console.log(`✨ Build succeeded: ${outfile}`);
75
+ } catch (error) {
76
+ buildFailed = true;
77
+ console.error("error", error);
78
+ }
79
+ if (buildFailed) {
80
+ console.error("build failed");
81
+ process.exit(1);
82
+ }
83
+ }
84
+ _commander.program.parse(process.argv);
@@ -0,0 +1,14 @@
1
+ import { BrowserContext } from "playwright";
2
+ export declare const REMOTE_DEBUGGING_PORT = 9222;
3
+ export declare const getChromiumLaunchArgs: () => string[];
4
+ export declare function startOrRestartBrowser(): Promise<void>;
5
+ export interface SessionState {
6
+ cookies: any[];
7
+ storage: Record<string, {
8
+ localStorage: any;
9
+ sessionStorage: any;
10
+ }>;
11
+ }
12
+ export declare function saveSessionFromOpenedBrowser(path: string): Promise<void>;
13
+ export declare function loadState(path: string, context: BrowserContext): Promise<void>;
14
+ export declare function saveSession(path: string, context: BrowserContext): Promise<void>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getChromiumLaunchArgs = exports.REMOTE_DEBUGGING_PORT = void 0;
7
+ exports.loadState = loadState;
8
+ exports.saveSession = saveSession;
9
+ exports.saveSessionFromOpenedBrowser = saveSessionFromOpenedBrowser;
10
+ exports.startOrRestartBrowser = startOrRestartBrowser;
11
+ var _child_process = require("child_process");
12
+ var playwright = _interopRequireWildcard(require("playwright"));
13
+ var fs = _interopRequireWildcard(require("fs-extra"));
14
+ var _fileUtils = require("./utils/fileUtils");
15
+ var _contextStorageStateHelpers = require("../../common/contextStorageStateHelpers");
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ const REMOTE_DEBUGGING_PORT = exports.REMOTE_DEBUGGING_PORT = 9222;
19
+ const getChromiumLaunchArgs = () => ["--no-sandbox", `--remote-debugging-port=${REMOTE_DEBUGGING_PORT}`, `--user-data-dir=/tmp/${Date.now()}`, "--new-window", "--start-maximized", "--disable-popup-blocking"];
20
+ exports.getChromiumLaunchArgs = getChromiumLaunchArgs;
21
+ async function getBrowser() {
22
+ let playwrightBrowser = null;
23
+ try {
24
+ playwrightBrowser = await playwright.chromium.connectOverCDP(`http://localhost:${REMOTE_DEBUGGING_PORT}`);
25
+ } catch (e) {
26
+ throw new Error("Browser is not running");
27
+ }
28
+ return playwrightBrowser;
29
+ }
30
+ async function startOrRestartBrowser() {
31
+ const chromiumPath = await playwright.chromium.executablePath();
32
+ const chromeInstanceProcess = (0, _child_process.spawn)(chromiumPath, getChromiumLaunchArgs());
33
+ chromeInstanceProcess.stdout.on("data", data => {
34
+ console.log(`Chrome stdout: ${data}`);
35
+ });
36
+ chromeInstanceProcess.stderr.on("data", data => {
37
+ console.error(`Chrome stderr: ${data}`);
38
+ });
39
+ }
40
+ async function saveSessionFromOpenedBrowser(path) {
41
+ const browser = await getBrowser();
42
+ const context = await browser.contexts()[0];
43
+ return saveSession(path, context);
44
+ }
45
+ async function loadState(path, context) {
46
+ const fullPath = (0, _fileUtils.getFullPathInProject)(path);
47
+ if (!(await fs.pathExists(fullPath))) {
48
+ throw new Error("session file does not exist");
49
+ }
50
+ const data = await fs.readJson(fullPath);
51
+ await context.addCookies(data.cookies);
52
+ }
53
+ async function saveSession(path, context) {
54
+ const fullState = await (0, _contextStorageStateHelpers.getStorageState)(context);
55
+ const fullPath = (0, _fileUtils.getFullPathInProject)(path);
56
+ fs.ensureFileSync(fullPath);
57
+ await fs.writeJSON(fullPath, fullState);
58
+ }
@@ -0,0 +1,9 @@
1
+ import { SourceFile } from "ts-morph";
2
+ export declare function findFirstExecutableLine(sourceFile: SourceFile): -1 | {
3
+ line: number;
4
+ column: number;
5
+ };
6
+ export default function getFirstLineNumber(apiFilePath: string): Promise<{
7
+ sourceFileName: string;
8
+ lineNumber: number;
9
+ }>;