@seontechnologies/playwright-utils 3.10.0
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/LICENSE +21 -0
- package/README.md +727 -0
- package/dist/cjs/api-request/api-request-fixture.d.ts +47 -0
- package/dist/cjs/api-request/api-request-fixture.d.ts.map +1 -0
- package/dist/cjs/api-request/api-request-fixture.js +26 -0
- package/dist/cjs/api-request/api-request-fixture.js.map +1 -0
- package/dist/cjs/api-request/api-request.d.ts +108 -0
- package/dist/cjs/api-request/api-request.d.ts.map +1 -0
- package/dist/cjs/api-request/api-request.js +326 -0
- package/dist/cjs/api-request/api-request.js.map +1 -0
- package/dist/cjs/api-request/fixtures.d.ts +3 -0
- package/dist/cjs/api-request/fixtures.d.ts.map +1 -0
- package/dist/cjs/api-request/fixtures.js +13 -0
- package/dist/cjs/api-request/fixtures.js.map +1 -0
- package/dist/cjs/api-request/index.d.ts +7 -0
- package/dist/cjs/api-request/index.d.ts.map +1 -0
- package/dist/cjs/api-request/index.js +11 -0
- package/dist/cjs/api-request/index.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/core.d.ts +13 -0
- package/dist/cjs/api-request/schema-validation/core.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/core.js +55 -0
- package/dist/cjs/api-request/schema-validation/core.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/fixture.d.ts +20 -0
- package/dist/cjs/api-request/schema-validation/fixture.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/fixture.js +17 -0
- package/dist/cjs/api-request/schema-validation/fixture.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/index.d.ts +6 -0
- package/dist/cjs/api-request/schema-validation/index.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/index.js +13 -0
- package/dist/cjs/api-request/schema-validation/index.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/file-loader.d.ts +50 -0
- package/dist/cjs/api-request/schema-validation/internal/file-loader.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/file-loader.js +126 -0
- package/dist/cjs/api-request/schema-validation/internal/file-loader.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/openapi-handler.d.ts +43 -0
- package/dist/cjs/api-request/schema-validation/internal/openapi-handler.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/openapi-handler.js +147 -0
- package/dist/cjs/api-request/schema-validation/internal/openapi-handler.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/promise-extension.d.ts +10 -0
- package/dist/cjs/api-request/schema-validation/internal/promise-extension.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/promise-extension.js +14 -0
- package/dist/cjs/api-request/schema-validation/internal/promise-extension.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/response-extension.d.ts +18 -0
- package/dist/cjs/api-request/schema-validation/internal/response-extension.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/response-extension.js +212 -0
- package/dist/cjs/api-request/schema-validation/internal/response-extension.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/result-builder.d.ts +62 -0
- package/dist/cjs/api-request/schema-validation/internal/result-builder.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/result-builder.js +140 -0
- package/dist/cjs/api-request/schema-validation/internal/result-builder.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/safe-error-serializer.d.ts +58 -0
- package/dist/cjs/api-request/schema-validation/internal/safe-error-serializer.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/safe-error-serializer.js +221 -0
- package/dist/cjs/api-request/schema-validation/internal/safe-error-serializer.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/schema-processors.d.ts +38 -0
- package/dist/cjs/api-request/schema-validation/internal/schema-processors.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/schema-processors.js +341 -0
- package/dist/cjs/api-request/schema-validation/internal/schema-processors.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/shape-validator.d.ts +96 -0
- package/dist/cjs/api-request/schema-validation/internal/shape-validator.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/shape-validator.js +180 -0
- package/dist/cjs/api-request/schema-validation/internal/shape-validator.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/validation-engine.d.ts +63 -0
- package/dist/cjs/api-request/schema-validation/internal/validation-engine.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/internal/validation-engine.js +395 -0
- package/dist/cjs/api-request/schema-validation/internal/validation-engine.js.map +1 -0
- package/dist/cjs/api-request/schema-validation/types.d.ts +92 -0
- package/dist/cjs/api-request/schema-validation/types.d.ts.map +1 -0
- package/dist/cjs/api-request/schema-validation/types.js +16 -0
- package/dist/cjs/api-request/schema-validation/types.js.map +1 -0
- package/dist/cjs/api-request/ui-display.d.ts +42 -0
- package/dist/cjs/api-request/ui-display.d.ts.map +1 -0
- package/dist/cjs/api-request/ui-display.js +370 -0
- package/dist/cjs/api-request/ui-display.js.map +1 -0
- package/dist/cjs/auth-session/apply-user-cookies-to-browser-context.d.ts +17 -0
- package/dist/cjs/auth-session/apply-user-cookies-to-browser-context.d.ts.map +1 -0
- package/dist/cjs/auth-session/apply-user-cookies-to-browser-context.js +49 -0
- package/dist/cjs/auth-session/apply-user-cookies-to-browser-context.js.map +1 -0
- package/dist/cjs/auth-session/core.d.ts +56 -0
- package/dist/cjs/auth-session/core.d.ts.map +1 -0
- package/dist/cjs/auth-session/core.js +271 -0
- package/dist/cjs/auth-session/core.js.map +1 -0
- package/dist/cjs/auth-session/fixtures.d.ts +83 -0
- package/dist/cjs/auth-session/fixtures.d.ts.map +1 -0
- package/dist/cjs/auth-session/fixtures.js +147 -0
- package/dist/cjs/auth-session/fixtures.js.map +1 -0
- package/dist/cjs/auth-session/global-setup-helper.d.ts +18 -0
- package/dist/cjs/auth-session/global-setup-helper.d.ts.map +1 -0
- package/dist/cjs/auth-session/global-setup-helper.js +26 -0
- package/dist/cjs/auth-session/global-setup-helper.js.map +1 -0
- package/dist/cjs/auth-session/index.d.ts +15 -0
- package/dist/cjs/auth-session/index.d.ts.map +1 -0
- package/dist/cjs/auth-session/index.js +45 -0
- package/dist/cjs/auth-session/index.js.map +1 -0
- package/dist/cjs/auth-session/internal/auth-configure.d.ts +19 -0
- package/dist/cjs/auth-session/internal/auth-configure.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/auth-configure.js +117 -0
- package/dist/cjs/auth-session/internal/auth-configure.js.map +1 -0
- package/dist/cjs/auth-session/internal/auth-global-setup.d.ts +33 -0
- package/dist/cjs/auth-session/internal/auth-global-setup.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/auth-global-setup.js +152 -0
- package/dist/cjs/auth-session/internal/auth-global-setup.js.map +1 -0
- package/dist/cjs/auth-session/internal/auth-provider-validator.d.ts +36 -0
- package/dist/cjs/auth-session/internal/auth-provider-validator.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/auth-provider-validator.js +273 -0
- package/dist/cjs/auth-session/internal/auth-provider-validator.js.map +1 -0
- package/dist/cjs/auth-session/internal/auth-provider.d.ts +92 -0
- package/dist/cjs/auth-session/internal/auth-provider.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/auth-provider.js +40 -0
- package/dist/cjs/auth-session/internal/auth-provider.js.map +1 -0
- package/dist/cjs/auth-session/internal/auth-session.d.ts +76 -0
- package/dist/cjs/auth-session/internal/auth-session.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/auth-session.js +651 -0
- package/dist/cjs/auth-session/internal/auth-session.js.map +1 -0
- package/dist/cjs/auth-session/internal/auth-storage-utils.d.ts +62 -0
- package/dist/cjs/auth-session/internal/auth-storage-utils.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/auth-storage-utils.js +314 -0
- package/dist/cjs/auth-session/internal/auth-storage-utils.js.map +1 -0
- package/dist/cjs/auth-session/internal/cache-manager.d.ts +116 -0
- package/dist/cjs/auth-session/internal/cache-manager.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/cache-manager.js +267 -0
- package/dist/cjs/auth-session/internal/cache-manager.js.map +1 -0
- package/dist/cjs/auth-session/internal/types.d.ts +132 -0
- package/dist/cjs/auth-session/internal/types.d.ts.map +1 -0
- package/dist/cjs/auth-session/internal/types.js +4 -0
- package/dist/cjs/auth-session/internal/types.js.map +1 -0
- package/dist/cjs/burn-in/core/analyzer.d.ts +36 -0
- package/dist/cjs/burn-in/core/analyzer.d.ts.map +1 -0
- package/dist/cjs/burn-in/core/analyzer.js +329 -0
- package/dist/cjs/burn-in/core/analyzer.js.map +1 -0
- package/dist/cjs/burn-in/core/config.d.ts +4 -0
- package/dist/cjs/burn-in/core/config.d.ts.map +1 -0
- package/dist/cjs/burn-in/core/config.js +107 -0
- package/dist/cjs/burn-in/core/config.js.map +1 -0
- package/dist/cjs/burn-in/core/types.d.ts +24 -0
- package/dist/cjs/burn-in/core/types.d.ts.map +1 -0
- package/dist/cjs/burn-in/core/types.js +3 -0
- package/dist/cjs/burn-in/core/types.js.map +1 -0
- package/dist/cjs/burn-in/index.d.ts +3 -0
- package/dist/cjs/burn-in/index.d.ts.map +1 -0
- package/dist/cjs/burn-in/index.js +7 -0
- package/dist/cjs/burn-in/index.js.map +1 -0
- package/dist/cjs/burn-in/runner.d.ts +13 -0
- package/dist/cjs/burn-in/runner.d.ts.map +1 -0
- package/dist/cjs/burn-in/runner.js +61 -0
- package/dist/cjs/burn-in/runner.js.map +1 -0
- package/dist/cjs/file-utils/core/csv-reader.d.ts +35 -0
- package/dist/cjs/file-utils/core/csv-reader.d.ts.map +1 -0
- package/dist/cjs/file-utils/core/csv-reader.js +206 -0
- package/dist/cjs/file-utils/core/csv-reader.js.map +1 -0
- package/dist/cjs/file-utils/core/file-downloader.d.ts +19 -0
- package/dist/cjs/file-utils/core/file-downloader.d.ts.map +1 -0
- package/dist/cjs/file-utils/core/file-downloader.js +49 -0
- package/dist/cjs/file-utils/core/file-downloader.js.map +1 -0
- package/dist/cjs/file-utils/core/pdf-reader.d.ts +42 -0
- package/dist/cjs/file-utils/core/pdf-reader.d.ts.map +1 -0
- package/dist/cjs/file-utils/core/pdf-reader.js +135 -0
- package/dist/cjs/file-utils/core/pdf-reader.js.map +1 -0
- package/dist/cjs/file-utils/core/types.d.ts +138 -0
- package/dist/cjs/file-utils/core/types.d.ts.map +1 -0
- package/dist/cjs/file-utils/core/types.js +72 -0
- package/dist/cjs/file-utils/core/types.js.map +1 -0
- package/dist/cjs/file-utils/core/xlsx-reader.d.ts +31 -0
- package/dist/cjs/file-utils/core/xlsx-reader.d.ts.map +1 -0
- package/dist/cjs/file-utils/core/xlsx-reader.js +216 -0
- package/dist/cjs/file-utils/core/xlsx-reader.js.map +1 -0
- package/dist/cjs/file-utils/core/zip-reader.d.ts +26 -0
- package/dist/cjs/file-utils/core/zip-reader.d.ts.map +1 -0
- package/dist/cjs/file-utils/core/zip-reader.js +95 -0
- package/dist/cjs/file-utils/core/zip-reader.js.map +1 -0
- package/dist/cjs/file-utils/file-utils-fixture.d.ts +16 -0
- package/dist/cjs/file-utils/file-utils-fixture.d.ts.map +1 -0
- package/dist/cjs/file-utils/file-utils-fixture.js +65 -0
- package/dist/cjs/file-utils/file-utils-fixture.js.map +1 -0
- package/dist/cjs/file-utils/fixtures.d.ts +2 -0
- package/dist/cjs/file-utils/fixtures.d.ts.map +1 -0
- package/dist/cjs/file-utils/fixtures.js +6 -0
- package/dist/cjs/file-utils/fixtures.js.map +1 -0
- package/dist/cjs/file-utils/index.d.ts +9 -0
- package/dist/cjs/file-utils/index.d.ts.map +1 -0
- package/dist/cjs/file-utils/index.js +25 -0
- package/dist/cjs/file-utils/index.js.map +1 -0
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +45 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/intercept-network-call/core/fulfill-network-call.d.ts +10 -0
- package/dist/cjs/intercept-network-call/core/fulfill-network-call.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/core/fulfill-network-call.js +88 -0
- package/dist/cjs/intercept-network-call/core/fulfill-network-call.js.map +1 -0
- package/dist/cjs/intercept-network-call/core/observe-network-call.d.ts +4 -0
- package/dist/cjs/intercept-network-call/core/observe-network-call.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/core/observe-network-call.js +56 -0
- package/dist/cjs/intercept-network-call/core/observe-network-call.js.map +1 -0
- package/dist/cjs/intercept-network-call/core/types.d.ts +28 -0
- package/dist/cjs/intercept-network-call/core/types.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/core/types.js +28 -0
- package/dist/cjs/intercept-network-call/core/types.js.map +1 -0
- package/dist/cjs/intercept-network-call/core/utils/matches-request.d.ts +9 -0
- package/dist/cjs/intercept-network-call/core/utils/matches-request.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/core/utils/matches-request.js +32 -0
- package/dist/cjs/intercept-network-call/core/utils/matches-request.js.map +1 -0
- package/dist/cjs/intercept-network-call/fixtures.d.ts +2 -0
- package/dist/cjs/intercept-network-call/fixtures.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/fixtures.js +6 -0
- package/dist/cjs/intercept-network-call/fixtures.js.map +1 -0
- package/dist/cjs/intercept-network-call/index.d.ts +5 -0
- package/dist/cjs/intercept-network-call/index.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/index.js +11 -0
- package/dist/cjs/intercept-network-call/index.js.map +1 -0
- package/dist/cjs/intercept-network-call/intercept-network-call-fixture.d.ts +7 -0
- package/dist/cjs/intercept-network-call/intercept-network-call-fixture.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/intercept-network-call-fixture.js +18 -0
- package/dist/cjs/intercept-network-call/intercept-network-call-fixture.js.map +1 -0
- package/dist/cjs/intercept-network-call/intercept-network-call.d.ts +21 -0
- package/dist/cjs/intercept-network-call/intercept-network-call.d.ts.map +1 -0
- package/dist/cjs/intercept-network-call/intercept-network-call.js +59 -0
- package/dist/cjs/intercept-network-call/intercept-network-call.js.map +1 -0
- package/dist/cjs/internal/index.d.ts +2 -0
- package/dist/cjs/internal/index.d.ts.map +1 -0
- package/dist/cjs/internal/index.js +18 -0
- package/dist/cjs/internal/index.js.map +1 -0
- package/dist/cjs/internal/logger.d.ts +25 -0
- package/dist/cjs/internal/logger.d.ts.map +1 -0
- package/dist/cjs/internal/logger.js +33 -0
- package/dist/cjs/internal/logger.js.map +1 -0
- package/dist/cjs/log/config.d.ts +28 -0
- package/dist/cjs/log/config.d.ts.map +1 -0
- package/dist/cjs/log/config.js +165 -0
- package/dist/cjs/log/config.js.map +1 -0
- package/dist/cjs/log/fixtures.d.ts +2 -0
- package/dist/cjs/log/fixtures.d.ts.map +1 -0
- package/dist/cjs/log/fixtures.js +6 -0
- package/dist/cjs/log/fixtures.js.map +1 -0
- package/dist/cjs/log/formatters/colors.d.ts +13 -0
- package/dist/cjs/log/formatters/colors.d.ts.map +1 -0
- package/dist/cjs/log/formatters/colors.js +16 -0
- package/dist/cjs/log/formatters/colors.js.map +1 -0
- package/dist/cjs/log/formatters/format-message-base.d.ts +57 -0
- package/dist/cjs/log/formatters/format-message-base.d.ts.map +1 -0
- package/dist/cjs/log/formatters/format-message-base.js +198 -0
- package/dist/cjs/log/formatters/format-message-base.js.map +1 -0
- package/dist/cjs/log/formatters/format-message.d.ts +13 -0
- package/dist/cjs/log/formatters/format-message.d.ts.map +1 -0
- package/dist/cjs/log/formatters/format-message.js +127 -0
- package/dist/cjs/log/formatters/format-message.js.map +1 -0
- package/dist/cjs/log/index.d.ts +4 -0
- package/dist/cjs/log/index.d.ts.map +1 -0
- package/dist/cjs/log/index.js +14 -0
- package/dist/cjs/log/index.js.map +1 -0
- package/dist/cjs/log/log-fixture.d.ts +5 -0
- package/dist/cjs/log/log-fixture.d.ts.map +1 -0
- package/dist/cjs/log/log-fixture.js +23 -0
- package/dist/cjs/log/log-fixture.js.map +1 -0
- package/dist/cjs/log/log-organizer.d.ts +17 -0
- package/dist/cjs/log/log-organizer.d.ts.map +1 -0
- package/dist/cjs/log/log-organizer.js +81 -0
- package/dist/cjs/log/log-organizer.js.map +1 -0
- package/dist/cjs/log/log.d.ts +20 -0
- package/dist/cjs/log/log.d.ts.map +1 -0
- package/dist/cjs/log/log.js +268 -0
- package/dist/cjs/log/log.js.map +1 -0
- package/dist/cjs/log/outputs/add-test-header.d.ts +14 -0
- package/dist/cjs/log/outputs/add-test-header.d.ts.map +1 -0
- package/dist/cjs/log/outputs/add-test-header.js +92 -0
- package/dist/cjs/log/outputs/add-test-header.js.map +1 -0
- package/dist/cjs/log/outputs/context.d.ts +73 -0
- package/dist/cjs/log/outputs/context.d.ts.map +1 -0
- package/dist/cjs/log/outputs/context.js +156 -0
- package/dist/cjs/log/outputs/context.js.map +1 -0
- package/dist/cjs/log/outputs/create-log-file-path.d.ts +6 -0
- package/dist/cjs/log/outputs/create-log-file-path.d.ts.map +1 -0
- package/dist/cjs/log/outputs/create-log-file-path.js +118 -0
- package/dist/cjs/log/outputs/create-log-file-path.js.map +1 -0
- package/dist/cjs/log/outputs/log-to-console.d.ts +4 -0
- package/dist/cjs/log/outputs/log-to-console.d.ts.map +1 -0
- package/dist/cjs/log/outputs/log-to-console.js +26 -0
- package/dist/cjs/log/outputs/log-to-console.js.map +1 -0
- package/dist/cjs/log/outputs/log-to-file.d.ts +23 -0
- package/dist/cjs/log/outputs/log-to-file.d.ts.map +1 -0
- package/dist/cjs/log/outputs/log-to-file.js +198 -0
- package/dist/cjs/log/outputs/log-to-file.js.map +1 -0
- package/dist/cjs/log/test-step.d.ts +42 -0
- package/dist/cjs/log/test-step.d.ts.map +1 -0
- package/dist/cjs/log/test-step.js +110 -0
- package/dist/cjs/log/test-step.js.map +1 -0
- package/dist/cjs/log/types.d.ts +81 -0
- package/dist/cjs/log/types.d.ts.map +1 -0
- package/dist/cjs/log/types.js +13 -0
- package/dist/cjs/log/types.js.map +1 -0
- package/dist/cjs/log/utils/async.d.ts +6 -0
- package/dist/cjs/log/utils/async.d.ts.map +1 -0
- package/dist/cjs/log/utils/async.js +15 -0
- package/dist/cjs/log/utils/async.js.map +1 -0
- package/dist/cjs/log/utils/flag.d.ts +12 -0
- package/dist/cjs/log/utils/flag.d.ts.map +1 -0
- package/dist/cjs/log/utils/flag.js +19 -0
- package/dist/cjs/log/utils/flag.js.map +1 -0
- package/dist/cjs/log/utils/options.d.ts +14 -0
- package/dist/cjs/log/utils/options.d.ts.map +1 -0
- package/dist/cjs/log/utils/options.js +86 -0
- package/dist/cjs/log/utils/options.js.map +1 -0
- package/dist/cjs/log/utils/playwright-step-utils.d.ts +5 -0
- package/dist/cjs/log/utils/playwright-step-utils.d.ts.map +1 -0
- package/dist/cjs/log/utils/playwright-step-utils.js +48 -0
- package/dist/cjs/log/utils/playwright-step-utils.js.map +1 -0
- package/dist/cjs/network-error-monitor/fixtures.d.ts +91 -0
- package/dist/cjs/network-error-monitor/fixtures.d.ts.map +1 -0
- package/dist/cjs/network-error-monitor/fixtures.js +299 -0
- package/dist/cjs/network-error-monitor/fixtures.js.map +1 -0
- package/dist/cjs/network-recorder/core/har-builder.d.ts +122 -0
- package/dist/cjs/network-recorder/core/har-builder.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/har-builder.js +159 -0
- package/dist/cjs/network-recorder/core/har-builder.js.map +1 -0
- package/dist/cjs/network-recorder/core/har-manager.d.ts +74 -0
- package/dist/cjs/network-recorder/core/har-manager.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/har-manager.js +243 -0
- package/dist/cjs/network-recorder/core/har-manager.js.map +1 -0
- package/dist/cjs/network-recorder/core/har-playback-handler.d.ts +10 -0
- package/dist/cjs/network-recorder/core/har-playback-handler.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/har-playback-handler.js +291 -0
- package/dist/cjs/network-recorder/core/har-playback-handler.js.map +1 -0
- package/dist/cjs/network-recorder/core/index.d.ts +9 -0
- package/dist/cjs/network-recorder/core/index.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/index.js +35 -0
- package/dist/cjs/network-recorder/core/index.js.map +1 -0
- package/dist/cjs/network-recorder/core/mode-detector.d.ts +64 -0
- package/dist/cjs/network-recorder/core/mode-detector.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/mode-detector.js +191 -0
- package/dist/cjs/network-recorder/core/mode-detector.js.map +1 -0
- package/dist/cjs/network-recorder/core/network-recorder.d.ts +90 -0
- package/dist/cjs/network-recorder/core/network-recorder.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/network-recorder.js +260 -0
- package/dist/cjs/network-recorder/core/network-recorder.js.map +1 -0
- package/dist/cjs/network-recorder/core/stateful-api-mock.d.ts +31 -0
- package/dist/cjs/network-recorder/core/stateful-api-mock.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/stateful-api-mock.js +160 -0
- package/dist/cjs/network-recorder/core/stateful-api-mock.js.map +1 -0
- package/dist/cjs/network-recorder/core/types.d.ts +192 -0
- package/dist/cjs/network-recorder/core/types.d.ts.map +1 -0
- package/dist/cjs/network-recorder/core/types.js +54 -0
- package/dist/cjs/network-recorder/core/types.js.map +1 -0
- package/dist/cjs/network-recorder/fixtures.d.ts +2 -0
- package/dist/cjs/network-recorder/fixtures.d.ts.map +1 -0
- package/dist/cjs/network-recorder/fixtures.js +6 -0
- package/dist/cjs/network-recorder/fixtures.js.map +1 -0
- package/dist/cjs/network-recorder/index.d.ts +6 -0
- package/dist/cjs/network-recorder/index.d.ts.map +1 -0
- package/dist/cjs/network-recorder/index.js +22 -0
- package/dist/cjs/network-recorder/index.js.map +1 -0
- package/dist/cjs/network-recorder/network-recorder-fixture.d.ts +78 -0
- package/dist/cjs/network-recorder/network-recorder-fixture.d.ts.map +1 -0
- package/dist/cjs/network-recorder/network-recorder-fixture.js +79 -0
- package/dist/cjs/network-recorder/network-recorder-fixture.js.map +1 -0
- package/dist/cjs/network-recorder/network-recorder.d.ts +11 -0
- package/dist/cjs/network-recorder/network-recorder.d.ts.map +1 -0
- package/dist/cjs/network-recorder/network-recorder.js +32 -0
- package/dist/cjs/network-recorder/network-recorder.js.map +1 -0
- package/dist/cjs/recurse/fixtures.d.ts +2 -0
- package/dist/cjs/recurse/fixtures.d.ts.map +1 -0
- package/dist/cjs/recurse/fixtures.js +6 -0
- package/dist/cjs/recurse/fixtures.js.map +1 -0
- package/dist/cjs/recurse/index.d.ts +2 -0
- package/dist/cjs/recurse/index.d.ts.map +1 -0
- package/dist/cjs/recurse/index.js +18 -0
- package/dist/cjs/recurse/index.js.map +1 -0
- package/dist/cjs/recurse/recurse-fixture.d.ts +35 -0
- package/dist/cjs/recurse/recurse-fixture.d.ts.map +1 -0
- package/dist/cjs/recurse/recurse-fixture.js +14 -0
- package/dist/cjs/recurse/recurse-fixture.js.map +1 -0
- package/dist/cjs/recurse/recurse.d.ts +108 -0
- package/dist/cjs/recurse/recurse.d.ts.map +1 -0
- package/dist/cjs/recurse/recurse.js +298 -0
- package/dist/cjs/recurse/recurse.js.map +1 -0
- package/dist/esm/api-request/api-request-fixture.d.ts +47 -0
- package/dist/esm/api-request/api-request-fixture.d.ts.map +1 -0
- package/dist/esm/api-request/api-request-fixture.js +26 -0
- package/dist/esm/api-request/api-request-fixture.js.map +1 -0
- package/dist/esm/api-request/api-request.d.ts +108 -0
- package/dist/esm/api-request/api-request.d.ts.map +1 -0
- package/dist/esm/api-request/api-request.js +326 -0
- package/dist/esm/api-request/api-request.js.map +1 -0
- package/dist/esm/api-request/fixtures.d.ts +3 -0
- package/dist/esm/api-request/fixtures.d.ts.map +1 -0
- package/dist/esm/api-request/fixtures.js +13 -0
- package/dist/esm/api-request/fixtures.js.map +1 -0
- package/dist/esm/api-request/index.d.ts +7 -0
- package/dist/esm/api-request/index.d.ts.map +1 -0
- package/dist/esm/api-request/index.js +11 -0
- package/dist/esm/api-request/index.js.map +1 -0
- package/dist/esm/api-request/schema-validation/core.d.ts +13 -0
- package/dist/esm/api-request/schema-validation/core.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/core.js +55 -0
- package/dist/esm/api-request/schema-validation/core.js.map +1 -0
- package/dist/esm/api-request/schema-validation/fixture.d.ts +20 -0
- package/dist/esm/api-request/schema-validation/fixture.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/fixture.js +17 -0
- package/dist/esm/api-request/schema-validation/fixture.js.map +1 -0
- package/dist/esm/api-request/schema-validation/index.d.ts +6 -0
- package/dist/esm/api-request/schema-validation/index.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/index.js +13 -0
- package/dist/esm/api-request/schema-validation/index.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/file-loader.d.ts +50 -0
- package/dist/esm/api-request/schema-validation/internal/file-loader.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/file-loader.js +126 -0
- package/dist/esm/api-request/schema-validation/internal/file-loader.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/openapi-handler.d.ts +43 -0
- package/dist/esm/api-request/schema-validation/internal/openapi-handler.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/openapi-handler.js +147 -0
- package/dist/esm/api-request/schema-validation/internal/openapi-handler.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/promise-extension.d.ts +10 -0
- package/dist/esm/api-request/schema-validation/internal/promise-extension.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/promise-extension.js +14 -0
- package/dist/esm/api-request/schema-validation/internal/promise-extension.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/response-extension.d.ts +18 -0
- package/dist/esm/api-request/schema-validation/internal/response-extension.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/response-extension.js +212 -0
- package/dist/esm/api-request/schema-validation/internal/response-extension.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/result-builder.d.ts +62 -0
- package/dist/esm/api-request/schema-validation/internal/result-builder.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/result-builder.js +140 -0
- package/dist/esm/api-request/schema-validation/internal/result-builder.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/safe-error-serializer.d.ts +58 -0
- package/dist/esm/api-request/schema-validation/internal/safe-error-serializer.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/safe-error-serializer.js +221 -0
- package/dist/esm/api-request/schema-validation/internal/safe-error-serializer.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/schema-processors.d.ts +38 -0
- package/dist/esm/api-request/schema-validation/internal/schema-processors.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/schema-processors.js +341 -0
- package/dist/esm/api-request/schema-validation/internal/schema-processors.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/shape-validator.d.ts +96 -0
- package/dist/esm/api-request/schema-validation/internal/shape-validator.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/shape-validator.js +180 -0
- package/dist/esm/api-request/schema-validation/internal/shape-validator.js.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/validation-engine.d.ts +63 -0
- package/dist/esm/api-request/schema-validation/internal/validation-engine.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/internal/validation-engine.js +395 -0
- package/dist/esm/api-request/schema-validation/internal/validation-engine.js.map +1 -0
- package/dist/esm/api-request/schema-validation/types.d.ts +92 -0
- package/dist/esm/api-request/schema-validation/types.d.ts.map +1 -0
- package/dist/esm/api-request/schema-validation/types.js +16 -0
- package/dist/esm/api-request/schema-validation/types.js.map +1 -0
- package/dist/esm/api-request/ui-display.d.ts +42 -0
- package/dist/esm/api-request/ui-display.d.ts.map +1 -0
- package/dist/esm/api-request/ui-display.js +370 -0
- package/dist/esm/api-request/ui-display.js.map +1 -0
- package/dist/esm/auth-session/apply-user-cookies-to-browser-context.d.ts +17 -0
- package/dist/esm/auth-session/apply-user-cookies-to-browser-context.d.ts.map +1 -0
- package/dist/esm/auth-session/apply-user-cookies-to-browser-context.js +49 -0
- package/dist/esm/auth-session/apply-user-cookies-to-browser-context.js.map +1 -0
- package/dist/esm/auth-session/core.d.ts +56 -0
- package/dist/esm/auth-session/core.d.ts.map +1 -0
- package/dist/esm/auth-session/core.js +271 -0
- package/dist/esm/auth-session/core.js.map +1 -0
- package/dist/esm/auth-session/fixtures.d.ts +83 -0
- package/dist/esm/auth-session/fixtures.d.ts.map +1 -0
- package/dist/esm/auth-session/fixtures.js +147 -0
- package/dist/esm/auth-session/fixtures.js.map +1 -0
- package/dist/esm/auth-session/global-setup-helper.d.ts +18 -0
- package/dist/esm/auth-session/global-setup-helper.d.ts.map +1 -0
- package/dist/esm/auth-session/global-setup-helper.js +26 -0
- package/dist/esm/auth-session/global-setup-helper.js.map +1 -0
- package/dist/esm/auth-session/index.d.ts +15 -0
- package/dist/esm/auth-session/index.d.ts.map +1 -0
- package/dist/esm/auth-session/index.js +45 -0
- package/dist/esm/auth-session/index.js.map +1 -0
- package/dist/esm/auth-session/internal/auth-configure.d.ts +19 -0
- package/dist/esm/auth-session/internal/auth-configure.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/auth-configure.js +117 -0
- package/dist/esm/auth-session/internal/auth-configure.js.map +1 -0
- package/dist/esm/auth-session/internal/auth-global-setup.d.ts +33 -0
- package/dist/esm/auth-session/internal/auth-global-setup.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/auth-global-setup.js +152 -0
- package/dist/esm/auth-session/internal/auth-global-setup.js.map +1 -0
- package/dist/esm/auth-session/internal/auth-provider-validator.d.ts +36 -0
- package/dist/esm/auth-session/internal/auth-provider-validator.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/auth-provider-validator.js +240 -0
- package/dist/esm/auth-session/internal/auth-provider-validator.js.map +1 -0
- package/dist/esm/auth-session/internal/auth-provider.d.ts +92 -0
- package/dist/esm/auth-session/internal/auth-provider.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/auth-provider.js +40 -0
- package/dist/esm/auth-session/internal/auth-provider.js.map +1 -0
- package/dist/esm/auth-session/internal/auth-session.d.ts +76 -0
- package/dist/esm/auth-session/internal/auth-session.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/auth-session.js +651 -0
- package/dist/esm/auth-session/internal/auth-session.js.map +1 -0
- package/dist/esm/auth-session/internal/auth-storage-utils.d.ts +62 -0
- package/dist/esm/auth-session/internal/auth-storage-utils.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/auth-storage-utils.js +314 -0
- package/dist/esm/auth-session/internal/auth-storage-utils.js.map +1 -0
- package/dist/esm/auth-session/internal/cache-manager.d.ts +116 -0
- package/dist/esm/auth-session/internal/cache-manager.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/cache-manager.js +267 -0
- package/dist/esm/auth-session/internal/cache-manager.js.map +1 -0
- package/dist/esm/auth-session/internal/types.d.ts +132 -0
- package/dist/esm/auth-session/internal/types.d.ts.map +1 -0
- package/dist/esm/auth-session/internal/types.js +4 -0
- package/dist/esm/auth-session/internal/types.js.map +1 -0
- package/dist/esm/burn-in/core/analyzer.d.ts +36 -0
- package/dist/esm/burn-in/core/analyzer.d.ts.map +1 -0
- package/dist/esm/burn-in/core/analyzer.js +329 -0
- package/dist/esm/burn-in/core/analyzer.js.map +1 -0
- package/dist/esm/burn-in/core/config.d.ts +4 -0
- package/dist/esm/burn-in/core/config.d.ts.map +1 -0
- package/dist/esm/burn-in/core/config.js +107 -0
- package/dist/esm/burn-in/core/config.js.map +1 -0
- package/dist/esm/burn-in/core/types.d.ts +24 -0
- package/dist/esm/burn-in/core/types.d.ts.map +1 -0
- package/dist/esm/burn-in/core/types.js +3 -0
- package/dist/esm/burn-in/core/types.js.map +1 -0
- package/dist/esm/burn-in/index.d.ts +3 -0
- package/dist/esm/burn-in/index.d.ts.map +1 -0
- package/dist/esm/burn-in/index.js +7 -0
- package/dist/esm/burn-in/index.js.map +1 -0
- package/dist/esm/burn-in/runner.d.ts +13 -0
- package/dist/esm/burn-in/runner.d.ts.map +1 -0
- package/dist/esm/burn-in/runner.js +61 -0
- package/dist/esm/burn-in/runner.js.map +1 -0
- package/dist/esm/file-utils/core/csv-reader.d.ts +35 -0
- package/dist/esm/file-utils/core/csv-reader.d.ts.map +1 -0
- package/dist/esm/file-utils/core/csv-reader.js +206 -0
- package/dist/esm/file-utils/core/csv-reader.js.map +1 -0
- package/dist/esm/file-utils/core/file-downloader.d.ts +19 -0
- package/dist/esm/file-utils/core/file-downloader.d.ts.map +1 -0
- package/dist/esm/file-utils/core/file-downloader.js +49 -0
- package/dist/esm/file-utils/core/file-downloader.js.map +1 -0
- package/dist/esm/file-utils/core/pdf-reader.d.ts +42 -0
- package/dist/esm/file-utils/core/pdf-reader.d.ts.map +1 -0
- package/dist/esm/file-utils/core/pdf-reader.js +135 -0
- package/dist/esm/file-utils/core/pdf-reader.js.map +1 -0
- package/dist/esm/file-utils/core/types.d.ts +138 -0
- package/dist/esm/file-utils/core/types.d.ts.map +1 -0
- package/dist/esm/file-utils/core/types.js +72 -0
- package/dist/esm/file-utils/core/types.js.map +1 -0
- package/dist/esm/file-utils/core/xlsx-reader.d.ts +31 -0
- package/dist/esm/file-utils/core/xlsx-reader.d.ts.map +1 -0
- package/dist/esm/file-utils/core/xlsx-reader.js +216 -0
- package/dist/esm/file-utils/core/xlsx-reader.js.map +1 -0
- package/dist/esm/file-utils/core/zip-reader.d.ts +26 -0
- package/dist/esm/file-utils/core/zip-reader.d.ts.map +1 -0
- package/dist/esm/file-utils/core/zip-reader.js +95 -0
- package/dist/esm/file-utils/core/zip-reader.js.map +1 -0
- package/dist/esm/file-utils/file-utils-fixture.d.ts +16 -0
- package/dist/esm/file-utils/file-utils-fixture.d.ts.map +1 -0
- package/dist/esm/file-utils/file-utils-fixture.js +65 -0
- package/dist/esm/file-utils/file-utils-fixture.js.map +1 -0
- package/dist/esm/file-utils/fixtures.d.ts +2 -0
- package/dist/esm/file-utils/fixtures.d.ts.map +1 -0
- package/dist/esm/file-utils/fixtures.js +6 -0
- package/dist/esm/file-utils/fixtures.js.map +1 -0
- package/dist/esm/file-utils/index.d.ts +9 -0
- package/dist/esm/file-utils/index.d.ts.map +1 -0
- package/dist/esm/file-utils/index.js +25 -0
- package/dist/esm/file-utils/index.js.map +1 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +45 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/intercept-network-call/core/fulfill-network-call.d.ts +10 -0
- package/dist/esm/intercept-network-call/core/fulfill-network-call.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/core/fulfill-network-call.js +88 -0
- package/dist/esm/intercept-network-call/core/fulfill-network-call.js.map +1 -0
- package/dist/esm/intercept-network-call/core/observe-network-call.d.ts +4 -0
- package/dist/esm/intercept-network-call/core/observe-network-call.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/core/observe-network-call.js +56 -0
- package/dist/esm/intercept-network-call/core/observe-network-call.js.map +1 -0
- package/dist/esm/intercept-network-call/core/types.d.ts +28 -0
- package/dist/esm/intercept-network-call/core/types.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/core/types.js +28 -0
- package/dist/esm/intercept-network-call/core/types.js.map +1 -0
- package/dist/esm/intercept-network-call/core/utils/matches-request.d.ts +9 -0
- package/dist/esm/intercept-network-call/core/utils/matches-request.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/core/utils/matches-request.js +32 -0
- package/dist/esm/intercept-network-call/core/utils/matches-request.js.map +1 -0
- package/dist/esm/intercept-network-call/fixtures.d.ts +2 -0
- package/dist/esm/intercept-network-call/fixtures.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/fixtures.js +6 -0
- package/dist/esm/intercept-network-call/fixtures.js.map +1 -0
- package/dist/esm/intercept-network-call/index.d.ts +5 -0
- package/dist/esm/intercept-network-call/index.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/index.js +11 -0
- package/dist/esm/intercept-network-call/index.js.map +1 -0
- package/dist/esm/intercept-network-call/intercept-network-call-fixture.d.ts +7 -0
- package/dist/esm/intercept-network-call/intercept-network-call-fixture.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/intercept-network-call-fixture.js +18 -0
- package/dist/esm/intercept-network-call/intercept-network-call-fixture.js.map +1 -0
- package/dist/esm/intercept-network-call/intercept-network-call.d.ts +21 -0
- package/dist/esm/intercept-network-call/intercept-network-call.d.ts.map +1 -0
- package/dist/esm/intercept-network-call/intercept-network-call.js +59 -0
- package/dist/esm/intercept-network-call/intercept-network-call.js.map +1 -0
- package/dist/esm/internal/index.d.ts +2 -0
- package/dist/esm/internal/index.d.ts.map +1 -0
- package/dist/esm/internal/index.js +18 -0
- package/dist/esm/internal/index.js.map +1 -0
- package/dist/esm/internal/logger.d.ts +25 -0
- package/dist/esm/internal/logger.d.ts.map +1 -0
- package/dist/esm/internal/logger.js +33 -0
- package/dist/esm/internal/logger.js.map +1 -0
- package/dist/esm/log/config.d.ts +28 -0
- package/dist/esm/log/config.d.ts.map +1 -0
- package/dist/esm/log/config.js +165 -0
- package/dist/esm/log/config.js.map +1 -0
- package/dist/esm/log/fixtures.d.ts +2 -0
- package/dist/esm/log/fixtures.d.ts.map +1 -0
- package/dist/esm/log/fixtures.js +6 -0
- package/dist/esm/log/fixtures.js.map +1 -0
- package/dist/esm/log/formatters/colors.d.ts +13 -0
- package/dist/esm/log/formatters/colors.d.ts.map +1 -0
- package/dist/esm/log/formatters/colors.js +16 -0
- package/dist/esm/log/formatters/colors.js.map +1 -0
- package/dist/esm/log/formatters/format-message-base.d.ts +57 -0
- package/dist/esm/log/formatters/format-message-base.d.ts.map +1 -0
- package/dist/esm/log/formatters/format-message-base.js +198 -0
- package/dist/esm/log/formatters/format-message-base.js.map +1 -0
- package/dist/esm/log/formatters/format-message.d.ts +13 -0
- package/dist/esm/log/formatters/format-message.d.ts.map +1 -0
- package/dist/esm/log/formatters/format-message.js +127 -0
- package/dist/esm/log/formatters/format-message.js.map +1 -0
- package/dist/esm/log/index.d.ts +4 -0
- package/dist/esm/log/index.d.ts.map +1 -0
- package/dist/esm/log/index.js +14 -0
- package/dist/esm/log/index.js.map +1 -0
- package/dist/esm/log/log-fixture.d.ts +5 -0
- package/dist/esm/log/log-fixture.d.ts.map +1 -0
- package/dist/esm/log/log-fixture.js +23 -0
- package/dist/esm/log/log-fixture.js.map +1 -0
- package/dist/esm/log/log-organizer.d.ts +17 -0
- package/dist/esm/log/log-organizer.d.ts.map +1 -0
- package/dist/esm/log/log-organizer.js +81 -0
- package/dist/esm/log/log-organizer.js.map +1 -0
- package/dist/esm/log/log.d.ts +20 -0
- package/dist/esm/log/log.d.ts.map +1 -0
- package/dist/esm/log/log.js +268 -0
- package/dist/esm/log/log.js.map +1 -0
- package/dist/esm/log/outputs/add-test-header.d.ts +14 -0
- package/dist/esm/log/outputs/add-test-header.d.ts.map +1 -0
- package/dist/esm/log/outputs/add-test-header.js +92 -0
- package/dist/esm/log/outputs/add-test-header.js.map +1 -0
- package/dist/esm/log/outputs/context.d.ts +73 -0
- package/dist/esm/log/outputs/context.d.ts.map +1 -0
- package/dist/esm/log/outputs/context.js +156 -0
- package/dist/esm/log/outputs/context.js.map +1 -0
- package/dist/esm/log/outputs/create-log-file-path.d.ts +6 -0
- package/dist/esm/log/outputs/create-log-file-path.d.ts.map +1 -0
- package/dist/esm/log/outputs/create-log-file-path.js +118 -0
- package/dist/esm/log/outputs/create-log-file-path.js.map +1 -0
- package/dist/esm/log/outputs/log-to-console.d.ts +4 -0
- package/dist/esm/log/outputs/log-to-console.d.ts.map +1 -0
- package/dist/esm/log/outputs/log-to-console.js +26 -0
- package/dist/esm/log/outputs/log-to-console.js.map +1 -0
- package/dist/esm/log/outputs/log-to-file.d.ts +23 -0
- package/dist/esm/log/outputs/log-to-file.d.ts.map +1 -0
- package/dist/esm/log/outputs/log-to-file.js +198 -0
- package/dist/esm/log/outputs/log-to-file.js.map +1 -0
- package/dist/esm/log/test-step.d.ts +42 -0
- package/dist/esm/log/test-step.d.ts.map +1 -0
- package/dist/esm/log/test-step.js +110 -0
- package/dist/esm/log/test-step.js.map +1 -0
- package/dist/esm/log/types.d.ts +81 -0
- package/dist/esm/log/types.d.ts.map +1 -0
- package/dist/esm/log/types.js +13 -0
- package/dist/esm/log/types.js.map +1 -0
- package/dist/esm/log/utils/async.d.ts +6 -0
- package/dist/esm/log/utils/async.d.ts.map +1 -0
- package/dist/esm/log/utils/async.js +15 -0
- package/dist/esm/log/utils/async.js.map +1 -0
- package/dist/esm/log/utils/flag.d.ts +12 -0
- package/dist/esm/log/utils/flag.d.ts.map +1 -0
- package/dist/esm/log/utils/flag.js +19 -0
- package/dist/esm/log/utils/flag.js.map +1 -0
- package/dist/esm/log/utils/options.d.ts +14 -0
- package/dist/esm/log/utils/options.d.ts.map +1 -0
- package/dist/esm/log/utils/options.js +86 -0
- package/dist/esm/log/utils/options.js.map +1 -0
- package/dist/esm/log/utils/playwright-step-utils.d.ts +5 -0
- package/dist/esm/log/utils/playwright-step-utils.d.ts.map +1 -0
- package/dist/esm/log/utils/playwright-step-utils.js +48 -0
- package/dist/esm/log/utils/playwright-step-utils.js.map +1 -0
- package/dist/esm/network-error-monitor/fixtures.d.ts +91 -0
- package/dist/esm/network-error-monitor/fixtures.d.ts.map +1 -0
- package/dist/esm/network-error-monitor/fixtures.js +299 -0
- package/dist/esm/network-error-monitor/fixtures.js.map +1 -0
- package/dist/esm/network-recorder/core/har-builder.d.ts +122 -0
- package/dist/esm/network-recorder/core/har-builder.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/har-builder.js +159 -0
- package/dist/esm/network-recorder/core/har-builder.js.map +1 -0
- package/dist/esm/network-recorder/core/har-manager.d.ts +74 -0
- package/dist/esm/network-recorder/core/har-manager.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/har-manager.js +243 -0
- package/dist/esm/network-recorder/core/har-manager.js.map +1 -0
- package/dist/esm/network-recorder/core/har-playback-handler.d.ts +10 -0
- package/dist/esm/network-recorder/core/har-playback-handler.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/har-playback-handler.js +291 -0
- package/dist/esm/network-recorder/core/har-playback-handler.js.map +1 -0
- package/dist/esm/network-recorder/core/index.d.ts +9 -0
- package/dist/esm/network-recorder/core/index.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/index.js +35 -0
- package/dist/esm/network-recorder/core/index.js.map +1 -0
- package/dist/esm/network-recorder/core/mode-detector.d.ts +64 -0
- package/dist/esm/network-recorder/core/mode-detector.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/mode-detector.js +191 -0
- package/dist/esm/network-recorder/core/mode-detector.js.map +1 -0
- package/dist/esm/network-recorder/core/network-recorder.d.ts +90 -0
- package/dist/esm/network-recorder/core/network-recorder.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/network-recorder.js +260 -0
- package/dist/esm/network-recorder/core/network-recorder.js.map +1 -0
- package/dist/esm/network-recorder/core/stateful-api-mock.d.ts +31 -0
- package/dist/esm/network-recorder/core/stateful-api-mock.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/stateful-api-mock.js +160 -0
- package/dist/esm/network-recorder/core/stateful-api-mock.js.map +1 -0
- package/dist/esm/network-recorder/core/types.d.ts +192 -0
- package/dist/esm/network-recorder/core/types.d.ts.map +1 -0
- package/dist/esm/network-recorder/core/types.js +54 -0
- package/dist/esm/network-recorder/core/types.js.map +1 -0
- package/dist/esm/network-recorder/fixtures.d.ts +2 -0
- package/dist/esm/network-recorder/fixtures.d.ts.map +1 -0
- package/dist/esm/network-recorder/fixtures.js +6 -0
- package/dist/esm/network-recorder/fixtures.js.map +1 -0
- package/dist/esm/network-recorder/index.d.ts +6 -0
- package/dist/esm/network-recorder/index.d.ts.map +1 -0
- package/dist/esm/network-recorder/index.js +22 -0
- package/dist/esm/network-recorder/index.js.map +1 -0
- package/dist/esm/network-recorder/network-recorder-fixture.d.ts +78 -0
- package/dist/esm/network-recorder/network-recorder-fixture.d.ts.map +1 -0
- package/dist/esm/network-recorder/network-recorder-fixture.js +79 -0
- package/dist/esm/network-recorder/network-recorder-fixture.js.map +1 -0
- package/dist/esm/network-recorder/network-recorder.d.ts +11 -0
- package/dist/esm/network-recorder/network-recorder.d.ts.map +1 -0
- package/dist/esm/network-recorder/network-recorder.js +32 -0
- package/dist/esm/network-recorder/network-recorder.js.map +1 -0
- package/dist/esm/recurse/fixtures.d.ts +2 -0
- package/dist/esm/recurse/fixtures.d.ts.map +1 -0
- package/dist/esm/recurse/fixtures.js +6 -0
- package/dist/esm/recurse/fixtures.js.map +1 -0
- package/dist/esm/recurse/index.d.ts +2 -0
- package/dist/esm/recurse/index.d.ts.map +1 -0
- package/dist/esm/recurse/index.js +18 -0
- package/dist/esm/recurse/index.js.map +1 -0
- package/dist/esm/recurse/recurse-fixture.d.ts +35 -0
- package/dist/esm/recurse/recurse-fixture.d.ts.map +1 -0
- package/dist/esm/recurse/recurse-fixture.js +14 -0
- package/dist/esm/recurse/recurse-fixture.js.map +1 -0
- package/dist/esm/recurse/recurse.d.ts +108 -0
- package/dist/esm/recurse/recurse.d.ts.map +1 -0
- package/dist/esm/recurse/recurse.js +298 -0
- package/dist/esm/recurse/recurse.js.map +1 -0
- package/dist/types/api-request/api-request-fixture.d.ts +47 -0
- package/dist/types/api-request/api-request-fixture.d.ts.map +1 -0
- package/dist/types/api-request/api-request.d.ts +108 -0
- package/dist/types/api-request/api-request.d.ts.map +1 -0
- package/dist/types/api-request/fixtures.d.ts +3 -0
- package/dist/types/api-request/fixtures.d.ts.map +1 -0
- package/dist/types/api-request/index.d.ts +7 -0
- package/dist/types/api-request/index.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/core.d.ts +13 -0
- package/dist/types/api-request/schema-validation/core.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/fixture.d.ts +20 -0
- package/dist/types/api-request/schema-validation/fixture.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/index.d.ts +6 -0
- package/dist/types/api-request/schema-validation/index.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/file-loader.d.ts +50 -0
- package/dist/types/api-request/schema-validation/internal/file-loader.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/openapi-handler.d.ts +43 -0
- package/dist/types/api-request/schema-validation/internal/openapi-handler.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/promise-extension.d.ts +10 -0
- package/dist/types/api-request/schema-validation/internal/promise-extension.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/response-extension.d.ts +18 -0
- package/dist/types/api-request/schema-validation/internal/response-extension.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/result-builder.d.ts +62 -0
- package/dist/types/api-request/schema-validation/internal/result-builder.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/safe-error-serializer.d.ts +58 -0
- package/dist/types/api-request/schema-validation/internal/safe-error-serializer.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/schema-processors.d.ts +38 -0
- package/dist/types/api-request/schema-validation/internal/schema-processors.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/shape-validator.d.ts +96 -0
- package/dist/types/api-request/schema-validation/internal/shape-validator.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/internal/validation-engine.d.ts +63 -0
- package/dist/types/api-request/schema-validation/internal/validation-engine.d.ts.map +1 -0
- package/dist/types/api-request/schema-validation/types.d.ts +92 -0
- package/dist/types/api-request/schema-validation/types.d.ts.map +1 -0
- package/dist/types/api-request/ui-display.d.ts +42 -0
- package/dist/types/api-request/ui-display.d.ts.map +1 -0
- package/dist/types/auth-session/apply-user-cookies-to-browser-context.d.ts +17 -0
- package/dist/types/auth-session/apply-user-cookies-to-browser-context.d.ts.map +1 -0
- package/dist/types/auth-session/core.d.ts +56 -0
- package/dist/types/auth-session/core.d.ts.map +1 -0
- package/dist/types/auth-session/fixtures.d.ts +83 -0
- package/dist/types/auth-session/fixtures.d.ts.map +1 -0
- package/dist/types/auth-session/global-setup-helper.d.ts +18 -0
- package/dist/types/auth-session/global-setup-helper.d.ts.map +1 -0
- package/dist/types/auth-session/index.d.ts +15 -0
- package/dist/types/auth-session/index.d.ts.map +1 -0
- package/dist/types/auth-session/internal/auth-configure.d.ts +19 -0
- package/dist/types/auth-session/internal/auth-configure.d.ts.map +1 -0
- package/dist/types/auth-session/internal/auth-global-setup.d.ts +33 -0
- package/dist/types/auth-session/internal/auth-global-setup.d.ts.map +1 -0
- package/dist/types/auth-session/internal/auth-provider-validator.d.ts +36 -0
- package/dist/types/auth-session/internal/auth-provider-validator.d.ts.map +1 -0
- package/dist/types/auth-session/internal/auth-provider.d.ts +92 -0
- package/dist/types/auth-session/internal/auth-provider.d.ts.map +1 -0
- package/dist/types/auth-session/internal/auth-session.d.ts +76 -0
- package/dist/types/auth-session/internal/auth-session.d.ts.map +1 -0
- package/dist/types/auth-session/internal/auth-storage-utils.d.ts +62 -0
- package/dist/types/auth-session/internal/auth-storage-utils.d.ts.map +1 -0
- package/dist/types/auth-session/internal/cache-manager.d.ts +116 -0
- package/dist/types/auth-session/internal/cache-manager.d.ts.map +1 -0
- package/dist/types/auth-session/internal/types.d.ts +132 -0
- package/dist/types/auth-session/internal/types.d.ts.map +1 -0
- package/dist/types/burn-in/core/analyzer.d.ts +36 -0
- package/dist/types/burn-in/core/analyzer.d.ts.map +1 -0
- package/dist/types/burn-in/core/config.d.ts +4 -0
- package/dist/types/burn-in/core/config.d.ts.map +1 -0
- package/dist/types/burn-in/core/types.d.ts +24 -0
- package/dist/types/burn-in/core/types.d.ts.map +1 -0
- package/dist/types/burn-in/index.d.ts +3 -0
- package/dist/types/burn-in/index.d.ts.map +1 -0
- package/dist/types/burn-in/runner.d.ts +13 -0
- package/dist/types/burn-in/runner.d.ts.map +1 -0
- package/dist/types/file-utils/core/csv-reader.d.ts +35 -0
- package/dist/types/file-utils/core/csv-reader.d.ts.map +1 -0
- package/dist/types/file-utils/core/file-downloader.d.ts +19 -0
- package/dist/types/file-utils/core/file-downloader.d.ts.map +1 -0
- package/dist/types/file-utils/core/pdf-reader.d.ts +42 -0
- package/dist/types/file-utils/core/pdf-reader.d.ts.map +1 -0
- package/dist/types/file-utils/core/types.d.ts +138 -0
- package/dist/types/file-utils/core/types.d.ts.map +1 -0
- package/dist/types/file-utils/core/xlsx-reader.d.ts +31 -0
- package/dist/types/file-utils/core/xlsx-reader.d.ts.map +1 -0
- package/dist/types/file-utils/core/zip-reader.d.ts +26 -0
- package/dist/types/file-utils/core/zip-reader.d.ts.map +1 -0
- package/dist/types/file-utils/file-utils-fixture.d.ts +16 -0
- package/dist/types/file-utils/file-utils-fixture.d.ts.map +1 -0
- package/dist/types/file-utils/fixtures.d.ts +2 -0
- package/dist/types/file-utils/fixtures.d.ts.map +1 -0
- package/dist/types/file-utils/index.d.ts +9 -0
- package/dist/types/file-utils/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/intercept-network-call/core/fulfill-network-call.d.ts +10 -0
- package/dist/types/intercept-network-call/core/fulfill-network-call.d.ts.map +1 -0
- package/dist/types/intercept-network-call/core/observe-network-call.d.ts +4 -0
- package/dist/types/intercept-network-call/core/observe-network-call.d.ts.map +1 -0
- package/dist/types/intercept-network-call/core/types.d.ts +28 -0
- package/dist/types/intercept-network-call/core/types.d.ts.map +1 -0
- package/dist/types/intercept-network-call/core/utils/matches-request.d.ts +9 -0
- package/dist/types/intercept-network-call/core/utils/matches-request.d.ts.map +1 -0
- package/dist/types/intercept-network-call/fixtures.d.ts +2 -0
- package/dist/types/intercept-network-call/fixtures.d.ts.map +1 -0
- package/dist/types/intercept-network-call/index.d.ts +5 -0
- package/dist/types/intercept-network-call/index.d.ts.map +1 -0
- package/dist/types/intercept-network-call/intercept-network-call-fixture.d.ts +7 -0
- package/dist/types/intercept-network-call/intercept-network-call-fixture.d.ts.map +1 -0
- package/dist/types/intercept-network-call/intercept-network-call.d.ts +21 -0
- package/dist/types/intercept-network-call/intercept-network-call.d.ts.map +1 -0
- package/dist/types/internal/index.d.ts +2 -0
- package/dist/types/internal/index.d.ts.map +1 -0
- package/dist/types/internal/logger.d.ts +25 -0
- package/dist/types/internal/logger.d.ts.map +1 -0
- package/dist/types/log/config.d.ts +28 -0
- package/dist/types/log/config.d.ts.map +1 -0
- package/dist/types/log/fixtures.d.ts +2 -0
- package/dist/types/log/fixtures.d.ts.map +1 -0
- package/dist/types/log/formatters/colors.d.ts +13 -0
- package/dist/types/log/formatters/colors.d.ts.map +1 -0
- package/dist/types/log/formatters/format-message-base.d.ts +57 -0
- package/dist/types/log/formatters/format-message-base.d.ts.map +1 -0
- package/dist/types/log/formatters/format-message.d.ts +13 -0
- package/dist/types/log/formatters/format-message.d.ts.map +1 -0
- package/dist/types/log/index.d.ts +4 -0
- package/dist/types/log/index.d.ts.map +1 -0
- package/dist/types/log/log-fixture.d.ts +5 -0
- package/dist/types/log/log-fixture.d.ts.map +1 -0
- package/dist/types/log/log-organizer.d.ts +17 -0
- package/dist/types/log/log-organizer.d.ts.map +1 -0
- package/dist/types/log/log.d.ts +20 -0
- package/dist/types/log/log.d.ts.map +1 -0
- package/dist/types/log/outputs/add-test-header.d.ts +14 -0
- package/dist/types/log/outputs/add-test-header.d.ts.map +1 -0
- package/dist/types/log/outputs/context.d.ts +73 -0
- package/dist/types/log/outputs/context.d.ts.map +1 -0
- package/dist/types/log/outputs/create-log-file-path.d.ts +6 -0
- package/dist/types/log/outputs/create-log-file-path.d.ts.map +1 -0
- package/dist/types/log/outputs/log-to-console.d.ts +4 -0
- package/dist/types/log/outputs/log-to-console.d.ts.map +1 -0
- package/dist/types/log/outputs/log-to-file.d.ts +23 -0
- package/dist/types/log/outputs/log-to-file.d.ts.map +1 -0
- package/dist/types/log/test-step.d.ts +42 -0
- package/dist/types/log/test-step.d.ts.map +1 -0
- package/dist/types/log/types.d.ts +81 -0
- package/dist/types/log/types.d.ts.map +1 -0
- package/dist/types/log/utils/async.d.ts +6 -0
- package/dist/types/log/utils/async.d.ts.map +1 -0
- package/dist/types/log/utils/flag.d.ts +12 -0
- package/dist/types/log/utils/flag.d.ts.map +1 -0
- package/dist/types/log/utils/options.d.ts +14 -0
- package/dist/types/log/utils/options.d.ts.map +1 -0
- package/dist/types/log/utils/playwright-step-utils.d.ts +5 -0
- package/dist/types/log/utils/playwright-step-utils.d.ts.map +1 -0
- package/dist/types/network-error-monitor/fixtures.d.ts +91 -0
- package/dist/types/network-error-monitor/fixtures.d.ts.map +1 -0
- package/dist/types/network-recorder/core/har-builder.d.ts +122 -0
- package/dist/types/network-recorder/core/har-builder.d.ts.map +1 -0
- package/dist/types/network-recorder/core/har-manager.d.ts +74 -0
- package/dist/types/network-recorder/core/har-manager.d.ts.map +1 -0
- package/dist/types/network-recorder/core/har-playback-handler.d.ts +10 -0
- package/dist/types/network-recorder/core/har-playback-handler.d.ts.map +1 -0
- package/dist/types/network-recorder/core/index.d.ts +9 -0
- package/dist/types/network-recorder/core/index.d.ts.map +1 -0
- package/dist/types/network-recorder/core/mode-detector.d.ts +64 -0
- package/dist/types/network-recorder/core/mode-detector.d.ts.map +1 -0
- package/dist/types/network-recorder/core/network-recorder.d.ts +90 -0
- package/dist/types/network-recorder/core/network-recorder.d.ts.map +1 -0
- package/dist/types/network-recorder/core/stateful-api-mock.d.ts +31 -0
- package/dist/types/network-recorder/core/stateful-api-mock.d.ts.map +1 -0
- package/dist/types/network-recorder/core/types.d.ts +192 -0
- package/dist/types/network-recorder/core/types.d.ts.map +1 -0
- package/dist/types/network-recorder/fixtures.d.ts +2 -0
- package/dist/types/network-recorder/fixtures.d.ts.map +1 -0
- package/dist/types/network-recorder/index.d.ts +6 -0
- package/dist/types/network-recorder/index.d.ts.map +1 -0
- package/dist/types/network-recorder/network-recorder-fixture.d.ts +78 -0
- package/dist/types/network-recorder/network-recorder-fixture.d.ts.map +1 -0
- package/dist/types/network-recorder/network-recorder.d.ts +11 -0
- package/dist/types/network-recorder/network-recorder.d.ts.map +1 -0
- package/dist/types/recurse/fixtures.d.ts +2 -0
- package/dist/types/recurse/fixtures.d.ts.map +1 -0
- package/dist/types/recurse/index.d.ts +2 -0
- package/dist/types/recurse/index.d.ts.map +1 -0
- package/dist/types/recurse/recurse-fixture.d.ts +35 -0
- package/dist/types/recurse/recurse-fixture.d.ts.map +1 -0
- package/dist/types/recurse/recurse.d.ts +108 -0
- package/dist/types/recurse/recurse.d.ts.map +1 -0
- package/package.json +238 -0
|
@@ -0,0 +1,651 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Authentication session manager for use with playwright
|
|
3
|
+
* @internal This file contains implementation details that should not be directly imported
|
|
4
|
+
* Use the public API exported from index.ts instead */
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.AuthSessionManager = exports.defaultTokenFormatter = void 0;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const auth_storage_utils_1 = require("./auth-storage-utils");
|
|
43
|
+
const auth_configure_1 = require("./auth-configure");
|
|
44
|
+
const auth_provider_1 = require("./auth-provider");
|
|
45
|
+
const cache_manager_1 = require("./cache-manager");
|
|
46
|
+
const log_1 = require("../../log");
|
|
47
|
+
/** Default retry configuration */
|
|
48
|
+
const DEFAULT_RETRY_CONFIG = {
|
|
49
|
+
maxRetries: 3,
|
|
50
|
+
initialDelayMs: 100,
|
|
51
|
+
backoffMultiplier: 2,
|
|
52
|
+
maxDelayMs: 5000,
|
|
53
|
+
enableJitter: true
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Sleep for a specified number of milliseconds
|
|
57
|
+
* @param ms Milliseconds to sleep
|
|
58
|
+
*/
|
|
59
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
60
|
+
/**
|
|
61
|
+
* Calculate the delay for a retry attempt with exponential backoff and optional jitter
|
|
62
|
+
* @param attempt The current attempt number (0-based)
|
|
63
|
+
* @param config Retry configuration
|
|
64
|
+
* @returns Delay in milliseconds
|
|
65
|
+
*/
|
|
66
|
+
const calculateRetryDelay = (attempt, config) => {
|
|
67
|
+
const baseDelay = config.initialDelayMs * Math.pow(config.backoffMultiplier, attempt);
|
|
68
|
+
const clampedDelay = Math.min(baseDelay, config.maxDelayMs);
|
|
69
|
+
if (config.enableJitter) {
|
|
70
|
+
// Add random jitter ±25% to prevent thundering herd
|
|
71
|
+
const jitter = clampedDelay * 0.25 * (Math.random() * 2 - 1);
|
|
72
|
+
return Math.max(0, clampedDelay + jitter);
|
|
73
|
+
}
|
|
74
|
+
return clampedDelay;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Execute a function with retry logic and exponential backoff
|
|
78
|
+
* @param fn Function to execute
|
|
79
|
+
* @param config Retry configuration
|
|
80
|
+
* @param context Context string for logging
|
|
81
|
+
* @returns Promise that resolves to the function result
|
|
82
|
+
*/
|
|
83
|
+
const executeWithRetry = async (fn, config = {}, context = 'operation') => {
|
|
84
|
+
const retryConfig = { ...DEFAULT_RETRY_CONFIG, ...config };
|
|
85
|
+
let lastError;
|
|
86
|
+
const totalAttempts = retryConfig.maxRetries + 1; // 1 initial + maxRetries retries
|
|
87
|
+
for (let attempt = 0; attempt < totalAttempts; attempt++) {
|
|
88
|
+
try {
|
|
89
|
+
return await fn();
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
lastError = error;
|
|
93
|
+
if (attempt === totalAttempts - 1) {
|
|
94
|
+
// Final attempt failed, throw the error
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
const delay = calculateRetryDelay(attempt, retryConfig);
|
|
98
|
+
log_1.log.warningSync(`${context} failed (attempt ${attempt + 1}/${totalAttempts}), retrying in ${delay.toFixed(0)}ms: ${error instanceof Error ? error.message : String(error)}`);
|
|
99
|
+
await sleep(delay);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// This should never be reached, but TypeScript requires it
|
|
103
|
+
throw lastError;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Helper to check if an object matches the Playwright storage state structure
|
|
107
|
+
*/
|
|
108
|
+
const isPlaywrightStorageState = (data) => {
|
|
109
|
+
if (!data || typeof data !== 'object')
|
|
110
|
+
return false;
|
|
111
|
+
const obj = data;
|
|
112
|
+
return 'cookies' in obj && Array.isArray(obj.cookies) && 'origins' in obj;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Helper to try parsing a JSON string
|
|
116
|
+
*/
|
|
117
|
+
const tryParseJson = (str) => {
|
|
118
|
+
try {
|
|
119
|
+
return JSON.parse(str);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Extract token from a parsed JSON object if it has a token property
|
|
127
|
+
*/
|
|
128
|
+
const extractTokenFromObject = (obj) => {
|
|
129
|
+
if (obj && typeof obj === 'object' && 'token' in obj) {
|
|
130
|
+
return String(obj.token || '');
|
|
131
|
+
}
|
|
132
|
+
return '';
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Extract token from a JSON string
|
|
136
|
+
*/
|
|
137
|
+
const extractTokenFromJsonString = (jsonString) => {
|
|
138
|
+
const parsed = tryParseJson(jsonString);
|
|
139
|
+
// If it's a storage state, return the entire object
|
|
140
|
+
if (parsed && isPlaywrightStorageState(parsed)) {
|
|
141
|
+
return parsed;
|
|
142
|
+
}
|
|
143
|
+
// Extract token from parsed object or use the input string
|
|
144
|
+
if (parsed && typeof parsed === 'object') {
|
|
145
|
+
const extractedToken = extractTokenFromObject(parsed);
|
|
146
|
+
return extractedToken || jsonString;
|
|
147
|
+
}
|
|
148
|
+
return jsonString;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Extract token from a string
|
|
152
|
+
*/
|
|
153
|
+
const extractTokenFromString = (str) => {
|
|
154
|
+
// Check if it's a JSON string
|
|
155
|
+
if (str.trim().startsWith('{') && str.trim().endsWith('}')) {
|
|
156
|
+
return extractTokenFromJsonString(str);
|
|
157
|
+
}
|
|
158
|
+
return str;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Default token formatter for the standard Playwright storage state format
|
|
162
|
+
* This creates a properly formatted storage state with the raw token value
|
|
163
|
+
*/
|
|
164
|
+
const defaultTokenFormatter = (tokenData, options) => {
|
|
165
|
+
// Check if tokenData is already a valid storage state object
|
|
166
|
+
if (isPlaywrightStorageState(tokenData)) {
|
|
167
|
+
return tokenData;
|
|
168
|
+
}
|
|
169
|
+
// Extract the token based on the input type
|
|
170
|
+
let token = '';
|
|
171
|
+
if (typeof tokenData === 'string') {
|
|
172
|
+
token = extractTokenFromString(tokenData);
|
|
173
|
+
// If a storage state was returned, just use it
|
|
174
|
+
if (token && typeof token === 'object') {
|
|
175
|
+
return token;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else if (tokenData && typeof tokenData === 'object') {
|
|
179
|
+
token = extractTokenFromObject(tokenData) || String(tokenData || '');
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
token = String(tokenData || '');
|
|
183
|
+
}
|
|
184
|
+
// Get cookie name from options or use a reasonable default
|
|
185
|
+
const globalOptions = (0, auth_configure_1.getGlobalAuthOptions)() || {};
|
|
186
|
+
const cookieName = options?.cookieName || globalOptions.cookieName || 'auth-token';
|
|
187
|
+
// Get domain from environment or default to localhost
|
|
188
|
+
const domain = extractDomain();
|
|
189
|
+
// Return a clean Playwright storage state
|
|
190
|
+
return {
|
|
191
|
+
cookies: [
|
|
192
|
+
{
|
|
193
|
+
name: cookieName,
|
|
194
|
+
value: String(token),
|
|
195
|
+
domain,
|
|
196
|
+
path: '/',
|
|
197
|
+
expires: -1,
|
|
198
|
+
httpOnly: true,
|
|
199
|
+
secure: true,
|
|
200
|
+
sameSite: 'Lax'
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
origins: []
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
exports.defaultTokenFormatter = defaultTokenFormatter;
|
|
207
|
+
// extractRawToken function has been integrated directly into defaultTokenFormatter
|
|
208
|
+
// for simplicity and to avoid unnecessary abstraction
|
|
209
|
+
/**
|
|
210
|
+
* Helper to extract domain from environment
|
|
211
|
+
*/
|
|
212
|
+
function extractDomain() {
|
|
213
|
+
const baseUrl = process.env.BASE_URL || process.env.TEST_URL;
|
|
214
|
+
if (!baseUrl)
|
|
215
|
+
return 'localhost';
|
|
216
|
+
try {
|
|
217
|
+
return new URL(baseUrl).hostname;
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return 'localhost';
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
class AuthSessionManager {
|
|
224
|
+
constructor(options) {
|
|
225
|
+
this.hasToken = false;
|
|
226
|
+
this.token = null;
|
|
227
|
+
// get global options as fallback
|
|
228
|
+
const mergedOptions = { ...(0, auth_configure_1.getGlobalAuthOptions)(), ...options };
|
|
229
|
+
// Users must implement and set a custom AuthProvider through setAuthProvider()
|
|
230
|
+
// This simplifies the design and makes responsibilities clearer
|
|
231
|
+
// Set up the options with sensible defaults
|
|
232
|
+
this.options = {
|
|
233
|
+
debug: false,
|
|
234
|
+
// Always use storage-state.json as the standard format for both API and UI testing
|
|
235
|
+
tokenFileName: 'storage-state.json',
|
|
236
|
+
...mergedOptions // Apply any user-provided options
|
|
237
|
+
};
|
|
238
|
+
// get the auth provider for environment and user identifier information
|
|
239
|
+
const provider = (0, auth_provider_1.getAuthProvider)();
|
|
240
|
+
// Extract the identifiers from options
|
|
241
|
+
const { environment, userIdentifier } = this.options;
|
|
242
|
+
// get environment and user identifier from the provider (may apply defaults)
|
|
243
|
+
const resolvedEnvironment = provider.getEnvironment({
|
|
244
|
+
environment,
|
|
245
|
+
userIdentifier
|
|
246
|
+
});
|
|
247
|
+
const resolvedUserIdentifier = provider.getUserIdentifier({
|
|
248
|
+
environment,
|
|
249
|
+
userIdentifier
|
|
250
|
+
});
|
|
251
|
+
// Simplified storage path logic for better consistency
|
|
252
|
+
this.storageDir =
|
|
253
|
+
this.options.storageDir ??
|
|
254
|
+
(0, auth_storage_utils_1.getStorageDir)({
|
|
255
|
+
environment: resolvedEnvironment,
|
|
256
|
+
userIdentifier: resolvedUserIdentifier
|
|
257
|
+
});
|
|
258
|
+
// Always construct the file path from the directory and filename
|
|
259
|
+
this.storageFile = path.join(this.storageDir, this.options.tokenFileName);
|
|
260
|
+
if (!fs.existsSync(this.storageDir)) {
|
|
261
|
+
fs.mkdirSync(this.storageDir, { recursive: true });
|
|
262
|
+
}
|
|
263
|
+
// Try to load existing token
|
|
264
|
+
this.loadTokenFromStorage();
|
|
265
|
+
if (this.options.debug) {
|
|
266
|
+
log_1.log.infoSync(`Auth session manager initialized with storage at: ${this.storageFile}`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Save token to storage and update cache
|
|
271
|
+
* @param token The token to save - can be either a string or an object
|
|
272
|
+
*/
|
|
273
|
+
async saveToken(token) {
|
|
274
|
+
if (!token) {
|
|
275
|
+
log_1.log.warningSync('Attempted to save empty token');
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
// Convert object to string if needed
|
|
279
|
+
const tokenStr = typeof token === 'string' ? token : JSON.stringify(token);
|
|
280
|
+
this.token = tokenStr;
|
|
281
|
+
this.hasToken = true;
|
|
282
|
+
await this.saveTokenToStorageWithRetry(tokenStr);
|
|
283
|
+
this.cacheToken(tokenStr);
|
|
284
|
+
}
|
|
285
|
+
/* Get instance for specific storageDir to ensure proper user isolation */
|
|
286
|
+
static getInstance(options) {
|
|
287
|
+
// Use provided options, fallback to global options, or throw if neither exists
|
|
288
|
+
const resolvedOptions = options || (0, auth_configure_1.getGlobalAuthOptions)();
|
|
289
|
+
if (!resolvedOptions) {
|
|
290
|
+
throw new Error('Auth session options must be provided either directly or via configureAuthSession');
|
|
291
|
+
}
|
|
292
|
+
// Determine the storage directory for this instance
|
|
293
|
+
const provider = (0, auth_provider_1.getAuthProvider)();
|
|
294
|
+
const environment = provider.getEnvironment(resolvedOptions);
|
|
295
|
+
const userIdentifier = provider.getUserIdentifier(resolvedOptions);
|
|
296
|
+
const storageDir = resolvedOptions.storageDir ??
|
|
297
|
+
(0, auth_storage_utils_1.getStorageDir)({
|
|
298
|
+
environment,
|
|
299
|
+
userIdentifier
|
|
300
|
+
});
|
|
301
|
+
// Use storageDir as the key for instance caching to ensure user isolation
|
|
302
|
+
const instanceKey = storageDir;
|
|
303
|
+
if (!AuthSessionManager.instances.has(instanceKey)) {
|
|
304
|
+
AuthSessionManager.instances.set(instanceKey, new AuthSessionManager(resolvedOptions));
|
|
305
|
+
}
|
|
306
|
+
return AuthSessionManager.instances.get(instanceKey);
|
|
307
|
+
}
|
|
308
|
+
/** Load token from storage if it exists */
|
|
309
|
+
loadTokenFromStorage() {
|
|
310
|
+
try {
|
|
311
|
+
// Check in-memory cache first using new cache manager
|
|
312
|
+
const cachedToken = cache_manager_1.globalTokenCache.get(this.storageFile);
|
|
313
|
+
if (cachedToken) {
|
|
314
|
+
// Use cached token if it's not expired
|
|
315
|
+
this.token = cachedToken;
|
|
316
|
+
this.hasToken = true;
|
|
317
|
+
if (this.options.debug) {
|
|
318
|
+
log_1.log.infoSync('Token loaded from advanced memory cache');
|
|
319
|
+
}
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
// If not in cache or expired, load from file system
|
|
323
|
+
if (fs.existsSync(this.storageFile)) {
|
|
324
|
+
try {
|
|
325
|
+
// Read token directly from the file
|
|
326
|
+
const data = fs.readFileSync(this.storageFile, 'utf8');
|
|
327
|
+
const tokenData = JSON.parse(data);
|
|
328
|
+
// Get provider for token validation
|
|
329
|
+
const provider = (0, auth_provider_1.getAuthProvider)();
|
|
330
|
+
// Extract raw token using the provider
|
|
331
|
+
const token = provider.extractToken(tokenData);
|
|
332
|
+
// Check if token is expired (if provider supports expiration checking)
|
|
333
|
+
if (provider.isTokenExpired &&
|
|
334
|
+
token &&
|
|
335
|
+
provider.isTokenExpired(token)) {
|
|
336
|
+
if (this.options.debug) {
|
|
337
|
+
log_1.log.infoSync('Token from storage is expired, will fetch a new one');
|
|
338
|
+
}
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
if (token) {
|
|
342
|
+
this.token = token;
|
|
343
|
+
this.hasToken = true;
|
|
344
|
+
// Cache the loaded token using new cache manager
|
|
345
|
+
cache_manager_1.globalTokenCache.set(this.storageFile, token);
|
|
346
|
+
if (this.options.debug) {
|
|
347
|
+
log_1.log.infoSync('Token loaded from storage');
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
log_1.log.errorSync(`Error parsing token data: ${error instanceof Error ? error.message : String(error)}`);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
log_1.log.errorSync(`Error loading token from storage: ${error instanceof Error ? error.message : String(error)}`);
|
|
358
|
+
// Continue with null token - will trigger fresh token acquisition
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/** Cache a token in memory using advanced cache manager */
|
|
362
|
+
cacheToken(token) {
|
|
363
|
+
try {
|
|
364
|
+
// Use the advanced cache manager with default TTL
|
|
365
|
+
cache_manager_1.globalTokenCache.set(this.storageFile, token);
|
|
366
|
+
if (this.options.debug) {
|
|
367
|
+
const status = cache_manager_1.globalTokenCache.getStatus();
|
|
368
|
+
log_1.log.infoSync(`Token cached in advanced cache (${status.size}/${status.maxSize} entries, ${status.utilizationPercent.toFixed(1)}% utilized)`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
catch (error) {
|
|
372
|
+
log_1.log.errorSync(`Error caching token: ${error instanceof Error ? error.message : String(error)}`);
|
|
373
|
+
// Continue without caching
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/** Save token to storage with retry logic and exponential backoff */
|
|
377
|
+
async saveTokenToStorageWithRetry(token) {
|
|
378
|
+
const retryConfig = this.options.retryConfig || DEFAULT_RETRY_CONFIG;
|
|
379
|
+
await executeWithRetry(() => this.saveTokenToStorage(token), retryConfig, `Token save for ${this.options.environment}/${this.options.userIdentifier}`);
|
|
380
|
+
}
|
|
381
|
+
/** Save token to storage with file locking to prevent concurrent access issues */
|
|
382
|
+
saveTokenToStorage(token) {
|
|
383
|
+
try {
|
|
384
|
+
// Create lock file path
|
|
385
|
+
const lockFile = `${this.storageFile}.lock`;
|
|
386
|
+
const tempFile = `${this.storageFile}.tmp`;
|
|
387
|
+
let lockAcquired = false;
|
|
388
|
+
try {
|
|
389
|
+
// Try to atomically create lock file
|
|
390
|
+
fs.writeFileSync(lockFile, process.pid.toString(), { flag: 'wx' });
|
|
391
|
+
lockAcquired = true;
|
|
392
|
+
// Format the token data
|
|
393
|
+
const tokenFormatter = this.options.tokenDataFormatter || exports.defaultTokenFormatter;
|
|
394
|
+
// Pass options to the formatter so custom formatters can access cookieName etc.
|
|
395
|
+
const data = tokenFormatter(token, this.options);
|
|
396
|
+
// Cache already keeps the token, no need to duplicate formatted data
|
|
397
|
+
// Store the formatted data as JSON
|
|
398
|
+
const jsonContent = JSON.stringify(data, null, 2);
|
|
399
|
+
// Write to temporary file first (atomic operation)
|
|
400
|
+
fs.writeFileSync(tempFile, jsonContent);
|
|
401
|
+
// Rename temp file to actual file (atomic operation)
|
|
402
|
+
fs.renameSync(tempFile, this.storageFile);
|
|
403
|
+
if (this.options.debug) {
|
|
404
|
+
log_1.log.infoSync('Token saved to storage with file locking');
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
finally {
|
|
408
|
+
// Always clean up - remove lock file and temp file if they exist
|
|
409
|
+
if (lockAcquired && fs.existsSync(lockFile)) {
|
|
410
|
+
fs.unlinkSync(lockFile);
|
|
411
|
+
}
|
|
412
|
+
if (fs.existsSync(tempFile)) {
|
|
413
|
+
fs.unlinkSync(tempFile);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
// If we couldn't acquire lock, another process is writing
|
|
419
|
+
// or there was some other error
|
|
420
|
+
const { environment, userIdentifier } = this.options;
|
|
421
|
+
const userInfo = `${environment}/${userIdentifier}`;
|
|
422
|
+
if (this.options.debug) {
|
|
423
|
+
log_1.log.warningSync(`Could not save token for ${userInfo} to storage at ${this.storageFile}, using in-memory version`);
|
|
424
|
+
log_1.log.errorSync(`Detailed error information: ${error instanceof Error ? error.message : String(error)}`);
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
// Limited logging in non-debug mode to avoid exposing sensitive info
|
|
428
|
+
log_1.log.errorSync(`Error saving token to storage for ${userInfo}: ${error instanceof Error ? error.message : String(error)}`);
|
|
429
|
+
}
|
|
430
|
+
// Continue with in-memory token only
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Clear the token from storage
|
|
435
|
+
* @returns Boolean indicating whether a token was successfully cleared
|
|
436
|
+
*/
|
|
437
|
+
clearToken() {
|
|
438
|
+
try {
|
|
439
|
+
// Extract user info for more detailed logging
|
|
440
|
+
const { environment, userIdentifier } = this.options;
|
|
441
|
+
const userInfo = `${environment}/${userIdentifier}`;
|
|
442
|
+
// Clear from file storage if exists
|
|
443
|
+
if (fs.existsSync(this.storageFile)) {
|
|
444
|
+
fs.unlinkSync(this.storageFile);
|
|
445
|
+
if (this.options.debug) {
|
|
446
|
+
log_1.log.infoSync(`[Auth Session] Token for user ${userInfo} deleted: ${this.storageFile}`);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
else if (this.options.debug) {
|
|
450
|
+
log_1.log.infoSync(`[Auth Session] No token for user ${userInfo} found at: ${this.storageFile}`);
|
|
451
|
+
}
|
|
452
|
+
// Clear from memory if exists
|
|
453
|
+
if (this.hasToken && this.options.debug) {
|
|
454
|
+
log_1.log.infoSync('[Auth Session] Token cleared from memory');
|
|
455
|
+
}
|
|
456
|
+
// Clear from advanced cache
|
|
457
|
+
cache_manager_1.globalTokenCache.delete(this.storageFile);
|
|
458
|
+
// Reset internal state
|
|
459
|
+
this.token = null;
|
|
460
|
+
this.hasToken = false;
|
|
461
|
+
if (this.options.debug) {
|
|
462
|
+
const cacheStatus = cache_manager_1.globalTokenCache.getStatus();
|
|
463
|
+
log_1.log.successSync(`[Auth Session] Token cleared successfully (cache: ${cacheStatus.size}/${cacheStatus.maxSize})`);
|
|
464
|
+
}
|
|
465
|
+
// Always return true for better developer experience
|
|
466
|
+
// This allows tests and scripts to proceed without having to check if a token existed
|
|
467
|
+
return true;
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
log_1.log.errorSync(`[Auth Session] Error clearing token: ${error instanceof Error ? error.message : String(error)}`);
|
|
471
|
+
// Even in case of error, we consider the operation successful from a user's perspective
|
|
472
|
+
// since the token state in memory has been reset
|
|
473
|
+
return true;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Get a new token using the AuthProvider
|
|
478
|
+
*
|
|
479
|
+
* @param request The Playwright API request context
|
|
480
|
+
* @returns A promise that resolves to the authentication token string
|
|
481
|
+
*/
|
|
482
|
+
async getTokenFromProvider(request) {
|
|
483
|
+
// Get the auth provider
|
|
484
|
+
const provider = (0, auth_provider_1.getAuthProvider)();
|
|
485
|
+
if (!provider) {
|
|
486
|
+
throw new Error('No auth provider configured. You must call setAuthProvider() with your custom provider.');
|
|
487
|
+
}
|
|
488
|
+
if (this.options.debug) {
|
|
489
|
+
log_1.log.infoSync('Delegating token acquisition to AuthProvider');
|
|
490
|
+
}
|
|
491
|
+
// Use the provider to get the token - now returns a storage state object
|
|
492
|
+
// We don't need to pass environment/userIdentifier options because the provider will use what it has configured
|
|
493
|
+
const storageState = await provider.manageAuthToken(request, {});
|
|
494
|
+
if (!storageState) {
|
|
495
|
+
throw new Error('AuthProvider.manageAuthToken returned empty or undefined storageState');
|
|
496
|
+
}
|
|
497
|
+
// Extract raw token from storage state using the provider
|
|
498
|
+
const rawToken = provider.extractToken(storageState);
|
|
499
|
+
if (!rawToken) {
|
|
500
|
+
throw new Error('Could not extract token from storage state using provider.extractToken');
|
|
501
|
+
}
|
|
502
|
+
// Return the extracted raw token string
|
|
503
|
+
return rawToken;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Check if a token is expired
|
|
507
|
+
* Uses the in-memory cache first, then falls back to storage
|
|
508
|
+
* Avoids unnecessary file I/O operations
|
|
509
|
+
*/
|
|
510
|
+
isTokenExpired() {
|
|
511
|
+
// Check if the token exists in memory first
|
|
512
|
+
if (!this.hasToken || this.token === null) {
|
|
513
|
+
return true;
|
|
514
|
+
}
|
|
515
|
+
// Check the cache first to avoid file I/O
|
|
516
|
+
if (this.checkTokenCacheExpiration()) {
|
|
517
|
+
return true;
|
|
518
|
+
}
|
|
519
|
+
// If not in cache, check with the provider
|
|
520
|
+
if (this.checkProviderTokenExpiration()) {
|
|
521
|
+
return true;
|
|
522
|
+
}
|
|
523
|
+
// Check directly from storage as a last resort
|
|
524
|
+
return this.checkStorageTokenExpiration();
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Check token expiration using the advanced cache manager
|
|
528
|
+
*/
|
|
529
|
+
checkTokenCacheExpiration() {
|
|
530
|
+
// The advanced cache manager handles expiration automatically
|
|
531
|
+
// If get() returns null, it means the token is expired or not found
|
|
532
|
+
const cachedToken = cache_manager_1.globalTokenCache.get(this.storageFile);
|
|
533
|
+
const isExpired = cachedToken === null;
|
|
534
|
+
if (this.options.debug && isExpired) {
|
|
535
|
+
log_1.log.infoSync('Token expired or not found in advanced cache');
|
|
536
|
+
}
|
|
537
|
+
return isExpired;
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Check token expiration using the auth provider
|
|
541
|
+
*/
|
|
542
|
+
checkProviderTokenExpiration() {
|
|
543
|
+
try {
|
|
544
|
+
const provider = (0, auth_provider_1.getAuthProvider)();
|
|
545
|
+
if (provider &&
|
|
546
|
+
typeof provider.isTokenExpired === 'function' &&
|
|
547
|
+
this.token) {
|
|
548
|
+
const isExpired = provider.isTokenExpired(this.token);
|
|
549
|
+
if (this.options.debug && isExpired) {
|
|
550
|
+
log_1.log.infoSync('Token expired according to provider check');
|
|
551
|
+
}
|
|
552
|
+
return isExpired;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
catch (error) {
|
|
556
|
+
log_1.log.errorSync(`Error using provider to check token expiration: ${error instanceof Error ? error.message : String(error)}`);
|
|
557
|
+
}
|
|
558
|
+
return false;
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Check token expiration by reading from storage
|
|
562
|
+
*/
|
|
563
|
+
checkStorageTokenExpiration() {
|
|
564
|
+
let token = null;
|
|
565
|
+
if (fs.existsSync(this.storageFile)) {
|
|
566
|
+
try {
|
|
567
|
+
const data = fs.readFileSync(this.storageFile, 'utf8');
|
|
568
|
+
const tokenData = JSON.parse(data);
|
|
569
|
+
// Extract the token using the provider
|
|
570
|
+
const provider = (0, auth_provider_1.getAuthProvider)();
|
|
571
|
+
// First extract the token from the data
|
|
572
|
+
const extractedToken = provider.extractToken(tokenData);
|
|
573
|
+
// Then check if the token is expired using the extracted token string
|
|
574
|
+
if (provider.isTokenExpired &&
|
|
575
|
+
extractedToken &&
|
|
576
|
+
provider.isTokenExpired(extractedToken)) {
|
|
577
|
+
if (this.options.debug) {
|
|
578
|
+
log_1.log.infoSync('Token expired according to storage check');
|
|
579
|
+
}
|
|
580
|
+
return true;
|
|
581
|
+
}
|
|
582
|
+
token = extractedToken;
|
|
583
|
+
}
|
|
584
|
+
catch (error) {
|
|
585
|
+
log_1.log.errorSync(`Error reading token from storage: ${error instanceof Error ? error.message : String(error)}`);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
const isExpired = token === null;
|
|
589
|
+
if (this.options.debug && isExpired) {
|
|
590
|
+
log_1.log.infoSync('No valid token found in storage');
|
|
591
|
+
}
|
|
592
|
+
return isExpired;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Refresh the token if it's expired
|
|
596
|
+
* @param request The Playwright API request context
|
|
597
|
+
* @returns A promise that resolves to the refreshed token
|
|
598
|
+
*/
|
|
599
|
+
async refreshTokenIfNeeded(request) {
|
|
600
|
+
if (this.isTokenExpired()) {
|
|
601
|
+
if (this.options.debug) {
|
|
602
|
+
log_1.log.infoSync('Token expired, refreshing...');
|
|
603
|
+
}
|
|
604
|
+
// Get token from the auth provider
|
|
605
|
+
const token = await this.getTokenFromProvider(request);
|
|
606
|
+
this.token = token;
|
|
607
|
+
this.hasToken = true;
|
|
608
|
+
await this.saveTokenToStorageWithRetry(token);
|
|
609
|
+
return token;
|
|
610
|
+
}
|
|
611
|
+
// Token is still valid
|
|
612
|
+
return this.token;
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Manage the complete authentication token lifecycle
|
|
616
|
+
* Handles checking existing tokens, fetching new ones if needed, and persistence
|
|
617
|
+
* Uses advanced caching for better performance
|
|
618
|
+
*/
|
|
619
|
+
async manageAuthToken(request) {
|
|
620
|
+
// Check advanced cache first for maximum efficiency
|
|
621
|
+
const cachedToken = cache_manager_1.globalTokenCache.get(this.storageFile);
|
|
622
|
+
if (cachedToken) {
|
|
623
|
+
// Token exists in cache and is not expired
|
|
624
|
+
if (this.options.debug) {
|
|
625
|
+
log_1.log.infoSync('Using cached token from advanced cache');
|
|
626
|
+
}
|
|
627
|
+
// Update in-memory state
|
|
628
|
+
this.token = cachedToken;
|
|
629
|
+
this.hasToken = true;
|
|
630
|
+
return cachedToken;
|
|
631
|
+
}
|
|
632
|
+
// If we have a token in memory but it's not in cache
|
|
633
|
+
if (this.hasToken && this.token) {
|
|
634
|
+
// Check if it's expired and refresh if needed
|
|
635
|
+
return this.refreshTokenIfNeeded(request);
|
|
636
|
+
}
|
|
637
|
+
// Get new token from the auth provider
|
|
638
|
+
const token = await this.getTokenFromProvider(request);
|
|
639
|
+
this.token = token;
|
|
640
|
+
this.hasToken = true;
|
|
641
|
+
// Cache the token in memory
|
|
642
|
+
this.cacheToken(token);
|
|
643
|
+
// Save to storage (with retry logic)
|
|
644
|
+
await this.saveTokenToStorageWithRetry(token);
|
|
645
|
+
return token;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
exports.AuthSessionManager = AuthSessionManager;
|
|
649
|
+
// Changed from singleton to per-storageDir instance cache for proper user isolation
|
|
650
|
+
AuthSessionManager.instances = new Map();
|
|
651
|
+
//# sourceMappingURL=auth-session.js.map
|