@intuned/runtime 1.3.16 → 1.3.18-interface.6

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 (295) hide show
  1. package/bin/intuned +0 -0
  2. package/bin/intuned-interface +7 -0
  3. package/dist/chunk-6ZRJOUQS.mjs +16 -0
  4. package/dist/chunk-6ZRJOUQS.mjs.map +1 -0
  5. package/dist/chunk-7YL2JUTE.mjs +146 -0
  6. package/dist/chunk-7YL2JUTE.mjs.map +1 -0
  7. package/dist/chunk-B3T6RXPC.mjs +794 -0
  8. package/dist/chunk-B3T6RXPC.mjs.map +1 -0
  9. package/dist/chunk-FGV5T6SI.mjs +27 -0
  10. package/dist/chunk-FGV5T6SI.mjs.map +1 -0
  11. package/dist/chunk-G4PO5RIV.mjs +85 -0
  12. package/dist/chunk-G4PO5RIV.mjs.map +1 -0
  13. package/dist/chunk-LZOMFHX3.mjs +38 -0
  14. package/dist/chunk-LZOMFHX3.mjs.map +1 -0
  15. package/dist/{common/formatZodError.js → chunk-NDMVGENG.mjs} +9 -9
  16. package/dist/chunk-NDMVGENG.mjs.map +1 -0
  17. package/dist/chunk-W4UX6G4X.mjs +17 -0
  18. package/dist/chunk-W4UX6G4X.mjs.map +1 -0
  19. package/dist/chunk-XC75QGFG.mjs +1106 -0
  20. package/dist/chunk-XC75QGFG.mjs.map +1 -0
  21. package/dist/chunk-XOAZ2MGA.mjs +59 -0
  22. package/dist/chunk-XOAZ2MGA.mjs.map +1 -0
  23. package/dist/commands/interface/run.d.mts +3 -0
  24. package/dist/commands/interface/run.d.ts +3 -1
  25. package/dist/commands/interface/run.js +2060 -178
  26. package/dist/commands/interface/run.js.map +1 -0
  27. package/dist/commands/interface/run.mjs +255 -0
  28. package/dist/commands/interface/run.mjs.map +1 -0
  29. package/dist/common/asyncLocalStorage/index.d.mts +17 -0
  30. package/dist/common/asyncLocalStorage/index.d.ts +9 -8
  31. package/dist/common/asyncLocalStorage/index.js +34 -9
  32. package/dist/common/asyncLocalStorage/index.js.map +1 -0
  33. package/dist/common/asyncLocalStorage/index.mjs +12 -0
  34. package/dist/common/asyncLocalStorage/index.mjs.map +1 -0
  35. package/dist/common/binStartupScript.d.mts +2 -0
  36. package/dist/common/binStartupScript.d.ts +2 -1
  37. package/dist/common/binStartupScript.js +127 -11
  38. package/dist/common/binStartupScript.js.map +1 -0
  39. package/dist/common/binStartupScript.mjs +135 -0
  40. package/dist/common/binStartupScript.mjs.map +1 -0
  41. package/dist/common/cleanEnvironmentVariables.d.mts +3 -0
  42. package/dist/common/cleanEnvironmentVariables.d.ts +3 -1
  43. package/dist/common/cleanEnvironmentVariables.js +30 -7
  44. package/dist/common/cleanEnvironmentVariables.js.map +1 -0
  45. package/dist/common/cleanEnvironmentVariables.mjs +8 -0
  46. package/dist/common/cleanEnvironmentVariables.mjs.map +1 -0
  47. package/dist/common/constants.d.mts +13 -0
  48. package/dist/common/constants.d.ts +13 -10
  49. package/dist/common/constants.js +58 -14
  50. package/dist/common/constants.js.map +1 -0
  51. package/dist/common/constants.mjs +28 -0
  52. package/dist/common/constants.mjs.map +1 -0
  53. package/dist/common/contextStorageStateHelpers.d.mts +24 -0
  54. package/dist/common/contextStorageStateHelpers.d.ts +8 -5
  55. package/dist/common/contextStorageStateHelpers.js +51 -23
  56. package/dist/common/contextStorageStateHelpers.js.map +1 -0
  57. package/dist/common/contextStorageStateHelpers.mjs +10 -0
  58. package/dist/common/contextStorageStateHelpers.mjs.map +1 -0
  59. package/dist/common/jwtTokenManager.d.mts +19 -0
  60. package/dist/common/jwtTokenManager.d.ts +6 -4
  61. package/dist/common/jwtTokenManager.js +112 -40
  62. package/dist/common/jwtTokenManager.js.map +1 -0
  63. package/dist/common/jwtTokenManager.mjs +11 -0
  64. package/dist/common/jwtTokenManager.mjs.map +1 -0
  65. package/dist/common/runApi/index.d.mts +11 -0
  66. package/dist/common/runApi/index.d.ts +10 -10
  67. package/dist/common/runApi/index.js +1776 -93
  68. package/dist/common/runApi/index.js.map +1 -0
  69. package/dist/common/runApi/index.mjs +18 -0
  70. package/dist/common/runApi/index.mjs.map +1 -0
  71. package/dist/common/settingsSchema.d.mts +536 -0
  72. package/dist/common/settingsSchema.d.ts +9 -6
  73. package/dist/common/settingsSchema.js +55 -20
  74. package/dist/common/settingsSchema.js.map +1 -0
  75. package/dist/common/settingsSchema.mjs +10 -0
  76. package/dist/common/settingsSchema.mjs.map +1 -0
  77. package/dist/common/telemetry.d.mts +6 -0
  78. package/dist/common/telemetry.d.ts +6 -3
  79. package/dist/common/telemetry.js +41 -9
  80. package/dist/common/telemetry.js.map +1 -0
  81. package/dist/common/telemetry.mjs +31 -0
  82. package/dist/common/telemetry.mjs.map +1 -0
  83. package/dist/export.d-BAUMB-lG.d.mts +140 -0
  84. package/dist/export.d-BAUMB-lG.d.ts +140 -0
  85. package/dist/index.d.mts +6 -0
  86. package/dist/index.d.ts +6 -5
  87. package/dist/index.js +783 -98
  88. package/dist/index.js.map +1 -0
  89. package/dist/index.mjs +47 -0
  90. package/dist/index.mjs.map +1 -0
  91. package/dist/runtime/index.d.mts +163 -0
  92. package/dist/runtime/index.d.ts +163 -10
  93. package/dist/runtime/index.js +779 -88
  94. package/dist/runtime/index.js.map +1 -0
  95. package/dist/runtime/index.mjs +42 -0
  96. package/dist/runtime/index.mjs.map +1 -0
  97. package/package.json +80 -23
  98. package/.babelrc +0 -21
  99. package/.eslintignore +0 -10
  100. package/.eslintrc.js +0 -39
  101. package/InterfaceTemplate/index.playwright.ts +0 -6
  102. package/InterfaceTemplate/utils.ts +0 -61
  103. package/dist/commands/api/run.d.ts +0 -6
  104. package/dist/commands/api/run.js +0 -123
  105. package/dist/commands/auth-sessions/load.d.ts +0 -2
  106. package/dist/commands/auth-sessions/load.js +0 -35
  107. package/dist/commands/auth-sessions/run-check.d.ts +0 -2
  108. package/dist/commands/auth-sessions/run-check.js +0 -74
  109. package/dist/commands/auth-sessions/run-create.d.ts +0 -2
  110. package/dist/commands/auth-sessions/run-create.js +0 -78
  111. package/dist/commands/browser/save-state.d.ts +0 -2
  112. package/dist/commands/browser/save-state.js +0 -17
  113. package/dist/commands/browser/start-browser.d.ts +0 -2
  114. package/dist/commands/browser/start-browser.js +0 -14
  115. package/dist/commands/build.d.ts +0 -1
  116. package/dist/commands/build.js +0 -84
  117. package/dist/commands/common/browserUtils.d.ts +0 -14
  118. package/dist/commands/common/browserUtils.js +0 -58
  119. package/dist/commands/common/getFirstLineNumber.d.ts +0 -9
  120. package/dist/commands/common/getFirstLineNumber.js +0 -101
  121. package/dist/commands/common/getFirstLineNumber.test.js +0 -228
  122. package/dist/commands/common/projectExclusions.d.ts +0 -2
  123. package/dist/commands/common/projectExclusions.js +0 -8
  124. package/dist/commands/common/sendMessageToClient.d.ts +0 -1
  125. package/dist/commands/common/sendMessageToClient.js +0 -10
  126. package/dist/commands/common/tsNodeImport.d.ts +0 -2
  127. package/dist/commands/common/tsNodeImport.js +0 -34
  128. package/dist/commands/common/utils/fileUtils.d.ts +0 -6
  129. package/dist/commands/common/utils/fileUtils.js +0 -33
  130. package/dist/commands/common/utils/settings.d.ts +0 -2
  131. package/dist/commands/common/utils/settings.js +0 -31
  132. package/dist/commands/common/utils/template.d.ts +0 -2
  133. package/dist/commands/common/utils/template.js +0 -31
  134. package/dist/commands/common/utils/unixSocket.d.ts +0 -23
  135. package/dist/commands/common/utils/unixSocket.js +0 -87
  136. package/dist/commands/get-headless-user-agent.d.ts +0 -1
  137. package/dist/commands/get-headless-user-agent.js +0 -18
  138. package/dist/commands/intuned-cli/commands/attempt.command.d.ts +0 -1
  139. package/dist/commands/intuned-cli/commands/attempt.command.js +0 -8
  140. package/dist/commands/intuned-cli/commands/attempt_api.command.d.ts +0 -1
  141. package/dist/commands/intuned-cli/commands/attempt_api.command.js +0 -30
  142. package/dist/commands/intuned-cli/commands/attempt_authsession.command.d.ts +0 -1
  143. package/dist/commands/intuned-cli/commands/attempt_authsession.command.js +0 -8
  144. package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.d.ts +0 -1
  145. package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.js +0 -19
  146. package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.d.ts +0 -1
  147. package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.js +0 -24
  148. package/dist/commands/intuned-cli/commands/authsession.command.d.ts +0 -1
  149. package/dist/commands/intuned-cli/commands/authsession.command.js +0 -8
  150. package/dist/commands/intuned-cli/commands/authsession_record.command.d.ts +0 -1
  151. package/dist/commands/intuned-cli/commands/authsession_record.command.js +0 -32
  152. package/dist/commands/intuned-cli/commands/build.command.d.ts +0 -1
  153. package/dist/commands/intuned-cli/commands/build.command.js +0 -12
  154. package/dist/commands/intuned-cli/commands/command.d.ts +0 -2
  155. package/dist/commands/intuned-cli/commands/command.js +0 -9
  156. package/dist/commands/intuned-cli/commands/deploy.command.d.ts +0 -1
  157. package/dist/commands/intuned-cli/commands/deploy.command.js +0 -38
  158. package/dist/commands/intuned-cli/commands/index.d.ts +0 -18
  159. package/dist/commands/intuned-cli/commands/index.js +0 -203
  160. package/dist/commands/intuned-cli/commands/init.command.d.ts +0 -1
  161. package/dist/commands/intuned-cli/commands/init.command.js +0 -13
  162. package/dist/commands/intuned-cli/commands/run.command.d.ts +0 -1
  163. package/dist/commands/intuned-cli/commands/run.command.js +0 -8
  164. package/dist/commands/intuned-cli/commands/run_api.command.d.ts +0 -1
  165. package/dist/commands/intuned-cli/commands/run_api.command.js +0 -46
  166. package/dist/commands/intuned-cli/commands/run_authsession.command.d.ts +0 -31
  167. package/dist/commands/intuned-cli/commands/run_authsession.command.js +0 -17
  168. package/dist/commands/intuned-cli/commands/run_authsession_create.command.d.ts +0 -1
  169. package/dist/commands/intuned-cli/commands/run_authsession_create.command.js +0 -35
  170. package/dist/commands/intuned-cli/commands/run_authsession_update.command.d.ts +0 -1
  171. package/dist/commands/intuned-cli/commands/run_authsession_update.command.js +0 -35
  172. package/dist/commands/intuned-cli/commands/run_authsession_validate.command.d.ts +0 -1
  173. package/dist/commands/intuned-cli/commands/run_authsession_validate.command.js +0 -33
  174. package/dist/commands/intuned-cli/commands/save.command.d.ts +0 -13
  175. package/dist/commands/intuned-cli/commands/save.command.js +0 -42
  176. package/dist/commands/intuned-cli/commands/types.d.ts +0 -35
  177. package/dist/commands/intuned-cli/commands/types.js +0 -31
  178. package/dist/commands/intuned-cli/constants/index.d.ts +0 -17
  179. package/dist/commands/intuned-cli/constants/index.js +0 -25
  180. package/dist/commands/intuned-cli/controller/__test__/api.test.js +0 -397
  181. package/dist/commands/intuned-cli/controller/__test__/authSession.test.js +0 -1059
  182. package/dist/commands/intuned-cli/controller/api.d.ts +0 -42
  183. package/dist/commands/intuned-cli/controller/api.js +0 -191
  184. package/dist/commands/intuned-cli/controller/authSession.d.ts +0 -209
  185. package/dist/commands/intuned-cli/controller/authSession.js +0 -424
  186. package/dist/commands/intuned-cli/controller/build.d.ts +0 -1
  187. package/dist/commands/intuned-cli/controller/build.js +0 -36
  188. package/dist/commands/intuned-cli/controller/deploy.d.ts +0 -5
  189. package/dist/commands/intuned-cli/controller/deploy.js +0 -276
  190. package/dist/commands/intuned-cli/controller/index.d.ts +0 -1
  191. package/dist/commands/intuned-cli/controller/index.js +0 -46
  192. package/dist/commands/intuned-cli/controller/save.d.ts +0 -17
  193. package/dist/commands/intuned-cli/controller/save.js +0 -351
  194. package/dist/commands/intuned-cli/helpers/__test__/browser.test.js +0 -114
  195. package/dist/commands/intuned-cli/helpers/__test__/tracing.test.js +0 -40
  196. package/dist/commands/intuned-cli/helpers/api.d.ts +0 -3
  197. package/dist/commands/intuned-cli/helpers/api.js +0 -19
  198. package/dist/commands/intuned-cli/helpers/auth.d.ts +0 -46
  199. package/dist/commands/intuned-cli/helpers/auth.js +0 -144
  200. package/dist/commands/intuned-cli/helpers/backend.d.ts +0 -8
  201. package/dist/commands/intuned-cli/helpers/backend.js +0 -27
  202. package/dist/commands/intuned-cli/helpers/browser.d.ts +0 -15
  203. package/dist/commands/intuned-cli/helpers/browser.js +0 -64
  204. package/dist/commands/intuned-cli/helpers/context.d.ts +0 -3
  205. package/dist/commands/intuned-cli/helpers/context.js +0 -33
  206. package/dist/commands/intuned-cli/helpers/errors.d.ts +0 -16
  207. package/dist/commands/intuned-cli/helpers/errors.js +0 -44
  208. package/dist/commands/intuned-cli/helpers/index.d.ts +0 -12
  209. package/dist/commands/intuned-cli/helpers/index.js +0 -137
  210. package/dist/commands/intuned-cli/helpers/intunedJson.d.ts +0 -39
  211. package/dist/commands/intuned-cli/helpers/intunedJson.js +0 -20
  212. package/dist/commands/intuned-cli/helpers/proxy.d.ts +0 -5
  213. package/dist/commands/intuned-cli/helpers/proxy.js +0 -23
  214. package/dist/commands/intuned-cli/helpers/terminal.d.ts +0 -5
  215. package/dist/commands/intuned-cli/helpers/terminal.js +0 -13
  216. package/dist/commands/intuned-cli/helpers/timeout.d.ts +0 -1
  217. package/dist/commands/intuned-cli/helpers/timeout.js +0 -23
  218. package/dist/commands/intuned-cli/helpers/traces.d.ts +0 -2
  219. package/dist/commands/intuned-cli/helpers/traces.js +0 -32
  220. package/dist/commands/intuned-cli/helpers/validation.d.ts +0 -2
  221. package/dist/commands/intuned-cli/helpers/validation.js +0 -14
  222. package/dist/commands/intuned-cli/helpers/wrapper.d.ts +0 -2
  223. package/dist/commands/intuned-cli/helpers/wrapper.js +0 -66
  224. package/dist/commands/intuned-cli/index.d.ts +0 -1
  225. package/dist/commands/intuned-cli/index.js +0 -16
  226. package/dist/commands/intuned-cli/main.d.ts +0 -1
  227. package/dist/commands/intuned-cli/main.js +0 -23
  228. package/dist/commands/intuned-cli/types.d.ts +0 -41
  229. package/dist/commands/intuned-cli/types.js +0 -12
  230. package/dist/commands/ts-check.d.ts +0 -2
  231. package/dist/commands/ts-check.js +0 -56
  232. package/dist/common/Logger/Logger/index.d.ts +0 -12
  233. package/dist/common/Logger/Logger/index.js +0 -60
  234. package/dist/common/Logger/Logger/types.d.ts +0 -8
  235. package/dist/common/Logger/Logger/types.js +0 -5
  236. package/dist/common/Logger/index.d.ts +0 -12
  237. package/dist/common/Logger/index.js +0 -60
  238. package/dist/common/Logger/types.d.ts +0 -8
  239. package/dist/common/Logger/types.js +0 -5
  240. package/dist/common/backendFunctions/getAuthSessionParameters.d.ts +0 -1
  241. package/dist/common/backendFunctions/getAuthSessionParameters.js +0 -38
  242. package/dist/common/extension/extensionsHelpers.d.ts +0 -11
  243. package/dist/common/extension/extensionsHelpers.js +0 -147
  244. package/dist/common/extension/intunedExtensionServer.d.ts +0 -24
  245. package/dist/common/extension/intunedExtensionServer.js +0 -178
  246. package/dist/common/extension/types.d.ts +0 -212
  247. package/dist/common/extension/types.js +0 -51
  248. package/dist/common/formatZodError.d.ts +0 -2
  249. package/dist/common/intunedJson.d.ts +0 -229
  250. package/dist/common/intunedJson.js +0 -133
  251. package/dist/common/launchBrowser.d.ts +0 -31
  252. package/dist/common/launchBrowser.js +0 -207
  253. package/dist/common/playwrightContext.d.ts +0 -31
  254. package/dist/common/playwrightContext.js +0 -144
  255. package/dist/common/runApi/errors.d.ts +0 -72
  256. package/dist/common/runApi/errors.js +0 -169
  257. package/dist/common/runApi/importUsingImportFunction.d.ts +0 -9
  258. package/dist/common/runApi/importUsingImportFunction.js +0 -46
  259. package/dist/common/runApi/types.d.ts +0 -830
  260. package/dist/common/runApi/types.js +0 -73
  261. package/dist/common/setupContextHook.d.ts +0 -17
  262. package/dist/common/setupContextHook.js +0 -22
  263. package/dist/runtime/RunError.d.ts +0 -5
  264. package/dist/runtime/RunError.js +0 -19
  265. package/dist/runtime/attemptStore.d.ts +0 -2
  266. package/dist/runtime/attemptStore.js +0 -23
  267. package/dist/runtime/captcha.d.ts +0 -15
  268. package/dist/runtime/captcha.js +0 -191
  269. package/dist/runtime/captcha.test.js +0 -821
  270. package/dist/runtime/downloadDirectory.d.ts +0 -1
  271. package/dist/runtime/downloadDirectory.js +0 -19
  272. package/dist/runtime/enums.d.js +0 -5
  273. package/dist/runtime/enums.d.ts +0 -11
  274. package/dist/runtime/enums.js +0 -18
  275. package/dist/runtime/executionHelpers.test.js +0 -52
  276. package/dist/runtime/export.d.js +0 -5
  277. package/dist/runtime/export.d.ts +0 -284
  278. package/dist/runtime/extendPayload.d.ts +0 -2
  279. package/dist/runtime/extendPayload.js +0 -21
  280. package/dist/runtime/extendTimeout.d.ts +0 -1
  281. package/dist/runtime/extendTimeout.js +0 -23
  282. package/dist/runtime/getAiGatewayConfig.d.ts +0 -10
  283. package/dist/runtime/getAiGatewayConfig.js +0 -16
  284. package/dist/runtime/getAuthSessionParameters.d.ts +0 -1
  285. package/dist/runtime/getAuthSessionParameters.js +0 -20
  286. package/dist/runtime/persistentStore.d.ts +0 -2
  287. package/dist/runtime/persistentStore.js +0 -37
  288. package/dist/runtime/persistentStore.test.js +0 -101
  289. package/dist/runtime/runInfo.d.ts +0 -2
  290. package/dist/runtime/runInfo.js +0 -21
  291. package/template.tsconfig.json +0 -11
  292. package/tsconfig.eslint.json +0 -5
  293. package/tsconfig.json +0 -25
  294. package/typedoc.json +0 -49
  295. /package/dist/common/assets/{browser_scripts.js → assets/browser_scripts.js} +0 -0
