@skyramp/mcp 0.4.1 → 0.4.2-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/adapters/jestAdapter.js +23 -5
- package/build/adapters/mochaAdapter.js +7 -1
- package/build/adapters/playwrightAdapter.js +3 -1
- package/build/adapters/pytestAdapter.js +14 -3
- package/build/commands/localDevTestChangesCommand.js +1 -0
- package/build/commands/recommendTestsAndExecuteCommand.js +5 -6
- package/build/commands/testThisEndpointCommand.js +16 -4
- package/build/index.js +34 -4
- package/build/playwright/blueprintDigest.js +28 -7
- package/build/playwright/registerPlaywrightTools.js +33 -28
- package/build/playwright/traceRecordingPrompt.js +9 -2
- package/build/prompts/code-reuse.js +95 -29
- 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 +3 -1
- package/build/prompts/local-dev/local-dev-prompts.d.ts +1 -1
- package/build/prompts/local-dev/local-dev-prompts.js +30 -3
- 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 +88 -2
- package/build/prompts/shared-helper-policy.js +145 -11
- package/build/prompts/sut-setup/modes/adaptWorkflowPrompt.js +1 -1
- 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 +2 -2
- 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.js +3 -2
- 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 +7 -4
- package/build/prompts/test-recommendation/recommendationSections.js +19 -8
- 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 +123 -55
- 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 +21 -5
- 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/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 -0
- package/build/tools/auth/loginTool.js +3 -1
- package/build/tools/auth/logoutTool.js +3 -1
- 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 +252 -27
- 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 +22 -1
- package/build/tools/executeSkyrampTestTool.js +571 -271
- 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/runExistingTestsTool.d.ts +1 -1
- package/build/tools/runExistingTestsTool.js +43 -21
- package/build/tools/submitReportTool.d.ts +51 -12
- package/build/tools/submitReportTool.js +860 -161
- package/build/tools/test-management/actionsTool.js +210 -51
- package/build/tools/test-management/analyzeChangesTool.d.ts +4 -5
- package/build/tools/test-management/analyzeChangesTool.js +127 -68
- package/build/tools/test-management/analyzeTestHealthTool.js +35 -13
- 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/trace/startTraceCollectionTool.js +3 -1
- package/build/tools/trace/stopTraceCollectionTool.js +41 -5
- 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/ExternalTestExecution.d.ts +2 -2
- package/build/types/RepositoryAnalysis.d.ts +0 -40
- package/build/types/ReuseOutcome.d.ts +96 -4
- 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 +13 -0
- package/build/types/TestTypes.js +34 -3
- package/build/types/TestbotPromptOptions.d.ts +9 -1
- package/build/types/TestbotReport.d.ts +45 -9
- package/build/utils/AnalysisStateManager.d.ts +137 -27
- package/build/utils/AnalysisStateManager.js +227 -43
- 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/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 +39 -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/proxy-terminal.d.ts +19 -1
- package/build/utils/proxy-terminal.js +346 -21
- 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.js +6 -2
- 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/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 +788 -0
- package/build/utils/testExecutionRecord.d.ts +90 -0
- package/build/utils/testExecutionRecord.js +267 -0
- package/build/utils/testFileClassification.js +3 -1
- package/build/utils/trace-parser.js +62 -14
- package/build/utils/urlPath.js +3 -1
- package/build/utils/utils-verify/action-key.d.ts +4 -0
- package/build/utils/utils-verify/action-key.js +2 -2
- 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 +335 -0
- package/build/utils/utils-verify/call-sites.d.ts +6 -1
- package/build/utils/utils-verify/call-sites.js +72 -8
- 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 +1 -0
- package/build/utils/utils-verify/index.js +1 -0
- package/build/utils/utils-verify/language-spec.d.ts +26 -10
- package/build/utils/utils-verify/language-spec.js +217 -20
- 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 +46 -6
- package/build/utils/utils-verify/parse.js +176 -38
- 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 +76 -1
- package/build/utils/utils-verify/verify.js +516 -44
- 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.js +7 -7
- 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 +4 -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 +44 -50
- 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/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/node_modules/playwright/node_modules/playwright-core/.DS_Store +0 -0
|
@@ -136,6 +136,144 @@ test('stringify()', function (t) {
|
|
|
136
136
|
st.end();
|
|
137
137
|
});
|
|
138
138
|
|
|
139
|
+
t.test('encodes dot in key of object with a primitive value when encodeDotInKeys and allowDots is provided', function (st) {
|
|
140
|
+
st.equal(
|
|
141
|
+
qs.stringify(
|
|
142
|
+
{ 'name.obj': 'John' },
|
|
143
|
+
{ allowDots: true, encodeDotInKeys: true }
|
|
144
|
+
),
|
|
145
|
+
'name%252Eobj=John',
|
|
146
|
+
'with allowDots true and encodeDotInKeys true'
|
|
147
|
+
);
|
|
148
|
+
st.equal(
|
|
149
|
+
qs.stringify(
|
|
150
|
+
{ 'name.obj': 'John' },
|
|
151
|
+
{ allowDots: false, encodeDotInKeys: true }
|
|
152
|
+
),
|
|
153
|
+
'name%252Eobj=John',
|
|
154
|
+
'with allowDots false and encodeDotInKeys true'
|
|
155
|
+
);
|
|
156
|
+
st.equal(
|
|
157
|
+
qs.stringify(
|
|
158
|
+
{ 'name.obj': 'John' },
|
|
159
|
+
{ encodeDotInKeys: true, allowDots: true, encodeValuesOnly: true }
|
|
160
|
+
),
|
|
161
|
+
'name%2Eobj=John',
|
|
162
|
+
'with encodeValuesOnly true'
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
// With `encodeValuesOnly` the key encoder is skipped, so the dot is encoded once
|
|
166
|
+
// (`%2E`) rather than twice. That single `%2E` decodes back to a structural dot, so
|
|
167
|
+
// unlike the default output below this does not round-trip to the original dotted key
|
|
168
|
+
// (a pre-existing `encodeValuesOnly` + `encodeDotInKeys` limitation, not new here).
|
|
169
|
+
st.deepEqual(
|
|
170
|
+
qs.parse(
|
|
171
|
+
qs.stringify(
|
|
172
|
+
{ 'name.obj': 'John' },
|
|
173
|
+
{ encodeDotInKeys: true, allowDots: true, encodeValuesOnly: true }
|
|
174
|
+
),
|
|
175
|
+
{ allowDots: true, decodeDotInKeys: true }
|
|
176
|
+
),
|
|
177
|
+
{ name: { obj: 'John' } },
|
|
178
|
+
'with encodeValuesOnly the single-encoded dot decodes structurally (does not round-trip)'
|
|
179
|
+
);
|
|
180
|
+
|
|
181
|
+
st.deepEqual(
|
|
182
|
+
qs.parse(
|
|
183
|
+
qs.stringify({ 'name.obj': 'John' }, { allowDots: true, encodeDotInKeys: true }),
|
|
184
|
+
{ allowDots: true, decodeDotInKeys: true }
|
|
185
|
+
),
|
|
186
|
+
{ 'name.obj': 'John' },
|
|
187
|
+
'round-trips a dotted key with a primitive value'
|
|
188
|
+
);
|
|
189
|
+
|
|
190
|
+
st.equal(
|
|
191
|
+
qs.stringify({ 'a.b': null }, { allowDots: true, encodeDotInKeys: true, strictNullHandling: true }),
|
|
192
|
+
'a%252Eb',
|
|
193
|
+
'encodes a dotted key with a null value'
|
|
194
|
+
);
|
|
195
|
+
st.equal(
|
|
196
|
+
qs.stringify({ 'a.b': '1', 'c.d': '2' }, { allowDots: true, encodeDotInKeys: true }),
|
|
197
|
+
'a%252Eb=1&c%252Ed=2',
|
|
198
|
+
'encodes dots in every top-level key, not just the first'
|
|
199
|
+
);
|
|
200
|
+
st.equal(
|
|
201
|
+
qs.stringify({ 'a.b.c': 'x' }, { allowDots: true, encodeDotInKeys: true }),
|
|
202
|
+
'a%252Eb%252Ec=x',
|
|
203
|
+
'encodes every dot in a key'
|
|
204
|
+
);
|
|
205
|
+
var primitiveKey = qs.stringify({ 'a.b': 'c' }, { allowDots: true, encodeDotInKeys: true }).split('=')[0];
|
|
206
|
+
st.equal(
|
|
207
|
+
qs.stringify({ 'a.b': { x: 'c' } }, { allowDots: true, encodeDotInKeys: true }).indexOf(primitiveKey + '.'),
|
|
208
|
+
0,
|
|
209
|
+
'a top-level dotted key encodes identically for primitive and object values'
|
|
210
|
+
);
|
|
211
|
+
|
|
212
|
+
st.end();
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
// Characterization of the CURRENT (buggy) behavior: with `allowDots` + `encodeDotInKeys`,
|
|
216
|
+
// `stringify` percent-encodes the structural `.` separators that `allowDots` inserts between
|
|
217
|
+
// nested keys, not just the literal dots inside a key, which breaks the stringify -> parse
|
|
218
|
+
// round-trip. These assertions pin that behavior so it cannot change silently: the fix in
|
|
219
|
+
// https://github.com/ljharb/qs/pull/564 changes every output below, so landing that fix MUST
|
|
220
|
+
// update this test (that is the point — it forces the behavior change to be explicit).
|
|
221
|
+
t.test('[characterization] encodeDotInKeys currently over-encodes structural separator dots (pre-#564)', function (st) {
|
|
222
|
+
st.equal(
|
|
223
|
+
qs.stringify({ a: { b: { c: 'd' } } }, { allowDots: true, encodeDotInKeys: true }),
|
|
224
|
+
'a%252Eb.c=d',
|
|
225
|
+
'over-encodes the a->b separator (#564: should become a.b.c=d)'
|
|
226
|
+
);
|
|
227
|
+
st.equal(
|
|
228
|
+
qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true, encodeDotInKeys: true }),
|
|
229
|
+
'a%252Eb%252Ec.d=e',
|
|
230
|
+
'clobbers every separator but the last (#564: should become a.b.c.d=e)'
|
|
231
|
+
);
|
|
232
|
+
st.equal(
|
|
233
|
+
qs.stringify({ 'a.b': { c: { d: 'e' } } }, { allowDots: true, encodeDotInKeys: true }),
|
|
234
|
+
'a%252Eb%252Ec.d=e',
|
|
235
|
+
'top-level dotted key: deeper separators also get encoded (#564: should become a%252Eb.c.d=e)'
|
|
236
|
+
);
|
|
237
|
+
st.equal(
|
|
238
|
+
qs.stringify({ a: { 'b.c': { d: 'e' } } }, { allowDots: true, encodeDotInKeys: true }),
|
|
239
|
+
'a%252Eb%252Ec.d=e',
|
|
240
|
+
'nested dotted key + object value: the separator around it is encoded (#564: should become a.b%252Ec.d=e)'
|
|
241
|
+
);
|
|
242
|
+
st.equal(
|
|
243
|
+
qs.stringify({ a: { b: { 'c.d': { e: 'f' } } } }, { allowDots: true, encodeDotInKeys: true }),
|
|
244
|
+
'a%252Eb%252Ec%252Ed.e=f',
|
|
245
|
+
'deeply nested dotted key: all separators encoded (#564: should become a.b.c%252Ed.e=f)'
|
|
246
|
+
);
|
|
247
|
+
|
|
248
|
+
st.equal(
|
|
249
|
+
qs.stringify({ a: { b: [1, 2] } }, { allowDots: true, encodeDotInKeys: true }),
|
|
250
|
+
'a%252Eb%5B0%5D=1&a%252Eb%5B1%5D=2',
|
|
251
|
+
'array value under nested keys: separator encoded (#564: should become a.b%5B0%5D=1&a.b%5B1%5D=2)'
|
|
252
|
+
);
|
|
253
|
+
st.equal(
|
|
254
|
+
qs.stringify({ a: { 'b.c': [1, 2] } }, { allowDots: true, encodeDotInKeys: true }),
|
|
255
|
+
'a%252Eb%252Ec%5B0%5D=1&a%252Eb%252Ec%5B1%5D=2',
|
|
256
|
+
'array value under nested dotted key (#564: should become a.b%252Ec%5B0%5D=1&a.b%252Ec%5B1%5D=2)'
|
|
257
|
+
);
|
|
258
|
+
|
|
259
|
+
st.equal(
|
|
260
|
+
qs.stringify({ a: { 'b.c': { d: 'e' } } }, { allowDots: false, encodeDotInKeys: true }),
|
|
261
|
+
'a%5Bb%252Ec%5D%5Bd%5D=e',
|
|
262
|
+
'allowDots:false object value encodes the nested-key dot, unlike the primitive-value case (#564: should become a%5Bb.c%5D%5Bd%5D=e)'
|
|
263
|
+
);
|
|
264
|
+
|
|
265
|
+
st.deepEqual(
|
|
266
|
+
qs.parse(
|
|
267
|
+
qs.stringify({ a: { b: { c: 'd' } } }, { allowDots: true, encodeDotInKeys: true }),
|
|
268
|
+
{ allowDots: true, decodeDotInKeys: true }
|
|
269
|
+
),
|
|
270
|
+
{ 'a.b': { c: 'd' } },
|
|
271
|
+
'the over-encoding breaks the round-trip: {a:{b:{c}}} comes back as {"a.b":{c}} (#564 restores it)'
|
|
272
|
+
);
|
|
273
|
+
|
|
274
|
+
st.end();
|
|
275
|
+
});
|
|
276
|
+
|
|
139
277
|
t.test('should encode dot in key of object, and automatically set allowDots to `true` when encodeDotInKeys is true and allowDots in undefined', function (st) {
|
|
140
278
|
st.equal(
|
|
141
279
|
qs.stringify(
|
|
@@ -328,6 +466,39 @@ test('stringify()', function (t) {
|
|
|
328
466
|
st.end();
|
|
329
467
|
});
|
|
330
468
|
|
|
469
|
+
t.test('allowEmptyArrays only short-circuits arrays with no own keys', function (st) {
|
|
470
|
+
st.equal(
|
|
471
|
+
qs.stringify({ a: [] }, { allowEmptyArrays: true }),
|
|
472
|
+
'a[]',
|
|
473
|
+
'a genuinely empty array is still emitted as `[]`'
|
|
474
|
+
);
|
|
475
|
+
|
|
476
|
+
var withKey = [];
|
|
477
|
+
withKey.extra = 'x';
|
|
478
|
+
st.equal(
|
|
479
|
+
qs.stringify({ a: withKey }, { allowEmptyArrays: true }),
|
|
480
|
+
'a%5Bextra%5D=x',
|
|
481
|
+
'an own key on an empty array is serialized rather than dropped'
|
|
482
|
+
);
|
|
483
|
+
st.equal(
|
|
484
|
+
qs.stringify({ a: withKey }, { allowEmptyArrays: true }),
|
|
485
|
+
qs.stringify({ a: withKey }),
|
|
486
|
+
'the allowEmptyArrays fast path matches the default path when the array has own keys'
|
|
487
|
+
);
|
|
488
|
+
|
|
489
|
+
var container = {};
|
|
490
|
+
var cyclic = [];
|
|
491
|
+
cyclic.back = container;
|
|
492
|
+
container.a = cyclic;
|
|
493
|
+
st['throws'](
|
|
494
|
+
function () { qs.stringify(container, { allowEmptyArrays: true }); },
|
|
495
|
+
RangeError,
|
|
496
|
+
'a cycle through an empty array with an own key is still detected'
|
|
497
|
+
);
|
|
498
|
+
|
|
499
|
+
st.end();
|
|
500
|
+
});
|
|
501
|
+
|
|
331
502
|
t.test('stringifies an array value with one item vs multiple items', function (st) {
|
|
332
503
|
st.test('non-array item', function (s2t) {
|
|
333
504
|
s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a=c');
|
|
@@ -761,6 +932,33 @@ test('stringify()', function (t) {
|
|
|
761
932
|
st.end();
|
|
762
933
|
});
|
|
763
934
|
|
|
935
|
+
t.test('does not throw on a non-callable `constructor.isBuffer` key', function (st) {
|
|
936
|
+
var input = { a: { constructor: { isBuffer: 'x' } } };
|
|
937
|
+
st.doesNotThrow(function () { qs.stringify(input); });
|
|
938
|
+
st.equal(qs.stringify(input), 'a%5Bconstructor%5D%5BisBuffer%5D=x');
|
|
939
|
+
st.equal(qs.stringify({ a: { constructor: { isBuffer: { b: 'c' } } } }), 'a%5Bconstructor%5D%5BisBuffer%5D%5Bb%5D=c');
|
|
940
|
+
st.equal(qs.stringify({ a: { constructor: { isBuffer: ['b'] } } }), 'a%5Bconstructor%5D%5BisBuffer%5D%5B0%5D=b');
|
|
941
|
+
st.equal(qs.stringify({ a: { constructor: { isBuffer: true } } }), 'a%5Bconstructor%5D%5BisBuffer%5D=true');
|
|
942
|
+
st.end();
|
|
943
|
+
});
|
|
944
|
+
|
|
945
|
+
t.test('round-trips a parsed `constructor[isBuffer]` key', function (st) {
|
|
946
|
+
var str = 'x%5Bconstructor%5D%5BisBuffer%5D=y';
|
|
947
|
+
|
|
948
|
+
var plain = qs.parse(str, { plainObjects: true });
|
|
949
|
+
st.deepEqual(plain, { __proto__: null, x: { __proto__: null, constructor: { __proto__: null, isBuffer: 'y' } } }, 'plainObjects keeps the key');
|
|
950
|
+
st.doesNotThrow(function () { qs.stringify(plain); });
|
|
951
|
+
st.equal(qs.stringify(plain), str, 'plainObjects round-trips');
|
|
952
|
+
|
|
953
|
+
var proto = qs.parse(str, { allowPrototypes: true });
|
|
954
|
+
st.deepEqual(proto, { x: { constructor: { isBuffer: 'y' } } }, 'allowPrototypes keeps the key');
|
|
955
|
+
st.doesNotThrow(function () { qs.stringify(proto); });
|
|
956
|
+
st.equal(qs.stringify(proto), str, 'allowPrototypes round-trips');
|
|
957
|
+
|
|
958
|
+
st.equal(qs.stringify(qs.parse(str)), '', 'default options drop the key');
|
|
959
|
+
st.end();
|
|
960
|
+
});
|
|
961
|
+
|
|
764
962
|
t.test('stringifies an object using an alternative delimiter', function (st) {
|
|
765
963
|
st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');
|
|
766
964
|
st.end();
|
|
@@ -919,6 +1117,66 @@ test('stringify()', function (t) {
|
|
|
919
1117
|
st.end();
|
|
920
1118
|
});
|
|
921
1119
|
|
|
1120
|
+
t.test('serializes Date values unless filter transforms them', function (st) {
|
|
1121
|
+
var obj = {
|
|
1122
|
+
a: new Date(Date.UTC(2023, 2, 7, 9, 2, 41, 260)),
|
|
1123
|
+
b: [new Date(Date.UTC(2023, 2, 7, 9, 2, 41, 260))]
|
|
1124
|
+
};
|
|
1125
|
+
var iso = '2023-03-07T09%3A02%3A41.260Z';
|
|
1126
|
+
st.equal(
|
|
1127
|
+
qs.stringify(obj, { filter: function (prefix, value) { return value; } }),
|
|
1128
|
+
'a=' + iso + '&b%5B0%5D=' + iso,
|
|
1129
|
+
'Dates returned unchanged by a filter are serialized'
|
|
1130
|
+
);
|
|
1131
|
+
st.equal(
|
|
1132
|
+
qs.stringify({ a: new Date(0) }, { filter: function (prefix, value) { return value instanceof Date ? 'kept' : value; } }),
|
|
1133
|
+
'a=kept',
|
|
1134
|
+
'a filter that transforms a Date wins over default serialization'
|
|
1135
|
+
);
|
|
1136
|
+
st.end();
|
|
1137
|
+
});
|
|
1138
|
+
|
|
1139
|
+
t.test('applies default Date handling to whatever a filter function returns', function (st) {
|
|
1140
|
+
var date = new Date(Date.UTC(2023, 2, 7, 9, 2, 41, 260));
|
|
1141
|
+
var iso = '2023-03-07T09%3A02%3A41.260Z';
|
|
1142
|
+
var identity = function (prefix, value) { return value; };
|
|
1143
|
+
|
|
1144
|
+
st.equal(
|
|
1145
|
+
qs.stringify({ a: { b: date } }, { filter: identity }),
|
|
1146
|
+
'a%5Bb%5D=' + iso,
|
|
1147
|
+
'a nested Date is serialized through a filter'
|
|
1148
|
+
);
|
|
1149
|
+
st.equal(
|
|
1150
|
+
qs.stringify(
|
|
1151
|
+
{ a: date },
|
|
1152
|
+
{ filter: identity, serializeDate: function (d) { return String(d.getTime()); } }
|
|
1153
|
+
),
|
|
1154
|
+
'a=1678179761260',
|
|
1155
|
+
'`serializeDate` is honored after a filter'
|
|
1156
|
+
);
|
|
1157
|
+
st.equal(
|
|
1158
|
+
qs.stringify({ a: [date, 'x'] }, { filter: identity, arrayFormat: 'comma' }),
|
|
1159
|
+
'a=' + iso + '%2Cx',
|
|
1160
|
+
'Dates inside a comma array are serialized through a filter, not stringified as locale text'
|
|
1161
|
+
);
|
|
1162
|
+
st.equal(
|
|
1163
|
+
qs.stringify({ a: 'x' }, { filter: function (prefix, value) { return prefix === 'a' ? date : value; } }),
|
|
1164
|
+
'a=' + iso,
|
|
1165
|
+
'a Date produced by the filter is serialized'
|
|
1166
|
+
);
|
|
1167
|
+
st.equal(
|
|
1168
|
+
qs.stringify({ a: date, b: 1 }, { filter: ['a'] }),
|
|
1169
|
+
'a=' + iso,
|
|
1170
|
+
'an array filter still serializes Dates'
|
|
1171
|
+
);
|
|
1172
|
+
st['throws'](
|
|
1173
|
+
function () { qs.stringify({ a: new Date(NaN) }, { filter: identity }); },
|
|
1174
|
+
RangeError,
|
|
1175
|
+
'an invalid Date through a filter throws like the no-filter path'
|
|
1176
|
+
);
|
|
1177
|
+
st.end();
|
|
1178
|
+
});
|
|
1179
|
+
|
|
922
1180
|
t.test('can disable uri encoding', function (st) {
|
|
923
1181
|
st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b');
|
|
924
1182
|
st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c');
|
|
@@ -1445,4 +1703,63 @@ test('stringifies empty keys', function (t) {
|
|
|
1445
1703
|
|
|
1446
1704
|
st.end();
|
|
1447
1705
|
});
|
|
1706
|
+
|
|
1707
|
+
t.test('limits nesting depth with the `depth` option', function (st) {
|
|
1708
|
+
st.equal(
|
|
1709
|
+
qs.stringify({ a: { b: { c: 'd' } } }),
|
|
1710
|
+
'a%5Bb%5D%5Bc%5D=d',
|
|
1711
|
+
'the default depth is unlimited and does not alter output'
|
|
1712
|
+
);
|
|
1713
|
+
st.equal(
|
|
1714
|
+
qs.stringify({ a: { b: { c: 'd' } } }, { depth: 2 }),
|
|
1715
|
+
'a%5Bb%5D%5Bc%5D=d',
|
|
1716
|
+
'does not throw when nesting is within the depth limit'
|
|
1717
|
+
);
|
|
1718
|
+
st.equal(
|
|
1719
|
+
qs.stringify({ a: { b: 'c' } }, { depth: Infinity }),
|
|
1720
|
+
'a%5Bb%5D=c',
|
|
1721
|
+
'an explicit Infinity depth is unlimited'
|
|
1722
|
+
);
|
|
1723
|
+
st.equal(
|
|
1724
|
+
qs.stringify({ a: { b: { c: { d: 'e' } } } }, { depth: null }),
|
|
1725
|
+
qs.stringify({ a: { b: { c: { d: 'e' } } } }),
|
|
1726
|
+
'a non-number depth is ignored and treated as unlimited'
|
|
1727
|
+
);
|
|
1728
|
+
st.equal(
|
|
1729
|
+
qs.stringify({ a: 'b' }, { depth: 0 }),
|
|
1730
|
+
'a=b',
|
|
1731
|
+
'a flat object serializes with a depth of 0'
|
|
1732
|
+
);
|
|
1733
|
+
|
|
1734
|
+
var deep = {};
|
|
1735
|
+
var cursor = deep;
|
|
1736
|
+
for (var i = 0; i < 250; i++) {
|
|
1737
|
+
cursor.a = {};
|
|
1738
|
+
cursor = cursor.a;
|
|
1739
|
+
}
|
|
1740
|
+
cursor.b = 'c';
|
|
1741
|
+
st.equal(typeof qs.stringify(deep), 'string', 'the default depth serializes deeply nested objects without throwing');
|
|
1742
|
+
|
|
1743
|
+
st['throws'](
|
|
1744
|
+
function () { qs.stringify({ a: { b: { c: { d: 'e' } } } }, { depth: 2 }); },
|
|
1745
|
+
RangeError,
|
|
1746
|
+
'throws a RangeError when nesting exceeds the depth limit'
|
|
1747
|
+
);
|
|
1748
|
+
st['throws'](
|
|
1749
|
+
function () { qs.stringify({ a: { b: 'c' } }, { depth: 0 }); },
|
|
1750
|
+
RangeError,
|
|
1751
|
+
'a depth of 0 throws for any nested object'
|
|
1752
|
+
);
|
|
1753
|
+
|
|
1754
|
+
var caught;
|
|
1755
|
+
try {
|
|
1756
|
+
qs.stringify({ a: { b: { c: { d: 'e' } } } }, { depth: 2 });
|
|
1757
|
+
} catch (e) {
|
|
1758
|
+
caught = e;
|
|
1759
|
+
}
|
|
1760
|
+
st.ok(caught instanceof RangeError, 'the thrown value is a RangeError');
|
|
1761
|
+
st.equal(caught.message, 'Input depth exceeded depth option of 2', 'the RangeError names the exceeded depth');
|
|
1762
|
+
|
|
1763
|
+
st.end();
|
|
1764
|
+
});
|
|
1448
1765
|
});
|
|
@@ -65,6 +65,7 @@ test('merge()', function (t) {
|
|
|
65
65
|
observed[0] = observed[0]; // eslint-disable-line no-self-assign
|
|
66
66
|
st.equal(setCount, 1);
|
|
67
67
|
st.equal(getCount, 2);
|
|
68
|
+
|
|
68
69
|
st.end();
|
|
69
70
|
}
|
|
70
71
|
);
|
|
@@ -78,6 +79,7 @@ test('merge()', function (t) {
|
|
|
78
79
|
s2t.ok(utils.isOverflow(overflow), 'overflow object is marked');
|
|
79
80
|
var merged = utils.merge(overflow, 'd');
|
|
80
81
|
s2t.deepEqual(merged, { 0: 'a', 1: 'b', 2: 'c', 3: 'd' }, 'adds primitive at next numeric index');
|
|
82
|
+
|
|
81
83
|
s2t.end();
|
|
82
84
|
});
|
|
83
85
|
|
|
@@ -93,6 +95,7 @@ test('merge()', function (t) {
|
|
|
93
95
|
var obj = { foo: 'bar' };
|
|
94
96
|
var merged = utils.merge(obj, 'baz');
|
|
95
97
|
s2t.deepEqual(merged, { foo: 'bar', baz: true }, 'adds primitive as key with value true');
|
|
98
|
+
|
|
96
99
|
s2t.end();
|
|
97
100
|
});
|
|
98
101
|
|
|
@@ -110,6 +113,7 @@ test('merge()', function (t) {
|
|
|
110
113
|
var merged = utils.merge('c', overflow);
|
|
111
114
|
s2t.ok(utils.isOverflow(merged), 'result is also marked as overflow');
|
|
112
115
|
s2t.deepEqual(merged, { 0: 'c', 1: 'a', 2: 'b' }, 'creates object with primitive at 0, source values shifted');
|
|
116
|
+
|
|
113
117
|
s2t.end();
|
|
114
118
|
});
|
|
115
119
|
|
|
@@ -119,6 +123,7 @@ test('merge()', function (t) {
|
|
|
119
123
|
var merged = utils.merge('c', overflow, { plainObjects: true });
|
|
120
124
|
s2t.ok(utils.isOverflow(merged), 'result is also marked as overflow');
|
|
121
125
|
s2t.deepEqual(merged, { __proto__: null, 0: 'c', 1: 'a', 2: 'b' }, 'creates null-proto object with primitive at 0');
|
|
126
|
+
|
|
122
127
|
s2t.end();
|
|
123
128
|
});
|
|
124
129
|
|
|
@@ -128,6 +133,7 @@ test('merge()', function (t) {
|
|
|
128
133
|
s2t.ok(utils.isOverflow(overflow), 'overflow object is marked');
|
|
129
134
|
var merged = utils.merge('a', overflow);
|
|
130
135
|
s2t.deepEqual(merged, { 0: 'a', 1: 'b', 2: 'c', 3: 'd' }, 'shifts all source indices by 1');
|
|
136
|
+
|
|
131
137
|
s2t.end();
|
|
132
138
|
});
|
|
133
139
|
|
|
@@ -135,6 +141,7 @@ test('merge()', function (t) {
|
|
|
135
141
|
var obj = { foo: 'bar' };
|
|
136
142
|
var merged = utils.merge('a', obj);
|
|
137
143
|
s2t.deepEqual(merged, ['a', { foo: 'bar' }], 'creates array with primitive and object');
|
|
144
|
+
|
|
138
145
|
s2t.end();
|
|
139
146
|
});
|
|
140
147
|
|
|
@@ -143,6 +150,7 @@ test('merge()', function (t) {
|
|
|
143
150
|
var merged = utils.merge(arr, 'd', { arrayLimit: 1 });
|
|
144
151
|
s2t.ok(utils.isOverflow(merged), 'result is marked as overflow');
|
|
145
152
|
s2t.deepEqual(merged, { 0: 'a', 1: 'b', 2: 'c', 3: 'd' }, 'converts to overflow object with primitive appended');
|
|
153
|
+
|
|
146
154
|
s2t.end();
|
|
147
155
|
});
|
|
148
156
|
|
|
@@ -150,6 +158,78 @@ test('merge()', function (t) {
|
|
|
150
158
|
var merged = utils.merge('a', ['b', 'c'], { arrayLimit: 1 });
|
|
151
159
|
s2t.ok(utils.isOverflow(merged), 'result is marked as overflow');
|
|
152
160
|
s2t.deepEqual(merged, { 0: 'a', 1: 'b', 2: 'c' }, 'converts to overflow object');
|
|
161
|
+
|
|
162
|
+
s2t.end();
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
st.test('merges primitive into array at the arrayLimit boundary, consistently with combine', function (s2t) {
|
|
166
|
+
var merged = utils.merge(['a'], 'b', { arrayLimit: 1 });
|
|
167
|
+
s2t.ok(utils.isOverflow(merged), 'result is marked as overflow at the boundary');
|
|
168
|
+
s2t.deepEqual(merged, { 0: 'a', 1: 'b' }, 'converts to overflow object instead of a length-2 array');
|
|
169
|
+
|
|
170
|
+
s2t.end();
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
st.test('merges two arrays that exceed arrayLimit into an overflow object', function (s2t) {
|
|
174
|
+
var merged = utils.merge(['a'], ['b'], { arrayLimit: 1 });
|
|
175
|
+
s2t.ok(utils.isOverflow(merged), 'result is marked as overflow');
|
|
176
|
+
s2t.deepEqual(merged, { 0: 'a', 1: 'b' }, 'array-into-array merge enforces arrayLimit like combine');
|
|
177
|
+
|
|
178
|
+
s2t.end();
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
st.test('throws at the arrayLimit boundary when merging a primitive into an array with throwOnLimitExceeded', function (s2t) {
|
|
182
|
+
s2t['throws'](
|
|
183
|
+
function () { utils.merge(['a'], 'b', { arrayLimit: 1, throwOnLimitExceeded: true }); },
|
|
184
|
+
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
185
|
+
'throws when the resulting length would exceed arrayLimit'
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
s2t.end();
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
st.test('throws when merging two arrays past arrayLimit with throwOnLimitExceeded', function (s2t) {
|
|
192
|
+
s2t['throws'](
|
|
193
|
+
function () { utils.merge(['a'], ['b'], { arrayLimit: 1, throwOnLimitExceeded: true }); },
|
|
194
|
+
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
195
|
+
'array-into-array merge throws rather than silently exceeding arrayLimit'
|
|
196
|
+
);
|
|
197
|
+
s2t['throws'](
|
|
198
|
+
function () { utils.merge(['a', 'b', 'c'], ['d', 'e', 'f'], { arrayLimit: 2, throwOnLimitExceeded: true }); },
|
|
199
|
+
new RangeError('Array limit exceeded. Only 2 elements allowed in an array.'),
|
|
200
|
+
'uses the plural message when arrayLimit is not 1'
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
s2t.end();
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
st.test('throws instead of merging primitive into over-limit array when throwOnLimitExceeded is set', function (s2t) {
|
|
207
|
+
s2t['throws'](
|
|
208
|
+
function () { utils.merge(['a', 'b', 'c'], 'd', { arrayLimit: 1, throwOnLimitExceeded: true }); },
|
|
209
|
+
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
210
|
+
'throws rather than converting to an overflow object'
|
|
211
|
+
);
|
|
212
|
+
s2t['throws'](
|
|
213
|
+
function () { utils.merge(['a', 'b', 'c'], 'd', { arrayLimit: 2, throwOnLimitExceeded: true }); },
|
|
214
|
+
new RangeError('Array limit exceeded. Only 2 elements allowed in an array.'),
|
|
215
|
+
'uses the plural message when arrayLimit is not 1'
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
s2t.end();
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
st.test('throws instead of merging array into primitive when throwOnLimitExceeded is set', function (s2t) {
|
|
222
|
+
s2t['throws'](
|
|
223
|
+
function () { utils.merge('a', ['b', 'c'], { arrayLimit: 1, throwOnLimitExceeded: true }); },
|
|
224
|
+
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
225
|
+
'throws rather than converting to an overflow object'
|
|
226
|
+
);
|
|
227
|
+
s2t['throws'](
|
|
228
|
+
function () { utils.merge('a', ['b', 'c', 'd'], { arrayLimit: 2, throwOnLimitExceeded: true }); },
|
|
229
|
+
new RangeError('Array limit exceeded. Only 2 elements allowed in an array.'),
|
|
230
|
+
'uses the plural message when arrayLimit is not 1'
|
|
231
|
+
);
|
|
232
|
+
|
|
153
233
|
s2t.end();
|
|
154
234
|
});
|
|
155
235
|
|
|
@@ -274,6 +354,47 @@ test('combine()', function (t) {
|
|
|
274
354
|
st.end();
|
|
275
355
|
});
|
|
276
356
|
|
|
357
|
+
t.test('with throwOnLimitExceeded', function (st) {
|
|
358
|
+
st.test('throws when concatenation exceeds the limit', function (s2t) {
|
|
359
|
+
s2t['throws'](
|
|
360
|
+
function () { utils.combine(['a', 'b', 'c'], 'd', 3, false, true); },
|
|
361
|
+
new RangeError('Array limit exceeded. Only 3 elements allowed in an array.'),
|
|
362
|
+
'throws instead of converting to an overflow object'
|
|
363
|
+
);
|
|
364
|
+
s2t['throws'](
|
|
365
|
+
function () { utils.combine([], 'a', 0, false, true); },
|
|
366
|
+
new RangeError('Array limit exceeded. Only 0 elements allowed in an array.'),
|
|
367
|
+
'throws with the correct count at arrayLimit 0'
|
|
368
|
+
);
|
|
369
|
+
s2t.end();
|
|
370
|
+
});
|
|
371
|
+
|
|
372
|
+
st.test('throws when adding to an existing overflow object', function (s2t) {
|
|
373
|
+
var overflow = utils.combine(['a', 'b'], 'c', 0, false);
|
|
374
|
+
s2t.ok(utils.isOverflow(overflow), 'initial object is marked as overflow');
|
|
375
|
+
|
|
376
|
+
s2t['throws'](
|
|
377
|
+
function () { utils.combine(overflow, 'd', 0, false, true); },
|
|
378
|
+
new RangeError('Array limit exceeded. Only 0 elements allowed in an array.'),
|
|
379
|
+
'throws rather than appending to the overflow object'
|
|
380
|
+
);
|
|
381
|
+
s2t['throws'](
|
|
382
|
+
function () { utils.combine(overflow, 'd', 1, false, true); },
|
|
383
|
+
new RangeError('Array limit exceeded. Only 1 element allowed in an array.'),
|
|
384
|
+
'uses the singular message at arrayLimit 1'
|
|
385
|
+
);
|
|
386
|
+
s2t.end();
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
st.test('does not throw when within the limit', function (s2t) {
|
|
390
|
+
var combined = utils.combine(['a'], 'b', 5, false, true);
|
|
391
|
+
s2t.deepEqual(combined, ['a', 'b'], 'returns the array unchanged when under the limit');
|
|
392
|
+
s2t.end();
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
st.end();
|
|
396
|
+
});
|
|
397
|
+
|
|
277
398
|
t.test('with existing overflow object', function (st) {
|
|
278
399
|
st.test('adds to existing overflow object at next index', function (s2t) {
|
|
279
400
|
// Create overflow object first via combine: 3 elements (indices 0-2) with limit 0
|
|
@@ -372,6 +493,79 @@ test('encode', function (t) {
|
|
|
372
493
|
'encodes a long string'
|
|
373
494
|
);
|
|
374
495
|
|
|
496
|
+
var boundary = '';
|
|
497
|
+
var expected = '';
|
|
498
|
+
for (var j = 0; j < 1023; j++) {
|
|
499
|
+
boundary += 'a';
|
|
500
|
+
expected += 'a';
|
|
501
|
+
}
|
|
502
|
+
boundary += '😀';
|
|
503
|
+
expected += '%F0%9F%98%80';
|
|
504
|
+
|
|
505
|
+
t.equal(
|
|
506
|
+
utils.encode(boundary),
|
|
507
|
+
expected,
|
|
508
|
+
'encodes a surrogate pair split across long-string chunks'
|
|
509
|
+
);
|
|
510
|
+
|
|
511
|
+
var laterBoundary = '';
|
|
512
|
+
var laterExpected = '';
|
|
513
|
+
for (var k = 0; k < 2047; k++) {
|
|
514
|
+
laterBoundary += 'a';
|
|
515
|
+
laterExpected += 'a';
|
|
516
|
+
}
|
|
517
|
+
laterBoundary += '😀';
|
|
518
|
+
laterExpected += '%F0%9F%98%80';
|
|
519
|
+
|
|
520
|
+
t.equal(
|
|
521
|
+
utils.encode(laterBoundary),
|
|
522
|
+
laterExpected,
|
|
523
|
+
'encodes a surrogate pair split across a later chunk boundary'
|
|
524
|
+
);
|
|
525
|
+
|
|
526
|
+
var twoPairs = '';
|
|
527
|
+
for (k = 0; k < 1023; k++) {
|
|
528
|
+
twoPairs += 'a';
|
|
529
|
+
}
|
|
530
|
+
twoPairs += '😀';
|
|
531
|
+
for (k = 0; k < 1022; k++) {
|
|
532
|
+
twoPairs += 'b';
|
|
533
|
+
}
|
|
534
|
+
twoPairs += '😀';
|
|
535
|
+
|
|
536
|
+
t.equal(
|
|
537
|
+
(utils.encode(twoPairs).match(/%F0%9F%98%80/g) || []).length,
|
|
538
|
+
2,
|
|
539
|
+
'encodes two surrogate pairs each split across a chunk boundary'
|
|
540
|
+
);
|
|
541
|
+
|
|
542
|
+
var roundTrip = '';
|
|
543
|
+
for (k = 0; k < 1023; k++) {
|
|
544
|
+
roundTrip += 'a';
|
|
545
|
+
}
|
|
546
|
+
roundTrip += '😀';
|
|
547
|
+
|
|
548
|
+
t.equal(
|
|
549
|
+
decodeURIComponent(utils.encode(roundTrip)),
|
|
550
|
+
roundTrip,
|
|
551
|
+
'a boundary-split surrogate pair round-trips through decodeURIComponent'
|
|
552
|
+
);
|
|
553
|
+
|
|
554
|
+
var loneBoundary = '';
|
|
555
|
+
var loneExpected = '';
|
|
556
|
+
for (k = 0; k < 1023; k++) {
|
|
557
|
+
loneBoundary += 'a';
|
|
558
|
+
loneExpected += 'a';
|
|
559
|
+
}
|
|
560
|
+
loneBoundary += '\uD83DX';
|
|
561
|
+
loneExpected += '%F0%9F%91%98';
|
|
562
|
+
|
|
563
|
+
t.equal(
|
|
564
|
+
utils.encode(loneBoundary),
|
|
565
|
+
loneExpected,
|
|
566
|
+
'a lone high surrogate at a chunk boundary encodes the same as mid-chunk'
|
|
567
|
+
);
|
|
568
|
+
|
|
375
569
|
t.equal(
|
|
376
570
|
utils.encode('\x28\x29'),
|
|
377
571
|
'%28%29',
|
|
@@ -410,6 +604,18 @@ test('isBuffer()', function (t) {
|
|
|
410
604
|
var fakeBuffer = { constructor: Buffer };
|
|
411
605
|
t.equal(utils.isBuffer(fakeBuffer), false, 'fake buffer is not a buffer');
|
|
412
606
|
|
|
607
|
+
forEach(['x', 1, true, {}, [], { isBuffer: true }], function (notCallable) {
|
|
608
|
+
var obj = { constructor: { isBuffer: notCallable } };
|
|
609
|
+
t.doesNotThrow(function () { utils.isBuffer(obj); }, 'non-callable `constructor.isBuffer` (' + inspect(notCallable) + ') does not throw');
|
|
610
|
+
t.equal(utils.isBuffer(obj), false, 'non-callable `constructor.isBuffer` (' + inspect(notCallable) + ') is not a buffer');
|
|
611
|
+
});
|
|
612
|
+
|
|
613
|
+
var nullObject = { __proto__: null, constructor: { __proto__: null, isBuffer: 'y' } };
|
|
614
|
+
t.equal(utils.isBuffer(nullObject), false, 'null object with non-callable `constructor.isBuffer` is not a buffer');
|
|
615
|
+
|
|
616
|
+
var duckBuffer = { constructor: { isBuffer: function () { return true; } } };
|
|
617
|
+
t.equal(utils.isBuffer(duckBuffer), true, 'callable `constructor.isBuffer` is still honored');
|
|
618
|
+
|
|
413
619
|
var saferBuffer = SaferBuffer.from('abc');
|
|
414
620
|
t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer');
|
|
415
621
|
|
|
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [v1.1.1](https://github.com/ljharb/side-channel/compare/v1.1.0...v1.1.1) - 2026-06-08
|
|
9
|
+
|
|
10
|
+
### Commits
|
|
11
|
+
|
|
12
|
+
- [Fix] `assert`: do not observably access object keys when throwing [`fc17361`](https://github.com/ljharb/side-channel/commit/fc173615136e6a6c3194656e6088afbc0bd6f9b8)
|
|
13
|
+
- [actions] update workflows [`35b18c0`](https://github.com/ljharb/side-channel/commit/35b18c0bced5769d59226cd44a7e4003ad0aee81)
|
|
14
|
+
- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/tape`, `auto-changelog`, `eslint`, `npmignore` [`b456a01`](https://github.com/ljharb/side-channel/commit/b456a01396cfdd028e5d39ea84885fe9178a72cf)
|
|
15
|
+
- [Deps] update `object-inspect`, `side-channel-list` [`accf1a1`](https://github.com/ljharb/side-channel/commit/accf1a1a2767a22b1f5eeb5769a1db4c35a78090)
|
|
16
|
+
- [readme] replace runkit CI badge with shields.io check-runs badge [`7e0c956`](https://github.com/ljharb/side-channel/commit/7e0c956411cc29267197a49a155a3d9bd01bacac)
|
|
17
|
+
|
|
8
18
|
## [v1.1.0](https://github.com/ljharb/side-channel/compare/v1.0.6...v1.1.0) - 2024-12-11
|
|
9
19
|
|
|
10
20
|
### Commits
|
|
@@ -57,5 +57,5 @@ Clone the repo, `npm install`, and run `npm test`
|
|
|
57
57
|
[downloads-url]: https://npm-stat.com/charts.html?package=side-channel
|
|
58
58
|
[codecov-image]: https://codecov.io/gh/ljharb/side-channel/branch/main/graphs/badge.svg
|
|
59
59
|
[codecov-url]: https://app.codecov.io/gh/ljharb/side-channel/
|
|
60
|
-
[actions-image]: https://img.shields.io/
|
|
60
|
+
[actions-image]: https://img.shields.io/github/check-runs/ljharb/side-channel/main
|
|
61
61
|
[actions-url]: https://github.com/ljharb/side-channel/actions
|
|
@@ -18,7 +18,10 @@ module.exports = function getSideChannel() {
|
|
|
18
18
|
var channel = {
|
|
19
19
|
assert: function (key) {
|
|
20
20
|
if (!channel.has(key)) {
|
|
21
|
-
|
|
21
|
+
var keyDesc = key && Object(key) === key
|
|
22
|
+
? 'the given object key'
|
|
23
|
+
: inspect(key);
|
|
24
|
+
throw new $TypeError('Side channel does not contain ' + keyDesc);
|
|
22
25
|
}
|
|
23
26
|
},
|
|
24
27
|
'delete': function (key) {
|
|
@@ -38,6 +41,6 @@ module.exports = function getSideChannel() {
|
|
|
38
41
|
$channelData.set(key, value);
|
|
39
42
|
}
|
|
40
43
|
};
|
|
41
|
-
|
|
44
|
+
|
|
42
45
|
return channel;
|
|
43
46
|
};
|