@azure/playwright 1.1.2 → 1.1.3-alpha.20260310.1
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/types.d.ts +1 -1
- package/dist/browser/common/types.d.ts.map +1 -1
- package/dist/browser/common/types.js.map +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/utils/PlaywrightServiceClient.d.ts +1 -1
- package/dist/browser/utils/PlaywrightServiceClient.d.ts.map +1 -1
- package/dist/browser/utils/PlaywrightServiceClient.js.map +1 -1
- package/dist/browser/utils/playwrightReporterStorageManager.d.ts.map +1 -1
- package/dist/browser/utils/playwrightReporterStorageManager.js.map +1 -1
- package/dist/browser/utils/utils.d.ts +2 -2
- package/dist/browser/utils/utils.d.ts.map +1 -1
- package/dist/browser/utils/utils.js.map +1 -1
- package/dist/commonjs/common/constants.js +127 -95
- package/dist/commonjs/common/constants.js.map +7 -1
- package/dist/commonjs/common/customerConfig.js +31 -14
- package/dist/commonjs/common/customerConfig.js.map +7 -1
- package/dist/commonjs/common/entraIdAccessToken.js +106 -83
- package/dist/commonjs/common/entraIdAccessToken.js.map +7 -1
- package/dist/commonjs/common/environmentVariables.js +43 -24
- package/dist/commonjs/common/environmentVariables.js.map +7 -1
- package/dist/commonjs/common/executor.js +88 -67
- package/dist/commonjs/common/executor.js.map +7 -1
- package/dist/commonjs/common/httpService.js +54 -35
- package/dist/commonjs/common/httpService.js.map +7 -1
- package/dist/commonjs/common/logger.js +28 -8
- package/dist/commonjs/common/logger.js.map +7 -1
- package/dist/commonjs/common/messages.js +189 -169
- package/dist/commonjs/common/messages.js.map +7 -1
- package/dist/commonjs/common/playwrightServiceConfig.js +113 -98
- package/dist/commonjs/common/playwrightServiceConfig.js.map +7 -1
- package/dist/commonjs/common/state.js +30 -10
- package/dist/commonjs/common/state.js.map +7 -1
- package/dist/commonjs/common/types.d.ts +1 -1
- package/dist/commonjs/common/types.d.ts.map +1 -1
- package/dist/commonjs/common/types.js +15 -5
- package/dist/commonjs/common/types.js.map +7 -1
- package/dist/commonjs/core/global/playwright-service-global-setup.js +52 -26
- package/dist/commonjs/core/global/playwright-service-global-setup.js.map +7 -1
- package/dist/commonjs/core/global/playwright-service-global-teardown.js +49 -20
- package/dist/commonjs/core/global/playwright-service-global-teardown.js.map +7 -1
- package/dist/commonjs/core/initializePlaywrightServiceTestRun.js +39 -27
- package/dist/commonjs/core/initializePlaywrightServiceTestRun.js.map +7 -1
- package/dist/commonjs/core/playwrightService.js +166 -205
- package/dist/commonjs/core/playwrightService.js.map +7 -1
- package/dist/commonjs/core/playwrightServiceEntra.js +67 -48
- package/dist/commonjs/core/playwrightServiceEntra.js.map +7 -1
- package/dist/commonjs/core/playwrightServiceUtils.d.ts +1 -1
- package/dist/commonjs/core/playwrightServiceUtils.d.ts.map +1 -0
- package/dist/commonjs/core/playwrightServiceUtils.js +44 -11
- package/dist/commonjs/core/playwrightServiceUtils.js.map +7 -0
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +36 -18
- package/dist/commonjs/index.js.map +7 -1
- package/dist/commonjs/reporter/index.js +34 -15
- package/dist/commonjs/reporter/index.js.map +7 -1
- package/dist/commonjs/reporter/playwrightReporter.js +222 -216
- package/dist/commonjs/reporter/playwrightReporter.js.map +7 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/PlaywrightServiceClient.d.ts +1 -1
- package/dist/commonjs/utils/PlaywrightServiceClient.d.ts.map +1 -1
- package/dist/commonjs/utils/PlaywrightServiceClient.js +140 -91
- package/dist/commonjs/utils/PlaywrightServiceClient.js.map +7 -1
- package/dist/commonjs/utils/cIInfoProvider.js +81 -74
- package/dist/commonjs/utils/cIInfoProvider.js.map +7 -1
- package/dist/commonjs/utils/getPackageVersion.d.ts +1 -1
- package/dist/commonjs/utils/getPackageVersion.d.ts.map +1 -0
- package/dist/commonjs/utils/getPackageVersion.js +50 -19
- package/dist/commonjs/utils/getPackageVersion.js.map +7 -0
- package/dist/commonjs/utils/getPlaywrightVersion.js +42 -21
- package/dist/commonjs/utils/getPlaywrightVersion.js.map +7 -1
- package/dist/commonjs/utils/packageManager.js +59 -40
- package/dist/commonjs/utils/packageManager.js.map +7 -1
- package/dist/commonjs/utils/parseJwt.js +37 -17
- package/dist/commonjs/utils/parseJwt.js.map +7 -1
- package/dist/commonjs/utils/playwrightReporterStorageManager.d.ts.map +1 -1
- package/dist/commonjs/utils/playwrightReporterStorageManager.js +381 -342
- package/dist/commonjs/utils/playwrightReporterStorageManager.js.map +7 -1
- package/dist/commonjs/utils/utils.d.ts +2 -2
- package/dist/commonjs/utils/utils.d.ts.map +1 -1
- package/dist/commonjs/utils/utils.js +417 -369
- package/dist/commonjs/utils/utils.js.map +7 -1
- package/dist/esm/common/constants.js +92 -92
- package/dist/esm/common/constants.js.map +7 -1
- package/dist/esm/common/customerConfig.js +11 -11
- package/dist/esm/common/customerConfig.js.map +7 -1
- package/dist/esm/common/entraIdAccessToken.js +85 -77
- package/dist/esm/common/entraIdAccessToken.js.map +7 -1
- package/dist/esm/common/environmentVariables.js +19 -19
- package/dist/esm/common/environmentVariables.js.map +7 -1
- package/dist/esm/common/executor.js +51 -58
- package/dist/esm/common/executor.js.map +7 -1
- package/dist/esm/common/httpService.js +34 -29
- package/dist/esm/common/httpService.js.map +7 -1
- package/dist/esm/common/logger.js +4 -4
- package/dist/esm/common/logger.js.map +7 -1
- package/dist/esm/common/messages.js +166 -166
- package/dist/esm/common/messages.js.map +7 -1
- package/dist/esm/common/playwrightServiceConfig.js +91 -91
- package/dist/esm/common/playwrightServiceConfig.js.map +7 -1
- package/dist/esm/common/state.js +7 -7
- package/dist/esm/common/state.js.map +7 -1
- package/dist/esm/common/types.d.ts +1 -1
- package/dist/esm/common/types.d.ts.map +1 -1
- package/dist/esm/common/types.js +0 -4
- package/dist/esm/common/types.js.map +7 -1
- package/dist/esm/core/global/playwright-service-global-setup.js +17 -17
- package/dist/esm/core/global/playwright-service-global-setup.js.map +7 -1
- package/dist/esm/core/global/playwright-service-global-teardown.js +16 -13
- package/dist/esm/core/global/playwright-service-global-teardown.js.map +7 -1
- package/dist/esm/core/initializePlaywrightServiceTestRun.js +13 -21
- package/dist/esm/core/initializePlaywrightServiceTestRun.js.map +7 -1
- package/dist/esm/core/playwrightService.js +144 -195
- package/dist/esm/core/playwrightService.js.map +7 -1
- package/dist/esm/core/playwrightServiceEntra.js +44 -42
- package/dist/esm/core/playwrightServiceEntra.js.map +7 -1
- package/dist/esm/core/playwrightServiceUtils.js +6 -8
- package/dist/esm/core/playwrightServiceUtils.js.map +7 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -9
- package/dist/esm/index.js.map +7 -1
- package/dist/esm/reporter/index.js +4 -11
- package/dist/esm/reporter/index.js.map +7 -1
- package/dist/esm/reporter/playwrightReporter.js +202 -207
- package/dist/esm/reporter/playwrightReporter.js.map +7 -1
- package/dist/esm/utils/PlaywrightServiceClient.d.ts +1 -1
- package/dist/esm/utils/PlaywrightServiceClient.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightServiceClient.js +120 -85
- package/dist/esm/utils/PlaywrightServiceClient.js.map +7 -1
- package/dist/esm/utils/cIInfoProvider.js +58 -71
- package/dist/esm/utils/cIInfoProvider.js.map +7 -1
- package/dist/esm/utils/getPackageVersion.js +12 -17
- package/dist/esm/utils/getPackageVersion.js.map +7 -1
- package/dist/esm/utils/getPlaywrightVersion.js +15 -13
- package/dist/esm/utils/getPlaywrightVersion.js.map +7 -1
- package/dist/esm/utils/packageManager.js +37 -37
- package/dist/esm/utils/packageManager.js.map +7 -1
- package/dist/esm/utils/parseJwt.js +15 -14
- package/dist/esm/utils/parseJwt.js.map +7 -1
- package/dist/esm/utils/playwrightReporterStorageManager.d.ts.map +1 -1
- package/dist/esm/utils/playwrightReporterStorageManager.js +358 -333
- package/dist/esm/utils/playwrightReporterStorageManager.js.map +7 -1
- package/dist/esm/utils/utils.d.ts +2 -2
- package/dist/esm/utils/utils.d.ts.map +1 -1
- package/dist/esm/utils/utils.js +377 -350
- package/dist/esm/utils/utils.js.map +7 -1
- package/dist/react-native/common/types.d.ts +1 -1
- 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/index.d.ts +1 -1
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/utils/PlaywrightServiceClient.d.ts +1 -1
- package/dist/react-native/utils/PlaywrightServiceClient.d.ts.map +1 -1
- package/dist/react-native/utils/PlaywrightServiceClient.js.map +1 -1
- package/dist/react-native/utils/playwrightReporterStorageManager.d.ts.map +1 -1
- package/dist/react-native/utils/playwrightReporterStorageManager.js.map +1 -1
- package/dist/react-native/utils/utils.d.ts +2 -2
- package/dist/react-native/utils/utils.d.ts.map +1 -1
- package/dist/react-native/utils/utils.js.map +1 -1
- package/package.json +6 -24
- package/dist/commonjs/core/playwrightServiceUtils-cjs.cjs.map +0 -1
- package/dist/commonjs/core/playwrightServiceUtils-cjs.d.cts.map +0 -1
- package/dist/commonjs/utils/getPackageVersion-cjs.cjs.map +0 -1
- package/dist/commonjs/utils/getPackageVersion-cjs.d.cts.map +0 -1
|
@@ -1 +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": "AAIA,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,gBAAgB;AACzB,SAAS,oCAAoC;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,6BAA6B,yBAAyB,OAAO;AAAA,IAC/E;AACA,QAAI;AACF,iBAAW,KAAK,gCAAgC;AAChD,YAAM,cAAc,MAAM,KAAK,YAAa,SAAS,4BAA4B,KAAK;AACtF,UAAI,CAAC,aAAa;AAChB,cAAM,IAAI,MAAM,+BAA+B;AAAA,MACjD;AACA,UAAI,YAAY,UAAU,KAAK,OAAO;AAEpC,mBAAW,KAAK,yDAAyD;AACzE;AAAA,MACF;AACA,WAAK,QAAQ,YAAY;AACzB,WAAK,mBAAmB,YAAY;AACpC,cAAQ,IAAI,2BAA2B,+BAA+B,IAAI,KAAK;AAC/E,iBAAW,KAAK,+DAA+D;AAC/E,iBAAW;AAAA,QACT;AAAA,QACA,IAAI,KAAK,KAAK,gBAAiB,EAAE,YAAY;AAAA,MAC/C;AACA;AAAA,IACF,SAAS,KAAK;AACZ,iBAAW,MAAM,GAAG;AACpB,cAAQ,IAAI,6BAA6B,qBAAqB,IAAI;AAClE,YAAM,IAAI,MAAM,6BAA6B,0BAA0B,OAAO;AAAA,IAChF;AAAA,EACF;AAAA,EAEO,qCAA8C;AACnD,QAAI,KAAK,WAAW;AAClB,YAAM,IAAI,MAAM,6BAA6B,yBAAyB,OAAO;AAAA,IAC/E;AACA,QAAI,CAAC,KAAK,OAAO;AACf,iBAAW,KAAK,iDAAiD;AACjE,aAAO;AAAA,IACT;AACA,UAAM,eAAe,KAAK,oBAAoB,oBAAI,KAAK,GAAE,QAAQ;AACjE,UAAM,gCACJ,eACA,4BAA4B,kDAAkD,KAAK;AACrF,eAAW;AAAA,MACT;AAAA,MACA,gCAAgC,QAAQ;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AAAA,EAEQ,uCAAuC,MAAY;AACzD,QAAI;AACF,YAAM,QAAQ,QAAQ,IAAI,2BAA2B,+BAA+B;AACpF,UAAI,CAAC,OAAO;AACV;AAAA,MACF;AACA,YAAM,SAAS,SAAqC,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,22 +1,22 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
1
|
import { randomUUID } from "node:crypto";
|
|
4
2
|
import { InternalEnvironmentVariables } from "./constants.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
3
|
+
class EnvironmentVariables {
|
|
4
|
+
get accessToken() {
|
|
5
|
+
return process.env["PLAYWRIGHT_SERVICE_ACCESS_TOKEN"];
|
|
6
|
+
}
|
|
7
|
+
runId;
|
|
8
|
+
accountId;
|
|
9
|
+
userId;
|
|
10
|
+
userName;
|
|
11
|
+
correlationId;
|
|
12
|
+
region;
|
|
13
|
+
runName;
|
|
14
|
+
constructor() {
|
|
15
|
+
this.runName = process.env["_MPT_SERVICE_RUN_NAME"];
|
|
16
|
+
this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID];
|
|
17
|
+
this.correlationId = randomUUID();
|
|
18
|
+
}
|
|
21
19
|
}
|
|
22
|
-
|
|
20
|
+
export {
|
|
21
|
+
EnvironmentVariables
|
|
22
|
+
};
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/playwright/src/common/environmentVariables.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomUUID } from \"node:crypto\";\nimport { InternalEnvironmentVariables } from \"./constants.js\";\n\nexport class EnvironmentVariables {\n get accessToken(): string {\n return process.env[\"PLAYWRIGHT_SERVICE_ACCESS_TOKEN\"]!;\n }\n runId: string;\n accountId: string | undefined;\n userId: string | undefined;\n userName: string | undefined;\n correlationId: string | undefined;\n region: string | undefined;\n runName: string;\n constructor() {\n this.runName = process.env[\"_MPT_SERVICE_RUN_NAME\"]!;\n this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]!;\n this.correlationId = randomUUID();\n }\n}\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,kBAAkB;AAC3B,SAAS,oCAAoC;AAEtC,MAAM,qBAAqB;AAAA,EAChC,IAAI,cAAsB;AACxB,WAAO,QAAQ,IAAI,iCAAiC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AACZ,SAAK,UAAU,QAAQ,IAAI,uBAAuB;AAClD,SAAK,QAAQ,QAAQ,IAAI,6BAA6B,kBAAkB;AACxE,SAAK,gBAAgB,WAAW;AAAA,EAClC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,73 +1,66 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
1
|
import { basename } from "node:path";
|
|
4
2
|
import fs from "node:fs";
|
|
5
3
|
import url from "url";
|
|
6
4
|
import path from "node:path";
|
|
7
5
|
import { ServiceErrorMessageConstants } from "./messages.js";
|
|
8
6
|
const getPackageJsonPath = (folderPath) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
const packageJsonPath = path.join(folderPath, "package.json");
|
|
8
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
9
|
+
return packageJsonPath;
|
|
10
|
+
}
|
|
11
|
+
const parentFolder = path.dirname(folderPath);
|
|
12
|
+
if (folderPath === parentFolder) {
|
|
13
|
+
return "";
|
|
14
|
+
}
|
|
15
|
+
const result = getPackageJsonPath(parentFolder);
|
|
16
|
+
return result;
|
|
19
17
|
};
|
|
20
18
|
const folderIsModule = (folder) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// Rely on `require` internal caching logic.
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
26
|
-
return require(packageJsonPath).type === "module";
|
|
19
|
+
const packageJsonPath = getPackageJsonPath(folder);
|
|
20
|
+
if (!packageJsonPath) return false;
|
|
21
|
+
return require(packageJsonPath).type === "module";
|
|
27
22
|
};
|
|
28
|
-
const fileIsModule = (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const folder = path.dirname(file);
|
|
34
|
-
return folderIsModule(folder);
|
|
23
|
+
const fileIsModule = (file2) => {
|
|
24
|
+
if (file2.endsWith(".mjs") || file2.endsWith(".mts")) return true;
|
|
25
|
+
if (file2.endsWith(".cjs") || file2.endsWith(".cts")) return false;
|
|
26
|
+
const folder = path.dirname(file2);
|
|
27
|
+
return folderIsModule(folder);
|
|
35
28
|
};
|
|
36
29
|
const resolveFile = (id, rootDir) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
30
|
+
if (!id) {
|
|
31
|
+
return void 0;
|
|
32
|
+
}
|
|
33
|
+
const localPath = path.resolve(rootDir, id);
|
|
34
|
+
if (fs.existsSync(localPath)) {
|
|
35
|
+
return localPath;
|
|
36
|
+
}
|
|
37
|
+
return require.resolve(id, { paths: [rootDir] });
|
|
45
38
|
};
|
|
46
39
|
const requireOrImportDefaultFunction = async (file) => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
return func;
|
|
40
|
+
const fileName = basename(file);
|
|
41
|
+
const isModule = fileIsModule(file);
|
|
42
|
+
let func;
|
|
43
|
+
if (isModule) func = await eval(`import(${JSON.stringify(url.pathToFileURL(file))})`);
|
|
44
|
+
else func = require(file);
|
|
45
|
+
if (func && typeof func === "object" && "default" in func) {
|
|
46
|
+
func = func.default;
|
|
47
|
+
}
|
|
48
|
+
if (typeof func !== "function") {
|
|
49
|
+
const error = new Error(
|
|
50
|
+
`${fileName}: ${ServiceErrorMessageConstants.INVALID_GLOBAL_FUNCTION.message}`
|
|
51
|
+
);
|
|
52
|
+
error.stack = "";
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
return func;
|
|
65
56
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
57
|
+
const loadCustomerGlobalFunction = (rootDir, customerFunctionFileName) => {
|
|
58
|
+
if (!customerFunctionFileName) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const file2 = path.resolve(rootDir, resolveFile(customerFunctionFileName, rootDir) ?? "");
|
|
62
|
+
return requireOrImportDefaultFunction(file2);
|
|
63
|
+
};
|
|
64
|
+
export {
|
|
65
|
+
loadCustomerGlobalFunction
|
|
72
66
|
};
|
|
73
|
-
//# sourceMappingURL=executor.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/playwright/src/common/executor.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { basename } from \"node:path\";\nimport fs from \"node:fs\";\nimport url from \"url\";\nimport path from \"node:path\";\nimport { ServiceErrorMessageConstants } from \"./messages.js\";\n\nconst getPackageJsonPath = (folderPath: string): string => {\n const packageJsonPath = path.join(folderPath, \"package.json\");\n if (fs.existsSync(packageJsonPath)) {\n return packageJsonPath;\n }\n\n const parentFolder = path.dirname(folderPath);\n if (folderPath === parentFolder) {\n return \"\";\n }\n\n const result = getPackageJsonPath(parentFolder);\n return result;\n};\n\nconst folderIsModule = (folder: string): boolean => {\n const packageJsonPath = getPackageJsonPath(folder);\n if (!packageJsonPath) return false;\n // Rely on `require` internal caching logic.\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n return require(packageJsonPath).type === \"module\";\n};\n\nconst fileIsModule = (file: string): boolean => {\n if (file.endsWith(\".mjs\") || file.endsWith(\".mts\")) return true;\n if (file.endsWith(\".cjs\") || file.endsWith(\".cts\")) return false;\n const folder = path.dirname(file);\n return folderIsModule(folder);\n};\n\nconst resolveFile = (id: string | undefined, rootDir: string): string | undefined => {\n if (!id) {\n return undefined;\n }\n const localPath = path.resolve(rootDir, id);\n if (fs.existsSync(localPath)) {\n return localPath;\n }\n return require.resolve(id, { paths: [rootDir] });\n};\n\nconst requireOrImportDefaultFunction = async (file: string): Promise<any> => {\n const fileName = basename(file);\n const isModule = fileIsModule(file);\n let func: any;\n if (isModule) func = await eval(`import(${JSON.stringify(url.pathToFileURL(file))})`);\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n else func = require(file);\n if (func && typeof func === \"object\" && \"default\" in func) {\n func = func.default;\n }\n if (typeof func !== \"function\") {\n // match playwright's error style\n const error = new Error(\n `${fileName}: ${ServiceErrorMessageConstants.INVALID_GLOBAL_FUNCTION.message}`,\n );\n error.stack = \"\";\n throw error;\n }\n return func;\n};\n\nexport const loadCustomerGlobalFunction = (\n rootDir: string,\n customerFunctionFileName?: string,\n): any => {\n if (!customerFunctionFileName) {\n return null;\n }\n const file = path.resolve(rootDir, resolveFile(customerFunctionFileName, rootDir) ?? \"\");\n return requireOrImportDefaultFunction(file);\n};\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,gBAAgB;AACzB,OAAO,QAAQ;AACf,OAAO,SAAS;AAChB,OAAO,UAAU;AACjB,SAAS,oCAAoC;AAE7C,MAAM,qBAAqB,CAAC,eAA+B;AACzD,QAAM,kBAAkB,KAAK,KAAK,YAAY,cAAc;AAC5D,MAAI,GAAG,WAAW,eAAe,GAAG;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,KAAK,QAAQ,UAAU;AAC5C,MAAI,eAAe,cAAc;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,mBAAmB,YAAY;AAC9C,SAAO;AACT;AAEA,MAAM,iBAAiB,CAAC,WAA4B;AAClD,QAAM,kBAAkB,mBAAmB,MAAM;AACjD,MAAI,CAAC,gBAAiB,QAAO;AAG7B,SAAO,QAAQ,eAAe,EAAE,SAAS;AAC3C;AAEA,MAAM,eAAe,CAACA,UAA0B;AAC9C,MAAIA,MAAK,SAAS,MAAM,KAAKA,MAAK,SAAS,MAAM,EAAG,QAAO;AAC3D,MAAIA,MAAK,SAAS,MAAM,KAAKA,MAAK,SAAS,MAAM,EAAG,QAAO;AAC3D,QAAM,SAAS,KAAK,QAAQA,KAAI;AAChC,SAAO,eAAe,MAAM;AAC9B;AAEA,MAAM,cAAc,CAAC,IAAwB,YAAwC;AACnF,MAAI,CAAC,IAAI;AACP,WAAO;AAAA,EACT;AACA,QAAM,YAAY,KAAK,QAAQ,SAAS,EAAE;AAC1C,MAAI,GAAG,WAAW,SAAS,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,QAAQ,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AACjD;AAEA,MAAM,iCAAiC,OAAO,SAA+B;AAC3E,QAAM,WAAW,SAAS,IAAI;AAC9B,QAAM,WAAW,aAAa,IAAI;AAClC,MAAI;AACJ,MAAI,SAAU,QAAO,MAAM,KAAK,UAAU,KAAK,UAAU,IAAI,cAAc,IAAI,CAAC,CAAC,GAAG;AAAA,MAE/E,QAAO,QAAQ,IAAI;AACxB,MAAI,QAAQ,OAAO,SAAS,YAAY,aAAa,MAAM;AACzD,WAAO,KAAK;AAAA,EACd;AACA,MAAI,OAAO,SAAS,YAAY;AAE9B,UAAM,QAAQ,IAAI;AAAA,MAChB,GAAG,QAAQ,KAAK,6BAA6B,wBAAwB,OAAO;AAAA,IAC9E;AACA,UAAM,QAAQ;AACd,UAAM;AAAA,EACR;AACA,SAAO;AACT;AAEO,MAAM,6BAA6B,CACxC,SACA,6BACQ;AACR,MAAI,CAAC,0BAA0B;AAC7B,WAAO;AAAA,EACT;AACA,QAAMA,QAAO,KAAK,QAAQ,SAAS,YAAY,0BAA0B,OAAO,KAAK,EAAE;AACvF,SAAO,+BAA+BA,KAAI;AAC5C;",
|
|
6
|
+
"names": ["file"]
|
|
7
|
+
}
|
|
@@ -1,34 +1,39 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
1
|
import { randomUUID } from "crypto";
|
|
4
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
createDefaultHttpClient,
|
|
4
|
+
createHttpHeaders,
|
|
5
|
+
createPipelineRequest,
|
|
6
|
+
createPipelineFromOptions
|
|
7
|
+
} from "@azure/core-rest-pipeline";
|
|
5
8
|
import { coreLogger } from "../common/logger.js";
|
|
6
9
|
import { Constants } from "./constants.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
return pipeline.sendRequest(httpClient, request);
|
|
10
|
+
class HttpService {
|
|
11
|
+
async callAPI(method, url, data, token, contentType, correlationId) {
|
|
12
|
+
const pipeline = createPipelineFromOptions({
|
|
13
|
+
loggingOptions: {
|
|
14
|
+
logger: coreLogger.info
|
|
15
|
+
},
|
|
16
|
+
retryOptions: {}
|
|
17
|
+
});
|
|
18
|
+
const httpClient = createDefaultHttpClient();
|
|
19
|
+
const request = createPipelineRequest({
|
|
20
|
+
url,
|
|
21
|
+
method,
|
|
22
|
+
headers: createHttpHeaders({
|
|
23
|
+
"Content-Type": contentType,
|
|
24
|
+
Accept: "*/*",
|
|
25
|
+
Authorization: `Bearer ${token}`,
|
|
26
|
+
"x-ms-client-request-id": `${randomUUID()}`,
|
|
27
|
+
"x-correlation-id": correlationId
|
|
28
|
+
}),
|
|
29
|
+
timeout: Constants.HTTP_CALL_TIMEOUT
|
|
30
|
+
});
|
|
31
|
+
if (data) {
|
|
32
|
+
request.body = data;
|
|
32
33
|
}
|
|
34
|
+
return pipeline.sendRequest(httpClient, request);
|
|
35
|
+
}
|
|
33
36
|
}
|
|
34
|
-
|
|
37
|
+
export {
|
|
38
|
+
HttpService
|
|
39
|
+
};
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/playwright/src/common/httpService.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomUUID } from \"crypto\";\nimport type { PipelineResponse, HttpMethods } from \"@azure/core-rest-pipeline\";\nimport {\n createDefaultHttpClient,\n createHttpHeaders,\n createPipelineRequest,\n createPipelineFromOptions,\n} from \"@azure/core-rest-pipeline\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { Constants } from \"./constants.js\";\n\nexport class HttpService {\n public async callAPI(\n method: HttpMethods,\n url: string,\n data: any | null,\n token: string,\n contentType: string,\n correlationId: string,\n ): Promise<PipelineResponse> {\n const pipeline = createPipelineFromOptions({\n loggingOptions: {\n logger: coreLogger.info,\n },\n retryOptions: {},\n });\n\n const httpClient = createDefaultHttpClient();\n const request = createPipelineRequest({\n url,\n method,\n headers: createHttpHeaders({\n \"Content-Type\": contentType,\n Accept: \"*/*\",\n Authorization: `Bearer ${token}`,\n \"x-ms-client-request-id\": `${randomUUID()}`,\n \"x-correlation-id\": correlationId,\n }),\n timeout: Constants.HTTP_CALL_TIMEOUT,\n });\n\n if (data) {\n request.body = data;\n }\n return pipeline.sendRequest(httpClient, request);\n }\n}\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,kBAAkB;AAE3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAEnB,MAAM,YAAY;AAAA,EACvB,MAAa,QACX,QACA,KACA,MACA,OACA,aACA,eAC2B;AAC3B,UAAM,WAAW,0BAA0B;AAAA,MACzC,gBAAgB;AAAA,QACd,QAAQ,WAAW;AAAA,MACrB;AAAA,MACA,cAAc,CAAC;AAAA,IACjB,CAAC;AAED,UAAM,aAAa,wBAAwB;AAC3C,UAAM,UAAU,sBAAsB;AAAA,MACpC;AAAA,MACA;AAAA,MACA,SAAS,kBAAkB;AAAA,QACzB,gBAAgB;AAAA,QAChB,QAAQ;AAAA,QACR,eAAe,UAAU,KAAK;AAAA,QAC9B,0BAA0B,GAAG,WAAW,CAAC;AAAA,QACzC,oBAAoB;AAAA,MACtB,CAAC;AAAA,MACD,SAAS,UAAU;AAAA,IACrB,CAAC;AAED,QAAI,MAAM;AACR,cAAQ,OAAO;AAAA,IACjB;AACA,WAAO,SAAS,YAAY,YAAY,OAAO;AAAA,EACjD;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
1
|
import { createClientLogger } from "@azure/logger";
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
const coreLogger = createClientLogger("playwright");
|
|
3
|
+
export {
|
|
4
|
+
coreLogger
|
|
5
|
+
};
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["/mnt/vss/_work/1/s/sdk/loadtesting/playwright/src/common/logger.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\nexport const coreLogger = createClientLogger(\"playwright\");\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,0BAA0B;AAE5B,MAAM,aAAa,mBAAmB,YAAY;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|