opera-devtools-mcp 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +104 -7
- package/build/src/McpContext.js +365 -365
- package/build/src/McpPage.js +475 -48
- package/build/src/McpResponse.js +462 -288
- package/build/src/SlimMcpResponse.js +1 -1
- package/build/src/TextSnapshot.js +101 -22
- package/build/src/ToolHandler.js +142 -20
- package/build/src/bin/check-latest-version.js +27 -1
- package/build/src/bin/chrome-devtools-cli-options.js +573 -10
- package/build/src/bin/chrome-devtools-mcp-cli-options.js +119 -32
- package/build/src/bin/chrome-devtools-mcp-main.js +50 -7
- package/build/src/bin/chrome-devtools-mcp.js +7 -4
- package/build/src/bin/chrome-devtools.js +57 -14
- package/build/src/bin/opera-devtools-cli-options.js +3 -829
- package/build/src/bin/opera-devtools-mcp-cli-options.js +3 -348
- package/build/src/bin/opera-devtools-mcp-main.js +3 -37
- package/build/src/bin/opera-devtools-mcp.js +4 -19
- package/build/src/bin/opera-devtools.js +4 -185
- package/build/src/browser.js +45 -5
- package/build/src/{PageCollector.js → collectors/PageCollector.js} +64 -133
- package/build/src/collectors/ServiceWorkerCollector.js +171 -0
- package/build/src/daemon/client.js +75 -17
- package/build/src/daemon/daemon.js +92 -30
- package/build/src/daemon/utils.js +24 -8
- package/build/src/{DevtoolsUtils.js → devtools/DevtoolsUtils.js} +94 -88
- package/build/src/devtools/McpHostBindingAdapter.js +165 -0
- package/build/src/{issue-descriptions.js → devtools/issueDescriptions.js} +8 -6
- package/build/src/formatters/ConsoleFormatter.js +44 -11
- package/build/src/formatters/HeapSnapshotFormatter.js +140 -9
- package/build/src/formatters/IssueFormatter.js +7 -7
- package/build/src/formatters/NetworkFormatter.js +10 -8
- package/build/src/index.js +101 -232
- package/build/src/opera/branding.js +34 -0
- package/build/src/opera/browserFlags.js +85 -0
- package/build/src/opera/browserLaunch.js +52 -0
- package/build/src/opera/policy.js +50 -0
- package/build/src/opera/serviceWorkerRetry.js +37 -0
- package/build/src/opera/toolHandlerHooks.js +39 -0
- package/build/src/{tools → opera/tools}/opera.js +9 -21
- package/build/src/processors/HeapSnapshotManager.js +258 -0
- package/build/src/{trace-processing/parse.js → processors/PerformanceTrace.js} +9 -9
- package/build/src/telemetry/ClearcutLogger.js +12 -119
- package/build/src/telemetry/WatchdogClient.js +5 -5
- package/build/src/telemetry/errors.js +1 -1
- package/build/src/telemetry/flagUtils.js +6 -6
- package/build/src/telemetry/{toolMetricsUtils.js → metricsRegistry.js} +4 -11
- package/build/src/telemetry/persistence.js +3 -3
- package/build/src/telemetry/transformation.js +184 -0
- package/build/src/telemetry/watchdog/ClearcutSender.js +11 -11
- package/build/src/telemetry/watchdog/main.js +6 -6
- package/build/src/third_party/THIRD_PARTY_NOTICES +232 -1061
- package/build/src/third_party/bundled-packages.json +6 -8
- package/build/src/third_party/devtools-formatter-worker.js +63 -22
- package/build/src/third_party/devtools-heap-snapshot-worker.js +809 -182
- package/build/src/third_party/index.js +69558 -74691
- package/build/src/third_party/issue-descriptions/CoepCorpNotSameOrigin.md +2 -2
- package/build/src/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
- package/build/src/third_party/issue-descriptions/CoepCorpNotSameSite.md +2 -2
- package/build/src/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/CompatibilityModeQuirks.md +1 -1
- package/build/src/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
- package/build/src/third_party/issue-descriptions/LowTextContrast.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
- package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
- package/build/src/third_party/issue-descriptions/bounceTrackingMitigations.md +1 -1
- package/build/src/third_party/issue-descriptions/connectionAllowlistEmbeddingRequirementNotSatisfied.md +26 -0
- package/build/src/third_party/issue-descriptions/connectionAllowlistIFrameAttributeLoosensEmbeddingRequirement.md +19 -0
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowConnectionAllowlistFrom.md +21 -0
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
- package/build/src/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
- package/build/src/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieExcludePortMismatch.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
- package/build/src/third_party/issue-descriptions/corsAllowCredentialsRequired.md +1 -1
- package/build/src/third_party/issue-descriptions/corsDisabledScheme.md +2 -2
- package/build/src/third_party/issue-descriptions/corsDisallowedByMode.md +2 -2
- package/build/src/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/corsInvalidHeaderValues.md +3 -3
- package/build/src/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
- package/build/src/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
- package/build/src/third_party/issue-descriptions/corsOriginMismatch.md +3 -3
- package/build/src/third_party/issue-descriptions/corsPreflightResponseInvalid.md +2 -2
- package/build/src/third_party/issue-descriptions/corsRedirectContainsCredentials.md +3 -3
- package/build/src/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md +4 -3
- package/build/src/third_party/issue-descriptions/cspEvalViolation.md +4 -4
- package/build/src/third_party/issue-descriptions/cspInlineViolation.md +2 -2
- package/build/src/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md +2 -2
- package/build/src/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md +4 -4
- package/build/src/third_party/issue-descriptions/cspURLViolation.md +4 -4
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsEmptyList.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsFetchFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestInvalidEmail.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestUserLoggedOut.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -0
- package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestCanceled.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
- package/build/src/third_party/issue-descriptions/fetchingPartitionedBlobURL.md +2 -2
- package/build/src/third_party/issue-descriptions/genericBackUINavigationWouldSkipAd.md +4 -0
- package/build/src/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormInputWithNoLabelError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormLabelForNameError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormModelContextMissingToolName.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormModelContextParameterMissingName.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
- package/build/src/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
- package/build/src/third_party/issue-descriptions/heavyAd.md +1 -1
- package/build/src/third_party/issue-descriptions/lazyLoadImageZeroSize.md +7 -0
- package/build/src/third_party/issue-descriptions/navigatingPartitionedBlobURL.md +3 -3
- package/build/src/third_party/issue-descriptions/permissionElementActivationDisabled.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInvalidSizeValue.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInvalidType.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementNonOpaqueColor.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementRequestInProgress.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementTypeNotSupported.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementUntrustedEvent.md +1 -1
- package/build/src/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectivePermissionsIntervention.md +3 -3
- package/build/src/third_party/issue-descriptions/sharedArrayBuffer.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
- package/build/src/third_party/issue-descriptions/sriInvalidSignatureHeader.md +4 -4
- package/build/src/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md +4 -4
- package/build/src/third_party/issue-descriptions/sriMissingSignatureHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/sriMissingSignatureInputHeader.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
- package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
- package/build/src/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
- package/build/src/third_party/issue-descriptions/sriValidationFailedInvalidLength.md +3 -3
- package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md +2 -2
- package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md +2 -2
- package/build/src/third_party/issue-descriptions/stylesheetLateImport.md +1 -1
- package/build/src/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
- package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
- package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md +3 -3
- package/build/src/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md +2 -2
- package/build/src/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
- package/build/src/third_party/lighthouse-devtools-mcp-bundle.js +3177 -6340
- package/build/src/tools/ToolDefinition.js +2 -2
- package/build/src/tools/categories.js +3 -0
- package/build/src/tools/console.js +13 -0
- package/build/src/tools/emulation.js +30 -3
- package/build/src/tools/extensions.js +8 -1
- package/build/src/tools/input.js +246 -128
- package/build/src/tools/lighthouse.js +14 -7
- package/build/src/tools/memory.js +289 -25
- package/build/src/tools/network.js +10 -7
- package/build/src/tools/pages.js +33 -92
- package/build/src/tools/performance.js +67 -52
- package/build/src/tools/pwa.js +128 -0
- package/build/src/tools/screencast.js +35 -12
- package/build/src/tools/screenshot.js +234 -75
- package/build/src/tools/script.js +130 -45
- package/build/src/tools/slim/tools.js +3 -0
- package/build/src/tools/snapshot.js +7 -4
- package/build/src/tools/thirdPartyDeveloper.js +19 -9
- package/build/src/tools/tools.js +3 -1
- package/build/src/tools/webmcp.js +3 -1
- package/build/src/utils/WaitForHelper.js +299 -0
- package/build/src/utils/check-for-updates.js +8 -2
- package/build/src/utils/files.js +42 -3
- package/build/src/utils/logger.js +51 -0
- package/build/src/utils/polyfill.js +11 -0
- package/build/src/utils/url.js +43 -0
- package/build/src/version.js +1 -1
- package/package.json +42 -33
- package/build/src/DevToolsConnectionAdapter.js +0 -70
- package/build/src/HeapSnapshotManager.js +0 -110
- package/build/src/Mutex.js +0 -38
- package/build/src/WaitForHelper.js +0 -195
- package/build/src/bin/cliDefinitions.js +0 -616
- package/build/src/logger.js +0 -37
- package/build/src/polyfill.js +0 -8
- package/build/src/telemetry/metricUtils.js +0 -15
- package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +0 -8
- package/build/src/third_party/issue-descriptions/arInsecureContext.md +0 -7
- package/build/src/third_party/issue-descriptions/arInvalidInfoHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
- package/build/src/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
- package/build/src/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoRegisterSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoRegisterTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoWebOrOsSupport.md +0 -4
- package/build/src/third_party/issue-descriptions/arOsSourceIgnored.md +0 -18
- package/build/src/third_party/issue-descriptions/arOsTriggerIgnored.md +0 -19
- package/build/src/third_party/issue-descriptions/arPermissionPolicyDisabled.md +0 -8
- package/build/src/third_party/issue-descriptions/arSourceAndTriggerHeaders.md +0 -9
- package/build/src/third_party/issue-descriptions/arSourceIgnored.md +0 -13
- package/build/src/third_party/issue-descriptions/arTriggerIgnored.md +0 -12
- package/build/src/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md +0 -10
- package/build/src/third_party/issue-descriptions/arWebAndOsHeaders.md +0 -11
- package/build/src/utils/string.js +0 -37
- package/build/src/utils/types.js +0 -7
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"@modelcontextprotocol/sdk": "1.
|
|
3
|
-
"chrome-devtools-frontend": "1.0.1628368",
|
|
2
|
+
"@modelcontextprotocol/sdk": "1.30.0",
|
|
4
3
|
"core-js": "3.49.0",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"puppeteer-core": "24.43.0"
|
|
4
|
+
"lighthouse": "13.4.1",
|
|
5
|
+
"semver": "7.8.5",
|
|
6
|
+
"yargs": "18.1.0",
|
|
7
|
+
"puppeteer-core": "25.6.0",
|
|
8
|
+
"https://github.com/ChromeDevTools/devtools-frontend": "eaad2491924990cb310a4c753b2851e64d515f00"
|
|
11
9
|
}
|
|
@@ -2643,12 +2643,11 @@ CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript
|
|
|
2643
2643
|
var ExperimentName;
|
|
2644
2644
|
(function (ExperimentName) {
|
|
2645
2645
|
ExperimentName["ALL"] = "*";
|
|
2646
|
-
ExperimentName["CAPTURE_NODE_CREATION_STACKS"] = "capture-node-creation-stacks";
|
|
2647
2646
|
ExperimentName["PROTOCOL_MONITOR"] = "protocol-monitor";
|
|
2648
2647
|
ExperimentName["INSTRUMENTATION_BREAKPOINTS"] = "instrumentation-breakpoints";
|
|
2649
|
-
ExperimentName["USE_SOURCE_MAP_SCOPES"] = "use-source-map-scopes";
|
|
2650
2648
|
ExperimentName["DURABLE_MESSAGES"] = "durable-messages";
|
|
2651
2649
|
ExperimentName["JPEG_XL"] = "jpeg-xl";
|
|
2650
|
+
ExperimentName["PLUS_BUTTON"] = "plus-button";
|
|
2652
2651
|
})(ExperimentName || (ExperimentName = {}));
|
|
2653
2652
|
|
|
2654
2653
|
// Copyright 2016 The Chromium Authors
|
|
@@ -2676,8 +2675,11 @@ class FormattedContentBuilder {
|
|
|
2676
2675
|
}
|
|
2677
2676
|
addToken(token, offset) {
|
|
2678
2677
|
if (this.#enforceSpaceBetweenWords && !this.#hardSpaces && !this.#softSpace) {
|
|
2679
|
-
const
|
|
2680
|
-
|
|
2678
|
+
const lastToken = this.#formattedContent.at(-1) ?? '';
|
|
2679
|
+
const lastCharOfLastToken = lastToken.at(-1) ?? '';
|
|
2680
|
+
if ((this.#canBeIdentifierOrNumber.test(lastCharOfLastToken) ||
|
|
2681
|
+
['`', '}', ')', ']', '\'', '"', '/'].includes(lastCharOfLastToken)) &&
|
|
2682
|
+
this.#canBeIdentifierOrNumber.test(token)) {
|
|
2681
2683
|
this.addSoftSpace();
|
|
2682
2684
|
}
|
|
2683
2685
|
}
|
|
@@ -12252,7 +12254,7 @@ function lockedLazyString(str) {
|
|
|
12252
12254
|
// Copyright 2014 The Chromium Authors
|
|
12253
12255
|
const UIStrings$2 = {
|
|
12254
12256
|
elementsPanel: 'Elements panel',
|
|
12255
|
-
stylesSidebar: '
|
|
12257
|
+
stylesSidebar: 'Styles sidebar',
|
|
12256
12258
|
changesDrawer: 'Changes drawer',
|
|
12257
12259
|
issuesView: 'Issues view',
|
|
12258
12260
|
networkPanel: 'Network panel',
|
|
@@ -12261,8 +12263,9 @@ const UIStrings$2 = {
|
|
|
12261
12263
|
sourcesPanel: 'Sources panel',
|
|
12262
12264
|
timelinePanel: 'Performance panel',
|
|
12263
12265
|
memoryInspectorPanel: 'Memory inspector panel',
|
|
12264
|
-
developerResourcesPanel: 'Developer
|
|
12266
|
+
developerResourcesPanel: 'Developer resources panel',
|
|
12265
12267
|
animationsPanel: 'Animations panel',
|
|
12268
|
+
lighthousePanel: 'Lighthouse panel',
|
|
12266
12269
|
};
|
|
12267
12270
|
const str_$2 = registerUIStrings('core/common/Revealer.ts', UIStrings$2);
|
|
12268
12271
|
const i18nLazyString$1 = getLazilyComputedLocalizedString.bind(undefined, str_$2);
|
|
@@ -12279,6 +12282,7 @@ const i18nLazyString$1 = getLazilyComputedLocalizedString.bind(undefined, str_$2
|
|
|
12279
12282
|
SOURCES_PANEL: i18nLazyString$1(UIStrings$2.sourcesPanel),
|
|
12280
12283
|
MEMORY_INSPECTOR_PANEL: i18nLazyString$1(UIStrings$2.memoryInspectorPanel),
|
|
12281
12284
|
ANIMATIONS_PANEL: i18nLazyString$1(UIStrings$2.animationsPanel),
|
|
12285
|
+
LIGHTHOUSE_PANEL: i18nLazyString$1(UIStrings$2.lighthousePanel),
|
|
12282
12286
|
});
|
|
12283
12287
|
|
|
12284
12288
|
// Copyright 2014 The Chromium Authors
|
|
@@ -12692,7 +12696,11 @@ class ParsedURL {
|
|
|
12692
12696
|
return 'data:';
|
|
12693
12697
|
}
|
|
12694
12698
|
const scheme = this.isBlobURL() ? this.blobInnerScheme : this.scheme;
|
|
12695
|
-
|
|
12699
|
+
const domain = this.domain();
|
|
12700
|
+
if (!scheme && !domain) {
|
|
12701
|
+
return '';
|
|
12702
|
+
}
|
|
12703
|
+
return scheme + '://' + domain;
|
|
12696
12704
|
}
|
|
12697
12705
|
urlWithoutScheme() {
|
|
12698
12706
|
if (this.scheme && this.url.startsWith(this.scheme + '://')) {
|
|
@@ -13089,7 +13097,6 @@ const UIStrings = {
|
|
|
13089
13097
|
extension: 'Extension',
|
|
13090
13098
|
adorner: 'Adorner',
|
|
13091
13099
|
account: 'Account',
|
|
13092
|
-
privacy: 'Privacy',
|
|
13093
13100
|
};
|
|
13094
13101
|
const str_ = registerUIStrings('core/common/SettingRegistration.ts', UIStrings);
|
|
13095
13102
|
getLocalizedString.bind(undefined, str_);
|
|
@@ -13393,9 +13400,11 @@ class JavaScriptFormatter {
|
|
|
13393
13400
|
const format = this.#formatToken(node.parent, token);
|
|
13394
13401
|
this.#push(token, format);
|
|
13395
13402
|
}
|
|
13403
|
+
if (node.parent?.type === 'TemplateLiteral' && node.type !== 'TemplateElement' && node.type !== 'TemplateLiteral') {
|
|
13404
|
+
this.#builder.setEnforceSpaceBetweenWords(true);
|
|
13405
|
+
}
|
|
13396
13406
|
}
|
|
13397
13407
|
#afterVisit(node) {
|
|
13398
|
-
const restore = this.#builder.setEnforceSpaceBetweenWords(node.type !== 'TemplateElement');
|
|
13399
13408
|
let token;
|
|
13400
13409
|
while ((token = this.#tokenizer.peekToken()) && token.start < node.end) {
|
|
13401
13410
|
const token = this.#tokenizer.nextToken();
|
|
@@ -13403,7 +13412,12 @@ class JavaScriptFormatter {
|
|
|
13403
13412
|
this.#push(token, format);
|
|
13404
13413
|
}
|
|
13405
13414
|
this.#push(null, this.#finishNode(node));
|
|
13406
|
-
|
|
13415
|
+
if (node.parent?.type === 'TemplateLiteral' && node.type !== 'TemplateElement' && node.type !== 'TemplateLiteral') {
|
|
13416
|
+
this.#builder.setEnforceSpaceBetweenWords(false);
|
|
13417
|
+
}
|
|
13418
|
+
else if (node.type === 'TemplateLiteral' && node.parent?.type !== 'TemplateLiteral') {
|
|
13419
|
+
this.#builder.setEnforceSpaceBetweenWords(true);
|
|
13420
|
+
}
|
|
13407
13421
|
}
|
|
13408
13422
|
#inForLoopHeader(node) {
|
|
13409
13423
|
const parent = node.parent;
|
|
@@ -13921,10 +13935,15 @@ class HTMLFormatter {
|
|
|
13921
13935
|
this.#builder.addNewLine();
|
|
13922
13936
|
}
|
|
13923
13937
|
#formatToken(element, token) {
|
|
13924
|
-
|
|
13938
|
+
const isBodyToken = Boolean(element.openTag && !element.openTag.selfClosingTag && element.closeTag &&
|
|
13939
|
+
element.openTag.endOffset <= token.startOffset && token.startOffset < element.closeTag.startOffset);
|
|
13940
|
+
if (isWhitespace(token.value) &&
|
|
13941
|
+
(!isBodyToken || element.children.length > 0 ||
|
|
13942
|
+
(!element.hasContent && !element.hasComments && /[\r\n]/.test(token.value)))) {
|
|
13925
13943
|
return;
|
|
13926
13944
|
}
|
|
13927
|
-
if (hasTokenInSet(token.type, 'comment') || hasTokenInSet(token.type, 'meta'))
|
|
13945
|
+
if ((hasTokenInSet(token.type, 'comment') || hasTokenInSet(token.type, 'meta')) &&
|
|
13946
|
+
(!isBodyToken || element.children.length > 0)) {
|
|
13928
13947
|
this.#builder.addNewLine();
|
|
13929
13948
|
this.#builder.addToken(token.value.trim(), token.startOffset);
|
|
13930
13949
|
this.#builder.addNewLine();
|
|
@@ -13933,7 +13952,6 @@ class HTMLFormatter {
|
|
|
13933
13952
|
if (!element.openTag || !element.closeTag) {
|
|
13934
13953
|
return;
|
|
13935
13954
|
}
|
|
13936
|
-
const isBodyToken = element.openTag.endOffset <= token.startOffset && token.startOffset < element.closeTag.startOffset;
|
|
13937
13955
|
if (isBodyToken && element.name === 'style') {
|
|
13938
13956
|
this.#builder.addNewLine();
|
|
13939
13957
|
this.#builder.increaseNestingLevel();
|
|
@@ -13960,7 +13978,13 @@ class HTMLFormatter {
|
|
|
13960
13978
|
if (!isBodyToken && hasTokenInSet(token.type, 'attribute')) {
|
|
13961
13979
|
this.#builder.addSoftSpace();
|
|
13962
13980
|
}
|
|
13981
|
+
const restore = !isBodyToken && !hasTokenInSet(token.type, 'attribute') ?
|
|
13982
|
+
this.#builder.setEnforceSpaceBetweenWords(false) :
|
|
13983
|
+
false;
|
|
13963
13984
|
this.#builder.addToken(token.value, token.startOffset);
|
|
13985
|
+
if (!isBodyToken && !hasTokenInSet(token.type, 'attribute')) {
|
|
13986
|
+
this.#builder.setEnforceSpaceBetweenWords(restore);
|
|
13987
|
+
}
|
|
13964
13988
|
}
|
|
13965
13989
|
}
|
|
13966
13990
|
function scriptTagIsJavaScript(element) {
|
|
@@ -14046,12 +14070,20 @@ class HTMLModel {
|
|
|
14046
14070
|
}
|
|
14047
14071
|
#build(text) {
|
|
14048
14072
|
const tokenizer = createTokenizer('text/html');
|
|
14049
|
-
let
|
|
14073
|
+
let lastOffset = 0;
|
|
14050
14074
|
let pendingToken = null;
|
|
14051
14075
|
const pushToken = (token) => {
|
|
14052
14076
|
this.#tokens.push(token);
|
|
14053
14077
|
this.#updateDOM(token);
|
|
14054
14078
|
const element = this.#stack[this.#stack.length - 1];
|
|
14079
|
+
if (element && (hasTokenInSet(token.type, 'comment') || hasTokenInSet(token.type, 'meta'))) {
|
|
14080
|
+
element.hasComments = true;
|
|
14081
|
+
}
|
|
14082
|
+
if (element && !isWhitespace(token.value) && !hasTokenInSet(token.type, 'tag') &&
|
|
14083
|
+
!hasTokenInSet(token.type, 'attribute') && !hasTokenInSet(token.type, 'bracket') &&
|
|
14084
|
+
!hasTokenInSet(token.type, 'comment') && !hasTokenInSet(token.type, 'meta')) {
|
|
14085
|
+
element.hasContent = true;
|
|
14086
|
+
}
|
|
14055
14087
|
if (element && (element.name === 'script' || element.name === 'style') &&
|
|
14056
14088
|
element.openTag?.endOffset === lastOffset) {
|
|
14057
14089
|
return AbortTokenization;
|
|
@@ -14059,8 +14091,6 @@ class HTMLModel {
|
|
|
14059
14091
|
return;
|
|
14060
14092
|
};
|
|
14061
14093
|
const processToken = (tokenValue, type, tokenStart, tokenEnd) => {
|
|
14062
|
-
tokenStart += baseOffset;
|
|
14063
|
-
tokenEnd += baseOffset;
|
|
14064
14094
|
lastOffset = tokenEnd;
|
|
14065
14095
|
const tokenType = type ? new Set(type.split(' ')) : new Set();
|
|
14066
14096
|
const token = new Token(tokenValue, tokenType, tokenStart, tokenEnd);
|
|
@@ -14089,8 +14119,7 @@ class HTMLModel {
|
|
|
14089
14119
|
return pushToken(token);
|
|
14090
14120
|
};
|
|
14091
14121
|
while (true) {
|
|
14092
|
-
|
|
14093
|
-
tokenizer(text.substring(lastOffset), processToken);
|
|
14122
|
+
tokenizer(text, processToken, lastOffset);
|
|
14094
14123
|
if (pendingToken) {
|
|
14095
14124
|
pushToken(pendingToken);
|
|
14096
14125
|
pendingToken = null;
|
|
@@ -14108,7 +14137,8 @@ class HTMLModel {
|
|
|
14108
14137
|
lastOffset = text.length;
|
|
14109
14138
|
break;
|
|
14110
14139
|
}
|
|
14111
|
-
|
|
14140
|
+
const sliced = text.slice(lastOffset + 2, lastOffset + 2 + element.name.length);
|
|
14141
|
+
if (sliced.toLowerCase() === element.name) {
|
|
14112
14142
|
break;
|
|
14113
14143
|
}
|
|
14114
14144
|
lastOffset += 2;
|
|
@@ -14322,6 +14352,8 @@ class FormatterElement {
|
|
|
14322
14352
|
parent = null;
|
|
14323
14353
|
openTag = null;
|
|
14324
14354
|
closeTag = null;
|
|
14355
|
+
hasComments = false;
|
|
14356
|
+
hasContent = false;
|
|
14325
14357
|
constructor(name) {
|
|
14326
14358
|
this.name = name;
|
|
14327
14359
|
}
|
|
@@ -14950,8 +14982,12 @@ function createTokenizer(mimeType) {
|
|
|
14950
14982
|
if (!mode.token) {
|
|
14951
14983
|
throw new Error(`Could not find CodeMirror mode with token method: ${mimeType}`);
|
|
14952
14984
|
}
|
|
14953
|
-
return (line, callback) => {
|
|
14985
|
+
return (line, callback, startOffset = 0) => {
|
|
14954
14986
|
const stream = new CodeMirror.StringStream(line);
|
|
14987
|
+
if (startOffset) {
|
|
14988
|
+
stream.pos = startOffset;
|
|
14989
|
+
stream.start = startOffset;
|
|
14990
|
+
}
|
|
14955
14991
|
while (!stream.eol()) {
|
|
14956
14992
|
const style = mode.token(stream, state);
|
|
14957
14993
|
const value = stream.current();
|
|
@@ -15023,6 +15059,7 @@ class CSSFormatter {
|
|
|
15023
15059
|
#fromOffset;
|
|
15024
15060
|
#lineEndings;
|
|
15025
15061
|
#lastLine = -1;
|
|
15062
|
+
#currentLineIndex = 0;
|
|
15026
15063
|
#state = {};
|
|
15027
15064
|
constructor(builder) {
|
|
15028
15065
|
this.#builder = builder;
|
|
@@ -15033,6 +15070,7 @@ class CSSFormatter {
|
|
|
15033
15070
|
this.#toOffset = toOffset;
|
|
15034
15071
|
this.#state = {};
|
|
15035
15072
|
this.#lastLine = -1;
|
|
15073
|
+
this.#currentLineIndex = 0;
|
|
15036
15074
|
const tokenize = createTokenizer('text/css');
|
|
15037
15075
|
const oldEnforce = this.#builder.setEnforceSpaceBetweenWords(false);
|
|
15038
15076
|
tokenize(text.substring(this.#fromOffset, this.#toOffset), this.#tokenCallback.bind(this));
|
|
@@ -15040,7 +15078,11 @@ class CSSFormatter {
|
|
|
15040
15078
|
}
|
|
15041
15079
|
#tokenCallback(token, type, startPosition) {
|
|
15042
15080
|
startPosition += this.#fromOffset;
|
|
15043
|
-
|
|
15081
|
+
while (this.#currentLineIndex < this.#lineEndings.length &&
|
|
15082
|
+
this.#lineEndings[this.#currentLineIndex] < startPosition) {
|
|
15083
|
+
this.#currentLineIndex++;
|
|
15084
|
+
}
|
|
15085
|
+
const startLine = this.#currentLineIndex;
|
|
15044
15086
|
if (startLine !== this.#lastLine) {
|
|
15045
15087
|
this.#state.eatWhitespace = true;
|
|
15046
15088
|
}
|
|
@@ -15297,4 +15339,3 @@ HOST_RUNTIME.workerScope.onmessage = function (event) {
|
|
|
15297
15339
|
}
|
|
15298
15340
|
};
|
|
15299
15341
|
HOST_RUNTIME.workerScope.postMessage('workerReady');
|
|
15300
|
-
//# sourceMappingURL=devtools-formatter-worker.js.map
|