@intuned/runtime-dev 1.3.17-source.0 → 1.3.18-interface.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/InterfaceTemplate/index.playwright.ts +1 -1
  2. package/api/sample.ts +4 -0
  3. package/bin/intuned +0 -0
  4. package/bin/intuned-interface +7 -0
  5. package/package.json +10 -8
  6. package/dist/commands/api/run.d.ts +0 -6
  7. package/dist/commands/api/run.js +0 -119
  8. package/dist/commands/auth-sessions/load.d.ts +0 -2
  9. package/dist/commands/auth-sessions/load.js +0 -35
  10. package/dist/commands/auth-sessions/run-check.d.ts +0 -2
  11. package/dist/commands/auth-sessions/run-check.js +0 -74
  12. package/dist/commands/auth-sessions/run-create.d.ts +0 -2
  13. package/dist/commands/auth-sessions/run-create.js +0 -78
  14. package/dist/commands/browser/save-state.d.ts +0 -2
  15. package/dist/commands/browser/save-state.js +0 -17
  16. package/dist/commands/browser/start-browser.d.ts +0 -2
  17. package/dist/commands/browser/start-browser.js +0 -14
  18. package/dist/commands/build.d.ts +0 -1
  19. package/dist/commands/build.js +0 -85
  20. package/dist/commands/common/browserUtils.d.ts +0 -14
  21. package/dist/commands/common/browserUtils.js +0 -58
  22. package/dist/commands/common/getFirstLineNumber.d.ts +0 -9
  23. package/dist/commands/common/getFirstLineNumber.js +0 -101
  24. package/dist/commands/common/getFirstLineNumber.test.js +0 -228
  25. package/dist/commands/common/projectExclusions.d.ts +0 -2
  26. package/dist/commands/common/projectExclusions.js +0 -8
  27. package/dist/commands/common/sendMessageToClient.d.ts +0 -1
  28. package/dist/commands/common/sendMessageToClient.js +0 -10
  29. package/dist/commands/common/tsNodeImport.d.ts +0 -2
  30. package/dist/commands/common/tsNodeImport.js +0 -43
  31. package/dist/commands/common/utils/fileUtils.d.ts +0 -6
  32. package/dist/commands/common/utils/fileUtils.js +0 -33
  33. package/dist/commands/common/utils/settings.d.ts +0 -2
  34. package/dist/commands/common/utils/settings.js +0 -31
  35. package/dist/commands/common/utils/template.d.ts +0 -2
  36. package/dist/commands/common/utils/template.js +0 -31
  37. package/dist/commands/common/utils/unixSocket.d.ts +0 -23
  38. package/dist/commands/common/utils/unixSocket.js +0 -87
  39. package/dist/commands/get-headless-user-agent.d.ts +0 -1
  40. package/dist/commands/get-headless-user-agent.js +0 -18
  41. package/dist/commands/interface/run.d.ts +0 -1
  42. package/dist/commands/interface/run.js +0 -215
  43. package/dist/commands/intuned-cli/commands/attempt.command.d.ts +0 -1
  44. package/dist/commands/intuned-cli/commands/attempt.command.js +0 -8
  45. package/dist/commands/intuned-cli/commands/attempt_api.command.d.ts +0 -1
  46. package/dist/commands/intuned-cli/commands/attempt_api.command.js +0 -30
  47. package/dist/commands/intuned-cli/commands/attempt_authsession.command.d.ts +0 -1
  48. package/dist/commands/intuned-cli/commands/attempt_authsession.command.js +0 -8
  49. package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.d.ts +0 -1
  50. package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.js +0 -19
  51. package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.d.ts +0 -1
  52. package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.js +0 -24
  53. package/dist/commands/intuned-cli/commands/authsession.command.d.ts +0 -1
  54. package/dist/commands/intuned-cli/commands/authsession.command.js +0 -8
  55. package/dist/commands/intuned-cli/commands/authsession_record.command.d.ts +0 -1
  56. package/dist/commands/intuned-cli/commands/authsession_record.command.js +0 -32
  57. package/dist/commands/intuned-cli/commands/authsession_scaffold.command.d.ts +0 -1
  58. package/dist/commands/intuned-cli/commands/authsession_scaffold.command.js +0 -16
  59. package/dist/commands/intuned-cli/commands/build.command.d.ts +0 -1
  60. package/dist/commands/intuned-cli/commands/build.command.js +0 -12
  61. package/dist/commands/intuned-cli/commands/command.d.ts +0 -2
  62. package/dist/commands/intuned-cli/commands/command.js +0 -9
  63. package/dist/commands/intuned-cli/commands/deploy.command.d.ts +0 -1
  64. package/dist/commands/intuned-cli/commands/deploy.command.js +0 -42
  65. package/dist/commands/intuned-cli/commands/index.d.ts +0 -18
  66. package/dist/commands/intuned-cli/commands/index.js +0 -203
  67. package/dist/commands/intuned-cli/commands/provision.command.d.ts +0 -13
  68. package/dist/commands/intuned-cli/commands/provision.command.js +0 -50
  69. package/dist/commands/intuned-cli/commands/run.command.d.ts +0 -1
  70. package/dist/commands/intuned-cli/commands/run.command.js +0 -8
  71. package/dist/commands/intuned-cli/commands/run_api.command.d.ts +0 -1
  72. package/dist/commands/intuned-cli/commands/run_api.command.js +0 -46
  73. package/dist/commands/intuned-cli/commands/run_authsession.command.d.ts +0 -31
  74. package/dist/commands/intuned-cli/commands/run_authsession.command.js +0 -17
  75. package/dist/commands/intuned-cli/commands/run_authsession_create.command.d.ts +0 -1
  76. package/dist/commands/intuned-cli/commands/run_authsession_create.command.js +0 -35
  77. package/dist/commands/intuned-cli/commands/run_authsession_update.command.d.ts +0 -1
  78. package/dist/commands/intuned-cli/commands/run_authsession_update.command.js +0 -35
  79. package/dist/commands/intuned-cli/commands/run_authsession_validate.command.d.ts +0 -1
  80. package/dist/commands/intuned-cli/commands/run_authsession_validate.command.js +0 -33
  81. package/dist/commands/intuned-cli/commands/types.d.ts +0 -35
  82. package/dist/commands/intuned-cli/commands/types.js +0 -31
  83. package/dist/commands/intuned-cli/constants/index.d.ts +0 -17
  84. package/dist/commands/intuned-cli/constants/index.js +0 -25
  85. package/dist/commands/intuned-cli/controller/__test__/api.test.js +0 -398
  86. package/dist/commands/intuned-cli/controller/__test__/authSession.test.js +0 -1060
  87. package/dist/commands/intuned-cli/controller/api.d.ts +0 -42
  88. package/dist/commands/intuned-cli/controller/api.js +0 -194
  89. package/dist/commands/intuned-cli/controller/authSession.d.ts +0 -209
  90. package/dist/commands/intuned-cli/controller/authSession.js +0 -424
  91. package/dist/commands/intuned-cli/controller/build.d.ts +0 -1
  92. package/dist/commands/intuned-cli/controller/build.js +0 -36
  93. package/dist/commands/intuned-cli/controller/deploy.d.ts +0 -5
  94. package/dist/commands/intuned-cli/controller/deploy.js +0 -318
  95. package/dist/commands/intuned-cli/controller/index.d.ts +0 -1
  96. package/dist/commands/intuned-cli/controller/index.js +0 -46
  97. package/dist/commands/intuned-cli/controller/provision.d.ts +0 -21
  98. package/dist/commands/intuned-cli/controller/provision.js +0 -300
  99. package/dist/commands/intuned-cli/controller/scaffold.d.ts +0 -1
  100. package/dist/commands/intuned-cli/controller/scaffold.js +0 -77
  101. package/dist/commands/intuned-cli/helpers/__test__/browser.test.js +0 -115
  102. package/dist/commands/intuned-cli/helpers/__test__/tracing.test.js +0 -41
  103. package/dist/commands/intuned-cli/helpers/api.d.ts +0 -3
  104. package/dist/commands/intuned-cli/helpers/api.js +0 -16
  105. package/dist/commands/intuned-cli/helpers/auth.d.ts +0 -46
  106. package/dist/commands/intuned-cli/helpers/auth.js +0 -147
  107. package/dist/commands/intuned-cli/helpers/backend.d.ts +0 -8
  108. package/dist/commands/intuned-cli/helpers/backend.js +0 -35
  109. package/dist/commands/intuned-cli/helpers/browser.d.ts +0 -15
  110. package/dist/commands/intuned-cli/helpers/browser.js +0 -64
  111. package/dist/commands/intuned-cli/helpers/context.d.ts +0 -3
  112. package/dist/commands/intuned-cli/helpers/context.js +0 -33
  113. package/dist/commands/intuned-cli/helpers/errors.d.ts +0 -16
  114. package/dist/commands/intuned-cli/helpers/errors.js +0 -44
  115. package/dist/commands/intuned-cli/helpers/index.d.ts +0 -12
  116. package/dist/commands/intuned-cli/helpers/index.js +0 -137
  117. package/dist/commands/intuned-cli/helpers/intunedJson.d.ts +0 -39
  118. package/dist/commands/intuned-cli/helpers/intunedJson.js +0 -20
  119. package/dist/commands/intuned-cli/helpers/prompts.d.ts +0 -3
  120. package/dist/commands/intuned-cli/helpers/prompts.js +0 -71
  121. package/dist/commands/intuned-cli/helpers/proxy.d.ts +0 -5
  122. package/dist/commands/intuned-cli/helpers/proxy.js +0 -23
  123. package/dist/commands/intuned-cli/helpers/terminal.d.ts +0 -5
  124. package/dist/commands/intuned-cli/helpers/terminal.js +0 -13
  125. package/dist/commands/intuned-cli/helpers/timeout.d.ts +0 -1
  126. package/dist/commands/intuned-cli/helpers/timeout.js +0 -23
  127. package/dist/commands/intuned-cli/helpers/traces.d.ts +0 -2
  128. package/dist/commands/intuned-cli/helpers/traces.js +0 -32
  129. package/dist/commands/intuned-cli/helpers/validation.d.ts +0 -2
  130. package/dist/commands/intuned-cli/helpers/validation.js +0 -14
  131. package/dist/commands/intuned-cli/helpers/wrapper.d.ts +0 -2
  132. package/dist/commands/intuned-cli/helpers/wrapper.js +0 -76
  133. package/dist/commands/intuned-cli/index.d.ts +0 -1
  134. package/dist/commands/intuned-cli/index.js +0 -16
  135. package/dist/commands/intuned-cli/main.d.ts +0 -1
  136. package/dist/commands/intuned-cli/main.js +0 -36
  137. package/dist/commands/intuned-cli/types.d.ts +0 -70
  138. package/dist/commands/intuned-cli/types.js +0 -22
  139. package/dist/commands/ts-check.d.ts +0 -2
  140. package/dist/commands/ts-check.js +0 -56
  141. package/dist/common/Logger/Logger/index.d.ts +0 -12
  142. package/dist/common/Logger/Logger/index.js +0 -60
  143. package/dist/common/Logger/Logger/types.d.ts +0 -8
  144. package/dist/common/Logger/Logger/types.js +0 -5
  145. package/dist/common/Logger/index.d.ts +0 -12
  146. package/dist/common/Logger/index.js +0 -60
  147. package/dist/common/Logger/types.d.ts +0 -8
  148. package/dist/common/Logger/types.js +0 -5
  149. package/dist/common/assets/browser_scripts.js +0 -2580
  150. package/dist/common/asyncLocalStorage/index.d.ts +0 -16
  151. package/dist/common/asyncLocalStorage/index.js +0 -17
  152. package/dist/common/backendFunctions/getAuthSessionParameters.d.ts +0 -1
  153. package/dist/common/backendFunctions/getAuthSessionParameters.js +0 -38
  154. package/dist/common/binStartupScript.d.ts +0 -1
  155. package/dist/common/binStartupScript.js +0 -37
  156. package/dist/common/cleanEnvironmentVariables.d.ts +0 -1
  157. package/dist/common/cleanEnvironmentVariables.js +0 -16
  158. package/dist/common/constants.d.ts +0 -10
  159. package/dist/common/constants.js +0 -16
  160. package/dist/common/contextStorageStateHelpers.d.ts +0 -21
  161. package/dist/common/contextStorageStateHelpers.js +0 -81
  162. package/dist/common/extension/extensionsHelpers.d.ts +0 -11
  163. package/dist/common/extension/extensionsHelpers.js +0 -147
  164. package/dist/common/extension/intunedExtensionServer.d.ts +0 -24
  165. package/dist/common/extension/intunedExtensionServer.js +0 -178
  166. package/dist/common/extension/types.d.ts +0 -212
  167. package/dist/common/extension/types.js +0 -51
  168. package/dist/common/formatZodError.d.ts +0 -2
  169. package/dist/common/formatZodError.js +0 -18
  170. package/dist/common/intunedJson.d.ts +0 -229
  171. package/dist/common/intunedJson.js +0 -133
  172. package/dist/common/jwtTokenManager.d.ts +0 -17
  173. package/dist/common/jwtTokenManager.js +0 -109
  174. package/dist/common/launchBrowser.d.ts +0 -33
  175. package/dist/common/launchBrowser.js +0 -235
  176. package/dist/common/playwrightContext.d.ts +0 -31
  177. package/dist/common/playwrightContext.js +0 -150
  178. package/dist/common/runApi/errors.d.ts +0 -72
  179. package/dist/common/runApi/errors.js +0 -169
  180. package/dist/common/runApi/importUsingImportFunction.d.ts +0 -9
  181. package/dist/common/runApi/importUsingImportFunction.js +0 -46
  182. package/dist/common/runApi/index.d.ts +0 -11
  183. package/dist/common/runApi/index.js +0 -203
  184. package/dist/common/runApi/types.d.ts +0 -830
  185. package/dist/common/runApi/types.js +0 -73
  186. package/dist/common/settingsSchema.d.ts +0 -533
  187. package/dist/common/settingsSchema.js +0 -58
  188. package/dist/common/setupContextHook.d.ts +0 -17
  189. package/dist/common/setupContextHook.js +0 -22
  190. package/dist/common/telemetry.d.ts +0 -3
  191. package/dist/common/telemetry.js +0 -32
  192. package/dist/index.d.ts +0 -5
  193. package/dist/index.js +0 -124
  194. package/dist/runtime/RunError.d.ts +0 -5
  195. package/dist/runtime/RunError.js +0 -19
  196. package/dist/runtime/attemptStore.d.ts +0 -2
  197. package/dist/runtime/attemptStore.js +0 -23
  198. package/dist/runtime/captcha.d.ts +0 -15
  199. package/dist/runtime/captcha.js +0 -191
  200. package/dist/runtime/captcha.test.js +0 -821
  201. package/dist/runtime/downloadDirectory.d.ts +0 -1
  202. package/dist/runtime/downloadDirectory.js +0 -19
  203. package/dist/runtime/enums.d.js +0 -5
  204. package/dist/runtime/enums.d.ts +0 -11
  205. package/dist/runtime/enums.js +0 -18
  206. package/dist/runtime/executionHelpers.test.js +0 -52
  207. package/dist/runtime/export.d.js +0 -5
  208. package/dist/runtime/export.d.ts +0 -284
  209. package/dist/runtime/extendPayload.d.ts +0 -2
  210. package/dist/runtime/extendPayload.js +0 -21
  211. package/dist/runtime/extendTimeout.d.ts +0 -1
  212. package/dist/runtime/extendTimeout.js +0 -23
  213. package/dist/runtime/getAiGatewayConfig.d.ts +0 -10
  214. package/dist/runtime/getAiGatewayConfig.js +0 -16
  215. package/dist/runtime/getAuthSessionParameters.d.ts +0 -1
  216. package/dist/runtime/getAuthSessionParameters.js +0 -20
  217. package/dist/runtime/index.d.ts +0 -10
  218. package/dist/runtime/index.js +0 -111
  219. package/dist/runtime/persistentStore.d.ts +0 -2
  220. package/dist/runtime/persistentStore.js +0 -37
  221. package/dist/runtime/persistentStore.test.js +0 -101
  222. package/dist/runtime/runInfo.d.ts +0 -2
  223. package/dist/runtime/runInfo.js +0 -21
  224. /package/InterfaceTemplate/{utils.ts → __utils.ts} +0 -0
