@intuned/runtime 1.3.17 → 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.
- package/bin/intuned +0 -0
- package/bin/intuned-interface +7 -0
- package/dist/chunk-6ZRJOUQS.mjs +16 -0
- package/dist/chunk-6ZRJOUQS.mjs.map +1 -0
- package/dist/chunk-7YL2JUTE.mjs +146 -0
- package/dist/chunk-7YL2JUTE.mjs.map +1 -0
- package/dist/chunk-B3T6RXPC.mjs +794 -0
- package/dist/chunk-B3T6RXPC.mjs.map +1 -0
- package/dist/chunk-FGV5T6SI.mjs +27 -0
- package/dist/chunk-FGV5T6SI.mjs.map +1 -0
- package/dist/chunk-G4PO5RIV.mjs +85 -0
- package/dist/chunk-G4PO5RIV.mjs.map +1 -0
- package/dist/chunk-LZOMFHX3.mjs +38 -0
- package/dist/chunk-LZOMFHX3.mjs.map +1 -0
- package/dist/{common/formatZodError.js → chunk-NDMVGENG.mjs} +9 -9
- package/dist/chunk-NDMVGENG.mjs.map +1 -0
- package/dist/chunk-W4UX6G4X.mjs +17 -0
- package/dist/chunk-W4UX6G4X.mjs.map +1 -0
- package/dist/chunk-XC75QGFG.mjs +1106 -0
- package/dist/chunk-XC75QGFG.mjs.map +1 -0
- package/dist/chunk-XOAZ2MGA.mjs +59 -0
- package/dist/chunk-XOAZ2MGA.mjs.map +1 -0
- package/dist/commands/interface/run.d.mts +3 -0
- package/dist/commands/interface/run.d.ts +3 -1
- package/dist/commands/interface/run.js +2060 -178
- package/dist/commands/interface/run.js.map +1 -0
- package/dist/commands/interface/run.mjs +255 -0
- package/dist/commands/interface/run.mjs.map +1 -0
- package/dist/common/asyncLocalStorage/index.d.mts +17 -0
- package/dist/common/asyncLocalStorage/index.d.ts +9 -8
- package/dist/common/asyncLocalStorage/index.js +34 -9
- package/dist/common/asyncLocalStorage/index.js.map +1 -0
- package/dist/common/asyncLocalStorage/index.mjs +12 -0
- package/dist/common/asyncLocalStorage/index.mjs.map +1 -0
- package/dist/common/binStartupScript.d.mts +2 -0
- package/dist/common/binStartupScript.d.ts +2 -1
- package/dist/common/binStartupScript.js +127 -11
- package/dist/common/binStartupScript.js.map +1 -0
- package/dist/common/binStartupScript.mjs +135 -0
- package/dist/common/binStartupScript.mjs.map +1 -0
- package/dist/common/cleanEnvironmentVariables.d.mts +3 -0
- package/dist/common/cleanEnvironmentVariables.d.ts +3 -1
- package/dist/common/cleanEnvironmentVariables.js +30 -7
- package/dist/common/cleanEnvironmentVariables.js.map +1 -0
- package/dist/common/cleanEnvironmentVariables.mjs +8 -0
- package/dist/common/cleanEnvironmentVariables.mjs.map +1 -0
- package/dist/common/constants.d.mts +13 -0
- package/dist/common/constants.d.ts +13 -10
- package/dist/common/constants.js +58 -14
- package/dist/common/constants.js.map +1 -0
- package/dist/common/constants.mjs +28 -0
- package/dist/common/constants.mjs.map +1 -0
- package/dist/common/contextStorageStateHelpers.d.mts +24 -0
- package/dist/common/contextStorageStateHelpers.d.ts +8 -5
- package/dist/common/contextStorageStateHelpers.js +51 -23
- package/dist/common/contextStorageStateHelpers.js.map +1 -0
- package/dist/common/contextStorageStateHelpers.mjs +10 -0
- package/dist/common/contextStorageStateHelpers.mjs.map +1 -0
- package/dist/common/jwtTokenManager.d.mts +19 -0
- package/dist/common/jwtTokenManager.d.ts +6 -4
- package/dist/common/jwtTokenManager.js +112 -40
- package/dist/common/jwtTokenManager.js.map +1 -0
- package/dist/common/jwtTokenManager.mjs +11 -0
- package/dist/common/jwtTokenManager.mjs.map +1 -0
- package/dist/common/runApi/index.d.mts +11 -0
- package/dist/common/runApi/index.d.ts +10 -10
- package/dist/common/runApi/index.js +1776 -93
- package/dist/common/runApi/index.js.map +1 -0
- package/dist/common/runApi/index.mjs +18 -0
- package/dist/common/runApi/index.mjs.map +1 -0
- package/dist/common/settingsSchema.d.mts +536 -0
- package/dist/common/settingsSchema.d.ts +9 -6
- package/dist/common/settingsSchema.js +55 -20
- package/dist/common/settingsSchema.js.map +1 -0
- package/dist/common/settingsSchema.mjs +10 -0
- package/dist/common/settingsSchema.mjs.map +1 -0
- package/dist/common/telemetry.d.mts +6 -0
- package/dist/common/telemetry.d.ts +6 -3
- package/dist/common/telemetry.js +41 -9
- package/dist/common/telemetry.js.map +1 -0
- package/dist/common/telemetry.mjs +31 -0
- package/dist/common/telemetry.mjs.map +1 -0
- package/dist/export.d-BAUMB-lG.d.mts +140 -0
- package/dist/export.d-BAUMB-lG.d.ts +140 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +783 -98
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +47 -0
- package/dist/index.mjs.map +1 -0
- package/dist/runtime/index.d.mts +163 -0
- package/dist/runtime/index.d.ts +163 -10
- package/dist/runtime/index.js +779 -88
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/index.mjs +42 -0
- package/dist/runtime/index.mjs.map +1 -0
- package/package.json +78 -23
- package/.babelrc +0 -21
- package/.eslintignore +0 -10
- package/.eslintrc.js +0 -39
- package/InterfaceTemplate/__utils.ts +0 -61
- package/InterfaceTemplate/index.playwright.ts +0 -6
- package/WebTemplate.zip +0 -0
- package/dist/commands/api/run.d.ts +0 -6
- package/dist/commands/api/run.js +0 -119
- package/dist/commands/auth-sessions/load.d.ts +0 -2
- package/dist/commands/auth-sessions/load.js +0 -35
- package/dist/commands/auth-sessions/run-check.d.ts +0 -2
- package/dist/commands/auth-sessions/run-check.js +0 -74
- package/dist/commands/auth-sessions/run-create.d.ts +0 -2
- package/dist/commands/auth-sessions/run-create.js +0 -78
- package/dist/commands/browser/save-state.d.ts +0 -2
- package/dist/commands/browser/save-state.js +0 -17
- package/dist/commands/browser/start-browser.d.ts +0 -2
- package/dist/commands/browser/start-browser.js +0 -14
- package/dist/commands/build.d.ts +0 -1
- package/dist/commands/build.js +0 -84
- package/dist/commands/common/browserUtils.d.ts +0 -14
- package/dist/commands/common/browserUtils.js +0 -58
- package/dist/commands/common/getFirstLineNumber.d.ts +0 -9
- package/dist/commands/common/getFirstLineNumber.js +0 -101
- package/dist/commands/common/getFirstLineNumber.test.js +0 -228
- package/dist/commands/common/projectExclusions.d.ts +0 -2
- package/dist/commands/common/projectExclusions.js +0 -8
- package/dist/commands/common/sendMessageToClient.d.ts +0 -1
- package/dist/commands/common/sendMessageToClient.js +0 -10
- package/dist/commands/common/tsNodeImport.d.ts +0 -2
- package/dist/commands/common/tsNodeImport.js +0 -43
- package/dist/commands/common/utils/fileUtils.d.ts +0 -6
- package/dist/commands/common/utils/fileUtils.js +0 -33
- package/dist/commands/common/utils/settings.d.ts +0 -2
- package/dist/commands/common/utils/settings.js +0 -31
- package/dist/commands/common/utils/template.d.ts +0 -2
- package/dist/commands/common/utils/template.js +0 -31
- package/dist/commands/common/utils/unixSocket.d.ts +0 -23
- package/dist/commands/common/utils/unixSocket.js +0 -87
- package/dist/commands/get-headless-user-agent.d.ts +0 -1
- package/dist/commands/get-headless-user-agent.js +0 -18
- package/dist/commands/intuned-cli/commands/attempt.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt.command.js +0 -8
- package/dist/commands/intuned-cli/commands/attempt_api.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_api.command.js +0 -30
- package/dist/commands/intuned-cli/commands/attempt_authsession.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_authsession.command.js +0 -8
- package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_authsession_check.command.js +0 -19
- package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/attempt_authsession_create.command.js +0 -24
- package/dist/commands/intuned-cli/commands/authsession.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/authsession.command.js +0 -8
- package/dist/commands/intuned-cli/commands/authsession_record.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/authsession_record.command.js +0 -32
- package/dist/commands/intuned-cli/commands/authsession_scaffold.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/authsession_scaffold.command.js +0 -16
- package/dist/commands/intuned-cli/commands/build.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/build.command.js +0 -12
- package/dist/commands/intuned-cli/commands/command.d.ts +0 -2
- package/dist/commands/intuned-cli/commands/command.js +0 -9
- package/dist/commands/intuned-cli/commands/deploy.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/deploy.command.js +0 -42
- package/dist/commands/intuned-cli/commands/index.d.ts +0 -18
- package/dist/commands/intuned-cli/commands/index.js +0 -203
- package/dist/commands/intuned-cli/commands/provision.command.d.ts +0 -13
- package/dist/commands/intuned-cli/commands/provision.command.js +0 -50
- package/dist/commands/intuned-cli/commands/run.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run.command.js +0 -8
- package/dist/commands/intuned-cli/commands/run_api.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_api.command.js +0 -46
- package/dist/commands/intuned-cli/commands/run_authsession.command.d.ts +0 -31
- package/dist/commands/intuned-cli/commands/run_authsession.command.js +0 -17
- package/dist/commands/intuned-cli/commands/run_authsession_create.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_authsession_create.command.js +0 -35
- package/dist/commands/intuned-cli/commands/run_authsession_update.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_authsession_update.command.js +0 -35
- package/dist/commands/intuned-cli/commands/run_authsession_validate.command.d.ts +0 -1
- package/dist/commands/intuned-cli/commands/run_authsession_validate.command.js +0 -33
- package/dist/commands/intuned-cli/commands/types.d.ts +0 -35
- package/dist/commands/intuned-cli/commands/types.js +0 -31
- package/dist/commands/intuned-cli/constants/index.d.ts +0 -17
- package/dist/commands/intuned-cli/constants/index.js +0 -25
- package/dist/commands/intuned-cli/controller/__test__/api.test.js +0 -398
- package/dist/commands/intuned-cli/controller/__test__/authSession.test.js +0 -1060
- package/dist/commands/intuned-cli/controller/api.d.ts +0 -42
- package/dist/commands/intuned-cli/controller/api.js +0 -194
- package/dist/commands/intuned-cli/controller/authSession.d.ts +0 -209
- package/dist/commands/intuned-cli/controller/authSession.js +0 -424
- package/dist/commands/intuned-cli/controller/build.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/build.js +0 -36
- package/dist/commands/intuned-cli/controller/deploy.d.ts +0 -5
- package/dist/commands/intuned-cli/controller/deploy.js +0 -318
- package/dist/commands/intuned-cli/controller/index.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/index.js +0 -46
- package/dist/commands/intuned-cli/controller/provision.d.ts +0 -21
- package/dist/commands/intuned-cli/controller/provision.js +0 -300
- package/dist/commands/intuned-cli/controller/scaffold.d.ts +0 -1
- package/dist/commands/intuned-cli/controller/scaffold.js +0 -77
- package/dist/commands/intuned-cli/helpers/__test__/browser.test.js +0 -115
- package/dist/commands/intuned-cli/helpers/__test__/tracing.test.js +0 -41
- package/dist/commands/intuned-cli/helpers/api.d.ts +0 -3
- package/dist/commands/intuned-cli/helpers/api.js +0 -16
- package/dist/commands/intuned-cli/helpers/auth.d.ts +0 -46
- package/dist/commands/intuned-cli/helpers/auth.js +0 -147
- package/dist/commands/intuned-cli/helpers/backend.d.ts +0 -8
- package/dist/commands/intuned-cli/helpers/backend.js +0 -35
- package/dist/commands/intuned-cli/helpers/browser.d.ts +0 -15
- package/dist/commands/intuned-cli/helpers/browser.js +0 -64
- package/dist/commands/intuned-cli/helpers/context.d.ts +0 -3
- package/dist/commands/intuned-cli/helpers/context.js +0 -33
- package/dist/commands/intuned-cli/helpers/errors.d.ts +0 -16
- package/dist/commands/intuned-cli/helpers/errors.js +0 -44
- package/dist/commands/intuned-cli/helpers/index.d.ts +0 -12
- package/dist/commands/intuned-cli/helpers/index.js +0 -137
- package/dist/commands/intuned-cli/helpers/intunedJson.d.ts +0 -39
- package/dist/commands/intuned-cli/helpers/intunedJson.js +0 -20
- package/dist/commands/intuned-cli/helpers/prompts.d.ts +0 -3
- package/dist/commands/intuned-cli/helpers/prompts.js +0 -71
- package/dist/commands/intuned-cli/helpers/proxy.d.ts +0 -5
- package/dist/commands/intuned-cli/helpers/proxy.js +0 -23
- package/dist/commands/intuned-cli/helpers/terminal.d.ts +0 -5
- package/dist/commands/intuned-cli/helpers/terminal.js +0 -13
- package/dist/commands/intuned-cli/helpers/timeout.d.ts +0 -1
- package/dist/commands/intuned-cli/helpers/timeout.js +0 -23
- package/dist/commands/intuned-cli/helpers/traces.d.ts +0 -2
- package/dist/commands/intuned-cli/helpers/traces.js +0 -32
- package/dist/commands/intuned-cli/helpers/validation.d.ts +0 -2
- package/dist/commands/intuned-cli/helpers/validation.js +0 -14
- package/dist/commands/intuned-cli/helpers/wrapper.d.ts +0 -2
- package/dist/commands/intuned-cli/helpers/wrapper.js +0 -76
- package/dist/commands/intuned-cli/index.d.ts +0 -1
- package/dist/commands/intuned-cli/index.js +0 -16
- package/dist/commands/intuned-cli/main.d.ts +0 -1
- package/dist/commands/intuned-cli/main.js +0 -36
- package/dist/commands/intuned-cli/types.d.ts +0 -70
- package/dist/commands/intuned-cli/types.js +0 -22
- package/dist/commands/ts-check.d.ts +0 -2
- package/dist/commands/ts-check.js +0 -56
- package/dist/common/Logger/Logger/index.d.ts +0 -12
- package/dist/common/Logger/Logger/index.js +0 -60
- package/dist/common/Logger/Logger/types.d.ts +0 -8
- package/dist/common/Logger/Logger/types.js +0 -5
- package/dist/common/Logger/index.d.ts +0 -12
- package/dist/common/Logger/index.js +0 -60
- package/dist/common/Logger/types.d.ts +0 -8
- package/dist/common/Logger/types.js +0 -5
- package/dist/common/backendFunctions/getAuthSessionParameters.d.ts +0 -1
- package/dist/common/backendFunctions/getAuthSessionParameters.js +0 -38
- package/dist/common/extension/extensionsHelpers.d.ts +0 -11
- package/dist/common/extension/extensionsHelpers.js +0 -147
- package/dist/common/extension/intunedExtensionServer.d.ts +0 -24
- package/dist/common/extension/intunedExtensionServer.js +0 -178
- package/dist/common/extension/types.d.ts +0 -212
- package/dist/common/extension/types.js +0 -51
- package/dist/common/formatZodError.d.ts +0 -2
- package/dist/common/intunedJson.d.ts +0 -229
- package/dist/common/intunedJson.js +0 -133
- package/dist/common/launchBrowser.d.ts +0 -33
- package/dist/common/launchBrowser.js +0 -235
- package/dist/common/playwrightContext.d.ts +0 -31
- package/dist/common/playwrightContext.js +0 -150
- package/dist/common/runApi/errors.d.ts +0 -72
- package/dist/common/runApi/errors.js +0 -169
- package/dist/common/runApi/importUsingImportFunction.d.ts +0 -9
- package/dist/common/runApi/importUsingImportFunction.js +0 -46
- package/dist/common/runApi/types.d.ts +0 -830
- package/dist/common/runApi/types.js +0 -73
- package/dist/common/setupContextHook.d.ts +0 -17
- package/dist/common/setupContextHook.js +0 -22
- package/dist/runtime/RunError.d.ts +0 -5
- package/dist/runtime/RunError.js +0 -19
- package/dist/runtime/attemptStore.d.ts +0 -2
- package/dist/runtime/attemptStore.js +0 -23
- package/dist/runtime/captcha.d.ts +0 -15
- package/dist/runtime/captcha.js +0 -191
- package/dist/runtime/captcha.test.js +0 -821
- package/dist/runtime/downloadDirectory.d.ts +0 -1
- package/dist/runtime/downloadDirectory.js +0 -19
- package/dist/runtime/enums.d.js +0 -5
- package/dist/runtime/enums.d.ts +0 -11
- package/dist/runtime/enums.js +0 -18
- package/dist/runtime/executionHelpers.test.js +0 -52
- package/dist/runtime/export.d.js +0 -5
- package/dist/runtime/export.d.ts +0 -284
- package/dist/runtime/extendPayload.d.ts +0 -2
- package/dist/runtime/extendPayload.js +0 -21
- package/dist/runtime/extendTimeout.d.ts +0 -1
- package/dist/runtime/extendTimeout.js +0 -23
- package/dist/runtime/getAiGatewayConfig.d.ts +0 -10
- package/dist/runtime/getAiGatewayConfig.js +0 -16
- package/dist/runtime/getAuthSessionParameters.d.ts +0 -1
- package/dist/runtime/getAuthSessionParameters.js +0 -20
- package/dist/runtime/persistentStore.d.ts +0 -2
- package/dist/runtime/persistentStore.js +0 -37
- package/dist/runtime/persistentStore.test.js +0 -101
- package/dist/runtime/runInfo.d.ts +0 -2
- package/dist/runtime/runInfo.js +0 -21
- package/template.tsconfig.json +0 -11
- package/tsconfig.eslint.json +0 -5
- package/tsconfig.json +0 -25
- package/typedoc.json +0 -49
- /package/dist/common/assets/{browser_scripts.js → assets/browser_scripts.js} +0 -0
package/bin/intuned
CHANGED
|
File without changes
|
|
@@ -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":";;;;;;;;;;AAAA,OAAO,WAAW;AAClB,YAAY,SAAS;AACrB,SAAS,KAAK,mBAAmB;AAWjC,IAAM,kBAAN,MAAsB;AAAA,EAKpB,YAAY,kBAA0B;AACpC,SAAK,mBAAmB;AACxB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAW,QAAQ;AACjB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAW,MAAM,UAA8B;AAC7C,QAAI,KAAK,UAAU,UAAU;AAC3B,WAAK,SAAS;AACd,WAAK,KAAK,qBAAqB;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,IAAY,gBAAgB;AAC1B,QAAI,CAAC,KAAK,OAAQ;AAElB,UAAM,UAAc,WAAO,KAAK,MAAM;AAEtC,QAAI,CAAC,WAAW,OAAO,WAAW,SAAU;AAE5C,UAAM,SAAS,QAAQ;AACvB,QAAI,CAAC,UAAU,OAAO,WAAW,SAAU;AAE3C,UAAM,aAAa,KAAK;AAExB,UAAM,gBAAgB,SAAS,KAAK,IAAI,IAAI;AAC5C,WAAO,KAAK,IAAI,eAAe,UAAU;AAAA,EAC3C;AAAA,EAEA,MAAc,uBAAuB;AACnC,QAAI,QAAQ,IAAI,iBAAiB,YAAY,MAAM,YAAa;AAChE,UAAM,gBAAgB,KAAK;AAC3B,QAAI,kBAAkB,OAAW;AAEjC,QAAI,KAAK,oBAAqB,cAAa,KAAK,mBAAmB;AAEnE,SAAK,sBAAsB,WAAW,YAAY;AAChD,YAAM,SAAS,MAAM,KAAK,aAAa;AACvC,UAAI,UAAU,OAAO,MAAM,GAAG;AAC5B,gBAAQ,MAAM,oBAAoB,OAAO,KAAK,EAAE;AAChD;AAAA,MACF;AACA,YAAM,KAAK,qBAAqB;AAAA,IAClC,GAAG,aAAa;AAAA,EAClB;AAAA,EAEA,MAAc,eAAe;AAC3B,QAAI,QAAQ,IAAI,iBAAiB,YAAY,MAAM,YAAa;AAChE,UAAM,MAAM,MAAM,KAAK;AAAA,MACrB,GAAG,KAAK,uBAAuB,IAAI,KAAK,gBAAgB;AAAA,MACxD;AAAA,QACE,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,QAAI,IAAI,WAAW,KAAK;AACtB,aAAO,IAAI,cAAc;AAAA,IAC3B;AAEA,UAAM,aAAa,MAAM,YAAY;AAAA,MACnC,IAAI,KAAK;AAAA,MACT,MAAM;AAAA,IACR;AAEA,QAAI,WAAW,MAAM,EAAG;AAExB,UAAM,WAAW,WAAW,MAAM;AAClC,QAAI,SAAU,MAAK,SAAS;AAAA,EAC9B;AAAA,EAEA,MAAa,kBAAkB,CAAC,OAAO,IAAI,GAA6B;AACtE,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,UAAM,SAAS,QAAQ,IAAI,mBAAmB;AAC9C,QAAI,QAAQ;AACV,cAAQ,IAAI,qBAAqB,MAAM;AAAA,IACzC;AACA,UAAM,QAAQ,QAAQ,IAAI,sBAAsB;AAChD,QAAI,OAAO;AACT,cAAQ,IAAI,iBAAiB,UAAU,KAAK,EAAE;AAAA,IAChD;AACA,QAAI,KAAK,UAAU,QAAW;AAC5B,cAAQ,IAAI,iBAAiB,UAAU,KAAK,KAAK,EAAE;AAAA,IACrD;AACA,UAAM,SAAS,MAAM,MAAM,OAAO;AAAA,MAChC,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AACD,QAAI,OAAO,WAAW,OAAO,QAAQ,IAAI,eAAe,MAAM,QAAQ;AACpE,cAAQ;AAAA,QACN;AAAA,MAEF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,0BAA0B;AAC5B,QAAI;AACF,UAAI,CAAC,QAAQ,IAAI,kBAAkB;AACjC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,YAAM,SAAS,QAAQ,IAAI;AAC3B,UAAI,CAAC,QAAQ,IAAI,wBAAwB,GAAG;AAC1C,cAAM,IAAI;AAAA,UACR,kCAAkC,wBAAwB;AAAA,QAC5D;AAAA,MACF;AACA,YAAM,cAAc,QAAQ,IAAI,wBAAwB;AACxD,UACE,CAAC,QAAQ,IAAI,sBAAsB,KACnC,CAAC,QAAQ,IAAI,wBACb;AACA,cAAM,IAAI;AAAA,UACR,kCAAkC,sBAAsB;AAAA,QAC1D;AAAA,MACF;AAEA,YAAM,YACJ,QAAQ,IAAI,0BACZ,QAAQ,IAAI,sBAAsB;AACpC,aAAO,GAAG,MAAM,QAAQ,WAAW,cAAc,SAAS;AAAA,IAC5D,SAAS,GAAG;AACV,UAAI,QAAQ,IAAI,eAAe,MAAM,QAAQ;AAC3C,cAAM,IAAI;AAAA,UACR;AAAA;AAAA,kBAEqB,EAAE,OAAO;AAAA,QAChC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,+BAA+B,IAAI;AAAA,EAC9C;AACF;AACA,6BAA6B,QAC3B,QAAQ,IAAI;AAEP,SAAS,6BACd,MACA,MACA;AACA,SAAO,6BAA6B;AAAA,IAClC,GAAG,6BAA6B,uBAAuB,IAAI,IAAI;AAAA,IAC/D;AAAA,EACF;AACF;","names":[]}
|