@skyramp/mcp 0.4.1 → 0.4.2-rc.2
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/build/commands/localDevTestChangesCommand.js +2 -1
- package/build/commands/recommendTestsAndExecuteCommand.js +15 -7
- package/build/commands/testThisEndpointCommand.js +35 -6
- package/build/execution/wrapperConfig.d.ts +56 -0
- package/build/execution/wrapperConfig.js +155 -0
- package/build/index.js +40 -10
- package/build/playwright/blueprintDigest.js +28 -7
- package/build/playwright/registerPlaywrightTools.js +47 -28
- package/build/playwright/traceExportStore.d.ts +22 -0
- package/build/playwright/traceExportStore.js +81 -0
- package/build/playwright/traceRecordingPrompt.js +11 -3
- package/build/prompts/code-reuse.js +118 -49
- package/build/prompts/fix-error-prompt.d.ts +9 -1
- package/build/prompts/fix-error-prompt.js +31 -28
- package/build/prompts/local-dev/local-dev-plan.d.ts +3 -0
- package/build/prompts/local-dev/local-dev-plan.js +8 -23
- package/build/prompts/local-dev/local-dev-prompts.d.ts +1 -1
- package/build/prompts/local-dev/local-dev-prompts.js +31 -4
- package/build/prompts/modularization/integration-test-modularization.js +13 -6
- package/build/prompts/modularization/ui-test-modularization.js +1 -1
- package/build/prompts/personas.js +1 -1
- package/build/prompts/pom-aware-code-reuse.js +7 -9
- package/build/prompts/reuse-hand-off.d.ts +64 -0
- package/build/prompts/reuse-hand-off.js +130 -0
- package/build/prompts/shared-helper-policy.d.ts +124 -2
- package/build/prompts/shared-helper-policy.js +178 -12
- package/build/prompts/startTraceCollectionPrompts.js +1 -1
- package/build/prompts/sut-setup/modes/adaptWorkflowPrompt.js +7 -8
- package/build/prompts/sut-setup/modes/dockerComposePrompt.js +1 -1
- package/build/prompts/sut-setup/shared.d.ts +4 -1
- package/build/prompts/sut-setup/shared.js +6 -4
- package/build/prompts/test-maintenance/actionsInstructions.d.ts +19 -11
- package/build/prompts/test-maintenance/actionsInstructions.js +47 -26
- package/build/prompts/test-maintenance/drift-analysis-prompt.d.ts +16 -8
- package/build/prompts/test-maintenance/drift-analysis-prompt.js +93 -38
- package/build/prompts/test-maintenance/driftAnalysisSections.js +5 -3
- package/build/prompts/test-maintenance/driftAnalysisShared.js +4 -2
- package/build/prompts/test-maintenance/uiDriftAnalysisSections.js +8 -5
- package/build/prompts/test-recommendation/recommendationSections.js +19 -8
- package/build/prompts/test-recommendation/recommendationShared.d.ts +1 -1
- package/build/prompts/test-recommendation/recommendationShared.js +0 -1
- package/build/prompts/test-recommendation/registerRecommendTestsPrompt.js +5 -2
- package/build/prompts/test-recommendation/test-recommendation-prompt.js +10 -7
- package/build/prompts/testbot/testbot-prompts.js +133 -63
- package/build/recommendation/answers.js +18 -9
- package/build/recommendation/pullRequestText.js +1 -1
- package/build/recommendation/registerPlan.js +31 -17
- package/build/recommendation/subjectStep.d.ts +8 -10
- package/build/recommendation/subjectStep.js +17 -16
- package/build/recommendation/types.d.ts +71 -17
- package/build/recommendation/types.js +9 -15
- package/build/recommendation/verifierContracts.d.ts +7 -3
- package/build/recommendation/verifierContracts.js +8 -4
- package/build/recommendation/verifiers/changedFile.js +11 -13
- package/build/recommendation/verifiers/citedPath.d.ts +8 -0
- package/build/recommendation/verifiers/citedPath.js +16 -2
- package/build/recommendation/verifiers/coverage.d.ts +2 -2
- package/build/recommendation/verifiers/coverage.js +190 -134
- package/build/recommendation/verifiers/defects.js +56 -16
- package/build/recommendation/verifiers/deliveredMatchesPlan.d.ts +7 -1
- package/build/recommendation/verifiers/deliveredMatchesPlan.js +28 -14
- package/build/recommendation/verifiers/endpointGrounded.js +14 -8
- package/build/recommendation/verifiers/existingCoverage.d.ts +6 -0
- package/build/recommendation/verifiers/existingCoverage.js +30 -21
- package/build/recommendation/verifiers/expectedOutcome.js +17 -8
- package/build/recommendation/verifiers/expectedValueSourced.js +54 -43
- package/build/recommendation/verifiers/issueTraceability.d.ts +5 -0
- package/build/recommendation/verifiers/issueTraceability.js +64 -7
- package/build/recommendation/verifiers/removedElementGuarded.js +19 -11
- package/build/recommendation/verifiers/reportedCategory.js +9 -4
- package/build/recommendation/verifiers/requirementSourced.js +34 -21
- package/build/recommendation/verifiers/screenRoute.js +15 -10
- package/build/recommendation/verifiers/statedDifference.js +15 -8
- package/build/recommendation/verifiers/uiElementGrounded.js +50 -16
- package/build/resources/analysisResources.js +7 -3
- package/build/resources/progressResource.js +4 -2
- package/build/resources/sutSetupResource.js +20 -2
- package/build/resources/testbotResource.js +19 -1
- package/build/services/AnalyticsService.js +3 -1
- package/build/services/ScenarioGenerationService.js +5 -5
- package/build/services/TestDiscoveryService.js +53 -9
- package/build/services/TestExecutionService.js +63 -21
- package/build/services/TestGenerationService.d.ts +1 -1
- package/build/services/TestGenerationService.js +43 -24
- package/build/skills/enhanceAssertionsSkill.d.ts +45 -0
- package/build/skills/enhanceAssertionsSkill.js +103 -0
- package/build/skills/fixTestImportErrorsSkill.d.ts +2 -2
- package/build/skills/fixTestImportErrorsSkill.js +2 -2
- package/build/skills/runTestSkill.d.ts +6 -0
- package/build/skills/runTestSkill.js +17 -0
- package/build/skills/skillFiles.d.ts +38 -0
- package/build/skills/skillFiles.js +94 -0
- package/build/skills/validateAssertionAlignmentSkill.d.ts +34 -0
- package/build/skills/validateAssertionAlignmentSkill.js +59 -0
- package/build/tool-phases.js +4 -1
- package/build/tools/auth/loginTool.js +3 -1
- package/build/tools/auth/logoutTool.js +3 -1
- package/build/tools/budgetExcuse.d.ts +15 -0
- package/build/tools/budgetExcuse.js +113 -0
- package/build/tools/code-refactor/alignAssertionsTool.d.ts +2 -0
- package/build/tools/code-refactor/alignAssertionsTool.js +51 -0
- package/build/tools/code-refactor/assertion-state.d.ts +1 -1
- package/build/tools/code-refactor/assertion-state.js +1 -1
- package/build/tools/code-refactor/assertionOperations.d.ts +44 -0
- package/build/tools/code-refactor/assertionOperations.js +82 -0
- package/build/tools/code-refactor/assertionSkillTools.d.ts +3 -0
- package/build/tools/code-refactor/assertionSkillTools.js +86 -0
- package/build/tools/code-refactor/codeReuseTool.js +27 -3
- package/build/tools/code-refactor/enhanceAssertionsTool.js +19 -83
- package/build/tools/code-refactor/gate-markers.d.ts +51 -0
- package/build/tools/code-refactor/gate-markers.js +95 -0
- package/build/tools/code-refactor/retrofit-state.d.ts +3 -1
- package/build/tools/code-refactor/retrofit-state.js +44 -2
- package/build/tools/code-refactor/reuse-outcome.d.ts +23 -1
- package/build/tools/code-refactor/reuse-outcome.js +36 -13
- package/build/tools/code-refactor/reuse-state.d.ts +90 -16
- package/build/tools/code-refactor/reuse-state.js +191 -61
- package/build/tools/code-refactor/utils-verify-gates.d.ts +4 -0
- package/build/tools/code-refactor/utils-verify-gates.js +269 -30
- package/build/tools/code-refactor/verify-gates.d.ts +15 -1
- package/build/tools/code-refactor/verify-gates.js +36 -4
- package/build/tools/enrichTestWithMocksTool.d.ts +1 -1
- package/build/tools/enrichTestWithMocksTool.js +9 -5
- package/build/tools/executeSkyrampTestTool.d.ts +118 -48
- package/build/tools/executeSkyrampTestTool.js +998 -372
- package/build/tools/execution-video-state.js +1 -1
- package/build/tools/fixErrorTool.js +5 -6
- package/build/tools/generate-tests/batchMockGenerationTool.js +1 -1
- package/build/tools/generate-tests/generateBatchScenarioRestTool.js +114 -73
- package/build/tools/generate-tests/generateContractRestTool.js +34 -16
- package/build/tools/generate-tests/generateE2ERestTool.d.ts +1 -0
- package/build/tools/generate-tests/generateE2ERestTool.js +9 -1
- package/build/tools/generate-tests/generateIntegrationRestTool.js +22 -7
- package/build/tools/generate-tests/generateMockRestTool.js +3 -1
- package/build/tools/generate-tests/generateUIRestTool.d.ts +2 -0
- package/build/tools/generate-tests/generateUIRestTool.js +11 -2
- package/build/tools/generate-tests/loadTestSchema.js +1 -3
- package/build/tools/generate-tests/planGuard.js +6 -3
- package/build/tools/generate-tests/scenarioFileIdentity.js +4 -1
- package/build/tools/generate-tests/scenarioLint.js +17 -5
- package/build/tools/generate-tests/trace-reuse-guard.js +5 -2
- package/build/tools/generateEnrichedIntegrationTestTool.js +9 -3
- package/build/tools/one-click/oneClickTool.js +3 -1
- package/build/tools/preflightMockCheckTool.js +23 -7
- package/build/tools/submitReportTool.d.ts +51 -12
- package/build/tools/submitReportTool.js +988 -161
- package/build/tools/test-management/actionsTool.js +241 -51
- package/build/tools/test-management/analyzeChangesTool.d.ts +8 -9
- package/build/tools/test-management/analyzeChangesTool.js +127 -68
- package/build/tools/test-management/analyzeTestHealthTool.d.ts +0 -11
- package/build/tools/test-management/analyzeTestHealthTool.js +42 -76
- package/build/tools/test-management/registerTestPlanTool.d.ts +44 -34
- package/build/tools/test-management/registerTestPlanTool.js +255 -111
- package/build/tools/test-management/resolveScreenTool.js +33 -9
- package/build/tools/test-management/testsOwedBeforeRun.d.ts +28 -0
- package/build/tools/test-management/testsOwedBeforeRun.js +53 -0
- package/build/tools/trace/startTraceCollectionTool.js +3 -1
- package/build/tools/trace/stopTraceCollectionTool.js +42 -6
- package/build/tools/verifyTestDependenciesTool.d.ts +3 -0
- package/build/tools/verifyTestDependenciesTool.js +54 -0
- package/build/tools/workspace/initScanWorkspaceTool.js +9 -3
- package/build/tools/workspace/initializeWorkspaceTool.js +3 -1
- package/build/types/AssertionOutcome.d.ts +1 -1
- package/build/types/EnhanceType.d.ts +6 -0
- package/build/types/EnhanceType.js +1 -0
- package/build/types/RepositoryAnalysis.d.ts +32 -72
- package/build/types/ReuseOutcome.d.ts +100 -7
- package/build/types/ReuseOutcome.js +16 -0
- package/build/types/StepMethod.js +20 -6
- package/build/types/TestAnalysis.d.ts +10 -2
- package/build/types/TestExecution.d.ts +45 -0
- package/build/types/TestRecommendation.d.ts +1 -1
- package/build/types/TestRecommendation.js +4 -1
- package/build/types/TestTypes.d.ts +16 -0
- package/build/types/TestTypes.js +40 -3
- package/build/types/TestbotPromptOptions.d.ts +9 -1
- package/build/types/TestbotReport.d.ts +45 -9
- package/build/utils/AnalysisStateManager.d.ts +137 -34
- package/build/utils/AnalysisStateManager.js +228 -44
- package/build/utils/assertion-verify/api-shared-lints.js +34 -16
- package/build/utils/assertion-verify/metrics.js +39 -6
- package/build/utils/assertion-verify/ui-lints.js +4 -2
- package/build/utils/branchDiff.js +47 -12
- package/build/utils/canonicalJson.js +3 -1
- package/build/utils/connectionErrors.d.ts +10 -0
- package/build/utils/connectionErrors.js +10 -0
- package/build/utils/dartRouteExtractor.js +36 -7
- package/build/utils/fixAttempts.d.ts +26 -0
- package/build/utils/fixAttempts.js +109 -0
- package/build/utils/frontendSelectors.js +23 -4
- package/build/utils/generatedTestRecord.d.ts +19 -0
- package/build/utils/generatedTestRecord.js +61 -0
- package/build/utils/gitStaging.js +7 -2
- package/build/utils/initAgent.js +26 -6
- package/build/utils/language-helper.js +60 -45
- package/build/utils/pathMatching.js +2 -1
- package/build/utils/pathSignatures.js +6 -2
- package/build/utils/planMatchKeys.d.ts +2 -2
- package/build/utils/planMatchKeys.js +20 -14
- package/build/utils/pom-catalog-parse.js +7 -2
- package/build/utils/pom-scope/import-expansion.js +6 -1
- package/build/utils/pom-scope/index.js +50 -12
- package/build/utils/pom-scope/scoring.js +13 -3
- package/build/utils/pom-scope/selector-extractor.js +16 -3
- package/build/utils/pom-scope/strip.d.ts +8 -0
- package/build/utils/pom-scope/strip.js +238 -0
- package/build/utils/pom-scope/testIdDiscovery.js +14 -2
- package/build/utils/pom-verify/__fixtures__/af-style/asset-list.page.d.ts +1 -1
- package/build/utils/pom-verify/__fixtures__/af-style/asset-list.page.js +4 -2
- package/build/utils/pom-verify/__fixtures__/af-style/report.iframe.page.js +3 -1
- package/build/utils/pom-verify/__fixtures__/af-style/workflow-footer.page.js +3 -1
- package/build/utils/pom-verify/bindings.js +5 -1
- package/build/utils/pom-verify/calls.js +9 -2
- package/build/utils/pom-verify/verify.js +27 -5
- package/build/utils/pr-comment-parser.js +20 -7
- package/build/utils/progress.d.ts +1 -1
- package/build/utils/progress.js +1 -1
- package/build/utils/proxy-terminal.d.ts +19 -1
- package/build/utils/proxy-terminal.js +346 -21
- package/build/utils/rebaselineSnapshots.d.ts +1 -1
- package/build/utils/rebaselineSnapshots.js +6 -16
- package/build/utils/removedUiElements.js +1 -1
- package/build/utils/reportLanguage.js +35 -7
- package/build/utils/reportVerification.d.ts +14 -8
- package/build/utils/reportVerification.js +19 -19
- package/build/utils/repositorySlug.d.ts +32 -0
- package/build/utils/repositorySlug.js +77 -0
- package/build/utils/reuseRouting.d.ts +10 -0
- package/build/utils/reuseRouting.js +21 -2
- package/build/utils/runContextGauge.d.ts +27 -0
- package/build/utils/runContextGauge.js +181 -0
- package/build/utils/runSerialized.d.ts +3 -0
- package/build/utils/runSerialized.js +39 -0
- package/build/utils/screenRoutes.js +74 -18
- package/build/utils/skyrampMdContent.d.ts +1 -1
- package/build/utils/skyrampMdContent.js +1 -1
- package/build/utils/skyrampSdkVersion.d.ts +9 -0
- package/build/utils/skyrampSdkVersion.js +16 -0
- package/build/utils/sourceRouteExtractor.js +13 -6
- package/build/utils/telemetry.d.ts +1 -0
- package/build/utils/telemetry.js +8 -5
- package/build/utils/testDependencyPolicy.d.ts +9 -0
- package/build/utils/testDependencyPolicy.js +809 -0
- package/build/utils/testExecutionRecord.d.ts +94 -0
- package/build/utils/testExecutionRecord.js +269 -0
- package/build/utils/testFileClassification.d.ts +8 -0
- package/build/utils/testFileClassification.js +39 -4
- package/build/utils/trace-parser.js +62 -14
- package/build/utils/urlPath.js +3 -1
- package/build/utils/utils-verify/action-key.d.ts +46 -0
- package/build/utils/utils-verify/action-key.js +120 -38
- package/build/utils/utils-verify/action-sites.d.ts +32 -0
- package/build/utils/utils-verify/action-sites.js +202 -0
- package/build/utils/utils-verify/allow.d.ts +122 -3
- package/build/utils/utils-verify/allow.js +146 -21
- package/build/utils/utils-verify/body-reach.d.ts +120 -0
- package/build/utils/utils-verify/body-reach.js +333 -0
- package/build/utils/utils-verify/call-sites.d.ts +31 -7
- package/build/utils/utils-verify/call-sites.js +80 -13
- package/build/utils/utils-verify/delivered-imports.d.ts +43 -0
- package/build/utils/utils-verify/delivered-imports.js +84 -0
- package/build/utils/utils-verify/fixed-sleep.d.ts +96 -0
- package/build/utils/utils-verify/fixed-sleep.js +461 -0
- package/build/utils/utils-verify/in-house.d.ts +93 -0
- package/build/utils/utils-verify/in-house.js +719 -0
- package/build/utils/utils-verify/incumbent.d.ts +3 -0
- package/build/utils/utils-verify/incumbent.js +75 -0
- package/build/utils/utils-verify/index.d.ts +2 -0
- package/build/utils/utils-verify/index.js +2 -0
- package/build/utils/utils-verify/language-spec.d.ts +51 -10
- package/build/utils/utils-verify/language-spec.js +232 -21
- package/build/utils/utils-verify/locate.d.ts +26 -0
- package/build/utils/utils-verify/locate.js +125 -23
- package/build/utils/utils-verify/module-name.d.ts +40 -0
- package/build/utils/utils-verify/module-name.js +98 -0
- package/build/utils/utils-verify/parse.d.ts +56 -7
- package/build/utils/utils-verify/parse.js +195 -40
- package/build/utils/utils-verify/retrofit-equivalence.d.ts +5 -0
- package/build/utils/utils-verify/retrofit-equivalence.js +4 -2
- package/build/utils/utils-verify/stage.d.ts +5 -0
- package/build/utils/utils-verify/stage.js +47 -2
- package/build/utils/utils-verify/status-once.d.ts +62 -0
- package/build/utils/utils-verify/status-once.js +207 -0
- package/build/utils/utils-verify/typecheck.d.ts +61 -0
- package/build/utils/utils-verify/typecheck.js +338 -0
- package/build/utils/utils-verify/verify.d.ts +79 -3
- package/build/utils/utils-verify/verify.js +531 -61
- package/build/utils/versions.d.ts +3 -3
- package/build/utils/versions.js +1 -1
- package/build/utils/workspaceAuth.js +107 -37
- package/build/workspace/queryParamResolution.js +11 -4
- package/build/workspace/workspace.d.ts +72 -52
- package/build/workspace/workspace.js +19 -15
- package/node_modules/playwright/ThirdPartyNotices.txt +19 -19
- package/node_modules/playwright/lib/mcp/skyramp/assertTool.js +8 -2
- package/node_modules/playwright/lib/mcp/skyramp/common/cssValue.js +87 -0
- package/node_modules/playwright/lib/mcp/skyramp/loadTraceTool.js +31 -0
- package/node_modules/playwright/lib/mcp/skyramp/skyRampImport.js +3 -0
- package/node_modules/playwright/lib/mcp/skyramp/traceRecordingBackend.js +181 -15
- package/node_modules/playwright/lib/mcp/test/skyRampExport.js +24 -0
- package/node_modules/playwright/lib/transform/babelBundleImpl.js +2353 -190
- package/node_modules/playwright/node_modules/playwright-core/ThirdPartyNotices.txt +62 -34
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/.package-lock.json +72 -41
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/dist/serve-static.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/dist/serve-static.mjs +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/package.json +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/README.md +16 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/index.js +4 -20
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/read.js +17 -17
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/json.js +60 -32
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/raw.js +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/text.js +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/urlencoded.js +16 -20
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/utils.js +18 -16
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/LICENSE +22 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/README.md +71 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +46 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.js +176 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/package.json +52 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/package.json +23 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/CHANGELOG.md +21 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/isObject.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/package.json +6 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/tsconfig.json +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/index.js +266 -45
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/lib/schemes.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/lib/utils.js +396 -92
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/package.json +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/component-safe-serialization.test.js +163 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/equal.test.js +31 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/fixtures/uri-js-parse.json +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/ipv6-canonical.test.js +34 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/ipv6-validation.test.js +124 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/malformed-percent.test.js +77 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/malformed-urn.test.js +61 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/parse.test.js +7 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/query-fragment-normalization.test.js +33 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/reserved-path-normalization.test.js +109 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/scheme-validation.test.js +124 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/security-normalization.test.js +101 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/security.test.js +301 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/urn-full-input.test.js +29 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/websocket-query-preservation.test.js +24 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/CHANGELOG.md +7 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/index.d.ts +0 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/package.json +4 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/client/client.js +30 -16
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/client/utils.js +4 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/context.js +32 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/accepts/accepts.js +36 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/proxy/index.js +4 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/ssg/ssg.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/ssg/utils.js +30 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/streaming/sse.js +5 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/hono-base.js +10 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/base.js +44 -23
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/components.js +25 -26
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/context.js +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/dom/render.js +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/dom/server.js +5 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/hooks/index.js +16 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/streaming.js +4 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/cache/index.js +103 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/compress/index.js +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/cors/index.js +17 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/csrf/index.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/etag/digest.js +47 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/etag/index.js +7 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/language/language.js +10 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +90 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +3 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +16 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/request.js +20 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/linear-router/router.js +7 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/pattern-router/router.js +3 -9
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +65 -59
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +71 -128
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +14 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/trie-router/node.js +47 -70
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/trie-router/router.js +3 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/utils.js +27 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/accept.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/body.js +21 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/cookie.js +4 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/ipaddr.js +5 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/stream.js +12 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/url.js +19 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/client/client.js +30 -16
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/client/utils.js +4 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/context.js +32 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/accepts/accepts.js +36 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/proxy/index.js +4 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/ssg/ssg.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/ssg/utils.js +30 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/streaming/sse.js +5 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/hono-base.js +10 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/base.js +41 -23
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/components.js +26 -27
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/context.js +6 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/dom/render.js +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/dom/server.js +5 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/hooks/index.js +16 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/intrinsic-element/components.js +4 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/streaming.js +5 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/cache/index.js +103 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/compress/index.js +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/cors/index.js +17 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/csrf/index.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/etag/digest.js +47 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/etag/index.js +7 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/jwk/jwk.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/jwt/jwt.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/language/language.js +10 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/method-not-allowed/index.js +68 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/pretty-json/index.js +3 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +16 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/request.js +21 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/linear-router/router.js +7 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/pattern-router/router.js +3 -9
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/node.js +61 -58
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/router.js +77 -129
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/trie.js +14 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/trie-router/node.js +47 -70
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/trie-router/router.js +3 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/utils.js +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +9 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/client/types.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/context.d.ts +6 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/hono-base.d.ts +4 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/base.d.ts +7 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/index.d.ts +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/server.d.ts +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/hooks/index.d.ts +8 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/index.d.ts +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/cache/index.d.ts +6 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/combine/index.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/cors/index.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +49 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +4 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +2 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/trie-router/node.d.ts +1 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/trie-router/router.d.ts +0 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/utils.d.ts +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/utils/headers.d.ts +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/utils/url.d.ts +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/accept.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/body.js +21 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/cookie.js +5 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/ipaddr.js +5 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/stream.js +12 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/url.js +17 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/package.json +11 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/README.md +173 -143
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/address-error.d.ts +11 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/address-error.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.d.ts +49 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.js +79 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.d.ts +78 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.js +119 -24
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.d.ts +151 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.js +316 -90
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.js +45 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.js +50 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/package.json +6 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/.github/THREAT_MODEL.md +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/CHANGELOG.md +26 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/README.md +19 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/dist/qs.js +25 -25
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/eslint.config.mjs +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/parse.js +16 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/stringify.js +23 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/utils.js +57 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/package.json +8 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/parse.js +419 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/stringify.js +317 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/utils.js +206 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/CHANGELOG.md +10 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/README.md +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/index.js +5 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/package.json +10 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/test/index.js +16 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/index.js +8 -18
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/LICENSE +22 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/README.md +71 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.d.ts +46 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.js +176 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/package.json +52 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/package.json +9 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/package-lock.json +72 -41
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/.package-lock.json +6 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/README.md +23 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/index.js +265 -86
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/package.json +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/README.md +173 -143
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/address-error.d.ts +11 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/address-error.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.d.ts +49 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.js +79 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.d.ts +78 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.js +119 -24
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.d.ts +151 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.js +316 -90
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.js +45 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.js +50 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/package.json +6 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/package-lock.json +6 -6
- package/node_modules/playwright/node_modules/playwright-core/lib/cli/program.js +18 -9
- package/node_modules/playwright/node_modules/playwright-core/lib/mcpBundleImpl/index.js +47 -47
- package/node_modules/playwright/node_modules/playwright-core/lib/server/codegen/skyramp/jsonlReader.js +3 -0
- package/node_modules/playwright/node_modules/playwright-core/lib/server/recorder/recorderRunner.js +42 -0
- package/node_modules/playwright/node_modules/playwright-core/lib/utilsBundleImpl/index.js +121 -121
- package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/{index.B7KbSQcC.js → index.BAkLd5DX.js} +1 -1
- package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/index.html +1 -1
- package/node_modules/playwright/node_modules/playwright-core/package.json +1 -1
- package/node_modules/playwright/node_modules/playwright-core/src/cli/program.ts +31 -9
- package/node_modules/playwright/node_modules/playwright-core/src/server/codegen/skyramp/jsonlReader.ts +1 -0
- package/node_modules/playwright/node_modules/playwright-core/src/server/recorder/recorderRunner.ts +57 -1
- package/node_modules/playwright/package.json +2 -2
- package/package.json +7 -6
- package/plugin/prompts/code-reuse/hand-off.md +30 -0
- package/plugin/prompts/generate-tests/generation.md +1 -1
- package/plugin/prompts/plan-tests.md +14 -14
- package/plugin/prompts/testbot-task1.md +2 -2
- package/plugin/skills/enhance-assertions/SKILL.md +25 -0
- package/plugin/skills/enhance-assertions/reference/contract.md +51 -0
- package/plugin/skills/enhance-assertions/reference/integration.md +58 -0
- package/plugin/skills/enhance-assertions/reference/shared-rules.md +220 -0
- package/plugin/skills/enhance-assertions/reference/ui.md +373 -0
- package/plugin/skills/fix-test-import-errors/SKILL.md +45 -50
- package/plugin/skills/run-test/SKILL.md +16 -0
- package/plugin/skills/validate-assertion-alignment-post-execution/SKILL.md +32 -0
- package/plugin/skills/validate-assertion-alignment-post-execution/reference/checks.md +44 -0
- package/plugin/skills/validate-assertion-alignment-post-execution/reference/evidence.md +47 -0
- package/build/adapters/jestAdapter.d.ts +0 -14
- package/build/adapters/jestAdapter.js +0 -113
- package/build/adapters/mochaAdapter.d.ts +0 -13
- package/build/adapters/mochaAdapter.js +0 -87
- package/build/adapters/playwrightAdapter.d.ts +0 -17
- package/build/adapters/playwrightAdapter.js +0 -182
- package/build/adapters/pytestAdapter.d.ts +0 -15
- package/build/adapters/pytestAdapter.js +0 -108
- package/build/prompts/enhance-assertions/contractProviderAssertionsPrompt.d.ts +0 -2
- package/build/prompts/enhance-assertions/contractProviderAssertionsPrompt.js +0 -29
- package/build/prompts/enhance-assertions/integrationAssertionsPrompt.d.ts +0 -2
- package/build/prompts/enhance-assertions/integrationAssertionsPrompt.js +0 -36
- package/build/prompts/enhance-assertions/sharedAssertionRules.d.ts +0 -16
- package/build/prompts/enhance-assertions/sharedAssertionRules.js +0 -284
- package/build/prompts/enhance-assertions/uiAssertionsPrompt.d.ts +0 -2
- package/build/prompts/enhance-assertions/uiAssertionsPrompt.js +0 -388
- package/build/tools/runExistingTestsTool.d.ts +0 -138
- package/build/tools/runExistingTestsTool.js +0 -644
- package/build/types/ExternalTestExecution.d.ts +0 -67
- package/build/types/ExternalTestExecution.js +0 -8
- package/build/workspace/testSuites.d.ts +0 -20
- package/build/workspace/testSuites.js +0 -17
- package/node_modules/playwright/node_modules/playwright-core/.DS_Store +0 -0
|
@@ -1,3 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a `/` at `i` opens a regex literal rather than a division.
|
|
3
|
+
*
|
|
4
|
+
* The standard heuristic: a regex may only start where a VALUE may start, so the last
|
|
5
|
+
* significant character before it decides. `a / b` is division; `= /x/`, `( /x/`,
|
|
6
|
+
* `return /x/` are regex literals. A regex is not an edge case for these scanners —
|
|
7
|
+
* `/https:\/\//` holds `//`, and a lexer that does not know the literal reads that as
|
|
8
|
+
* the start of a comment and blanks the rest of the line.
|
|
9
|
+
*/
|
|
10
|
+
/** Whether position `k` falls inside a span the lexer already classified — a string, a
|
|
11
|
+
* comment or a regex. Every span before the current position is complete, so this is
|
|
12
|
+
* the state every backward look must consult. A quoted `)`, a `*\/` and a comment
|
|
13
|
+
* between a keyword and its value each defeated one of the three looks below. */
|
|
14
|
+
/** Every keyword a value may follow, so a `/` after one opens a regex and a `{` after
|
|
15
|
+
* one opens an object literal. `throw /[/*]/` is the form that reads naturally in a
|
|
16
|
+
* test file; without it the `/*` inside the character class opened a block comment
|
|
17
|
+
* and blanked the rest of the file. */
|
|
18
|
+
const VALUE_KEYWORDS = [
|
|
19
|
+
"return",
|
|
20
|
+
"throw",
|
|
21
|
+
"typeof",
|
|
22
|
+
"void",
|
|
23
|
+
"delete",
|
|
24
|
+
"instanceof",
|
|
25
|
+
"new",
|
|
26
|
+
"case",
|
|
27
|
+
"default",
|
|
28
|
+
"in",
|
|
29
|
+
"of",
|
|
30
|
+
"do",
|
|
31
|
+
"else",
|
|
32
|
+
"yield",
|
|
33
|
+
"await",
|
|
34
|
+
];
|
|
35
|
+
/** A `{` after one of these opens a BLOCK, never an object literal. They are in the
|
|
36
|
+
* list above because a `/` after them opens a regex — `else /re/.test(v)` is valid —
|
|
37
|
+
* and one list answering both questions read `else {}` as a value. */
|
|
38
|
+
const BLOCK_KEYWORDS = ["else", "do"];
|
|
39
|
+
/** The keyword token ending at `j`, or "" when the word there is not one.
|
|
40
|
+
*
|
|
41
|
+
* A word after a `.` — or a `?.` — is a PROPERTY NAME, not a keyword: `obj.return`
|
|
42
|
+
* and `it.return()` are ordinary member accesses, and reading them as the keyword
|
|
43
|
+
* opened a regex at the division that follows, which then swallowed the first slash
|
|
44
|
+
* of a trailing comment. Asked once, so the two keyword lookups below cannot drift.
|
|
45
|
+
*/
|
|
46
|
+
function keywordAt(src, j, done) {
|
|
47
|
+
const word = (src.slice(0, j + 1).match(/[A-Za-z_$][\w$]*$/) ?? [""])[0];
|
|
48
|
+
if (!word)
|
|
49
|
+
return "";
|
|
50
|
+
let k = j - word.length;
|
|
51
|
+
while (k >= 0 && (/\s/.test(src[k]) || triviaAt(done, k)))
|
|
52
|
+
k--;
|
|
53
|
+
return k >= 0 && src[k] === "." ? "" : word;
|
|
54
|
+
}
|
|
55
|
+
function spanAt(done, k) {
|
|
56
|
+
return done.find((s) => k >= s.start && k < s.end);
|
|
57
|
+
}
|
|
58
|
+
/** A comment is TRIVIA: the token before a `/` is whatever precedes the comment. A
|
|
59
|
+
* string or a regex is a VALUE, so a `/` after one is a division — `"4" / 2` and
|
|
60
|
+
* `/re/ / 2` both divide. Skipping every classified span read `= "4" /` as a regex
|
|
61
|
+
* opener and swallowed the comment that followed. */
|
|
62
|
+
function triviaAt(done, k) {
|
|
63
|
+
return spanAt(done, k)?.kind === "comment";
|
|
64
|
+
}
|
|
65
|
+
/** Structure only. A parenthesis inside a string, a comment or a regex is not part of
|
|
66
|
+
* the balance: a quoted `)` in `if (check(")"))` hid the `if`. */
|
|
67
|
+
function inertAt(done, k) {
|
|
68
|
+
return spanAt(done, k) !== undefined;
|
|
69
|
+
}
|
|
70
|
+
/** Whether the `)` at `close` ends the head of a control statement rather than a
|
|
71
|
+
* call or a grouping. Matched back to its opening paren, then judged by the keyword
|
|
72
|
+
* before it. */
|
|
73
|
+
function closesControlHead(src, close, done) {
|
|
74
|
+
// Parentheses inside a string, a comment or a regex are not structure. They are
|
|
75
|
+
// already classified, because every span before this point is complete — a quoted
|
|
76
|
+
// `)` in `if (check(")"))` hid the `if` when the count read raw characters.
|
|
77
|
+
const inert = (k) => inertAt(done, k);
|
|
78
|
+
let depth = 0;
|
|
79
|
+
let k = close;
|
|
80
|
+
for (; k >= 0; k--) {
|
|
81
|
+
if (inert(k))
|
|
82
|
+
continue;
|
|
83
|
+
if (src[k] === ")")
|
|
84
|
+
depth++;
|
|
85
|
+
else if (src[k] === "(") {
|
|
86
|
+
depth--;
|
|
87
|
+
if (depth === 0)
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (k < 0)
|
|
92
|
+
return false;
|
|
93
|
+
// A comment sits between the keyword and its head as legally as whitespace does:
|
|
94
|
+
// `if /* note */ (ready)`. Both are skipped, or the `*\/` reads as the keyword.
|
|
95
|
+
let j = k - 1;
|
|
96
|
+
while (j >= 0 && (/\s/.test(src[j]) || triviaAt(done, j)))
|
|
97
|
+
j--;
|
|
98
|
+
// Through the same question: `obj.if(ready)` is a call on a property, not a head.
|
|
99
|
+
const word = keywordAt(src, j, done);
|
|
100
|
+
return ["if", "while", "for", "with", "switch", "catch"].includes(word);
|
|
101
|
+
}
|
|
102
|
+
/** Whether the `}` at `close` ends an object literal rather than a block. Matched back
|
|
103
|
+
* to its `{`, then judged by whether a VALUE could have started there. */
|
|
104
|
+
function closesObjectLiteral(src, close, done) {
|
|
105
|
+
let depth = 0;
|
|
106
|
+
let k = close;
|
|
107
|
+
for (; k >= 0; k--) {
|
|
108
|
+
if (inertAt(done, k))
|
|
109
|
+
continue;
|
|
110
|
+
if (src[k] === "}")
|
|
111
|
+
depth++;
|
|
112
|
+
else if (src[k] === "{") {
|
|
113
|
+
depth--;
|
|
114
|
+
if (depth === 0)
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (k < 0)
|
|
119
|
+
return false;
|
|
120
|
+
let j = k - 1;
|
|
121
|
+
while (j >= 0 && (/\s/.test(src[j]) || triviaAt(done, j)))
|
|
122
|
+
j--;
|
|
123
|
+
if (j < 0)
|
|
124
|
+
return false;
|
|
125
|
+
// `:` is DELIBERATELY absent, though `{ a: {} }` is an object literal. This
|
|
126
|
+
// function decides one thing — whether a `/` after the closing `}` divides — and
|
|
127
|
+
// the two wrong answers do not cost the same. Reading a regex where a division
|
|
128
|
+
// stands is bounded: a regex literal cannot cross a line, and an unterminated one
|
|
129
|
+
// is rejected. Reading a division where a regex stands lets a `/*` inside that
|
|
130
|
+
// regex open a block comment that runs to the end of the file. A colon introduces
|
|
131
|
+
// a statement label, a `case` clause and a `default` clause — all blocks, all of
|
|
132
|
+
// which a `/` may follow — so the safe answer is also the common one here. A
|
|
133
|
+
// division straight after a nested object literal is what it costs.
|
|
134
|
+
if ("=(,[!&|?+-*%~^<>".includes(src[j]))
|
|
135
|
+
return true;
|
|
136
|
+
// A keyword can introduce the value too: `return {}`, `yield {}`, `typeof {}`.
|
|
137
|
+
// Judging the matching `{` by the preceding CHARACTER alone missed every one of
|
|
138
|
+
// them, so `return {} / 2` read as a block and the slash opened a regex.
|
|
139
|
+
const word = keywordAt(src, j, done);
|
|
140
|
+
if (BLOCK_KEYWORDS.includes(word))
|
|
141
|
+
return false;
|
|
142
|
+
return VALUE_KEYWORDS.includes(word);
|
|
143
|
+
}
|
|
144
|
+
function opensRegex(src, i, done) {
|
|
145
|
+
let j = i - 1;
|
|
146
|
+
while (j >= 0 && (/\s/.test(src[j]) || triviaAt(done, j)))
|
|
147
|
+
j--;
|
|
148
|
+
if (j < 0)
|
|
149
|
+
return true;
|
|
150
|
+
// A string or a regex ENDS here, so the slash divides its value.
|
|
151
|
+
if (spanAt(done, j)?.kind === "string")
|
|
152
|
+
return false;
|
|
153
|
+
const prev = src[j];
|
|
154
|
+
// `++` and `--` are POSTFIX here: `count++ / 2` is a division. Reading the `/` as a
|
|
155
|
+
// regex opener swallowed the rest of the line, so the line comment after it was
|
|
156
|
+
// never recognised — and a gate marker in that comment shipped unstripped.
|
|
157
|
+
if ((prev === "+" || prev === "-") && src[j - 1] === prev)
|
|
158
|
+
return false;
|
|
159
|
+
// JSX closes a tag with a slash, and a page object in a React repository is a `.tsx`
|
|
160
|
+
// file, so this is ordinary input. Both closing forms put the slash exactly where a
|
|
161
|
+
// value may start, so the heuristic opened a regex, terminated it on the first slash
|
|
162
|
+
// of the following comment, and left that comment unclassified — a marker in it
|
|
163
|
+
// shipped, and its text stayed readable to every scanner built on this file.
|
|
164
|
+
//
|
|
165
|
+
// ADJACENCY is what separates the two readings, so neither rule costs a real literal:
|
|
166
|
+
// JSX writes `</`, while a regex after a comparison is written `a < /re/`. `/>` is
|
|
167
|
+
// only re-read where the preceding `}` closes a JSX expression container — after `(`
|
|
168
|
+
// or `=` it stays the literal it is, so `s.split(/>/)` is untouched.
|
|
169
|
+
// Only a TAG NAME can follow the `</` of a closing tag — a letter, `_`, `$`, or the
|
|
170
|
+
// `>` of a fragment. A character that cannot start one means this is a regex written
|
|
171
|
+
// tight against a comparison: `a</[/*]/.test(v)` is valid, if unusual, JavaScript.
|
|
172
|
+
if (prev === "<" && j === i - 1 && /[A-Za-z_$>]/.test(src[i + 1] ?? ""))
|
|
173
|
+
return false;
|
|
174
|
+
if (prev === "}" && src[i + 1] === ">")
|
|
175
|
+
return false;
|
|
176
|
+
// A `}` closes a BLOCK, after which a statement — and so a regex — may start; or it
|
|
177
|
+
// closes an OBJECT LITERAL, which is a value, after which `/` divides. Decided by
|
|
178
|
+
// what precedes the matching `{`, the same way the control head is.
|
|
179
|
+
if (prev === "}")
|
|
180
|
+
return !closesObjectLiteral(src, j, done);
|
|
181
|
+
if ("=(,:[!&|?{;+-*%~^<>".includes(prev))
|
|
182
|
+
return true;
|
|
183
|
+
// A `)` usually ends a call, and `total(a) / 2` is a division. But the `)` that
|
|
184
|
+
// closes an `if (…)` head is followed by a STATEMENT, so a `/` after it opens a
|
|
185
|
+
// regex: `if (ready) /re/.test(v)`. Reading that as division let the `/*` inside a
|
|
186
|
+
// character class open a block comment and hide every later comment.
|
|
187
|
+
if (prev === ")" && closesControlHead(src, j, done))
|
|
188
|
+
return true;
|
|
189
|
+
// A keyword that takes a value next. `)` and an identifier character mean division.
|
|
190
|
+
const word = /[A-Za-z_$]/.test(prev) ? keywordAt(src, j, done) : "";
|
|
191
|
+
return VALUE_KEYWORDS.includes(word);
|
|
192
|
+
}
|
|
1
193
|
/**
|
|
2
194
|
* Single lexer-lite pass over the source classifying every line comment, block comment, and
|
|
3
195
|
* string/template literal span (escaped quotes handled; a template literal's `${...}`
|
|
@@ -27,6 +219,43 @@ function classifySpans(src) {
|
|
|
27
219
|
spans.push({ kind: "comment", start, end: i });
|
|
28
220
|
continue;
|
|
29
221
|
}
|
|
222
|
+
// Classified as a string: the callers that blank strings want a regex's contents
|
|
223
|
+
// inert for the same reason, and the ones that blank comments must not touch it.
|
|
224
|
+
if (c === "/" && opensRegex(src, i, spans)) {
|
|
225
|
+
const start = i;
|
|
226
|
+
i++;
|
|
227
|
+
let inClass = false;
|
|
228
|
+
let closed = false;
|
|
229
|
+
while (i < n) {
|
|
230
|
+
const ch = src[i];
|
|
231
|
+
if (ch === "\\") {
|
|
232
|
+
i += 2;
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
// A regex literal cannot span a line. An unterminated one is not a literal.
|
|
236
|
+
if (ch === "\n")
|
|
237
|
+
break;
|
|
238
|
+
if (ch === "[")
|
|
239
|
+
inClass = true;
|
|
240
|
+
else if (ch === "]")
|
|
241
|
+
inClass = false;
|
|
242
|
+
else if (ch === "/" && !inClass) {
|
|
243
|
+
i++;
|
|
244
|
+
closed = true;
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
i++;
|
|
248
|
+
}
|
|
249
|
+
if (!closed) {
|
|
250
|
+
i = start + 1;
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
// Trailing flags belong to the literal.
|
|
254
|
+
while (i < n && /[a-z]/.test(src[i]))
|
|
255
|
+
i++;
|
|
256
|
+
spans.push({ kind: "string", start, end: i });
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
30
259
|
if (c === "'" || c === '"' || c === "`") {
|
|
31
260
|
const quote = c;
|
|
32
261
|
const start = i;
|
|
@@ -72,6 +301,15 @@ function blankSpans(src, spans) {
|
|
|
72
301
|
}
|
|
73
302
|
return out.join("");
|
|
74
303
|
}
|
|
304
|
+
/** Every line- and block-comment span in `src`, in source order. Exported for callers
|
|
305
|
+
* that must decide whether a `//` OPENS a comment rather than sits inside one: a `//`
|
|
306
|
+
* on its own line inside `/* … *\/` opens nothing, and deleting that line can take the
|
|
307
|
+
* block's terminator with it. */
|
|
308
|
+
export function commentSpans(src) {
|
|
309
|
+
return classifySpans(src)
|
|
310
|
+
.filter((s) => s.kind === "comment")
|
|
311
|
+
.map(({ start, end }) => ({ start, end }));
|
|
312
|
+
}
|
|
75
313
|
/** Blanks line/block comments only, preserving string/template literal contents (e.g. so an
|
|
76
314
|
* import specifier's quoted path stays readable). Each blanked character becomes a space
|
|
77
315
|
* (newlines preserved) so remaining code characters keep their original offset. */
|
|
@@ -32,7 +32,16 @@ const ATTR_SELECTOR_RE = /\[\s*([A-Za-z][A-Za-z0-9_:-]*)\s*[~^$*|]?=\s*["']/g;
|
|
|
32
32
|
* it admitted `data-auto-play` and `data-auto-height`, and `automation` already
|
|
33
33
|
* covers the convention it was there for (`data-automation-id`).
|
|
34
34
|
*/
|
|
35
|
-
const TEST_TOKENS = new Set([
|
|
35
|
+
const TEST_TOKENS = new Set([
|
|
36
|
+
"test",
|
|
37
|
+
"testid",
|
|
38
|
+
"tests",
|
|
39
|
+
"qa",
|
|
40
|
+
"cy",
|
|
41
|
+
"cypress",
|
|
42
|
+
"e2e",
|
|
43
|
+
"automation",
|
|
44
|
+
]);
|
|
36
45
|
/**
|
|
37
46
|
* Whether a name plausibly denotes a test id.
|
|
38
47
|
*
|
|
@@ -70,7 +79,10 @@ const OBSERVED_REPORT_LIMIT = 5;
|
|
|
70
79
|
export async function discoverTestIdAttribute(root) {
|
|
71
80
|
let files;
|
|
72
81
|
try {
|
|
73
|
-
const [poms, specs] = await Promise.all([
|
|
82
|
+
const [poms, specs] = await Promise.all([
|
|
83
|
+
globPomFiles(root),
|
|
84
|
+
globSpecFiles(root),
|
|
85
|
+
]);
|
|
74
86
|
files = [...new Set([...poms, ...specs])].slice(0, MAX_FILES);
|
|
75
87
|
}
|
|
76
88
|
catch {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { WorkflowFooter } from
|
|
1
|
+
import { WorkflowFooter } from "./workflow-footer.page.js";
|
|
2
2
|
export class AssetListPage {
|
|
3
3
|
footer;
|
|
4
|
-
constructor(page) {
|
|
4
|
+
constructor(page) {
|
|
5
|
+
this.footer = new WorkflowFooter(page);
|
|
6
|
+
}
|
|
5
7
|
}
|
|
@@ -156,7 +156,11 @@ export async function extractPomBindings(specContent, opts) {
|
|
|
156
156
|
}
|
|
157
157
|
for (const pmVar of pmVars) {
|
|
158
158
|
for (const [member, classFile] of memberMap) {
|
|
159
|
-
pushBinding({
|
|
159
|
+
pushBinding({
|
|
160
|
+
kind: "instance",
|
|
161
|
+
name: `${pmVar}.${member}`,
|
|
162
|
+
classFile,
|
|
163
|
+
});
|
|
160
164
|
}
|
|
161
165
|
const accessRe = new RegExp(`\\b${escapeRegExp(pmVar)}\\.(\\w+)`, "g");
|
|
162
166
|
for (const am of spec.matchAll(accessRe)) {
|
|
@@ -33,8 +33,15 @@ export function extractPomCalls(specContent, bindings) {
|
|
|
33
33
|
if (seen.has(key))
|
|
34
34
|
continue;
|
|
35
35
|
seen.add(key);
|
|
36
|
-
found.push({
|
|
36
|
+
found.push({
|
|
37
|
+
binding: binding.name,
|
|
38
|
+
chain,
|
|
39
|
+
strict: chain.length <= 1,
|
|
40
|
+
pos: start,
|
|
41
|
+
});
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
|
-
return found
|
|
44
|
+
return found
|
|
45
|
+
.sort((a, b) => a.pos - b.pos)
|
|
46
|
+
.map(({ binding, chain, strict }) => ({ binding, chain, strict }));
|
|
40
47
|
}
|
|
@@ -16,7 +16,18 @@ const NODE_CHECK_TIMEOUT_MS = 10_000;
|
|
|
16
16
|
// mistake for method names (e.g. `if (...)`, `for (...)`) -- filtered out as noise, not parsed
|
|
17
17
|
// around; see the "rough by design" comment on listMembers.
|
|
18
18
|
const NON_MEMBER_KEYWORDS = new Set([
|
|
19
|
-
"if",
|
|
19
|
+
"if",
|
|
20
|
+
"for",
|
|
21
|
+
"while",
|
|
22
|
+
"switch",
|
|
23
|
+
"catch",
|
|
24
|
+
"return",
|
|
25
|
+
"else",
|
|
26
|
+
"do",
|
|
27
|
+
"function",
|
|
28
|
+
"new",
|
|
29
|
+
"typeof",
|
|
30
|
+
"await",
|
|
20
31
|
]);
|
|
21
32
|
/**
|
|
22
33
|
* Module-private, deliberately rough member lister: strips comments/strings then greps three
|
|
@@ -150,7 +161,9 @@ export async function verifyReuse(testFile, language) {
|
|
|
150
161
|
// Candidates come from the whole searched closure, not just the binding's file: a
|
|
151
162
|
// binding through a barrel has a member-less primary file, and the members the agent
|
|
152
163
|
// could remap to live in the leaf classes the barrel re-exports.
|
|
153
|
-
const availableMembers = [
|
|
164
|
+
const availableMembers = [
|
|
165
|
+
...new Set((await Promise.all(searched.map(listMembers))).flat()),
|
|
166
|
+
];
|
|
154
167
|
if (availableMembers.length === 0) {
|
|
155
168
|
// "Not found, and I can enumerate nothing to remap to" is evidence about the
|
|
156
169
|
// VERIFIER's reach, not the member's existence. Emitting a violation here starts a
|
|
@@ -161,7 +174,12 @@ export async function verifyReuse(testFile, language) {
|
|
|
161
174
|
checkedCalls--;
|
|
162
175
|
continue;
|
|
163
176
|
}
|
|
164
|
-
violations.push({
|
|
177
|
+
violations.push({
|
|
178
|
+
binding: call.binding,
|
|
179
|
+
member,
|
|
180
|
+
searched,
|
|
181
|
+
availableMembers,
|
|
182
|
+
});
|
|
165
183
|
}
|
|
166
184
|
}
|
|
167
185
|
for (const u of unrecognized)
|
|
@@ -169,11 +187,15 @@ export async function verifyReuse(testFile, language) {
|
|
|
169
187
|
let parseError;
|
|
170
188
|
if (language === "javascript") {
|
|
171
189
|
try {
|
|
172
|
-
await pExecFile("node", ["--check", testFile], {
|
|
190
|
+
await pExecFile("node", ["--check", testFile], {
|
|
191
|
+
timeout: NODE_CHECK_TIMEOUT_MS,
|
|
192
|
+
});
|
|
173
193
|
}
|
|
174
194
|
catch (err) {
|
|
175
195
|
const e = err;
|
|
176
|
-
const stderr = e?.killed
|
|
196
|
+
const stderr = e?.killed
|
|
197
|
+
? `node --check timed out after ${NODE_CHECK_TIMEOUT_MS}ms`
|
|
198
|
+
: (e?.stderr ?? String(err));
|
|
177
199
|
parseError = stderr.slice(0, MAX_PARSE_ERROR_LEN);
|
|
178
200
|
}
|
|
179
201
|
}
|
|
@@ -53,7 +53,11 @@ const MULTI_METHOD_ENDPOINT_PATTERN = /\b((?:GET|POST|PUT|PATCH|DELETE)(?:\/(?:G
|
|
|
53
53
|
function splitIntoSections(body) {
|
|
54
54
|
const lines = body.split("\n");
|
|
55
55
|
let currentSection = "rest";
|
|
56
|
-
const sections = {
|
|
56
|
+
const sections = {
|
|
57
|
+
newTests: [],
|
|
58
|
+
additionalRecs: [],
|
|
59
|
+
rest: [],
|
|
60
|
+
};
|
|
57
61
|
for (const line of lines) {
|
|
58
62
|
if (SECTION_MARKERS.newTests.test(line)) {
|
|
59
63
|
currentSection = "newTests";
|
|
@@ -155,10 +159,11 @@ function extractTestResultsSection(fullBody) {
|
|
|
155
159
|
inTestResults = true;
|
|
156
160
|
continue;
|
|
157
161
|
}
|
|
158
|
-
if (inTestResults &&
|
|
159
|
-
SECTION_MARKERS.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
+
if (inTestResults &&
|
|
163
|
+
(SECTION_MARKERS.testMaintenance.test(line) ||
|
|
164
|
+
SECTION_MARKERS.newTests.test(line) ||
|
|
165
|
+
SECTION_MARKERS.additionalRecs.test(line) ||
|
|
166
|
+
SECTION_MARKERS.issuesFound.test(line))) {
|
|
162
167
|
break;
|
|
163
168
|
}
|
|
164
169
|
if (inTestResults) {
|
|
@@ -176,7 +181,11 @@ function extractExecutionResults(body) {
|
|
|
176
181
|
const file = fileMatches[i][0];
|
|
177
182
|
const nearbyStatus = closestMatch(statusMatches, fileMatches[i].index, 150);
|
|
178
183
|
const statusStr = nearbyStatus?.[1].toLowerCase();
|
|
179
|
-
const status = statusStr === "pass"
|
|
184
|
+
const status = statusStr === "pass"
|
|
185
|
+
? "pass"
|
|
186
|
+
: statusStr === "skipped"
|
|
187
|
+
? "skipped"
|
|
188
|
+
: "fail";
|
|
180
189
|
results.push({
|
|
181
190
|
testFile: file,
|
|
182
191
|
status,
|
|
@@ -205,7 +214,11 @@ export async function parsePRComments(repoOwner, repoName, prNumber, _token) {
|
|
|
205
214
|
};
|
|
206
215
|
let rawComments;
|
|
207
216
|
try {
|
|
208
|
-
rawComments = execFileSync("gh", [
|
|
217
|
+
rawComments = execFileSync("gh", [
|
|
218
|
+
"api",
|
|
219
|
+
`repos/${repoOwner}/${repoName}/issues/${prNumber}/comments`,
|
|
220
|
+
"--paginate",
|
|
221
|
+
], {
|
|
209
222
|
encoding: "utf-8",
|
|
210
223
|
timeout: 15_000,
|
|
211
224
|
stdio: ["pipe", "pipe", "pipe"],
|
|
@@ -11,6 +11,6 @@ export type ProgressReporter = (progress: number, total: number, message: string
|
|
|
11
11
|
* otherwise silently no-ops.
|
|
12
12
|
*
|
|
13
13
|
* Consolidates the identical closure that previously lived inline in multiple
|
|
14
|
-
* progress-emitting tools (analyzeChanges,
|
|
14
|
+
* progress-emitting tools (analyzeChanges, startTraceCollection).
|
|
15
15
|
*/
|
|
16
16
|
export declare function makeProgressReporter(extra: RequestHandlerExtra<ServerRequest, ServerNotification>): ProgressReporter;
|
package/build/utils/progress.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* otherwise silently no-ops.
|
|
5
5
|
*
|
|
6
6
|
* Consolidates the identical closure that previously lived inline in multiple
|
|
7
|
-
* progress-emitting tools (analyzeChanges,
|
|
7
|
+
* progress-emitting tools (analyzeChanges, startTraceCollection).
|
|
8
8
|
*/
|
|
9
9
|
export function makeProgressReporter(extra) {
|
|
10
10
|
return async (progress, total, message) => {
|
|
@@ -1,2 +1,20 @@
|
|
|
1
|
+
export declare function makeWindowsTerminalTitle(now?: Date): string;
|
|
2
|
+
export declare function buildWindowsTerminalArgs(title: string): string[];
|
|
1
3
|
export default function openProxyTerminal(): Promise<void>;
|
|
2
|
-
export
|
|
4
|
+
export type TerminalCloseResult = {
|
|
5
|
+
closed: boolean;
|
|
6
|
+
title?: string;
|
|
7
|
+
reason?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Windows still on screen that this process opened and could not close.
|
|
10
|
+
* Empty when there is nothing for the user to do; non-empty means say so.
|
|
11
|
+
*/
|
|
12
|
+
orphanedTitles?: string[];
|
|
13
|
+
};
|
|
14
|
+
export type TerminalCloseOptions = {
|
|
15
|
+
/** How long to keep retrying taskkill before giving up. */
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
/** Gap between taskkill attempts. */
|
|
18
|
+
pollMs?: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function closeProxyTerminal(opts?: TerminalCloseOptions): Promise<TerminalCloseResult>;
|