@azure/playwright 1.1.3-alpha.20260310.1 → 1.1.3
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/dist/browser/common/constants.d.ts +3 -0
- package/dist/browser/common/constants.d.ts.map +1 -1
- package/dist/browser/common/constants.js +3 -0
- package/dist/browser/common/constants.js.map +1 -1
- package/dist/browser/common/types.d.ts +8 -0
- package/dist/browser/common/types.d.ts.map +1 -1
- package/dist/browser/common/types.js.map +1 -1
- package/dist/browser/core/playwrightService.d.ts.map +1 -1
- package/dist/browser/core/playwrightService.js +6 -0
- package/dist/browser/core/playwrightService.js.map +1 -1
- package/dist/browser/utils/utils.d.ts.map +1 -1
- package/dist/browser/utils/utils.js +2 -3
- package/dist/browser/utils/utils.js.map +1 -1
- package/dist/commonjs/common/constants.d.ts +3 -0
- package/dist/commonjs/common/constants.d.ts.map +1 -1
- package/dist/commonjs/common/constants.js +97 -126
- package/dist/commonjs/common/constants.js.map +1 -7
- package/dist/commonjs/common/customerConfig.js +14 -31
- package/dist/commonjs/common/customerConfig.js.map +1 -7
- package/dist/commonjs/common/entraIdAccessToken.js +83 -106
- package/dist/commonjs/common/entraIdAccessToken.js.map +1 -7
- package/dist/commonjs/common/environmentVariables.js +24 -43
- package/dist/commonjs/common/environmentVariables.js.map +1 -7
- package/dist/commonjs/common/executor.js +67 -88
- package/dist/commonjs/common/executor.js.map +1 -7
- package/dist/commonjs/common/httpService.js +35 -54
- package/dist/commonjs/common/httpService.js.map +1 -7
- package/dist/commonjs/common/logger.js +8 -28
- package/dist/commonjs/common/logger.js.map +1 -7
- package/dist/commonjs/common/messages.js +169 -189
- package/dist/commonjs/common/messages.js.map +1 -7
- package/dist/commonjs/common/playwrightServiceConfig.js +98 -113
- package/dist/commonjs/common/playwrightServiceConfig.js.map +1 -7
- package/dist/commonjs/common/state.js +10 -30
- package/dist/commonjs/common/state.js.map +1 -7
- package/dist/commonjs/common/types.d.ts +8 -0
- package/dist/commonjs/common/types.d.ts.map +1 -1
- package/dist/commonjs/common/types.js +5 -15
- package/dist/commonjs/common/types.js.map +1 -7
- package/dist/commonjs/core/global/playwright-service-global-setup.js +26 -52
- package/dist/commonjs/core/global/playwright-service-global-setup.js.map +1 -7
- package/dist/commonjs/core/global/playwright-service-global-teardown.js +20 -49
- package/dist/commonjs/core/global/playwright-service-global-teardown.js.map +1 -7
- package/dist/commonjs/core/initializePlaywrightServiceTestRun.js +27 -39
- package/dist/commonjs/core/initializePlaywrightServiceTestRun.js.map +1 -7
- package/dist/commonjs/core/playwrightService.d.ts.map +1 -1
- package/dist/commonjs/core/playwrightService.js +211 -166
- package/dist/commonjs/core/playwrightService.js.map +1 -7
- package/dist/commonjs/core/playwrightServiceEntra.js +48 -67
- package/dist/commonjs/core/playwrightServiceEntra.js.map +1 -7
- package/dist/commonjs/core/playwrightServiceUtils.d.ts.map +1 -1
- package/dist/commonjs/core/playwrightServiceUtils.js +11 -44
- package/dist/commonjs/core/playwrightServiceUtils.js.map +1 -7
- package/dist/commonjs/index.js +18 -36
- package/dist/commonjs/index.js.map +1 -7
- package/dist/commonjs/reporter/index.js +15 -34
- package/dist/commonjs/reporter/index.js.map +1 -7
- package/dist/commonjs/reporter/playwrightReporter.js +216 -222
- package/dist/commonjs/reporter/playwrightReporter.js.map +1 -7
- package/dist/commonjs/utils/PlaywrightServiceClient.js +91 -140
- package/dist/commonjs/utils/PlaywrightServiceClient.js.map +1 -7
- package/dist/commonjs/utils/cIInfoProvider.js +74 -81
- package/dist/commonjs/utils/cIInfoProvider.js.map +1 -7
- package/dist/commonjs/utils/getPackageVersion.d.ts.map +1 -1
- package/dist/commonjs/utils/getPackageVersion.js +19 -50
- package/dist/commonjs/utils/getPackageVersion.js.map +1 -7
- package/dist/commonjs/utils/getPlaywrightVersion.js +21 -42
- package/dist/commonjs/utils/getPlaywrightVersion.js.map +1 -7
- package/dist/commonjs/utils/packageManager.js +40 -59
- package/dist/commonjs/utils/packageManager.js.map +1 -7
- package/dist/commonjs/utils/parseJwt.js +17 -37
- package/dist/commonjs/utils/parseJwt.js.map +1 -7
- package/dist/commonjs/utils/playwrightReporterStorageManager.js +342 -381
- package/dist/commonjs/utils/playwrightReporterStorageManager.js.map +1 -7
- package/dist/commonjs/utils/utils.d.ts.map +1 -1
- package/dist/commonjs/utils/utils.js +368 -417
- package/dist/commonjs/utils/utils.js.map +1 -7
- package/dist/esm/common/constants.d.ts +3 -0
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +4 -0
- package/dist/esm/common/constants.js.map +2 -2
- package/dist/esm/common/types.d.ts +8 -0
- package/dist/esm/common/types.d.ts.map +1 -1
- package/dist/esm/core/playwrightService.d.ts.map +1 -1
- package/dist/esm/core/playwrightService.js +6 -0
- package/dist/esm/core/playwrightService.js.map +2 -2
- package/dist/esm/utils/utils.d.ts.map +1 -1
- package/dist/esm/utils/utils.js +4 -3
- package/dist/esm/utils/utils.js.map +2 -2
- package/dist/react-native/common/constants.d.ts +3 -0
- package/dist/react-native/common/constants.d.ts.map +1 -1
- package/dist/react-native/common/constants.js +3 -0
- package/dist/react-native/common/constants.js.map +1 -1
- package/dist/react-native/common/types.d.ts +8 -0
- package/dist/react-native/common/types.d.ts.map +1 -1
- package/dist/react-native/common/types.js.map +1 -1
- package/dist/react-native/core/playwrightService.d.ts.map +1 -1
- package/dist/react-native/core/playwrightService.js +6 -0
- package/dist/react-native/core/playwrightService.js.map +1 -1
- package/dist/react-native/utils/utils.d.ts.map +1 -1
- package/dist/react-native/utils/utils.js +2 -3
- package/dist/react-native/utils/utils.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,140 +1,111 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.BrowserSessionSourceType = exports.UploadConstants = exports.InternalEnvironmentVariables = exports.UrlConstants = exports.ArmConstants = exports.Constants = exports.RunConfigConstants = exports.SDKLanguage = exports.DefaultConnectOptionsConstants = exports.GitHubActionsConstants = exports.ServiceEnvironmentVariable = exports.ServiceAuth = exports.ServiceOS = exports.EntraIdAccessTokenConstants = void 0;
|
|
6
|
+
exports.EntraIdAccessTokenConstants = {
|
|
7
|
+
LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION: 15,
|
|
8
|
+
SCOPE: "https://management.core.windows.net/.default",
|
|
9
|
+
ROTATION_INTERVAL_PERIOD_IN_MINUTES: 4,
|
|
8
10
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
/** @public
|
|
12
|
+
*
|
|
13
|
+
* OS types supported on Azure Playwright cloud hosted browsers
|
|
14
|
+
*/
|
|
15
|
+
exports.ServiceOS = {
|
|
16
|
+
LINUX: "linux",
|
|
17
|
+
WINDOWS: "windows",
|
|
16
18
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
GitHubActionsConstants: () => GitHubActionsConstants,
|
|
25
|
-
InternalEnvironmentVariables: () => InternalEnvironmentVariables,
|
|
26
|
-
RunConfigConstants: () => RunConfigConstants,
|
|
27
|
-
SDKLanguage: () => SDKLanguage,
|
|
28
|
-
ServiceAuth: () => ServiceAuth,
|
|
29
|
-
ServiceEnvironmentVariable: () => ServiceEnvironmentVariable,
|
|
30
|
-
ServiceOS: () => ServiceOS,
|
|
31
|
-
UploadConstants: () => UploadConstants,
|
|
32
|
-
UrlConstants: () => UrlConstants
|
|
33
|
-
});
|
|
34
|
-
module.exports = __toCommonJS(constants_exports);
|
|
35
|
-
const EntraIdAccessTokenConstants = {
|
|
36
|
-
LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION: 15,
|
|
37
|
-
SCOPE: "https://management.core.windows.net/.default",
|
|
38
|
-
ROTATION_INTERVAL_PERIOD_IN_MINUTES: 4
|
|
19
|
+
/** @public
|
|
20
|
+
*
|
|
21
|
+
* Authentication types supported on Azure Playwright
|
|
22
|
+
*/
|
|
23
|
+
exports.ServiceAuth = {
|
|
24
|
+
ENTRA_ID: "ENTRA_ID",
|
|
25
|
+
ACCESS_TOKEN: "ACCESS_TOKEN",
|
|
39
26
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
/** @public
|
|
28
|
+
*
|
|
29
|
+
* Environment variables used by Azure Playwright
|
|
30
|
+
*/
|
|
31
|
+
exports.ServiceEnvironmentVariable = {
|
|
32
|
+
PLAYWRIGHT_SERVICE_ACCESS_TOKEN: "PLAYWRIGHT_SERVICE_ACCESS_TOKEN",
|
|
33
|
+
PLAYWRIGHT_SERVICE_URL: "PLAYWRIGHT_SERVICE_URL",
|
|
43
34
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
exports.GitHubActionsConstants = {
|
|
36
|
+
GIT_VERSION_COMMAND: "git --version",
|
|
37
|
+
GIT_REV_PARSE: "git rev-parse --is-inside-work-tree",
|
|
38
|
+
GIT_COMMIT_MESSAGE_COMMAND: 'git log -1 --pretty=format:"%s"',
|
|
47
39
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
40
|
+
exports.DefaultConnectOptionsConstants = {
|
|
41
|
+
DEFAULT_TIMEOUT: 30000,
|
|
42
|
+
DEFAULT_SLOW_MO: 0,
|
|
43
|
+
DEFAULT_EXPOSE_NETWORK: "<loopback>",
|
|
44
|
+
DEFAULT_SERVICE_OS: exports.ServiceOS.LINUX,
|
|
45
|
+
DEFAULT_SERVICE_AUTH_TYPE: exports.ServiceAuth.ENTRA_ID,
|
|
51
46
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
exports.SDKLanguage = {
|
|
48
|
+
JAVASCRIPT: "JAVASCRIPT",
|
|
49
|
+
TYPESCRIPT: "TYPESCRIPT",
|
|
50
|
+
CSHARP: "CSHARP",
|
|
56
51
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
DEFAULT_SERVICE_OS: ServiceOS.LINUX,
|
|
62
|
-
DEFAULT_SERVICE_AUTH_TYPE: ServiceAuth.ENTRA_ID
|
|
52
|
+
exports.RunConfigConstants = {
|
|
53
|
+
TEST_FRAMEWORK_NAME: "PLAYWRIGHT",
|
|
54
|
+
TEST_SDK_LANGUAGE: exports.SDKLanguage.JAVASCRIPT,
|
|
55
|
+
TEST_FRAMEWORK_RUNNERNAME: "PLAYWRIGHT",
|
|
63
56
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
exports.Constants = {
|
|
58
|
+
SevenDaysInMS: 7 * 24 * 60 * 60 * 1000,
|
|
59
|
+
OneDayInMS: 24 * 60 * 60 * 1000,
|
|
60
|
+
MinimumSupportedPlaywrightVersion: "1.47.0",
|
|
61
|
+
LatestAPIVersion: "2025-09-01",
|
|
62
|
+
HTTP_CALL_TIMEOUT: 10000,
|
|
68
63
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
TEST_FRAMEWORK_RUNNERNAME: "PLAYWRIGHT"
|
|
64
|
+
exports.ArmConstants = {
|
|
65
|
+
TenantsApiUrl: "https://management.azure.com/tenants",
|
|
66
|
+
TenantsApiVersion: "2025-04-01",
|
|
73
67
|
};
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
68
|
+
exports.UrlConstants = {
|
|
69
|
+
AzurePortalBaseUrl: "https://ms.portal.azure.com",
|
|
70
|
+
ReportingApiSubdomain: "reporting.api",
|
|
71
|
+
ApiSubdomain: "api",
|
|
72
|
+
PlaywrightWorkspacesPath: "playwrightworkspaces",
|
|
73
|
+
TestRunsPath: "test-runs",
|
|
74
|
+
LoadTestServiceProvider: "Microsoft.LoadTestService",
|
|
75
|
+
PlaywrightWorkspacesResourceType: "playwrightWorkspaces",
|
|
76
|
+
TestRunsRoute: "TestRuns",
|
|
77
|
+
ResourceGroupsPath: "resourcegroups",
|
|
78
|
+
ResourcePath: "/resource",
|
|
79
|
+
SubscriptionsPath: "/subscriptions",
|
|
80
|
+
ResourceGroupsUrlPath: "/resourceGroups",
|
|
81
|
+
ProvidersPath: "/providers",
|
|
80
82
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
exports.InternalEnvironmentVariables = {
|
|
84
|
+
MPT_PLAYWRIGHT_VERSION: "_MPT_PLAYWRIGHT_VERSION",
|
|
85
|
+
MPT_SETUP_FATAL_ERROR: "_MPT_SETUP_FATAL_ERROR",
|
|
86
|
+
MPT_SERVICE_RUN_NAME: "_MPT_SERVICE_RUN_NAME",
|
|
87
|
+
MPT_API_VERSION: "_MPT_API_VERSION",
|
|
88
|
+
MPT_SERVICE_RUN_ID: "_MPT_SERVICE_RUN_ID",
|
|
89
|
+
MPT_CLOUD_HOSTED_BROWSER_USED: "_MPT_CLOUD_HOSTED_BROWSER_USED",
|
|
90
|
+
MPT_SERVICE_OS: "_MPT_SERVICE_OS",
|
|
91
|
+
ONE_TIME_OPERATION_FLAG: "_ONE_TIME_OPERATION_FLAG",
|
|
92
|
+
USING_SERVICE_CONFIG: "_USING_SERVICE_CONFIG",
|
|
93
|
+
TEST_RUN_CREATION_SUCCESS: "_MPT_TEST_RUN_CREATION_SUCCESS",
|
|
84
94
|
};
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
ResourceGroupsUrlPath: "/resourceGroups",
|
|
98
|
-
ProvidersPath: "/providers"
|
|
95
|
+
exports.UploadConstants = {
|
|
96
|
+
SMALL_FILE_THRESHOLD: 1024 * 1024,
|
|
97
|
+
LARGE_FILE_THRESHOLD: 100 * 1024 * 1024,
|
|
98
|
+
BASE_CONCURRENCY: 20,
|
|
99
|
+
MAX_CONCURRENCY: 50,
|
|
100
|
+
PER_FILE_CONCURRENCY: 10,
|
|
101
|
+
LARGE_FILE_CONCURRENCY: 5,
|
|
102
|
+
BATCH_SIZE: 100,
|
|
103
|
+
OPTIMIZED_BLOCK_SIZE: 8 * 1024 * 1024,
|
|
104
|
+
STREAM_BUFFER_SIZE: 4 * 1024 * 1024,
|
|
105
|
+
MAX_RETRY_ATTEMPTS: 3,
|
|
106
|
+
RETRY_BASE_DELAY: 1000,
|
|
99
107
|
};
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
MPT_SETUP_FATAL_ERROR: "_MPT_SETUP_FATAL_ERROR",
|
|
103
|
-
MPT_SERVICE_RUN_NAME: "_MPT_SERVICE_RUN_NAME",
|
|
104
|
-
MPT_API_VERSION: "_MPT_API_VERSION",
|
|
105
|
-
MPT_SERVICE_RUN_ID: "_MPT_SERVICE_RUN_ID",
|
|
106
|
-
MPT_CLOUD_HOSTED_BROWSER_USED: "_MPT_CLOUD_HOSTED_BROWSER_USED",
|
|
107
|
-
MPT_SERVICE_OS: "_MPT_SERVICE_OS",
|
|
108
|
-
ONE_TIME_OPERATION_FLAG: "_ONE_TIME_OPERATION_FLAG",
|
|
109
|
-
USING_SERVICE_CONFIG: "_USING_SERVICE_CONFIG",
|
|
110
|
-
TEST_RUN_CREATION_SUCCESS: "_MPT_TEST_RUN_CREATION_SUCCESS"
|
|
108
|
+
exports.BrowserSessionSourceType = {
|
|
109
|
+
PLAYWRIGHT_WORKSPACES_TEST_RUN: "PlaywrightWorkspacesTestRun",
|
|
111
110
|
};
|
|
112
|
-
|
|
113
|
-
SMALL_FILE_THRESHOLD: 1024 * 1024,
|
|
114
|
-
LARGE_FILE_THRESHOLD: 100 * 1024 * 1024,
|
|
115
|
-
BASE_CONCURRENCY: 20,
|
|
116
|
-
MAX_CONCURRENCY: 50,
|
|
117
|
-
PER_FILE_CONCURRENCY: 10,
|
|
118
|
-
LARGE_FILE_CONCURRENCY: 5,
|
|
119
|
-
BATCH_SIZE: 100,
|
|
120
|
-
OPTIMIZED_BLOCK_SIZE: 8 * 1024 * 1024,
|
|
121
|
-
STREAM_BUFFER_SIZE: 4 * 1024 * 1024,
|
|
122
|
-
MAX_RETRY_ATTEMPTS: 3,
|
|
123
|
-
RETRY_BASE_DELAY: 1e3
|
|
124
|
-
};
|
|
125
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
126
|
-
0 && (module.exports = {
|
|
127
|
-
ArmConstants,
|
|
128
|
-
Constants,
|
|
129
|
-
DefaultConnectOptionsConstants,
|
|
130
|
-
EntraIdAccessTokenConstants,
|
|
131
|
-
GitHubActionsConstants,
|
|
132
|
-
InternalEnvironmentVariables,
|
|
133
|
-
RunConfigConstants,
|
|
134
|
-
SDKLanguage,
|
|
135
|
-
ServiceAuth,
|
|
136
|
-
ServiceEnvironmentVariable,
|
|
137
|
-
ServiceOS,
|
|
138
|
-
UploadConstants,
|
|
139
|
-
UrlConstants
|
|
140
|
-
});
|
|
111
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/playwright/src/common/constants.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const EntraIdAccessTokenConstants = {\n LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION: 15,\n SCOPE: \"https://management.core.windows.net/.default\",\n ROTATION_INTERVAL_PERIOD_IN_MINUTES: 4,\n};\n\n/** @public\n *\n * OS types supported on Azure Playwright cloud hosted browsers\n */\nexport const ServiceOS = {\n LINUX: \"linux\",\n WINDOWS: \"windows\",\n} as const;\n\n/** @public\n *\n * Authentication types supported on Azure Playwright\n */\nexport const ServiceAuth = {\n ENTRA_ID: \"ENTRA_ID\",\n ACCESS_TOKEN: \"ACCESS_TOKEN\",\n} as const;\n\n/** @public\n *\n * Environment variables used by Azure Playwright\n */\nexport const ServiceEnvironmentVariable = {\n PLAYWRIGHT_SERVICE_ACCESS_TOKEN: \"PLAYWRIGHT_SERVICE_ACCESS_TOKEN\",\n PLAYWRIGHT_SERVICE_URL: \"PLAYWRIGHT_SERVICE_URL\",\n};\n\nexport const GitHubActionsConstants = {\n GIT_VERSION_COMMAND: \"git --version\",\n GIT_REV_PARSE: \"git rev-parse --is-inside-work-tree\",\n GIT_COMMIT_MESSAGE_COMMAND: 'git log -1 --pretty=format:\"%s\"',\n};\n\nexport const DefaultConnectOptionsConstants = {\n DEFAULT_TIMEOUT: 30000,\n DEFAULT_SLOW_MO: 0,\n DEFAULT_EXPOSE_NETWORK: \"<loopback>\",\n DEFAULT_SERVICE_OS: ServiceOS.LINUX,\n DEFAULT_SERVICE_AUTH_TYPE: ServiceAuth.ENTRA_ID,\n};\n\nexport const SDKLanguage = {\n JAVASCRIPT: \"JAVASCRIPT\",\n TYPESCRIPT: \"TYPESCRIPT\",\n CSHARP: \"CSHARP\",\n};\n\nexport const RunConfigConstants = {\n TEST_FRAMEWORK_NAME: \"PLAYWRIGHT\",\n TEST_SDK_LANGUAGE: SDKLanguage.JAVASCRIPT,\n TEST_FRAMEWORK_RUNNERNAME: \"PLAYWRIGHT\",\n};\n\nexport const Constants = {\n SevenDaysInMS: 7 * 24 * 60 * 60 * 1000,\n OneDayInMS: 24 * 60 * 60 * 1000,\n MinimumSupportedPlaywrightVersion: \"1.47.0\",\n LatestAPIVersion: \"2025-09-01\",\n HTTP_CALL_TIMEOUT: 10000,\n};\n\nexport const ArmConstants = {\n TenantsApiUrl: \"https://management.azure.com/tenants\",\n TenantsApiVersion: \"2025-04-01\",\n};\n\nexport const UrlConstants = {\n AzurePortalBaseUrl: \"https://ms.portal.azure.com\",\n ReportingApiSubdomain: \"reporting.api\",\n ApiSubdomain: \"api\",\n PlaywrightWorkspacesPath: \"playwrightworkspaces\",\n TestRunsPath: \"test-runs\",\n LoadTestServiceProvider: \"Microsoft.LoadTestService\",\n PlaywrightWorkspacesResourceType: \"playwrightWorkspaces\",\n TestRunsRoute: \"TestRuns\",\n ResourceGroupsPath: \"resourcegroups\",\n ResourcePath: \"/resource\",\n SubscriptionsPath: \"/subscriptions\",\n ResourceGroupsUrlPath: \"/resourceGroups\",\n ProvidersPath: \"/providers\",\n};\n\nexport const InternalEnvironmentVariables = {\n MPT_PLAYWRIGHT_VERSION: \"_MPT_PLAYWRIGHT_VERSION\",\n MPT_SETUP_FATAL_ERROR: \"_MPT_SETUP_FATAL_ERROR\",\n MPT_SERVICE_RUN_NAME: \"_MPT_SERVICE_RUN_NAME\",\n MPT_API_VERSION: \"_MPT_API_VERSION\",\n MPT_SERVICE_RUN_ID: \"_MPT_SERVICE_RUN_ID\",\n MPT_CLOUD_HOSTED_BROWSER_USED: \"_MPT_CLOUD_HOSTED_BROWSER_USED\",\n MPT_SERVICE_OS: \"_MPT_SERVICE_OS\",\n ONE_TIME_OPERATION_FLAG: \"_ONE_TIME_OPERATION_FLAG\",\n USING_SERVICE_CONFIG: \"_USING_SERVICE_CONFIG\",\n TEST_RUN_CREATION_SUCCESS: \"_MPT_TEST_RUN_CREATION_SUCCESS\",\n};\n\nexport const UploadConstants = {\n SMALL_FILE_THRESHOLD: 1024 * 1024,\n LARGE_FILE_THRESHOLD: 100 * 1024 * 1024,\n BASE_CONCURRENCY: 20,\n MAX_CONCURRENCY: 50,\n PER_FILE_CONCURRENCY: 10,\n LARGE_FILE_CONCURRENCY: 5,\n BATCH_SIZE: 100,\n OPTIMIZED_BLOCK_SIZE: 8 * 1024 * 1024,\n STREAM_BUFFER_SIZE: 4 * 1024 * 1024,\n MAX_RETRY_ATTEMPTS: 3,\n RETRY_BASE_DELAY: 1000,\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,8BAA8B;AAAA,EACzC,iDAAiD;AAAA,EACjD,OAAO;AAAA,EACP,qCAAqC;AACvC;AAMO,MAAM,YAAY;AAAA,EACvB,OAAO;AAAA,EACP,SAAS;AACX;AAMO,MAAM,cAAc;AAAA,EACzB,UAAU;AAAA,EACV,cAAc;AAChB;AAMO,MAAM,6BAA6B;AAAA,EACxC,iCAAiC;AAAA,EACjC,wBAAwB;AAC1B;AAEO,MAAM,yBAAyB;AAAA,EACpC,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,4BAA4B;AAC9B;AAEO,MAAM,iCAAiC;AAAA,EAC5C,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EACxB,oBAAoB,UAAU;AAAA,EAC9B,2BAA2B,YAAY;AACzC;AAEO,MAAM,cAAc;AAAA,EACzB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AACV;AAEO,MAAM,qBAAqB;AAAA,EAChC,qBAAqB;AAAA,EACrB,mBAAmB,YAAY;AAAA,EAC/B,2BAA2B;AAC7B;AAEO,MAAM,YAAY;AAAA,EACvB,eAAe,IAAI,KAAK,KAAK,KAAK;AAAA,EAClC,YAAY,KAAK,KAAK,KAAK;AAAA,EAC3B,mCAAmC;AAAA,EACnC,kBAAkB;AAAA,EAClB,mBAAmB;AACrB;AAEO,MAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,EACf,mBAAmB;AACrB;AAEO,MAAM,eAAe;AAAA,EAC1B,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,cAAc;AAAA,EACd,0BAA0B;AAAA,EAC1B,cAAc;AAAA,EACd,yBAAyB;AAAA,EACzB,kCAAkC;AAAA,EAClC,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,eAAe;AACjB;AAEO,MAAM,+BAA+B;AAAA,EAC1C,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,+BAA+B;AAAA,EAC/B,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,2BAA2B;AAC7B;AAEO,MAAM,kBAAkB;AAAA,EAC7B,sBAAsB,OAAO;AAAA,EAC7B,sBAAsB,MAAM,OAAO;AAAA,EACnC,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,YAAY;AAAA,EACZ,sBAAsB,IAAI,OAAO;AAAA,EACjC,oBAAoB,IAAI,OAAO;AAAA,EAC/B,oBAAoB;AAAA,EACpB,kBAAkB;AACpB;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const EntraIdAccessTokenConstants = {\n LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION: 15,\n SCOPE: \"https://management.core.windows.net/.default\",\n ROTATION_INTERVAL_PERIOD_IN_MINUTES: 4,\n};\n\n/** @public\n *\n * OS types supported on Azure Playwright cloud hosted browsers\n */\nexport const ServiceOS = {\n LINUX: \"linux\",\n WINDOWS: \"windows\",\n} as const;\n\n/** @public\n *\n * Authentication types supported on Azure Playwright\n */\nexport const ServiceAuth = {\n ENTRA_ID: \"ENTRA_ID\",\n ACCESS_TOKEN: \"ACCESS_TOKEN\",\n} as const;\n\n/** @public\n *\n * Environment variables used by Azure Playwright\n */\nexport const ServiceEnvironmentVariable = {\n PLAYWRIGHT_SERVICE_ACCESS_TOKEN: \"PLAYWRIGHT_SERVICE_ACCESS_TOKEN\",\n PLAYWRIGHT_SERVICE_URL: \"PLAYWRIGHT_SERVICE_URL\",\n};\n\nexport const GitHubActionsConstants = {\n GIT_VERSION_COMMAND: \"git --version\",\n GIT_REV_PARSE: \"git rev-parse --is-inside-work-tree\",\n GIT_COMMIT_MESSAGE_COMMAND: 'git log -1 --pretty=format:\"%s\"',\n};\n\nexport const DefaultConnectOptionsConstants = {\n DEFAULT_TIMEOUT: 30000,\n DEFAULT_SLOW_MO: 0,\n DEFAULT_EXPOSE_NETWORK: \"<loopback>\",\n DEFAULT_SERVICE_OS: ServiceOS.LINUX,\n DEFAULT_SERVICE_AUTH_TYPE: ServiceAuth.ENTRA_ID,\n};\n\nexport const SDKLanguage = {\n JAVASCRIPT: \"JAVASCRIPT\",\n TYPESCRIPT: \"TYPESCRIPT\",\n CSHARP: \"CSHARP\",\n};\n\nexport const RunConfigConstants = {\n TEST_FRAMEWORK_NAME: \"PLAYWRIGHT\",\n TEST_SDK_LANGUAGE: SDKLanguage.JAVASCRIPT,\n TEST_FRAMEWORK_RUNNERNAME: \"PLAYWRIGHT\",\n};\n\nexport const Constants = {\n SevenDaysInMS: 7 * 24 * 60 * 60 * 1000,\n OneDayInMS: 24 * 60 * 60 * 1000,\n MinimumSupportedPlaywrightVersion: \"1.47.0\",\n LatestAPIVersion: \"2025-09-01\",\n HTTP_CALL_TIMEOUT: 10000,\n};\n\nexport const ArmConstants = {\n TenantsApiUrl: \"https://management.azure.com/tenants\",\n TenantsApiVersion: \"2025-04-01\",\n};\n\nexport const UrlConstants = {\n AzurePortalBaseUrl: \"https://ms.portal.azure.com\",\n ReportingApiSubdomain: \"reporting.api\",\n ApiSubdomain: \"api\",\n PlaywrightWorkspacesPath: \"playwrightworkspaces\",\n TestRunsPath: \"test-runs\",\n LoadTestServiceProvider: \"Microsoft.LoadTestService\",\n PlaywrightWorkspacesResourceType: \"playwrightWorkspaces\",\n TestRunsRoute: \"TestRuns\",\n ResourceGroupsPath: \"resourcegroups\",\n ResourcePath: \"/resource\",\n SubscriptionsPath: \"/subscriptions\",\n ResourceGroupsUrlPath: \"/resourceGroups\",\n ProvidersPath: \"/providers\",\n};\n\nexport const InternalEnvironmentVariables = {\n MPT_PLAYWRIGHT_VERSION: \"_MPT_PLAYWRIGHT_VERSION\",\n MPT_SETUP_FATAL_ERROR: \"_MPT_SETUP_FATAL_ERROR\",\n MPT_SERVICE_RUN_NAME: \"_MPT_SERVICE_RUN_NAME\",\n MPT_API_VERSION: \"_MPT_API_VERSION\",\n MPT_SERVICE_RUN_ID: \"_MPT_SERVICE_RUN_ID\",\n MPT_CLOUD_HOSTED_BROWSER_USED: \"_MPT_CLOUD_HOSTED_BROWSER_USED\",\n MPT_SERVICE_OS: \"_MPT_SERVICE_OS\",\n ONE_TIME_OPERATION_FLAG: \"_ONE_TIME_OPERATION_FLAG\",\n USING_SERVICE_CONFIG: \"_USING_SERVICE_CONFIG\",\n TEST_RUN_CREATION_SUCCESS: \"_MPT_TEST_RUN_CREATION_SUCCESS\",\n};\n\nexport const UploadConstants = {\n SMALL_FILE_THRESHOLD: 1024 * 1024,\n LARGE_FILE_THRESHOLD: 100 * 1024 * 1024,\n BASE_CONCURRENCY: 20,\n MAX_CONCURRENCY: 50,\n PER_FILE_CONCURRENCY: 10,\n LARGE_FILE_CONCURRENCY: 5,\n BATCH_SIZE: 100,\n OPTIMIZED_BLOCK_SIZE: 8 * 1024 * 1024,\n STREAM_BUFFER_SIZE: 4 * 1024 * 1024,\n MAX_RETRY_ATTEMPTS: 3,\n RETRY_BASE_DELAY: 1000,\n};\n\nexport const BrowserSessionSourceType = {\n PLAYWRIGHT_WORKSPACES_TEST_RUN: \"PlaywrightWorkspacesTestRun\",\n};\n"]}
|
|
@@ -1,35 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var customerConfig_exports = {};
|
|
19
|
-
__export(customerConfig_exports, {
|
|
20
|
-
default: () => customerConfig_default
|
|
21
|
-
});
|
|
22
|
-
module.exports = __toCommonJS(customerConfig_exports);
|
|
23
|
-
var import_state = require("./state.js");
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const state_js_1 = require("./state.js");
|
|
24
6
|
class CustomerConfig {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
7
|
+
globalSetup;
|
|
8
|
+
globalTeardown;
|
|
9
|
+
static getInstance() {
|
|
10
|
+
if (!state_js_1.state.customerConfig) {
|
|
11
|
+
state_js_1.state.customerConfig = new CustomerConfig();
|
|
12
|
+
}
|
|
13
|
+
return state_js_1.state.customerConfig;
|
|
30
14
|
}
|
|
31
|
-
return import_state.state.customerConfig;
|
|
32
|
-
}
|
|
33
15
|
}
|
|
34
16
|
const customerConfig = CustomerConfig.getInstance();
|
|
35
|
-
|
|
17
|
+
exports.default = customerConfig;
|
|
18
|
+
//# sourceMappingURL=customerConfig.js.map
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/playwright/src/common/customerConfig.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { state } from \"./state.js\";\n\nclass CustomerConfig {\n public globalSetup?: string | string[];\n public globalTeardown?: string | string[];\n\n public static getInstance(): CustomerConfig {\n if (!state.customerConfig) {\n state.customerConfig = new CustomerConfig();\n }\n return state.customerConfig;\n }\n}\n\nconst customerConfig = CustomerConfig.getInstance();\nexport default customerConfig;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAsB;AAEtB,MAAM,eAAe;AAAA,EACZ;AAAA,EACA;AAAA,EAEP,OAAc,cAA8B;AAC1C,QAAI,CAAC,mBAAM,gBAAgB;AACzB,yBAAM,iBAAiB,IAAI,eAAe;AAAA,IAC5C;AACA,WAAO,mBAAM;AAAA,EACf;AACF;AAEA,MAAM,iBAAiB,eAAe,YAAY;AAClD,IAAO,yBAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"customerConfig.js","sourceRoot":"","sources":["../../../src/common/customerConfig.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,yCAAmC;AAEnC,MAAM,cAAc;IACX,WAAW,CAAqB;IAChC,cAAc,CAAqB;IAEnC,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,gBAAK,CAAC,cAAc,EAAE,CAAC;YAC1B,gBAAK,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,gBAAK,CAAC,cAAc,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;AACpD,kBAAe,cAAc,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { state } from \"./state.js\";\n\nclass CustomerConfig {\n public globalSetup?: string | string[];\n public globalTeardown?: string | string[];\n\n public static getInstance(): CustomerConfig {\n if (!state.customerConfig) {\n state.customerConfig = new CustomerConfig();\n }\n return state.customerConfig;\n }\n}\n\nconst customerConfig = CustomerConfig.getInstance();\nexport default customerConfig;\n"]}
|
|
@@ -1,112 +1,89 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var entraIdAccessToken_exports = {};
|
|
19
|
-
__export(entraIdAccessToken_exports, {
|
|
20
|
-
EntraIdAccessToken: () => EntraIdAccessToken,
|
|
21
|
-
createEntraIdAccessToken: () => createEntraIdAccessToken
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(entraIdAccessToken_exports);
|
|
24
|
-
var import_logger = require("./logger.js");
|
|
25
|
-
var import_constants = require("./constants.js");
|
|
26
|
-
var import_parseJwt = require("../utils/parseJwt.js");
|
|
27
|
-
var import_messages = require("./messages.js");
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.EntraIdAccessToken = void 0;
|
|
6
|
+
exports.createEntraIdAccessToken = createEntraIdAccessToken;
|
|
7
|
+
const logger_js_1 = require("./logger.js");
|
|
8
|
+
const constants_js_1 = require("./constants.js");
|
|
9
|
+
const parseJwt_js_1 = require("../utils/parseJwt.js");
|
|
10
|
+
const messages_js_1 = require("./messages.js");
|
|
28
11
|
class EntraIdAccessToken {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
12
|
+
token;
|
|
13
|
+
_expiryTimestamp; // in milliseconds
|
|
14
|
+
_credential;
|
|
15
|
+
_noOpFlag = false;
|
|
16
|
+
constructor(credential) {
|
|
17
|
+
this._credential = credential;
|
|
18
|
+
if (!this._credential) {
|
|
19
|
+
this._noOpFlag = true;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.setEntraIdAccessTokenFromEnvironment();
|
|
39
23
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
24
|
+
fetchEntraIdAccessToken = async () => {
|
|
25
|
+
if (this._noOpFlag) {
|
|
26
|
+
throw new Error(messages_js_1.ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
logger_js_1.coreLogger.info("Fetching entra id access token");
|
|
30
|
+
const accessToken = await this._credential.getToken(constants_js_1.EntraIdAccessTokenConstants.SCOPE);
|
|
31
|
+
if (!accessToken) {
|
|
32
|
+
throw new Error("Entra id access token is null");
|
|
33
|
+
}
|
|
34
|
+
if (accessToken.token === this.token) {
|
|
35
|
+
// azure identity library can fetch the same token again from cache. 10 mins before expiry, it allows token refresh
|
|
36
|
+
logger_js_1.coreLogger.info("Cached access token is returned, will be retried again.");
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.token = accessToken.token;
|
|
40
|
+
this._expiryTimestamp = accessToken.expiresOnTimestamp;
|
|
41
|
+
process.env[constants_js_1.ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN] = this.token;
|
|
42
|
+
logger_js_1.coreLogger.info("Entra id access token fetched and set in environment variable");
|
|
43
|
+
logger_js_1.coreLogger.info("Entra id access token expiry:", new Date(this._expiryTimestamp).toISOString());
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
logger_js_1.coreLogger.error(err);
|
|
48
|
+
process.env[constants_js_1.InternalEnvironmentVariables.MPT_SETUP_FATAL_ERROR] = "true";
|
|
49
|
+
throw new Error(messages_js_1.ServiceErrorMessageConstants.NO_AUTH_ERROR_ENTRA_TOKEN.message);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
doesEntraIdAccessTokenNeedRotation() {
|
|
53
|
+
if (this._noOpFlag) {
|
|
54
|
+
throw new Error(messages_js_1.ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);
|
|
55
|
+
}
|
|
56
|
+
if (!this.token) {
|
|
57
|
+
logger_js_1.coreLogger.info("Entra id access token not found, needs rotation");
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
const lifetimeLeft = this._expiryTimestamp - new Date().getTime();
|
|
61
|
+
const doesEntraTokenRequireRotation = lifetimeLeft <
|
|
62
|
+
constants_js_1.EntraIdAccessTokenConstants.LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION * 60 * 1000;
|
|
63
|
+
logger_js_1.coreLogger.info("Entra id access token requires rotation:", doesEntraTokenRequireRotation ? "Yes" : "No");
|
|
64
|
+
return doesEntraTokenRequireRotation;
|
|
45
65
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return;
|
|
65
|
-
} catch (err) {
|
|
66
|
-
import_logger.coreLogger.error(err);
|
|
67
|
-
process.env[import_constants.InternalEnvironmentVariables.MPT_SETUP_FATAL_ERROR] = "true";
|
|
68
|
-
throw new Error(import_messages.ServiceErrorMessageConstants.NO_AUTH_ERROR_ENTRA_TOKEN.message);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
doesEntraIdAccessTokenNeedRotation() {
|
|
72
|
-
if (this._noOpFlag) {
|
|
73
|
-
throw new Error(import_messages.ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);
|
|
74
|
-
}
|
|
75
|
-
if (!this.token) {
|
|
76
|
-
import_logger.coreLogger.info("Entra id access token not found, needs rotation");
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
const lifetimeLeft = this._expiryTimestamp - (/* @__PURE__ */ new Date()).getTime();
|
|
80
|
-
const doesEntraTokenRequireRotation = lifetimeLeft < import_constants.EntraIdAccessTokenConstants.LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION * 60 * 1e3;
|
|
81
|
-
import_logger.coreLogger.info(
|
|
82
|
-
"Entra id access token requires rotation:",
|
|
83
|
-
doesEntraTokenRequireRotation ? "Yes" : "No"
|
|
84
|
-
);
|
|
85
|
-
return doesEntraTokenRequireRotation;
|
|
86
|
-
}
|
|
87
|
-
setEntraIdAccessTokenFromEnvironment = () => {
|
|
88
|
-
try {
|
|
89
|
-
const token = process.env[import_constants.ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN];
|
|
90
|
-
if (!token) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const claims = (0, import_parseJwt.parseJwt)(token);
|
|
94
|
-
if (claims.pwid) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
const expiry = new Date(claims.exp * 1e3);
|
|
98
|
-
this.token = token;
|
|
99
|
-
this._expiryTimestamp = expiry.getTime();
|
|
100
|
-
} catch (_) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
};
|
|
66
|
+
setEntraIdAccessTokenFromEnvironment = () => {
|
|
67
|
+
try {
|
|
68
|
+
const token = process.env[constants_js_1.ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN];
|
|
69
|
+
if (!token) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const claims = (0, parseJwt_js_1.parseJwt)(token);
|
|
73
|
+
if (claims.pwid) {
|
|
74
|
+
return;
|
|
75
|
+
} // mpt PAT
|
|
76
|
+
const expiry = new Date(claims.exp * 1000);
|
|
77
|
+
this.token = token;
|
|
78
|
+
this._expiryTimestamp = expiry.getTime();
|
|
79
|
+
}
|
|
80
|
+
catch (_) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
104
84
|
}
|
|
85
|
+
exports.EntraIdAccessToken = EntraIdAccessToken;
|
|
105
86
|
function createEntraIdAccessToken(credential) {
|
|
106
|
-
|
|
87
|
+
return new EntraIdAccessToken(credential);
|
|
107
88
|
}
|
|
108
|
-
|
|
109
|
-
0 && (module.exports = {
|
|
110
|
-
EntraIdAccessToken,
|
|
111
|
-
createEntraIdAccessToken
|
|
112
|
-
});
|
|
89
|
+
//# sourceMappingURL=entraIdAccessToken.js.map
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/playwright/src/common/entraIdAccessToken.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { coreLogger } from \"./logger.js\";\nimport {\n EntraIdAccessTokenConstants,\n InternalEnvironmentVariables,\n ServiceEnvironmentVariable,\n} from \"./constants.js\";\nimport type { AccessTokenClaims } from \"./types.js\";\nimport { parseJwt } from \"../utils/parseJwt.js\";\nimport { ServiceErrorMessageConstants } from \"./messages.js\";\n\nexport class EntraIdAccessToken {\n public token?: string;\n private _expiryTimestamp?: number; // in milliseconds\n private _credential?: TokenCredential;\n private _noOpFlag = false;\n\n constructor(credential?: TokenCredential) {\n this._credential = credential;\n if (!this._credential) {\n this._noOpFlag = true;\n return;\n }\n this.setEntraIdAccessTokenFromEnvironment();\n }\n\n public fetchEntraIdAccessToken = async (): Promise<void> => {\n if (this._noOpFlag) {\n throw new Error(ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);\n }\n try {\n coreLogger.info(\"Fetching entra id access token\");\n const accessToken = await this._credential!.getToken(EntraIdAccessTokenConstants.SCOPE);\n if (!accessToken) {\n throw new Error(\"Entra id access token is null\");\n }\n if (accessToken.token === this.token) {\n // azure identity library can fetch the same token again from cache. 10 mins before expiry, it allows token refresh\n coreLogger.info(\"Cached access token is returned, will be retried again.\");\n return;\n }\n this.token = accessToken.token;\n this._expiryTimestamp = accessToken.expiresOnTimestamp;\n process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN] = this.token!;\n coreLogger.info(\"Entra id access token fetched and set in environment variable\");\n coreLogger.info(\n \"Entra id access token expiry:\",\n new Date(this._expiryTimestamp!).toISOString(),\n );\n return;\n } catch (err) {\n coreLogger.error(err);\n process.env[InternalEnvironmentVariables.MPT_SETUP_FATAL_ERROR] = \"true\";\n throw new Error(ServiceErrorMessageConstants.NO_AUTH_ERROR_ENTRA_TOKEN.message);\n }\n };\n\n public doesEntraIdAccessTokenNeedRotation(): boolean {\n if (this._noOpFlag) {\n throw new Error(ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);\n }\n if (!this.token) {\n coreLogger.info(\"Entra id access token not found, needs rotation\");\n return true;\n }\n const lifetimeLeft = this._expiryTimestamp! - new Date().getTime();\n const doesEntraTokenRequireRotation =\n lifetimeLeft <\n EntraIdAccessTokenConstants.LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION * 60 * 1000;\n coreLogger.info(\n \"Entra id access token requires rotation:\",\n doesEntraTokenRequireRotation ? \"Yes\" : \"No\",\n );\n return doesEntraTokenRequireRotation;\n }\n\n private setEntraIdAccessTokenFromEnvironment = (): void => {\n try {\n const token = process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN];\n if (!token) {\n return;\n }\n const claims = parseJwt<Partial<AccessTokenClaims>>(token);\n if (claims.pwid) {\n return;\n } // mpt PAT\n const expiry = new Date(claims.exp! * 1000);\n this.token = token;\n this._expiryTimestamp = expiry.getTime();\n } catch (_) {\n return;\n }\n };\n}\n\nexport function createEntraIdAccessToken(credential?: TokenCredential): EntraIdAccessToken {\n return new EntraIdAccessToken(credential);\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,oBAA2B;AAC3B,uBAIO;AAEP,sBAAyB;AACzB,sBAA6C;AAEtC,MAAM,mBAAmB;AAAA,EACvB;AAAA,EACC;AAAA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EAEpB,YAAY,YAA8B;AACxC,SAAK,cAAc;AACnB,QAAI,CAAC,KAAK,aAAa;AACrB,WAAK,YAAY;AACjB;AAAA,IACF;AACA,SAAK,qCAAqC;AAAA,EAC5C;AAAA,EAEO,0BAA0B,YAA2B;AAC1D,QAAI,KAAK,WAAW;AAClB,YAAM,IAAI,MAAM,6CAA6B,yBAAyB,OAAO;AAAA,IAC/E;AACA,QAAI;AACF,+BAAW,KAAK,gCAAgC;AAChD,YAAM,cAAc,MAAM,KAAK,YAAa,SAAS,6CAA4B,KAAK;AACtF,UAAI,CAAC,aAAa;AAChB,cAAM,IAAI,MAAM,+BAA+B;AAAA,MACjD;AACA,UAAI,YAAY,UAAU,KAAK,OAAO;AAEpC,iCAAW,KAAK,yDAAyD;AACzE;AAAA,MACF;AACA,WAAK,QAAQ,YAAY;AACzB,WAAK,mBAAmB,YAAY;AACpC,cAAQ,IAAI,4CAA2B,+BAA+B,IAAI,KAAK;AAC/E,+BAAW,KAAK,+DAA+D;AAC/E,+BAAW;AAAA,QACT;AAAA,QACA,IAAI,KAAK,KAAK,gBAAiB,EAAE,YAAY;AAAA,MAC/C;AACA;AAAA,IACF,SAAS,KAAK;AACZ,+BAAW,MAAM,GAAG;AACpB,cAAQ,IAAI,8CAA6B,qBAAqB,IAAI;AAClE,YAAM,IAAI,MAAM,6CAA6B,0BAA0B,OAAO;AAAA,IAChF;AAAA,EACF;AAAA,EAEO,qCAA8C;AACnD,QAAI,KAAK,WAAW;AAClB,YAAM,IAAI,MAAM,6CAA6B,yBAAyB,OAAO;AAAA,IAC/E;AACA,QAAI,CAAC,KAAK,OAAO;AACf,+BAAW,KAAK,iDAAiD;AACjE,aAAO;AAAA,IACT;AACA,UAAM,eAAe,KAAK,oBAAoB,oBAAI,KAAK,GAAE,QAAQ;AACjE,UAAM,gCACJ,eACA,6CAA4B,kDAAkD,KAAK;AACrF,6BAAW;AAAA,MACT;AAAA,MACA,gCAAgC,QAAQ;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AAAA,EAEQ,uCAAuC,MAAY;AACzD,QAAI;AACF,YAAM,QAAQ,QAAQ,IAAI,4CAA2B,+BAA+B;AACpF,UAAI,CAAC,OAAO;AACV;AAAA,MACF;AACA,YAAM,aAAS,0BAAqC,KAAK;AACzD,UAAI,OAAO,MAAM;AACf;AAAA,MACF;AACA,YAAM,SAAS,IAAI,KAAK,OAAO,MAAO,GAAI;AAC1C,WAAK,QAAQ;AACb,WAAK,mBAAmB,OAAO,QAAQ;AAAA,IACzC,SAAS,GAAG;AACV;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,yBAAyB,YAAkD;AACzF,SAAO,IAAI,mBAAmB,UAAU;AAC1C;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"entraIdAccessToken.js","sourceRoot":"","sources":["../../../src/common/entraIdAccessToken.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAiGlC,4DAEC;AAhGD,2CAAyC;AACzC,iDAIwB;AAExB,sDAAgD;AAChD,+CAA6D;AAE7D,MAAa,kBAAkB;IACtB,KAAK,CAAU;IACd,gBAAgB,CAAU,CAAC,kBAAkB;IAC7C,WAAW,CAAmB;IAC9B,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,UAA4B;QACtC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,oCAAoC,EAAE,CAAC;IAC9C,CAAC;IAEM,uBAAuB,GAAG,KAAK,IAAmB,EAAE;QACzD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA4B,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC;YACH,sBAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAY,CAAC,QAAQ,CAAC,0CAA2B,CAAC,KAAK,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrC,mHAAmH;gBACnH,sBAAU,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,kBAAkB,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,yCAA0B,CAAC,+BAA+B,CAAC,GAAG,IAAI,CAAC,KAAM,CAAC;YACtF,sBAAU,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YACjF,sBAAU,CAAC,IAAI,CACb,+BAA+B,EAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAiB,CAAC,CAAC,WAAW,EAAE,CAC/C,CAAC;YACF,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sBAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,0CAA4B,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC;IAEK,kCAAkC;QACvC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA4B,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,sBAAU,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,6BAA6B,GACjC,YAAY;YACZ,0CAA2B,CAAC,+CAA+C,GAAG,EAAE,GAAG,IAAI,CAAC;QAC1F,sBAAU,CAAC,IAAI,CACb,0CAA0C,EAC1C,6BAA6B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC7C,CAAC;QACF,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAEO,oCAAoC,GAAG,GAAS,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,yCAA0B,CAAC,+BAA+B,CAAC,CAAC;YACtF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,sBAAQ,EAA6B,KAAK,CAAC,CAAC;YAC3D,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC,CAAC,UAAU;YACZ,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAI,GAAG,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC,CAAC;CACH;AAlFD,gDAkFC;AAED,SAAgB,wBAAwB,CAAC,UAA4B;IACnE,OAAO,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { coreLogger } from \"./logger.js\";\nimport {\n EntraIdAccessTokenConstants,\n InternalEnvironmentVariables,\n ServiceEnvironmentVariable,\n} from \"./constants.js\";\nimport type { AccessTokenClaims } from \"./types.js\";\nimport { parseJwt } from \"../utils/parseJwt.js\";\nimport { ServiceErrorMessageConstants } from \"./messages.js\";\n\nexport class EntraIdAccessToken {\n public token?: string;\n private _expiryTimestamp?: number; // in milliseconds\n private _credential?: TokenCredential;\n private _noOpFlag = false;\n\n constructor(credential?: TokenCredential) {\n this._credential = credential;\n if (!this._credential) {\n this._noOpFlag = true;\n return;\n }\n this.setEntraIdAccessTokenFromEnvironment();\n }\n\n public fetchEntraIdAccessToken = async (): Promise<void> => {\n if (this._noOpFlag) {\n throw new Error(ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);\n }\n try {\n coreLogger.info(\"Fetching entra id access token\");\n const accessToken = await this._credential!.getToken(EntraIdAccessTokenConstants.SCOPE);\n if (!accessToken) {\n throw new Error(\"Entra id access token is null\");\n }\n if (accessToken.token === this.token) {\n // azure identity library can fetch the same token again from cache. 10 mins before expiry, it allows token refresh\n coreLogger.info(\"Cached access token is returned, will be retried again.\");\n return;\n }\n this.token = accessToken.token;\n this._expiryTimestamp = accessToken.expiresOnTimestamp;\n process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN] = this.token!;\n coreLogger.info(\"Entra id access token fetched and set in environment variable\");\n coreLogger.info(\n \"Entra id access token expiry:\",\n new Date(this._expiryTimestamp!).toISOString(),\n );\n return;\n } catch (err) {\n coreLogger.error(err);\n process.env[InternalEnvironmentVariables.MPT_SETUP_FATAL_ERROR] = \"true\";\n throw new Error(ServiceErrorMessageConstants.NO_AUTH_ERROR_ENTRA_TOKEN.message);\n }\n };\n\n public doesEntraIdAccessTokenNeedRotation(): boolean {\n if (this._noOpFlag) {\n throw new Error(ServiceErrorMessageConstants.NO_CRED_ENTRA_AUTH_ERROR.message);\n }\n if (!this.token) {\n coreLogger.info(\"Entra id access token not found, needs rotation\");\n return true;\n }\n const lifetimeLeft = this._expiryTimestamp! - new Date().getTime();\n const doesEntraTokenRequireRotation =\n lifetimeLeft <\n EntraIdAccessTokenConstants.LIFETIME_LEFT_THRESHOLD_IN_MINUTES_FOR_ROTATION * 60 * 1000;\n coreLogger.info(\n \"Entra id access token requires rotation:\",\n doesEntraTokenRequireRotation ? \"Yes\" : \"No\",\n );\n return doesEntraTokenRequireRotation;\n }\n\n private setEntraIdAccessTokenFromEnvironment = (): void => {\n try {\n const token = process.env[ServiceEnvironmentVariable.PLAYWRIGHT_SERVICE_ACCESS_TOKEN];\n if (!token) {\n return;\n }\n const claims = parseJwt<Partial<AccessTokenClaims>>(token);\n if (claims.pwid) {\n return;\n } // mpt PAT\n const expiry = new Date(claims.exp! * 1000);\n this.token = token;\n this._expiryTimestamp = expiry.getTime();\n } catch (_) {\n return;\n }\n };\n}\n\nexport function createEntraIdAccessToken(credential?: TokenCredential): EntraIdAccessToken {\n return new EntraIdAccessToken(credential);\n}\n"]}
|
|
@@ -1,45 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var environmentVariables_exports = {};
|
|
19
|
-
__export(environmentVariables_exports, {
|
|
20
|
-
EnvironmentVariables: () => EnvironmentVariables
|
|
21
|
-
});
|
|
22
|
-
module.exports = __toCommonJS(environmentVariables_exports);
|
|
23
|
-
var import_node_crypto = require("node:crypto");
|
|
24
|
-
var import_constants = require("./constants.js");
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.EnvironmentVariables = void 0;
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const constants_js_1 = require("./constants.js");
|
|
25
8
|
class EnvironmentVariables {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
9
|
+
get accessToken() {
|
|
10
|
+
return process.env["PLAYWRIGHT_SERVICE_ACCESS_TOKEN"];
|
|
11
|
+
}
|
|
12
|
+
runId;
|
|
13
|
+
accountId;
|
|
14
|
+
userId;
|
|
15
|
+
userName;
|
|
16
|
+
correlationId;
|
|
17
|
+
region;
|
|
18
|
+
runName;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.runName = process.env["_MPT_SERVICE_RUN_NAME"];
|
|
21
|
+
this.runId = process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_ID];
|
|
22
|
+
this.correlationId = (0, node_crypto_1.randomUUID)();
|
|
23
|
+
}
|
|
41
24
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
EnvironmentVariables
|
|
45
|
-
});
|
|
25
|
+
exports.EnvironmentVariables = EnvironmentVariables;
|
|
26
|
+
//# sourceMappingURL=environmentVariables.js.map
|