@@ -1,77 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.scaffoldAuthSessionFiles = scaffoldAuthSessionFiles;
7
- var _zod = require("zod");
8
- var _helpers = require("../helpers");
9
- var _types = require("../types");
10
- var _tsNodeImport = require("../../common/tsNodeImport");
11
- var _constants = require("../../../common/constants");
12
- var _fsExtra = require("fs-extra");
13
- var _path = _interopRequireDefault(require("path"));
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- const authSessionTemplateResponseSchema = _zod.z.object({
16
- "auth-sessions": _types.fileSystemTreeSchema
17
- });
18
- async function scaffoldAuthSessionFiles() {
19
- const [createResult, checkResult] = await Promise.all([(0, _tsNodeImport.tsNodeImport)(`${_constants.AUTH_SESSIONS_FOLDER_NAME}/create`), (0, _tsNodeImport.tsNodeImport)(`${_constants.AUTH_SESSIONS_FOLDER_NAME}/check`)]);
20
- const createExists = createResult.isOk() || createResult.error.type !== "not_found";
21
- const checkExists = checkResult.isOk() || checkResult.error.type !== "not_found";
22
- if (createExists && checkExists) {
23
- (0, _helpers.terminal)("^g^+AuthSession files already exist^:\n");
24
- return;
25
- }
26
- (0, _helpers.terminal)("^g^+Scaffolding...^:\n");
27
- const authSessionTemplateUrl = new URL("/api/v1/templates/authsession", (0, _helpers.getBaseUrl)());
28
- authSessionTemplateUrl.searchParams.append("language", "typescript");
29
- const response = await fetch(authSessionTemplateUrl.toString(), {
30
- method: "GET"
31
- });
32
- const text = await response.text();
33
- if (!response.ok) {
34
- throw new Error(`Failed to fetch AuthSession template
35
- Got ${response.status} ${response.statusText}
36
- ${text}`);
37
- }
38
- let json;
39
- try {
40
- json = JSON.parse(text);
41
- } catch (e) {
42
- throw new Error(`Failed to parse AuthSession template response as JSON
43
- ${text}`);
44
- }
45
- const parseResult = authSessionTemplateResponseSchema.safeParse(json);
46
- if (!parseResult.success) {
47
- throw new Error(`AuthSession template response has invalid shape: ${JSON.stringify(parseResult.error.errors, null, 2)}`);
48
- }
49
- const authSessionsContent = parseResult.data["auth-sessions"];
50
- const cwd = process.cwd();
51
- const exists = {
52
- create: createExists,
53
- check: checkExists
54
- };
55
- await (0, _fsExtra.ensureDir)(_path.default.join(cwd, _constants.AUTH_SESSIONS_FOLDER_NAME));
56
- for (const api in exists) {
57
- if (exists[api]) {
58
- continue;
59
- }
60
- const [name, node] = Object.entries(authSessionsContent).find(entry => "file" in entry[1] && entry[0].replace(/\.[^/.]+$/, "") === api) ?? [undefined, undefined];
61
- if (!name || !node) {
62
- continue;
63
- }
64
- const {
65
- file: {
66
- contents
67
- }
68
- } = node;
69
- if (typeof contents !== "string") {
70
- continue;
71
- }
72
- await (0, _fsExtra.writeFile)(_path.default.join(cwd, _constants.AUTH_SESSIONS_FOLDER_NAME, name), contents, {
73
- encoding: "utf-8"
74
- });
75
- (0, _helpers.terminal)(`^g^+Written ^_${_path.default.join(_constants.AUTH_SESSIONS_FOLDER_NAME, name)}^:\n`);
76
- }
77
- }
@@ -1,115 +0,0 @@
1
- "use strict";
2
-
3
- var _vitest = require("vitest");
4
- var _browser = require("../browser");
5
- var _launchBrowser = require("../../../../common/launchBrowser");
6
- function getTerminal() {
7
- return new Proxy(() => ({}), {
8
- get: () => getTerminal(),
9
- apply: () => ({})
10
- });
11
- }
12
- _vitest.vi.mock("fs-extra", () => ({
13
- ensureDir: _vitest.vi.fn(),
14
- exists: _vitest.vi.fn().mockResolvedValue(true)
15
- }));
16
- _vitest.vi.mock("portfinder", () => ({
17
- getPort: _vitest.vi.fn().mockResolvedValue(1234)
18
- }));
19
- _vitest.vi.mock("../../../../common/launchBrowser", () => ({
20
- launchChromium: _vitest.vi.fn().mockImplementation(async () => ({
21
- context: {
22
- close: _vitest.vi.fn().mockResolvedValue(undefined)
23
- },
24
- page: {}
25
- }))
26
- }));
27
- _vitest.vi.mock("../../helpers/terminal", () => ({
28
- terminal: getTerminal()
29
- }));
30
- _vitest.vi.mock("../../helpers/proxy", () => {
31
- return {
32
- parseUrlProxy: _vitest.vi.fn(v => v)
33
- };
34
- });
35
- _vitest.vi.mock("../../helpers", async importOriginal => {
36
- const original = await importOriginal();
37
- return {
38
- ...original,
39
- terminal: getTerminal()
40
- };
41
- });
42
- (0, _vitest.describe)("Browser CLI options", () => {
43
- (0, _vitest.it)("returns cdp options if cdpUrl is set", async () => {
44
- const options = await (0, _browser.getCLIRunOptions)({
45
- keepBrowserOpen: true,
46
- headless: true,
47
- cdpUrl: "cdp_url"
48
- });
49
- (0, _vitest.expect)(options).toEqual(_vitest.expect.objectContaining({
50
- environment: "cdp",
51
- cdpAddress: "cdp_url"
52
- }));
53
- });
54
- (0, _vitest.it)("returns standalone options if keepBrowserOpen is not set", async () => {
55
- const options = await (0, _browser.getCLIRunOptions)({
56
- keepBrowserOpen: false,
57
- headless: false
58
- });
59
- (0, _vitest.expect)(options).toEqual(_vitest.expect.objectContaining({
60
- environment: "standalone",
61
- headless: false
62
- }));
63
- });
64
- (0, _vitest.describe)("when keepBrowserOpen is set", () => {
65
- beforeEach(async () => {
66
- _vitest.vi.clearAllMocks();
67
- await (0, _browser.closeCliBrowser)();
68
- });
69
- (0, _vitest.it)("launches a browser with correct parameters and returns cdp options", async () => {
70
- const options = await (0, _browser.getCLIRunOptions)({
71
- keepBrowserOpen: true,
72
- headless: false,
73
- proxy: "proxy"
74
- });
75
- (0, _vitest.expect)(_launchBrowser.launchChromium).toHaveBeenCalledWith({
76
- headless: false,
77
- cdpPort: 1234,
78
- proxy: "proxy"
79
- });
80
- (0, _vitest.expect)(options).toEqual(_vitest.expect.objectContaining({
81
- environment: "cdp",
82
- cdpAddress: "http://localhost:1234"
83
- }));
84
- });
85
- (0, _vitest.it)("keeps context open until new context", async () => {
86
- await (0, _browser.getCLIRunOptions)({
87
- keepBrowserOpen: true,
88
- headless: false,
89
- proxy: "proxy"
90
- });
91
- const firstContext = (0, _browser._getContextForTest)();
92
- (0, _vitest.expect)(firstContext).not.toBeNull();
93
- (0, _vitest.expect)(_launchBrowser.launchChromium).toHaveBeenCalledTimes(1);
94
- await (0, _browser.getCLIRunOptions)({
95
- keepBrowserOpen: true,
96
- headless: false,
97
- proxy: "proxy"
98
- });
99
- const secondContext = (0, _browser._getContextForTest)();
100
- (0, _vitest.expect)(secondContext).not.toBeNull();
101
- (0, _vitest.expect)(firstContext).not.toBe(secondContext);
102
- (0, _vitest.expect)(_launchBrowser.launchChromium).toHaveBeenCalledTimes(2);
103
- });
104
- (0, _vitest.it)("keeps context open until explicitly closed", async () => {
105
- await (0, _browser.getCLIRunOptions)({
106
- keepBrowserOpen: true,
107
- headless: false,
108
- proxy: "proxy"
109
- });
110
- (0, _vitest.expect)((0, _browser._getContextForTest)()).not.toBeNull();
111
- await (0, _browser.closeCliBrowser)();
112
- (0, _vitest.expect)((0, _browser._getContextForTest)()).toBeNull();
113
- });
114
- });
115
- });
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- var _vitest = require("vitest");
4
- var _ = require("..");
5
- function getTerminal() {
6
- return new Proxy(() => ({}), {
7
- get: () => getTerminal(),
8
- apply: () => ({})
9
- });
10
- }
11
- _vitest.vi.mock("fs-extra", () => ({
12
- ensureDir: _vitest.vi.fn(),
13
- exists: _vitest.vi.fn().mockResolvedValue(true)
14
- }));
15
- _vitest.vi.mock("../../helpers/terminal", () => ({
16
- terminal: getTerminal()
17
- }));
18
- _vitest.vi.mock("../../helpers", async importOriginal => {
19
- const original = await importOriginal();
20
- return {
21
- ...original,
22
- terminal: getTerminal()
23
- };
24
- });
25
- (0, _vitest.describe)("Tracing wrapper", () => {
26
- (0, _vitest.it)("calls wrapped function with disabled tracing when id is undefined", async () => {
27
- const fn = _vitest.vi.fn();
28
- await (0, _.withCLITrace)(fn, undefined);
29
- (0, _vitest.expect)(fn).toHaveBeenCalledWith({
30
- enabled: false
31
- });
32
- });
33
- (0, _vitest.it)("calls wrapped function with enabled tracing when id is defined", async () => {
34
- const fn = _vitest.vi.fn();
35
- await (0, _.withCLITrace)(fn, "trace-id");
36
- (0, _vitest.expect)(fn).toHaveBeenCalledWith({
37
- enabled: true,
38
- filePath: _vitest.expect.stringContaining("trace-id")
39
- });
40
- });
41
- });
@@ -1,3 +0,0 @@
1
- import { API_FOLDER_NAME, AUTH_SESSIONS_FOLDER_NAME } from "../../../common/constants";
2
- export declare function assertApiFileExists(dirname: typeof AUTH_SESSIONS_FOLDER_NAME, api: "create" | "check"): Promise<void>;
3
- export declare function assertApiFileExists(dirname: typeof API_FOLDER_NAME, api: string): Promise<void>;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.assertApiFileExists = assertApiFileExists;
7
- var _errors = require("./errors");
8
- var _tsNodeImport = require("../../common/tsNodeImport");
9
- async function assertApiFileExists(dirname, api) {
10
- const result = await (0, _tsNodeImport.tsNodeImport)(`${dirname}/${api}`);
11
- if (result.isErr() && result.error.type === "not_found") {
12
- throw new _errors.CLIAssertionError(`^+^r API^ ^+${dirname}/${api}^ ^r^+does not exist. Make sure to use an existing API name.^:`, {
13
- autoColor: false
14
- });
15
- }
16
- }
@@ -1,46 +0,0 @@
1
- import type { AuthSessionMetadata } from "../types";
2
- import { RunApiStorageState as StorageState } from "../../../common/runApi";
3
- export declare function isAuthEnabled(): Promise<boolean>;
4
- export declare function assertAuthEnabled(): Promise<void>;
5
- export declare function assertAuthConsistent(authSession: string | undefined): Promise<void>;
6
- export declare function loadAuthSessionInstance(authSessionId: string): Promise<{
7
- storageState: {
8
- cookies: {
9
- path: string;
10
- value: string;
11
- domain: string;
12
- name: string;
13
- expires: number;
14
- httpOnly: boolean;
15
- secure: boolean;
16
- sameSite: "Strict" | "Lax" | "None";
17
- }[];
18
- origins: {
19
- origin: string;
20
- localStorage: {
21
- value: string;
22
- name: string;
23
- }[];
24
- }[];
25
- sessionStorage?: {
26
- origin: string;
27
- sessionStorage: {
28
- value: string;
29
- name: string;
30
- }[];
31
- }[] | undefined;
32
- };
33
- metadata: AuthSessionMetadata;
34
- }>;
35
- export declare function storeAuthSessionInstance({ state, id, input, proxy, metadata, }: {
36
- state: StorageState;
37
- id: string;
38
- input?: Record<string, any>;
39
- proxy?: string;
40
- metadata?: AuthSessionMetadata;
41
- }): Promise<string>;
42
- export declare function registerGetAuthSessionParameters(authSessionId?: string): void;
43
- export declare function getAuthSessionRecorderParameters(): Promise<{
44
- startUrl: string;
45
- finishUrl: string;
46
- }>;
@@ -1,147 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.assertAuthConsistent = assertAuthConsistent;
7
- exports.assertAuthEnabled = assertAuthEnabled;
8
- exports.getAuthSessionRecorderParameters = getAuthSessionRecorderParameters;
9
- exports.isAuthEnabled = isAuthEnabled;
10
- exports.loadAuthSessionInstance = loadAuthSessionInstance;
11
- exports.registerGetAuthSessionParameters = registerGetAuthSessionParameters;
12
- exports.storeAuthSessionInstance = storeAuthSessionInstance;
13
- var _constants = require("../../../common/constants");
14
- var _path = _interopRequireDefault(require("path"));
15
- var _fsExtra = require("fs-extra");
16
- var _intunedJson = require("./intunedJson");
17
- var _errors = require("./errors");
18
- var _runApi = require("../../../common/runApi");
19
- var _formatZodError = require("../../../common/formatZodError");
20
- var _asyncLocalStorage = require("../../../common/asyncLocalStorage");
21
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- async function isAuthEnabled() {
23
- const intunedJson = await (0, _intunedJson.loadIntunedJson)();
24
- return Boolean(intunedJson?.authSessions?.enabled);
25
- }
26
- async function assertAuthEnabled() {
27
- if (!(await isAuthEnabled())) {
28
- throw new _errors.CLIAssertionError(await getAuthNotEnabledErrorMessage());
29
- }
30
- }
31
- async function assertAuthConsistent(authSession) {
32
- const _isAuthEnabled = await isAuthEnabled();
33
- if (_isAuthEnabled && !authSession) {
34
- throw new _errors.CLIAssertionError("AuthSession is enabled, but no AuthSession is provided. Please provide an AuthSession using '--auth-session <id>' option.");
35
- }
36
- if (!_isAuthEnabled && authSession) {
37
- throw new _errors.CLIAssertionError(await getAuthNotEnabledErrorMessage());
38
- }
39
- }
40
- async function loadAuthSessionInstance(authSessionId) {
41
- try {
42
- const authSessionInstancePath = _path.default.join(process.cwd(), _constants.AUTH_SESSIONS_INSTANCES_FOLDER_NAME, authSessionId);
43
- const authSessionInstanceStoragePath = _path.default.join(authSessionInstancePath, `auth-session.json`);
44
- const authSessionInstanceMetadataPath = _path.default.join(authSessionInstancePath, `metadata.json`);
45
- if (!(await (0, _fsExtra.exists)(authSessionInstanceStoragePath))) {
46
- throw new _errors.CLIError(`AuthSession instance with ID ${authSessionId} not found. Make sure the ID is correct.`);
47
- }
48
- const authSessionInstanceJson = await (0, _fsExtra.readJSON)(authSessionInstanceStoragePath);
49
- const authSessionInstanceParseResult = _runApi.runApiStorageStateSchema.safeParse(authSessionInstanceJson);
50
- if (!authSessionInstanceParseResult.success) {
51
- throw new _errors.CLIError(`AuthSession instance with ID ${authSessionId} is not valid: ${(0, _formatZodError.formatZodError)(authSessionInstanceParseResult.error)}`);
52
- }
53
- const metadata = await (0, _fsExtra.readJSON)(authSessionInstanceMetadataPath);
54
- return {
55
- storageState: authSessionInstanceParseResult.data,
56
- metadata
57
- };
58
- } catch (error) {
59
- throw new _errors.CLIError(`Error loading AuthSession instance: ${error.message}`);
60
- }
61
- }
62
- async function storeAuthSessionInstance({
63
- state,
64
- id,
65
- input,
66
- proxy,
67
- metadata
68
- }) {
69
- try {
70
- const authSessionsDirectoryPath = _path.default.join(process.cwd(), _constants.AUTH_SESSIONS_INSTANCES_FOLDER_NAME);
71
- await (0, _fsExtra.ensureDir)(authSessionsDirectoryPath);
72
- const authSessionInstancePath = _path.default.join(authSessionsDirectoryPath, id);
73
- await (0, _fsExtra.ensureDir)(authSessionInstancePath);
74
- const authSessionInstanceStoragePath = _path.default.join(authSessionInstancePath, `auth-session.json`);
75
- await (0, _fsExtra.writeJSON)(authSessionInstanceStoragePath, state, {
76
- spaces: 2
77
- });
78
- const projectAuthConfig = (await (0, _intunedJson.loadIntunedJson)()).authSessions;
79
- if (!projectAuthConfig.enabled) {
80
- throw new _errors.CLIError(`AuthSessions are not enabled in ${await (0, _intunedJson.getIntunedSettingsFileName)()}. Make sure they are enabled.`);
81
- }
82
- const authSessionInstanceMetadataPath = _path.default.join(authSessionInstancePath, `metadata.json`);
83
- const authSessionMetadata = {
84
- createdAt: metadata?.createdAt ?? new Date().toISOString(),
85
- updatedAt: new Date().toISOString(),
86
- ...(projectAuthConfig.type === "API" && {
87
- authSessionInput: input || metadata?.authSessionInput || {}
88
- }),
89
- authSessionId: id,
90
- authSessionType: projectAuthConfig.type ?? metadata?.authSessionType ?? "API",
91
- ...(projectAuthConfig.type === "MANUAL" && {
92
- recorderStartUrl: projectAuthConfig.startUrl,
93
- recorderEndUrl: projectAuthConfig.finishUrl
94
- }),
95
- authSessionInput: input || metadata?.authSessionInput || {},
96
- authSessionProxy: proxy || metadata?.authSessionProxy
97
- };
98
- await (0, _fsExtra.writeJSON)(authSessionInstanceMetadataPath, authSessionMetadata, {
99
- spaces: 2
100
- });
101
- return authSessionInstancePath;
102
- } catch (error) {
103
- throw new _errors.CLIError(`Error storing AuthSession instance: ${error.message}`);
104
- }
105
- }
106
- function registerGetAuthSessionParameters(authSessionId) {
107
- async function getAuthSessionParameters() {
108
- if (!authSessionId) {
109
- throw new Error("getAuthSessionParameters cannot be called without using an AuthSession");
110
- }
111
- const {
112
- metadata
113
- } = await loadAuthSessionInstance(authSessionId);
114
- if (metadata?.authSessionType === "MANUAL") {
115
- throw new Error("AuthSession is recorder-based, it does not have parameters.");
116
- }
117
- return metadata?.authSessionInput ?? {};
118
- }
119
- (0, _asyncLocalStorage.getExecutionContext)().getAuthSessionParameters = getAuthSessionParameters;
120
- }
121
- async function getAuthSessionRecorderParameters() {
122
- const intunedJson = await (0, _intunedJson.loadIntunedJson)();
123
- if (!intunedJson.authSessions.enabled) {
124
- throw new _errors.CLIError(`AuthSessions are not enabled in ${await (0, _intunedJson.getIntunedSettingsFileName)()}. Make sure they are enabled.`);
125
- }
126
- if (intunedJson.authSessions.type !== "MANUAL") {
127
- throw new _errors.CLIError(`AuthSession type is not recorder-based in ${await (0, _intunedJson.getIntunedSettingsFileName)()}.
128
- Make sure the AuthSession type is set to 'MANUAL'
129
- For more details, check out https://docs.intunedhq.com/docs/05-references/intuned-json#configuration-properties.`);
130
- }
131
- const {
132
- startUrl,
133
- finishUrl
134
- } = intunedJson.authSessions;
135
- if (startUrl === undefined || finishUrl === undefined) {
136
- throw new _errors.CLIError(`AuthSession type is recorder-based but start_url or finish_url is not set in ${await (0, _intunedJson.getIntunedSettingsFileName)()}.
137
- Please set both values to use recorder-based AuthSessions.
138
- For more details, check out https://docs.intunedhq.com/docs/05-references/intuned-json#configuration-properties`);
139
- }
140
- return {
141
- startUrl,
142
- finishUrl
143
- };
144
- }
145
- async function getAuthNotEnabledErrorMessage() {
146
- return "AuthSessions are not enabled.\n" + `Enable AuthSessions in ${await (0, _intunedJson.getIntunedSettingsFileName)()} to use this feature.\n` + "See https://docs.intunedhq.com/docs/02-features/auth-sessions#1-enable-authsessions-for-your-project for more information.";
147
- }
@@ -1,8 +0,0 @@
1
- export declare function getAuthCredentials(options: {
2
- workspaceId?: string;
3
- apiKey?: string;
4
- }): Promise<{
5
- workspaceId: string;
6
- apiKey: string;
7
- }>;
8
- export declare function getBaseUrl(): string;
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getAuthCredentials = getAuthCredentials;
7
- exports.getBaseUrl = getBaseUrl;
8
- var _constants = require("../../../common/constants");
9
- var _errors = require("./errors");
10
- var _intunedJson = require("./intunedJson");
11
- var _prompts = require("./prompts");
12
- async function getAuthCredentials(options) {
13
- const settings = await (0, _intunedJson.loadIntunedJson)();
14
- let workspaceId = options.workspaceId || settings.workspaceId || process.env[_constants.WORKSPACE_ID_ENV_VAR_KEY];
15
- let apiKey = options.apiKey || process.env[_constants.API_KEY_ENV_VAR_KEY];
16
- if (!workspaceId) {
17
- workspaceId = await (0, _prompts.promptForWorkspaceId)();
18
- }
19
- if (!workspaceId) {
20
- throw new _errors.CLIError(`Workspace ID is required. Please provide it via command line options or ${await (0, _intunedJson.getIntunedSettingsFileName)()}.\n` + `Expected format: UUID (e.g., 123e4567-e89b-12d3-a456-426614174000)\n` + `Find your workspace ID at: https://app.intuned.io/settings/api-keys`);
21
- }
22
- if (!apiKey) {
23
- apiKey = await (0, _prompts.promptForApiKey)();
24
- }
25
- if (!apiKey) {
26
- throw new _errors.CLIError(`API key is required. Please provide it via command line options or ${_constants.API_KEY_ENV_VAR_KEY} environment variable.\n` + `Get your API key at: https://app.intuned.io/settings/api-keys`);
27
- }
28
- return {
29
- workspaceId,
30
- apiKey
31
- };
32
- }
33
- function getBaseUrl() {
34
- return new URL(process.env[_constants.API_BASE_URL_ENV_VAR_KEY] || process.env.INTUNED_API_DOMAIN || `https://app.intuned.io`).origin;
35
- }
@@ -1,15 +0,0 @@
1
- import type { BrowserContext } from "playwright";
2
- import type { runApiParametersSchema } from "../../../common/runApi";
3
- import { z } from "zod";
4
- declare let context: BrowserContext | null;
5
- export declare function _getContextForTest(): typeof context;
6
- type RunApiRunOptions = z.infer<typeof runApiParametersSchema>["runOptions"];
7
- export declare function getCLIRunOptions({ headless, proxy, keepBrowserOpen, cdpUrl, }: {
8
- headless: boolean;
9
- proxy?: string;
10
- keepBrowserOpen: boolean;
11
- cdpUrl?: string;
12
- }): Promise<RunApiRunOptions>;
13
- export declare function isCliBrowserLaunched(): boolean;
14
- export declare function closeCliBrowser(): Promise<void>;
15
- export {};
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports._getContextForTest = _getContextForTest;
7
- exports.closeCliBrowser = closeCliBrowser;
8
- exports.getCLIRunOptions = getCLIRunOptions;
9
- exports.isCliBrowserLaunched = isCliBrowserLaunched;
10
- var _launchBrowser = require("../../../common/launchBrowser");
11
- var _portfinder = require("portfinder");
12
- var _proxy = require("./proxy");
13
- let context = null;
14
- function _getContextForTest() {
15
- if (process.env.NODE_ENV !== "test") {
16
- throw new Error("_getContextForTest should only be used in tests");
17
- }
18
- return context;
19
- }
20
- async function getCLIRunOptions({
21
- headless,
22
- proxy,
23
- keepBrowserOpen,
24
- cdpUrl
25
- }) {
26
- if (context) {
27
- await closeCliBrowser();
28
- }
29
- if (cdpUrl) {
30
- return {
31
- environment: "cdp",
32
- cdpAddress: cdpUrl
33
- };
34
- }
35
- if (!keepBrowserOpen) {
36
- return {
37
- environment: "standalone",
38
- headless,
39
- proxy: proxy ? (0, _proxy.parseUrlProxy)(proxy) : undefined
40
- };
41
- }
42
- const port = await (0, _portfinder.getPort)({});
43
- ({
44
- context
45
- } = await (0, _launchBrowser.launchChromium)({
46
- headless,
47
- proxy: proxy ? (0, _proxy.parseUrlProxy)(proxy) : undefined,
48
- cdpPort: port
49
- }));
50
- return {
51
- environment: "cdp",
52
- cdpAddress: `http://localhost:${port}`
53
- };
54
- }
55
- function isCliBrowserLaunched() {
56
- return context !== null;
57
- }
58
- async function closeCliBrowser() {
59
- if (!context) return;
60
- try {
61
- await context.close();
62
- context = null;
63
- } catch (e) {}
64
- }
@@ -1,3 +0,0 @@
1
- export declare function withCLIContext<R>(fn: () => Promise<R>, options?: {
2
- authSessionId?: string;
3
- }): Promise<R>;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.withCLIContext = withCLIContext;
7
- var _nanoid = require("nanoid");
8
- var _asyncLocalStorage = require("../../../common/asyncLocalStorage");
9
- var _enums = require("../../../runtime/enums");
10
- var _auth = require("./auth");
11
- async function withCLIContext(fn, options) {
12
- const runId = (0, _nanoid.nanoid)();
13
- async function getAuthSessionParameters() {
14
- const id = options?.authSessionId;
15
- if (!id) {
16
- throw new Error("getAuthSessionParameters cannot be called without using an AuthSession");
17
- }
18
- const {
19
- metadata
20
- } = await (0, _auth.loadAuthSessionInstance)(id);
21
- if (metadata?.authSessionType === "MANUAL") {
22
- throw new Error("AuthSession is recorder-based, it does not have parameters.");
23
- }
24
- return metadata?.authSessionInput ?? {};
25
- }
26
- return await (0, _asyncLocalStorage.runWithContext)({
27
- runEnvironment: _enums.RunEnvironment.IDE,
28
- runId,
29
- extendedPayloads: [],
30
- timeoutInfo: {},
31
- getAuthSessionParameters
32
- }, fn);
33
- }
@@ -1,16 +0,0 @@
1
- import { RunAutomationError } from "../../../common/runApi/errors";
2
- export declare class CLIError extends Error {
3
- autoColor: boolean;
4
- constructor(message: string, options?: {
5
- autoColor?: boolean;
6
- });
7
- }
8
- export declare class AbortedCLIError extends CLIError {
9
- constructor();
10
- }
11
- export declare class CLIAssertionError extends CLIError {
12
- constructor(message: string, options?: {
13
- autoColor?: boolean;
14
- });
15
- }
16
- export declare function logAutomationError(error: RunAutomationError): void;
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CLIError = exports.CLIAssertionError = exports.AbortedCLIError = void 0;
7
- exports.logAutomationError = logAutomationError;
8
- var _errors = require("../../../common/runApi/errors");
9
- var _terminal = require("./terminal");
10
- class CLIError extends Error {
11
- constructor(message, options) {
12
- super(message);
13
- this.name = "CLIError";
14
- this.autoColor = options?.autoColor ?? true;
15
- }
16
- }
17
- exports.CLIError = CLIError;
18
- class AbortedCLIError extends CLIError {
19
- constructor() {
20
- super("Aborted");
21
- this.name = "AbortedCLIError";
22
- }
23
- }
24
- exports.AbortedCLIError = AbortedCLIError;
25
- class CLIAssertionError extends CLIError {
26
- constructor(message, options) {
27
- super(message, options);
28
- this.name = "CLIAssertionError";
29
- }
30
- }
31
- exports.CLIAssertionError = CLIAssertionError;
32
- function logAutomationError(error) {
33
- (0, _terminal.terminal)(`^r^+An error occurred while running the API:^:\n`);
34
- if (error instanceof _errors.AutomationError) {
35
- if (error.error.stack) {
36
- const stackLines = error.error.stack.split("\n").filter(line => !line.includes("@intuned/runtime") && !line.includes("node:"));
37
- (0, _terminal.terminal)(`^r${stackLines.join("\n")}^:\n`);
38
- } else {
39
- (0, _terminal.terminal)(`^r${error.error.message}^:\n`);
40
- }
41
- } else {
42
- (0, _terminal.terminal)(`^r${error.message}^:\n`);
43
- }
44
- }