@intuned/runtime-dev 1.3.18-interface.2 → 1.3.18-interface.4

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