chrome-devtools-frontend 1.0.1362775 → 1.0.1376716
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/.eslintrc.js +1 -0
- package/.stylelintrc.json +2 -1
- package/.vscode/extensions.json +4 -4
- package/config/gni/devtools_grd_files.gni +43 -9
- package/config/gni/devtools_image_files.gni +5 -1
- package/docs/README.md +1 -5
- package/docs/checklist/javascript.md +45 -8
- package/docs/contributing/design.md +1 -1
- package/docs/contributing/issues.md +15 -0
- package/docs/contributing/settings-experiments-features.md +1 -1
- package/docs/cookbook/README.md +12 -0
- package/docs/cookbook/create_new_issues.md +91 -0
- package/docs/cookbook/dependencies.md +103 -0
- package/docs/cookbook/localization.md +320 -0
- package/docs/cookbook/navbar.md +8 -0
- package/docs/cookbook/release_management.md +60 -0
- package/docs/cookbook/uma_metrics.md +121 -0
- package/docs/dependencies.md +1 -100
- package/docs/l10n.md +1 -295
- package/docs/release_management.md +1 -53
- package/extensions/cxx_debugging/e2e/standalone/MemoryInspector_test.ts +1 -1
- package/extensions/cxx_debugging/e2e/tsconfig.json +1 -0
- package/extensions/cxx_debugging/src/ExtensionOptions.ts +6 -8
- package/extensions/cxx_debugging/tests/CreditsItem_test.ts +4 -4
- package/extensions/cxx_debugging/third_party/llvm/README.chromium +1 -1
- package/front_end/.eslintrc.js +0 -6
- package/front_end/Images/src/button-magic.svg +3 -0
- package/front_end/Images/src/center-focus-weak.svg +1 -0
- package/front_end/Images/src/history.svg +3 -0
- package/front_end/Images/src/home.svg +1 -0
- package/front_end/Images/src/performance-panel-delete-annotation.svg +32 -0
- package/front_end/Images/src/performance-panel-diagram.svg +19 -14
- package/front_end/Images/src/performance-panel-entry-label.svg +9 -16
- package/front_end/Images/src/performance-panel-time-range.svg +2 -8
- package/front_end/core/common/AppProvider.ts +1 -1
- package/front_end/core/common/Color.ts +10 -0
- package/front_end/core/common/Object.ts +2 -7
- package/front_end/core/common/ResourceType.test.ts +26 -26
- package/front_end/core/common/ResourceType.ts +21 -12
- package/front_end/core/common/Revealer.ts +5 -0
- package/front_end/core/common/SettingRegistration.ts +1 -1
- package/front_end/core/common/Settings.ts +6 -2
- package/front_end/core/host/AidaClient.ts +65 -1
- package/front_end/core/host/InspectorFrontendHost.ts +2 -2
- package/front_end/core/host/InspectorFrontendHostAPI.ts +8 -1
- package/front_end/core/host/ResourceLoader.ts +1 -1
- package/front_end/core/host/UserMetrics.ts +28 -13
- package/front_end/core/i18n/locales/af.json +598 -109
- package/front_end/core/i18n/locales/am.json +607 -118
- package/front_end/core/i18n/locales/ar.json +888 -399
- package/front_end/core/i18n/locales/as.json +603 -114
- package/front_end/core/i18n/locales/az.json +606 -117
- package/front_end/core/i18n/locales/be.json +599 -110
- package/front_end/core/i18n/locales/bg.json +598 -109
- package/front_end/core/i18n/locales/bn.json +609 -120
- package/front_end/core/i18n/locales/bs.json +607 -118
- package/front_end/core/i18n/locales/ca.json +601 -112
- package/front_end/core/i18n/locales/cs.json +605 -116
- package/front_end/core/i18n/locales/cy.json +603 -114
- package/front_end/core/i18n/locales/da.json +599 -110
- package/front_end/core/i18n/locales/de.json +604 -115
- package/front_end/core/i18n/locales/el.json +596 -107
- package/front_end/core/i18n/locales/en-GB.json +599 -110
- package/front_end/core/i18n/locales/es-419.json +600 -111
- package/front_end/core/i18n/locales/es.json +602 -113
- package/front_end/core/i18n/locales/et.json +601 -112
- package/front_end/core/i18n/locales/eu.json +605 -116
- package/front_end/core/i18n/locales/fa.json +609 -120
- package/front_end/core/i18n/locales/fi.json +598 -109
- package/front_end/core/i18n/locales/fil.json +605 -116
- package/front_end/core/i18n/locales/fr-CA.json +602 -113
- package/front_end/core/i18n/locales/fr.json +600 -111
- package/front_end/core/i18n/locales/gl.json +595 -106
- package/front_end/core/i18n/locales/gu.json +605 -116
- package/front_end/core/i18n/locales/he.json +603 -114
- package/front_end/core/i18n/locales/hi.json +600 -111
- package/front_end/core/i18n/locales/hr.json +600 -111
- package/front_end/core/i18n/locales/hu.json +600 -111
- package/front_end/core/i18n/locales/hy.json +599 -110
- package/front_end/core/i18n/locales/id.json +603 -114
- package/front_end/core/i18n/locales/is.json +598 -109
- package/front_end/core/i18n/locales/it.json +602 -113
- package/front_end/core/i18n/locales/ja.json +596 -107
- package/front_end/core/i18n/locales/ka.json +597 -108
- package/front_end/core/i18n/locales/kk.json +884 -395
- package/front_end/core/i18n/locales/km.json +605 -116
- package/front_end/core/i18n/locales/kn.json +606 -117
- package/front_end/core/i18n/locales/ko.json +591 -102
- package/front_end/core/i18n/locales/ky.json +599 -110
- package/front_end/core/i18n/locales/lo.json +608 -119
- package/front_end/core/i18n/locales/lt.json +597 -108
- package/front_end/core/i18n/locales/lv.json +606 -117
- package/front_end/core/i18n/locales/mk.json +885 -396
- package/front_end/core/i18n/locales/ml.json +601 -112
- package/front_end/core/i18n/locales/mn.json +599 -110
- package/front_end/core/i18n/locales/mr.json +601 -112
- package/front_end/core/i18n/locales/ms.json +602 -113
- package/front_end/core/i18n/locales/my.json +604 -115
- package/front_end/core/i18n/locales/ne.json +609 -120
- package/front_end/core/i18n/locales/nl.json +597 -108
- package/front_end/core/i18n/locales/no.json +601 -112
- package/front_end/core/i18n/locales/or.json +601 -112
- package/front_end/core/i18n/locales/pa.json +600 -111
- package/front_end/core/i18n/locales/pl.json +601 -112
- package/front_end/core/i18n/locales/pt-PT.json +600 -111
- package/front_end/core/i18n/locales/pt.json +596 -107
- package/front_end/core/i18n/locales/ro.json +601 -112
- package/front_end/core/i18n/locales/ru.json +609 -120
- package/front_end/core/i18n/locales/si.json +603 -114
- package/front_end/core/i18n/locales/sk.json +599 -110
- package/front_end/core/i18n/locales/sl.json +601 -112
- package/front_end/core/i18n/locales/sq.json +602 -113
- package/front_end/core/i18n/locales/sr-Latn.json +598 -109
- package/front_end/core/i18n/locales/sr.json +598 -109
- package/front_end/core/i18n/locales/sv.json +600 -111
- package/front_end/core/i18n/locales/sw.json +606 -117
- package/front_end/core/i18n/locales/ta.json +892 -403
- package/front_end/core/i18n/locales/te.json +604 -115
- package/front_end/core/i18n/locales/th.json +597 -108
- package/front_end/core/i18n/locales/tr.json +601 -112
- package/front_end/core/i18n/locales/uk.json +598 -109
- package/front_end/core/i18n/locales/ur.json +604 -115
- package/front_end/core/i18n/locales/uz.json +599 -110
- package/front_end/core/i18n/locales/vi.json +602 -113
- package/front_end/core/i18n/locales/zh-HK.json +599 -110
- package/front_end/core/i18n/locales/zh-TW.json +595 -106
- package/front_end/core/i18n/locales/zh.json +601 -112
- package/front_end/core/i18n/locales/zu.json +607 -118
- package/front_end/core/i18n/time-utilities.ts +7 -1
- package/front_end/core/platform/ArrayUtilities.ts +1 -0
- package/front_end/core/platform/DevToolsPath.ts +1 -1
- package/front_end/core/platform/Timing.ts +1 -1
- package/front_end/core/platform/UIString.ts +1 -1
- package/front_end/core/platform/UserVisibleError.ts +1 -1
- package/front_end/core/root/Runtime.ts +26 -9
- package/front_end/core/sdk/AccessibilityModel.ts +3 -4
- package/front_end/{panels/animation → core/sdk}/AnimationModel.test.ts +85 -6
- package/front_end/{panels/animation → core/sdk}/AnimationModel.ts +303 -37
- package/front_end/core/sdk/CPUProfilerModel.ts +3 -4
- package/front_end/core/sdk/CSSContainerQuery.ts +7 -5
- package/front_end/core/sdk/CSSLayer.ts +2 -2
- package/front_end/core/sdk/CSSMatchedStyles.test.ts +5 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +23 -12
- package/front_end/core/sdk/CSSMedia.ts +2 -2
- package/front_end/core/sdk/CSSMetadata.ts +27 -0
- package/front_end/core/sdk/CSSModel.ts +1 -0
- package/front_end/core/sdk/CSSProperty.ts +2 -2
- package/front_end/core/sdk/CSSQuery.ts +2 -2
- package/front_end/core/sdk/CSSRule.ts +2 -2
- package/front_end/core/sdk/CSSScope.ts +2 -2
- package/front_end/core/sdk/CSSStyleDeclaration.test.ts +10 -0
- package/front_end/core/sdk/CSSStyleDeclaration.ts +4 -4
- package/front_end/core/sdk/CSSStyleSheetHeader.ts +4 -4
- package/front_end/core/sdk/CSSSupports.ts +2 -2
- package/front_end/core/sdk/CookieModel.ts +1 -1
- package/front_end/core/sdk/DOMDebuggerModel.ts +1 -1
- package/front_end/core/sdk/DOMModel.ts +3 -3
- package/front_end/core/sdk/DebuggerModel.test.ts +2 -0
- package/front_end/core/sdk/DebuggerModel.ts +9 -3
- package/front_end/core/sdk/EmulationModel.ts +32 -0
- package/front_end/core/sdk/EnhancedTracesParser.test.ts +5 -9
- package/front_end/core/sdk/EnhancedTracesParser.ts +5 -10
- package/front_end/core/sdk/EventBreakpointsModel.ts +1 -2
- package/front_end/core/sdk/FrameAssociated.ts +1 -1
- package/front_end/core/sdk/FrameManager.ts +9 -7
- package/front_end/core/sdk/HeapProfilerModel.ts +3 -4
- package/front_end/core/sdk/IsolateManager.ts +2 -3
- package/front_end/core/sdk/LayerTreeBase.ts +2 -2
- package/front_end/core/sdk/NetworkManager.ts +1 -1
- package/front_end/core/sdk/OverlayModel.ts +2 -2
- package/front_end/core/sdk/OverlayPersistentHighlighter.ts +1 -1
- package/front_end/core/sdk/PageLoad.ts +1 -1
- package/front_end/core/sdk/PageResourceLoader.ts +1 -1
- package/front_end/core/sdk/RehydratingConnection.test.ts +190 -0
- package/front_end/core/sdk/RehydratingConnection.ts +310 -0
- package/front_end/core/sdk/RehydratingObject.ts +26 -2
- package/front_end/core/sdk/RemoteObject.ts +3 -3
- package/front_end/core/sdk/Resource.ts +2 -2
- package/front_end/core/sdk/ResourceTreeModel.ts +1 -1
- package/front_end/core/sdk/RuntimeModel.ts +31 -0
- package/front_end/core/sdk/SDKModel.ts +1 -1
- package/front_end/core/sdk/Script.ts +6 -6
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +5 -7
- package/front_end/core/sdk/SourceMap.ts +1 -1
- package/front_end/core/sdk/SourceMapManager.ts +1 -1
- package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
- package/front_end/core/sdk/SourceMapScopesInfo.ts +2 -2
- package/front_end/core/sdk/Target.ts +3 -2
- package/front_end/core/sdk/TargetManager.ts +4 -1
- package/front_end/core/sdk/TraceObject.ts +8 -0
- package/front_end/core/sdk/WebAuthnModel.ts +20 -0
- package/front_end/core/sdk/sdk-meta.ts +7 -0
- package/front_end/core/sdk/sdk.ts +2 -0
- package/front_end/devtools_compatibility.js +3 -4
- package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/IdentityFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/JSONFormatter.ts +1 -1
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +107 -86
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +1 -1
- package/front_end/entrypoints/main/MainImpl.ts +21 -1
- package/front_end/generated/InspectorBackendCommands.js +15 -12
- package/front_end/generated/SupportedCSSProperties.js +35 -15
- package/front_end/generated/protocol-mapping.d.ts +14 -3
- package/front_end/generated/protocol-proxy-api.d.ts +16 -3
- package/front_end/generated/protocol.ts +63 -3
- package/front_end/legacy_test_runner/network_test_runner/network_test_runner.js +1 -0
- package/front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js +4 -2
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +2 -2
- package/front_end/models/bindings/CompilerScriptMapping.ts +1 -2
- package/front_end/models/bindings/DebuggerLanguagePlugins.test.ts +1 -1
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
- package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
- package/front_end/models/bindings/IgnoreListManager.test.ts +49 -12
- package/front_end/models/bindings/IgnoreListManager.ts +79 -5
- package/front_end/models/bindings/ResourceMapping.ts +1 -1
- package/front_end/models/bindings/StylesSourceMapping.ts +11 -6
- package/front_end/models/breakpoints/BreakpointManager.test.ts +1 -1
- package/front_end/models/extensions/ExtensionPanel.ts +1 -1
- package/front_end/models/extensions/ExtensionServer.test.ts +1 -1
- package/front_end/models/extensions/ExtensionServer.ts +1 -1
- package/front_end/models/extensions/ExtensionView.ts +1 -1
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +1 -1
- package/front_end/models/extensions/RecorderPluginManager.ts +1 -1
- package/front_end/models/har/HARFormat.ts +1 -0
- package/front_end/models/har/Importer.test.ts +16 -2
- package/front_end/models/har/Importer.ts +3 -3
- package/front_end/models/har/Log.test.ts +23 -0
- package/front_end/models/har/Log.ts +6 -4
- package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +4 -2
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +59 -19
- package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -2
- package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +1 -1
- package/front_end/models/issues_manager/CookieIssue.ts +12 -0
- package/front_end/models/issues_manager/CorsIssue.ts +1 -1
- package/front_end/models/issues_manager/HeavyAdIssue.ts +1 -1
- package/front_end/models/issues_manager/Issue.ts +1 -1
- package/front_end/models/issues_manager/IssueResolver.ts +2 -2
- package/front_end/models/issues_manager/IssuesManager.ts +1 -1
- package/front_end/models/issues_manager/LowTextContrastIssue.ts +1 -1
- package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
- package/front_end/models/issues_manager/PropertyRuleIssue.ts +1 -1
- package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
- package/front_end/models/issues_manager/RelatedIssue.ts +1 -1
- package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +3 -3
- package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +1 -1
- package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +1 -1
- package/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
- package/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
- package/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
- package/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
- package/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +132 -73
- package/front_end/models/live-metrics/LiveMetrics.ts +152 -48
- package/front_end/models/live-metrics/web-vitals-injected/OnEachInteraction.ts +24 -61
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +50 -22
- package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +43 -5
- package/front_end/models/persistence/EditFileSystemView.ts +1 -1
- package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +2 -3
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +2 -3
- package/front_end/models/persistence/WorkspaceSettingsTab.ts +2 -2
- package/front_end/models/text_utils/ContentProvider.ts +3 -3
- package/front_end/models/text_utils/StaticContentProvider.ts +1 -5
- package/front_end/models/text_utils/TextUtils.ts +1 -1
- package/front_end/models/text_utils/WasmDisassembly.ts +1 -1
- package/front_end/models/timeline_model/TimelineModelFilter.ts +2 -2
- package/front_end/models/timeline_model/TimelineProfileTree.test.ts +21 -21
- package/front_end/models/timeline_model/TimelineProfileTree.ts +1 -1
- package/front_end/models/trace/ModelImpl.test.ts +1 -1
- package/front_end/models/trace/ModelImpl.ts +10 -27
- package/front_end/models/trace/Processor.test.ts +16 -15
- package/front_end/models/trace/Processor.ts +38 -10
- package/front_end/models/trace/extras/FilmStrip.ts +2 -2
- package/front_end/models/trace/extras/ThirdParties.test.ts +117 -0
- package/front_end/models/trace/extras/ThirdParties.ts +207 -0
- package/front_end/models/trace/extras/extras.ts +1 -0
- package/front_end/models/trace/handlers/FramesHandler.ts +12 -5
- package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +40 -0
- package/front_end/models/trace/handlers/InitiatorsHandler.ts +9 -0
- package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +27 -1
- package/front_end/models/trace/handlers/MetaHandler.ts +4 -0
- package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +2 -2
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +1 -1
- package/front_end/models/trace/handlers/RendererHandler.test.ts +5 -5
- package/front_end/models/trace/handlers/SamplesHandler.test.ts +2 -2
- package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +5 -4
- package/front_end/models/trace/handlers/ScreenshotsHandler.ts +7 -5
- package/front_end/models/trace/handlers/Threads.ts +2 -2
- package/front_end/models/trace/handlers/WarningsHandler.ts +1 -1
- package/front_end/models/trace/helpers/Network.ts +20 -2
- package/front_end/models/trace/helpers/SyntheticEvents.test.ts +1 -1
- package/front_end/models/trace/helpers/Timing.test.ts +29 -0
- package/front_end/models/trace/helpers/Timing.ts +18 -0
- package/front_end/models/trace/helpers/Trace.test.ts +34 -3
- package/front_end/models/trace/helpers/Trace.ts +12 -0
- package/front_end/models/trace/helpers/TreeHelpers.test.ts +70 -0
- package/front_end/models/trace/helpers/TreeHelpers.ts +170 -1
- package/front_end/models/trace/insights/Common.ts +1 -1
- package/front_end/models/trace/insights/CumulativeLayoutShift.test.ts +46 -2
- package/front_end/models/trace/insights/CumulativeLayoutShift.ts +164 -47
- package/front_end/models/trace/insights/DocumentLatency.test.ts +22 -11
- package/front_end/models/trace/insights/DocumentLatency.ts +9 -6
- package/front_end/models/trace/insights/FontDisplay.ts +5 -1
- package/front_end/models/trace/insights/InteractionToNextPaint.ts +4 -3
- package/front_end/models/trace/insights/LargestContentfulPaint.test.ts +9 -1
- package/front_end/models/trace/insights/LargestContentfulPaint.ts +26 -6
- package/front_end/models/trace/insights/RenderBlocking.test.ts +10 -16
- package/front_end/models/trace/insights/RenderBlocking.ts +6 -4
- package/front_end/models/trace/insights/SlowCSSSelector.ts +3 -1
- package/front_end/models/trace/insights/ThirdPartyWeb.ts +21 -178
- package/front_end/models/trace/insights/Viewport.ts +1 -0
- package/front_end/models/trace/insights/types.ts +14 -11
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.test.ts +4 -4
- package/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +9 -5
- package/front_end/models/trace/lantern/graph/BaseNode.ts +2 -2
- package/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +4 -3
- package/front_end/models/trace/lantern/simulation/Simulator.ts +1 -1
- package/front_end/models/trace/lantern/simulation/TCPConnection.ts +1 -1
- package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +5 -1
- package/front_end/models/trace/root-causes/LayoutShift.ts +3 -20
- package/front_end/models/trace/types/Extensions.ts +3 -7
- package/front_end/models/trace/types/File.ts +2 -8
- package/front_end/models/trace/types/TraceEvents.ts +78 -6
- package/front_end/models/workspace/UISourceCode.test.ts +3 -3
- package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -1
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +1 -1
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +3 -3
- package/front_end/panels/animation/AnimationTimeline.test.ts +15 -15
- package/front_end/panels/animation/AnimationTimeline.ts +85 -53
- package/front_end/panels/animation/AnimationUI.ts +5 -6
- package/front_end/panels/animation/animation-meta.ts +15 -0
- package/front_end/panels/animation/animation.ts +0 -4
- package/front_end/panels/application/ApplicationPanelSidebar.test.ts +106 -0
- package/front_end/panels/application/ApplicationPanelSidebar.ts +127 -20
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +1 -1
- package/front_end/panels/application/BackForwardCacheTreeElement.ts +1 -1
- package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +1 -1
- package/front_end/panels/application/DOMStorageItemsView.ts +4 -2
- package/front_end/panels/application/ExtensionStorageItemsView.test.ts +161 -0
- package/front_end/panels/application/ExtensionStorageItemsView.ts +241 -0
- package/front_end/panels/application/ExtensionStorageModel.test.ts +27 -0
- package/front_end/panels/application/ExtensionStorageModel.ts +66 -14
- package/front_end/panels/application/IndexedDBViews.ts +14 -19
- package/front_end/panels/application/InterestGroupTreeElement.ts +1 -1
- package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -3
- package/front_end/panels/application/PreloadingTreeElement.ts +1 -1
- package/front_end/panels/application/ReportingApiTreeElement.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +18 -1
- package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +1 -1
- package/front_end/panels/application/SharedStorageItemsView.test.ts +1 -20
- package/front_end/panels/application/SharedStorageListTreeElement.ts +1 -1
- package/front_end/panels/application/SharedStorageTreeElement.ts +2 -2
- package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
- package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
- package/front_end/panels/application/application.ts +2 -0
- package/front_end/panels/application/components/BackForwardCacheStrings.ts +1 -0
- package/front_end/panels/application/components/BackForwardCacheView.ts +76 -72
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +32 -33
- package/front_end/panels/application/components/EndpointsGrid.ts +5 -5
- package/front_end/panels/application/components/FrameDetailsView.ts +118 -135
- package/front_end/panels/application/components/InterestGroupAccessGrid.ts +11 -15
- package/front_end/panels/application/components/OriginTrialTreeView.ts +36 -34
- package/front_end/panels/application/components/PermissionsPolicySection.ts +32 -35
- package/front_end/panels/application/components/ProtocolHandlersView.ts +15 -14
- package/front_end/panels/application/components/ReportsGrid.ts +10 -10
- package/front_end/panels/application/components/ServiceWorkerRouterView.ts +0 -1
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +11 -16
- package/front_end/panels/application/components/SharedStorageMetadataView.ts +16 -14
- package/front_end/panels/application/components/StackTrace.ts +20 -22
- package/front_end/panels/application/components/StorageMetadataView.ts +18 -18
- package/front_end/panels/application/components/TrustTokensView.ts +16 -16
- package/front_end/panels/application/preloading/PreloadingView.ts +18 -15
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.test.ts +2 -2
- package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +8 -13
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +41 -47
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +15 -13
- package/front_end/panels/application/preloading/components/PreloadingGrid.test.ts +1 -1
- package/front_end/panels/application/preloading/components/PreloadingGrid.ts +11 -12
- package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +4 -5
- package/front_end/panels/application/preloading/components/PreloadingString.ts +7 -0
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +11 -10
- package/front_end/panels/application/preloading/components/RuleSetGrid.ts +24 -23
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +50 -57
- package/front_end/panels/application/resourcesSidebar.css +0 -3
- package/front_end/panels/autofill/AutofillView.ts +19 -17
- package/front_end/panels/console/ConsoleFilter.ts +1 -1
- package/front_end/panels/console/ConsoleSidebar.ts +1 -1
- package/front_end/panels/console/ConsoleView.ts +1 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +2 -2
- package/front_end/panels/console/consoleView.css +4 -3
- package/front_end/panels/coverage/CoverageDecorationManager.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewModel.ts +2 -3
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +5 -7
- package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +13 -13
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +9 -6
- package/front_end/panels/elements/CSSRuleValidator.ts +0 -5
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +3 -5
- package/front_end/panels/elements/ComputedStyleWidget.ts +6 -4
- package/front_end/panels/elements/ElementStatePaneWidget.ts +5 -0
- package/front_end/panels/elements/ElementsPanel.ts +11 -10
- package/front_end/panels/elements/ElementsTreeElement.ts +36 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/elements/PropertyMatchers.test.ts +57 -0
- package/front_end/panels/elements/PropertyMatchers.ts +78 -1
- package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
- package/front_end/panels/elements/StylePropertiesSection.test.ts +1 -0
- package/front_end/panels/elements/StylePropertyHighlighter.test.ts +1 -0
- package/front_end/panels/elements/StylePropertyHighlighter.ts +2 -2
- package/front_end/panels/elements/StylePropertyTreeElement.test.ts +126 -3
- package/front_end/panels/elements/StylePropertyTreeElement.ts +101 -28
- package/front_end/panels/elements/StylesSidebarPane.test.ts +2 -0
- package/front_end/panels/elements/TopLayerContainer.ts +1 -2
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +8 -7
- package/front_end/panels/elements/components/AdornerSettingsPane.ts +3 -4
- package/front_end/panels/elements/components/AnchorFunctionLinkSwatch.ts +8 -7
- package/front_end/panels/elements/components/CSSHintDetailsView.ts +3 -2
- package/front_end/panels/elements/components/CSSPropertyDocsView.ts +3 -2
- package/front_end/panels/elements/components/CSSQuery.ts +0 -1
- package/front_end/panels/elements/components/CSSVariableValueView.ts +1 -3
- package/front_end/panels/elements/components/ComputedStyleProperty.ts +0 -1
- package/front_end/panels/elements/components/ComputedStyleTrace.ts +0 -1
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +15 -13
- package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +1 -1
- package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +6 -4
- package/front_end/panels/elements/components/LayoutPane.ts +8 -8
- package/front_end/panels/elements/components/QueryContainer.test.ts +2 -3
- package/front_end/panels/elements/components/QueryContainer.ts +9 -10
- package/front_end/panels/elements/components/StylePropertyEditor.ts +4 -4
- package/front_end/panels/elements/components/computedStyleProperty.css +2 -1
- package/front_end/panels/elements/components/cssPropertyDocsView.css +3 -2
- package/front_end/panels/elements/elementsTreeOutline.css +17 -0
- package/front_end/panels/elements/stylePropertiesTreeOutline.css +13 -0
- package/front_end/panels/elements/stylesSidebarPane.css +2 -2
- package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
- package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +3 -3
- package/front_end/panels/event_listeners/EventListenersView.ts +2 -2
- package/front_end/panels/event_listeners/eventListenersView.css +4 -3
- package/front_end/panels/explain/components/ConsoleInsight.test.ts +56 -8
- package/front_end/panels/explain/components/ConsoleInsight.ts +99 -81
- package/front_end/panels/explain/components/consoleInsight.css +0 -9
- package/front_end/panels/explain/explain-meta.ts +1 -12
- package/front_end/panels/freestyler/AiAgent.test.ts +92 -12
- package/front_end/panels/freestyler/AiAgent.ts +345 -54
- package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +228 -0
- package/front_end/panels/freestyler/DrJonesFileAgent.ts +192 -0
- package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +136 -73
- package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +251 -146
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +241 -0
- package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +197 -0
- package/front_end/panels/freestyler/FreestylerAgent.test.ts +258 -85
- package/front_end/panels/freestyler/FreestylerAgent.ts +124 -167
- package/front_end/panels/freestyler/FreestylerEvaluateAction.test.ts +61 -37
- package/front_end/panels/freestyler/FreestylerEvaluateAction.ts +18 -14
- package/front_end/panels/freestyler/FreestylerPanel.test.ts +562 -15
- package/front_end/panels/freestyler/FreestylerPanel.ts +469 -105
- package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +53 -4
- package/front_end/panels/freestyler/components/FreestylerChatUi.ts +434 -191
- package/front_end/panels/freestyler/components/UserActionRow.test.ts +60 -0
- package/front_end/panels/freestyler/components/{ProvideFeedback.ts → UserActionRow.ts} +58 -29
- package/front_end/panels/freestyler/components/freestylerChatUi.css +148 -93
- package/front_end/panels/freestyler/components/userActionRow.css +149 -0
- package/front_end/panels/freestyler/freestyler-meta.ts +108 -26
- package/front_end/panels/freestyler/freestyler.ts +3 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +19 -4
- package/front_end/panels/issues/CorsIssueDetailsView.ts +6 -6
- package/front_end/panels/issues/GenericIssueDetailsView.ts +3 -3
- package/front_end/panels/issues/IssueAggregator.ts +10 -1
- package/front_end/panels/issues/IssueView.ts +2 -2
- package/front_end/panels/issues/components/ElementsPanelLink.ts +3 -2
- package/front_end/panels/issues/components/HideIssuesMenu.ts +17 -8
- package/front_end/panels/lighthouse/LighthouseController.ts +2 -2
- package/front_end/panels/lighthouse/LighthousePanel.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +2 -6
- package/front_end/panels/lighthouse/LighthouseStartView.ts +2 -2
- package/front_end/panels/lighthouse/LighthouseStatusView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseTimespanView.ts +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +2 -2
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +8 -2
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +6 -7
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.test.ts +11 -0
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +26 -36
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +5 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +12 -16
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -3
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +5 -5
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +0 -1
- package/front_end/panels/media/EventDisplayTable.ts +1 -1
- package/front_end/panels/media/EventTimelineView.ts +1 -1
- package/front_end/panels/media/PlayerDetailView.ts +3 -3
- package/front_end/panels/media/PlayerListView.ts +2 -2
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +23 -29
- package/front_end/panels/network/BinaryResourceView.ts +3 -2
- package/front_end/panels/network/NetworkConfigView.ts +1 -2
- package/front_end/panels/network/NetworkDataGridNode.test.ts +29 -0
- package/front_end/panels/network/NetworkDataGridNode.ts +60 -158
- package/front_end/panels/network/NetworkFrameGrouper.ts +1 -1
- package/front_end/panels/network/NetworkItemView.ts +1 -1
- package/front_end/panels/network/NetworkLogView.test.ts +29 -0
- package/front_end/panels/network/NetworkLogView.ts +3 -3
- package/front_end/panels/network/NetworkLogViewColumns.ts +4 -6
- package/front_end/panels/network/NetworkPanel.test.ts +3 -22
- package/front_end/panels/network/NetworkPanel.ts +26 -7
- package/front_end/panels/network/NetworkWaterfallColumn.ts +7 -8
- package/front_end/panels/network/RequestResponseView.test.ts +28 -1
- package/front_end/panels/network/RequestResponseView.ts +17 -14
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +3 -1
- package/front_end/panels/network/components/EditableSpan.ts +0 -1
- package/front_end/panels/network/components/HeaderSectionRow.test.ts +1 -1
- package/front_end/panels/network/components/HeaderSectionRow.ts +31 -31
- package/front_end/panels/network/components/RequestHeaderSection.ts +10 -15
- package/front_end/panels/network/components/RequestHeadersView.css +7 -0
- package/front_end/panels/network/components/RequestHeadersView.ts +25 -26
- package/front_end/panels/network/components/RequestTrustTokensView.ts +33 -36
- package/front_end/panels/network/components/ResponseHeaderSection.ts +8 -10
- package/front_end/panels/network/components/WebBundleInfoView.ts +13 -11
- package/front_end/panels/network/networkConfigView.css +13 -5
- package/front_end/panels/network/networkLogView.css +35 -16
- package/front_end/panels/network/networkPanel.css +2 -1
- package/front_end/panels/network/requestHTMLView.css +1 -0
- package/front_end/panels/profiler/BottomUpProfileDataGrid.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/HeapProfilerPanel.ts +2 -2
- package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +14 -13
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +15 -11
- package/front_end/panels/profiler/HeapSnapshotProxy.ts +7 -7
- package/front_end/panels/profiler/ProfileLauncherView.ts +3 -3
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +4 -2
- package/front_end/panels/protocol_monitor/components/JSONEditor.ts +25 -18
- package/front_end/panels/protocol_monitor/components/Toolbar.ts +4 -4
- package/front_end/panels/recorder/RecorderController.ts +39 -43
- package/front_end/panels/recorder/components/ControlButton.ts +1 -1
- package/front_end/panels/recorder/components/CreateRecordingView.ts +15 -15
- package/front_end/panels/recorder/components/ExtensionView.ts +9 -8
- package/front_end/panels/recorder/components/RecordingListView.ts +15 -13
- package/front_end/panels/recorder/components/RecordingView.ts +92 -84
- package/front_end/panels/recorder/components/ReplaySection.ts +6 -6
- package/front_end/panels/recorder/components/SelectButton.ts +21 -20
- package/front_end/panels/recorder/components/StartView.ts +15 -20
- package/front_end/panels/recorder/components/StepEditor.ts +3 -3
- package/front_end/panels/recorder/components/StepView.ts +20 -20
- package/front_end/panels/recorder/components/TimelineSection.ts +3 -2
- package/front_end/panels/recorder/components/recordingView.css +1 -4
- package/front_end/panels/recorder/components/selectButton.css +6 -50
- package/front_end/panels/recorder/converters/ExtensionConverter.ts +2 -2
- package/front_end/panels/recorder/converters/JSONConverter.ts +1 -1
- package/front_end/panels/recorder/converters/LighthouseConverter.ts +1 -1
- package/front_end/panels/recorder/converters/PuppeteerConverter.ts +1 -1
- package/front_end/panels/recorder/converters/PuppeteerReplayConverter.ts +1 -1
- package/front_end/panels/recorder/injected/RecordingClient.ts +7 -10
- package/front_end/panels/recorder/injected/SelectorComputer.ts +5 -5
- package/front_end/panels/recorder/injected/SelectorPicker.ts +2 -2
- package/front_end/panels/recorder/injected/Step.ts +1 -1
- package/front_end/panels/recorder/injected/injected.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/ARIASelector.ts +1 -1
- package/front_end/panels/recorder/injected/selectors/PierceSelector.ts +6 -7
- package/front_end/panels/recorder/injected/selectors/TextSelector.ts +3 -5
- package/front_end/panels/recorder/injected/util.ts +1 -1
- package/front_end/panels/recorder/models/RecorderShortcutHelper.ts +1 -1
- package/front_end/panels/recorder/models/RecordingPlayer.ts +1 -1
- package/front_end/panels/recorder/models/RecordingSession.ts +4 -4
- package/front_end/panels/recorder/models/RecordingSettings.ts +1 -4
- package/front_end/panels/recorder/models/RecordingStorage.ts +1 -1
- package/front_end/panels/recorder/models/SDKUtils.ts +3 -2
- package/front_end/panels/recorder/models/ScreenshotUtils.ts +1 -1
- package/front_end/panels/recorder/models/Section.ts +2 -2
- package/front_end/panels/recorder/recorderController.css +38 -18
- package/front_end/panels/screencast/ScreencastApp.ts +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +1 -1
- package/front_end/panels/search/SearchResultsPane.ts +1 -2
- package/front_end/panels/search/SearchView.ts +1 -3
- package/front_end/panels/search/searchView.css +5 -1
- package/front_end/panels/security/CookieReportTreeElement.ts +26 -0
- package/front_end/panels/security/OriginTreeElement.ts +20 -7
- package/front_end/panels/security/SecurityPanel.ts +64 -15
- package/front_end/panels/security/{SecurityAndPrivacyPanelSidebar.ts → SecurityPanelSidebar.ts} +25 -14
- package/front_end/panels/security/SecurityPanelSidebarTreeElement.ts +1 -12
- package/front_end/panels/security/sidebar.css +40 -1
- package/front_end/panels/sensors/SensorsView.ts +43 -0
- package/front_end/panels/sensors/sensors-meta.ts +59 -0
- package/front_end/panels/sensors/sensors.css +16 -0
- package/front_end/panels/settings/AISettingsTab.test.ts +113 -15
- package/front_end/panels/settings/AISettingsTab.ts +194 -62
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +53 -30
- package/front_end/panels/settings/KeybindsSettingsTab.ts +34 -17
- package/front_end/panels/settings/SettingsScreen.ts +2 -2
- package/front_end/panels/settings/aiSettingsTab.css +13 -0
- package/front_end/panels/settings/components/SyncSection.ts +18 -15
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +51 -29
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +56 -41
- package/front_end/panels/settings/emulation/devicesSettingsTab.css +11 -10
- package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +14 -42
- package/front_end/panels/settings/keybindsSettingsTab.css +51 -89
- package/front_end/panels/settings/settings-meta.ts +2 -2
- package/front_end/panels/settings/settingsScreen.css +30 -6
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +1 -1
- package/front_end/panels/sources/CSSPlugin.ts +0 -2
- package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +2 -2
- package/front_end/panels/sources/GoToLineQuickOpen.ts +1 -1
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +1 -1
- package/front_end/panels/sources/NavigatorView.ts +31 -23
- package/front_end/panels/sources/OutlineQuickOpen.ts +1 -1
- package/front_end/panels/sources/SourcesNavigator.test.ts +1 -0
- package/front_end/panels/sources/SourcesPanel.ts +26 -0
- package/front_end/panels/sources/SourcesView.test.ts +1 -0
- package/front_end/panels/sources/SourcesView.ts +2 -2
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
- package/front_end/panels/sources/components/BreakpointsView.ts +25 -27
- package/front_end/panels/sources/components/HeadersView.ts +17 -16
- package/front_end/panels/sources/navigatorTree.css +11 -0
- package/front_end/panels/timeline/AnimationsTrackAppender.ts +18 -3
- package/front_end/panels/timeline/AnnotationHelpers.ts +4 -4
- package/front_end/panels/timeline/AppenderUtils.ts +2 -4
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +48 -19
- package/front_end/panels/timeline/CountersGraph.ts +1 -1
- package/front_end/panels/timeline/EntriesFilter.test.ts +51 -0
- package/front_end/panels/timeline/EntriesFilter.ts +15 -0
- package/front_end/panels/timeline/EventsTimelineTreeView.ts +10 -10
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +12 -1
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +141 -7
- package/front_end/panels/timeline/ModificationsManager.test.ts +160 -0
- package/front_end/panels/timeline/ModificationsManager.ts +31 -0
- package/front_end/panels/timeline/NetworkTrackAppender.ts +1 -8
- package/front_end/panels/timeline/ThreadAppender.ts +5 -6
- package/front_end/panels/timeline/TimelineDetailsView.test.ts +89 -44
- package/front_end/panels/timeline/TimelineDetailsView.ts +96 -45
- package/front_end/panels/timeline/TimelineEventOverview.ts +11 -10
- package/front_end/panels/timeline/TimelineFilters.test.ts +4 -4
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +53 -0
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +89 -63
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.test.ts +57 -0
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -15
- package/front_end/panels/timeline/TimelineFlameChartView.test.ts +2 -3
- package/front_end/panels/timeline/TimelineFlameChartView.ts +192 -86
- package/front_end/panels/timeline/TimelineHistoryManager.ts +7 -1
- package/front_end/panels/timeline/TimelineLoader.ts +1 -1
- package/front_end/panels/timeline/TimelineMiniMap.ts +0 -8
- package/front_end/panels/timeline/TimelinePanel.ts +136 -79
- package/front_end/panels/timeline/TimelineSelection.test.ts +91 -36
- package/front_end/panels/timeline/TimelineSelection.ts +48 -60
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +15 -16
- package/front_end/panels/timeline/TimelineTreeView.test.ts +9 -9
- package/front_end/panels/timeline/TimelineTreeView.ts +7 -5
- package/front_end/panels/timeline/TimelineUIUtils.test.ts +51 -4
- package/front_end/panels/timeline/TimelineUIUtils.ts +153 -68
- package/front_end/panels/timeline/TimingsTrackAppender.ts +1 -1
- package/front_end/panels/timeline/UIDevtoolsController.ts +5 -5
- package/front_end/panels/timeline/UIDevtoolsUtils.ts +59 -68
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +3 -5
- package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +8 -7
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +28 -27
- package/front_end/panels/timeline/components/InteractionBreakdown.ts +3 -2
- package/front_end/panels/timeline/components/LayoutShiftDetails.test.ts +13 -11
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +238 -91
- package/front_end/panels/timeline/components/LiveMetricsView.test.ts +415 -128
- package/front_end/panels/timeline/components/LiveMetricsView.ts +448 -228
- package/front_end/panels/timeline/components/MetricCard.test.ts +8 -8
- package/front_end/panels/timeline/components/MetricCard.ts +6 -4
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +1 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.test.ts +14 -7
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +57 -124
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +70 -78
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.test.ts +35 -2
- package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +30 -13
- package/front_end/panels/timeline/components/RelatedInsightChips.test.ts +74 -0
- package/front_end/panels/timeline/components/RelatedInsightChips.ts +92 -0
- package/front_end/panels/timeline/components/Sidebar.test.ts +74 -0
- package/front_end/panels/timeline/components/Sidebar.ts +34 -14
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +66 -0
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +117 -50
- package/front_end/panels/timeline/components/SidebarInsightsTab.test.ts +11 -1
- package/front_end/panels/timeline/components/SidebarInsightsTab.ts +119 -37
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +58 -1
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +90 -34
- package/front_end/panels/timeline/components/Utils.test.ts +65 -0
- package/front_end/panels/timeline/components/Utils.ts +145 -29
- package/front_end/panels/timeline/components/components.ts +2 -4
- package/front_end/panels/timeline/components/insights/CLSCulprits.ts +76 -55
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +105 -17
- package/front_end/panels/timeline/components/insights/EventRef.ts +91 -0
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +24 -13
- package/front_end/panels/timeline/components/insights/Helpers.ts +49 -44
- package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +21 -21
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +94 -49
- package/front_end/panels/timeline/components/insights/LCPPhases.ts +35 -10
- package/front_end/panels/timeline/components/insights/NodeLink.ts +3 -2
- package/front_end/panels/timeline/components/insights/README.md +2 -2
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +35 -29
- package/front_end/panels/timeline/components/insights/SidebarInsight.ts +103 -17
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +125 -60
- package/front_end/panels/timeline/components/insights/Table.ts +13 -12
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +24 -19
- package/front_end/panels/timeline/components/insights/Viewport.ts +23 -22
- package/front_end/panels/timeline/components/insights/insights.ts +2 -0
- package/front_end/panels/timeline/components/insights/sidebarInsight.css +54 -9
- package/front_end/panels/timeline/components/insights/table.css +9 -1
- package/front_end/panels/timeline/components/layoutShiftDetails.css +28 -20
- package/front_end/panels/timeline/components/liveMetricsView.css +102 -31
- package/front_end/panels/timeline/components/networkRequestDetails.css +11 -50
- package/front_end/panels/timeline/components/networkRequestTooltip.css +34 -11
- package/front_end/panels/timeline/components/relatedInsightChips.css +45 -0
- package/front_end/panels/timeline/components/sidebarInsightsTab.css +44 -6
- package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +18 -4
- package/front_end/panels/timeline/extensions/ExtensionUI.ts +11 -8
- package/front_end/panels/timeline/fixtures/traces/README.md +4 -0
- package/front_end/panels/timeline/fixtures/traces/basic.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/many-redirects.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/missing-url.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/scheduler-post-task.json.gz +0 -0
- package/front_end/panels/timeline/fixtures/traces/unsized-images.json.gz +0 -0
- package/front_end/panels/timeline/historyToolbarButton.css +33 -19
- package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +40 -67
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +135 -61
- package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +13 -11
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +24 -32
- package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +23 -24
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.test.ts +42 -0
- package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +25 -19
- package/front_end/panels/timeline/overlays/components/entriesLinkOverlay.css +8 -0
- package/front_end/panels/timeline/overlays/components/entryLabelOverlay.css +14 -12
- package/front_end/panels/timeline/overlays/components/timeRangeOverlay.css +16 -13
- package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +59 -20
- package/front_end/panels/timeline/timeline-meta.ts +11 -0
- package/front_end/panels/timeline/timelineFlameChartView.css +19 -2
- package/front_end/panels/timeline/timelineFlamechartPopover.css +19 -0
- package/front_end/panels/timeline/timelineHistoryManager.css +4 -0
- package/front_end/panels/timeline/timelinePanel.css +2 -10
- package/front_end/panels/timeline/track_appenders/AnimationsTrackAppender.test.ts +2 -3
- package/front_end/panels/timeline/track_appenders/AppenderUtils.test.ts +1 -6
- package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +1 -1
- package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +7 -8
- package/front_end/panels/timeline/track_appenders/GPUTrackAppender.test.ts +2 -2
- package/front_end/panels/timeline/track_appenders/InteractionsTrackAppender.test.ts +3 -3
- package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +10 -11
- package/front_end/panels/timeline/track_appenders/ServerTimingsTrackAppender.test.ts +2 -3
- package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +5 -10
- package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +6 -6
- package/front_end/panels/timeline/utils/AICallTree.test.ts +80 -0
- package/front_end/panels/timeline/utils/AICallTree.ts +165 -0
- package/front_end/panels/timeline/{components → utils}/EntryName.test.ts +12 -12
- package/front_end/panels/timeline/{components → utils}/EntryName.ts +1 -1
- package/front_end/panels/timeline/{components → utils}/EntryStyles.ts +28 -1
- package/front_end/panels/timeline/utils/Helpers.test.ts +43 -0
- package/front_end/panels/timeline/utils/Helpers.ts +93 -0
- package/front_end/panels/timeline/utils/IgnoreList.test.ts +86 -0
- package/front_end/panels/timeline/utils/IgnoreList.ts +11 -4
- package/front_end/panels/timeline/utils/ImageCache.test.ts +106 -0
- package/front_end/panels/timeline/utils/ImageCache.ts +55 -0
- package/front_end/panels/timeline/utils/NetworkRequest.ts +1 -1
- package/front_end/panels/timeline/utils/SourceMapsResolver.test.ts +64 -19
- package/front_end/panels/timeline/utils/SourceMapsResolver.ts +14 -3
- package/front_end/panels/timeline/utils/utils.ts +10 -0
- package/front_end/panels/utils/utils.ts +57 -5
- package/front_end/panels/web_audio/graph_visualizer/EdgeView.ts +1 -1
- package/front_end/panels/web_audio/graph_visualizer/GraphView.ts +3 -9
- package/front_end/panels/webauthn/WebauthnPane.test.ts +75 -4
- package/front_end/panels/webauthn/WebauthnPane.ts +24 -3
- package/front_end/services/trace_bounds/TraceBounds.ts +7 -1
- package/front_end/testing/ContextMenuHelpers.ts +1 -1
- package/front_end/testing/EnvironmentHelpers.ts +42 -5
- package/front_end/testing/ExtensionHelpers.ts +1 -1
- package/front_end/testing/LanguagePluginHelpers.ts +1 -1
- package/front_end/testing/MockConnection.ts +1 -1
- package/front_end/testing/MockIssuesManager.ts +1 -1
- package/front_end/testing/MockScopeChain.ts +1 -1
- package/front_end/testing/MutationHelpers.test.ts +6 -8
- package/front_end/testing/NetworkHelpers.ts +38 -0
- package/front_end/testing/StorageItemsViewHelpers.ts +24 -0
- package/front_end/testing/TraceHelpers.ts +13 -1
- package/front_end/third_party/additional_readme_paths.json +1 -0
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +79 -6
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +7 -6
- package/front_end/third_party/i18n/localized-string-set.ts +1 -1
- package/front_end/third_party/intl-messageformat/README.chromium +2 -1
- package/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +0 -1
- package/front_end/third_party/json5/LICENSE +23 -0
- package/front_end/third_party/json5/README.chromium +17 -0
- package/front_end/third_party/json5/json5-tsconfig.json +8 -0
- package/front_end/third_party/json5/json5.ts +4 -0
- package/front_end/third_party/json5/lib/index.d.ts +2 -0
- package/front_end/third_party/json5/lib/index.js +1121 -0
- package/front_end/third_party/json5/package/lib/index.d.ts +4 -0
- package/front_end/third_party/json5/package/lib/index.js +9 -0
- package/front_end/third_party/json5/package/lib/parse.d.ts +15 -0
- package/front_end/third_party/json5/package/lib/parse.js +1114 -0
- package/front_end/third_party/json5/package/lib/register.js +13 -0
- package/front_end/third_party/json5/package/lib/require.js +4 -0
- package/front_end/third_party/json5/package/lib/stringify.d.ts +89 -0
- package/front_end/third_party/json5/package/lib/stringify.js +261 -0
- package/front_end/third_party/json5/package/lib/unicode.d.ts +3 -0
- package/front_end/third_party/json5/package/lib/unicode.js +4 -0
- package/front_end/third_party/json5/package/lib/util.d.ts +5 -0
- package/front_end/third_party/json5/package/lib/util.js +35 -0
- package/front_end/third_party/json5/package.json +8 -0
- package/front_end/third_party/json5/rebuild.sh +5 -0
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +1 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +13 -13
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +99 -92
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +13 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts +7 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPResponse.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/JSHandle.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +22 -22
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +26 -19
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BidiOverCdp.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +4 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +13 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +21 -10
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Navigation.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Navigation.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/core.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/core.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/core.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/core.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +7 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/AriaQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/AriaQueryHandler.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/AriaQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Binding.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Binding.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ChromeTargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ChromeTargetManager.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ChromeTargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Connection.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +17 -13
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExtensionTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExtensionTransport.js +5 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExtensionTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js +17 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +16 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +6 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CSSQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +3 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js +4 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/GetQueryHandler.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/GetQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HandleIterator.js +13 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HandleIterator.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LazyArg.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LazyArg.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PSelectorParser.js +1 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PSelectorParser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PierceQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js +13 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts +7 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.js +0 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js +15 -13
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/ARIAQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/CSSSelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/PQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/PQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/PQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/TextQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +4 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/util.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +3 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ScreenRecorder.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/node.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/node.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/node.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/node.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/util/fs.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/util/fs.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.d.ts +6 -6
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.js +15 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Deferred.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Deferred.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Deferred.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/ErrorLike.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/ErrorLike.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/ErrorLike.js +4 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/ErrorLike.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/decorators.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/decorators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/decorators.js +18 -13
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/decorators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/encoding.js +4 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/encoding.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +374 -577
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +427 -244
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +1 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +13 -13
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +98 -92
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +13 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts +7 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPResponse.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/JSHandle.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +22 -22
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +24 -17
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +14 -8
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +21 -10
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Navigation.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Navigation.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/core.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/core.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/core.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/core.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +7 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/AriaQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/AriaQueryHandler.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/AriaQueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Binding.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Binding.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ChromeTargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ChromeTargetManager.js +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ChromeTargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +3 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +17 -13
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExtensionTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExtensionTransport.js +5 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExtensionTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js +17 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts +1 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +16 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts +4 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CSSQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +3 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HandleIterator.js +12 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HandleIterator.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LazyArg.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LazyArg.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PierceQueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +13 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts +7 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.js +0 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js +4 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/ARIAQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/CSSSelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/PQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/PQuerySelector.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/PQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/TextQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/injected.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ScreenRecorder.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/node.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/node.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/node.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/node.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core-browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core-browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core.d.ts +6 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core.js +3 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Deferred.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Deferred.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Deferred.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/ErrorLike.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/ErrorLike.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Function.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Mutex.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Mutex.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/decorators.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/decorators.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/decorators.js +12 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/decorators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/disposable.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +374 -577
- package/front_end/third_party/puppeteer/package/package.json +6 -6
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +9 -9
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/api/CDPSession.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/api/Dialog.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +130 -130
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +33 -33
- package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +14 -9
- package/front_end/third_party/puppeteer/package/src/api/Input.ts +11 -11
- package/front_end/third_party/puppeteer/package/src/api/JSHandle.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +89 -88
- package/front_end/third_party/puppeteer/package/src/api/Realm.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/api/WebWorker.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +79 -79
- package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +7 -7
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +9 -5
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserConnector.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +10 -10
- package/front_end/third_party/puppeteer/package/src/bidi/CDPSession.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -5
- package/front_end/third_party/puppeteer/package/src/bidi/ExposedFunction.ts +11 -11
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +45 -41
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +9 -9
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPResponse.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +10 -10
- package/front_end/third_party/puppeteer/package/src/bidi/JSHandle.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +56 -52
- package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +15 -15
- package/front_end/third_party/puppeteer/package/src/bidi/Serializer.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Target.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/WebWorker.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +18 -18
- package/front_end/third_party/puppeteer/package/src/bidi/core/Connection.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/Navigation.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +8 -8
- package/front_end/third_party/puppeteer/package/src/bidi/core/Request.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/bidi/core/Session.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +10 -10
- package/front_end/third_party/puppeteer/package/src/bidi/core/UserPrompt.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/bidi/core/core.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/util.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +16 -12
- package/front_end/third_party/puppeteer/package/src/cdp/AriaQueryHandler.ts +10 -6
- package/front_end/third_party/puppeteer/package/src/cdp/Binding.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +24 -24
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/CDPSession.ts +7 -7
- package/front_end/third_party/puppeteer/package/src/cdp/ChromeTargetManager.ts +19 -17
- package/front_end/third_party/puppeteer/package/src/cdp/Connection.ts +7 -7
- package/front_end/third_party/puppeteer/package/src/cdp/Coverage.ts +11 -11
- package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +17 -17
- package/front_end/third_party/puppeteer/package/src/cdp/Dialog.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +13 -9
- package/front_end/third_party/puppeteer/package/src/cdp/EmulationManager.ts +34 -34
- package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +19 -20
- package/front_end/third_party/puppeteer/package/src/cdp/ExtensionTransport.ts +7 -3
- package/front_end/third_party/puppeteer/package/src/cdp/FirefoxTargetManager.ts +7 -7
- package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +38 -17
- package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +20 -20
- package/front_end/third_party/puppeteer/package/src/cdp/FrameManagerEvents.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +16 -14
- package/front_end/third_party/puppeteer/package/src/cdp/IsolatedWorld.ts +15 -14
- package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/LifecycleWatcher.ts +11 -11
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkEventManager.ts +15 -15
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +38 -37
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +71 -70
- package/front_end/third_party/puppeteer/package/src/cdp/PredefinedNetworkConditions.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Tracing.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +10 -10
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/common/CSSQueryHandler.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +9 -7
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +3 -0
- package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/CustomQueryHandler.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/common/Debug.ts +0 -1
- package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +8 -8
- package/front_end/third_party/puppeteer/package/src/common/FileChooser.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/common/HandleIterator.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/common/LazyArg.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/NetworkManagerEvents.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/PQueryHandler.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/common/PSelectorParser.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/PierceQueryHandler.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/common/Puppeteer.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/QueryHandler.ts +13 -15
- package/front_end/third_party/puppeteer/package/src/common/TaskQueue.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/TextQueryHandler.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +8 -8
- package/front_end/third_party/puppeteer/package/src/common/XPathQueryHandler.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/common/common.ts +7 -7
- package/front_end/third_party/puppeteer/package/src/common/util.ts +17 -15
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/ARIAQuerySelector.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/injected/CSSSelector.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/injected/PQuerySelector.ts +8 -8
- package/front_end/third_party/puppeteer/package/src/injected/PierceQuerySelector.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/injected/TextContent.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/TextQuerySelector.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/XPathQuerySelector.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/injected/util.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +38 -30
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +11 -12
- package/front_end/third_party/puppeteer/package/src/node/FirefoxLauncher.ts +8 -8
- package/front_end/third_party/puppeteer/package/src/node/NodeWebSocketTransport.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/PipeTransport.ts +7 -3
- package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +11 -11
- package/front_end/third_party/puppeteer/package/src/node/node.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/puppeteer-core.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/AsyncIterableUtil.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/Deferred.ts +3 -2
- package/front_end/third_party/puppeteer/package/src/util/ErrorLike.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/util/Function.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/util/Mutex.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/util/assert.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/util/decorators.ts +8 -9
- package/front_end/third_party/puppeteer/package/src/util/encoding.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/util/util.ts +1 -0
- package/front_end/third_party/puppeteer/puppeteer.ts +1 -1
- package/front_end/third_party/web-vitals/README.chromium +3 -3
- package/front_end/third_party/web-vitals/package/README.md +36 -23
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.d.ts +2 -1
- package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +11 -13
- package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.d.ts +2 -22
- package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +3 -2
- package/front_end/third_party/web-vitals/package/dist/modules/lib/interactions.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/modules/onLCP.js +4 -1
- package/front_end/third_party/web-vitals/package/dist/web-vitals.attribution.iife.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/web-vitals.attribution.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/web-vitals.attribution.umd.cjs +1 -1
- package/front_end/third_party/web-vitals/package/dist/web-vitals.iife.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/web-vitals.js +1 -1
- package/front_end/third_party/web-vitals/package/dist/web-vitals.umd.cjs +1 -1
- package/front_end/third_party/web-vitals/package/package.json +1 -1
- package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +11 -14
- package/front_end/third_party/web-vitals/package/src/lib/interactions.ts +1 -1
- package/front_end/third_party/web-vitals/package/src/onLCP.ts +4 -1
- package/front_end/third_party/web-vitals/rebuild.sh +14 -0
- package/front_end/third_party/web-vitals/web-vitals.ts +2 -0
- package/front_end/ui/components/adorners/Adorner.ts +0 -1
- package/front_end/ui/components/buttons/Button.ts +18 -18
- package/front_end/ui/components/buttons/button.css +1 -4
- package/front_end/ui/components/cards/Card.test.ts +92 -0
- package/front_end/ui/components/cards/Card.ts +76 -0
- package/front_end/ui/components/cards/card.css +50 -0
- package/front_end/ui/components/cards/cards.ts +9 -0
- package/front_end/ui/components/chrome_link/ChromeLink.test.ts +5 -3
- package/front_end/ui/components/chrome_link/ChromeLink.ts +3 -2
- package/front_end/ui/components/data_grid/DataGrid.test.ts +3 -1
- package/front_end/ui/components/data_grid/DataGrid.ts +25 -24
- package/front_end/ui/components/data_grid/DataGridContextMenuUtils.ts +2 -2
- package/front_end/ui/components/data_grid/DataGridController.ts +10 -7
- package/front_end/ui/components/data_grid/DataGridControllerIntegrator.ts +1 -2
- package/front_end/ui/components/data_grid/DataGridEvents.ts +1 -1
- package/front_end/ui/components/data_grid/DataGridRenderers.ts +7 -4
- package/front_end/ui/components/dialogs/Dialog.ts +4 -3
- package/front_end/ui/components/dialogs/IconDialog.ts +18 -18
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +13 -12
- package/front_end/ui/components/diff_view/DiffView.ts +9 -9
- package/front_end/ui/components/docs/building-ui-documentation/ComponentPerformance.md +1 -4
- package/front_end/ui/components/docs/building-ui-documentation/CreatingComponents.md +14 -44
- package/front_end/ui/components/docs/create_breadcrumbs.ts +3 -1
- package/front_end/ui/components/docs/expandable_list/basic.ts +4 -2
- package/front_end/ui/components/docs/floating_button/basic.html +26 -0
- package/front_end/ui/components/docs/floating_button/basic.ts +20 -0
- package/front_end/ui/components/docs/freestyler/basic.ts +5 -1
- package/front_end/ui/components/docs/freestyler/empty_state.ts +5 -0
- package/front_end/ui/components/docs/icon_dialog/basic.ts +9 -7
- package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +7 -4
- package/front_end/ui/components/docs/performance_panel/basic.ts +4 -1
- package/front_end/ui/components/docs/performance_panel/flamechart.html +4 -0
- package/front_end/ui/components/docs/performance_panel/flamechart.ts +45 -0
- package/front_end/ui/components/docs/recorder_select_button/basic.ts +21 -18
- package/front_end/ui/components/docs/report/basic.ts +21 -25
- package/front_end/ui/components/docs/theme_colors/basic.ts +4 -2
- package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +4 -2
- package/front_end/ui/components/expandable_list/ExpandableList.test.ts +5 -3
- package/front_end/ui/components/expandable_list/ExpandableList.ts +6 -5
- package/front_end/ui/components/floating_button/FloatingButton.ts +50 -0
- package/front_end/ui/components/floating_button/floatingButton.css +63 -0
- package/front_end/ui/components/floating_button/floating_button.ts +7 -0
- package/front_end/ui/components/helpers/helpers.test.ts +18 -14
- package/front_end/ui/components/icon_button/FileSourceIcon.test.ts +32 -0
- package/front_end/ui/components/icon_button/FileSourceIcon.ts +76 -0
- package/front_end/ui/components/icon_button/Icon.ts +2 -5
- package/front_end/ui/components/icon_button/IconButton.ts +15 -11
- package/front_end/ui/components/icon_button/fileSourceIcon.css +43 -0
- package/front_end/ui/components/icon_button/icon_button.ts +2 -0
- package/front_end/ui/components/issue_counter/IssueCounter.ts +6 -4
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +7 -5
- package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -2
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +6 -2
- package/front_end/ui/components/markdown_view/CodeBlock.test.ts +7 -7
- package/front_end/ui/components/markdown_view/CodeBlock.ts +33 -42
- package/front_end/ui/components/markdown_view/MarkdownImage.ts +12 -10
- package/front_end/ui/components/markdown_view/MarkdownLink.ts +3 -2
- package/front_end/ui/components/markdown_view/MarkdownView.test.ts +51 -3
- package/front_end/ui/components/markdown_view/MarkdownView.ts +43 -23
- package/front_end/ui/components/markdown_view/codeBlock.css +6 -28
- package/front_end/ui/components/markdown_view/markdownLink.css +1 -1
- package/front_end/ui/components/markdown_view/markdownView.css +4 -0
- package/front_end/ui/components/menus/Menu.ts +7 -8
- package/front_end/ui/components/menus/SelectMenu.test.ts +3 -1
- package/front_end/ui/components/menus/SelectMenu.ts +17 -17
- package/front_end/ui/components/menus/selectMenu.css +8 -5
- package/front_end/ui/components/menus/selectMenuButton.css +29 -17
- package/front_end/ui/components/node_text/NodeText.ts +0 -1
- package/front_end/ui/components/panel_feedback/FeedbackButton.ts +5 -4
- package/front_end/ui/components/panel_feedback/PanelFeedback.ts +7 -5
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +6 -6
- package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +3 -2
- package/front_end/ui/components/report_view/ReportView.test.ts +5 -3
- package/front_end/ui/components/report_view/ReportView.ts +10 -14
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +8 -6
- package/front_end/ui/components/settings/SettingCheckbox.ts +38 -18
- package/front_end/ui/components/settings/SettingDeprecationWarning.ts +6 -5
- package/front_end/ui/components/settings/settingCheckbox.css +1 -0
- package/front_end/ui/components/spinners/Spinner.ts +3 -2
- package/front_end/ui/components/spinners/spinner.css +1 -0
- package/front_end/ui/components/split_view/SplitView.ts +3 -2
- package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +3 -2
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +3 -2
- package/front_end/ui/components/survey_link/SurveyLink.ts +6 -4
- package/front_end/ui/components/switch/SwitchImpl.ts +3 -2
- package/front_end/ui/components/text_editor/TextEditor.ts +0 -2
- package/front_end/ui/components/text_editor/TextEditorHistory.ts +2 -2
- package/front_end/ui/components/text_prompt/TextPrompt.ts +3 -2
- package/front_end/ui/components/tree_outline/TreeOutline.test.ts +8 -6
- package/front_end/ui/components/tree_outline/TreeOutline.ts +9 -9
- package/front_end/ui/components/two_states_counter/TwoStatesCounter.ts +5 -4
- package/front_end/ui/legacy/Context.ts +1 -1
- package/front_end/ui/legacy/ContextMenu.ts +46 -7
- package/front_end/ui/legacy/Dialog.ts +2 -2
- package/front_end/ui/legacy/DockController.ts +2 -2
- package/front_end/ui/legacy/FilterBar.test.ts +52 -0
- package/front_end/ui/legacy/FilterBar.ts +47 -2
- package/front_end/ui/legacy/FilterSuggestionBuilder.ts +1 -1
- package/front_end/ui/legacy/GlassPane.ts +1 -1
- package/front_end/ui/legacy/Infobar.ts +1 -1
- package/front_end/ui/legacy/InspectorView.ts +5 -5
- package/front_end/ui/legacy/KeyboardShortcut.ts +35 -21
- package/front_end/ui/legacy/Panel.ts +3 -3
- package/front_end/ui/legacy/ShortcutRegistry.ts +11 -8
- package/front_end/ui/legacy/SoftContextMenu.ts +3 -0
- package/front_end/ui/legacy/SplitWidget.test.ts +33 -1
- package/front_end/ui/legacy/SplitWidget.ts +62 -7
- package/front_end/ui/legacy/TabbedPane.ts +24 -0
- package/front_end/ui/legacy/ThrottledWidget.ts +2 -2
- package/front_end/ui/legacy/Toolbar.test.ts +39 -0
- package/front_end/ui/legacy/Toolbar.ts +17 -17
- package/front_end/ui/legacy/Treeoutline.ts +7 -4
- package/front_end/ui/legacy/UIUtils.ts +10 -1
- package/front_end/ui/legacy/View.ts +4 -4
- package/front_end/ui/legacy/ViewManager.ts +5 -3
- package/front_end/ui/legacy/ViewRegistration.ts +2 -2
- package/front_end/ui/legacy/Widget.ts +64 -16
- package/front_end/ui/legacy/XElement.ts +0 -1
- package/front_end/ui/legacy/XLink.test.ts +3 -1
- package/front_end/ui/legacy/XLink.ts +6 -4
- package/front_end/ui/legacy/checkboxTextLabel.css +4 -0
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/DataGrid.test.ts +51 -0
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +92 -6
- package/front_end/ui/legacy/components/data_grid/DataGridWithPreview.ts +21 -10
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +8 -1
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +11 -11
- package/front_end/ui/legacy/components/inline_editor/CSSAngleEditor.ts +0 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngleSwatch.ts +0 -1
- package/front_end/ui/legacy/components/inline_editor/CSSLength.ts +0 -1
- package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.ts +3 -2
- package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +3 -2
- package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +9 -12
- package/front_end/ui/legacy/components/inline_editor/Swatches.ts +6 -6
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -2
- package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +2 -2
- package/front_end/ui/legacy/components/perf_ui/CanvasHelper.ts +1 -83
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +3 -2
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.test.ts +9 -9
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +209 -68
- package/front_end/ui/legacy/components/perf_ui/PieChart.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +3 -3
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +5 -9
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +9 -60
- package/front_end/ui/legacy/components/source_frame/SourceFrame.test.ts +18 -0
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +20 -3
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.test.ts +69 -0
- package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +122 -0
- package/front_end/ui/legacy/components/source_frame/source_frame.ts +2 -0
- package/front_end/ui/legacy/designTokens.css +46 -40
- package/front_end/ui/legacy/filter.css +23 -8
- package/front_end/ui/legacy/inspectorCommon.css +31 -30
- package/front_end/ui/legacy/searchableView.css +4 -3
- package/front_end/ui/legacy/softDropDownButton.css +10 -6
- package/front_end/ui/legacy/tabbedPane.css +1 -1
- package/front_end/ui/legacy/themeColors.css +10 -0
- package/front_end/ui/legacy/toolbar.css +42 -18
- package/front_end/ui/legacy/treeoutline.css +0 -3
- package/front_end/ui/lit-html/static.test.ts +8 -8
- package/front_end/ui/visual_logging/Debugging.ts +1 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +99 -4
- package/front_end/ui/visual_logging/LoggingDriver.test.ts +53 -6
- package/front_end/ui/visual_logging/LoggingDriver.ts +9 -6
- package/front_end/ui/visual_logging/LoggingEvents.test.ts +5 -1
- package/front_end/ui/visual_logging/LoggingEvents.ts +29 -29
- package/front_end/ui/visual_logging/LoggingState.ts +2 -2
- package/front_end/ui/visual_logging/NonDomState.ts +2 -2
- package/front_end/ui/visual_logging/visual_logging.ts +3 -1
- package/inspector_overlay/css_grid_label_helpers.test.ts +103 -0
- package/inspector_overlay/css_grid_label_helpers.ts +63 -12
- package/inspector_overlay/highlight_common.ts +2 -2
- package/inspector_overlay/highlight_container_query.ts +1 -2
- package/inspector_overlay/highlight_flex_common.test.ts +1 -1
- package/inspector_overlay/highlight_flex_common.ts +2 -3
- package/inspector_overlay/highlight_grid_common.ts +10 -4
- package/inspector_overlay/highlight_isolated_element.ts +1 -1
- package/inspector_overlay/highlight_scroll_snap.ts +1 -2
- package/inspector_overlay/testing/InspectorOverlayHelpers.ts +1 -1
- package/inspector_overlay/tool_highlight.ts +4 -8
- package/package.json +8 -8
- package/scripts/build/esbuild.js +3 -1
- package/scripts/devtools_paths.js +19 -2
- package/scripts/eslint_rules/lib/avoid_assert_equal.js +34 -7
- package/scripts/eslint_rules/lib/check_test_definitions.js +1 -1
- package/scripts/eslint_rules/lib/html_tagged_template.js +55 -0
- package/scripts/eslint_rules/lib/inline_type_imports.js +22 -23
- package/scripts/eslint_rules/tests/avoid_assert_equal_test.js +61 -2
- package/scripts/eslint_rules/tests/check_test_definitions_test.js +10 -0
- package/scripts/eslint_rules/tests/html_tagged_template_test.js +96 -0
- package/scripts/eslint_rules/tests/inline_type_imports_test.js +5 -25
- package/scripts/freestyler/eval/index.js +83 -47
- package/scripts/protocol_typescript/protocol_dts_generator.ts +1 -1
- package/scripts/stylelint_rules/lib/use_theme_colors.js +2 -1
- package/scripts/stylelint_rules/tests/use_theme_colors_test.js +16 -0
- package/tsconfig.json +11 -1
- package/docs/add_uma_metrics.md +0 -41
- package/docs/uma_metrics.md +0 -23
- package/front_end/Images/src/spark.svg +0 -3
- package/front_end/panels/animation/AnimationDOMNode.ts +0 -268
- package/front_end/panels/freestyler/components/ProvideFeedback.test.ts +0 -29
- package/front_end/panels/freestyler/components/provideFeedback.css +0 -60
- package/front_end/panels/timeline/components/insights/lcpDiscovery.css +0 -13
- package/scripts/eslint_rules/lib/ban_literal_devtools_component_tag_names.js +0 -40
- package/scripts/eslint_rules/lib/check_component_naming.js +0 -214
- package/scripts/eslint_rules/lib/lit_html_data_as_type.js +0 -83
- package/scripts/eslint_rules/tests/ban_literal_devtools_component_tag_names_test.js +0 -38
- package/scripts/eslint_rules/tests/check_component_naming_test.js +0 -246
- package/scripts/eslint_rules/tests/lit_html_data_as_type_test.js +0 -81
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"legacy.js","sources":["../node_modules/@codemirror/legacy-modes/mode/clojure.js","../node_modules/@codemirror/legacy-modes/mode/coffeescript.js","../node_modules/@codemirror/legacy-modes/mode/clike.js","../node_modules/@codemirror/legacy-modes/mode/css.js","../node_modules/@codemirror/legacy-modes/mode/go.js","../node_modules/@codemirror/legacy-modes/mode/shell.js"],"sourcesContent":["var atoms = [\"false\", \"nil\", \"true\"];\nvar specialForms = [\".\", \"catch\", \"def\", \"do\", \"if\", \"monitor-enter\",\n \"monitor-exit\", \"new\", \"quote\", \"recur\", \"set!\", \"throw\", \"try\", \"var\"];\nvar coreSymbols = [\"*\", \"*'\", \"*1\", \"*2\", \"*3\", \"*agent*\",\n \"*allow-unresolved-vars*\", \"*assert*\", \"*clojure-version*\",\n \"*command-line-args*\", \"*compile-files*\", \"*compile-path*\",\n \"*compiler-options*\", \"*data-readers*\", \"*default-data-reader-fn*\", \"*e\",\n \"*err*\", \"*file*\", \"*flush-on-newline*\", \"*fn-loader*\", \"*in*\",\n \"*math-context*\", \"*ns*\", \"*out*\", \"*print-dup*\", \"*print-length*\",\n \"*print-level*\", \"*print-meta*\", \"*print-namespace-maps*\",\n \"*print-readably*\", \"*read-eval*\", \"*reader-resolver*\", \"*source-path*\",\n \"*suppress-read*\", \"*unchecked-math*\", \"*use-context-classloader*\",\n \"*verbose-defrecords*\", \"*warn-on-reflection*\", \"+\", \"+'\", \"-\", \"-'\",\n \"->\", \"->>\", \"->ArrayChunk\", \"->Eduction\", \"->Vec\", \"->VecNode\",\n \"->VecSeq\", \"-cache-protocol-fn\", \"-reset-methods\", \"..\", \"/\", \"<\", \"<=\",\n \"=\", \"==\", \">\", \">=\", \"EMPTY-NODE\", \"Inst\", \"StackTraceElement->vec\",\n \"Throwable->map\", \"accessor\", \"aclone\", \"add-classpath\", \"add-watch\",\n \"agent\", \"agent-error\", \"agent-errors\", \"aget\", \"alength\", \"alias\",\n \"all-ns\", \"alter\", \"alter-meta!\", \"alter-var-root\", \"amap\", \"ancestors\",\n \"and\", \"any?\", \"apply\", \"areduce\", \"array-map\", \"as->\", \"aset\",\n \"aset-boolean\", \"aset-byte\", \"aset-char\", \"aset-double\", \"aset-float\",\n \"aset-int\", \"aset-long\", \"aset-short\", \"assert\", \"assoc\", \"assoc!\",\n \"assoc-in\", \"associative?\", \"atom\", \"await\", \"await-for\", \"await1\",\n \"bases\", \"bean\", \"bigdec\", \"bigint\", \"biginteger\", \"binding\", \"bit-and\",\n \"bit-and-not\", \"bit-clear\", \"bit-flip\", \"bit-not\", \"bit-or\", \"bit-set\",\n \"bit-shift-left\", \"bit-shift-right\", \"bit-test\", \"bit-xor\", \"boolean\",\n \"boolean-array\", \"boolean?\", \"booleans\", \"bound-fn\", \"bound-fn*\",\n \"bound?\", \"bounded-count\", \"butlast\", \"byte\", \"byte-array\", \"bytes\",\n \"bytes?\", \"case\", \"cast\", \"cat\", \"char\", \"char-array\",\n \"char-escape-string\", \"char-name-string\", \"char?\", \"chars\", \"chunk\",\n \"chunk-append\", \"chunk-buffer\", \"chunk-cons\", \"chunk-first\", \"chunk-next\",\n \"chunk-rest\", \"chunked-seq?\", \"class\", \"class?\", \"clear-agent-errors\",\n \"clojure-version\", \"coll?\", \"comment\", \"commute\", \"comp\", \"comparator\",\n \"compare\", \"compare-and-set!\", \"compile\", \"complement\", \"completing\",\n \"concat\", \"cond\", \"cond->\", \"cond->>\", \"condp\", \"conj\", \"conj!\", \"cons\",\n \"constantly\", \"construct-proxy\", \"contains?\", \"count\", \"counted?\",\n \"create-ns\", \"create-struct\", \"cycle\", \"dec\", \"dec'\", \"decimal?\",\n \"declare\", \"dedupe\", \"default-data-readers\", \"definline\", \"definterface\",\n \"defmacro\", \"defmethod\", \"defmulti\", \"defn\", \"defn-\", \"defonce\",\n \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\", \"delay\", \"delay?\",\n \"deliver\", \"denominator\", \"deref\", \"derive\", \"descendants\", \"destructure\",\n \"disj\", \"disj!\", \"dissoc\", \"dissoc!\", \"distinct\", \"distinct?\", \"doall\",\n \"dorun\", \"doseq\", \"dosync\", \"dotimes\", \"doto\", \"double\", \"double-array\",\n \"double?\", \"doubles\", \"drop\", \"drop-last\", \"drop-while\", \"eduction\",\n \"empty\", \"empty?\", \"ensure\", \"ensure-reduced\", \"enumeration-seq\",\n \"error-handler\", \"error-mode\", \"eval\", \"even?\", \"every-pred\", \"every?\",\n \"ex-data\", \"ex-info\", \"extend\", \"extend-protocol\", \"extend-type\",\n \"extenders\", \"extends?\", \"false?\", \"ffirst\", \"file-seq\", \"filter\",\n \"filterv\", \"find\", \"find-keyword\", \"find-ns\", \"find-protocol-impl\",\n \"find-protocol-method\", \"find-var\", \"first\", \"flatten\", \"float\",\n \"float-array\", \"float?\", \"floats\", \"flush\", \"fn\", \"fn?\", \"fnext\", \"fnil\",\n \"for\", \"force\", \"format\", \"frequencies\", \"future\", \"future-call\",\n \"future-cancel\", \"future-cancelled?\", \"future-done?\", \"future?\",\n \"gen-class\", \"gen-interface\", \"gensym\", \"get\", \"get-in\", \"get-method\",\n \"get-proxy-class\", \"get-thread-bindings\", \"get-validator\", \"group-by\",\n \"halt-when\", \"hash\", \"hash-combine\", \"hash-map\", \"hash-ordered-coll\",\n \"hash-set\", \"hash-unordered-coll\", \"ident?\", \"identical?\", \"identity\",\n \"if-let\", \"if-not\", \"if-some\", \"ifn?\", \"import\", \"in-ns\", \"inc\", \"inc'\",\n \"indexed?\", \"init-proxy\", \"inst-ms\", \"inst-ms*\", \"inst?\", \"instance?\",\n \"int\", \"int-array\", \"int?\", \"integer?\", \"interleave\", \"intern\",\n \"interpose\", \"into\", \"into-array\", \"ints\", \"io!\", \"isa?\", \"iterate\",\n \"iterator-seq\", \"juxt\", \"keep\", \"keep-indexed\", \"key\", \"keys\", \"keyword\",\n \"keyword?\", \"last\", \"lazy-cat\", \"lazy-seq\", \"let\", \"letfn\", \"line-seq\",\n \"list\", \"list*\", \"list?\", \"load\", \"load-file\", \"load-reader\",\n \"load-string\", \"loaded-libs\", \"locking\", \"long\", \"long-array\", \"longs\",\n \"loop\", \"macroexpand\", \"macroexpand-1\", \"make-array\", \"make-hierarchy\",\n \"map\", \"map-entry?\", \"map-indexed\", \"map?\", \"mapcat\", \"mapv\", \"max\",\n \"max-key\", \"memfn\", \"memoize\", \"merge\", \"merge-with\", \"meta\",\n \"method-sig\", \"methods\", \"min\", \"min-key\", \"mix-collection-hash\", \"mod\",\n \"munge\", \"name\", \"namespace\", \"namespace-munge\", \"nat-int?\", \"neg-int?\",\n \"neg?\", \"newline\", \"next\", \"nfirst\", \"nil?\", \"nnext\", \"not\", \"not-any?\",\n \"not-empty\", \"not-every?\", \"not=\", \"ns\", \"ns-aliases\", \"ns-imports\",\n \"ns-interns\", \"ns-map\", \"ns-name\", \"ns-publics\", \"ns-refers\",\n \"ns-resolve\", \"ns-unalias\", \"ns-unmap\", \"nth\", \"nthnext\", \"nthrest\",\n \"num\", \"number?\", \"numerator\", \"object-array\", \"odd?\", \"or\", \"parents\",\n \"partial\", \"partition\", \"partition-all\", \"partition-by\", \"pcalls\", \"peek\",\n \"persistent!\", \"pmap\", \"pop\", \"pop!\", \"pop-thread-bindings\", \"pos-int?\",\n \"pos?\", \"pr\", \"pr-str\", \"prefer-method\", \"prefers\",\n \"primitives-classnames\", \"print\", \"print-ctor\", \"print-dup\",\n \"print-method\", \"print-simple\", \"print-str\", \"printf\", \"println\",\n \"println-str\", \"prn\", \"prn-str\", \"promise\", \"proxy\",\n \"proxy-call-with-super\", \"proxy-mappings\", \"proxy-name\", \"proxy-super\",\n \"push-thread-bindings\", \"pvalues\", \"qualified-ident?\",\n \"qualified-keyword?\", \"qualified-symbol?\", \"quot\", \"rand\", \"rand-int\",\n \"rand-nth\", \"random-sample\", \"range\", \"ratio?\", \"rational?\",\n \"rationalize\", \"re-find\", \"re-groups\", \"re-matcher\", \"re-matches\",\n \"re-pattern\", \"re-seq\", \"read\", \"read-line\", \"read-string\",\n \"reader-conditional\", \"reader-conditional?\", \"realized?\", \"record?\",\n \"reduce\", \"reduce-kv\", \"reduced\", \"reduced?\", \"reductions\", \"ref\",\n \"ref-history-count\", \"ref-max-history\", \"ref-min-history\", \"ref-set\",\n \"refer\", \"refer-clojure\", \"reify\", \"release-pending-sends\", \"rem\",\n \"remove\", \"remove-all-methods\", \"remove-method\", \"remove-ns\",\n \"remove-watch\", \"repeat\", \"repeatedly\", \"replace\", \"replicate\", \"require\",\n \"reset!\", \"reset-meta!\", \"reset-vals!\", \"resolve\", \"rest\",\n \"restart-agent\", \"resultset-seq\", \"reverse\", \"reversible?\", \"rseq\",\n \"rsubseq\", \"run!\", \"satisfies?\", \"second\", \"select-keys\", \"send\",\n \"send-off\", \"send-via\", \"seq\", \"seq?\", \"seqable?\", \"seque\", \"sequence\",\n \"sequential?\", \"set\", \"set-agent-send-executor!\",\n \"set-agent-send-off-executor!\", \"set-error-handler!\", \"set-error-mode!\",\n \"set-validator!\", \"set?\", \"short\", \"short-array\", \"shorts\", \"shuffle\",\n \"shutdown-agents\", \"simple-ident?\", \"simple-keyword?\", \"simple-symbol?\",\n \"slurp\", \"some\", \"some->\", \"some->>\", \"some-fn\", \"some?\", \"sort\",\n \"sort-by\", \"sorted-map\", \"sorted-map-by\", \"sorted-set\", \"sorted-set-by\",\n \"sorted?\", \"special-symbol?\", \"spit\", \"split-at\", \"split-with\", \"str\",\n \"string?\", \"struct\", \"struct-map\", \"subs\", \"subseq\", \"subvec\", \"supers\",\n \"swap!\", \"swap-vals!\", \"symbol\", \"symbol?\", \"sync\", \"tagged-literal\",\n \"tagged-literal?\", \"take\", \"take-last\", \"take-nth\", \"take-while\", \"test\",\n \"the-ns\", \"thread-bound?\", \"time\", \"to-array\", \"to-array-2d\",\n \"trampoline\", \"transduce\", \"transient\", \"tree-seq\", \"true?\", \"type\",\n \"unchecked-add\", \"unchecked-add-int\", \"unchecked-byte\", \"unchecked-char\",\n \"unchecked-dec\", \"unchecked-dec-int\", \"unchecked-divide-int\",\n \"unchecked-double\", \"unchecked-float\", \"unchecked-inc\",\n \"unchecked-inc-int\", \"unchecked-int\", \"unchecked-long\",\n \"unchecked-multiply\", \"unchecked-multiply-int\", \"unchecked-negate\",\n \"unchecked-negate-int\", \"unchecked-remainder-int\", \"unchecked-short\",\n \"unchecked-subtract\", \"unchecked-subtract-int\", \"underive\", \"unquote\",\n \"unquote-splicing\", \"unreduced\", \"unsigned-bit-shift-right\", \"update\",\n \"update-in\", \"update-proxy\", \"uri?\", \"use\", \"uuid?\", \"val\", \"vals\",\n \"var-get\", \"var-set\", \"var?\", \"vary-meta\", \"vec\", \"vector\", \"vector-of\",\n \"vector?\", \"volatile!\", \"volatile?\", \"vreset!\", \"vswap!\", \"when\",\n \"when-first\", \"when-let\", \"when-not\", \"when-some\", \"while\",\n \"with-bindings\", \"with-bindings*\", \"with-in-str\", \"with-loading-context\",\n \"with-local-vars\", \"with-meta\", \"with-open\", \"with-out-str\",\n \"with-precision\", \"with-redefs\", \"with-redefs-fn\", \"xml-seq\", \"zero?\",\n \"zipmap\"];\nvar haveBodyParameter = [\n \"->\", \"->>\", \"as->\", \"binding\", \"bound-fn\", \"case\", \"catch\", \"comment\",\n \"cond\", \"cond->\", \"cond->>\", \"condp\", \"def\", \"definterface\", \"defmethod\",\n \"defn\", \"defmacro\", \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\",\n \"do\", \"doseq\", \"dotimes\", \"doto\", \"extend\", \"extend-protocol\",\n \"extend-type\", \"fn\", \"for\", \"future\", \"if\", \"if-let\", \"if-not\", \"if-some\",\n \"let\", \"letfn\", \"locking\", \"loop\", \"ns\", \"proxy\", \"reify\", \"struct-map\",\n \"some->\", \"some->>\", \"try\", \"when\", \"when-first\", \"when-let\", \"when-not\",\n \"when-some\", \"while\", \"with-bindings\", \"with-bindings*\", \"with-in-str\",\n \"with-loading-context\", \"with-local-vars\", \"with-meta\", \"with-open\",\n \"with-out-str\", \"with-precision\", \"with-redefs\", \"with-redefs-fn\"];\n\nvar atom = createLookupMap(atoms);\nvar specialForm = createLookupMap(specialForms);\nvar coreSymbol = createLookupMap(coreSymbols);\nvar hasBodyParameter = createLookupMap(haveBodyParameter);\nvar delimiter = /^(?:[\\\\\\[\\]\\s\"(),;@^`{}~]|$)/;\nvar numberLiteral = /^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/;\nvar characterLiteral = /^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\n// simple-namespace := /^[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*/\n// simple-symbol := /^(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)/\n// qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>\nvar qualifiedSymbol = /^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\nfunction base(stream, state) {\n if (stream.eatSpace() || stream.eat(\",\")) return [\"space\", null];\n if (stream.match(numberLiteral)) return [null, \"number\"];\n if (stream.match(characterLiteral)) return [null, \"string.special\"];\n if (stream.eat(/^\"/)) return (state.tokenize = inString)(stream, state);\n if (stream.eat(/^[(\\[{]/)) return [\"open\", \"bracket\"];\n if (stream.eat(/^[)\\]}]/)) return [\"close\", \"bracket\"];\n if (stream.eat(/^;/)) {stream.skipToEnd(); return [\"space\", \"comment\"];}\n if (stream.eat(/^[#'@^`~]/)) return [null, \"meta\"];\n\n var matches = stream.match(qualifiedSymbol);\n var symbol = matches && matches[0];\n\n if (!symbol) {\n // advance stream by at least one character so we don't get stuck.\n stream.next();\n stream.eatWhile(function (c) {return !is(c, delimiter);});\n return [null, \"error\"];\n }\n\n if (symbol === \"comment\" && state.lastToken === \"(\")\n return (state.tokenize = inComment)(stream, state);\n if (is(symbol, atom) || symbol.charAt(0) === \":\") return [\"symbol\", \"atom\"];\n if (is(symbol, specialForm) || is(symbol, coreSymbol)) return [\"symbol\", \"keyword\"];\n if (state.lastToken === \"(\") return [\"symbol\", \"builtin\"]; // other operator\n\n return [\"symbol\", \"variable\"];\n}\n\nfunction inString(stream, state) {\n var escaped = false, next;\n\n while (next = stream.next()) {\n if (next === \"\\\"\" && !escaped) {state.tokenize = base; break;}\n escaped = !escaped && next === \"\\\\\";\n }\n\n return [null, \"string\"];\n}\n\nfunction inComment(stream, state) {\n var parenthesisCount = 1;\n var next;\n\n while (next = stream.next()) {\n if (next === \")\") parenthesisCount--;\n if (next === \"(\") parenthesisCount++;\n if (parenthesisCount === 0) {\n stream.backUp(1);\n state.tokenize = base;\n break;\n }\n }\n\n return [\"space\", \"comment\"];\n}\n\nfunction createLookupMap(words) {\n var obj = {};\n\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n\n return obj;\n}\n\nfunction is(value, test) {\n if (test instanceof RegExp) return test.test(value);\n if (test instanceof Object) return test.propertyIsEnumerable(value);\n}\n\nexport const clojure = {\n name: \"clojure\",\n startState: function () {\n return {\n ctx: {prev: null, start: 0, indentTo: 0},\n lastToken: null,\n tokenize: base\n };\n },\n\n token: function (stream, state) {\n if (stream.sol() && (typeof state.ctx.indentTo !== \"number\"))\n state.ctx.indentTo = state.ctx.start + 1;\n\n var typeStylePair = state.tokenize(stream, state);\n var type = typeStylePair[0];\n var style = typeStylePair[1];\n var current = stream.current();\n\n if (type !== \"space\") {\n if (state.lastToken === \"(\" && state.ctx.indentTo === null) {\n if (type === \"symbol\" && is(current, hasBodyParameter))\n state.ctx.indentTo = state.ctx.start + stream.indentUnit;\n else state.ctx.indentTo = \"next\";\n } else if (state.ctx.indentTo === \"next\") {\n state.ctx.indentTo = stream.column();\n }\n\n state.lastToken = current;\n }\n\n if (type === \"open\")\n state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n else if (type === \"close\") state.ctx = state.ctx.prev || state.ctx;\n\n return style;\n },\n\n indent: function (state) {\n var i = state.ctx.indentTo;\n\n return (typeof i === \"number\") ?\n i :\n state.ctx.start + 1;\n },\n\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']},\n commentTokens: {line: \";;\"},\n autocomplete: [].concat(atoms, specialForms, coreSymbols)\n }\n};\n","var ERRORCLASS = \"error\";\n\nfunction wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n}\n\nvar operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\nvar delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\nvar identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\nvar atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;\n\nvar wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n \"is\", \"isnt\", \"in\",\n \"instanceof\", \"typeof\"]);\nvar indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\nvar commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\nvar keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\nindentKeywords = wordRegexp(indentKeywords);\n\n\nvar stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\nvar regexPrefixes = /^(\\/{3}|\\/)/;\nvar commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\nvar constants = wordRegexp(commonConstants);\n\n// Tokenizers\nfunction tokenBase(stream, state) {\n // Handle scope changes\n if (stream.sol()) {\n if (state.scope.align === null) state.scope.align = false;\n var scopeOffset = state.scope.offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n return \"indent\";\n } else if (lineOffset < scopeOffset) {\n return \"dedent\";\n }\n return null;\n } else {\n if (scopeOffset > 0) {\n dedent(stream, state);\n }\n }\n }\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle docco title comment (single line)\n if (stream.match(\"####\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle multi line comments\n if (stream.match(\"###\")) {\n state.tokenize = longComment;\n return state.tokenize(stream, state);\n }\n\n // Single line comment\n if (ch === \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle number literals\n if (stream.match(/^-?[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\d+\\.\\d*/)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\.\\d+/)) {\n floatLiteral = true;\n }\n\n if (floatLiteral) {\n // prevent from getting extra . on 1..\n if (stream.peek() == \".\"){\n stream.backUp(1);\n }\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^-?0x[0-9a-f]+/i)) {\n intLiteral = true;\n }\n // Decimal\n if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^-?0(?![\\dx])/i)) {\n intLiteral = true;\n }\n if (intLiteral) {\n return \"number\";\n }\n }\n\n // Handle strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenFactory(stream.current(), false, \"string\");\n return state.tokenize(stream, state);\n }\n // Handle regex literals\n if (stream.match(regexPrefixes)) {\n if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n state.tokenize = tokenFactory(stream.current(), true, \"string.special\");\n return state.tokenize(stream, state);\n } else {\n stream.backUp(1);\n }\n }\n\n\n\n // Handle operators and delimiters\n if (stream.match(operators) || stream.match(wordOperators)) {\n return \"operator\";\n }\n if (stream.match(delimiters)) {\n return \"punctuation\";\n }\n\n if (stream.match(constants)) {\n return \"atom\";\n }\n\n if (stream.match(atProp) || state.prop && stream.match(identifiers)) {\n return \"property\";\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(identifiers)) {\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return ERRORCLASS;\n}\n\nfunction tokenFactory(delimiter, singleline, outclass) {\n return function(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\/\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol()) {\n return outclass;\n }\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n return outclass;\n } else {\n stream.eat(/['\"\\/]/);\n }\n }\n if (singleline) {\n state.tokenize = tokenBase;\n }\n return outclass;\n };\n}\n\nfunction longComment(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^#]/);\n if (stream.match(\"###\")) {\n state.tokenize = tokenBase;\n break;\n }\n stream.eatWhile(\"#\");\n }\n return \"comment\";\n}\n\nfunction indent(stream, state, type = \"coffee\") {\n var offset = 0, align = false, alignOffset = null;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (scope.type === \"coffee\" || scope.type == \"}\") {\n offset = scope.offset + stream.indentUnit;\n break;\n }\n }\n if (type !== \"coffee\") {\n align = null;\n alignOffset = stream.column() + stream.current().length;\n } else if (state.scope.align) {\n state.scope.align = false;\n }\n state.scope = {\n offset: offset,\n type: type,\n prev: state.scope,\n align: align,\n alignOffset: alignOffset\n };\n}\n\nfunction dedent(stream, state) {\n if (!state.scope.prev) return;\n if (state.scope.type === \"coffee\") {\n var _indent = stream.indentation();\n var matched = false;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (_indent === scope.offset) {\n matched = true;\n break;\n }\n }\n if (!matched) {\n return true;\n }\n while (state.scope.prev && state.scope.offset !== _indent) {\n state.scope = state.scope.prev;\n }\n return false;\n } else {\n state.scope = state.scope.prev;\n return false;\n }\n}\n\nfunction tokenLexer(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle scope changes.\n if (current === \"return\") {\n state.dedent = true;\n }\n if (((current === \"->\" || current === \"=>\") && stream.eol())\n || style === \"indent\") {\n indent(stream, state);\n }\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index !== -1) {\n indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n }\n if (indentKeywords.exec(current)){\n indent(stream, state);\n }\n if (current == \"then\"){\n dedent(stream, state);\n }\n\n\n if (style === \"dedent\") {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index !== -1) {\n while (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n if (state.scope.type == current)\n state.scope = state.scope.prev;\n }\n if (state.dedent && stream.eol()) {\n if (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n state.dedent = false;\n }\n\n return style == \"indent\" || style == \"dedent\" ? null : style;\n}\n\nexport const coffeeScript = {\n name: \"coffeescript\",\n startState: function() {\n return {\n tokenize: tokenBase,\n scope: {offset: 0, type:\"coffee\", prev: null, align: false},\n prop: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var fillAlign = state.scope.align === null && state.scope;\n if (fillAlign && stream.sol()) fillAlign.align = false;\n\n var style = tokenLexer(stream, state);\n if (style && style != \"comment\") {\n if (fillAlign) fillAlign.align = true;\n state.prop = style == \"punctuation\" && stream.current() == \".\"\n }\n\n return style;\n },\n\n indent: function(state, text) {\n if (state.tokenize != tokenBase) return 0;\n var scope = state.scope;\n var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n var closes = closer && scope.type === text.charAt(0);\n if (scope.align)\n return scope.alignOffset - (closes ? 1 : 0);\n else\n return (closes ? scope.prev : scope).offset;\n },\n\n languageData: {\n commentTokens: {line: \"#\"}\n }\n};\n","function Context(indented, column, type, info, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.info = info;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\" && type != \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n for (;;) {\n if (!context || context.type == \"top\") return true;\n if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n context = context.prev;\n }\n}\n\nexport function clike(parserConfig) {\n var statementIndentUnit = parserConfig.statementIndentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n keywords = parserConfig.keywords || {},\n types = parserConfig.types || {},\n builtin = parserConfig.builtin || {},\n blockKeywords = parserConfig.blockKeywords || {},\n defKeywords = parserConfig.defKeywords || {},\n atoms = parserConfig.atoms || {},\n hooks = parserConfig.hooks || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false,\n indentSwitch = parserConfig.indentSwitch !== false,\n namespaceSeparator = parserConfig.namespaceSeparator,\n isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n numberStart = parserConfig.numberStart || /[\\d\\.]/,\n number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n // An optional function that takes a {string} token and returns true if it\n // should be treated as a builtin.\n isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n var curPunc, isDefKeyword;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (numberStart.test(ch)) {\n stream.backUp(1)\n if (stream.match(number)) return \"number\"\n stream.next()\n }\n if (isPunctuationChar.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n return \"operator\";\n }\n stream.eatWhile(isIdentifierChar);\n if (namespaceSeparator) while (stream.match(namespaceSeparator))\n stream.eatWhile(isIdentifierChar);\n\n var cur = stream.current();\n if (contains(keywords, cur)) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n if (contains(defKeywords, cur)) isDefKeyword = true;\n return \"keyword\";\n }\n if (contains(types, cur)) return \"type\";\n if (contains(builtin, cur)\n || (isReservedIdentifier && isReservedIdentifier(cur))) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n return \"builtin\";\n }\n if (contains(atoms, cur)) return \"atom\";\n return \"variable\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function maybeEOL(stream, state) {\n if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n }\n\n // Interface\n\n return {\n name: parserConfig.name,\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", null, false),\n indented: 0,\n startOfLine: true,\n prevToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n curPunc = isDefKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n while (state.context.type == \"statement\") popContext(state);\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n pushContext(state, stream.column(), \"statement\", stream.current());\n }\n\n if (style == \"variable\" &&\n ((state.prevToken == \"def\" ||\n (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n style = \"def\";\n\n if (hooks.token) {\n var result = hooks.token(stream, state, style);\n if (result !== undefined) style = result;\n }\n\n if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n state.startOfLine = false;\n state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n maybeEOL(stream, state);\n return style;\n },\n\n indent: function(state, textAfter, context) {\n if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine && isTopScope(state.context))\n return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n if (parserConfig.dontIndentStatements)\n while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n ctx = ctx.prev\n if (hooks.indent) {\n var hook = hooks.indent(state, ctx, textAfter, context.unit);\n if (typeof hook == \"number\") return hook\n }\n var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n return ctx.indented\n }\n if (ctx.type == \"statement\")\n return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit || context.unit);\n if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n return ctx.column + (closing ? 0 : 1);\n if (ctx.type == \")\" && !closing)\n return ctx.indented + (statementIndentUnit || context.unit);\n\n return ctx.indented + (closing ? 0 : context.unit) +\n (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? context.unit : 0);\n },\n\n languageData: {\n indentOnInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n autocomplete: Object.keys(keywords).concat(Object.keys(types)).concat(Object.keys(builtin)).concat(Object.keys(atoms)),\n ...parserConfig.languageData\n }\n };\n};\n\nfunction words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\nfunction contains(words, word) {\n if (typeof words === \"function\") {\n return words(word);\n } else {\n return words.propertyIsEnumerable(word);\n }\n}\nvar cKeywords = \"auto if break case register continue return default do sizeof \" +\n \"static else struct switch extern typedef union for goto while enum const \" +\n \"volatile inline restrict asm fortran\";\n\n// Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\nvar cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n \"explicit export final friend import module mutable namespace new noexcept \" +\n \"not not_eq operator or or_eq override private protected public \" +\n \"reinterpret_cast requires static_assert static_cast template this \" +\n \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\nvar objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\nvar objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n// Do not use this. Use the cTypes function below. This is global just to avoid\n// excessive calls when cTypes is being called multiple times during a parse.\nvar basicCTypes = words(\"int long char short double float unsigned signed \" +\n \"void bool\");\n\n// Do not use this. Use the objCTypes function below. This is global just to avoid\n// excessive calls when objCTypes is being called multiple times during a parse.\nvar basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n// Returns true if identifier is a \"C\" type.\n// C type is defined as those that are reserved by the compiler (basicTypes),\n// and those that end in _t (Reserved by POSIX for types)\n// http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\nfunction cTypes(identifier) {\n return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n}\n\n// Returns true if identifier is a \"Objective C\" type.\nfunction objCTypes(identifier) {\n return cTypes(identifier) || contains(basicObjCTypes, identifier);\n}\n\nvar cBlockKeywords = \"case do else for if switch while struct enum union\";\nvar cDefKeywords = \"struct enum union\";\n\nfunction cppHook(stream, state) {\n if (!state.startOfLine) return false\n for (var ch, next = null; ch = stream.peek();) {\n if (ch == \"\\\\\" && stream.match(/^.$/)) {\n next = cppHook\n break\n } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n break\n }\n stream.next()\n }\n state.tokenize = next\n return \"meta\"\n}\n\nfunction pointerHook(_stream, state) {\n if (state.prevToken == \"type\") return \"type\";\n return false;\n}\n\n// For C and C++ (and ObjC): identifiers starting with __\n// or _ followed by a capital letter are reserved for the compiler.\nfunction cIsReservedIdentifier(token) {\n if (!token || token.length < 2) return false;\n if (token[0] != '_') return false;\n return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n}\n\nfunction cpp14Literal(stream) {\n stream.eatWhile(/[\\w\\.']/);\n return \"number\";\n}\n\nfunction cpp11StringHook(stream, state) {\n stream.backUp(1);\n // Raw strings.\n if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n if (!match) {\n return false;\n }\n state.cpp11RawStringDelim = match[1];\n state.tokenize = tokenRawString;\n return tokenRawString(stream, state);\n }\n // Unicode strings/chars.\n if (stream.match(/^(?:u8|u|U|L)/)) {\n if (stream.match(/^[\"']/, /* eat */ false)) {\n return \"string\";\n }\n return false;\n }\n // Ignore this hook.\n stream.next();\n return false;\n}\n\nfunction cppLooksLikeConstructor(word) {\n var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n return lastTwo && lastTwo[1] == lastTwo[2];\n}\n\n// C#-style strings where \"\" escapes a quote.\nfunction tokenAtString(stream, state) {\n var next;\n while ((next = stream.next()) != null) {\n if (next == '\"' && !stream.eat('\"')) {\n state.tokenize = null;\n break;\n }\n }\n return \"string\";\n}\n\n// C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n// <delim> can be a string up to 16 characters long.\nfunction tokenRawString(stream, state) {\n // Escape characters that have special regex meanings.\n var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n if (match)\n state.tokenize = null;\n else\n stream.skipToEnd();\n return \"string\";\n}\n\nexport const c = clike({\n name: \"c\",\n keywords: words(cKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n defKeywords: words(cDefKeywords),\n typeFirstDefinitions: true,\n atoms: words(\"NULL true false\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const cpp = clike({\n name: \"cpp\",\n keywords: words(cKeywords + \" \" + cppKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords + \" class try catch\"),\n defKeywords: words(cDefKeywords + \" class namespace\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false NULL nullptr\"),\n dontIndentStatements: /^template$/,\n isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n});\n\nexport const java = clike({\n name: \"java\",\n keywords: words(\"abstract assert break case catch class const continue default \" +\n \"do else enum extends final finally for goto if implements import \" +\n \"instanceof interface native new package private protected public \" +\n \"return static strictfp super switch synchronized this throw throws transient \" +\n \"try volatile while @interface\"),\n types: words(\"var byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n blockKeywords: words(\"catch class do else finally for if switch try while\"),\n defKeywords: words(\"class interface enum @interface\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n hooks: {\n \"@\": function(stream) {\n // Don't match the @interface keyword.\n if (stream.match('interface', false)) return false;\n\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match(/\"\"$/)) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n }\n }\n})\n\nexport const csharp = clike({\n name: \"csharp\",\n keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n \" default delegate do else enum event explicit extern finally fixed for\" +\n \" foreach goto if implicit in init interface internal is lock namespace new\" +\n \" operator out override params private protected public readonly record ref required return sealed\" +\n \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n \" global group into join let orderby partial remove select set value var yield\"),\n types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n \" UInt64 bool byte char decimal double short int long object\" +\n \" sbyte float string ushort uint ulong\"),\n blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n defKeywords: words(\"class interface namespace record struct var\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream, state) {\n if (stream.eat('\"')) {\n state.tokenize = tokenAtString;\n return tokenAtString(stream, state);\n }\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n }\n});\n\nfunction tokenTripleString(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"\"\"')) {\n state.tokenize = null;\n break;\n }\n escaped = stream.next() == \"\\\\\" && !escaped;\n }\n return \"string\";\n}\n\nfunction tokenNestedComment(depth) {\n return function (stream, state) {\n var ch\n while (ch = stream.next()) {\n if (ch == \"*\" && stream.eat(\"/\")) {\n if (depth == 1) {\n state.tokenize = null\n break\n } else {\n state.tokenize = tokenNestedComment(depth - 1)\n return state.tokenize(stream, state)\n }\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n state.tokenize = tokenNestedComment(depth + 1)\n return state.tokenize(stream, state)\n }\n }\n return \"comment\"\n }\n}\n\nexport const scala = clike({\n name: \"scala\",\n keywords: words(\n /* scala */\n \"abstract case catch class def do else extends final finally for forSome if \" +\n \"implicit import lazy match new null object override package private protected return \" +\n \"sealed super this throw trait try type val var while with yield _ \" +\n\n /* package scala */\n \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n \"readChar readInt readLong readFloat readDouble\"\n ),\n types: words(\n \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n ),\n multiLineStrings: true,\n blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n defKeywords: words(\"class enum def object package trait type val var\"),\n atoms: words(\"true false null\"),\n indentStatements: false,\n indentSwitch: false,\n isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match('\"\"')) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"character\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n \"=\": function(stream, state) {\n var cx = state.context\n if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n return \"operator\"\n } else {\n return false\n }\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nfunction tokenKotlinString(tripleString){\n return function (stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n next = stream.next();\n if(!escaped && next == \"$\" && stream.match('{'))\n stream.skipTo(\"}\");\n escaped = !escaped && next == \"\\\\\" && !tripleString;\n }\n if (end || !tripleString)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const kotlin = clike({\n name: \"kotlin\",\n keywords: words(\n /*keywords*/\n \"package as typealias class interface this super val operator \" +\n \"var fun for is in This throw return annotation \" +\n \"break continue object if else while do try when !in !is as? \" +\n\n /*soft keywords*/\n \"file import where by get set abstract enum open inner override private public internal \" +\n \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n \"external annotation crossinline const operator infix suspend actual expect setparam\"\n ),\n types: words(\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n ),\n intendSwitch: false,\n indentStatements: false,\n multiLineStrings: true,\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n defKeywords: words(\"class val var object interface fun\"),\n atoms: words(\"true false null this\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '*': function(_stream, state) {\n return state.prevToken == '.' ? 'variable' : 'operator';\n },\n '\"': function(stream, state) {\n state.tokenize = tokenKotlinString(stream.match('\"\"'));\n return state.tokenize(stream, state);\n },\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenNestedComment(1);\n return state.tokenize(stream, state)\n },\n indent: function(state, ctx, textAfter, indentUnit) {\n var firstChar = textAfter && textAfter.charAt(0);\n if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n return state.indented;\n if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n state.prevToken == \"variable\" && firstChar == \".\" ||\n (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n return indentUnit * 2 + ctx.indented;\n if (ctx.align && ctx.type == \"}\")\n return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nexport const shader = clike({\n name: \"shader\",\n keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n \"sampler1DShadow sampler2DShadow \" +\n \"const attribute uniform varying \" +\n \"break continue discard return \" +\n \"for while do if else struct \" +\n \"in out inout\"),\n types: words(\"float int bool void \" +\n \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n \"mat2 mat3 mat4\"),\n blockKeywords: words(\"for while do if else struct\"),\n builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n \"pow exp log exp2 sqrt inversesqrt \" +\n \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n \"length distance dot cross normalize ftransform faceforward \" +\n \"reflect refract matrixCompMult \" +\n \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n \"equal notEqual any all not \" +\n \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n \"textureCube textureCubeLod \" +\n \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n \"dFdx dFdy fwidth \" +\n \"noise1 noise2 noise3 noise4\"),\n atoms: words(\"true false \" +\n \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n \"gl_FogCoord gl_PointCoord \" +\n \"gl_Position gl_PointSize gl_ClipVertex \" +\n \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n \"gl_TexCoord gl_FogFragCoord \" +\n \"gl_FragCoord gl_FrontFacing \" +\n \"gl_FragData gl_FragDepth \" +\n \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n \"gl_ProjectionMatrixInverseTranspose \" +\n \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n \"gl_TextureMatrixInverseTranspose \" +\n \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n \"gl_FogParameters \" +\n \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n \"gl_MaxDrawBuffers\"),\n indentSwitch: false,\n hooks: {\"#\": cppHook}\n})\n\nexport const nesC = clike({\n name: \"nesc\",\n keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n \"signal task uses abstract extends\"),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n atoms: words(\"null true false\"),\n hooks: {\"#\": cppHook}\n})\n\nexport const objectiveC = clike({\n name: \"objectivec\",\n keywords: words(cKeywords + \" \" + objCKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n dontIndentStatements: /^@.*$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const objectiveCpp = clike({\n name: \"objectivecpp\",\n keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n dontIndentStatements: /^@.*$|^template$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n})\n\nexport const squirrel = clike({\n name: \"squirrel\",\n keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n types: cTypes,\n blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n defKeywords: words(\"function local class\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\"#\": cppHook}\n})\n\n// Ceylon Strings need to deal with interpolation\nvar stringTokenizer = null;\nfunction tokenCeylonString(type) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"') &&\n (type == \"single\" || stream.match('\"\"'))) {\n end = true;\n break;\n }\n if (!escaped && stream.match('``')) {\n stringTokenizer = tokenCeylonString(type);\n end = true;\n break;\n }\n next = stream.next();\n escaped = type == \"single\" && !escaped && next == \"\\\\\";\n }\n if (end)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const ceylon = clike({\n name: \"ceylon\",\n keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n \" exists extends finally for function given if import in interface is let module new\" +\n \" nonempty object of out outer package return satisfies super switch then this throw\" +\n \" try value void while\"),\n types: function(word) {\n // In Ceylon all identifiers that start with an uppercase are types\n var first = word.charAt(0);\n return (first === first.toUpperCase() && first !== first.toLowerCase());\n },\n blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n defKeywords: words(\"class dynamic function interface module object package value\"),\n builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n numberStart: /[\\d#$]/,\n number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n multiLineStrings: true,\n typeFirstDefinitions: true,\n atoms: words(\"true false null larger smaller equal empty finished\"),\n indentSwitch: false,\n styleDefs: false,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n return state.tokenize(stream, state);\n },\n '`': function(stream, state) {\n if (!stringTokenizer || !stream.match('`')) return false;\n state.tokenize = stringTokenizer;\n stringTokenizer = null;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"string.special\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n token: function(_stream, state, style) {\n if ((style == \"variable\" || style == \"type\") &&\n state.prevToken == \".\") {\n return \"variableName.special\";\n }\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n})\n\nfunction pushInterpolationStack(state) {\n (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);\n}\n\nfunction popInterpolationStack(state) {\n return (state.interpolationStack || (state.interpolationStack = [])).pop();\n}\n\nfunction sizeInterpolationStack(state) {\n return state.interpolationStack ? state.interpolationStack.length : 0;\n}\n\nfunction tokenDartString(quote, stream, state, raw) {\n var tripleQuoted = false;\n if (stream.eat(quote)) {\n if (stream.eat(quote)) tripleQuoted = true;\n else return \"string\"; //empty string\n }\n function tokenStringHelper(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!raw && !escaped && stream.peek() == \"$\") {\n pushInterpolationStack(state);\n state.tokenize = tokenInterpolation;\n return \"string\";\n }\n var next = stream.next();\n if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {\n state.tokenize = null;\n break;\n }\n escaped = !raw && !escaped && next == \"\\\\\";\n }\n return \"string\";\n }\n state.tokenize = tokenStringHelper;\n return tokenStringHelper(stream, state);\n}\n\nfunction tokenInterpolation(stream, state) {\n stream.eat(\"$\");\n if (stream.eat(\"{\")) {\n // let clike handle the content of ${...},\n // we take over again when \"}\" appears (see hooks).\n state.tokenize = null;\n } else {\n state.tokenize = tokenInterpolationIdentifier;\n }\n return null;\n}\n\nfunction tokenInterpolationIdentifier(stream, state) {\n stream.eatWhile(/[\\w_]/);\n state.tokenize = popInterpolationStack(state);\n return \"variable\";\n}\n\nexport const dart = clike({\n name: \"dart\",\n keywords: words(\"this super static final const abstract class extends external factory \" +\n \"implements mixin get native set typedef with enum throw rethrow assert break case \" +\n \"continue default in return new deferred async await covariant try catch finally \" +\n \"do else for if switch while import library export part of show hide is as extension \" +\n \"on yield late required sealed base interface when inline\"),\n blockKeywords: words(\"try catch finally do else for if switch while\"),\n builtin: words(\"void bool num int double dynamic var String Null Never\"),\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\.]/);\n return \"meta\";\n },\n\n // custom string handling to deal with triple-quoted strings and string interpolation\n \"'\": function(stream, state) {\n return tokenDartString(\"'\", stream, state, false);\n },\n \"\\\"\": function(stream, state) {\n return tokenDartString(\"\\\"\", stream, state, false);\n },\n \"r\": function(stream, state) {\n var peek = stream.peek();\n if (peek == \"'\" || peek == \"\\\"\") {\n return tokenDartString(stream.next(), stream, state, true);\n }\n return false;\n },\n\n \"}\": function(_stream, state) {\n // \"}\" is end of interpolation, if interpolation stack is non-empty\n if (sizeInterpolationStack(state) > 0) {\n state.tokenize = popInterpolationStack(state);\n return null;\n }\n return false;\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n },\n token: function(stream, _, style) {\n if (style == \"variable\") {\n // Assume uppercase symbols are classes\n var isUpper = RegExp('^[_$]*[A-Z][a-zA-Z0-9_$]*$','g');\n if (isUpper.test(stream.current())) {\n return 'type';\n }\n }\n }\n }\n})\n","export function mkCSS(parserConfig) {\n parserConfig = {...defaults, ...parserConfig}\n var inline = parserConfig.inline\n\n var tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = parserConfig.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"def\", \"variable-definition\");\n return ret(\"variableName\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variableName.function\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : stream.indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override = \"error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(stream.current())) {\n override = \"error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variableName.constant\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n name: parserConfig.name,\n startState: function() {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter, iCx) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - iCx.unit);\n }\n }\n return indent;\n },\n\n languageData: {\n indentOnInput: /^\\s*\\}$/,\n commentTokens: {line: lineComment, block: {open: \"/*\", close: \"*/\"}},\n autocomplete: allWords\n }\n };\n};\n\nfunction keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n}\n\nvar documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n], documentTypes = keySet(documentTypes_);\n\nvar mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n], mediaTypes = keySet(mediaTypes_);\n\nvar mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\",\n \"dynamic-range\", \"video-dynamic-range\"\n], mediaFeatures = keySet(mediaFeatures_);\n\nvar mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\",\n \"standard\", \"high\"\n], mediaValueKeywords = keySet(mediaValueKeywords_);\n\nvar propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n], propertyKeywords = keySet(propertyKeywords_);\n\nvar nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\nvar fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n], fontProperties = keySet(fontProperties_);\n\nvar counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n], counterDescriptors = keySet(counterDescriptors_);\n\nvar colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n], colorKeywords = keySet(colorKeywords_);\n\nvar valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"conic-gradient\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-play-button\", \"media-slider\", \"media-sliderthumb\",\n \"media-volume-slider\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\",\n \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\", \"repeating-radial-gradient\",\n \"repeating-conic-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n], valueKeywords = keySet(valueKeywords_);\n\nvar allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n\nexport const keywords = {properties: propertyKeywords_, colors: colorKeywords_,\n fonts: fontProperties_, values: valueKeywords_, all: allWords}\n\nconst defaults = {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n}\n\nexport const css = mkCSS({name: \"css\"})\n\nfunction tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n}\n\nexport const sCSS = mkCSS({\n name: \"scss\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName.special\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n }\n})\n\nexport const less = mkCSS({\n name: \"less\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n }\n})\n\nexport const gss = mkCSS({\n name: \"gss\",\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n})\n","var keywords = {\n \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true, \"error\": true,\n \"rune\":true, \"any\":true, \"comparable\":true\n};\n\nvar atoms = {\n \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"delete\":true, \"imag\":true,\n \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n \"println\":true, \"real\":true, \"recover\":true\n};\n\nvar isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\nvar curPunc;\n\nfunction tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (/[\\d\\.]/.test(ch)) {\n if (ch == \".\") {\n stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n } else if (ch == \"0\") {\n stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n } else {\n stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n }\n return \"number\";\n }\n if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n stream.eatWhile(isOperatorChar);\n return \"operator\";\n }\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n var cur = stream.current();\n if (keywords.propertyIsEnumerable(cur)) {\n if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n return \"keyword\";\n }\n if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n return \"variable\";\n}\n\nfunction tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && quote != \"`\" && next == \"\\\\\";\n }\n if (end || !(escaped || quote == \"`\"))\n state.tokenize = tokenBase;\n return \"string\";\n };\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n}\n\nfunction Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type) {\n return state.context = new Context(state.indented, col, type, null, state.context);\n}\nfunction popContext(state) {\n if (!state.context.prev) return;\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\n// Interface\n\nexport const go = {\n name: \"go\",\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", false),\n indented: 0,\n startOfLine: true\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n if (ctx.type == \"case\") ctx.type = \"}\";\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"case\") ctx.type = \"case\";\n else if (curPunc == \"}\" && ctx.type == \"}\") popContext(state);\n else if (curPunc == ctx.type) popContext(state);\n state.startOfLine = false;\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n if (state.tokenize != tokenBase && state.tokenize != null) return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) return ctx.indented;\n var closing = firstChar == ctx.type;\n if (ctx.align) return ctx.column + (closing ? 0 : 1);\n else return ctx.indented + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n indentOnInput: /^\\s([{}]|case |default\\s*:)$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}}\n }\n};\n\n","var words = {};\nfunction define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n};\n\nvar commonAtoms = [\"true\", \"false\"];\nvar commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\nvar commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]))\n return 'string.special'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n}\n\nfunction tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n};\n\nfunction tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n}\n\nvar tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n};\n\nfunction tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string.special\"\n }\n}\n\nfunction tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n};\n\nexport const shell = {\n name: \"shell\",\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n languageData: {\n autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n commentTokens: {line: \"#\"}\n }\n};\n"],"names":["atoms","specialForms","coreSymbols","atom","createLookupMap","specialForm","coreSymbol","hasBodyParameter","delimiter","numberLiteral","characterLiteral","qualifiedSymbol","base","stream","state","eatSpace","eat","match","tokenize","inString","skipToEnd","matches","symbol","lastToken","inComment","is","charAt","next","eatWhile","c","escaped","parenthesisCount","backUp","words","obj","i","length","value","test","RegExp","Object","propertyIsEnumerable","clojure","name","startState","ctx","prev","start","indentTo","token","sol","typeStylePair","type","style","current","indentUnit","column","indent","languageData","closeBrackets","brackets","commentTokens","line","autocomplete","concat","ERRORCLASS","wordRegexp","join","operators","delimiters","identifiers","atProp","wordOperators","indentKeywords","keywords","stringPrefixes","regexPrefixes","constants","tokenBase","scope","align","scopeOffset","offset","lineOffset","indentation","dedent","ch","peek","longComment","floatLiteral","intLiteral","tokenFactory","prop","singleline","outclass","eol","alignOffset","_indent","matched","coffeeScript","fillAlign","delimiter_index","indexOf","slice","exec","tokenLexer","text","closer","closes","Context","indented","info","this","pushContext","col","context","popContext","t","typeBefore","pos","prevToken","string","typeAtEndOfLine","isTopScope","clike","parserConfig","curPunc","isDefKeyword","statementIndentUnit","dontAlignCalls","types","builtin","blockKeywords","defKeywords","hooks","multiLineStrings","indentStatements","indentSwitch","namespaceSeparator","isPunctuationChar","numberStart","number","isOperatorChar","isIdentifierChar","isReservedIdentifier","quote","result","end","tokenComment","cur","contains","maybeEnd","maybeEOL","typeFirstDefinitions","startOfLine","undefined","styleDefs","textAfter","firstChar","closing","dontIndentStatements","hook","unit","switchBlock","allmanIndentation","indentOnInput","block","open","close","keys","str","split","word","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","pointerHook","_stream","cIsReservedIdentifier","toLowerCase","cpp14Literal","cpp11StringHook","cpp11RawStringDelim","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","delim","replace","cpp","u","U","L","R","java","tokenTripleString","csharp","tokenNestedComment","depth","scala","cx","kotlin","intendSwitch","tripleString","skipTo","shader","nesC","objectiveC","objectiveCpp","squirrel","stringTokenizer","tokenCeylonString","ceylon","first","toUpperCase","pushInterpolationStack","interpolationStack","push","popInterpolationStack","pop","tokenDartString","raw","tripleQuoted","tokenStringHelper","tokenInterpolation","tokenInterpolationIdentifier","dart","r","sizeInterpolationStack","_","mkCSS","override","inline","defaults","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","propertyKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenString","tokenParenthesized","pass","states","popAndPass","n","wordAsValue","hasOwnProperty","stateArg","top","atBlock","iCx","Math","max","allWords","keySet","array","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","fontProperties_","colorKeywords_","valueKeywords_","properties","colors","fonts","values","all","tokenCComment","css","sCSS","$","less","gss","break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","var","bool","byte","complex64","complex128","float32","float64","int8","int16","int32","int64","uint8","uint16","uint32","uint64","int","uint","uintptr","error","rune","any","comparable","true","false","iota","nil","append","cap","complex","copy","delete","imag","len","make","new","panic","print","println","real","recover","define","dict","commonAtoms","commonKeywords","commonCommands","tokens","unshift","tokenDollar","heredoc","shift","tokenStringStart","shell"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"legacy.js","sources":["../node_modules/@codemirror/legacy-modes/mode/clojure.js","../node_modules/@codemirror/legacy-modes/mode/coffeescript.js","../node_modules/@codemirror/legacy-modes/mode/clike.js","../node_modules/@codemirror/legacy-modes/mode/css.js","../node_modules/@codemirror/legacy-modes/mode/go.js","../node_modules/@codemirror/legacy-modes/mode/shell.js"],"sourcesContent":["var atoms = [\"false\", \"nil\", \"true\"];\nvar specialForms = [\".\", \"catch\", \"def\", \"do\", \"if\", \"monitor-enter\",\n \"monitor-exit\", \"new\", \"quote\", \"recur\", \"set!\", \"throw\", \"try\", \"var\"];\nvar coreSymbols = [\"*\", \"*'\", \"*1\", \"*2\", \"*3\", \"*agent*\",\n \"*allow-unresolved-vars*\", \"*assert*\", \"*clojure-version*\",\n \"*command-line-args*\", \"*compile-files*\", \"*compile-path*\",\n \"*compiler-options*\", \"*data-readers*\", \"*default-data-reader-fn*\", \"*e\",\n \"*err*\", \"*file*\", \"*flush-on-newline*\", \"*fn-loader*\", \"*in*\",\n \"*math-context*\", \"*ns*\", \"*out*\", \"*print-dup*\", \"*print-length*\",\n \"*print-level*\", \"*print-meta*\", \"*print-namespace-maps*\",\n \"*print-readably*\", \"*read-eval*\", \"*reader-resolver*\", \"*source-path*\",\n \"*suppress-read*\", \"*unchecked-math*\", \"*use-context-classloader*\",\n \"*verbose-defrecords*\", \"*warn-on-reflection*\", \"+\", \"+'\", \"-\", \"-'\",\n \"->\", \"->>\", \"->ArrayChunk\", \"->Eduction\", \"->Vec\", \"->VecNode\",\n \"->VecSeq\", \"-cache-protocol-fn\", \"-reset-methods\", \"..\", \"/\", \"<\", \"<=\",\n \"=\", \"==\", \">\", \">=\", \"EMPTY-NODE\", \"Inst\", \"StackTraceElement->vec\",\n \"Throwable->map\", \"accessor\", \"aclone\", \"add-classpath\", \"add-watch\",\n \"agent\", \"agent-error\", \"agent-errors\", \"aget\", \"alength\", \"alias\",\n \"all-ns\", \"alter\", \"alter-meta!\", \"alter-var-root\", \"amap\", \"ancestors\",\n \"and\", \"any?\", \"apply\", \"areduce\", \"array-map\", \"as->\", \"aset\",\n \"aset-boolean\", \"aset-byte\", \"aset-char\", \"aset-double\", \"aset-float\",\n \"aset-int\", \"aset-long\", \"aset-short\", \"assert\", \"assoc\", \"assoc!\",\n \"assoc-in\", \"associative?\", \"atom\", \"await\", \"await-for\", \"await1\",\n \"bases\", \"bean\", \"bigdec\", \"bigint\", \"biginteger\", \"binding\", \"bit-and\",\n \"bit-and-not\", \"bit-clear\", \"bit-flip\", \"bit-not\", \"bit-or\", \"bit-set\",\n \"bit-shift-left\", \"bit-shift-right\", \"bit-test\", \"bit-xor\", \"boolean\",\n \"boolean-array\", \"boolean?\", \"booleans\", \"bound-fn\", \"bound-fn*\",\n \"bound?\", \"bounded-count\", \"butlast\", \"byte\", \"byte-array\", \"bytes\",\n \"bytes?\", \"case\", \"cast\", \"cat\", \"char\", \"char-array\",\n \"char-escape-string\", \"char-name-string\", \"char?\", \"chars\", \"chunk\",\n \"chunk-append\", \"chunk-buffer\", \"chunk-cons\", \"chunk-first\", \"chunk-next\",\n \"chunk-rest\", \"chunked-seq?\", \"class\", \"class?\", \"clear-agent-errors\",\n \"clojure-version\", \"coll?\", \"comment\", \"commute\", \"comp\", \"comparator\",\n \"compare\", \"compare-and-set!\", \"compile\", \"complement\", \"completing\",\n \"concat\", \"cond\", \"cond->\", \"cond->>\", \"condp\", \"conj\", \"conj!\", \"cons\",\n \"constantly\", \"construct-proxy\", \"contains?\", \"count\", \"counted?\",\n \"create-ns\", \"create-struct\", \"cycle\", \"dec\", \"dec'\", \"decimal?\",\n \"declare\", \"dedupe\", \"default-data-readers\", \"definline\", \"definterface\",\n \"defmacro\", \"defmethod\", \"defmulti\", \"defn\", \"defn-\", \"defonce\",\n \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\", \"delay\", \"delay?\",\n \"deliver\", \"denominator\", \"deref\", \"derive\", \"descendants\", \"destructure\",\n \"disj\", \"disj!\", \"dissoc\", \"dissoc!\", \"distinct\", \"distinct?\", \"doall\",\n \"dorun\", \"doseq\", \"dosync\", \"dotimes\", \"doto\", \"double\", \"double-array\",\n \"double?\", \"doubles\", \"drop\", \"drop-last\", \"drop-while\", \"eduction\",\n \"empty\", \"empty?\", \"ensure\", \"ensure-reduced\", \"enumeration-seq\",\n \"error-handler\", \"error-mode\", \"eval\", \"even?\", \"every-pred\", \"every?\",\n \"ex-data\", \"ex-info\", \"extend\", \"extend-protocol\", \"extend-type\",\n \"extenders\", \"extends?\", \"false?\", \"ffirst\", \"file-seq\", \"filter\",\n \"filterv\", \"find\", \"find-keyword\", \"find-ns\", \"find-protocol-impl\",\n \"find-protocol-method\", \"find-var\", \"first\", \"flatten\", \"float\",\n \"float-array\", \"float?\", \"floats\", \"flush\", \"fn\", \"fn?\", \"fnext\", \"fnil\",\n \"for\", \"force\", \"format\", \"frequencies\", \"future\", \"future-call\",\n \"future-cancel\", \"future-cancelled?\", \"future-done?\", \"future?\",\n \"gen-class\", \"gen-interface\", \"gensym\", \"get\", \"get-in\", \"get-method\",\n \"get-proxy-class\", \"get-thread-bindings\", \"get-validator\", \"group-by\",\n \"halt-when\", \"hash\", \"hash-combine\", \"hash-map\", \"hash-ordered-coll\",\n \"hash-set\", \"hash-unordered-coll\", \"ident?\", \"identical?\", \"identity\",\n \"if-let\", \"if-not\", \"if-some\", \"ifn?\", \"import\", \"in-ns\", \"inc\", \"inc'\",\n \"indexed?\", \"init-proxy\", \"inst-ms\", \"inst-ms*\", \"inst?\", \"instance?\",\n \"int\", \"int-array\", \"int?\", \"integer?\", \"interleave\", \"intern\",\n \"interpose\", \"into\", \"into-array\", \"ints\", \"io!\", \"isa?\", \"iterate\",\n \"iterator-seq\", \"juxt\", \"keep\", \"keep-indexed\", \"key\", \"keys\", \"keyword\",\n \"keyword?\", \"last\", \"lazy-cat\", \"lazy-seq\", \"let\", \"letfn\", \"line-seq\",\n \"list\", \"list*\", \"list?\", \"load\", \"load-file\", \"load-reader\",\n \"load-string\", \"loaded-libs\", \"locking\", \"long\", \"long-array\", \"longs\",\n \"loop\", \"macroexpand\", \"macroexpand-1\", \"make-array\", \"make-hierarchy\",\n \"map\", \"map-entry?\", \"map-indexed\", \"map?\", \"mapcat\", \"mapv\", \"max\",\n \"max-key\", \"memfn\", \"memoize\", \"merge\", \"merge-with\", \"meta\",\n \"method-sig\", \"methods\", \"min\", \"min-key\", \"mix-collection-hash\", \"mod\",\n \"munge\", \"name\", \"namespace\", \"namespace-munge\", \"nat-int?\", \"neg-int?\",\n \"neg?\", \"newline\", \"next\", \"nfirst\", \"nil?\", \"nnext\", \"not\", \"not-any?\",\n \"not-empty\", \"not-every?\", \"not=\", \"ns\", \"ns-aliases\", \"ns-imports\",\n \"ns-interns\", \"ns-map\", \"ns-name\", \"ns-publics\", \"ns-refers\",\n \"ns-resolve\", \"ns-unalias\", \"ns-unmap\", \"nth\", \"nthnext\", \"nthrest\",\n \"num\", \"number?\", \"numerator\", \"object-array\", \"odd?\", \"or\", \"parents\",\n \"partial\", \"partition\", \"partition-all\", \"partition-by\", \"pcalls\", \"peek\",\n \"persistent!\", \"pmap\", \"pop\", \"pop!\", \"pop-thread-bindings\", \"pos-int?\",\n \"pos?\", \"pr\", \"pr-str\", \"prefer-method\", \"prefers\",\n \"primitives-classnames\", \"print\", \"print-ctor\", \"print-dup\",\n \"print-method\", \"print-simple\", \"print-str\", \"printf\", \"println\",\n \"println-str\", \"prn\", \"prn-str\", \"promise\", \"proxy\",\n \"proxy-call-with-super\", \"proxy-mappings\", \"proxy-name\", \"proxy-super\",\n \"push-thread-bindings\", \"pvalues\", \"qualified-ident?\",\n \"qualified-keyword?\", \"qualified-symbol?\", \"quot\", \"rand\", \"rand-int\",\n \"rand-nth\", \"random-sample\", \"range\", \"ratio?\", \"rational?\",\n \"rationalize\", \"re-find\", \"re-groups\", \"re-matcher\", \"re-matches\",\n \"re-pattern\", \"re-seq\", \"read\", \"read-line\", \"read-string\",\n \"reader-conditional\", \"reader-conditional?\", \"realized?\", \"record?\",\n \"reduce\", \"reduce-kv\", \"reduced\", \"reduced?\", \"reductions\", \"ref\",\n \"ref-history-count\", \"ref-max-history\", \"ref-min-history\", \"ref-set\",\n \"refer\", \"refer-clojure\", \"reify\", \"release-pending-sends\", \"rem\",\n \"remove\", \"remove-all-methods\", \"remove-method\", \"remove-ns\",\n \"remove-watch\", \"repeat\", \"repeatedly\", \"replace\", \"replicate\", \"require\",\n \"reset!\", \"reset-meta!\", \"reset-vals!\", \"resolve\", \"rest\",\n \"restart-agent\", \"resultset-seq\", \"reverse\", \"reversible?\", \"rseq\",\n \"rsubseq\", \"run!\", \"satisfies?\", \"second\", \"select-keys\", \"send\",\n \"send-off\", \"send-via\", \"seq\", \"seq?\", \"seqable?\", \"seque\", \"sequence\",\n \"sequential?\", \"set\", \"set-agent-send-executor!\",\n \"set-agent-send-off-executor!\", \"set-error-handler!\", \"set-error-mode!\",\n \"set-validator!\", \"set?\", \"short\", \"short-array\", \"shorts\", \"shuffle\",\n \"shutdown-agents\", \"simple-ident?\", \"simple-keyword?\", \"simple-symbol?\",\n \"slurp\", \"some\", \"some->\", \"some->>\", \"some-fn\", \"some?\", \"sort\",\n \"sort-by\", \"sorted-map\", \"sorted-map-by\", \"sorted-set\", \"sorted-set-by\",\n \"sorted?\", \"special-symbol?\", \"spit\", \"split-at\", \"split-with\", \"str\",\n \"string?\", \"struct\", \"struct-map\", \"subs\", \"subseq\", \"subvec\", \"supers\",\n \"swap!\", \"swap-vals!\", \"symbol\", \"symbol?\", \"sync\", \"tagged-literal\",\n \"tagged-literal?\", \"take\", \"take-last\", \"take-nth\", \"take-while\", \"test\",\n \"the-ns\", \"thread-bound?\", \"time\", \"to-array\", \"to-array-2d\",\n \"trampoline\", \"transduce\", \"transient\", \"tree-seq\", \"true?\", \"type\",\n \"unchecked-add\", \"unchecked-add-int\", \"unchecked-byte\", \"unchecked-char\",\n \"unchecked-dec\", \"unchecked-dec-int\", \"unchecked-divide-int\",\n \"unchecked-double\", \"unchecked-float\", \"unchecked-inc\",\n \"unchecked-inc-int\", \"unchecked-int\", \"unchecked-long\",\n \"unchecked-multiply\", \"unchecked-multiply-int\", \"unchecked-negate\",\n \"unchecked-negate-int\", \"unchecked-remainder-int\", \"unchecked-short\",\n \"unchecked-subtract\", \"unchecked-subtract-int\", \"underive\", \"unquote\",\n \"unquote-splicing\", \"unreduced\", \"unsigned-bit-shift-right\", \"update\",\n \"update-in\", \"update-proxy\", \"uri?\", \"use\", \"uuid?\", \"val\", \"vals\",\n \"var-get\", \"var-set\", \"var?\", \"vary-meta\", \"vec\", \"vector\", \"vector-of\",\n \"vector?\", \"volatile!\", \"volatile?\", \"vreset!\", \"vswap!\", \"when\",\n \"when-first\", \"when-let\", \"when-not\", \"when-some\", \"while\",\n \"with-bindings\", \"with-bindings*\", \"with-in-str\", \"with-loading-context\",\n \"with-local-vars\", \"with-meta\", \"with-open\", \"with-out-str\",\n \"with-precision\", \"with-redefs\", \"with-redefs-fn\", \"xml-seq\", \"zero?\",\n \"zipmap\"];\nvar haveBodyParameter = [\n \"->\", \"->>\", \"as->\", \"binding\", \"bound-fn\", \"case\", \"catch\", \"comment\",\n \"cond\", \"cond->\", \"cond->>\", \"condp\", \"def\", \"definterface\", \"defmethod\",\n \"defn\", \"defmacro\", \"defprotocol\", \"defrecord\", \"defstruct\", \"deftype\",\n \"do\", \"doseq\", \"dotimes\", \"doto\", \"extend\", \"extend-protocol\",\n \"extend-type\", \"fn\", \"for\", \"future\", \"if\", \"if-let\", \"if-not\", \"if-some\",\n \"let\", \"letfn\", \"locking\", \"loop\", \"ns\", \"proxy\", \"reify\", \"struct-map\",\n \"some->\", \"some->>\", \"try\", \"when\", \"when-first\", \"when-let\", \"when-not\",\n \"when-some\", \"while\", \"with-bindings\", \"with-bindings*\", \"with-in-str\",\n \"with-loading-context\", \"with-local-vars\", \"with-meta\", \"with-open\",\n \"with-out-str\", \"with-precision\", \"with-redefs\", \"with-redefs-fn\"];\n\nvar atom = createLookupMap(atoms);\nvar specialForm = createLookupMap(specialForms);\nvar coreSymbol = createLookupMap(coreSymbols);\nvar hasBodyParameter = createLookupMap(haveBodyParameter);\nvar delimiter = /^(?:[\\\\\\[\\]\\s\"(),;@^`{}~]|$)/;\nvar numberLiteral = /^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/;\nvar characterLiteral = /^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\n// simple-namespace := /^[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*/\n// simple-symbol := /^(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)/\n// qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>\nvar qualifiedSymbol = /^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~.][^\\\\\\[\\]\\s\"(),;@^`{}~.\\/]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/;\n\nfunction base(stream, state) {\n if (stream.eatSpace() || stream.eat(\",\")) return [\"space\", null];\n if (stream.match(numberLiteral)) return [null, \"number\"];\n if (stream.match(characterLiteral)) return [null, \"string.special\"];\n if (stream.eat(/^\"/)) return (state.tokenize = inString)(stream, state);\n if (stream.eat(/^[(\\[{]/)) return [\"open\", \"bracket\"];\n if (stream.eat(/^[)\\]}]/)) return [\"close\", \"bracket\"];\n if (stream.eat(/^;/)) {stream.skipToEnd(); return [\"space\", \"comment\"];}\n if (stream.eat(/^[#'@^`~]/)) return [null, \"meta\"];\n\n var matches = stream.match(qualifiedSymbol);\n var symbol = matches && matches[0];\n\n if (!symbol) {\n // advance stream by at least one character so we don't get stuck.\n stream.next();\n stream.eatWhile(function (c) {return !is(c, delimiter);});\n return [null, \"error\"];\n }\n\n if (symbol === \"comment\" && state.lastToken === \"(\")\n return (state.tokenize = inComment)(stream, state);\n if (is(symbol, atom) || symbol.charAt(0) === \":\") return [\"symbol\", \"atom\"];\n if (is(symbol, specialForm) || is(symbol, coreSymbol)) return [\"symbol\", \"keyword\"];\n if (state.lastToken === \"(\") return [\"symbol\", \"builtin\"]; // other operator\n\n return [\"symbol\", \"variable\"];\n}\n\nfunction inString(stream, state) {\n var escaped = false, next;\n\n while (next = stream.next()) {\n if (next === \"\\\"\" && !escaped) {state.tokenize = base; break;}\n escaped = !escaped && next === \"\\\\\";\n }\n\n return [null, \"string\"];\n}\n\nfunction inComment(stream, state) {\n var parenthesisCount = 1;\n var next;\n\n while (next = stream.next()) {\n if (next === \")\") parenthesisCount--;\n if (next === \"(\") parenthesisCount++;\n if (parenthesisCount === 0) {\n stream.backUp(1);\n state.tokenize = base;\n break;\n }\n }\n\n return [\"space\", \"comment\"];\n}\n\nfunction createLookupMap(words) {\n var obj = {};\n\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n\n return obj;\n}\n\nfunction is(value, test) {\n if (test instanceof RegExp) return test.test(value);\n if (test instanceof Object) return test.propertyIsEnumerable(value);\n}\n\nexport const clojure = {\n name: \"clojure\",\n startState: function () {\n return {\n ctx: {prev: null, start: 0, indentTo: 0},\n lastToken: null,\n tokenize: base\n };\n },\n\n token: function (stream, state) {\n if (stream.sol() && (typeof state.ctx.indentTo !== \"number\"))\n state.ctx.indentTo = state.ctx.start + 1;\n\n var typeStylePair = state.tokenize(stream, state);\n var type = typeStylePair[0];\n var style = typeStylePair[1];\n var current = stream.current();\n\n if (type !== \"space\") {\n if (state.lastToken === \"(\" && state.ctx.indentTo === null) {\n if (type === \"symbol\" && is(current, hasBodyParameter))\n state.ctx.indentTo = state.ctx.start + stream.indentUnit;\n else state.ctx.indentTo = \"next\";\n } else if (state.ctx.indentTo === \"next\") {\n state.ctx.indentTo = stream.column();\n }\n\n state.lastToken = current;\n }\n\n if (type === \"open\")\n state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n else if (type === \"close\") state.ctx = state.ctx.prev || state.ctx;\n\n return style;\n },\n\n indent: function (state) {\n var i = state.ctx.indentTo;\n\n return (typeof i === \"number\") ?\n i :\n state.ctx.start + 1;\n },\n\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']},\n commentTokens: {line: \";;\"},\n autocomplete: [].concat(atoms, specialForms, coreSymbols)\n }\n};\n","var ERRORCLASS = \"error\";\n\nfunction wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n}\n\nvar operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\nvar delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\nvar identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\nvar atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;\n\nvar wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n \"is\", \"isnt\", \"in\",\n \"instanceof\", \"typeof\"]);\nvar indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\nvar commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\nvar keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\nindentKeywords = wordRegexp(indentKeywords);\n\n\nvar stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\nvar regexPrefixes = /^(\\/{3}|\\/)/;\nvar commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\nvar constants = wordRegexp(commonConstants);\n\n// Tokenizers\nfunction tokenBase(stream, state) {\n // Handle scope changes\n if (stream.sol()) {\n if (state.scope.align === null) state.scope.align = false;\n var scopeOffset = state.scope.offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n return \"indent\";\n } else if (lineOffset < scopeOffset) {\n return \"dedent\";\n }\n return null;\n } else {\n if (scopeOffset > 0) {\n dedent(stream, state);\n }\n }\n }\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle docco title comment (single line)\n if (stream.match(\"####\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle multi line comments\n if (stream.match(\"###\")) {\n state.tokenize = longComment;\n return state.tokenize(stream, state);\n }\n\n // Single line comment\n if (ch === \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle number literals\n if (stream.match(/^-?[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\d+\\.\\d*/)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\.\\d+/)) {\n floatLiteral = true;\n }\n\n if (floatLiteral) {\n // prevent from getting extra . on 1..\n if (stream.peek() == \".\"){\n stream.backUp(1);\n }\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^-?0x[0-9a-f]+/i)) {\n intLiteral = true;\n }\n // Decimal\n if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^-?0(?![\\dx])/i)) {\n intLiteral = true;\n }\n if (intLiteral) {\n return \"number\";\n }\n }\n\n // Handle strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenFactory(stream.current(), false, \"string\");\n return state.tokenize(stream, state);\n }\n // Handle regex literals\n if (stream.match(regexPrefixes)) {\n if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n state.tokenize = tokenFactory(stream.current(), true, \"string.special\");\n return state.tokenize(stream, state);\n } else {\n stream.backUp(1);\n }\n }\n\n\n\n // Handle operators and delimiters\n if (stream.match(operators) || stream.match(wordOperators)) {\n return \"operator\";\n }\n if (stream.match(delimiters)) {\n return \"punctuation\";\n }\n\n if (stream.match(constants)) {\n return \"atom\";\n }\n\n if (stream.match(atProp) || state.prop && stream.match(identifiers)) {\n return \"property\";\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(identifiers)) {\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return ERRORCLASS;\n}\n\nfunction tokenFactory(delimiter, singleline, outclass) {\n return function(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\/\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol()) {\n return outclass;\n }\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n return outclass;\n } else {\n stream.eat(/['\"\\/]/);\n }\n }\n if (singleline) {\n state.tokenize = tokenBase;\n }\n return outclass;\n };\n}\n\nfunction longComment(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^#]/);\n if (stream.match(\"###\")) {\n state.tokenize = tokenBase;\n break;\n }\n stream.eatWhile(\"#\");\n }\n return \"comment\";\n}\n\nfunction indent(stream, state, type = \"coffee\") {\n var offset = 0, align = false, alignOffset = null;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (scope.type === \"coffee\" || scope.type == \"}\") {\n offset = scope.offset + stream.indentUnit;\n break;\n }\n }\n if (type !== \"coffee\") {\n align = null;\n alignOffset = stream.column() + stream.current().length;\n } else if (state.scope.align) {\n state.scope.align = false;\n }\n state.scope = {\n offset: offset,\n type: type,\n prev: state.scope,\n align: align,\n alignOffset: alignOffset\n };\n}\n\nfunction dedent(stream, state) {\n if (!state.scope.prev) return;\n if (state.scope.type === \"coffee\") {\n var _indent = stream.indentation();\n var matched = false;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (_indent === scope.offset) {\n matched = true;\n break;\n }\n }\n if (!matched) {\n return true;\n }\n while (state.scope.prev && state.scope.offset !== _indent) {\n state.scope = state.scope.prev;\n }\n return false;\n } else {\n state.scope = state.scope.prev;\n return false;\n }\n}\n\nfunction tokenLexer(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle scope changes.\n if (current === \"return\") {\n state.dedent = true;\n }\n if (((current === \"->\" || current === \"=>\") && stream.eol())\n || style === \"indent\") {\n indent(stream, state);\n }\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index !== -1) {\n indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n }\n if (indentKeywords.exec(current)){\n indent(stream, state);\n }\n if (current == \"then\"){\n dedent(stream, state);\n }\n\n\n if (style === \"dedent\") {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index !== -1) {\n while (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n if (state.scope.type == current)\n state.scope = state.scope.prev;\n }\n if (state.dedent && stream.eol()) {\n if (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n state.dedent = false;\n }\n\n return style == \"indent\" || style == \"dedent\" ? null : style;\n}\n\nexport const coffeeScript = {\n name: \"coffeescript\",\n startState: function() {\n return {\n tokenize: tokenBase,\n scope: {offset: 0, type:\"coffee\", prev: null, align: false},\n prop: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var fillAlign = state.scope.align === null && state.scope;\n if (fillAlign && stream.sol()) fillAlign.align = false;\n\n var style = tokenLexer(stream, state);\n if (style && style != \"comment\") {\n if (fillAlign) fillAlign.align = true;\n state.prop = style == \"punctuation\" && stream.current() == \".\"\n }\n\n return style;\n },\n\n indent: function(state, text) {\n if (state.tokenize != tokenBase) return 0;\n var scope = state.scope;\n var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n var closes = closer && scope.type === text.charAt(0);\n if (scope.align)\n return scope.alignOffset - (closes ? 1 : 0);\n else\n return (closes ? scope.prev : scope).offset;\n },\n\n languageData: {\n commentTokens: {line: \"#\"}\n }\n};\n","function Context(indented, column, type, info, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.info = info;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\" && type != \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n for (;;) {\n if (!context || context.type == \"top\") return true;\n if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n context = context.prev;\n }\n}\n\nexport function clike(parserConfig) {\n var statementIndentUnit = parserConfig.statementIndentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n keywords = parserConfig.keywords || {},\n types = parserConfig.types || {},\n builtin = parserConfig.builtin || {},\n blockKeywords = parserConfig.blockKeywords || {},\n defKeywords = parserConfig.defKeywords || {},\n atoms = parserConfig.atoms || {},\n hooks = parserConfig.hooks || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false,\n indentSwitch = parserConfig.indentSwitch !== false,\n namespaceSeparator = parserConfig.namespaceSeparator,\n isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n numberStart = parserConfig.numberStart || /[\\d\\.]/,\n number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n // An optional function that takes a {string} token and returns true if it\n // should be treated as a builtin.\n isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n var curPunc, isDefKeyword;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (numberStart.test(ch)) {\n stream.backUp(1)\n if (stream.match(number)) return \"number\"\n stream.next()\n }\n if (isPunctuationChar.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n return \"operator\";\n }\n stream.eatWhile(isIdentifierChar);\n if (namespaceSeparator) while (stream.match(namespaceSeparator))\n stream.eatWhile(isIdentifierChar);\n\n var cur = stream.current();\n if (contains(keywords, cur)) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n if (contains(defKeywords, cur)) isDefKeyword = true;\n return \"keyword\";\n }\n if (contains(types, cur)) return \"type\";\n if (contains(builtin, cur)\n || (isReservedIdentifier && isReservedIdentifier(cur))) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n return \"builtin\";\n }\n if (contains(atoms, cur)) return \"atom\";\n return \"variable\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function maybeEOL(stream, state) {\n if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n }\n\n // Interface\n\n return {\n name: parserConfig.name,\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", null, false),\n indented: 0,\n startOfLine: true,\n prevToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n curPunc = isDefKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n while (state.context.type == \"statement\") popContext(state);\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n pushContext(state, stream.column(), \"statement\", stream.current());\n }\n\n if (style == \"variable\" &&\n ((state.prevToken == \"def\" ||\n (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n style = \"def\";\n\n if (hooks.token) {\n var result = hooks.token(stream, state, style);\n if (result !== undefined) style = result;\n }\n\n if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n state.startOfLine = false;\n state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n maybeEOL(stream, state);\n return style;\n },\n\n indent: function(state, textAfter, context) {\n if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine && isTopScope(state.context))\n return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n if (parserConfig.dontIndentStatements)\n while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n ctx = ctx.prev\n if (hooks.indent) {\n var hook = hooks.indent(state, ctx, textAfter, context.unit);\n if (typeof hook == \"number\") return hook\n }\n var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n return ctx.indented\n }\n if (ctx.type == \"statement\")\n return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit || context.unit);\n if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n return ctx.column + (closing ? 0 : 1);\n if (ctx.type == \")\" && !closing)\n return ctx.indented + (statementIndentUnit || context.unit);\n\n return ctx.indented + (closing ? 0 : context.unit) +\n (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? context.unit : 0);\n },\n\n languageData: {\n indentOnInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n autocomplete: Object.keys(keywords).concat(Object.keys(types)).concat(Object.keys(builtin)).concat(Object.keys(atoms)),\n ...parserConfig.languageData\n }\n };\n};\n\nfunction words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\nfunction contains(words, word) {\n if (typeof words === \"function\") {\n return words(word);\n } else {\n return words.propertyIsEnumerable(word);\n }\n}\nvar cKeywords = \"auto if break case register continue return default do sizeof \" +\n \"static else struct switch extern typedef union for goto while enum const \" +\n \"volatile inline restrict asm fortran\";\n\n// Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\nvar cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n \"explicit export final friend import module mutable namespace new noexcept \" +\n \"not not_eq operator or or_eq override private protected public \" +\n \"reinterpret_cast requires static_assert static_cast template this \" +\n \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\nvar objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\nvar objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n// Do not use this. Use the cTypes function below. This is global just to avoid\n// excessive calls when cTypes is being called multiple times during a parse.\nvar basicCTypes = words(\"int long char short double float unsigned signed \" +\n \"void bool\");\n\n// Do not use this. Use the objCTypes function below. This is global just to avoid\n// excessive calls when objCTypes is being called multiple times during a parse.\nvar basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n// Returns true if identifier is a \"C\" type.\n// C type is defined as those that are reserved by the compiler (basicTypes),\n// and those that end in _t (Reserved by POSIX for types)\n// http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\nfunction cTypes(identifier) {\n return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n}\n\n// Returns true if identifier is a \"Objective C\" type.\nfunction objCTypes(identifier) {\n return cTypes(identifier) || contains(basicObjCTypes, identifier);\n}\n\nvar cBlockKeywords = \"case do else for if switch while struct enum union\";\nvar cDefKeywords = \"struct enum union\";\n\nfunction cppHook(stream, state) {\n if (!state.startOfLine) return false\n for (var ch, next = null; ch = stream.peek();) {\n if (ch == \"\\\\\" && stream.match(/^.$/)) {\n next = cppHook\n break\n } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n break\n }\n stream.next()\n }\n state.tokenize = next\n return \"meta\"\n}\n\nfunction pointerHook(_stream, state) {\n if (state.prevToken == \"type\") return \"type\";\n return false;\n}\n\n// For C and C++ (and ObjC): identifiers starting with __\n// or _ followed by a capital letter are reserved for the compiler.\nfunction cIsReservedIdentifier(token) {\n if (!token || token.length < 2) return false;\n if (token[0] != '_') return false;\n return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n}\n\nfunction cpp14Literal(stream) {\n stream.eatWhile(/[\\w\\.']/);\n return \"number\";\n}\n\nfunction cpp11StringHook(stream, state) {\n stream.backUp(1);\n // Raw strings.\n if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n if (!match) {\n return false;\n }\n state.cpp11RawStringDelim = match[1];\n state.tokenize = tokenRawString;\n return tokenRawString(stream, state);\n }\n // Unicode strings/chars.\n if (stream.match(/^(?:u8|u|U|L)/)) {\n if (stream.match(/^[\"']/, /* eat */ false)) {\n return \"string\";\n }\n return false;\n }\n // Ignore this hook.\n stream.next();\n return false;\n}\n\nfunction cppLooksLikeConstructor(word) {\n var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n return lastTwo && lastTwo[1] == lastTwo[2];\n}\n\n// C#-style strings where \"\" escapes a quote.\nfunction tokenAtString(stream, state) {\n var next;\n while ((next = stream.next()) != null) {\n if (next == '\"' && !stream.eat('\"')) {\n state.tokenize = null;\n break;\n }\n }\n return \"string\";\n}\n\n// C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n// <delim> can be a string up to 16 characters long.\nfunction tokenRawString(stream, state) {\n // Escape characters that have special regex meanings.\n var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n if (match)\n state.tokenize = null;\n else\n stream.skipToEnd();\n return \"string\";\n}\n\nexport const c = clike({\n name: \"c\",\n keywords: words(cKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n defKeywords: words(cDefKeywords),\n typeFirstDefinitions: true,\n atoms: words(\"NULL true false\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const cpp = clike({\n name: \"cpp\",\n keywords: words(cKeywords + \" \" + cppKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords + \" class try catch\"),\n defKeywords: words(cDefKeywords + \" class namespace\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false NULL nullptr\"),\n dontIndentStatements: /^template$/,\n isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n});\n\nexport const java = clike({\n name: \"java\",\n keywords: words(\"abstract assert break case catch class const continue default \" +\n \"do else enum extends final finally for goto if implements import \" +\n \"instanceof interface native new package private protected public \" +\n \"return static strictfp super switch synchronized this throw throws transient \" +\n \"try volatile while @interface\"),\n types: words(\"var byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n blockKeywords: words(\"catch class do else finally for if switch try while\"),\n defKeywords: words(\"class interface enum @interface\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n hooks: {\n \"@\": function(stream) {\n // Don't match the @interface keyword.\n if (stream.match('interface', false)) return false;\n\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match(/\"\"$/)) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n }\n }\n})\n\nexport const csharp = clike({\n name: \"csharp\",\n keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n \" default delegate do else enum event explicit extern finally fixed for\" +\n \" foreach goto if implicit in init interface internal is lock namespace new\" +\n \" operator out override params private protected public readonly record ref required return sealed\" +\n \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n \" global group into join let orderby partial remove select set value var yield\"),\n types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n \" UInt64 bool byte char decimal double short int long object\" +\n \" sbyte float string ushort uint ulong\"),\n blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n defKeywords: words(\"class interface namespace record struct var\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream, state) {\n if (stream.eat('\"')) {\n state.tokenize = tokenAtString;\n return tokenAtString(stream, state);\n }\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n }\n});\n\nfunction tokenTripleString(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"\"\"')) {\n state.tokenize = null;\n break;\n }\n escaped = stream.next() == \"\\\\\" && !escaped;\n }\n return \"string\";\n}\n\nfunction tokenNestedComment(depth) {\n return function (stream, state) {\n var ch\n while (ch = stream.next()) {\n if (ch == \"*\" && stream.eat(\"/\")) {\n if (depth == 1) {\n state.tokenize = null\n break\n } else {\n state.tokenize = tokenNestedComment(depth - 1)\n return state.tokenize(stream, state)\n }\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n state.tokenize = tokenNestedComment(depth + 1)\n return state.tokenize(stream, state)\n }\n }\n return \"comment\"\n }\n}\n\nexport const scala = clike({\n name: \"scala\",\n keywords: words(\n /* scala */\n \"abstract case catch class def do else extends final finally for forSome if \" +\n \"implicit import lazy match new null object override package private protected return \" +\n \"sealed super this throw trait try type val var while with yield _ \" +\n\n /* package scala */\n \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n \"readChar readInt readLong readFloat readDouble\"\n ),\n types: words(\n \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n ),\n multiLineStrings: true,\n blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n defKeywords: words(\"class enum def object package trait type val var\"),\n atoms: words(\"true false null\"),\n indentStatements: false,\n indentSwitch: false,\n isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match('\"\"')) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"character\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n \"=\": function(stream, state) {\n var cx = state.context\n if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n return \"operator\"\n } else {\n return false\n }\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nfunction tokenKotlinString(tripleString){\n return function (stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n next = stream.next();\n if(!escaped && next == \"$\" && stream.match('{'))\n stream.skipTo(\"}\");\n escaped = !escaped && next == \"\\\\\" && !tripleString;\n }\n if (end || !tripleString)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const kotlin = clike({\n name: \"kotlin\",\n keywords: words(\n /*keywords*/\n \"package as typealias class interface this super val operator \" +\n \"var fun for is in This throw return annotation \" +\n \"break continue object if else while do try when !in !is as? \" +\n\n /*soft keywords*/\n \"file import where by get set abstract enum open inner override private public internal \" +\n \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n \"external annotation crossinline const operator infix suspend actual expect setparam\"\n ),\n types: words(\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n ),\n intendSwitch: false,\n indentStatements: false,\n multiLineStrings: true,\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n defKeywords: words(\"class val var object interface fun\"),\n atoms: words(\"true false null this\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '*': function(_stream, state) {\n return state.prevToken == '.' ? 'variable' : 'operator';\n },\n '\"': function(stream, state) {\n state.tokenize = tokenKotlinString(stream.match('\"\"'));\n return state.tokenize(stream, state);\n },\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenNestedComment(1);\n return state.tokenize(stream, state)\n },\n indent: function(state, ctx, textAfter, indentUnit) {\n var firstChar = textAfter && textAfter.charAt(0);\n if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n return state.indented;\n if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n state.prevToken == \"variable\" && firstChar == \".\" ||\n (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n return indentUnit * 2 + ctx.indented;\n if (ctx.align && ctx.type == \"}\")\n return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nexport const shader = clike({\n name: \"shader\",\n keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n \"sampler1DShadow sampler2DShadow \" +\n \"const attribute uniform varying \" +\n \"break continue discard return \" +\n \"for while do if else struct \" +\n \"in out inout\"),\n types: words(\"float int bool void \" +\n \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n \"mat2 mat3 mat4\"),\n blockKeywords: words(\"for while do if else struct\"),\n builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n \"pow exp log exp2 sqrt inversesqrt \" +\n \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n \"length distance dot cross normalize ftransform faceforward \" +\n \"reflect refract matrixCompMult \" +\n \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n \"equal notEqual any all not \" +\n \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n \"textureCube textureCubeLod \" +\n \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n \"dFdx dFdy fwidth \" +\n \"noise1 noise2 noise3 noise4\"),\n atoms: words(\"true false \" +\n \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n \"gl_FogCoord gl_PointCoord \" +\n \"gl_Position gl_PointSize gl_ClipVertex \" +\n \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n \"gl_TexCoord gl_FogFragCoord \" +\n \"gl_FragCoord gl_FrontFacing \" +\n \"gl_FragData gl_FragDepth \" +\n \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n \"gl_ProjectionMatrixInverseTranspose \" +\n \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n \"gl_TextureMatrixInverseTranspose \" +\n \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n \"gl_FogParameters \" +\n \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n \"gl_MaxDrawBuffers\"),\n indentSwitch: false,\n hooks: {\"#\": cppHook}\n})\n\nexport const nesC = clike({\n name: \"nesc\",\n keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n \"signal task uses abstract extends\"),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n atoms: words(\"null true false\"),\n hooks: {\"#\": cppHook}\n})\n\nexport const objectiveC = clike({\n name: \"objectivec\",\n keywords: words(cKeywords + \" \" + objCKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n dontIndentStatements: /^@.*$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const objectiveCpp = clike({\n name: \"objectivecpp\",\n keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n dontIndentStatements: /^@.*$|^template$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n})\n\nexport const squirrel = clike({\n name: \"squirrel\",\n keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n types: cTypes,\n blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n defKeywords: words(\"function local class\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\"#\": cppHook}\n})\n\n// Ceylon Strings need to deal with interpolation\nvar stringTokenizer = null;\nfunction tokenCeylonString(type) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"') &&\n (type == \"single\" || stream.match('\"\"'))) {\n end = true;\n break;\n }\n if (!escaped && stream.match('``')) {\n stringTokenizer = tokenCeylonString(type);\n end = true;\n break;\n }\n next = stream.next();\n escaped = type == \"single\" && !escaped && next == \"\\\\\";\n }\n if (end)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const ceylon = clike({\n name: \"ceylon\",\n keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n \" exists extends finally for function given if import in interface is let module new\" +\n \" nonempty object of out outer package return satisfies super switch then this throw\" +\n \" try value void while\"),\n types: function(word) {\n // In Ceylon all identifiers that start with an uppercase are types\n var first = word.charAt(0);\n return (first === first.toUpperCase() && first !== first.toLowerCase());\n },\n blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n defKeywords: words(\"class dynamic function interface module object package value\"),\n builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n numberStart: /[\\d#$]/,\n number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n multiLineStrings: true,\n typeFirstDefinitions: true,\n atoms: words(\"true false null larger smaller equal empty finished\"),\n indentSwitch: false,\n styleDefs: false,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n return state.tokenize(stream, state);\n },\n '`': function(stream, state) {\n if (!stringTokenizer || !stream.match('`')) return false;\n state.tokenize = stringTokenizer;\n stringTokenizer = null;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"string.special\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n token: function(_stream, state, style) {\n if ((style == \"variable\" || style == \"type\") &&\n state.prevToken == \".\") {\n return \"variableName.special\";\n }\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n})\n\nfunction pushInterpolationStack(state) {\n (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);\n}\n\nfunction popInterpolationStack(state) {\n return (state.interpolationStack || (state.interpolationStack = [])).pop();\n}\n\nfunction sizeInterpolationStack(state) {\n return state.interpolationStack ? state.interpolationStack.length : 0;\n}\n\nfunction tokenDartString(quote, stream, state, raw) {\n var tripleQuoted = false;\n if (stream.eat(quote)) {\n if (stream.eat(quote)) tripleQuoted = true;\n else return \"string\"; //empty string\n }\n function tokenStringHelper(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!raw && !escaped && stream.peek() == \"$\") {\n pushInterpolationStack(state);\n state.tokenize = tokenInterpolation;\n return \"string\";\n }\n var next = stream.next();\n if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {\n state.tokenize = null;\n break;\n }\n escaped = !raw && !escaped && next == \"\\\\\";\n }\n return \"string\";\n }\n state.tokenize = tokenStringHelper;\n return tokenStringHelper(stream, state);\n}\n\nfunction tokenInterpolation(stream, state) {\n stream.eat(\"$\");\n if (stream.eat(\"{\")) {\n // let clike handle the content of ${...},\n // we take over again when \"}\" appears (see hooks).\n state.tokenize = null;\n } else {\n state.tokenize = tokenInterpolationIdentifier;\n }\n return null;\n}\n\nfunction tokenInterpolationIdentifier(stream, state) {\n stream.eatWhile(/[\\w_]/);\n state.tokenize = popInterpolationStack(state);\n return \"variable\";\n}\n\nexport const dart = clike({\n name: \"dart\",\n keywords: words(\"this super static final const abstract class extends external factory \" +\n \"implements mixin get native set typedef with enum throw rethrow assert break case \" +\n \"continue default in return new deferred async await covariant try catch finally \" +\n \"do else for if switch while import library export part of show hide is as extension \" +\n \"on yield late required sealed base interface when inline\"),\n blockKeywords: words(\"try catch finally do else for if switch while\"),\n builtin: words(\"void bool num int double dynamic var String Null Never\"),\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\.]/);\n return \"meta\";\n },\n\n // custom string handling to deal with triple-quoted strings and string interpolation\n \"'\": function(stream, state) {\n return tokenDartString(\"'\", stream, state, false);\n },\n \"\\\"\": function(stream, state) {\n return tokenDartString(\"\\\"\", stream, state, false);\n },\n \"r\": function(stream, state) {\n var peek = stream.peek();\n if (peek == \"'\" || peek == \"\\\"\") {\n return tokenDartString(stream.next(), stream, state, true);\n }\n return false;\n },\n\n \"}\": function(_stream, state) {\n // \"}\" is end of interpolation, if interpolation stack is non-empty\n if (sizeInterpolationStack(state) > 0) {\n state.tokenize = popInterpolationStack(state);\n return null;\n }\n return false;\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n },\n token: function(stream, _, style) {\n if (style == \"variable\") {\n // Assume uppercase symbols are classes\n var isUpper = RegExp('^[_$]*[A-Z][a-zA-Z0-9_$]*$','g');\n if (isUpper.test(stream.current())) {\n return 'type';\n }\n }\n }\n }\n})\n","export function mkCSS(parserConfig) {\n parserConfig = {...defaults, ...parserConfig}\n var inline = parserConfig.inline\n\n var tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = parserConfig.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"def\", \"variable-definition\");\n return ret(\"variableName\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variableName.function\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : stream.indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override = \"error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(stream.current())) {\n override = \"error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variableName.constant\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string.special\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n name: parserConfig.name,\n startState: function() {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter, iCx) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - iCx.unit);\n }\n }\n return indent;\n },\n\n languageData: {\n indentOnInput: /^\\s*\\}$/,\n commentTokens: {line: lineComment, block: {open: \"/*\", close: \"*/\"}},\n autocomplete: allWords\n }\n };\n};\n\nfunction keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n}\n\nvar documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n], documentTypes = keySet(documentTypes_);\n\nvar mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n], mediaTypes = keySet(mediaTypes_);\n\nvar mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\",\n \"dynamic-range\", \"video-dynamic-range\"\n], mediaFeatures = keySet(mediaFeatures_);\n\nvar mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\",\n \"standard\", \"high\"\n], mediaValueKeywords = keySet(mediaValueKeywords_);\n\nvar propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n], propertyKeywords = keySet(propertyKeywords_);\n\nvar nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\nvar fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n], fontProperties = keySet(fontProperties_);\n\nvar counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n], counterDescriptors = keySet(counterDescriptors_);\n\nvar colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n], colorKeywords = keySet(colorKeywords_);\n\nvar valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"conic-gradient\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-play-button\", \"media-slider\", \"media-sliderthumb\",\n \"media-volume-slider\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\",\n \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\", \"repeating-radial-gradient\",\n \"repeating-conic-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n], valueKeywords = keySet(valueKeywords_);\n\nvar allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n\nexport const keywords = {properties: propertyKeywords_, colors: colorKeywords_,\n fonts: fontProperties_, values: valueKeywords_, all: allWords}\n\nconst defaults = {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n}\n\nexport const css = mkCSS({name: \"css\"})\n\nfunction tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n}\n\nexport const sCSS = mkCSS({\n name: \"scss\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName.special\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n }\n})\n\nexport const less = mkCSS({\n name: \"less\",\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"def\", \"variable-definition\"];\n return [\"variableName\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n }\n})\n\nexport const gss = mkCSS({\n name: \"gss\",\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n }\n})\n","var keywords = {\n \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true, \"error\": true,\n \"rune\":true, \"any\":true, \"comparable\":true\n};\n\nvar atoms = {\n \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"delete\":true, \"imag\":true,\n \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n \"println\":true, \"real\":true, \"recover\":true\n};\n\nvar isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\nvar curPunc;\n\nfunction tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (/[\\d\\.]/.test(ch)) {\n if (ch == \".\") {\n stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n } else if (ch == \"0\") {\n stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n } else {\n stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n }\n return \"number\";\n }\n if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n stream.eatWhile(isOperatorChar);\n return \"operator\";\n }\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n var cur = stream.current();\n if (keywords.propertyIsEnumerable(cur)) {\n if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n return \"keyword\";\n }\n if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n return \"variable\";\n}\n\nfunction tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && quote != \"`\" && next == \"\\\\\";\n }\n if (end || !(escaped || quote == \"`\"))\n state.tokenize = tokenBase;\n return \"string\";\n };\n}\n\nfunction tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n}\n\nfunction Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type) {\n return state.context = new Context(state.indented, col, type, null, state.context);\n}\nfunction popContext(state) {\n if (!state.context.prev) return;\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\n// Interface\n\nexport const go = {\n name: \"go\",\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", false),\n indented: 0,\n startOfLine: true\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n if (ctx.type == \"case\") ctx.type = \"}\";\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"case\") ctx.type = \"case\";\n else if (curPunc == \"}\" && ctx.type == \"}\") popContext(state);\n else if (curPunc == ctx.type) popContext(state);\n state.startOfLine = false;\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n if (state.tokenize != tokenBase && state.tokenize != null) return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) return ctx.indented;\n var closing = firstChar == ctx.type;\n if (ctx.align) return ctx.column + (closing ? 0 : 1);\n else return ctx.indented + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n indentOnInput: /^\\s([{}]|case |default\\s*:)$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}}\n }\n};\n\n","var words = {};\nfunction define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n};\n\nvar commonAtoms = [\"true\", \"false\"];\nvar commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\nvar commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]))\n return 'string.special'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n}\n\nfunction tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n};\n\nfunction tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n}\n\nvar tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n};\n\nfunction tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string.special\"\n }\n}\n\nfunction tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n};\n\nexport const shell = {\n name: \"shell\",\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n languageData: {\n autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"]},\n commentTokens: {line: \"#\"}\n }\n};\n"],"names":["atoms","specialForms","coreSymbols","atom","createLookupMap","specialForm","coreSymbol","hasBodyParameter","delimiter","numberLiteral","characterLiteral","qualifiedSymbol","base","stream","state","eatSpace","eat","match","tokenize","inString","skipToEnd","matches","symbol","lastToken","inComment","is","charAt","next","eatWhile","c","escaped","parenthesisCount","backUp","words","obj","i","length","value","test","RegExp","Object","propertyIsEnumerable","clojure","name","startState","ctx","prev","start","indentTo","token","sol","typeStylePair","type","style","current","indentUnit","column","indent","languageData","closeBrackets","brackets","commentTokens","line","autocomplete","concat","ERRORCLASS","wordRegexp","join","operators","delimiters","identifiers","atProp","wordOperators","indentKeywords","keywords","stringPrefixes","regexPrefixes","constants","tokenBase","scope","align","scopeOffset","offset","lineOffset","indentation","dedent","ch","peek","longComment","floatLiteral","intLiteral","tokenFactory","prop","singleline","outclass","eol","alignOffset","_indent","matched","coffeeScript","fillAlign","delimiter_index","indexOf","slice","exec","tokenLexer","text","closer","closes","Context","indented","info","this","pushContext","col","context","popContext","t","typeBefore","pos","prevToken","string","typeAtEndOfLine","isTopScope","clike","parserConfig","curPunc","isDefKeyword","statementIndentUnit","dontAlignCalls","types","builtin","blockKeywords","defKeywords","hooks","multiLineStrings","indentStatements","indentSwitch","namespaceSeparator","isPunctuationChar","numberStart","number","isOperatorChar","isIdentifierChar","isReservedIdentifier","quote","result","end","tokenComment","cur","contains","maybeEnd","maybeEOL","typeFirstDefinitions","startOfLine","undefined","styleDefs","textAfter","firstChar","closing","dontIndentStatements","hook","unit","switchBlock","allmanIndentation","indentOnInput","block","open","close","keys","str","split","word","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","pointerHook","_stream","cIsReservedIdentifier","toLowerCase","cpp14Literal","cpp11StringHook","cpp11RawStringDelim","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","delim","replace","cpp","u","U","L","R","java","tokenTripleString","csharp","tokenNestedComment","depth","scala","cx","kotlin","intendSwitch","tripleString","skipTo","shader","nesC","objectiveC","objectiveCpp","squirrel","stringTokenizer","tokenCeylonString","ceylon","first","toUpperCase","pushInterpolationStack","interpolationStack","push","popInterpolationStack","pop","tokenDartString","raw","tripleQuoted","tokenStringHelper","tokenInterpolation","tokenInterpolationIdentifier","dart","r","sizeInterpolationStack","_","mkCSS","override","inline","defaults","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","propertyKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenString","tokenParenthesized","pass","states","popAndPass","n","wordAsValue","hasOwnProperty","stateArg","top","atBlock","iCx","Math","max","allWords","keySet","array","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","fontProperties_","colorKeywords_","valueKeywords_","properties","colors","fonts","values","all","tokenCComment","css","sCSS","$","less","gss","break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","var","bool","byte","complex64","complex128","float32","float64","int8","int16","int32","int64","uint8","uint16","uint32","uint64","int","uint","uintptr","error","rune","any","comparable","true","false","iota","nil","append","cap","complex","copy","delete","imag","len","make","new","panic","print","println","real","recover","define","dict","commonAtoms","commonKeywords","commonCommands","tokens","unshift","tokenDollar","heredoc","shift","tokenStringStart","shell"],"mappings":"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"}
|