@intuned/runtime-dev 1.3.18-interface.15 → 1.3.18-interface.18

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 (225) hide show
  1. package/dist/commands/api/run.d.ts +6 -0
  2. package/dist/commands/api/run.js +119 -0
  3. package/dist/commands/auth-sessions/load.d.ts +2 -0
  4. package/dist/commands/auth-sessions/load.js +35 -0
  5. package/dist/commands/auth-sessions/run-check.d.ts +2 -0
  6. package/dist/commands/auth-sessions/run-check.js +74 -0
  7. package/dist/commands/auth-sessions/run-create.d.ts +2 -0
  8. package/dist/commands/auth-sessions/run-create.js +78 -0
  9. package/dist/commands/browser/save-state.d.ts +2 -0
  10. package/dist/commands/browser/save-state.js +17 -0
  11. package/dist/commands/browser/start-browser.d.ts +2 -0
  12. package/dist/commands/browser/start-browser.js +14 -0
  13. package/dist/commands/build.d.ts +1 -0
  14. package/dist/commands/build.js +83 -0
  15. package/dist/commands/common/browserUtils.d.ts +14 -0
  16. package/dist/commands/common/browserUtils.js +57 -0
  17. package/dist/commands/common/getFirstLineNumber.d.ts +9 -0
  18. package/dist/commands/common/getFirstLineNumber.js +101 -0
  19. package/dist/commands/common/getFirstLineNumber.test.js +227 -0
  20. package/dist/commands/common/projectExclusions.d.ts +2 -0
  21. package/dist/commands/common/projectExclusions.js +8 -0
  22. package/dist/commands/common/sendMessageToClient.d.ts +1 -0
  23. package/dist/commands/common/sendMessageToClient.js +10 -0
  24. package/dist/commands/common/tsNodeImport.d.ts +2 -0
  25. package/dist/commands/common/tsNodeImport.js +42 -0
  26. package/dist/commands/common/utils/fileUtils.d.ts +6 -0
  27. package/dist/commands/common/utils/fileUtils.js +32 -0
  28. package/dist/commands/common/utils/interfaceClient.d.ts +31 -0
  29. package/dist/commands/common/utils/interfaceClient.js +98 -0
  30. package/dist/commands/common/utils/settings.d.ts +2 -0
  31. package/dist/commands/common/utils/settings.js +31 -0
  32. package/dist/commands/common/utils/template.d.ts +2 -0
  33. package/dist/commands/common/utils/template.js +30 -0
  34. package/dist/commands/get-headless-user-agent.d.ts +1 -0
  35. package/dist/commands/get-headless-user-agent.js +18 -0
  36. package/dist/commands/interface/pingPong.d.ts +2 -0
  37. package/dist/commands/interface/pingPong.js +11 -0
  38. package/dist/commands/interface/run.d.ts +1 -0
  39. package/dist/commands/interface/run.js +189 -0
  40. package/dist/commands/interface/runApi.d.ts +1 -0
  41. package/dist/commands/interface/runApi.js +102 -0
  42. package/dist/commands/intuned-cli/commands/attempt.command.d.ts +1 -0
  43. package/dist/commands/intuned-cli/commands/attempt.command.js +8 -0
  44. package/dist/commands/intuned-cli/commands/attempt_api.command.d.ts +1 -0
  45. package/dist/commands/intuned-cli/commands/attempt_api.command.js +30 -0
  46. package/dist/commands/intuned-cli/commands/attempt_authsession.command.d.ts +1 -0
  47. package/dist/commands/intuned-cli/commands/attempt_authsession.command.js +8 -0
  48. package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.d.ts +1 -0
  49. package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.js +19 -0
  50. package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.d.ts +1 -0
  51. package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.js +24 -0
  52. package/dist/commands/intuned-cli/commands/authsession.command.d.ts +1 -0
  53. package/dist/commands/intuned-cli/commands/authsession.command.js +8 -0
  54. package/dist/commands/intuned-cli/commands/authsession_record.command.d.ts +1 -0
  55. package/dist/commands/intuned-cli/commands/authsession_record.command.js +32 -0
  56. package/dist/commands/intuned-cli/commands/authsession_scaffold.command.d.ts +1 -0
  57. package/dist/commands/intuned-cli/commands/authsession_scaffold.command.js +16 -0
  58. package/dist/commands/intuned-cli/commands/build.command.d.ts +1 -0
  59. package/dist/commands/intuned-cli/commands/build.command.js +12 -0
  60. package/dist/commands/intuned-cli/commands/command.d.ts +2 -0
  61. package/dist/commands/intuned-cli/commands/command.js +9 -0
  62. package/dist/commands/intuned-cli/commands/deploy.command.d.ts +1 -0
  63. package/dist/commands/intuned-cli/commands/deploy.command.js +42 -0
  64. package/dist/commands/intuned-cli/commands/index.d.ts +18 -0
  65. package/dist/commands/intuned-cli/commands/index.js +203 -0
  66. package/dist/commands/intuned-cli/commands/provision.command.d.ts +13 -0
  67. package/dist/commands/intuned-cli/commands/provision.command.js +50 -0
  68. package/dist/commands/intuned-cli/commands/run.command.d.ts +1 -0
  69. package/dist/commands/intuned-cli/commands/run.command.js +8 -0
  70. package/dist/commands/intuned-cli/commands/run_api.command.d.ts +1 -0
  71. package/dist/commands/intuned-cli/commands/run_api.command.js +46 -0
  72. package/dist/commands/intuned-cli/commands/run_authsession.command.d.ts +35 -0
  73. package/dist/commands/intuned-cli/commands/run_authsession.command.js +17 -0
  74. package/dist/commands/intuned-cli/commands/run_authsession_create.command.d.ts +1 -0
  75. package/dist/commands/intuned-cli/commands/run_authsession_create.command.js +35 -0
  76. package/dist/commands/intuned-cli/commands/run_authsession_update.command.d.ts +1 -0
  77. package/dist/commands/intuned-cli/commands/run_authsession_update.command.js +35 -0
  78. package/dist/commands/intuned-cli/commands/run_authsession_validate.command.d.ts +1 -0
  79. package/dist/commands/intuned-cli/commands/run_authsession_validate.command.js +33 -0
  80. package/dist/commands/intuned-cli/commands/types.d.ts +39 -0
  81. package/dist/commands/intuned-cli/commands/types.js +33 -0
  82. package/dist/commands/intuned-cli/constants/index.d.ts +17 -0
  83. package/dist/commands/intuned-cli/constants/index.js +25 -0
  84. package/dist/commands/intuned-cli/controller/__test__/api.test.js +399 -0
  85. package/dist/commands/intuned-cli/controller/__test__/authSession.test.js +1061 -0
  86. package/dist/commands/intuned-cli/controller/api.d.ts +42 -0
  87. package/dist/commands/intuned-cli/controller/api.js +194 -0
  88. package/dist/commands/intuned-cli/controller/authSession.d.ts +209 -0
  89. package/dist/commands/intuned-cli/controller/authSession.js +425 -0
  90. package/dist/commands/intuned-cli/controller/build.d.ts +1 -0
  91. package/dist/commands/intuned-cli/controller/build.js +35 -0
  92. package/dist/commands/intuned-cli/controller/deploy.d.ts +5 -0
  93. package/dist/commands/intuned-cli/controller/deploy.js +317 -0
  94. package/dist/commands/intuned-cli/controller/index.d.ts +1 -0
  95. package/dist/commands/intuned-cli/controller/index.js +45 -0
  96. package/dist/commands/intuned-cli/controller/provision.d.ts +21 -0
  97. package/dist/commands/intuned-cli/controller/provision.js +299 -0
  98. package/dist/commands/intuned-cli/controller/scaffold.d.ts +1 -0
  99. package/dist/commands/intuned-cli/controller/scaffold.js +77 -0
  100. package/dist/commands/intuned-cli/helpers/__test__/browser.test.js +152 -0
  101. package/dist/commands/intuned-cli/helpers/__test__/tracing.test.js +41 -0
  102. package/dist/commands/intuned-cli/helpers/api.d.ts +3 -0
  103. package/dist/commands/intuned-cli/helpers/api.js +16 -0
  104. package/dist/commands/intuned-cli/helpers/auth.d.ts +46 -0
  105. package/dist/commands/intuned-cli/helpers/auth.js +147 -0
  106. package/dist/commands/intuned-cli/helpers/backend.d.ts +8 -0
  107. package/dist/commands/intuned-cli/helpers/backend.js +35 -0
  108. package/dist/commands/intuned-cli/helpers/browser.d.ts +14 -0
  109. package/dist/commands/intuned-cli/helpers/browser.js +93 -0
  110. package/dist/commands/intuned-cli/helpers/context.d.ts +3 -0
  111. package/dist/commands/intuned-cli/helpers/context.js +33 -0
  112. package/dist/commands/intuned-cli/helpers/errors.d.ts +16 -0
  113. package/dist/commands/intuned-cli/helpers/errors.js +44 -0
  114. package/dist/commands/intuned-cli/helpers/index.d.ts +12 -0
  115. package/dist/commands/intuned-cli/helpers/index.js +137 -0
  116. package/dist/commands/intuned-cli/helpers/intunedJson.d.ts +39 -0
  117. package/dist/commands/intuned-cli/helpers/intunedJson.js +20 -0
  118. package/dist/commands/intuned-cli/helpers/prompts.d.ts +3 -0
  119. package/dist/commands/intuned-cli/helpers/prompts.js +71 -0
  120. package/dist/commands/intuned-cli/helpers/proxy.d.ts +5 -0
  121. package/dist/commands/intuned-cli/helpers/proxy.js +23 -0
  122. package/dist/commands/intuned-cli/helpers/terminal.d.ts +5 -0
  123. package/dist/commands/intuned-cli/helpers/terminal.js +13 -0
  124. package/dist/commands/intuned-cli/helpers/timeout.d.ts +1 -0
  125. package/dist/commands/intuned-cli/helpers/timeout.js +23 -0
  126. package/dist/commands/intuned-cli/helpers/traces.d.ts +2 -0
  127. package/dist/commands/intuned-cli/helpers/traces.js +32 -0
  128. package/dist/commands/intuned-cli/helpers/validation.d.ts +2 -0
  129. package/dist/commands/intuned-cli/helpers/validation.js +14 -0
  130. package/dist/commands/intuned-cli/helpers/wrapper.d.ts +2 -0
  131. package/dist/commands/intuned-cli/helpers/wrapper.js +76 -0
  132. package/dist/commands/intuned-cli/index.d.ts +1 -0
  133. package/dist/commands/intuned-cli/index.js +16 -0
  134. package/dist/commands/intuned-cli/main.d.ts +1 -0
  135. package/dist/commands/intuned-cli/main.js +35 -0
  136. package/dist/commands/intuned-cli/types.d.ts +70 -0
  137. package/dist/commands/intuned-cli/types.js +22 -0
  138. package/dist/commands/ts-check.d.ts +2 -0
  139. package/dist/commands/ts-check.js +55 -0
  140. package/dist/common/Logger/Logger/index.d.ts +12 -0
  141. package/dist/common/Logger/Logger/index.js +60 -0
  142. package/dist/common/Logger/Logger/types.d.ts +8 -0
  143. package/dist/common/Logger/Logger/types.js +5 -0
  144. package/dist/common/Logger/index.d.ts +12 -0
  145. package/dist/common/Logger/index.js +60 -0
  146. package/dist/common/Logger/types.d.ts +8 -0
  147. package/dist/common/Logger/types.js +5 -0
  148. package/dist/common/assets/browser_scripts.js +2580 -0
  149. package/dist/common/asyncLocalStorage/index.d.ts +16 -0
  150. package/dist/common/asyncLocalStorage/index.js +17 -0
  151. package/dist/common/backendFunctions/getAuthSessionParameters.d.ts +1 -0
  152. package/dist/common/backendFunctions/getAuthSessionParameters.js +38 -0
  153. package/dist/common/binStartupScript.d.ts +1 -0
  154. package/dist/common/binStartupScript.js +36 -0
  155. package/dist/common/browserTabs.d.ts +72 -0
  156. package/dist/common/browserTabs.js +74 -0
  157. package/dist/common/cleanEnvironmentVariables.d.ts +1 -0
  158. package/dist/common/cleanEnvironmentVariables.js +16 -0
  159. package/dist/common/constants.d.ts +11 -0
  160. package/dist/common/constants.js +17 -0
  161. package/dist/common/contextStorageStateHelpers.d.ts +22 -0
  162. package/dist/common/contextStorageStateHelpers.js +84 -0
  163. package/dist/common/extension/extensionsHelpers.d.ts +11 -0
  164. package/dist/common/extension/extensionsHelpers.js +147 -0
  165. package/dist/common/extension/intunedExtensionServer.d.ts +24 -0
  166. package/dist/common/extension/intunedExtensionServer.js +178 -0
  167. package/dist/common/extension/types.d.ts +219 -0
  168. package/dist/common/extension/types.js +51 -0
  169. package/dist/common/formatZodError.d.ts +2 -0
  170. package/dist/common/formatZodError.js +18 -0
  171. package/dist/common/intunedJson.d.ts +229 -0
  172. package/dist/common/intunedJson.js +132 -0
  173. package/dist/common/jwtTokenManager.d.ts +17 -0
  174. package/dist/common/jwtTokenManager.js +113 -0
  175. package/dist/common/launchBrowser.d.ts +34 -0
  176. package/dist/common/launchBrowser.js +247 -0
  177. package/dist/common/playwrightContext.d.ts +29 -0
  178. package/dist/common/playwrightContext.js +148 -0
  179. package/dist/common/runApi/importUsingImportFunction.d.ts +7 -0
  180. package/dist/common/runApi/importUsingImportFunction.js +46 -0
  181. package/dist/common/runApi/index.d.ts +8 -0
  182. package/dist/common/runApi/index.js +178 -0
  183. package/dist/common/settingsSchema.d.ts +537 -0
  184. package/dist/common/settingsSchema.js +57 -0
  185. package/dist/common/setupContextHook.d.ts +16 -0
  186. package/dist/common/setupContextHook.js +22 -0
  187. package/dist/common/telemetry.d.ts +3 -0
  188. package/dist/common/telemetry.js +31 -0
  189. package/dist/index.d.ts +4 -0
  190. package/dist/index.js +117 -0
  191. package/dist/runtime/RunError.d.ts +5 -0
  192. package/dist/runtime/RunError.js +19 -0
  193. package/dist/runtime/attemptStore.d.ts +2 -0
  194. package/dist/runtime/attemptStore.js +23 -0
  195. package/dist/runtime/captcha.d.ts +15 -0
  196. package/dist/runtime/captcha.js +191 -0
  197. package/dist/runtime/captcha.test.js +821 -0
  198. package/dist/runtime/downloadDirectory.d.ts +1 -0
  199. package/dist/runtime/downloadDirectory.js +19 -0
  200. package/dist/runtime/enums.d.js +5 -0
  201. package/dist/runtime/enums.d.ts +11 -0
  202. package/dist/runtime/enums.js +18 -0
  203. package/dist/runtime/executionHelpers.test.js +52 -0
  204. package/dist/runtime/export.d.js +5 -0
  205. package/dist/runtime/export.d.ts +284 -0
  206. package/dist/runtime/extendPayload.d.ts +2 -0
  207. package/dist/runtime/extendPayload.js +21 -0
  208. package/dist/runtime/extendTimeout.d.ts +1 -0
  209. package/dist/runtime/extendTimeout.js +23 -0
  210. package/dist/runtime/getAiGatewayConfig.d.ts +10 -0
  211. package/dist/runtime/getAiGatewayConfig.js +16 -0
  212. package/dist/runtime/getAuthSessionParameters.d.ts +1 -0
  213. package/dist/runtime/getAuthSessionParameters.js +20 -0
  214. package/dist/runtime/index.d.ts +10 -0
  215. package/dist/runtime/index.js +111 -0
  216. package/dist/runtime/persistentStore.d.ts +2 -0
  217. package/dist/runtime/persistentStore.js +37 -0
  218. package/dist/runtime/persistentStore.test.js +101 -0
  219. package/dist/runtime/runInfo.d.ts +2 -0
  220. package/dist/runtime/runInfo.js +21 -0
  221. package/dist/vendor/runtime-interface.d.ts +1 -0
  222. package/dist/vendor/runtime-interface.js +479 -0
  223. package/package.json +2 -2
  224. package/tsup.config.ts +1 -0
  225. package/WebTemplate.zip +0 -0
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ var _api = require("../api");
5
+ var _authSession = require("../authSession");
6
+ var _helpers = require("../../helpers");
7
+ var _neverthrow = require("neverthrow");
8
+ var _runApi = require("../../../../common/runApi");
9
+ var _runtimeInterface = require("../../../../vendor/runtime-interface");
10
+ var _fsExtra = require("fs-extra");
11
+ var _browser = require("../../helpers/browser");
12
+ function getTerminal() {
13
+ return new Proxy(() => ({}), {
14
+ get: () => getTerminal(),
15
+ apply: () => ({})
16
+ });
17
+ }
18
+ _vitest.vi.mock("fs-extra", () => ({
19
+ ensureDir: _vitest.vi.fn(),
20
+ writeJSON: _vitest.vi.fn(),
21
+ exists: _vitest.vi.fn().mockResolvedValue(true)
22
+ }));
23
+ _vitest.vi.mock("../authSession", async importOriginal => {
24
+ const original = await importOriginal();
25
+ return {
26
+ ...original,
27
+ executeRunValidateAuthSessionCLI: _vitest.vi.fn()
28
+ };
29
+ });
30
+ _vitest.vi.mock("../../../../common/runApi", async importOriginal => {
31
+ const original = await importOriginal();
32
+ return {
33
+ ...original,
34
+ runApi: _vitest.vi.fn().mockImplementation(() => (0, _neverthrow.ok)({}))
35
+ };
36
+ });
37
+ _vitest.vi.mock("../../helpers/terminal", () => ({
38
+ terminal: getTerminal()
39
+ }));
40
+ _vitest.vi.mock("../../helpers/proxy", async () => {
41
+ return {
42
+ parseUrlProxy: _vitest.vi.fn()
43
+ };
44
+ });
45
+ _vitest.vi.mock("../../helpers/browser", async importOriginal => {
46
+ const original = await importOriginal();
47
+ return {
48
+ getCLIRunOptions: _vitest.vi.fn(({
49
+ keepBrowserOpen: _,
50
+ ...rest
51
+ }) => original.getCLIRunOptions({
52
+ keepBrowserOpen: false,
53
+ ...rest
54
+ }))
55
+ };
56
+ });
57
+ _vitest.vi.mock("../../helpers", async importOriginal => {
58
+ const original = await importOriginal();
59
+ return {
60
+ ...original,
61
+ terminal: getTerminal(),
62
+ assertApiFileExists: _vitest.vi.fn(),
63
+ withCLIContext: _vitest.vi.fn(fn => fn()),
64
+ withTimeout: _vitest.vi.fn(fn => fn()),
65
+ withCLITrace: _vitest.vi.fn(original.withCLITrace),
66
+ registerGetAuthSessionParameters: _vitest.vi.fn()
67
+ };
68
+ });
69
+ (0, _vitest.describe)("API controller", () => {
70
+ (0, _vitest.beforeEach)(() => {
71
+ _vitest.vi.clearAllMocks();
72
+ });
73
+ (0, _vitest.describe)("attemptApi", () => {
74
+ (0, _vitest.it)("calls timeout middleware with timeout", async () => {
75
+ await (0, _api._attemptApi)({
76
+ apiName: "testApi",
77
+ inputData: {},
78
+ headless: false,
79
+ timeout: 6000,
80
+ keepBrowserOpen: false
81
+ });
82
+ (0, _vitest.expect)(_helpers.withTimeout).toHaveBeenCalledWith(_vitest.expect.any(Function), 6000);
83
+ });
84
+ (0, _vitest.it)("uses tracing wrapper with trace id", async () => {
85
+ await (0, _api._attemptApi)({
86
+ apiName: "testApi",
87
+ inputData: {},
88
+ headless: false,
89
+ timeout: 6000,
90
+ keepBrowserOpen: false
91
+ });
92
+ (0, _vitest.expect)(_helpers.withCLITrace).toHaveBeenCalledWith(_vitest.expect.any(Function), undefined);
93
+ _vitest.vi.mocked(_helpers.withCLITrace).mockClear();
94
+ _vitest.vi.mocked(_runApi.runApi).mockClear();
95
+ await (0, _api._attemptApi)({
96
+ apiName: "testApi",
97
+ inputData: {},
98
+ headless: false,
99
+ timeout: 6000,
100
+ keepBrowserOpen: false,
101
+ traceId: "trace-id"
102
+ });
103
+ (0, _vitest.expect)(_helpers.withCLITrace).toHaveBeenCalledWith(_vitest.expect.any(Function), "trace-id");
104
+ });
105
+ (0, _vitest.it)("uses cli browser helper", async () => {
106
+ await (0, _api._attemptApi)({
107
+ apiName: "testApi",
108
+ inputData: {},
109
+ headless: false,
110
+ timeout: 6000,
111
+ keepBrowserOpen: false
112
+ });
113
+ (0, _vitest.expect)(_browser.getCLIRunOptions).toHaveBeenCalledWith(_vitest.expect.objectContaining({
114
+ headless: false,
115
+ keepBrowserOpen: false
116
+ }));
117
+ _vitest.vi.mocked(_helpers.withCLITrace).mockClear();
118
+ _vitest.vi.mocked(_runApi.runApi).mockClear();
119
+ await (0, _api._attemptApi)({
120
+ apiName: "testApi",
121
+ inputData: {},
122
+ headless: true,
123
+ timeout: 6000,
124
+ keepBrowserOpen: true
125
+ });
126
+ (0, _vitest.expect)(_browser.getCLIRunOptions).toHaveBeenCalledWith(_vitest.expect.objectContaining({
127
+ headless: true,
128
+ keepBrowserOpen: true
129
+ }));
130
+ });
131
+ (0, _vitest.it)("calls runApi with correct parameters and parses proxy", async () => {
132
+ _vitest.vi.mocked(_helpers.parseUrlProxy).mockReturnValueOnce("parsed-proxy");
133
+ await (0, _api._attemptApi)({
134
+ apiName: "testApi",
135
+ inputData: "inputData",
136
+ headless: "headless",
137
+ auth: "auth",
138
+ proxy: "proxy",
139
+ timeout: 999999999,
140
+ keepBrowserOpen: false
141
+ });
142
+ (0, _vitest.expect)(_helpers.parseUrlProxy).toHaveBeenCalledWith("proxy");
143
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledWith(_vitest.expect.objectContaining({
144
+ automationFunction: {
145
+ name: "api/testApi",
146
+ params: "inputData"
147
+ },
148
+ runOptions: {
149
+ headless: "headless",
150
+ environment: "standalone",
151
+ proxy: "parsed-proxy"
152
+ },
153
+ auth: {
154
+ session: {
155
+ type: "state",
156
+ state: "auth"
157
+ }
158
+ },
159
+ importFunction: _vitest.expect.anything()
160
+ }));
161
+ });
162
+ (0, _vitest.it)("returns the result and extended payloads if runApi succeeds", async () => {
163
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValueOnce((0, _neverthrow.ok)({
164
+ result: "result",
165
+ extendedPayloads: "extendedPayloads"
166
+ }));
167
+ const result = await (0, _api._attemptApi)({
168
+ apiName: "testApi",
169
+ inputData: "inputData",
170
+ headless: "headless",
171
+ auth: "auth",
172
+ timeout: 999999999,
173
+ keepBrowserOpen: false
174
+ });
175
+ (0, _vitest.expect)(result).toEqual({
176
+ result: "result",
177
+ payloadToAppend: "extendedPayloads"
178
+ });
179
+ });
180
+ (0, _vitest.it)("throws the error runApi fails with an error", async () => {
181
+ const error = new Error("runApi failed");
182
+ _vitest.vi.mocked(_runApi.runApi).mockRejectedValueOnce(error);
183
+ await (0, _vitest.expect)((0, _api._attemptApi)({
184
+ apiName: "testApi",
185
+ inputData: "inputData",
186
+ headless: "headless",
187
+ auth: "auth",
188
+ timeout: 999999999,
189
+ keepBrowserOpen: false
190
+ })).rejects.toThrow(error);
191
+ });
192
+ });
193
+ (0, _vitest.describe)("executeRunApiCLI", () => {
194
+ (0, _vitest.it)("enables tracing correctly", async () => {
195
+ await (0, _api.executeRunApiCLI)({
196
+ apiName: "testApi",
197
+ inputData: {},
198
+ retries: 1,
199
+ trace: false
200
+ });
201
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledWith(_vitest.expect.objectContaining({
202
+ tracing: {
203
+ enabled: false
204
+ }
205
+ }));
206
+ _vitest.vi.mocked(_runApi.runApi).mockClear();
207
+ await (0, _api.executeRunApiCLI)({
208
+ apiName: "testApi",
209
+ inputData: {},
210
+ retries: 1,
211
+ trace: true
212
+ });
213
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledWith(_vitest.expect.objectContaining({
214
+ tracing: _vitest.expect.objectContaining({
215
+ enabled: true
216
+ })
217
+ }));
218
+ });
219
+ (0, _vitest.it)("calls attemptApi once if success", async () => {
220
+ await (0, _api.executeRunApiCLI)({
221
+ apiName: "testApi",
222
+ inputData: {},
223
+ retries: 3
224
+ });
225
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledTimes(1);
226
+ });
227
+ (0, _vitest.it)("stops retrying after max retries", async () => {
228
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValue((0, _neverthrow.err)(new _runtimeInterface.AutomationError("runApi failed")));
229
+ await (0, _vitest.expect)((0, _api.executeRunApiCLI)({
230
+ apiName: "testApi",
231
+ inputData: {},
232
+ retries: 10
233
+ })).rejects.toThrow(_helpers.CLIError);
234
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledTimes(10);
235
+ });
236
+ (0, _vitest.it)("stops retrying on non-automation errors", async () => {
237
+ _vitest.vi.mocked(_runApi.runApi).mockRejectedValue(new Error("runApi failed"));
238
+ await (0, _vitest.expect)((0, _api.executeRunApiCLI)({
239
+ apiName: "testApi",
240
+ inputData: {},
241
+ retries: 3
242
+ })).rejects.toThrow("runApi failed");
243
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledTimes(1);
244
+ });
245
+ (0, _vitest.it)("stops retrying on success", async () => {
246
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValueOnce((0, _neverthrow.err)(new _runtimeInterface.AutomationError("runApi failed"))).mockResolvedValue((0, _neverthrow.ok)({
247
+ result: "success"
248
+ }));
249
+ await (0, _api.executeRunApiCLI)({
250
+ apiName: "testApi",
251
+ inputData: {},
252
+ retries: 10
253
+ });
254
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledTimes(2);
255
+ });
256
+ (0, _vitest.it)("validates AuthSession before each attempt if provided", async () => {
257
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValueOnce((0, _neverthrow.err)(new _runtimeInterface.AutomationError("runApi failed"))).mockResolvedValue((0, _neverthrow.ok)({
258
+ result: "success"
259
+ }));
260
+ await (0, _api.executeRunApiCLI)({
261
+ apiName: "testApi",
262
+ inputData: {},
263
+ authSession: {
264
+ id: "authSessionId",
265
+ autoRecreate: false,
266
+ checkRetries: 1,
267
+ createRetries: 2
268
+ },
269
+ retries: 10
270
+ });
271
+ (0, _vitest.expect)(_authSession.executeRunValidateAuthSessionCLI).toBeCalledTimes(2);
272
+ (0, _vitest.expect)(_authSession.executeRunValidateAuthSessionCLI).toHaveBeenCalledWith(_vitest.expect.objectContaining({
273
+ id: "authSessionId",
274
+ autoRecreate: false,
275
+ checkRetries: 1,
276
+ createRetries: 2
277
+ }));
278
+ });
279
+ (0, _vitest.it)("doesn't validate AuthSession if not provided", async () => {
280
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValue((0, _neverthrow.ok)({
281
+ result: "success"
282
+ }));
283
+ await (0, _api.executeRunApiCLI)({
284
+ apiName: "testApi",
285
+ inputData: {},
286
+ retries: 1
287
+ });
288
+ (0, _vitest.expect)(_authSession.executeRunValidateAuthSessionCLI).not.toHaveBeenCalled();
289
+ });
290
+ (0, _vitest.it)("fails if AuthSession is provided but not valid", async () => {
291
+ _vitest.vi.mocked(_authSession.executeRunValidateAuthSessionCLI).mockRejectedValue(new _helpers.CLIError("AuthSession validation failed"));
292
+ await (0, _vitest.expect)((0, _api.executeRunApiCLI)({
293
+ apiName: "testApi",
294
+ inputData: {},
295
+ authSession: {
296
+ id: "authSessionId",
297
+ autoRecreate: false,
298
+ checkRetries: 1,
299
+ createRetries: 2
300
+ },
301
+ retries: 10
302
+ })).rejects.toThrow("AuthSession validation failed");
303
+ (0, _vitest.expect)(_authSession.executeRunValidateAuthSessionCLI).toHaveBeenCalledWith(_vitest.expect.objectContaining({
304
+ id: "authSessionId",
305
+ autoRecreate: false,
306
+ checkRetries: 1,
307
+ createRetries: 2
308
+ }));
309
+ (0, _vitest.expect)(_runApi.runApi).not.toHaveBeenCalled();
310
+ });
311
+ (0, _vitest.it)("writes result to file if outputFile is provided", async () => {
312
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValue((0, _neverthrow.ok)({
313
+ result: "result",
314
+ extendedPayloads: "extendedPayloads"
315
+ }));
316
+ await (0, _api.executeRunApiCLI)({
317
+ apiName: "testApi",
318
+ inputData: {},
319
+ outputFile: "output.json",
320
+ retries: 1
321
+ });
322
+ (0, _vitest.expect)(_fsExtra.writeJSON).toHaveBeenCalledWith("output.json", {
323
+ result: "result",
324
+ extendedPayloads: "extendedPayloads"
325
+ }, _vitest.expect.anything());
326
+ });
327
+ (0, _vitest.it)("asserts API file exists", async () => {
328
+ await (0, _api.executeRunApiCLI)({
329
+ apiName: "testApi",
330
+ inputData: {},
331
+ retries: 1
332
+ });
333
+ (0, _vitest.expect)(_helpers.assertApiFileExists).toHaveBeenCalledWith("api", "testApi");
334
+ });
335
+ });
336
+ (0, _vitest.describe)("executeAttemptApiCLI", () => {
337
+ (0, _vitest.it)("enables tracing correctly", async () => {
338
+ await (0, _api.executeAttemptApiCLI)({
339
+ apiName: "testApi",
340
+ inputData: {},
341
+ trace: false
342
+ });
343
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledWith(_vitest.expect.objectContaining({
344
+ tracing: {
345
+ enabled: false
346
+ }
347
+ }));
348
+ _vitest.vi.mocked(_runApi.runApi).mockClear();
349
+ await (0, _api.executeAttemptApiCLI)({
350
+ apiName: "testApi",
351
+ inputData: {},
352
+ trace: true
353
+ });
354
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledWith(_vitest.expect.objectContaining({
355
+ tracing: _vitest.expect.objectContaining({
356
+ enabled: true
357
+ })
358
+ }));
359
+ });
360
+ (0, _vitest.it)("calls attemptApi once", async () => {
361
+ await (0, _api.executeAttemptApiCLI)({
362
+ apiName: "testApi",
363
+ inputData: {},
364
+ retries: 3
365
+ });
366
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledTimes(1);
367
+ _vitest.vi.mocked(_runApi.runApi).mockReset();
368
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValue((0, _neverthrow.err)(new _runtimeInterface.AutomationError("runApi failed")));
369
+ await (0, _vitest.expect)((0, _api.executeAttemptApiCLI)({
370
+ apiName: "testApi",
371
+ inputData: {}
372
+ })).rejects.toThrow(_runtimeInterface.AutomationError);
373
+ (0, _vitest.expect)(_runApi.runApi).toHaveBeenCalledTimes(1);
374
+ });
375
+ (0, _vitest.it)("writes result to file if outputFile is provided", async () => {
376
+ _vitest.vi.mocked(_runApi.runApi).mockResolvedValue((0, _neverthrow.ok)({
377
+ result: "result",
378
+ extendedPayloads: "extendedPayloads"
379
+ }));
380
+ await (0, _api.executeAttemptApiCLI)({
381
+ apiName: "testApi",
382
+ inputData: {},
383
+ outputFile: "output.json"
384
+ });
385
+ (0, _vitest.expect)(_fsExtra.writeJSON).toHaveBeenCalledWith("output.json", {
386
+ result: "result",
387
+ extendedPayloads: "extendedPayloads"
388
+ }, _vitest.expect.anything());
389
+ });
390
+ (0, _vitest.it)("asserts API file exists", async () => {
391
+ await (0, _api.executeRunApiCLI)({
392
+ apiName: "testApi",
393
+ inputData: {},
394
+ retries: 1
395
+ });
396
+ (0, _vitest.expect)(_helpers.assertApiFileExists).toHaveBeenCalledWith("api", "testApi");
397
+ });
398
+ });
399
+ });