@azure/playwright 1.1.4 → 1.1.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/README.md +10 -18
- package/dist/commonjs/common/constants.d.ts +7 -1
- package/dist/commonjs/common/constants.d.ts.map +1 -1
- package/dist/commonjs/common/constants.js +11 -1
- package/dist/commonjs/common/constants.js.map +1 -1
- package/dist/commonjs/common/entraIdAccessToken.d.ts +6 -0
- package/dist/commonjs/common/entraIdAccessToken.d.ts.map +1 -1
- package/dist/commonjs/common/entraIdAccessToken.js +24 -0
- package/dist/commonjs/common/entraIdAccessToken.js.map +1 -1
- package/dist/commonjs/common/messages.d.ts +4 -0
- package/dist/commonjs/common/messages.d.ts.map +1 -1
- package/dist/commonjs/common/messages.js +6 -0
- package/dist/commonjs/common/messages.js.map +1 -1
- package/dist/commonjs/common/playwrightServiceConfig.d.ts +2 -1
- package/dist/commonjs/common/playwrightServiceConfig.d.ts.map +1 -1
- package/dist/commonjs/common/playwrightServiceConfig.js +5 -0
- package/dist/commonjs/common/playwrightServiceConfig.js.map +1 -1
- package/dist/commonjs/common/types.d.ts +15 -0
- package/dist/commonjs/common/types.d.ts.map +1 -1
- package/dist/commonjs/common/types.js.map +1 -1
- package/dist/commonjs/core/playwrightService.d.ts.map +1 -1
- package/dist/commonjs/core/playwrightService.js +7 -7
- package/dist/commonjs/core/playwrightService.js.map +1 -1
- package/dist/commonjs/core/playwrightServiceEntra.d.ts.map +1 -1
- package/dist/commonjs/core/playwrightServiceEntra.js +1 -0
- package/dist/commonjs/core/playwrightServiceEntra.js.map +1 -1
- package/dist/{browser/core/playwrightServiceUtils.d.ts → commonjs/core/playwrightServiceUtils-cjs.d.ts} +1 -1
- package/dist/commonjs/core/playwrightServiceUtils-cjs.d.ts.map +1 -0
- package/dist/commonjs/core/playwrightServiceUtils-cjs.js +14 -0
- package/dist/commonjs/core/playwrightServiceUtils-cjs.js.map +1 -0
- package/dist/commonjs/index.d.ts +2 -2
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/reporter/playwrightReporter.d.ts.map +1 -1
- package/dist/commonjs/reporter/playwrightReporter.js +12 -11
- package/dist/commonjs/reporter/playwrightReporter.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/{browser/utils/getPackageVersion.d.ts → commonjs/utils/getPackageVersion-cjs.d.ts} +1 -1
- package/dist/commonjs/utils/getPackageVersion-cjs.d.ts.map +1 -0
- package/dist/commonjs/utils/{getPackageVersion.js → getPackageVersion-cjs.js} +1 -1
- package/dist/commonjs/utils/getPackageVersion-cjs.js.map +1 -0
- package/dist/commonjs/utils/parseJwt.d.ts.map +1 -1
- package/dist/commonjs/utils/parseJwt.js +2 -3
- package/dist/commonjs/utils/parseJwt.js.map +1 -1
- package/dist/commonjs/utils/utils.d.ts +3 -2
- package/dist/commonjs/utils/utils.d.ts.map +1 -1
- package/dist/commonjs/utils/utils.js +33 -6
- package/dist/commonjs/utils/utils.js.map +1 -1
- package/dist/esm/common/constants.d.ts +7 -1
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +10 -0
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/common/entraIdAccessToken.d.ts +6 -0
- package/dist/esm/common/entraIdAccessToken.d.ts.map +1 -1
- package/dist/esm/common/entraIdAccessToken.js +24 -0
- package/dist/esm/common/entraIdAccessToken.js.map +1 -1
- package/dist/esm/common/messages.d.ts +4 -0
- package/dist/esm/common/messages.d.ts.map +1 -1
- package/dist/esm/common/messages.js +6 -0
- package/dist/esm/common/messages.js.map +1 -1
- package/dist/esm/common/playwrightServiceConfig.d.ts +2 -1
- package/dist/esm/common/playwrightServiceConfig.d.ts.map +1 -1
- package/dist/esm/common/playwrightServiceConfig.js +6 -1
- package/dist/esm/common/playwrightServiceConfig.js.map +1 -1
- package/dist/esm/common/types.d.ts +15 -0
- package/dist/esm/common/types.d.ts.map +1 -1
- package/dist/esm/common/types.js.map +1 -1
- package/dist/esm/core/playwrightService.d.ts.map +1 -1
- package/dist/esm/core/playwrightService.js +2 -2
- package/dist/esm/core/playwrightService.js.map +1 -1
- package/dist/esm/core/playwrightServiceEntra.d.ts.map +1 -1
- package/dist/esm/core/playwrightServiceEntra.js +1 -0
- package/dist/esm/core/playwrightServiceEntra.js.map +1 -1
- package/dist/esm/core/playwrightServiceUtils.d.ts.map +1 -1
- package/dist/esm/core/playwrightServiceUtils.js +4 -2
- package/dist/esm/core/playwrightServiceUtils.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/reporter/playwrightReporter.d.ts.map +1 -1
- package/dist/esm/reporter/playwrightReporter.js +13 -12
- package/dist/esm/reporter/playwrightReporter.js.map +1 -1
- package/dist/esm/utils/getPackageVersion.d.ts.map +1 -1
- package/dist/esm/utils/getPackageVersion.js +2 -2
- package/dist/esm/utils/getPackageVersion.js.map +1 -1
- package/dist/esm/utils/parseJwt.d.ts.map +1 -1
- package/dist/esm/utils/parseJwt.js +2 -3
- package/dist/esm/utils/parseJwt.js.map +1 -1
- package/dist/esm/utils/utils.d.ts +3 -2
- package/dist/esm/utils/utils.d.ts.map +1 -1
- package/dist/esm/utils/utils.js +29 -3
- package/dist/esm/utils/utils.js.map +1 -1
- package/package.json +18 -26
- package/dist/browser/common/constants.d.ts +0 -103
- package/dist/browser/common/constants.d.ts.map +0 -1
- package/dist/browser/common/constants.js +0 -105
- package/dist/browser/common/constants.js.map +0 -1
- package/dist/browser/common/customerConfig.d.ts +0 -8
- package/dist/browser/common/customerConfig.d.ts.map +0 -1
- package/dist/browser/common/customerConfig.js +0 -16
- package/dist/browser/common/customerConfig.js.map +0 -1
- package/dist/browser/common/entraIdAccessToken.d.ts +0 -13
- package/dist/browser/common/entraIdAccessToken.d.ts.map +0 -1
- package/dist/browser/common/entraIdAccessToken.js +0 -84
- package/dist/browser/common/entraIdAccessToken.js.map +0 -1
- package/dist/browser/common/environmentVariables.d.ts +0 -12
- package/dist/browser/common/environmentVariables.d.ts.map +0 -1
- package/dist/browser/common/environmentVariables.js +0 -22
- package/dist/browser/common/environmentVariables.js.map +0 -1
- package/dist/browser/common/executor.d.ts +0 -2
- package/dist/browser/common/executor.d.ts.map +0 -1
- package/dist/browser/common/executor.js +0 -73
- package/dist/browser/common/executor.js.map +0 -1
- package/dist/browser/common/httpService.d.ts +0 -5
- package/dist/browser/common/httpService.d.ts.map +0 -1
- package/dist/browser/common/httpService.js +0 -34
- package/dist/browser/common/httpService.js.map +0 -1
- package/dist/browser/common/logger.d.ts +0 -2
- package/dist/browser/common/logger.d.ts.map +0 -1
- package/dist/browser/common/logger.js +0 -5
- package/dist/browser/common/logger.js.map +0 -1
- package/dist/browser/common/messages.d.ts +0 -165
- package/dist/browser/common/messages.d.ts.map +0 -1
- package/dist/browser/common/messages.js +0 -167
- package/dist/browser/common/messages.js.map +0 -1
- package/dist/browser/common/playwrightServiceConfig.d.ts +0 -22
- package/dist/browser/common/playwrightServiceConfig.d.ts.map +0 -1
- package/dist/browser/common/playwrightServiceConfig.js +0 -102
- package/dist/browser/common/playwrightServiceConfig.js.map +0 -1
- package/dist/browser/common/state.d.ts +0 -2
- package/dist/browser/common/state.d.ts.map +0 -1
- package/dist/browser/common/state.js +0 -9
- package/dist/browser/common/state.js.map +0 -1
- package/dist/browser/common/types.d.ts +0 -207
- package/dist/browser/common/types.d.ts.map +0 -1
- package/dist/browser/common/types.js +0 -4
- package/dist/browser/common/types.js.map +0 -1
- package/dist/browser/core/global/playwright-service-global-setup.d.ts +0 -4
- package/dist/browser/core/global/playwright-service-global-setup.d.ts.map +0 -1
- package/dist/browser/core/global/playwright-service-global-setup.js +0 -25
- package/dist/browser/core/global/playwright-service-global-setup.js.map +0 -1
- package/dist/browser/core/global/playwright-service-global-teardown.d.ts +0 -4
- package/dist/browser/core/global/playwright-service-global-teardown.d.ts.map +0 -1
- package/dist/browser/core/global/playwright-service-global-teardown.js +0 -19
- package/dist/browser/core/global/playwright-service-global-teardown.js.map +0 -1
- package/dist/browser/core/initializePlaywrightServiceTestRun.d.ts +0 -9
- package/dist/browser/core/initializePlaywrightServiceTestRun.d.ts.map +0 -1
- package/dist/browser/core/initializePlaywrightServiceTestRun.js +0 -26
- package/dist/browser/core/initializePlaywrightServiceTestRun.js.map +0 -1
- package/dist/browser/core/playwrightService.d.ts +0 -66
- package/dist/browser/core/playwrightService.d.ts.map +0 -1
- package/dist/browser/core/playwrightService.js +0 -219
- package/dist/browser/core/playwrightService.js.map +0 -1
- package/dist/browser/core/playwrightServiceEntra.d.ts +0 -15
- package/dist/browser/core/playwrightServiceEntra.d.ts.map +0 -1
- package/dist/browser/core/playwrightServiceEntra.js +0 -52
- package/dist/browser/core/playwrightServiceEntra.js.map +0 -1
- package/dist/browser/core/playwrightServiceUtils.d.ts.map +0 -1
- package/dist/browser/core/playwrightServiceUtils.js +0 -13
- package/dist/browser/core/playwrightServiceUtils.js.map +0 -1
- package/dist/browser/index.d.ts +0 -10
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -11
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/package.json +0 -3
- package/dist/browser/reporter/index.d.ts +0 -10
- package/dist/browser/reporter/index.d.ts.map +0 -1
- package/dist/browser/reporter/index.js +0 -12
- package/dist/browser/reporter/index.js.map +0 -1
- package/dist/browser/reporter/playwrightReporter.d.ts +0 -28
- package/dist/browser/reporter/playwrightReporter.d.ts.map +0 -1
- package/dist/browser/reporter/playwrightReporter.js +0 -210
- package/dist/browser/reporter/playwrightReporter.js.map +0 -1
- package/dist/browser/utils/PlaywrightServiceClient.d.ts +0 -9
- package/dist/browser/utils/PlaywrightServiceClient.d.ts.map +0 -1
- package/dist/browser/utils/PlaywrightServiceClient.js +0 -67
- package/dist/browser/utils/PlaywrightServiceClient.js.map +0 -1
- package/dist/browser/utils/cIInfoProvider.d.ts +0 -20
- package/dist/browser/utils/cIInfoProvider.d.ts.map +0 -1
- package/dist/browser/utils/cIInfoProvider.js +0 -75
- package/dist/browser/utils/cIInfoProvider.js.map +0 -1
- package/dist/browser/utils/getPackageVersion.d.ts.map +0 -1
- package/dist/browser/utils/getPackageVersion.js +0 -23
- package/dist/browser/utils/getPackageVersion.js.map +0 -1
- package/dist/browser/utils/getPlaywrightVersion.d.ts +0 -2
- package/dist/browser/utils/getPlaywrightVersion.d.ts.map +0 -1
- package/dist/browser/utils/getPlaywrightVersion.js +0 -19
- package/dist/browser/utils/getPlaywrightVersion.js.map +0 -1
- package/dist/browser/utils/packageManager.d.ts +0 -15
- package/dist/browser/utils/packageManager.d.ts.map +0 -1
- package/dist/browser/utils/packageManager.js +0 -41
- package/dist/browser/utils/packageManager.js.map +0 -1
- package/dist/browser/utils/parseJwt.d.ts +0 -4
- package/dist/browser/utils/parseJwt.d.ts.map +0 -1
- package/dist/browser/utils/parseJwt.js +0 -16
- package/dist/browser/utils/parseJwt.js.map +0 -1
- package/dist/browser/utils/playwrightReporterStorageManager.d.ts +0 -13
- package/dist/browser/utils/playwrightReporterStorageManager.d.ts.map +0 -1
- package/dist/browser/utils/playwrightReporterStorageManager.js +0 -452
- package/dist/browser/utils/playwrightReporterStorageManager.js.map +0 -1
- package/dist/browser/utils/utils.d.ts +0 -57
- package/dist/browser/utils/utils.d.ts.map +0 -1
- package/dist/browser/utils/utils.js +0 -392
- package/dist/browser/utils/utils.js.map +0 -1
- package/dist/commonjs/common/environmentVariables.d.ts +0 -12
- package/dist/commonjs/common/environmentVariables.d.ts.map +0 -1
- package/dist/commonjs/common/environmentVariables.js +0 -26
- package/dist/commonjs/common/environmentVariables.js.map +0 -1
- package/dist/commonjs/core/playwrightServiceUtils.d.ts +0 -5
- package/dist/commonjs/core/playwrightServiceUtils.d.ts.map +0 -1
- package/dist/commonjs/core/playwrightServiceUtils.js +0 -12
- package/dist/commonjs/core/playwrightServiceUtils.js.map +0 -1
- package/dist/commonjs/utils/getPackageVersion.d.ts +0 -2
- package/dist/commonjs/utils/getPackageVersion.d.ts.map +0 -1
- package/dist/commonjs/utils/getPackageVersion.js.map +0 -1
- package/dist/esm/common/environmentVariables.d.ts +0 -12
- package/dist/esm/common/environmentVariables.d.ts.map +0 -1
- package/dist/esm/common/environmentVariables.js +0 -22
- package/dist/esm/common/environmentVariables.js.map +0 -1
- package/dist/react-native/common/constants.d.ts +0 -103
- package/dist/react-native/common/constants.d.ts.map +0 -1
- package/dist/react-native/common/constants.js +0 -105
- package/dist/react-native/common/constants.js.map +0 -1
- package/dist/react-native/common/customerConfig.d.ts +0 -8
- package/dist/react-native/common/customerConfig.d.ts.map +0 -1
- package/dist/react-native/common/customerConfig.js +0 -16
- package/dist/react-native/common/customerConfig.js.map +0 -1
- package/dist/react-native/common/entraIdAccessToken.d.ts +0 -13
- package/dist/react-native/common/entraIdAccessToken.d.ts.map +0 -1
- package/dist/react-native/common/entraIdAccessToken.js +0 -84
- package/dist/react-native/common/entraIdAccessToken.js.map +0 -1
- package/dist/react-native/common/environmentVariables.d.ts +0 -12
- package/dist/react-native/common/environmentVariables.d.ts.map +0 -1
- package/dist/react-native/common/environmentVariables.js +0 -22
- package/dist/react-native/common/environmentVariables.js.map +0 -1
- package/dist/react-native/common/executor.d.ts +0 -2
- package/dist/react-native/common/executor.d.ts.map +0 -1
- package/dist/react-native/common/executor.js +0 -73
- package/dist/react-native/common/executor.js.map +0 -1
- package/dist/react-native/common/httpService.d.ts +0 -5
- package/dist/react-native/common/httpService.d.ts.map +0 -1
- package/dist/react-native/common/httpService.js +0 -34
- package/dist/react-native/common/httpService.js.map +0 -1
- package/dist/react-native/common/logger.d.ts +0 -2
- package/dist/react-native/common/logger.d.ts.map +0 -1
- package/dist/react-native/common/logger.js +0 -5
- package/dist/react-native/common/logger.js.map +0 -1
- package/dist/react-native/common/messages.d.ts +0 -165
- package/dist/react-native/common/messages.d.ts.map +0 -1
- package/dist/react-native/common/messages.js +0 -167
- package/dist/react-native/common/messages.js.map +0 -1
- package/dist/react-native/common/playwrightServiceConfig.d.ts +0 -22
- package/dist/react-native/common/playwrightServiceConfig.d.ts.map +0 -1
- package/dist/react-native/common/playwrightServiceConfig.js +0 -102
- package/dist/react-native/common/playwrightServiceConfig.js.map +0 -1
- package/dist/react-native/common/state.d.ts +0 -2
- package/dist/react-native/common/state.d.ts.map +0 -1
- package/dist/react-native/common/state.js +0 -9
- package/dist/react-native/common/state.js.map +0 -1
- package/dist/react-native/common/types.d.ts +0 -207
- package/dist/react-native/common/types.d.ts.map +0 -1
- package/dist/react-native/common/types.js +0 -4
- package/dist/react-native/common/types.js.map +0 -1
- package/dist/react-native/core/global/playwright-service-global-setup.d.ts +0 -4
- package/dist/react-native/core/global/playwright-service-global-setup.d.ts.map +0 -1
- package/dist/react-native/core/global/playwright-service-global-setup.js +0 -25
- package/dist/react-native/core/global/playwright-service-global-setup.js.map +0 -1
- package/dist/react-native/core/global/playwright-service-global-teardown.d.ts +0 -4
- package/dist/react-native/core/global/playwright-service-global-teardown.d.ts.map +0 -1
- package/dist/react-native/core/global/playwright-service-global-teardown.js +0 -19
- package/dist/react-native/core/global/playwright-service-global-teardown.js.map +0 -1
- package/dist/react-native/core/initializePlaywrightServiceTestRun.d.ts +0 -9
- package/dist/react-native/core/initializePlaywrightServiceTestRun.d.ts.map +0 -1
- package/dist/react-native/core/initializePlaywrightServiceTestRun.js +0 -26
- package/dist/react-native/core/initializePlaywrightServiceTestRun.js.map +0 -1
- package/dist/react-native/core/playwrightService.d.ts +0 -66
- package/dist/react-native/core/playwrightService.d.ts.map +0 -1
- package/dist/react-native/core/playwrightService.js +0 -219
- package/dist/react-native/core/playwrightService.js.map +0 -1
- package/dist/react-native/core/playwrightServiceEntra.d.ts +0 -15
- package/dist/react-native/core/playwrightServiceEntra.d.ts.map +0 -1
- package/dist/react-native/core/playwrightServiceEntra.js +0 -52
- package/dist/react-native/core/playwrightServiceEntra.js.map +0 -1
- package/dist/react-native/core/playwrightServiceUtils.d.ts +0 -5
- package/dist/react-native/core/playwrightServiceUtils.d.ts.map +0 -1
- package/dist/react-native/core/playwrightServiceUtils.js +0 -13
- package/dist/react-native/core/playwrightServiceUtils.js.map +0 -1
- package/dist/react-native/index.d.ts +0 -10
- package/dist/react-native/index.d.ts.map +0 -1
- package/dist/react-native/index.js +0 -11
- package/dist/react-native/index.js.map +0 -1
- package/dist/react-native/package.json +0 -3
- package/dist/react-native/reporter/index.d.ts +0 -10
- package/dist/react-native/reporter/index.d.ts.map +0 -1
- package/dist/react-native/reporter/index.js +0 -12
- package/dist/react-native/reporter/index.js.map +0 -1
- package/dist/react-native/reporter/playwrightReporter.d.ts +0 -28
- package/dist/react-native/reporter/playwrightReporter.d.ts.map +0 -1
- package/dist/react-native/reporter/playwrightReporter.js +0 -210
- package/dist/react-native/reporter/playwrightReporter.js.map +0 -1
- package/dist/react-native/utils/PlaywrightServiceClient.d.ts +0 -9
- package/dist/react-native/utils/PlaywrightServiceClient.d.ts.map +0 -1
- package/dist/react-native/utils/PlaywrightServiceClient.js +0 -67
- package/dist/react-native/utils/PlaywrightServiceClient.js.map +0 -1
- package/dist/react-native/utils/cIInfoProvider.d.ts +0 -20
- package/dist/react-native/utils/cIInfoProvider.d.ts.map +0 -1
- package/dist/react-native/utils/cIInfoProvider.js +0 -75
- package/dist/react-native/utils/cIInfoProvider.js.map +0 -1
- package/dist/react-native/utils/getPackageVersion.d.ts +0 -2
- package/dist/react-native/utils/getPackageVersion.d.ts.map +0 -1
- package/dist/react-native/utils/getPackageVersion.js +0 -23
- package/dist/react-native/utils/getPackageVersion.js.map +0 -1
- package/dist/react-native/utils/getPlaywrightVersion.d.ts +0 -2
- package/dist/react-native/utils/getPlaywrightVersion.d.ts.map +0 -1
- package/dist/react-native/utils/getPlaywrightVersion.js +0 -19
- package/dist/react-native/utils/getPlaywrightVersion.js.map +0 -1
- package/dist/react-native/utils/packageManager.d.ts +0 -15
- package/dist/react-native/utils/packageManager.d.ts.map +0 -1
- package/dist/react-native/utils/packageManager.js +0 -41
- package/dist/react-native/utils/packageManager.js.map +0 -1
- package/dist/react-native/utils/parseJwt.d.ts +0 -4
- package/dist/react-native/utils/parseJwt.d.ts.map +0 -1
- package/dist/react-native/utils/parseJwt.js +0 -16
- package/dist/react-native/utils/parseJwt.js.map +0 -1
- package/dist/react-native/utils/playwrightReporterStorageManager.d.ts +0 -13
- package/dist/react-native/utils/playwrightReporterStorageManager.d.ts.map +0 -1
- package/dist/react-native/utils/playwrightReporterStorageManager.js +0 -452
- package/dist/react-native/utils/playwrightReporterStorageManager.js.map +0 -1
- package/dist/react-native/utils/utils.d.ts +0 -57
- package/dist/react-native/utils/utils.d.ts.map +0 -1
- package/dist/react-native/utils/utils.js +0 -392
- package/dist/react-native/utils/utils.js.map +0 -1
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { PlaywrightReporterStorageManager } from "../utils/playwrightReporterStorageManager.js";
|
|
2
|
-
import { getHtmlReporterOutputFolder, getPortalTestRunUrl, getVersionInfo, } from "../utils/utils.js";
|
|
3
|
-
import { coreLogger } from "../common/logger.js";
|
|
4
|
-
import { PlaywrightServiceConfig } from "../common/playwrightServiceConfig.js";
|
|
5
|
-
import { ServiceAuth, InternalEnvironmentVariables } from "../common/constants.js";
|
|
6
|
-
import { ServiceErrorMessageConstants } from "../common/messages.js";
|
|
7
|
-
import { PlaywrightServiceClient } from "../utils/PlaywrightServiceClient.js";
|
|
8
|
-
import { getPlaywrightVersion } from "../utils/getPlaywrightVersion.js";
|
|
9
|
-
/**
|
|
10
|
-
* Azure Playwright Reporter - Uploads generated Playwright test report folder to Azure Storage.
|
|
11
|
-
*/
|
|
12
|
-
export default class PlaywrightReporter {
|
|
13
|
-
config;
|
|
14
|
-
workspaceMetadata = null;
|
|
15
|
-
isReportingEnabled = false;
|
|
16
|
-
/**
|
|
17
|
-
* Called when test run begins. Stores configuration for later use and validates serviceAuthType and
|
|
18
|
-
* retrieves workspace metadata.
|
|
19
|
-
* @param config - Playwright test configuration
|
|
20
|
-
*/
|
|
21
|
-
async onBegin(config) {
|
|
22
|
-
coreLogger.info(`Reporter configuration: ${JSON.stringify(config.reporter, null, 2)}`);
|
|
23
|
-
this.config = config;
|
|
24
|
-
// Check Playwright version for reporting feature compatibility
|
|
25
|
-
try {
|
|
26
|
-
const playwrightVersion = getPlaywrightVersion();
|
|
27
|
-
const playwrightVersionInfo = getVersionInfo(playwrightVersion);
|
|
28
|
-
// Check if version is < 1.57
|
|
29
|
-
const isReportingSupportedVersion = playwrightVersionInfo.major > 1 ||
|
|
30
|
-
(playwrightVersionInfo.major === 1 && playwrightVersionInfo.minor >= 57);
|
|
31
|
-
if (!isReportingSupportedVersion) {
|
|
32
|
-
console.error(ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message);
|
|
33
|
-
this.isReportingEnabled = false;
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
coreLogger.error(`Failed to get Playwright version: ${error}`);
|
|
39
|
-
console.error(ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message);
|
|
40
|
-
this.isReportingEnabled = false;
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
// Check if using service config
|
|
44
|
-
const usingServiceConfig = process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] === "true";
|
|
45
|
-
coreLogger.info(`Using service config: ${usingServiceConfig}`);
|
|
46
|
-
if (!usingServiceConfig) {
|
|
47
|
-
console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_SERVICE_CONFIG.message);
|
|
48
|
-
this.isReportingEnabled = false;
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
// Check if test run creation was successful
|
|
52
|
-
const testRunCreationSuccess = process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] === "true";
|
|
53
|
-
if (!testRunCreationSuccess) {
|
|
54
|
-
console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);
|
|
55
|
-
console.error(ServiceErrorMessageConstants.REPORTING_TEST_RUN_FAILED.message);
|
|
56
|
-
this.isReportingEnabled = false;
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
// Check authentication
|
|
60
|
-
const playwrightServiceConfig = PlaywrightServiceConfig.instance;
|
|
61
|
-
coreLogger.info(`Current authentication type: ${playwrightServiceConfig.serviceAuthType}`);
|
|
62
|
-
const isUsingAccessToken = playwrightServiceConfig.serviceAuthType === ServiceAuth.ACCESS_TOKEN;
|
|
63
|
-
if (isUsingAccessToken) {
|
|
64
|
-
console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_ENTRA_AUTH.message);
|
|
65
|
-
this.isReportingEnabled = false;
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
coreLogger.info("Authentication validation passed - using ENTRA_ID");
|
|
69
|
-
// Validate HTML reporter configuration
|
|
70
|
-
if (!this.validateHtmlReporterConfiguration(config)) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// Get workspace metadata for later use
|
|
74
|
-
try {
|
|
75
|
-
const playwrightServiceApiClient = new PlaywrightServiceClient();
|
|
76
|
-
this.workspaceMetadata = await playwrightServiceApiClient.getWorkspaceMetadata();
|
|
77
|
-
coreLogger.info(`Received workspace details: ${JSON.stringify(this.workspaceMetadata, null, 2)}`);
|
|
78
|
-
if (!this.isReportingAllowed(this.workspaceMetadata)) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
this.isReportingEnabled = true;
|
|
82
|
-
console.log(ServiceErrorMessageConstants.REPORTING_ENABLED.message);
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
86
|
-
console.error(`${ServiceErrorMessageConstants.WORKSPACE_METADATA_FETCH_FAILED.message}Error: ${errorMessage} `);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Called when test run ends. Uploads Playwright test report to Azure Storage if reporting is enabled.
|
|
91
|
-
*/
|
|
92
|
-
async onEnd() {
|
|
93
|
-
if (this.isReportingEnabled) {
|
|
94
|
-
console.log(ServiceErrorMessageConstants.COLLECTING_ARTIFACTS.message);
|
|
95
|
-
const uploadResult = await this.uploadHtmlReport();
|
|
96
|
-
if (uploadResult.success) {
|
|
97
|
-
if (uploadResult.partialSuccess &&
|
|
98
|
-
uploadResult.failedFileDetails &&
|
|
99
|
-
uploadResult.failedFileDetails.length > 0) {
|
|
100
|
-
console.log("Warning: Failed to upload the following files:");
|
|
101
|
-
uploadResult.failedFileDetails.forEach((fileDetail) => {
|
|
102
|
-
console.log(` - ${fileDetail.fileName}, ERROR: ${fileDetail.error}`);
|
|
103
|
-
});
|
|
104
|
-
console.log(ServiceErrorMessageConstants.REPORTING_STATUS_PARTIAL.message);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
console.log(ServiceErrorMessageConstants.REPORTING_STATUS_SUCCESS.message);
|
|
108
|
-
}
|
|
109
|
-
// Display portal URL for both full and partial success
|
|
110
|
-
if (this.workspaceMetadata?.resourceId) {
|
|
111
|
-
const portalUrl = getPortalTestRunUrl(this.workspaceMetadata.resourceId);
|
|
112
|
-
console.log(ServiceErrorMessageConstants.TEST_REPORT_VIEW_URL.formatWithUrl(portalUrl));
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);
|
|
117
|
-
if (uploadResult.errorMessage) {
|
|
118
|
-
console.error(`Error: ${uploadResult.errorMessage}`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
async uploadHtmlReport() {
|
|
124
|
-
try {
|
|
125
|
-
const outputFolder = getHtmlReporterOutputFolder(this.config);
|
|
126
|
-
coreLogger.info(`Resolved Playwright test report output folder: ${outputFolder}`);
|
|
127
|
-
const storageManager = new PlaywrightReporterStorageManager();
|
|
128
|
-
coreLogger.info("Starting Playwright test report upload process");
|
|
129
|
-
const uploadResult = await storageManager.uploadPlaywrightHtmlReportAfterTests(outputFolder, this.workspaceMetadata);
|
|
130
|
-
if (uploadResult.success) {
|
|
131
|
-
coreLogger.info(`Playwright Test report uploaded successfully to Azure Storage.`);
|
|
132
|
-
}
|
|
133
|
-
return uploadResult;
|
|
134
|
-
}
|
|
135
|
-
catch (error) {
|
|
136
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
137
|
-
coreLogger.error(`Upload failed: ${errorMessage}`);
|
|
138
|
-
return { success: false, errorMessage };
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
validateHtmlReporterConfiguration(config) {
|
|
142
|
-
if (!config.reporter || !Array.isArray(config.reporter)) {
|
|
143
|
-
console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
const htmlReporterIndex = config.reporter.findIndex((reporter) => {
|
|
147
|
-
const reporterName = typeof reporter === "string" ? reporter : reporter?.[0];
|
|
148
|
-
return reporterName === "html";
|
|
149
|
-
});
|
|
150
|
-
const azureReporterIndex = config.reporter.findIndex((reporter) => {
|
|
151
|
-
const reporterName = typeof reporter === "string" ? reporter : reporter?.[0];
|
|
152
|
-
return (typeof reporterName === "string" &&
|
|
153
|
-
reporterName.includes("playwright") &&
|
|
154
|
-
reporterName.includes("reporter"));
|
|
155
|
-
});
|
|
156
|
-
// Validate HTML reporter exists
|
|
157
|
-
if (htmlReporterIndex === -1) {
|
|
158
|
-
console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);
|
|
159
|
-
return false;
|
|
160
|
-
}
|
|
161
|
-
// Validate HTML reporter comes before Azure reporter (if Azure reporter exists)
|
|
162
|
-
if (azureReporterIndex !== -1 && htmlReporterIndex > azureReporterIndex) {
|
|
163
|
-
console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
coreLogger.info("HTML reporter validation passed - HTML reporter is configured and properly ordered");
|
|
167
|
-
return true;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Determines if reporting should be enabled based on workspace metadata.
|
|
171
|
-
* @param workspaceMetadata - The workspace metadata containing reporting and storageUri information
|
|
172
|
-
* @returns true if reporting should be enabled, false otherwise
|
|
173
|
-
*/
|
|
174
|
-
isReportingAllowed(workspaceMetadata) {
|
|
175
|
-
if (!workspaceMetadata) {
|
|
176
|
-
console.error(ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.message);
|
|
177
|
-
return false;
|
|
178
|
-
}
|
|
179
|
-
const { reporting, storageUri } = workspaceMetadata;
|
|
180
|
-
// If reporting field is present in metadata, check its value
|
|
181
|
-
if (reporting !== undefined) {
|
|
182
|
-
const normalizedReporting = typeof reporting === "string" ? reporting.toLowerCase() : reporting;
|
|
183
|
-
if (normalizedReporting === "disabled") {
|
|
184
|
-
console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);
|
|
185
|
-
coreLogger.info("Reporting disabled via workspace metadata configuration");
|
|
186
|
-
return false;
|
|
187
|
-
}
|
|
188
|
-
if (normalizedReporting === "enabled") {
|
|
189
|
-
if (!storageUri) {
|
|
190
|
-
console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_STORAGE_NOT_LINKED.message);
|
|
191
|
-
coreLogger.info("Reporting enabled in metadata but storage URI not configured");
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
coreLogger.info("Reporting enabled via workspace metadata configuration");
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
// If reporting has an unexpected value, log warning and fall back to storageUri check
|
|
198
|
-
coreLogger.info(`Unexpected reporting value in workspace metadata: ${reporting}. Falling back to storage URI check.`);
|
|
199
|
-
}
|
|
200
|
-
// Fallback to current logic: check only storageUri (when reporting field is not present or has unexpected value)
|
|
201
|
-
if (!storageUri) {
|
|
202
|
-
console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);
|
|
203
|
-
coreLogger.info("Storage URI not configured in workspace metadata");
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
coreLogger.info("Reporting enabled based on storage URI configuration");
|
|
207
|
-
return true;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
//# sourceMappingURL=playwrightReporter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwrightReporter.js","sourceRoot":"","sources":["../../../src/reporter/playwrightReporter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { FullConfig, Reporter } from \"@playwright/test/reporter\";\nimport { PlaywrightReporterStorageManager } from \"../utils/playwrightReporterStorageManager.js\";\nimport {\n getHtmlReporterOutputFolder,\n getPortalTestRunUrl,\n getVersionInfo,\n} from \"../utils/utils.js\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { PlaywrightServiceConfig } from \"../common/playwrightServiceConfig.js\";\nimport { ServiceAuth, InternalEnvironmentVariables } from \"../common/constants.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport { PlaywrightServiceClient } from \"../utils/PlaywrightServiceClient.js\";\nimport { getPlaywrightVersion } from \"../utils/getPlaywrightVersion.js\";\nimport type { WorkspaceMetaData, UploadResult } from \"../common/types.js\";\n\n/**\n * Azure Playwright Reporter - Uploads generated Playwright test report folder to Azure Storage.\n */\n\nexport default class PlaywrightReporter implements Reporter {\n private config: FullConfig | undefined;\n private workspaceMetadata: WorkspaceMetaData | null = null;\n private isReportingEnabled = false;\n\n /**\n * Called when test run begins. Stores configuration for later use and validates serviceAuthType and\n * retrieves workspace metadata.\n * @param config - Playwright test configuration\n */\n\n async onBegin(config: FullConfig): Promise<void> {\n coreLogger.info(`Reporter configuration: ${JSON.stringify(config.reporter, null, 2)}`);\n\n this.config = config;\n\n // Check Playwright version for reporting feature compatibility\n try {\n const playwrightVersion = getPlaywrightVersion();\n const playwrightVersionInfo = getVersionInfo(playwrightVersion);\n\n // Check if version is < 1.57\n const isReportingSupportedVersion =\n playwrightVersionInfo.major > 1 ||\n (playwrightVersionInfo.major === 1 && playwrightVersionInfo.minor >= 57);\n\n if (!isReportingSupportedVersion) {\n console.error(\n ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message,\n );\n this.isReportingEnabled = false;\n return;\n }\n } catch (error) {\n coreLogger.error(`Failed to get Playwright version: ${error}`);\n console.error(ServiceErrorMessageConstants.PLAYWRIGHT_VERSION_TOO_OLD_FOR_REPORTING.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check if using service config\n const usingServiceConfig =\n process.env[InternalEnvironmentVariables.USING_SERVICE_CONFIG] === \"true\";\n coreLogger.info(`Using service config: ${usingServiceConfig}`);\n if (!usingServiceConfig) {\n console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_SERVICE_CONFIG.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check if test run creation was successful\n const testRunCreationSuccess =\n process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] === \"true\";\n if (!testRunCreationSuccess) {\n console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);\n console.error(ServiceErrorMessageConstants.REPORTING_TEST_RUN_FAILED.message);\n this.isReportingEnabled = false;\n return;\n }\n\n // Check authentication\n const playwrightServiceConfig = PlaywrightServiceConfig.instance;\n coreLogger.info(`Current authentication type: ${playwrightServiceConfig.serviceAuthType}`);\n const isUsingAccessToken = playwrightServiceConfig.serviceAuthType === ServiceAuth.ACCESS_TOKEN;\n if (isUsingAccessToken) {\n console.error(ServiceErrorMessageConstants.REPORTER_REQUIRES_ENTRA_AUTH.message);\n this.isReportingEnabled = false;\n return;\n }\n coreLogger.info(\"Authentication validation passed - using ENTRA_ID\");\n\n // Validate HTML reporter configuration\n if (!this.validateHtmlReporterConfiguration(config)) {\n return;\n }\n\n // Get workspace metadata for later use\n try {\n const playwrightServiceApiClient = new PlaywrightServiceClient();\n this.workspaceMetadata = await playwrightServiceApiClient.getWorkspaceMetadata();\n coreLogger.info(\n `Received workspace details: ${JSON.stringify(this.workspaceMetadata, null, 2)}`,\n );\n\n if (!this.isReportingAllowed(this.workspaceMetadata)) {\n return;\n }\n\n this.isReportingEnabled = true;\n console.log(ServiceErrorMessageConstants.REPORTING_ENABLED.message);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(\n `${ServiceErrorMessageConstants.WORKSPACE_METADATA_FETCH_FAILED.message}Error: ${errorMessage} `,\n );\n }\n }\n\n /**\n * Called when test run ends. Uploads Playwright test report to Azure Storage if reporting is enabled.\n */\n\n async onEnd(): Promise<void> {\n if (this.isReportingEnabled) {\n console.log(ServiceErrorMessageConstants.COLLECTING_ARTIFACTS.message);\n const uploadResult = await this.uploadHtmlReport();\n\n if (uploadResult.success) {\n if (\n uploadResult.partialSuccess &&\n uploadResult.failedFileDetails &&\n uploadResult.failedFileDetails.length > 0\n ) {\n console.log(\"Warning: Failed to upload the following files:\");\n uploadResult.failedFileDetails.forEach((fileDetail) => {\n console.log(` - ${fileDetail.fileName}, ERROR: ${fileDetail.error}`);\n });\n console.log(ServiceErrorMessageConstants.REPORTING_STATUS_PARTIAL.message);\n } else {\n console.log(ServiceErrorMessageConstants.REPORTING_STATUS_SUCCESS.message);\n }\n // Display portal URL for both full and partial success\n if (this.workspaceMetadata?.resourceId) {\n const portalUrl = getPortalTestRunUrl(this.workspaceMetadata.resourceId);\n console.log(ServiceErrorMessageConstants.TEST_REPORT_VIEW_URL.formatWithUrl(portalUrl));\n }\n } else {\n console.error(ServiceErrorMessageConstants.REPORTING_STATUS_FAILED.message);\n if (uploadResult.errorMessage) {\n console.error(`Error: ${uploadResult.errorMessage}`);\n }\n }\n }\n }\n\n private async uploadHtmlReport(): Promise<UploadResult> {\n try {\n const outputFolder = getHtmlReporterOutputFolder(this.config);\n coreLogger.info(`Resolved Playwright test report output folder: ${outputFolder}`);\n const storageManager = new PlaywrightReporterStorageManager();\n coreLogger.info(\"Starting Playwright test report upload process\");\n const uploadResult = await storageManager.uploadPlaywrightHtmlReportAfterTests(\n outputFolder,\n this.workspaceMetadata,\n );\n\n if (uploadResult.success) {\n coreLogger.info(`Playwright Test report uploaded successfully to Azure Storage.`);\n }\n return uploadResult;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : \"Unknown error\";\n coreLogger.error(`Upload failed: ${errorMessage}`);\n return { success: false, errorMessage };\n }\n }\n\n private validateHtmlReporterConfiguration(config: FullConfig): boolean {\n if (!config.reporter || !Array.isArray(config.reporter)) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n const htmlReporterIndex = config.reporter.findIndex((reporter) => {\n const reporterName = typeof reporter === \"string\" ? reporter : reporter?.[0];\n return reporterName === \"html\";\n });\n\n const azureReporterIndex = config.reporter.findIndex((reporter) => {\n const reporterName = typeof reporter === \"string\" ? reporter : reporter?.[0];\n return (\n typeof reporterName === \"string\" &&\n reporterName.includes(\"playwright\") &&\n reporterName.includes(\"reporter\")\n );\n });\n\n // Validate HTML reporter exists\n if (htmlReporterIndex === -1) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n // Validate HTML reporter comes before Azure reporter (if Azure reporter exists)\n if (azureReporterIndex !== -1 && htmlReporterIndex > azureReporterIndex) {\n console.error(ServiceErrorMessageConstants.HTML_REPORTER_REQUIRED.message);\n return false;\n }\n\n coreLogger.info(\n \"HTML reporter validation passed - HTML reporter is configured and properly ordered\",\n );\n return true;\n }\n\n /**\n * Determines if reporting should be enabled based on workspace metadata.\n * @param workspaceMetadata - The workspace metadata containing reporting and storageUri information\n * @returns true if reporting should be enabled, false otherwise\n */\n private isReportingAllowed(workspaceMetadata: WorkspaceMetaData | null): boolean {\n if (!workspaceMetadata) {\n console.error(ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.message);\n return false;\n }\n\n const { reporting, storageUri } = workspaceMetadata;\n\n // If reporting field is present in metadata, check its value\n if (reporting !== undefined) {\n const normalizedReporting =\n typeof reporting === \"string\" ? reporting.toLowerCase() : reporting;\n\n if (normalizedReporting === \"disabled\") {\n console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);\n coreLogger.info(\"Reporting disabled via workspace metadata configuration\");\n return false;\n }\n\n if (normalizedReporting === \"enabled\") {\n if (!storageUri) {\n console.error(\n ServiceErrorMessageConstants.WORKSPACE_REPORTING_STORAGE_NOT_LINKED.message,\n );\n coreLogger.info(\"Reporting enabled in metadata but storage URI not configured\");\n return false;\n }\n coreLogger.info(\"Reporting enabled via workspace metadata configuration\");\n return true;\n }\n\n // If reporting has an unexpected value, log warning and fall back to storageUri check\n coreLogger.info(\n `Unexpected reporting value in workspace metadata: ${reporting}. Falling back to storage URI check.`,\n );\n }\n\n // Fallback to current logic: check only storageUri (when reporting field is not present or has unexpected value)\n if (!storageUri) {\n console.error(ServiceErrorMessageConstants.WORKSPACE_REPORTING_DISABLED.message);\n coreLogger.info(\"Storage URI not configured in workspace metadata\");\n return false;\n }\n\n coreLogger.info(\"Reporting enabled based on storage URI configuration\");\n return true;\n }\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { HttpService } from "../common/httpService.js";
|
|
2
|
-
import type { TestRunCreatePayload, WorkspaceMetaData } from "../common/types.js";
|
|
3
|
-
export declare class PlaywrightServiceClient {
|
|
4
|
-
private httpService;
|
|
5
|
-
constructor(httpService?: HttpService);
|
|
6
|
-
createOrUpdateTestRun(payload: TestRunCreatePayload): Promise<void>;
|
|
7
|
-
getWorkspaceMetadata(): Promise<WorkspaceMetaData>;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=PlaywrightServiceClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightServiceClient.d.ts","sourceRoot":"","sources":["../../../src/utils/PlaywrightServiceClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGlF,qBAAa,uBAAuB;IAClC,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,CAAC,EAAE,WAAW;IAI/B,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CnE,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAsCzD"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
import { getTestRunApiUrl, getAccessToken, extractErrorMessage, getWorkspaceMetaDataApiUrl, } from "./utils.js";
|
|
4
|
-
import { ServiceErrorMessageConstants } from "../common/messages.js";
|
|
5
|
-
import { HttpService } from "../common/httpService.js";
|
|
6
|
-
import { Constants, InternalEnvironmentVariables } from "../common/constants.js";
|
|
7
|
-
export class PlaywrightServiceClient {
|
|
8
|
-
httpService;
|
|
9
|
-
constructor(httpService) {
|
|
10
|
-
this.httpService = httpService ?? new HttpService();
|
|
11
|
-
}
|
|
12
|
-
async createOrUpdateTestRun(payload) {
|
|
13
|
-
try {
|
|
14
|
-
const baseUrl = getTestRunApiUrl();
|
|
15
|
-
const token = getAccessToken();
|
|
16
|
-
if (!token) {
|
|
17
|
-
throw new Error("PLAYWRIGHT_SERVICE_ACCESS_TOKEN environment variable is not set.");
|
|
18
|
-
}
|
|
19
|
-
const url = new URL(baseUrl);
|
|
20
|
-
url.searchParams.set("api-version", Constants.LatestAPIVersion);
|
|
21
|
-
const method = "PATCH";
|
|
22
|
-
const data = JSON.stringify(payload);
|
|
23
|
-
const contentType = "application/merge-patch+json";
|
|
24
|
-
const correlationId = crypto.randomUUID();
|
|
25
|
-
const response = await this.httpService.callAPI(method, url.toString(), data, token, contentType, correlationId);
|
|
26
|
-
if (response.status !== 200) {
|
|
27
|
-
const errorMessage = extractErrorMessage(response?.bodyAsText ?? "");
|
|
28
|
-
process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] = "false";
|
|
29
|
-
console.error(ServiceErrorMessageConstants.TEST_RUN_CREATION_FAILED.formatWithErrorDetails(errorMessage || "Unknown error"));
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
console.log("Test run created successfully.");
|
|
33
|
-
process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] = "true";
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred during test run creation";
|
|
37
|
-
process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] = "false";
|
|
38
|
-
console.error(ServiceErrorMessageConstants.TEST_RUN_CREATION_FAILED.formatWithErrorDetails(errorMessage));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
async getWorkspaceMetadata() {
|
|
42
|
-
try {
|
|
43
|
-
const baseUrl = getWorkspaceMetaDataApiUrl();
|
|
44
|
-
const token = getAccessToken();
|
|
45
|
-
if (!token) {
|
|
46
|
-
throw new Error("PLAYWRIGHT_SERVICE_ACCESS_TOKEN environment variable is not set.");
|
|
47
|
-
}
|
|
48
|
-
const url = new URL(baseUrl);
|
|
49
|
-
url.searchParams.set("api-version", Constants.LatestAPIVersion);
|
|
50
|
-
const method = "GET";
|
|
51
|
-
const correlationId = crypto.randomUUID();
|
|
52
|
-
const response = await this.httpService.callAPI(method, url.toString(), null, token, "", correlationId);
|
|
53
|
-
if (response.status !== 200) {
|
|
54
|
-
const errorMessage = extractErrorMessage(response?.bodyAsText ?? "");
|
|
55
|
-
throw new Error(ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.formatWithError(errorMessage || `HTTP ${response.status}: Failed to retrieve workspace details`));
|
|
56
|
-
}
|
|
57
|
-
return response.bodyAsText ? JSON.parse(response.bodyAsText) : {};
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
if (error instanceof Error) {
|
|
61
|
-
throw error;
|
|
62
|
-
}
|
|
63
|
-
throw new Error(ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.message);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=PlaywrightServiceClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightServiceClient.js","sourceRoot":"","sources":["../../../src/utils/PlaywrightServiceClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport {\n getTestRunApiUrl,\n getAccessToken,\n extractErrorMessage,\n getWorkspaceMetaDataApiUrl,\n} from \"./utils.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport { HttpService } from \"../common/httpService.js\";\nimport type { TestRunCreatePayload, WorkspaceMetaData } from \"../common/types.js\";\nimport { Constants, InternalEnvironmentVariables } from \"../common/constants.js\";\n\nexport class PlaywrightServiceClient {\n private httpService: HttpService;\n\n constructor(httpService?: HttpService) {\n this.httpService = httpService ?? new HttpService();\n }\n\n async createOrUpdateTestRun(payload: TestRunCreatePayload): Promise<void> {\n try {\n const baseUrl = getTestRunApiUrl();\n const token = getAccessToken();\n if (!token) {\n throw new Error(\"PLAYWRIGHT_SERVICE_ACCESS_TOKEN environment variable is not set.\");\n }\n const url = new URL(baseUrl);\n url.searchParams.set(\"api-version\", Constants.LatestAPIVersion);\n const method = \"PATCH\";\n const data = JSON.stringify(payload);\n const contentType = \"application/merge-patch+json\";\n const correlationId = crypto.randomUUID();\n\n const response = await this.httpService.callAPI(\n method,\n url.toString(),\n data,\n token,\n contentType,\n correlationId,\n );\n\n if (response.status !== 200) {\n const errorMessage = extractErrorMessage(response?.bodyAsText ?? \"\");\n process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] = \"false\";\n console.error(\n ServiceErrorMessageConstants.TEST_RUN_CREATION_FAILED.formatWithErrorDetails(\n errorMessage || \"Unknown error\",\n ),\n );\n return;\n }\n\n console.log(\"Test run created successfully.\");\n process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] = \"true\";\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error occurred during test run creation\";\n process.env[InternalEnvironmentVariables.TEST_RUN_CREATION_SUCCESS] = \"false\";\n console.error(\n ServiceErrorMessageConstants.TEST_RUN_CREATION_FAILED.formatWithErrorDetails(errorMessage),\n );\n }\n }\n\n async getWorkspaceMetadata(): Promise<WorkspaceMetaData> {\n try {\n const baseUrl = getWorkspaceMetaDataApiUrl();\n const token = getAccessToken();\n if (!token) {\n throw new Error(\"PLAYWRIGHT_SERVICE_ACCESS_TOKEN environment variable is not set.\");\n }\n const url = new URL(baseUrl);\n url.searchParams.set(\"api-version\", Constants.LatestAPIVersion);\n const method = \"GET\";\n const correlationId = crypto.randomUUID();\n\n const response = await this.httpService.callAPI(\n method,\n url.toString(),\n null,\n token,\n \"\",\n correlationId,\n );\n\n if (response.status !== 200) {\n const errorMessage = extractErrorMessage(response?.bodyAsText ?? \"\");\n throw new Error(\n ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.formatWithError(\n errorMessage || `HTTP ${response.status}: Failed to retrieve workspace details`,\n ),\n );\n }\n\n return response.bodyAsText ? JSON.parse(response.bodyAsText) : {};\n } catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw new Error(ServiceErrorMessageConstants.FAILED_TO_GET_WORKSPACE_METADATA.message);\n }\n }\n}\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export declare enum CI_PROVIDERS {
|
|
2
|
-
GITHUB = "GITHUB",
|
|
3
|
-
ADO = "ADO",
|
|
4
|
-
DEFAULT = "DEFAULT"
|
|
5
|
-
}
|
|
6
|
-
export type CIInfo = {
|
|
7
|
-
providerName?: CI_PROVIDERS | null;
|
|
8
|
-
branch?: string | null;
|
|
9
|
-
author?: string | null;
|
|
10
|
-
commitId?: string | null;
|
|
11
|
-
revisionUrl?: string | null;
|
|
12
|
-
};
|
|
13
|
-
export declare class CIInfoProvider {
|
|
14
|
-
private static isGitHubActions;
|
|
15
|
-
static getCIProvider(): string | null;
|
|
16
|
-
static getCIInfo(): CIInfo;
|
|
17
|
-
private static isAzureDevOps;
|
|
18
|
-
private static getGHBranchName;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=cIInfoProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cIInfoProvider.d.ts","sourceRoot":"","sources":["../../../src/utils/cIInfoProvider.ts"],"names":[],"mappings":"AAGA,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,OAAO,YAAY;CAEpB;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B,MAAM,CAAC,aAAa,IAAI,MAAM,GAAG,IAAI;IAUrC,MAAM,CAAC,SAAS,IAAI,MAAM;IAoC1B,OAAO,CAAC,MAAM,CAAC,aAAa;IAM5B,OAAO,CAAC,MAAM,CAAC,eAAe;CAU/B"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
export var CI_PROVIDERS;
|
|
4
|
-
(function (CI_PROVIDERS) {
|
|
5
|
-
CI_PROVIDERS["GITHUB"] = "GITHUB";
|
|
6
|
-
CI_PROVIDERS["ADO"] = "ADO";
|
|
7
|
-
CI_PROVIDERS["DEFAULT"] = "DEFAULT";
|
|
8
|
-
// Add more CI providers as needed
|
|
9
|
-
})(CI_PROVIDERS || (CI_PROVIDERS = {}));
|
|
10
|
-
export class CIInfoProvider {
|
|
11
|
-
static isGitHubActions() {
|
|
12
|
-
return process.env["GITHUB_ACTIONS"] === "true";
|
|
13
|
-
}
|
|
14
|
-
static getCIProvider() {
|
|
15
|
-
if (CIInfoProvider.isGitHubActions()) {
|
|
16
|
-
return CI_PROVIDERS.GITHUB;
|
|
17
|
-
}
|
|
18
|
-
else if (CIInfoProvider.isAzureDevOps()) {
|
|
19
|
-
return CI_PROVIDERS.ADO;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return CI_PROVIDERS.DEFAULT;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
static getCIInfo() {
|
|
26
|
-
const ciProvider = CIInfoProvider.getCIProvider();
|
|
27
|
-
if (ciProvider === CI_PROVIDERS.GITHUB) {
|
|
28
|
-
// Logic to get GitHub Actions CIInfo
|
|
29
|
-
return {
|
|
30
|
-
providerName: CI_PROVIDERS.GITHUB,
|
|
31
|
-
branch: this.getGHBranchName() || null,
|
|
32
|
-
author: process.env["GITHUB_ACTOR"] || null,
|
|
33
|
-
commitId: process.env["GITHUB_SHA"] || null,
|
|
34
|
-
revisionUrl: process.env["GITHUB_SERVER_URL"]
|
|
35
|
-
? `${process.env["GITHUB_SERVER_URL"]}/${process.env["GITHUB_REPOSITORY"]}/commit/${process.env["GITHUB_SHA"]}`
|
|
36
|
-
: null,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
else if (ciProvider === CI_PROVIDERS.ADO) {
|
|
40
|
-
// Logic to get Azure DevOps CIInfo
|
|
41
|
-
return {
|
|
42
|
-
providerName: CI_PROVIDERS.ADO,
|
|
43
|
-
branch: process.env["BUILD_SOURCEBRANCH"] || null,
|
|
44
|
-
author: process.env["BUILD_REQUESTEDFOR"] || null,
|
|
45
|
-
commitId: process.env["BUILD_SOURCEVERSION"] || null,
|
|
46
|
-
revisionUrl: process.env["SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"]
|
|
47
|
-
? `${process.env["SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"]}${process.env["SYSTEM_TEAMPROJECT"]}/_git/${process.env["BUILD_REPOSITORY_NAME"]}/commit/${process.env["BUILD_SOURCEVERSION"]}`
|
|
48
|
-
: null,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
// Handle unsupported CI provider
|
|
53
|
-
return {
|
|
54
|
-
providerName: CI_PROVIDERS.DEFAULT,
|
|
55
|
-
branch: process.env["BRANCH"] ?? null,
|
|
56
|
-
author: process.env["AUTHOR"] ?? null,
|
|
57
|
-
commitId: process.env["COMMIT_ID"] ?? null,
|
|
58
|
-
revisionUrl: process.env["REVISION_URL"] ?? null,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
static isAzureDevOps() {
|
|
63
|
-
return (process.env["AZURE_HTTP_USER_AGENT"] !== undefined && process.env["TF_BUILD"] !== undefined);
|
|
64
|
-
}
|
|
65
|
-
static getGHBranchName() {
|
|
66
|
-
if (process.env["GITHUB_EVENT_NAME"] === "pull_request" ||
|
|
67
|
-
process.env["GITHUB_EVENT_NAME"] === "pull_request_target") {
|
|
68
|
-
return process.env["GITHUB_HEAD_REF"];
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
return process.env["GITHUB_REF_NAME"];
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=cIInfoProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cIInfoProvider.js","sourceRoot":"","sources":["../../../src/utils/cIInfoProvider.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport enum CI_PROVIDERS {\n GITHUB = \"GITHUB\",\n ADO = \"ADO\",\n DEFAULT = \"DEFAULT\",\n // Add more CI providers as needed\n}\n\nexport type CIInfo = {\n providerName?: CI_PROVIDERS | null;\n branch?: string | null;\n author?: string | null;\n commitId?: string | null;\n revisionUrl?: string | null;\n};\n\nexport class CIInfoProvider {\n private static isGitHubActions(): boolean {\n return process.env[\"GITHUB_ACTIONS\"] === \"true\";\n }\n\n static getCIProvider(): string | null {\n if (CIInfoProvider.isGitHubActions()) {\n return CI_PROVIDERS.GITHUB;\n } else if (CIInfoProvider.isAzureDevOps()) {\n return CI_PROVIDERS.ADO;\n } else {\n return CI_PROVIDERS.DEFAULT;\n }\n }\n\n static getCIInfo(): CIInfo {\n const ciProvider = CIInfoProvider.getCIProvider();\n if (ciProvider === CI_PROVIDERS.GITHUB) {\n // Logic to get GitHub Actions CIInfo\n return {\n providerName: CI_PROVIDERS.GITHUB,\n branch: this.getGHBranchName() || null,\n author: process.env[\"GITHUB_ACTOR\"] || null,\n commitId: process.env[\"GITHUB_SHA\"] || null,\n revisionUrl: process.env[\"GITHUB_SERVER_URL\"]\n ? `${process.env[\"GITHUB_SERVER_URL\"]}/${process.env[\"GITHUB_REPOSITORY\"]}/commit/${process.env[\"GITHUB_SHA\"]}`\n : null,\n };\n } else if (ciProvider === CI_PROVIDERS.ADO) {\n // Logic to get Azure DevOps CIInfo\n return {\n providerName: CI_PROVIDERS.ADO,\n branch: process.env[\"BUILD_SOURCEBRANCH\"] || null,\n author: process.env[\"BUILD_REQUESTEDFOR\"] || null,\n commitId: process.env[\"BUILD_SOURCEVERSION\"] || null,\n revisionUrl: process.env[\"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI\"]\n ? `${process.env[\"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI\"]}${process.env[\"SYSTEM_TEAMPROJECT\"]}/_git/${process.env[\"BUILD_REPOSITORY_NAME\"]}/commit/${process.env[\"BUILD_SOURCEVERSION\"]}`\n : null,\n };\n } else {\n // Handle unsupported CI provider\n return {\n providerName: CI_PROVIDERS.DEFAULT,\n branch: process.env[\"BRANCH\"] ?? null,\n author: process.env[\"AUTHOR\"] ?? null,\n commitId: process.env[\"COMMIT_ID\"] ?? null,\n revisionUrl: process.env[\"REVISION_URL\"] ?? null,\n };\n }\n }\n\n private static isAzureDevOps(): boolean {\n return (\n process.env[\"AZURE_HTTP_USER_AGENT\"] !== undefined && process.env[\"TF_BUILD\"] !== undefined\n );\n }\n\n private static getGHBranchName(): string {\n if (\n process.env[\"GITHUB_EVENT_NAME\"] === \"pull_request\" ||\n process.env[\"GITHUB_EVENT_NAME\"] === \"pull_request_target\"\n ) {\n return process.env[\"GITHUB_HEAD_REF\"]!;\n } else {\n return process.env[\"GITHUB_REF_NAME\"]!;\n }\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageVersion.d.ts","sourceRoot":"","sources":["../../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,2BAA2B,GAAI,QAAQ,MAAM,KAAG,MAQ5D,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
import path, { dirname } from "node:path";
|
|
4
|
-
import { coreLogger } from "../common/logger.js";
|
|
5
|
-
import { fileURLToPath } from "node:url";
|
|
6
|
-
import { createRequire } from "node:module";
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
8
|
-
// @ts-ignore ESM only output
|
|
9
|
-
const require = createRequire(import.meta.url);
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
11
|
-
// @ts-ignore ESM only output
|
|
12
|
-
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
13
|
-
export const getPackageVersionFromFolder = (folder) => {
|
|
14
|
-
try {
|
|
15
|
-
const version = require(path.join(currentDir, folder, "package.json")).version;
|
|
16
|
-
return version;
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
coreLogger.error("Error fetching package version:", error);
|
|
20
|
-
return "";
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=getPackageVersion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageVersion.js","sourceRoot":"","sources":["../../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,6DAA6D;AAC7D,6BAA6B;AAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAU,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/E,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport path, { dirname } from \"node:path\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { fileURLToPath } from \"node:url\";\nimport { createRequire } from \"node:module\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst require = createRequire(import.meta.url);\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore ESM only output\nconst currentDir = dirname(fileURLToPath(import.meta.url));\n\nexport const getPackageVersionFromFolder = (folder: string): string => {\n try {\n const version = require(path.join(currentDir, folder, \"package.json\")).version;\n return version;\n } catch (error) {\n coreLogger.error(\"Error fetching package version:\", error);\n return \"\";\n }\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPlaywrightVersion.d.ts","sourceRoot":"","sources":["../../../src/utils/getPlaywrightVersion.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,QAAO,MAcvC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
import { getPackageManager } from "./packageManager.js";
|
|
4
|
-
import { InternalEnvironmentVariables } from "../common/constants.js";
|
|
5
|
-
import { execSync } from "node:child_process";
|
|
6
|
-
import { coreLogger } from "../common/logger.js";
|
|
7
|
-
export const getPlaywrightVersion = () => {
|
|
8
|
-
if (process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION]) {
|
|
9
|
-
return process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION];
|
|
10
|
-
}
|
|
11
|
-
const packageManager = getPackageManager();
|
|
12
|
-
const command = packageManager.runCommand("playwright", "--version");
|
|
13
|
-
const stdout = execSync(command).toString().trim();
|
|
14
|
-
const version = packageManager.getVersionFromStdout(stdout);
|
|
15
|
-
process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION] = version;
|
|
16
|
-
coreLogger.info(`Playwright version being used - ${process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION]}`);
|
|
17
|
-
return process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION];
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=getPlaywrightVersion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPlaywrightVersion.js","sourceRoot":"","sources":["../../../src/utils/getPlaywrightVersion.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAW,EAAE;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACrE,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,sBAAsB,CAAE,CAAC;IAC3E,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC;IAC3E,UAAU,CAAC,IAAI,CACb,mCAAmC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,EAAE,CACtG,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,sBAAsB,CAAE,CAAC;AAC3E,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { getPackageManager } from \"./packageManager.js\";\nimport { InternalEnvironmentVariables } from \"../common/constants.js\";\nimport { execSync } from \"node:child_process\";\nimport { coreLogger } from \"../common/logger.js\";\n\nexport const getPlaywrightVersion = (): string => {\n if (process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION]) {\n return process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION]!;\n }\n\n const packageManager = getPackageManager();\n const command = packageManager.runCommand(\"playwright\", \"--version\");\n const stdout = execSync(command).toString().trim();\n const version = packageManager.getVersionFromStdout(stdout);\n process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION] = version;\n coreLogger.info(\n `Playwright version being used - ${process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION]}`,\n );\n return process.env[InternalEnvironmentVariables.MPT_PLAYWRIGHT_VERSION]!;\n};\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PackageManager } from "../common/types.js";
|
|
2
|
-
export declare class NPM implements PackageManager {
|
|
3
|
-
runCommand: (command: string, args: string) => string;
|
|
4
|
-
getVersionFromStdout: (stdout: string) => string;
|
|
5
|
-
}
|
|
6
|
-
export declare class PNPM implements PackageManager {
|
|
7
|
-
runCommand: (command: string, args: string) => string;
|
|
8
|
-
getVersionFromStdout: (stdout: string) => string;
|
|
9
|
-
}
|
|
10
|
-
export declare class Yarn implements PackageManager {
|
|
11
|
-
runCommand: (command: string, args: string) => string;
|
|
12
|
-
getVersionFromStdout: (stdout: string) => string;
|
|
13
|
-
}
|
|
14
|
-
export declare const getPackageManager: () => PackageManager;
|
|
15
|
-
//# sourceMappingURL=packageManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.d.ts","sourceRoot":"","sources":["../../../src/utils/packageManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,qBAAa,GAAI,YAAW,cAAc;IACxC,UAAU,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,CAElD;IACF,oBAAoB,GAAI,QAAQ,MAAM,KAAG,MAAM,CAG7C;CACH;AAED,qBAAa,IAAK,YAAW,cAAc;IACzC,UAAU,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,CAElD;IACF,oBAAoB,GAAI,QAAQ,MAAM,KAAG,MAAM,CAG7C;CACH;AAED,qBAAa,IAAK,YAAW,cAAc;IACzC,UAAU,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,CAElD;IACF,oBAAoB,GAAI,QAAQ,MAAM,KAAG,MAAM,CAG7C;CACH;AAGD,eAAO,MAAM,iBAAiB,QAAO,cAOpC,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
export class NPM {
|
|
4
|
-
runCommand = (command, args) => {
|
|
5
|
-
return `npx ${command} ${args}`;
|
|
6
|
-
};
|
|
7
|
-
getVersionFromStdout = (stdout) => {
|
|
8
|
-
const match = stdout.match(/Version\s(\d+\.\d+\.\d+(-\w+-\d{4}-\d{2}-\d{2})?)/);
|
|
9
|
-
return match ? match[1] : "Unknown version";
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export class PNPM {
|
|
13
|
-
runCommand = (command, args) => {
|
|
14
|
-
return `pnpm ${command} ${args}`;
|
|
15
|
-
};
|
|
16
|
-
getVersionFromStdout = (stdout) => {
|
|
17
|
-
const match = stdout.match(/Version\s(\d+\.\d+\.\d+(-\w+-\d{4}-\d{2}-\d{2})?)/);
|
|
18
|
-
return match ? match[1] : "Unknown version";
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export class Yarn {
|
|
22
|
-
runCommand = (command, args) => {
|
|
23
|
-
return `yarn ${command} ${args}`;
|
|
24
|
-
};
|
|
25
|
-
getVersionFromStdout = (stdout) => {
|
|
26
|
-
const match = stdout.match(/Version\s(\d+\.\d+\.\d+(-\w+-\d{4}-\d{2}-\d{2})?)/);
|
|
27
|
-
return match ? match[1] : "Unknown version";
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
// https://stackoverflow.com/questions/68133683/is-there-a-cross-platform-way-to-get-the-name-of-the-parent-process-in-node-js
|
|
31
|
-
export const getPackageManager = () => {
|
|
32
|
-
if (process.env["npm_config_user_agent"]) {
|
|
33
|
-
const userAgent = process.env["npm_config_user_agent"];
|
|
34
|
-
if (userAgent.includes("yarn"))
|
|
35
|
-
return new Yarn();
|
|
36
|
-
if (userAgent.includes("pnpm"))
|
|
37
|
-
return new PNPM();
|
|
38
|
-
}
|
|
39
|
-
return new NPM();
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=packageManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../../src/utils/packageManager.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,MAAM,OAAO,GAAG;IACd,UAAU,GAAG,CAAC,OAAe,EAAE,IAAY,EAAU,EAAE;QACrD,OAAO,OAAO,OAAO,IAAI,IAAI,EAAE,CAAC;IAClC,CAAC,CAAC;IACF,oBAAoB,GAAG,CAAC,MAAc,EAAU,EAAE;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC9C,CAAC,CAAC;CACH;AAED,MAAM,OAAO,IAAI;IACf,UAAU,GAAG,CAAC,OAAe,EAAE,IAAY,EAAU,EAAE;QACrD,OAAO,QAAQ,OAAO,IAAI,IAAI,EAAE,CAAC;IACnC,CAAC,CAAC;IACF,oBAAoB,GAAG,CAAC,MAAc,EAAU,EAAE;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC9C,CAAC,CAAC;CACH;AAED,MAAM,OAAO,IAAI;IACf,UAAU,GAAG,CAAC,OAAe,EAAE,IAAY,EAAU,EAAE;QACrD,OAAO,QAAQ,OAAO,IAAI,IAAI,EAAE,CAAC;IACnC,CAAC,CAAC;IACF,oBAAoB,GAAG,CAAC,MAAc,EAAU,EAAE;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC9C,CAAC,CAAC;CACH;AAED,8HAA8H;AAC9H,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAmB,EAAE;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PackageManager } from \"../common/types.js\";\n\nexport class NPM implements PackageManager {\n runCommand = (command: string, args: string): string => {\n return `npx ${command} ${args}`;\n };\n getVersionFromStdout = (stdout: string): string => {\n const match = stdout.match(/Version\\s(\\d+\\.\\d+\\.\\d+(-\\w+-\\d{4}-\\d{2}-\\d{2})?)/);\n return match ? match[1] : \"Unknown version\";\n };\n}\n\nexport class PNPM implements PackageManager {\n runCommand = (command: string, args: string): string => {\n return `pnpm ${command} ${args}`;\n };\n getVersionFromStdout = (stdout: string): string => {\n const match = stdout.match(/Version\\s(\\d+\\.\\d+\\.\\d+(-\\w+-\\d{4}-\\d{2}-\\d{2})?)/);\n return match ? match[1] : \"Unknown version\";\n };\n}\n\nexport class Yarn implements PackageManager {\n runCommand = (command: string, args: string): string => {\n return `yarn ${command} ${args}`;\n };\n getVersionFromStdout = (stdout: string): string => {\n const match = stdout.match(/Version\\s(\\d+\\.\\d+\\.\\d+(-\\w+-\\d{4}-\\d{2}-\\d{2})?)/);\n return match ? match[1] : \"Unknown version\";\n };\n}\n\n// https://stackoverflow.com/questions/68133683/is-there-a-cross-platform-way-to-get-the-name-of-the-parent-process-in-node-js\nexport const getPackageManager = (): PackageManager => {\n if (process.env[\"npm_config_user_agent\"]) {\n const userAgent = process.env[\"npm_config_user_agent\"];\n if (userAgent.includes(\"yarn\")) return new Yarn();\n if (userAgent.includes(\"pnpm\")) return new PNPM();\n }\n return new NPM();\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseJwt.d.ts","sourceRoot":"","sources":["../../../src/utils/parseJwt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAInD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,UAAU,EAAE,OAAO,MAAM,KAAG,CAOxD,CAAC"}
|