package/bin/intuned CHANGED
File without changes
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+
3
+ require("../dist/common/binStartupScript.js");
4
+ const { runAutomationCLI } = require("../dist/commands/interface/run");
5
+ const { tsNodeImport } = require("../dist/commands/common/tsNodeImport");
6
+
7
+ runAutomationCLI(tsNodeImport);
@@ -0,0 +1,16 @@
1
+ // src/common/cleanEnvironmentVariables.ts
2
+ function cleanEnvironmentVariables() {
3
+ Object.keys(process.env).filter((i) => {
4
+ if (i.toLocaleLowerCase().startsWith("npm")) {
5
+ return true;
6
+ }
7
+ if (i.toLocaleLowerCase().startsWith("fly") && i !== "FLY_ALLOC_ID") {
8
+ return true;
9
+ }
10
+ }).forEach((i) => delete process.env[i]);
11
+ }
12
+
13
+ export {
14
+ cleanEnvironmentVariables
15
+ };
16
+ //# sourceMappingURL=chunk-6ZRJOUQS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/cleanEnvironmentVariables.ts"],"sourcesContent":["export function cleanEnvironmentVariables() {\n Object.keys(process.env)\n .filter((i) => {\n if (i.toLocaleLowerCase().startsWith(\"npm\")) {\n return true;\n }\n\n if (i.toLocaleLowerCase().startsWith(\"fly\") && i !== \"FLY_ALLOC_ID\") {\n return true;\n }\n })\n .forEach((i) => delete process.env[i]);\n}\n"],"mappings":";AAAO,SAAS,4BAA4B;AAC1C,SAAO,KAAK,QAAQ,GAAG,EACpB,OAAO,CAAC,MAAM;AACb,QAAI,EAAE,kBAAkB,EAAE,WAAW,KAAK,GAAG;AAC3C,aAAO;AAAA,IACT;AAEA,QAAI,EAAE,kBAAkB,EAAE,WAAW,KAAK,KAAK,MAAM,gBAAgB;AACnE,aAAO;AAAA,IACT;AAAA,EACF,CAAC,EACA,QAAQ,CAAC,MAAM,OAAO,QAAQ,IAAI,CAAC,CAAC;AACzC;","names":[]}
@@ -0,0 +1,146 @@
1
+ import {
2
+ API_KEY_ENV_VAR_KEY,
3
+ API_KEY_HEADER_NAME,
4
+ AUTH_TOKEN_ENV_VAR_KEY,
5
+ CLI_ENV_VAR_KEY,
6
+ PROJECT_ID_ENV_VAR_KEY,
7
+ WORKSPACE_ID_ENV_VAR_KEY
8
+ } from "./chunk-FGV5T6SI.mjs";
9
+
10
+ // src/common/jwtTokenManager.ts
11
+ import fetch from "cross-fetch";
12
+ import * as jwt from "jsonwebtoken";
13
+ import { err, ResultAsync } from "neverthrow";
14
+ var JwtTokenManager = class {
15
+ constructor(refreshTokenPath) {
16
+ this.refreshTokenPath = refreshTokenPath;
17
+ this._token = void 0;
18
+ }
19
+ get token() {
20
+ return this._token;
21
+ }
22
+ // When the token is set, the schedule for renewal is issued automatically
23
+ // This is currently being set it two places:
24
+ // 1. Whenever the runner starts, initializes it from the environment variable (set whenever the api is run from the authoring IDE)
25
+ // 2. Whenever a published api is called to run (/api/run/*), it is set to the token received in the run request.
26
+ set token(newToken) {
27
+ if (this._token != newToken) {
28
+ this._token = newToken;
29
+ void this.scheduleTokenRefresh();
30
+ }
31
+ }
32
+ get timeToRefresh() {
33
+ if (!this._token) return;
34
+ const payload = jwt.decode(this._token);
35
+ if (!payload || typeof payload == "string") return;
36
+ const expiry = payload.expiry;
37
+ if (!expiry || typeof expiry !== "number") return;
38
+ const timeWindow = 60 * 1e3;
39
+ const timeToRefresh = expiry - Date.now() - timeWindow;
40
+ return Math.max(timeToRefresh, timeWindow);
41
+ }
42
+ async scheduleTokenRefresh() {
43
+ if (process.env.RUN_ENVIRONMENT?.toLowerCase() !== "authoring") return;
44
+ const timeToRefresh = this.timeToRefresh;
45
+ if (timeToRefresh === void 0) return;
46
+ if (this.tokenRefreshTimeout) clearTimeout(this.tokenRefreshTimeout);
47
+ this.tokenRefreshTimeout = setTimeout(async () => {
48
+ const result = await this.refreshToken();
49
+ if (result && result.isErr()) {
50
+ console.error(`[Internal Error] ${result.error}`);
51
+ return;
52
+ }
53
+ await this.scheduleTokenRefresh();
54
+ }, timeToRefresh);
55
+ }
56
+ async refreshToken() {
57
+ if (process.env.RUN_ENVIRONMENT?.toLowerCase() !== "authoring") return;
58
+ const res = await this.fetchWithToken(
59
+ `${this.backendFunctionsBaseUrl}/${this.refreshTokenPath}`,
60
+ {
61
+ method: "GET"
62
+ }
63
+ );
64
+ if (res.status === 401) {
65
+ return err("Unauthorized");
66
+ }
67
+ const jsonResult = await ResultAsync.fromPromise(
68
+ res.json(),
69
+ () => "not json"
70
+ );
71
+ if (jsonResult.isErr()) return;
72
+ const newToken = jsonResult.value.token;
73
+ if (newToken) this._token = newToken;
74
+ }
75
+ async fetchWithToken(...[input, init]) {
76
+ const headers = new Headers(init?.headers);
77
+ const apiKey = process.env[API_KEY_ENV_VAR_KEY];
78
+ if (apiKey) {
79
+ headers.set(API_KEY_HEADER_NAME, apiKey);
80
+ }
81
+ const token = process.env[AUTH_TOKEN_ENV_VAR_KEY];
82
+ if (token) {
83
+ headers.set("Authorization", `Bearer ${token}`);
84
+ }
85
+ if (this.token !== void 0) {
86
+ headers.set("Authorization", `Bearer ${this.token}`);
87
+ }
88
+ const result = await fetch(input, {
89
+ ...init,
90
+ headers
91
+ });
92
+ if (result.status === 401 && process.env[CLI_ENV_VAR_KEY] === "true") {
93
+ console.warn(
94
+ "Unauthorized backend function call - make sure to provision your project to Intuned to set up the correct API credentials.\nRun 'intuned provision' or see https://docs.intunedhq.com/docs/05-references/cli#provision-project for more information."
95
+ );
96
+ }
97
+ return result;
98
+ }
99
+ get backendFunctionsBaseUrl() {
100
+ try {
101
+ if (!process.env.FUNCTIONS_DOMAIN) {
102
+ throw new Error(
103
+ `Cannot call backend function - FUNCTIONS_DOMAIN not set`
104
+ );
105
+ }
106
+ const domain = process.env.FUNCTIONS_DOMAIN;
107
+ if (!process.env[WORKSPACE_ID_ENV_VAR_KEY]) {
108
+ throw new Error(
109
+ `Cannot call backend function - ${WORKSPACE_ID_ENV_VAR_KEY} not set`
110
+ );
111
+ }
112
+ const workspaceId = process.env[WORKSPACE_ID_ENV_VAR_KEY];
113
+ if (!process.env[PROJECT_ID_ENV_VAR_KEY] && !process.env.INTUNED_INTEGRATION_ID) {
114
+ throw new Error(
115
+ `Cannot call backend function - ${PROJECT_ID_ENV_VAR_KEY} or INTUNED_INTEGRATION_ID not set`
116
+ );
117
+ }
118
+ const projectId = process.env.INTUNED_INTEGRATION_ID ?? process.env[PROJECT_ID_ENV_VAR_KEY];
119
+ return `${domain}/api/${workspaceId}/functions/${projectId}`;
120
+ } catch (e) {
121
+ if (process.env[CLI_ENV_VAR_KEY] === "true") {
122
+ throw new Error(
123
+ `API credentials not set - make sure to provision your project to Intuned to set up the correct API credentials.
124
+ Run 'intuned provision' or see https://docs.intunedhq.com/docs/05-references/cli#provision-project for more information.
125
+ Original error: ${e.message}`
126
+ );
127
+ }
128
+ }
129
+ }
130
+ };
131
+ var backendFunctionsTokenManager = new JwtTokenManager(
132
+ `refreshBackendFunctionsToken`
133
+ );
134
+ backendFunctionsTokenManager.token = process.env.INTUNED_AUTHORING_SESSION_BACKEND_FUNCTIONS_TOKEN;
135
+ function callBackendFunctionWithToken(path, init) {
136
+ return backendFunctionsTokenManager.fetchWithToken(
137
+ `${backendFunctionsTokenManager.backendFunctionsBaseUrl}/${path}`,
138
+ init
139
+ );
140
+ }
141
+
142
+ export {
143
+ backendFunctionsTokenManager,
144
+ callBackendFunctionWithToken
145
+ };
146
+ //# sourceMappingURL=chunk-7YL2JUTE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/jwtTokenManager.ts"],"sourcesContent":["import fetch from \"cross-fetch\";\nimport * as jwt from \"jsonwebtoken\";\nimport { err, ResultAsync } from \"neverthrow\";\nimport {\n API_KEY_ENV_VAR_KEY,\n API_KEY_HEADER_NAME,\n PROJECT_ID_ENV_VAR_KEY,\n CLI_ENV_VAR_KEY,\n WORKSPACE_ID_ENV_VAR_KEY,\n AUTH_TOKEN_ENV_VAR_KEY,\n} from \"./constants\";\n\n// Manages JWT token with renewal\nclass JwtTokenManager {\n private _token: string | undefined;\n private tokenRefreshTimeout: NodeJS.Timeout | undefined;\n private refreshTokenPath: string;\n\n constructor(refreshTokenPath: string) {\n this.refreshTokenPath = refreshTokenPath;\n this._token = undefined;\n }\n\n public get token() {\n return this._token;\n }\n\n // When the token is set, the schedule for renewal is issued automatically\n // This is currently being set it two places:\n // 1. Whenever the runner starts, initializes it from the environment variable (set whenever the api is run from the authoring IDE)\n // 2. Whenever a published api is called to run (/api/run/*), it is set to the token received in the run request.\n public set token(newToken: string | undefined) {\n if (this._token != newToken) {\n this._token = newToken;\n void this.scheduleTokenRefresh();\n }\n }\n\n private get timeToRefresh() {\n if (!this._token) return;\n\n const payload = jwt.decode(this._token);\n\n if (!payload || typeof payload == \"string\") return;\n\n const expiry = payload.expiry;\n if (!expiry || typeof expiry !== \"number\") return;\n\n const timeWindow = 60 * 1000; // 1 minute\n\n const timeToRefresh = expiry - Date.now() - timeWindow;\n return Math.max(timeToRefresh, timeWindow);\n }\n\n private async scheduleTokenRefresh() {\n if (process.env.RUN_ENVIRONMENT?.toLowerCase() !== \"authoring\") return;\n const timeToRefresh = this.timeToRefresh;\n if (timeToRefresh === undefined) return;\n\n if (this.tokenRefreshTimeout) clearTimeout(this.tokenRefreshTimeout);\n\n this.tokenRefreshTimeout = setTimeout(async () => {\n const result = await this.refreshToken();\n if (result && result.isErr()) {\n console.error(`[Internal Error] ${result.error}`);\n return;\n }\n await this.scheduleTokenRefresh();\n }, timeToRefresh);\n }\n\n private async refreshToken() {\n if (process.env.RUN_ENVIRONMENT?.toLowerCase() !== \"authoring\") return;\n const res = await this.fetchWithToken(\n `${this.backendFunctionsBaseUrl}/${this.refreshTokenPath}`,\n {\n method: \"GET\",\n }\n );\n\n if (res.status === 401) {\n return err(\"Unauthorized\");\n }\n\n const jsonResult = await ResultAsync.fromPromise(\n res.json(),\n () => \"not json\"\n );\n\n if (jsonResult.isErr()) return;\n\n const newToken = jsonResult.value.token;\n if (newToken) this._token = newToken;\n }\n\n public async fetchWithToken(...[input, init]: Parameters<typeof fetch>) {\n const headers = new Headers(init?.headers);\n const apiKey = process.env[API_KEY_ENV_VAR_KEY];\n if (apiKey) {\n headers.set(API_KEY_HEADER_NAME, apiKey);\n }\n const token = process.env[AUTH_TOKEN_ENV_VAR_KEY];\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n if (this.token !== undefined) {\n headers.set(\"Authorization\", `Bearer ${this.token}`);\n }\n const result = await fetch(input, {\n ...init,\n headers,\n });\n if (result.status === 401 && process.env[CLI_ENV_VAR_KEY] === \"true\") {\n console.warn(\n \"Unauthorized backend function call - make sure to provision your project to Intuned to set up the correct API credentials.\\n\" +\n \"Run 'intuned provision' or see https://docs.intunedhq.com/docs/05-references/cli#provision-project for more information.\"\n );\n }\n return result;\n }\n\n get backendFunctionsBaseUrl() {\n try {\n if (!process.env.FUNCTIONS_DOMAIN) {\n throw new Error(\n `Cannot call backend function - FUNCTIONS_DOMAIN not set`\n );\n }\n const domain = process.env.FUNCTIONS_DOMAIN;\n if (!process.env[WORKSPACE_ID_ENV_VAR_KEY]) {\n throw new Error(\n `Cannot call backend function - ${WORKSPACE_ID_ENV_VAR_KEY} not set`\n );\n }\n const workspaceId = process.env[WORKSPACE_ID_ENV_VAR_KEY];\n if (\n !process.env[PROJECT_ID_ENV_VAR_KEY] &&\n !process.env.INTUNED_INTEGRATION_ID\n ) {\n throw new Error(\n `Cannot call backend function - ${PROJECT_ID_ENV_VAR_KEY} or INTUNED_INTEGRATION_ID not set`\n );\n }\n\n const projectId =\n process.env.INTUNED_INTEGRATION_ID ??\n process.env[PROJECT_ID_ENV_VAR_KEY];\n return `${domain}/api/${workspaceId}/functions/${projectId}`;\n } catch (e) {\n if (process.env[CLI_ENV_VAR_KEY] === \"true\") {\n throw new Error(\n `API credentials not set - make sure to provision your project to Intuned to set up the correct API credentials.\\n` +\n `Run 'intuned provision' or see https://docs.intunedhq.com/docs/05-references/cli#provision-project for more information.\\n` +\n `Original error: ${e.message}`\n );\n }\n }\n }\n}\n\nexport const backendFunctionsTokenManager = new JwtTokenManager(\n `refreshBackendFunctionsToken`\n);\nbackendFunctionsTokenManager.token =\n process.env.INTUNED_AUTHORING_SESSION_BACKEND_FUNCTIONS_TOKEN;\n\nexport function callBackendFunctionWithToken(\n path: string,\n init?: Parameters<typeof fetch>[1]\n) {\n return backendFunctionsTokenManager.fetchWithToken(\n `${backendFunctionsTokenManager.backendFunctionsBaseUrl}/${path}`,\n init\n );\n}\n"],"mappings":"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","names":[]}