monaco-editor-core 0.54.0 → 0.55.0-dev-20251008
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/esm/nls.messages.de.js +1 -1
- package/esm/nls.messages.es.js +1 -1
- package/esm/nls.messages.fr.js +1 -1
- package/esm/nls.messages.it.js +1 -1
- package/esm/nls.messages.ja.js +1 -1
- package/esm/nls.messages.ko.js +1 -1
- package/esm/nls.messages.ru.js +1 -1
- package/esm/nls.messages.zh-cn.js +1 -1
- package/esm/nls.messages.zh-tw.js +1 -1
- package/esm/vs/base/browser/canIUse.js +1 -0
- package/esm/vs/base/browser/canIUse.js.map +1 -1
- package/esm/vs/base/browser/dom.js +9 -0
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/fastDomNode.js.map +1 -1
- package/esm/vs/base/browser/mouseEvent.js +3 -0
- package/esm/vs/base/browser/mouseEvent.js.map +1 -1
- package/esm/vs/base/browser/trustedTypes.js +2 -0
- package/esm/vs/base/browser/trustedTypes.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listWidget.js +5 -5
- package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
- package/esm/vs/base/browser/ui/sash/sash.css +1 -1
- package/esm/vs/base/browser/ui/sash/sash.js +4 -0
- package/esm/vs/base/browser/ui/sash/sash.js.map +1 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +1 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
- package/esm/vs/base/browser/ui/table/table.css +2 -2
- package/esm/vs/base/browser/ui/tree/abstractTree.js +5 -4
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +6 -4
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/dataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js +1 -1
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/media/tree.css +2 -2
- package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
- package/esm/vs/base/browser/webWorkerFactory.js +3 -0
- package/esm/vs/base/browser/webWorkerFactory.js.map +1 -1
- package/esm/vs/base/common/buffer.js.map +1 -1
- package/esm/vs/base/common/decorators.js +1 -0
- package/esm/vs/base/common/decorators.js.map +1 -1
- package/esm/vs/base/common/errors.js +1 -0
- package/esm/vs/base/common/errors.js.map +1 -1
- package/esm/vs/base/common/glob.js +1 -1
- package/esm/vs/base/common/glob.js.map +1 -1
- package/esm/vs/base/common/hash.js.map +1 -1
- package/esm/vs/base/common/hotReload.js +2 -0
- package/esm/vs/base/common/hotReload.js.map +1 -1
- package/esm/vs/base/common/hotReloadHelpers.js +1 -0
- package/esm/vs/base/common/hotReloadHelpers.js.map +1 -1
- package/esm/vs/base/common/lifecycle.js +19 -0
- package/esm/vs/base/common/lifecycle.js.map +1 -1
- package/esm/vs/base/common/map.js.map +1 -1
- package/esm/vs/base/common/marshalling.js +4 -0
- package/esm/vs/base/common/marshalling.js.map +1 -1
- package/esm/vs/base/common/network.js +1 -0
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/normalization.js +39 -0
- package/esm/vs/base/common/normalization.js.map +1 -0
- package/esm/vs/base/common/objects.js +1 -0
- package/esm/vs/base/common/objects.js.map +1 -1
- package/esm/vs/base/common/observableInternal/changeTracker.js +4 -0
- package/esm/vs/base/common/observableInternal/changeTracker.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugLocation.js +1 -0
- package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugName.js +1 -0
- package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/derived.js +7 -1
- package/esm/vs/base/common/observableInternal/observables/derived.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +2 -0
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -0
- package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
- package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +1 -0
- package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
- package/esm/vs/base/common/process.js.map +1 -1
- package/esm/vs/base/common/product.js.map +1 -1
- package/esm/vs/base/common/types.js +2 -0
- package/esm/vs/base/common/types.js.map +1 -1
- package/esm/vs/base/common/worker/webWorker.js +26 -14
- package/esm/vs/base/common/worker/webWorker.js.map +1 -1
- package/esm/vs/base/parts/sandbox/common/sandboxTypes.js +2 -0
- package/esm/vs/base/parts/sandbox/common/sandboxTypes.js.map +1 -0
- package/esm/vs/editor/browser/config/editorConfiguration.js +3 -2
- package/esm/vs/editor/browser/config/editorConfiguration.js.map +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/editContextFactory.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -0
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js +2 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseTarget.js +7 -0
- package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
- package/esm/vs/editor/browser/controller/pointerHandler.js.map +1 -1
- package/esm/vs/editor/browser/coreCommands.js.map +1 -1
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/editorDom.js.map +1 -1
- package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
- package/esm/vs/editor/browser/gpu/gpuUtils.js +1 -0
- package/esm/vs/editor/browser/gpu/gpuUtils.js.map +1 -1
- package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -0
- package/esm/vs/editor/browser/gpu/viewGpuContext.js.map +1 -1
- package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/services/bulkEditService.js.map +1 -1
- package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/hoverService/hover.css +2 -0
- package/esm/vs/editor/browser/services/hoverService/hoverService.js.map +1 -1
- package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +1 -1
- package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
- package/esm/vs/editor/browser/services/inlineCompletionsService.js +8 -8
- package/esm/vs/editor/browser/services/inlineCompletionsService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js.map +1 -1
- package/esm/vs/editor/browser/view.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -0
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +1 -0
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +4 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/utils.js +2 -0
- package/esm/vs/editor/browser/widget/diffEditor/utils.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -0
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +122 -68
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/config/fontInfo.js +32 -16
- package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
- package/esm/vs/editor/common/config/fontInfoFromSettings.js +16 -0
- package/esm/vs/editor/common/config/fontInfoFromSettings.js.map +1 -0
- package/esm/vs/editor/common/core/edits/edit.js +1 -0
- package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
- package/esm/vs/editor/common/core/edits/stringEdit.js +2 -0
- package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
- package/esm/vs/editor/common/core/position.js +1 -1
- package/esm/vs/editor/common/core/position.js.map +1 -1
- package/esm/vs/editor/common/core/range.js +1 -1
- package/esm/vs/editor/common/core/range.js.map +1 -1
- package/esm/vs/editor/common/core/selection.js +1 -1
- package/esm/vs/editor/common/core/selection.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
- package/esm/vs/editor/common/editorCommon.js.map +1 -1
- package/esm/vs/editor/common/languages.js +1 -1
- package/esm/vs/editor/common/languages.js.map +1 -1
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js +14 -0
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js.map +1 -1
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js +2 -0
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js.map +1 -1
- package/esm/vs/editor/common/model/textModel.js +1 -1
- package/esm/vs/editor/common/model/textModel.js.map +1 -1
- package/esm/vs/editor/common/model.js +1 -1
- package/esm/vs/editor/common/model.js.map +1 -1
- package/esm/vs/editor/common/services/editorBaseApi.js.map +1 -1
- package/esm/vs/editor/common/services/editorWebWorker.js +1 -0
- package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
- package/esm/vs/editor/common/services/editorWorkerHost.js.map +1 -1
- package/esm/vs/editor/common/services/modelService.js +14 -21
- package/esm/vs/editor/common/services/modelService.js.map +1 -1
- package/esm/vs/editor/common/textModelEditSource.js +2 -0
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +40 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js +2 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js.map +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +1 -0
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -0
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findModel.js +1 -0
- package/esm/vs/editor/contrib/find/browser/findModel.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findWidget.css +5 -5
- package/esm/vs/editor/contrib/folding/browser/folding.css +4 -4
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js.map +1 -1
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +30 -14
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +5 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +56 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +2 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +2 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +27 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.css +2 -0
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +2 -0
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +8 -8
- package/esm/vs/editor/editor.api.js +4 -0
- package/esm/vs/editor/editor.api.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneEditor.js +37 -0
- package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneLanguages.js +37 -0
- package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
- package/esm/vs/editor/standalone/common/monarch/monarchCompile.js +3 -0
- package/esm/vs/editor/standalone/common/monarch/monarchCompile.js.map +1 -1
- package/esm/vs/platform/accessibility/browser/accessibilityService.js +2 -2
- package/esm/vs/platform/accessibility/browser/accessibilityService.js.map +1 -1
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/commands/common/commands.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +5 -0
- package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
- package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js +1 -1
- package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js.map +1 -1
- package/esm/vs/platform/dnd/browser/dnd.js +1 -1
- package/esm/vs/platform/dnd/browser/dnd.js.map +1 -1
- package/esm/vs/platform/instantiation/common/descriptors.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiationService.js +1 -0
- package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
- package/esm/vs/platform/list/browser/listService.js +5 -0
- package/esm/vs/platform/list/browser/listService.js.map +1 -1
- package/esm/vs/platform/log/common/log.js.map +1 -1
- package/esm/vs/platform/log/common/logService.js.map +1 -1
- package/esm/vs/platform/observable/common/wrapInHotClass.js +2 -0
- package/esm/vs/platform/observable/common/wrapInHotClass.js.map +1 -1
- package/esm/vs/platform/observable/common/wrapInReloadableClass.js +3 -0
- package/esm/vs/platform/observable/common/wrapInReloadableClass.js.map +1 -1
- package/esm/vs/platform/product/common/product.js +68 -0
- package/esm/vs/platform/product/common/product.js.map +1 -0
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +26 -2
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
- package/monaco.d.ts +8 -8
- package/package.json +2 -2
|
@@ -15,7 +15,9 @@ import { Emitter } from '../common/event.js';
|
|
|
15
15
|
// when available.
|
|
16
16
|
// Refs https://github.com/microsoft/vscode/issues/222193
|
|
17
17
|
let ttPolicy;
|
|
18
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
18
19
|
if (typeof self === 'object' && self.constructor && self.constructor.name === 'DedicatedWorkerGlobalScope' && globalThis.workerttPolicy !== undefined) {
|
|
20
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
19
21
|
ttPolicy = globalThis.workerttPolicy;
|
|
20
22
|
}
|
|
21
23
|
else {
|
|
@@ -23,6 +25,7 @@ else {
|
|
|
23
25
|
}
|
|
24
26
|
function getWorker(descriptor, id) {
|
|
25
27
|
const label = descriptor.label || 'anonymous' + id;
|
|
28
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
26
29
|
const monacoEnvironment = globalThis.MonacoEnvironment;
|
|
27
30
|
if (monacoEnvironment) {
|
|
28
31
|
if (typeof monacoEnvironment.getWorker === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/browser/webWorkerFactory.ts","vs/base/browser/webWorkerFactory.ts"],"names":[],"mappings":"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","file":"webWorkerFactory.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createTrustedTypesPolicy } from './trustedTypes.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { COI } from '../common/network.js';\nimport { URI } from '../common/uri.js';\nimport { IWebWorker, IWebWorkerClient, Message, WebWorkerClient } from '../common/worker/webWorker.js';\nimport { Disposable, toDisposable } from '../common/lifecycle.js';\nimport { coalesce } from '../common/arrays.js';\nimport { getNLSLanguage, getNLSMessages } from '../../nls.js';\nimport { Emitter } from '../common/event.js';\n\n// Reuse the trusted types policy defined from worker bootstrap\n// when available.\n// Refs https://github.com/microsoft/vscode/issues/222193\nlet ttPolicy: ReturnType<typeof createTrustedTypesPolicy>;\nif (typeof self === 'object' && self.constructor && self.constructor.name === 'DedicatedWorkerGlobalScope' && (globalThis as any).workerttPolicy !== undefined) {\n\tttPolicy = (globalThis as any).workerttPolicy;\n} else {\n\tttPolicy = createTrustedTypesPolicy('defaultWorkerFactory', { createScriptURL: value => value });\n}\n\nfunction getWorker(descriptor: IWebWorkerDescriptor, id: number): Worker | Promise<Worker> {\n\tconst label = descriptor.label || 'anonymous' + id;\n\n\t// Option for hosts to overwrite the worker script (used in the standalone editor)\n\tinterface IMonacoEnvironment {\n\t\tgetWorker?(moduleId: string, label: string): Worker | Promise<Worker>;\n\t\tgetWorkerUrl?(moduleId: string, label: string): string;\n\t}\n\tconst monacoEnvironment: IMonacoEnvironment | undefined = (globalThis as any).MonacoEnvironment;\n\tif (monacoEnvironment) {\n\t\tif (typeof monacoEnvironment.getWorker === 'function') {\n\t\t\treturn monacoEnvironment.getWorker('workerMain.js', label);\n\t\t}\n\t\tif (typeof monacoEnvironment.getWorkerUrl === 'function') {\n\t\t\tconst workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', label);\n\t\t\treturn new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\t}\n\t}\n\n\tconst esmWorkerLocation = descriptor.esmModuleLocation;\n\tif (esmWorkerLocation) {\n\t\tconst workerUrl = getWorkerBootstrapUrl(label, esmWorkerLocation.toString(true));\n\t\tconst worker = new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\treturn whenESMWorkerReady(worker);\n\t}\n\n\tthrow new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n}\n\nfunction getWorkerBootstrapUrl(label: string, workerScriptUrl: string): string {\n\tif (/^((http:)|(https:)|(file:))/.test(workerScriptUrl) && workerScriptUrl.substring(0, globalThis.origin.length) !== globalThis.origin) {\n\t\t// this is the cross-origin case\n\t\t// i.e. the webpage is running at a different origin than where the scripts are loaded from\n\t} else {\n\t\tconst start = workerScriptUrl.lastIndexOf('?');\n\t\tconst end = workerScriptUrl.lastIndexOf('#', start);\n\t\tconst params = start > 0\n\t\t\t? new URLSearchParams(workerScriptUrl.substring(start + 1, ~end ? end : undefined))\n\t\t\t: new URLSearchParams();\n\n\t\tCOI.addSearchParam(params, true, true);\n\t\tconst search = params.toString();\n\t\tif (!search) {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}#${label}`;\n\t\t} else {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}?${params.toString()}#${label}`;\n\t\t}\n\t}\n\n\t// In below blob code, we are using JSON.stringify to ensure the passed\n\t// in values are not breaking our script. The values may contain string\n\t// terminating characters (such as ' or \").\n\tconst blob = new Blob([coalesce([\n\t\t`/*${label}*/`,\n\t\t`globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify(getNLSMessages())};`,\n\t\t`globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify(getNLSLanguage())};`,\n\t\t`globalThis._VSCODE_FILE_ROOT = ${JSON.stringify(globalThis._VSCODE_FILE_ROOT)};`,\n\t\t`const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });`,\n\t\t`globalThis.workerttPolicy = ttPolicy;`,\n\t\t`await import(ttPolicy?.createScriptURL(${JSON.stringify(workerScriptUrl)}) ?? ${JSON.stringify(workerScriptUrl)});`,\n\t\t`globalThis.postMessage({ type: 'vscode-worker-ready' });`,\n\t\t`/*${label}*/`\n\t]).join('')], { type: 'application/javascript' });\n\treturn URL.createObjectURL(blob);\n}\n\nfunction whenESMWorkerReady(worker: Worker): Promise<Worker> {\n\treturn new Promise<Worker>((resolve, reject) => {\n\t\tworker.onmessage = function (e) {\n\t\t\tif (e.data.type === 'vscode-worker-ready') {\n\t\t\t\tworker.onmessage = null;\n\t\t\t\tresolve(worker);\n\t\t\t}\n\t\t};\n\t\tworker.onerror = reject;\n\t});\n}\n\nfunction isPromiseLike<T>(obj: unknown): obj is PromiseLike<T> {\n\treturn !!obj && typeof (obj as PromiseLike<T>).then === 'function';\n}\n\n/**\n * A worker that uses HTML5 web workers so that is has\n * its own global scope and its own thread.\n */\nclass WebWorker extends Disposable implements IWebWorker {\n\n\tprivate static LAST_WORKER_ID = 0;\n\n\tprivate readonly id: number;\n\tprivate worker: Promise<Worker> | null;\n\n\tprivate readonly _onMessage = this._register(new Emitter<Message>());\n\tpublic readonly onMessage = this._onMessage.event;\n\n\tprivate readonly _onError = this._register(new Emitter<any>());\n\tpublic readonly onError = this._onError.event;\n\n\tconstructor(descriptorOrWorker: IWebWorkerDescriptor | Worker | Promise<Worker>) {\n\t\tsuper();\n\t\tthis.id = ++WebWorker.LAST_WORKER_ID;\n\t\tconst workerOrPromise = (\n\t\t\tdescriptorOrWorker instanceof Worker\n\t\t\t\t? descriptorOrWorker :\n\t\t\t\t'then' in descriptorOrWorker ? descriptorOrWorker\n\t\t\t\t\t: getWorker(descriptorOrWorker, this.id)\n\t\t);\n\t\tif (isPromiseLike(workerOrPromise)) {\n\t\t\tthis.worker = workerOrPromise;\n\t\t} else {\n\t\t\tthis.worker = Promise.resolve(workerOrPromise);\n\t\t}\n\t\tthis.postMessage('-please-ignore-', []); // TODO: Eliminate this extra message\n\t\tconst errorHandler = (ev: ErrorEvent) => {\n\t\t\tthis._onError.fire(ev);\n\t\t};\n\t\tthis.worker.then((w) => {\n\t\t\tw.onmessage = (ev) => {\n\t\t\t\tthis._onMessage.fire(ev.data);\n\t\t\t};\n\t\t\tw.onmessageerror = (ev) => {\n\t\t\t\tthis._onError.fire(ev);\n\t\t\t};\n\t\t\tif (typeof w.addEventListener === 'function') {\n\t\t\t\tw.addEventListener('error', errorHandler);\n\t\t\t}\n\t\t});\n\t\tthis._register(toDisposable(() => {\n\t\t\tthis.worker?.then(w => {\n\t\t\t\tw.onmessage = null;\n\t\t\t\tw.onmessageerror = null;\n\t\t\t\tw.removeEventListener('error', errorHandler);\n\t\t\t\tw.terminate();\n\t\t\t});\n\t\t\tthis.worker = null;\n\t\t}));\n\t}\n\n\tpublic getId(): number {\n\t\treturn this.id;\n\t}\n\n\tpublic postMessage(message: unknown, transfer: Transferable[]): void {\n\t\tthis.worker?.then(w => {\n\t\t\ttry {\n\t\t\t\tw.postMessage(message, transfer);\n\t\t\t} catch (err) {\n\t\t\t\tonUnexpectedError(err);\n\t\t\t\tonUnexpectedError(new Error(`FAILED to post message to worker`, { cause: err }));\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport interface IWebWorkerDescriptor {\n\treadonly esmModuleLocation: URI | undefined;\n\treadonly label: string | undefined;\n}\n\nexport class WebWorkerDescriptor implements IWebWorkerDescriptor {\n\tconstructor(\n\t\tpublic readonly esmModuleLocation: URI,\n\t\tpublic readonly label: string | undefined,\n\t) { }\n}\n\nexport function createWebWorker<T extends object>(esmModuleLocation: URI, label: string | undefined): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(workerDescriptor: IWebWorkerDescriptor | Worker | Promise<Worker>): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(arg0: URI | IWebWorkerDescriptor | Worker | Promise<Worker>, arg1?: string | undefined): IWebWorkerClient<T> {\n\tconst workerDescriptorOrWorker = (URI.isUri(arg0) ? new WebWorkerDescriptor(arg0, arg1) : arg0);\n\treturn new WebWorkerClient<T>(new WebWorker(workerDescriptorOrWorker));\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createTrustedTypesPolicy } from './trustedTypes.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { COI } from '../common/network.js';\nimport { URI } from '../common/uri.js';\nimport { IWebWorker, IWebWorkerClient, Message, WebWorkerClient } from '../common/worker/webWorker.js';\nimport { Disposable, toDisposable } from '../common/lifecycle.js';\nimport { coalesce } from '../common/arrays.js';\nimport { getNLSLanguage, getNLSMessages } from '../../nls.js';\nimport { Emitter } from '../common/event.js';\n\n// Reuse the trusted types policy defined from worker bootstrap\n// when available.\n// Refs https://github.com/microsoft/vscode/issues/222193\nlet ttPolicy: ReturnType<typeof createTrustedTypesPolicy>;\nif (typeof self === 'object' && self.constructor && self.constructor.name === 'DedicatedWorkerGlobalScope' && (globalThis as any).workerttPolicy !== undefined) {\n\tttPolicy = (globalThis as any).workerttPolicy;\n} else {\n\tttPolicy = createTrustedTypesPolicy('defaultWorkerFactory', { createScriptURL: value => value });\n}\n\nfunction getWorker(descriptor: IWebWorkerDescriptor, id: number): Worker | Promise<Worker> {\n\tconst label = descriptor.label || 'anonymous' + id;\n\n\t// Option for hosts to overwrite the worker script (used in the standalone editor)\n\tinterface IMonacoEnvironment {\n\t\tgetWorker?(moduleId: string, label: string): Worker | Promise<Worker>;\n\t\tgetWorkerUrl?(moduleId: string, label: string): string;\n\t}\n\tconst monacoEnvironment: IMonacoEnvironment | undefined = (globalThis as any).MonacoEnvironment;\n\tif (monacoEnvironment) {\n\t\tif (typeof monacoEnvironment.getWorker === 'function') {\n\t\t\treturn monacoEnvironment.getWorker('workerMain.js', label);\n\t\t}\n\t\tif (typeof monacoEnvironment.getWorkerUrl === 'function') {\n\t\t\tconst workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', label);\n\t\t\treturn new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\t}\n\t}\n\n\tconst esmWorkerLocation = descriptor.esmModuleLocation;\n\tif (esmWorkerLocation) {\n\t\tconst workerUrl = getWorkerBootstrapUrl(label, esmWorkerLocation.toString(true));\n\t\tconst worker = new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\treturn whenESMWorkerReady(worker);\n\t}\n\n\tthrow new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n}\n\nfunction getWorkerBootstrapUrl(label: string, workerScriptUrl: string): string {\n\tif (/^((http:)|(https:)|(file:))/.test(workerScriptUrl) && workerScriptUrl.substring(0, globalThis.origin.length) !== globalThis.origin) {\n\t\t// this is the cross-origin case\n\t\t// i.e. the webpage is running at a different origin than where the scripts are loaded from\n\t} else {\n\t\tconst start = workerScriptUrl.lastIndexOf('?');\n\t\tconst end = workerScriptUrl.lastIndexOf('#', start);\n\t\tconst params = start > 0\n\t\t\t? new URLSearchParams(workerScriptUrl.substring(start + 1, ~end ? end : undefined))\n\t\t\t: new URLSearchParams();\n\n\t\tCOI.addSearchParam(params, true, true);\n\t\tconst search = params.toString();\n\t\tif (!search) {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}#${label}`;\n\t\t} else {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}?${params.toString()}#${label}`;\n\t\t}\n\t}\n\n\t// In below blob code, we are using JSON.stringify to ensure the passed\n\t// in values are not breaking our script. The values may contain string\n\t// terminating characters (such as ' or \").\n\tconst blob = new Blob([coalesce([\n\t\t`/*${label}*/`,\n\t\t`globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify(getNLSMessages())};`,\n\t\t`globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify(getNLSLanguage())};`,\n\t\t`globalThis._VSCODE_FILE_ROOT = ${JSON.stringify(globalThis._VSCODE_FILE_ROOT)};`,\n\t\t`const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });`,\n\t\t`globalThis.workerttPolicy = ttPolicy;`,\n\t\t`await import(ttPolicy?.createScriptURL(${JSON.stringify(workerScriptUrl)}) ?? ${JSON.stringify(workerScriptUrl)});`,\n\t\t`globalThis.postMessage({ type: 'vscode-worker-ready' });`,\n\t\t`/*${label}*/`\n\t]).join('')], { type: 'application/javascript' });\n\treturn URL.createObjectURL(blob);\n}\n\nfunction whenESMWorkerReady(worker: Worker): Promise<Worker> {\n\treturn new Promise<Worker>((resolve, reject) => {\n\t\tworker.onmessage = function (e) {\n\t\t\tif (e.data.type === 'vscode-worker-ready') {\n\t\t\t\tworker.onmessage = null;\n\t\t\t\tresolve(worker);\n\t\t\t}\n\t\t};\n\t\tworker.onerror = reject;\n\t});\n}\n\nfunction isPromiseLike<T>(obj: unknown): obj is PromiseLike<T> {\n\treturn !!obj && typeof (obj as PromiseLike<T>).then === 'function';\n}\n\n/**\n * A worker that uses HTML5 web workers so that is has\n * its own global scope and its own thread.\n */\nclass WebWorker extends Disposable implements IWebWorker {\n\n\tprivate static LAST_WORKER_ID = 0;\n\n\tprivate readonly id: number;\n\tprivate worker: Promise<Worker> | null;\n\n\tprivate readonly _onMessage = this._register(new Emitter<Message>());\n\tpublic readonly onMessage = this._onMessage.event;\n\n\tprivate readonly _onError = this._register(new Emitter<any>());\n\tpublic readonly onError = this._onError.event;\n\n\tconstructor(descriptorOrWorker: IWebWorkerDescriptor | Worker | Promise<Worker>) {\n\t\tsuper();\n\t\tthis.id = ++WebWorker.LAST_WORKER_ID;\n\t\tconst workerOrPromise = (\n\t\t\tdescriptorOrWorker instanceof Worker\n\t\t\t\t? descriptorOrWorker :\n\t\t\t\t'then' in descriptorOrWorker ? descriptorOrWorker\n\t\t\t\t\t: getWorker(descriptorOrWorker, this.id)\n\t\t);\n\t\tif (isPromiseLike(workerOrPromise)) {\n\t\t\tthis.worker = workerOrPromise;\n\t\t} else {\n\t\t\tthis.worker = Promise.resolve(workerOrPromise);\n\t\t}\n\t\tthis.postMessage('-please-ignore-', []); // TODO: Eliminate this extra message\n\t\tconst errorHandler = (ev: ErrorEvent) => {\n\t\t\tthis._onError.fire(ev);\n\t\t};\n\t\tthis.worker.then((w) => {\n\t\t\tw.onmessage = (ev) => {\n\t\t\t\tthis._onMessage.fire(ev.data);\n\t\t\t};\n\t\t\tw.onmessageerror = (ev) => {\n\t\t\t\tthis._onError.fire(ev);\n\t\t\t};\n\t\t\tif (typeof w.addEventListener === 'function') {\n\t\t\t\tw.addEventListener('error', errorHandler);\n\t\t\t}\n\t\t});\n\t\tthis._register(toDisposable(() => {\n\t\t\tthis.worker?.then(w => {\n\t\t\t\tw.onmessage = null;\n\t\t\t\tw.onmessageerror = null;\n\t\t\t\tw.removeEventListener('error', errorHandler);\n\t\t\t\tw.terminate();\n\t\t\t});\n\t\t\tthis.worker = null;\n\t\t}));\n\t}\n\n\tpublic getId(): number {\n\t\treturn this.id;\n\t}\n\n\tpublic postMessage(message: unknown, transfer: Transferable[]): void {\n\t\tthis.worker?.then(w => {\n\t\t\ttry {\n\t\t\t\tw.postMessage(message, transfer);\n\t\t\t} catch (err) {\n\t\t\t\tonUnexpectedError(err);\n\t\t\t\tonUnexpectedError(new Error(`FAILED to post message to worker`, { cause: err }));\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport interface IWebWorkerDescriptor {\n\treadonly esmModuleLocation: URI | undefined;\n\treadonly label: string | undefined;\n}\n\nexport class WebWorkerDescriptor implements IWebWorkerDescriptor {\n\tconstructor(\n\t\tpublic readonly esmModuleLocation: URI,\n\t\tpublic readonly label: string | undefined,\n\t) { }\n}\n\nexport function createWebWorker<T extends object>(esmModuleLocation: URI, label: string | undefined): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(workerDescriptor: IWebWorkerDescriptor | Worker | Promise<Worker>): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(arg0: URI | IWebWorkerDescriptor | Worker | Promise<Worker>, arg1?: string | undefined): IWebWorkerClient<T> {\n\tconst workerDescriptorOrWorker = (URI.isUri(arg0) ? new WebWorkerDescriptor(arg0, arg1) : arg0);\n\treturn new WebWorkerClient<T>(new WebWorker(workerDescriptorOrWorker));\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/browser/webWorkerFactory.ts","vs/base/browser/webWorkerFactory.ts"],"names":[],"mappings":"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","file":"webWorkerFactory.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createTrustedTypesPolicy } from './trustedTypes.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { COI } from '../common/network.js';\nimport { URI } from '../common/uri.js';\nimport { IWebWorker, IWebWorkerClient, Message, WebWorkerClient } from '../common/worker/webWorker.js';\nimport { Disposable, toDisposable } from '../common/lifecycle.js';\nimport { coalesce } from '../common/arrays.js';\nimport { getNLSLanguage, getNLSMessages } from '../../nls.js';\nimport { Emitter } from '../common/event.js';\n\n// Reuse the trusted types policy defined from worker bootstrap\n// when available.\n// Refs https://github.com/microsoft/vscode/issues/222193\nlet ttPolicy: ReturnType<typeof createTrustedTypesPolicy>;\n// eslint-disable-next-line local/code-no-any-casts\nif (typeof self === 'object' && self.constructor && self.constructor.name === 'DedicatedWorkerGlobalScope' && (globalThis as any).workerttPolicy !== undefined) {\n\t// eslint-disable-next-line local/code-no-any-casts\n\tttPolicy = (globalThis as any).workerttPolicy;\n} else {\n\tttPolicy = createTrustedTypesPolicy('defaultWorkerFactory', { createScriptURL: value => value });\n}\n\nfunction getWorker(descriptor: IWebWorkerDescriptor, id: number): Worker | Promise<Worker> {\n\tconst label = descriptor.label || 'anonymous' + id;\n\n\t// Option for hosts to overwrite the worker script (used in the standalone editor)\n\tinterface IMonacoEnvironment {\n\t\tgetWorker?(moduleId: string, label: string): Worker | Promise<Worker>;\n\t\tgetWorkerUrl?(moduleId: string, label: string): string;\n\t}\n\t// eslint-disable-next-line local/code-no-any-casts\n\tconst monacoEnvironment: IMonacoEnvironment | undefined = (globalThis as any).MonacoEnvironment;\n\tif (monacoEnvironment) {\n\t\tif (typeof monacoEnvironment.getWorker === 'function') {\n\t\t\treturn monacoEnvironment.getWorker('workerMain.js', label);\n\t\t}\n\t\tif (typeof monacoEnvironment.getWorkerUrl === 'function') {\n\t\t\tconst workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', label);\n\t\t\treturn new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\t}\n\t}\n\n\tconst esmWorkerLocation = descriptor.esmModuleLocation;\n\tif (esmWorkerLocation) {\n\t\tconst workerUrl = getWorkerBootstrapUrl(label, esmWorkerLocation.toString(true));\n\t\tconst worker = new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\treturn whenESMWorkerReady(worker);\n\t}\n\n\tthrow new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n}\n\nfunction getWorkerBootstrapUrl(label: string, workerScriptUrl: string): string {\n\tif (/^((http:)|(https:)|(file:))/.test(workerScriptUrl) && workerScriptUrl.substring(0, globalThis.origin.length) !== globalThis.origin) {\n\t\t// this is the cross-origin case\n\t\t// i.e. the webpage is running at a different origin than where the scripts are loaded from\n\t} else {\n\t\tconst start = workerScriptUrl.lastIndexOf('?');\n\t\tconst end = workerScriptUrl.lastIndexOf('#', start);\n\t\tconst params = start > 0\n\t\t\t? new URLSearchParams(workerScriptUrl.substring(start + 1, ~end ? end : undefined))\n\t\t\t: new URLSearchParams();\n\n\t\tCOI.addSearchParam(params, true, true);\n\t\tconst search = params.toString();\n\t\tif (!search) {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}#${label}`;\n\t\t} else {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}?${params.toString()}#${label}`;\n\t\t}\n\t}\n\n\t// In below blob code, we are using JSON.stringify to ensure the passed\n\t// in values are not breaking our script. The values may contain string\n\t// terminating characters (such as ' or \").\n\tconst blob = new Blob([coalesce([\n\t\t`/*${label}*/`,\n\t\t`globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify(getNLSMessages())};`,\n\t\t`globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify(getNLSLanguage())};`,\n\t\t`globalThis._VSCODE_FILE_ROOT = ${JSON.stringify(globalThis._VSCODE_FILE_ROOT)};`,\n\t\t`const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });`,\n\t\t`globalThis.workerttPolicy = ttPolicy;`,\n\t\t`await import(ttPolicy?.createScriptURL(${JSON.stringify(workerScriptUrl)}) ?? ${JSON.stringify(workerScriptUrl)});`,\n\t\t`globalThis.postMessage({ type: 'vscode-worker-ready' });`,\n\t\t`/*${label}*/`\n\t]).join('')], { type: 'application/javascript' });\n\treturn URL.createObjectURL(blob);\n}\n\nfunction whenESMWorkerReady(worker: Worker): Promise<Worker> {\n\treturn new Promise<Worker>((resolve, reject) => {\n\t\tworker.onmessage = function (e) {\n\t\t\tif (e.data.type === 'vscode-worker-ready') {\n\t\t\t\tworker.onmessage = null;\n\t\t\t\tresolve(worker);\n\t\t\t}\n\t\t};\n\t\tworker.onerror = reject;\n\t});\n}\n\nfunction isPromiseLike<T>(obj: unknown): obj is PromiseLike<T> {\n\treturn !!obj && typeof (obj as PromiseLike<T>).then === 'function';\n}\n\n/**\n * A worker that uses HTML5 web workers so that is has\n * its own global scope and its own thread.\n */\nclass WebWorker extends Disposable implements IWebWorker {\n\n\tprivate static LAST_WORKER_ID = 0;\n\n\tprivate readonly id: number;\n\tprivate worker: Promise<Worker> | null;\n\n\tprivate readonly _onMessage = this._register(new Emitter<Message>());\n\tpublic readonly onMessage = this._onMessage.event;\n\n\tprivate readonly _onError = this._register(new Emitter<any>());\n\tpublic readonly onError = this._onError.event;\n\n\tconstructor(descriptorOrWorker: IWebWorkerDescriptor | Worker | Promise<Worker>) {\n\t\tsuper();\n\t\tthis.id = ++WebWorker.LAST_WORKER_ID;\n\t\tconst workerOrPromise = (\n\t\t\tdescriptorOrWorker instanceof Worker\n\t\t\t\t? descriptorOrWorker :\n\t\t\t\t'then' in descriptorOrWorker ? descriptorOrWorker\n\t\t\t\t\t: getWorker(descriptorOrWorker, this.id)\n\t\t);\n\t\tif (isPromiseLike(workerOrPromise)) {\n\t\t\tthis.worker = workerOrPromise;\n\t\t} else {\n\t\t\tthis.worker = Promise.resolve(workerOrPromise);\n\t\t}\n\t\tthis.postMessage('-please-ignore-', []); // TODO: Eliminate this extra message\n\t\tconst errorHandler = (ev: ErrorEvent) => {\n\t\t\tthis._onError.fire(ev);\n\t\t};\n\t\tthis.worker.then((w) => {\n\t\t\tw.onmessage = (ev) => {\n\t\t\t\tthis._onMessage.fire(ev.data);\n\t\t\t};\n\t\t\tw.onmessageerror = (ev) => {\n\t\t\t\tthis._onError.fire(ev);\n\t\t\t};\n\t\t\tif (typeof w.addEventListener === 'function') {\n\t\t\t\tw.addEventListener('error', errorHandler);\n\t\t\t}\n\t\t});\n\t\tthis._register(toDisposable(() => {\n\t\t\tthis.worker?.then(w => {\n\t\t\t\tw.onmessage = null;\n\t\t\t\tw.onmessageerror = null;\n\t\t\t\tw.removeEventListener('error', errorHandler);\n\t\t\t\tw.terminate();\n\t\t\t});\n\t\t\tthis.worker = null;\n\t\t}));\n\t}\n\n\tpublic getId(): number {\n\t\treturn this.id;\n\t}\n\n\tpublic postMessage(message: unknown, transfer: Transferable[]): void {\n\t\tthis.worker?.then(w => {\n\t\t\ttry {\n\t\t\t\tw.postMessage(message, transfer);\n\t\t\t} catch (err) {\n\t\t\t\tonUnexpectedError(err);\n\t\t\t\tonUnexpectedError(new Error(`FAILED to post message to worker`, { cause: err }));\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport interface IWebWorkerDescriptor {\n\treadonly esmModuleLocation: URI | undefined;\n\treadonly label: string | undefined;\n}\n\nexport class WebWorkerDescriptor implements IWebWorkerDescriptor {\n\tconstructor(\n\t\tpublic readonly esmModuleLocation: URI,\n\t\tpublic readonly label: string | undefined,\n\t) { }\n}\n\nexport function createWebWorker<T extends object>(esmModuleLocation: URI, label: string | undefined): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(workerDescriptor: IWebWorkerDescriptor | Worker | Promise<Worker>): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(arg0: URI | IWebWorkerDescriptor | Worker | Promise<Worker>, arg1?: string | undefined): IWebWorkerClient<T> {\n\tconst workerDescriptorOrWorker = (URI.isUri(arg0) ? new WebWorkerDescriptor(arg0, arg1) : arg0);\n\treturn new WebWorkerClient<T>(new WebWorker(workerDescriptorOrWorker));\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createTrustedTypesPolicy } from './trustedTypes.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { COI } from '../common/network.js';\nimport { URI } from '../common/uri.js';\nimport { IWebWorker, IWebWorkerClient, Message, WebWorkerClient } from '../common/worker/webWorker.js';\nimport { Disposable, toDisposable } from '../common/lifecycle.js';\nimport { coalesce } from '../common/arrays.js';\nimport { getNLSLanguage, getNLSMessages } from '../../nls.js';\nimport { Emitter } from '../common/event.js';\n\n// Reuse the trusted types policy defined from worker bootstrap\n// when available.\n// Refs https://github.com/microsoft/vscode/issues/222193\nlet ttPolicy: ReturnType<typeof createTrustedTypesPolicy>;\n// eslint-disable-next-line local/code-no-any-casts\nif (typeof self === 'object' && self.constructor && self.constructor.name === 'DedicatedWorkerGlobalScope' && (globalThis as any).workerttPolicy !== undefined) {\n\t// eslint-disable-next-line local/code-no-any-casts\n\tttPolicy = (globalThis as any).workerttPolicy;\n} else {\n\tttPolicy = createTrustedTypesPolicy('defaultWorkerFactory', { createScriptURL: value => value });\n}\n\nfunction getWorker(descriptor: IWebWorkerDescriptor, id: number): Worker | Promise<Worker> {\n\tconst label = descriptor.label || 'anonymous' + id;\n\n\t// Option for hosts to overwrite the worker script (used in the standalone editor)\n\tinterface IMonacoEnvironment {\n\t\tgetWorker?(moduleId: string, label: string): Worker | Promise<Worker>;\n\t\tgetWorkerUrl?(moduleId: string, label: string): string;\n\t}\n\t// eslint-disable-next-line local/code-no-any-casts\n\tconst monacoEnvironment: IMonacoEnvironment | undefined = (globalThis as any).MonacoEnvironment;\n\tif (monacoEnvironment) {\n\t\tif (typeof monacoEnvironment.getWorker === 'function') {\n\t\t\treturn monacoEnvironment.getWorker('workerMain.js', label);\n\t\t}\n\t\tif (typeof monacoEnvironment.getWorkerUrl === 'function') {\n\t\t\tconst workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', label);\n\t\t\treturn new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\t}\n\t}\n\n\tconst esmWorkerLocation = descriptor.esmModuleLocation;\n\tif (esmWorkerLocation) {\n\t\tconst workerUrl = getWorkerBootstrapUrl(label, esmWorkerLocation.toString(true));\n\t\tconst worker = new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label, type: 'module' });\n\t\treturn whenESMWorkerReady(worker);\n\t}\n\n\tthrow new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n}\n\nfunction getWorkerBootstrapUrl(label: string, workerScriptUrl: string): string {\n\tif (/^((http:)|(https:)|(file:))/.test(workerScriptUrl) && workerScriptUrl.substring(0, globalThis.origin.length) !== globalThis.origin) {\n\t\t// this is the cross-origin case\n\t\t// i.e. the webpage is running at a different origin than where the scripts are loaded from\n\t} else {\n\t\tconst start = workerScriptUrl.lastIndexOf('?');\n\t\tconst end = workerScriptUrl.lastIndexOf('#', start);\n\t\tconst params = start > 0\n\t\t\t? new URLSearchParams(workerScriptUrl.substring(start + 1, ~end ? end : undefined))\n\t\t\t: new URLSearchParams();\n\n\t\tCOI.addSearchParam(params, true, true);\n\t\tconst search = params.toString();\n\t\tif (!search) {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}#${label}`;\n\t\t} else {\n\t\t\tworkerScriptUrl = `${workerScriptUrl}?${params.toString()}#${label}`;\n\t\t}\n\t}\n\n\t// In below blob code, we are using JSON.stringify to ensure the passed\n\t// in values are not breaking our script. The values may contain string\n\t// terminating characters (such as ' or \").\n\tconst blob = new Blob([coalesce([\n\t\t`/*${label}*/`,\n\t\t`globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify(getNLSMessages())};`,\n\t\t`globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify(getNLSLanguage())};`,\n\t\t`globalThis._VSCODE_FILE_ROOT = ${JSON.stringify(globalThis._VSCODE_FILE_ROOT)};`,\n\t\t`const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });`,\n\t\t`globalThis.workerttPolicy = ttPolicy;`,\n\t\t`await import(ttPolicy?.createScriptURL(${JSON.stringify(workerScriptUrl)}) ?? ${JSON.stringify(workerScriptUrl)});`,\n\t\t`globalThis.postMessage({ type: 'vscode-worker-ready' });`,\n\t\t`/*${label}*/`\n\t]).join('')], { type: 'application/javascript' });\n\treturn URL.createObjectURL(blob);\n}\n\nfunction whenESMWorkerReady(worker: Worker): Promise<Worker> {\n\treturn new Promise<Worker>((resolve, reject) => {\n\t\tworker.onmessage = function (e) {\n\t\t\tif (e.data.type === 'vscode-worker-ready') {\n\t\t\t\tworker.onmessage = null;\n\t\t\t\tresolve(worker);\n\t\t\t}\n\t\t};\n\t\tworker.onerror = reject;\n\t});\n}\n\nfunction isPromiseLike<T>(obj: unknown): obj is PromiseLike<T> {\n\treturn !!obj && typeof (obj as PromiseLike<T>).then === 'function';\n}\n\n/**\n * A worker that uses HTML5 web workers so that is has\n * its own global scope and its own thread.\n */\nclass WebWorker extends Disposable implements IWebWorker {\n\n\tprivate static LAST_WORKER_ID = 0;\n\n\tprivate readonly id: number;\n\tprivate worker: Promise<Worker> | null;\n\n\tprivate readonly _onMessage = this._register(new Emitter<Message>());\n\tpublic readonly onMessage = this._onMessage.event;\n\n\tprivate readonly _onError = this._register(new Emitter<any>());\n\tpublic readonly onError = this._onError.event;\n\n\tconstructor(descriptorOrWorker: IWebWorkerDescriptor | Worker | Promise<Worker>) {\n\t\tsuper();\n\t\tthis.id = ++WebWorker.LAST_WORKER_ID;\n\t\tconst workerOrPromise = (\n\t\t\tdescriptorOrWorker instanceof Worker\n\t\t\t\t? descriptorOrWorker :\n\t\t\t\t'then' in descriptorOrWorker ? descriptorOrWorker\n\t\t\t\t\t: getWorker(descriptorOrWorker, this.id)\n\t\t);\n\t\tif (isPromiseLike(workerOrPromise)) {\n\t\t\tthis.worker = workerOrPromise;\n\t\t} else {\n\t\t\tthis.worker = Promise.resolve(workerOrPromise);\n\t\t}\n\t\tthis.postMessage('-please-ignore-', []); // TODO: Eliminate this extra message\n\t\tconst errorHandler = (ev: ErrorEvent) => {\n\t\t\tthis._onError.fire(ev);\n\t\t};\n\t\tthis.worker.then((w) => {\n\t\t\tw.onmessage = (ev) => {\n\t\t\t\tthis._onMessage.fire(ev.data);\n\t\t\t};\n\t\t\tw.onmessageerror = (ev) => {\n\t\t\t\tthis._onError.fire(ev);\n\t\t\t};\n\t\t\tif (typeof w.addEventListener === 'function') {\n\t\t\t\tw.addEventListener('error', errorHandler);\n\t\t\t}\n\t\t});\n\t\tthis._register(toDisposable(() => {\n\t\t\tthis.worker?.then(w => {\n\t\t\t\tw.onmessage = null;\n\t\t\t\tw.onmessageerror = null;\n\t\t\t\tw.removeEventListener('error', errorHandler);\n\t\t\t\tw.terminate();\n\t\t\t});\n\t\t\tthis.worker = null;\n\t\t}));\n\t}\n\n\tpublic getId(): number {\n\t\treturn this.id;\n\t}\n\n\tpublic postMessage(message: unknown, transfer: Transferable[]): void {\n\t\tthis.worker?.then(w => {\n\t\t\ttry {\n\t\t\t\tw.postMessage(message, transfer);\n\t\t\t} catch (err) {\n\t\t\t\tonUnexpectedError(err);\n\t\t\t\tonUnexpectedError(new Error(`FAILED to post message to worker`, { cause: err }));\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport interface IWebWorkerDescriptor {\n\treadonly esmModuleLocation: URI | undefined;\n\treadonly label: string | undefined;\n}\n\nexport class WebWorkerDescriptor implements IWebWorkerDescriptor {\n\tconstructor(\n\t\tpublic readonly esmModuleLocation: URI,\n\t\tpublic readonly label: string | undefined,\n\t) { }\n}\n\nexport function createWebWorker<T extends object>(esmModuleLocation: URI, label: string | undefined): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(workerDescriptor: IWebWorkerDescriptor | Worker | Promise<Worker>): IWebWorkerClient<T>;\nexport function createWebWorker<T extends object>(arg0: URI | IWebWorkerDescriptor | Worker | Promise<Worker>, arg1?: string | undefined): IWebWorkerClient<T> {\n\tconst workerDescriptorOrWorker = (URI.isUri(arg0) ? new WebWorkerDescriptor(arg0, arg1) : arg0);\n\treturn new WebWorkerClient<T>(new WebWorker(workerDescriptorOrWorker));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/buffer.ts","vs/base/common/buffer.ts"],"names":[],"mappings":"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","file":"buffer.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Lazy } from './lazy.js';\nimport * as streams from './stream.js';\n\ninterface NodeBuffer {\n\tisBuffer(obj: any): obj is NodeBuffer;\n\tfrom(arrayBuffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;\n\tfrom(data: string): Uint8Array;\n}\n\ndeclare const Buffer: NodeBuffer;\n\nconst hasBuffer = (typeof Buffer !== 'undefined');\nconst indexOfTable = new Lazy(() => new Uint8Array(256));\nlet textDecoder: { decode: (input: Uint8Array) => string } | null;\n\nexport class VSBuffer {\n\n\t/**\n\t * When running in a nodejs context, if `actual` is not a nodejs Buffer, the backing store for\n\t * the returned `VSBuffer` instance might use a nodejs Buffer allocated from node's Buffer pool,\n\t * which is not transferrable.\n\t */\n\tstatic wrap(actual: Uint8Array): VSBuffer {\n\t\tif (hasBuffer && !(Buffer.isBuffer(actual))) {\n\t\t\t// https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length\n\t\t\t// Create a zero-copy Buffer wrapper around the ArrayBuffer pointed to by the Uint8Array\n\t\t\tactual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);\n\t\t}\n\t\treturn new VSBuffer(actual);\n\t}\n\n\treadonly buffer: Uint8Array;\n\treadonly byteLength: number;\n\n\tprivate constructor(buffer: Uint8Array) {\n\t\tthis.buffer = buffer;\n\t\tthis.byteLength = this.buffer.byteLength;\n\t}\n\n\ttoString(): string {\n\t\tif (hasBuffer) {\n\t\t\treturn this.buffer.toString();\n\t\t} else {\n\t\t\tif (!textDecoder) {\n\t\t\t\ttextDecoder = new TextDecoder();\n\t\t\t}\n\t\t\treturn textDecoder.decode(this.buffer);\n\t\t}\n\t}\n}\n\nexport function readUInt16LE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\t((source[offset + 0] << 0) >>> 0) |\n\t\t((source[offset + 1] << 8) >>> 0)\n\t);\n}\n\nexport function writeUInt16LE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 0] = (value & 0b11111111);\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = (value & 0b11111111);\n}\n\nexport function readUInt32BE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\tsource[offset] * 2 ** 24\n\t\t+ source[offset + 1] * 2 ** 16\n\t\t+ source[offset + 2] * 2 ** 8\n\t\t+ source[offset + 3]\n\t);\n}\n\nexport function writeUInt32BE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 3] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 2] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = value;\n\tvalue = value >>> 8;\n\tdestination[offset] = value;\n}\n\nexport function readUInt8(source: Uint8Array, offset: number): number {\n\treturn source[offset];\n}\n\nexport function writeUInt8(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset] = value;\n}\n\nexport interface VSBufferReadable extends streams.Readable<VSBuffer> { }\n\nexport interface VSBufferReadableStream extends streams.ReadableStream<VSBuffer> { }\n\nconst hexChars = '0123456789abcdef';\nexport function encodeHex({ buffer }: VSBuffer): string {\n\tlet result = '';\n\tfor (let i = 0; i < buffer.length; i++) {\n\t\tconst byte = buffer[i];\n\t\tresult += hexChars[byte >>> 4];\n\t\tresult += hexChars[byte & 0x0f];\n\t}\n\treturn result;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Lazy } from './lazy.js';\nimport * as streams from './stream.js';\n\ninterface NodeBuffer {\n\tisBuffer(obj: any): obj is NodeBuffer;\n\tfrom(arrayBuffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;\n\tfrom(data: string): Uint8Array;\n}\n\ndeclare const Buffer: NodeBuffer;\n\nconst hasBuffer = (typeof Buffer !== 'undefined');\nconst indexOfTable = new Lazy(() => new Uint8Array(256));\nlet textDecoder: { decode: (input: Uint8Array) => string } | null;\n\nexport class VSBuffer {\n\n\t/**\n\t * When running in a nodejs context, if `actual` is not a nodejs Buffer, the backing store for\n\t * the returned `VSBuffer` instance might use a nodejs Buffer allocated from node's Buffer pool,\n\t * which is not transferrable.\n\t */\n\tstatic wrap(actual: Uint8Array): VSBuffer {\n\t\tif (hasBuffer && !(Buffer.isBuffer(actual))) {\n\t\t\t// https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length\n\t\t\t// Create a zero-copy Buffer wrapper around the ArrayBuffer pointed to by the Uint8Array\n\t\t\tactual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);\n\t\t}\n\t\treturn new VSBuffer(actual);\n\t}\n\n\treadonly buffer: Uint8Array;\n\treadonly byteLength: number;\n\n\tprivate constructor(buffer: Uint8Array) {\n\t\tthis.buffer = buffer;\n\t\tthis.byteLength = this.buffer.byteLength;\n\t}\n\n\ttoString(): string {\n\t\tif (hasBuffer) {\n\t\t\treturn this.buffer.toString();\n\t\t} else {\n\t\t\tif (!textDecoder) {\n\t\t\t\ttextDecoder = new TextDecoder();\n\t\t\t}\n\t\t\treturn textDecoder.decode(this.buffer);\n\t\t}\n\t}\n}\n\nexport function readUInt16LE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\t((source[offset + 0] << 0) >>> 0) |\n\t\t((source[offset + 1] << 8) >>> 0)\n\t);\n}\n\nexport function writeUInt16LE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 0] = (value & 0b11111111);\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = (value & 0b11111111);\n}\n\nexport function readUInt32BE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\tsource[offset] * 2 ** 24\n\t\t+ source[offset + 1] * 2 ** 16\n\t\t+ source[offset + 2] * 2 ** 8\n\t\t+ source[offset + 3]\n\t);\n}\n\nexport function writeUInt32BE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 3] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 2] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = value;\n\tvalue = value >>> 8;\n\tdestination[offset] = value;\n}\n\nexport function readUInt8(source: Uint8Array, offset: number): number {\n\treturn source[offset];\n}\n\nexport function writeUInt8(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset] = value;\n}\n\nexport interface VSBufferReadable extends streams.Readable<VSBuffer> { }\n\nexport interface VSBufferReadableStream extends streams.ReadableStream<VSBuffer> { }\n\nconst hexChars = '0123456789abcdef';\nexport function encodeHex({ buffer }: VSBuffer): string {\n\tlet result = '';\n\tfor (let i = 0; i < buffer.length; i++) {\n\t\tconst byte = buffer[i];\n\t\tresult += hexChars[byte >>> 4];\n\t\tresult += hexChars[byte & 0x0f];\n\t}\n\treturn result;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/buffer.ts","vs/base/common/buffer.ts"],"names":[],"mappings":"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","file":"buffer.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Lazy } from './lazy.js';\nimport * as streams from './stream.js';\n\ninterface NodeBuffer {\n\tisBuffer(obj: unknown): obj is NodeBuffer;\n\tfrom(arrayBuffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;\n\tfrom(data: string): Uint8Array;\n}\n\ndeclare const Buffer: NodeBuffer;\n\nconst hasBuffer = (typeof Buffer !== 'undefined');\nconst indexOfTable = new Lazy(() => new Uint8Array(256));\nlet textDecoder: { decode: (input: Uint8Array) => string } | null;\n\nexport class VSBuffer {\n\n\t/**\n\t * When running in a nodejs context, if `actual` is not a nodejs Buffer, the backing store for\n\t * the returned `VSBuffer` instance might use a nodejs Buffer allocated from node's Buffer pool,\n\t * which is not transferrable.\n\t */\n\tstatic wrap(actual: Uint8Array): VSBuffer {\n\t\tif (hasBuffer && !(Buffer.isBuffer(actual))) {\n\t\t\t// https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length\n\t\t\t// Create a zero-copy Buffer wrapper around the ArrayBuffer pointed to by the Uint8Array\n\t\t\tactual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);\n\t\t}\n\t\treturn new VSBuffer(actual);\n\t}\n\n\treadonly buffer: Uint8Array;\n\treadonly byteLength: number;\n\n\tprivate constructor(buffer: Uint8Array) {\n\t\tthis.buffer = buffer;\n\t\tthis.byteLength = this.buffer.byteLength;\n\t}\n\n\ttoString(): string {\n\t\tif (hasBuffer) {\n\t\t\treturn this.buffer.toString();\n\t\t} else {\n\t\t\tif (!textDecoder) {\n\t\t\t\ttextDecoder = new TextDecoder();\n\t\t\t}\n\t\t\treturn textDecoder.decode(this.buffer);\n\t\t}\n\t}\n}\n\nexport function readUInt16LE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\t((source[offset + 0] << 0) >>> 0) |\n\t\t((source[offset + 1] << 8) >>> 0)\n\t);\n}\n\nexport function writeUInt16LE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 0] = (value & 0b11111111);\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = (value & 0b11111111);\n}\n\nexport function readUInt32BE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\tsource[offset] * 2 ** 24\n\t\t+ source[offset + 1] * 2 ** 16\n\t\t+ source[offset + 2] * 2 ** 8\n\t\t+ source[offset + 3]\n\t);\n}\n\nexport function writeUInt32BE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 3] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 2] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = value;\n\tvalue = value >>> 8;\n\tdestination[offset] = value;\n}\n\nexport function readUInt8(source: Uint8Array, offset: number): number {\n\treturn source[offset];\n}\n\nexport function writeUInt8(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset] = value;\n}\n\nexport interface VSBufferReadable extends streams.Readable<VSBuffer> { }\n\nexport interface VSBufferReadableStream extends streams.ReadableStream<VSBuffer> { }\n\nconst hexChars = '0123456789abcdef';\nexport function encodeHex({ buffer }: VSBuffer): string {\n\tlet result = '';\n\tfor (let i = 0; i < buffer.length; i++) {\n\t\tconst byte = buffer[i];\n\t\tresult += hexChars[byte >>> 4];\n\t\tresult += hexChars[byte & 0x0f];\n\t}\n\treturn result;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Lazy } from './lazy.js';\nimport * as streams from './stream.js';\n\ninterface NodeBuffer {\n\tisBuffer(obj: unknown): obj is NodeBuffer;\n\tfrom(arrayBuffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;\n\tfrom(data: string): Uint8Array;\n}\n\ndeclare const Buffer: NodeBuffer;\n\nconst hasBuffer = (typeof Buffer !== 'undefined');\nconst indexOfTable = new Lazy(() => new Uint8Array(256));\nlet textDecoder: { decode: (input: Uint8Array) => string } | null;\n\nexport class VSBuffer {\n\n\t/**\n\t * When running in a nodejs context, if `actual` is not a nodejs Buffer, the backing store for\n\t * the returned `VSBuffer` instance might use a nodejs Buffer allocated from node's Buffer pool,\n\t * which is not transferrable.\n\t */\n\tstatic wrap(actual: Uint8Array): VSBuffer {\n\t\tif (hasBuffer && !(Buffer.isBuffer(actual))) {\n\t\t\t// https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length\n\t\t\t// Create a zero-copy Buffer wrapper around the ArrayBuffer pointed to by the Uint8Array\n\t\t\tactual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);\n\t\t}\n\t\treturn new VSBuffer(actual);\n\t}\n\n\treadonly buffer: Uint8Array;\n\treadonly byteLength: number;\n\n\tprivate constructor(buffer: Uint8Array) {\n\t\tthis.buffer = buffer;\n\t\tthis.byteLength = this.buffer.byteLength;\n\t}\n\n\ttoString(): string {\n\t\tif (hasBuffer) {\n\t\t\treturn this.buffer.toString();\n\t\t} else {\n\t\t\tif (!textDecoder) {\n\t\t\t\ttextDecoder = new TextDecoder();\n\t\t\t}\n\t\t\treturn textDecoder.decode(this.buffer);\n\t\t}\n\t}\n}\n\nexport function readUInt16LE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\t((source[offset + 0] << 0) >>> 0) |\n\t\t((source[offset + 1] << 8) >>> 0)\n\t);\n}\n\nexport function writeUInt16LE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 0] = (value & 0b11111111);\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = (value & 0b11111111);\n}\n\nexport function readUInt32BE(source: Uint8Array, offset: number): number {\n\treturn (\n\t\tsource[offset] * 2 ** 24\n\t\t+ source[offset + 1] * 2 ** 16\n\t\t+ source[offset + 2] * 2 ** 8\n\t\t+ source[offset + 3]\n\t);\n}\n\nexport function writeUInt32BE(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset + 3] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 2] = value;\n\tvalue = value >>> 8;\n\tdestination[offset + 1] = value;\n\tvalue = value >>> 8;\n\tdestination[offset] = value;\n}\n\nexport function readUInt8(source: Uint8Array, offset: number): number {\n\treturn source[offset];\n}\n\nexport function writeUInt8(destination: Uint8Array, value: number, offset: number): void {\n\tdestination[offset] = value;\n}\n\nexport interface VSBufferReadable extends streams.Readable<VSBuffer> { }\n\nexport interface VSBufferReadableStream extends streams.ReadableStream<VSBuffer> { }\n\nconst hexChars = '0123456789abcdef';\nexport function encodeHex({ buffer }: VSBuffer): string {\n\tlet result = '';\n\tfor (let i = 0; i < buffer.length; i++) {\n\t\tconst byte = buffer[i];\n\t\tresult += hexChars[byte >>> 4];\n\t\tresult += hexChars[byte & 0x0f];\n\t}\n\treturn result;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/decorators.ts","vs/base/common/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,GAAW,EAAE,UAA8B;IACnF,IAAI,KAAK,GAA2B,IAAI,CAAC;IACzC,IAAI,EAAE,GAAoB,IAAI,CAAC;IAE/B,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC5C,KAAK,GAAG,OAAO,CAAC;QAChB,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;QAEtB,IAAI,EAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC/E,CAAC;IACF,CAAC;SAAM,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACjD,KAAK,GAAG,KAAK,CAAC;QACd,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,GAAG,EAAE,CAAC;IACrC,UAAU,CAAC,KAAM,CAAC,GAAG,UAAU,GAAG,IAAW;QAC5C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;gBACvC,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;aAC3B,CAAC,CAAC;QACJ,CAAC;QACD,OAAQ,IAAY,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC;AACH,CAAC","file":"decorators.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\n\nexport function memoize(_target: Object, key: string, descriptor: PropertyDescriptor) {\n\tlet fnKey: 'value' | 'get' | null = null;\n\tlet fn: Function | null = null;\n\n\tif (typeof descriptor.value === 'function') {\n\t\tfnKey = 'value';\n\t\tfn = descriptor.value;\n\n\t\tif (fn!.length !== 0) {\n\t\t\tconsole.warn('Memoize should only be used in functions with zero parameters');\n\t\t}\n\t} else if (typeof descriptor.get === 'function') {\n\t\tfnKey = 'get';\n\t\tfn = descriptor.get;\n\t}\n\n\tif (!fn) {\n\t\tthrow new Error('not supported');\n\t}\n\n\tconst memoizeKey = `$memoize$${key}`;\n\tdescriptor[fnKey!] = function (...args: any[]) {\n\t\tif (!this.hasOwnProperty(memoizeKey)) {\n\t\t\tObject.defineProperty(this, memoizeKey, {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fn.apply(this, args)\n\t\t\t});\n\t\t}\n\t\treturn (this as any)[memoizeKey];\n\t};\n}\n","\n\nexport function memoize(_target: Object, key: string, descriptor: PropertyDescriptor) {\n\tlet fnKey: 'value' | 'get' | null = null;\n\tlet fn: Function | null = null;\n\n\tif (typeof descriptor.value === 'function') {\n\t\tfnKey = 'value';\n\t\tfn = descriptor.value;\n\n\t\tif (fn!.length !== 0) {\n\t\t\tconsole.warn('Memoize should only be used in functions with zero parameters');\n\t\t}\n\t} else if (typeof descriptor.get === 'function') {\n\t\tfnKey = 'get';\n\t\tfn = descriptor.get;\n\t}\n\n\tif (!fn) {\n\t\tthrow new Error('not supported');\n\t}\n\n\tconst memoizeKey = `$memoize$${key}`;\n\tdescriptor[fnKey!] = function (...args: any[]) {\n\t\tif (!this.hasOwnProperty(memoizeKey)) {\n\t\t\tObject.defineProperty(this, memoizeKey, {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fn.apply(this, args)\n\t\t\t});\n\t\t}\n\t\treturn (this as any)[memoizeKey];\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/decorators.ts","vs/base/common/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,GAAW,EAAE,UAA8B;IACnF,IAAI,KAAK,GAA2B,IAAI,CAAC;IACzC,IAAI,EAAE,GAAoB,IAAI,CAAC;IAE/B,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC5C,KAAK,GAAG,OAAO,CAAC;QAChB,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;QAEtB,IAAI,EAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC/E,CAAC;IACF,CAAC;SAAM,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACjD,KAAK,GAAG,KAAK,CAAC;QACd,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,GAAG,EAAE,CAAC;IACrC,UAAU,CAAC,KAAM,CAAC,GAAG,UAAU,GAAG,IAAW;QAC5C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;gBACvC,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;aAC3B,CAAC,CAAC;QACJ,CAAC;QACD,mDAAmD;QACnD,OAAQ,IAAY,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC;AACH,CAAC","file":"decorators.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\n\nexport function memoize(_target: Object, key: string, descriptor: PropertyDescriptor) {\n\tlet fnKey: 'value' | 'get' | null = null;\n\tlet fn: Function | null = null;\n\n\tif (typeof descriptor.value === 'function') {\n\t\tfnKey = 'value';\n\t\tfn = descriptor.value;\n\n\t\tif (fn!.length !== 0) {\n\t\t\tconsole.warn('Memoize should only be used in functions with zero parameters');\n\t\t}\n\t} else if (typeof descriptor.get === 'function') {\n\t\tfnKey = 'get';\n\t\tfn = descriptor.get;\n\t}\n\n\tif (!fn) {\n\t\tthrow new Error('not supported');\n\t}\n\n\tconst memoizeKey = `$memoize$${key}`;\n\tdescriptor[fnKey!] = function (...args: any[]) {\n\t\tif (!this.hasOwnProperty(memoizeKey)) {\n\t\t\tObject.defineProperty(this, memoizeKey, {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fn.apply(this, args)\n\t\t\t});\n\t\t}\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\treturn (this as any)[memoizeKey];\n\t};\n}\n","\n\nexport function memoize(_target: Object, key: string, descriptor: PropertyDescriptor) {\n\tlet fnKey: 'value' | 'get' | null = null;\n\tlet fn: Function | null = null;\n\n\tif (typeof descriptor.value === 'function') {\n\t\tfnKey = 'value';\n\t\tfn = descriptor.value;\n\n\t\tif (fn!.length !== 0) {\n\t\t\tconsole.warn('Memoize should only be used in functions with zero parameters');\n\t\t}\n\t} else if (typeof descriptor.get === 'function') {\n\t\tfnKey = 'get';\n\t\tfn = descriptor.get;\n\t}\n\n\tif (!fn) {\n\t\tthrow new Error('not supported');\n\t}\n\n\tconst memoizeKey = `$memoize$${key}`;\n\tdescriptor[fnKey!] = function (...args: any[]) {\n\t\tif (!this.hasOwnProperty(memoizeKey)) {\n\t\t\tObject.defineProperty(this, memoizeKey, {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fn.apply(this, args)\n\t\t\t});\n\t\t}\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\treturn (this as any)[memoizeKey];\n\t};\n}\n"]}
|
|
@@ -59,6 +59,7 @@ export function onUnexpectedExternalError(e) {
|
|
|
59
59
|
export function transformErrorForSerialization(error) {
|
|
60
60
|
if (error instanceof Error) {
|
|
61
61
|
const { name, message, cause } = error;
|
|
62
|
+
// eslint-disable-next-line local/code-no-any-casts
|
|
62
63
|
const stack = error.stacktrace || error.stack;
|
|
63
64
|
return {
|
|
64
65
|
$isError: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/errors.ts","vs/base/common/errors.ts"],"names":[],"mappings":"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","file":"errors.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface ErrorListenerCallback {\n\t(error: any): void;\n}\n\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nexport class ErrorHandler {\n\tprivate unexpectedErrorHandler: (e: any) => void;\n\tprivate listeners: ErrorListenerCallback[];\n\n\tconstructor() {\n\n\t\tthis.listeners = [];\n\n\t\tthis.unexpectedErrorHandler = function (e: any) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (e.stack) {\n\t\t\t\t\tif (ErrorNoTelemetry.isErrorNoTelemetry(e)) {\n\t\t\t\t\t\tthrow new ErrorNoTelemetry(e.message + '\\n\\n' + e.stack);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow new Error(e.message + '\\n\\n' + e.stack);\n\t\t\t\t}\n\n\t\t\t\tthrow e;\n\t\t\t}, 0);\n\t\t};\n\t}\n\n\tprivate emit(e: any): void {\n\t\tthis.listeners.forEach((listener) => {\n\t\t\tlistener(e);\n\t\t});\n\t}\n\n\tonUnexpectedError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t\tthis.emit(e);\n\t}\n\n\t// For external errors, we don't want the listeners to be called\n\tonUnexpectedExternalError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t}\n}\n\nexport const errorHandler = new ErrorHandler();\n\n/**\n * This function should only be called with errors that indicate a bug in the product.\n * E.g. buggy extensions/invalid user-input/network issues should not be able to trigger this code path.\n * If they are, this indicates there is also a bug in the product.\n*/\nexport function onBugIndicatingError(e: any): undefined {\n\terrorHandler.onUnexpectedError(e);\n\treturn undefined;\n}\n\nexport function onUnexpectedError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedError(e);\n\t}\n\treturn undefined;\n}\n\nexport function onUnexpectedExternalError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedExternalError(e);\n\t}\n\treturn undefined;\n}\n\nexport interface SerializedError {\n}\n\ntype ErrorWithCode = Error & {\n\tcode: string | undefined;\n};\n\nexport function transformErrorForSerialization(error: Error): SerializedError;\nexport function transformErrorForSerialization(error: any): any;\nexport function transformErrorForSerialization(error: any): any {\n\tif (error instanceof Error) {\n\t\tconst { name, message, cause } = error;\n\t\tconst stack: string = (<any>error).stacktrace || (<any>error).stack;\n\t\treturn {\n\t\t\t$isError: true,\n\t\t\tname,\n\t\t\tmessage,\n\t\t\tstack,\n\t\t\tnoTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error),\n\t\t\tcause: cause ? transformErrorForSerialization(cause) : undefined,\n\t\t\tcode: (<ErrorWithCode>error).code\n\t\t};\n\t}\n\n\t// return as is\n\treturn error;\n}\n\nexport const canceledName = 'Canceled';\n\n/**\n * Checks if the given error is a promise in canceled state\n */\nexport function isCancellationError(error: any): boolean {\n\tif (error instanceof CancellationError) {\n\t\treturn true;\n\t}\n\treturn error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\n\n// !!!IMPORTANT!!!\n// Do NOT change this class because it is also used as an API-type.\nexport class CancellationError extends Error {\n\tconstructor() {\n\t\tsuper(canceledName);\n\t\tthis.name = this.message;\n\t}\n}\n\n/**\n * @deprecated use {@link CancellationError `new CancellationError()`} instead\n */\nexport function canceled(): Error {\n\tconst error = new Error(canceledName);\n\terror.name = error.message;\n\treturn error;\n}\n\nexport function illegalArgument(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal argument: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal argument');\n\t}\n}\n\nexport function illegalState(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal state: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal state');\n\t}\n}\n\nexport class NotSupportedError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper('NotSupported');\n\t\tif (message) {\n\t\t\tthis.message = message;\n\t\t}\n\t}\n}\n\n/**\n * Error that when thrown won't be logged in telemetry as an unhandled error.\n */\nexport class ErrorNoTelemetry extends Error {\n\toverride readonly name: string;\n\n\tconstructor(msg?: string) {\n\t\tsuper(msg);\n\t\tthis.name = 'CodeExpectedError';\n\t}\n\n\tpublic static fromError(err: Error): ErrorNoTelemetry {\n\t\tif (err instanceof ErrorNoTelemetry) {\n\t\t\treturn err;\n\t\t}\n\n\t\tconst result = new ErrorNoTelemetry();\n\t\tresult.message = err.message;\n\t\tresult.stack = err.stack;\n\t\treturn result;\n\t}\n\n\tpublic static isErrorNoTelemetry(err: Error): err is ErrorNoTelemetry {\n\t\treturn err.name === 'CodeExpectedError';\n\t}\n}\n\n/**\n * This error indicates a bug.\n * Do not throw this for invalid user input.\n * Only catch this error to recover gracefully from bugs.\n */\nexport class BugIndicatingError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper(message || 'An unexpected bug occurred.');\n\t\tObject.setPrototypeOf(this, BugIndicatingError.prototype);\n\n\t\t// Because we know for sure only buggy code throws this,\n\t\t// we definitely want to break here and fix the bug.\n\t\t// debugger;\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface ErrorListenerCallback {\n\t(error: any): void;\n}\n\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nexport class ErrorHandler {\n\tprivate unexpectedErrorHandler: (e: any) => void;\n\tprivate listeners: ErrorListenerCallback[];\n\n\tconstructor() {\n\n\t\tthis.listeners = [];\n\n\t\tthis.unexpectedErrorHandler = function (e: any) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (e.stack) {\n\t\t\t\t\tif (ErrorNoTelemetry.isErrorNoTelemetry(e)) {\n\t\t\t\t\t\tthrow new ErrorNoTelemetry(e.message + '\\n\\n' + e.stack);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow new Error(e.message + '\\n\\n' + e.stack);\n\t\t\t\t}\n\n\t\t\t\tthrow e;\n\t\t\t}, 0);\n\t\t};\n\t}\n\n\tprivate emit(e: any): void {\n\t\tthis.listeners.forEach((listener) => {\n\t\t\tlistener(e);\n\t\t});\n\t}\n\n\tonUnexpectedError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t\tthis.emit(e);\n\t}\n\n\t// For external errors, we don't want the listeners to be called\n\tonUnexpectedExternalError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t}\n}\n\nexport const errorHandler = new ErrorHandler();\n\n/**\n * This function should only be called with errors that indicate a bug in the product.\n * E.g. buggy extensions/invalid user-input/network issues should not be able to trigger this code path.\n * If they are, this indicates there is also a bug in the product.\n*/\nexport function onBugIndicatingError(e: any): undefined {\n\terrorHandler.onUnexpectedError(e);\n\treturn undefined;\n}\n\nexport function onUnexpectedError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedError(e);\n\t}\n\treturn undefined;\n}\n\nexport function onUnexpectedExternalError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedExternalError(e);\n\t}\n\treturn undefined;\n}\n\nexport interface SerializedError {\n}\n\ntype ErrorWithCode = Error & {\n\tcode: string | undefined;\n};\n\nexport function transformErrorForSerialization(error: Error): SerializedError;\nexport function transformErrorForSerialization(error: any): any;\nexport function transformErrorForSerialization(error: any): any {\n\tif (error instanceof Error) {\n\t\tconst { name, message, cause } = error;\n\t\tconst stack: string = (<any>error).stacktrace || (<any>error).stack;\n\t\treturn {\n\t\t\t$isError: true,\n\t\t\tname,\n\t\t\tmessage,\n\t\t\tstack,\n\t\t\tnoTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error),\n\t\t\tcause: cause ? transformErrorForSerialization(cause) : undefined,\n\t\t\tcode: (<ErrorWithCode>error).code\n\t\t};\n\t}\n\n\t// return as is\n\treturn error;\n}\n\nexport const canceledName = 'Canceled';\n\n/**\n * Checks if the given error is a promise in canceled state\n */\nexport function isCancellationError(error: any): boolean {\n\tif (error instanceof CancellationError) {\n\t\treturn true;\n\t}\n\treturn error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\n\n// !!!IMPORTANT!!!\n// Do NOT change this class because it is also used as an API-type.\nexport class CancellationError extends Error {\n\tconstructor() {\n\t\tsuper(canceledName);\n\t\tthis.name = this.message;\n\t}\n}\n\n/**\n * @deprecated use {@link CancellationError `new CancellationError()`} instead\n */\nexport function canceled(): Error {\n\tconst error = new Error(canceledName);\n\terror.name = error.message;\n\treturn error;\n}\n\nexport function illegalArgument(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal argument: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal argument');\n\t}\n}\n\nexport function illegalState(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal state: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal state');\n\t}\n}\n\nexport class NotSupportedError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper('NotSupported');\n\t\tif (message) {\n\t\t\tthis.message = message;\n\t\t}\n\t}\n}\n\n/**\n * Error that when thrown won't be logged in telemetry as an unhandled error.\n */\nexport class ErrorNoTelemetry extends Error {\n\toverride readonly name: string;\n\n\tconstructor(msg?: string) {\n\t\tsuper(msg);\n\t\tthis.name = 'CodeExpectedError';\n\t}\n\n\tpublic static fromError(err: Error): ErrorNoTelemetry {\n\t\tif (err instanceof ErrorNoTelemetry) {\n\t\t\treturn err;\n\t\t}\n\n\t\tconst result = new ErrorNoTelemetry();\n\t\tresult.message = err.message;\n\t\tresult.stack = err.stack;\n\t\treturn result;\n\t}\n\n\tpublic static isErrorNoTelemetry(err: Error): err is ErrorNoTelemetry {\n\t\treturn err.name === 'CodeExpectedError';\n\t}\n}\n\n/**\n * This error indicates a bug.\n * Do not throw this for invalid user input.\n * Only catch this error to recover gracefully from bugs.\n */\nexport class BugIndicatingError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper(message || 'An unexpected bug occurred.');\n\t\tObject.setPrototypeOf(this, BugIndicatingError.prototype);\n\n\t\t// Because we know for sure only buggy code throws this,\n\t\t// we definitely want to break here and fix the bug.\n\t\t// debugger;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/errors.ts","vs/base/common/errors.ts"],"names":[],"mappings":"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","file":"errors.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface ErrorListenerCallback {\n\t(error: any): void;\n}\n\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nexport class ErrorHandler {\n\tprivate unexpectedErrorHandler: (e: any) => void;\n\tprivate listeners: ErrorListenerCallback[];\n\n\tconstructor() {\n\n\t\tthis.listeners = [];\n\n\t\tthis.unexpectedErrorHandler = function (e: any) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (e.stack) {\n\t\t\t\t\tif (ErrorNoTelemetry.isErrorNoTelemetry(e)) {\n\t\t\t\t\t\tthrow new ErrorNoTelemetry(e.message + '\\n\\n' + e.stack);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow new Error(e.message + '\\n\\n' + e.stack);\n\t\t\t\t}\n\n\t\t\t\tthrow e;\n\t\t\t}, 0);\n\t\t};\n\t}\n\n\tprivate emit(e: any): void {\n\t\tthis.listeners.forEach((listener) => {\n\t\t\tlistener(e);\n\t\t});\n\t}\n\n\tonUnexpectedError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t\tthis.emit(e);\n\t}\n\n\t// For external errors, we don't want the listeners to be called\n\tonUnexpectedExternalError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t}\n}\n\nexport const errorHandler = new ErrorHandler();\n\n/**\n * This function should only be called with errors that indicate a bug in the product.\n * E.g. buggy extensions/invalid user-input/network issues should not be able to trigger this code path.\n * If they are, this indicates there is also a bug in the product.\n*/\nexport function onBugIndicatingError(e: any): undefined {\n\terrorHandler.onUnexpectedError(e);\n\treturn undefined;\n}\n\nexport function onUnexpectedError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedError(e);\n\t}\n\treturn undefined;\n}\n\nexport function onUnexpectedExternalError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedExternalError(e);\n\t}\n\treturn undefined;\n}\n\nexport interface SerializedError {\n\treadonly $isError: true;\n\treadonly name: string;\n\treadonly message: string;\n\treadonly stack: string;\n}\n\ntype ErrorWithCode = Error & {\n\tcode: string | undefined;\n};\n\nexport function transformErrorForSerialization(error: Error): SerializedError;\nexport function transformErrorForSerialization(error: any): any;\nexport function transformErrorForSerialization(error: any): any {\n\tif (error instanceof Error) {\n\t\tconst { name, message, cause } = error;\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst stack: string = (<any>error).stacktrace || (<any>error).stack;\n\t\treturn {\n\t\t\t$isError: true,\n\t\t\tname,\n\t\t\tmessage,\n\t\t\tstack,\n\t\t\tnoTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error),\n\t\t\tcause: cause ? transformErrorForSerialization(cause) : undefined,\n\t\t\tcode: (<ErrorWithCode>error).code\n\t\t};\n\t}\n\n\t// return as is\n\treturn error;\n}\n\nexport const canceledName = 'Canceled';\n\n/**\n * Checks if the given error is a promise in canceled state\n */\nexport function isCancellationError(error: any): boolean {\n\tif (error instanceof CancellationError) {\n\t\treturn true;\n\t}\n\treturn error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\n\n// !!!IMPORTANT!!!\n// Do NOT change this class because it is also used as an API-type.\nexport class CancellationError extends Error {\n\tconstructor() {\n\t\tsuper(canceledName);\n\t\tthis.name = this.message;\n\t}\n}\n\n/**\n * @deprecated use {@link CancellationError `new CancellationError()`} instead\n */\nexport function canceled(): Error {\n\tconst error = new Error(canceledName);\n\terror.name = error.message;\n\treturn error;\n}\n\nexport function illegalArgument(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal argument: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal argument');\n\t}\n}\n\nexport function illegalState(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal state: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal state');\n\t}\n}\n\nexport class NotSupportedError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper('NotSupported');\n\t\tif (message) {\n\t\t\tthis.message = message;\n\t\t}\n\t}\n}\n\n/**\n * Error that when thrown won't be logged in telemetry as an unhandled error.\n */\nexport class ErrorNoTelemetry extends Error {\n\toverride readonly name: string;\n\n\tconstructor(msg?: string) {\n\t\tsuper(msg);\n\t\tthis.name = 'CodeExpectedError';\n\t}\n\n\tpublic static fromError(err: Error): ErrorNoTelemetry {\n\t\tif (err instanceof ErrorNoTelemetry) {\n\t\t\treturn err;\n\t\t}\n\n\t\tconst result = new ErrorNoTelemetry();\n\t\tresult.message = err.message;\n\t\tresult.stack = err.stack;\n\t\treturn result;\n\t}\n\n\tpublic static isErrorNoTelemetry(err: Error): err is ErrorNoTelemetry {\n\t\treturn err.name === 'CodeExpectedError';\n\t}\n}\n\n/**\n * This error indicates a bug.\n * Do not throw this for invalid user input.\n * Only catch this error to recover gracefully from bugs.\n */\nexport class BugIndicatingError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper(message || 'An unexpected bug occurred.');\n\t\tObject.setPrototypeOf(this, BugIndicatingError.prototype);\n\n\t\t// Because we know for sure only buggy code throws this,\n\t\t// we definitely want to break here and fix the bug.\n\t\t// debugger;\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface ErrorListenerCallback {\n\t(error: any): void;\n}\n\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nexport class ErrorHandler {\n\tprivate unexpectedErrorHandler: (e: any) => void;\n\tprivate listeners: ErrorListenerCallback[];\n\n\tconstructor() {\n\n\t\tthis.listeners = [];\n\n\t\tthis.unexpectedErrorHandler = function (e: any) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (e.stack) {\n\t\t\t\t\tif (ErrorNoTelemetry.isErrorNoTelemetry(e)) {\n\t\t\t\t\t\tthrow new ErrorNoTelemetry(e.message + '\\n\\n' + e.stack);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow new Error(e.message + '\\n\\n' + e.stack);\n\t\t\t\t}\n\n\t\t\t\tthrow e;\n\t\t\t}, 0);\n\t\t};\n\t}\n\n\tprivate emit(e: any): void {\n\t\tthis.listeners.forEach((listener) => {\n\t\t\tlistener(e);\n\t\t});\n\t}\n\n\tonUnexpectedError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t\tthis.emit(e);\n\t}\n\n\t// For external errors, we don't want the listeners to be called\n\tonUnexpectedExternalError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t}\n}\n\nexport const errorHandler = new ErrorHandler();\n\n/**\n * This function should only be called with errors that indicate a bug in the product.\n * E.g. buggy extensions/invalid user-input/network issues should not be able to trigger this code path.\n * If they are, this indicates there is also a bug in the product.\n*/\nexport function onBugIndicatingError(e: any): undefined {\n\terrorHandler.onUnexpectedError(e);\n\treturn undefined;\n}\n\nexport function onUnexpectedError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedError(e);\n\t}\n\treturn undefined;\n}\n\nexport function onUnexpectedExternalError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedExternalError(e);\n\t}\n\treturn undefined;\n}\n\nexport interface SerializedError {\n\treadonly $isError: true;\n\treadonly name: string;\n\treadonly message: string;\n\treadonly stack: string;\n}\n\ntype ErrorWithCode = Error & {\n\tcode: string | undefined;\n};\n\nexport function transformErrorForSerialization(error: Error): SerializedError;\nexport function transformErrorForSerialization(error: any): any;\nexport function transformErrorForSerialization(error: any): any {\n\tif (error instanceof Error) {\n\t\tconst { name, message, cause } = error;\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst stack: string = (<any>error).stacktrace || (<any>error).stack;\n\t\treturn {\n\t\t\t$isError: true,\n\t\t\tname,\n\t\t\tmessage,\n\t\t\tstack,\n\t\t\tnoTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error),\n\t\t\tcause: cause ? transformErrorForSerialization(cause) : undefined,\n\t\t\tcode: (<ErrorWithCode>error).code\n\t\t};\n\t}\n\n\t// return as is\n\treturn error;\n}\n\nexport const canceledName = 'Canceled';\n\n/**\n * Checks if the given error is a promise in canceled state\n */\nexport function isCancellationError(error: any): boolean {\n\tif (error instanceof CancellationError) {\n\t\treturn true;\n\t}\n\treturn error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\n\n// !!!IMPORTANT!!!\n// Do NOT change this class because it is also used as an API-type.\nexport class CancellationError extends Error {\n\tconstructor() {\n\t\tsuper(canceledName);\n\t\tthis.name = this.message;\n\t}\n}\n\n/**\n * @deprecated use {@link CancellationError `new CancellationError()`} instead\n */\nexport function canceled(): Error {\n\tconst error = new Error(canceledName);\n\terror.name = error.message;\n\treturn error;\n}\n\nexport function illegalArgument(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal argument: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal argument');\n\t}\n}\n\nexport function illegalState(name?: string): Error {\n\tif (name) {\n\t\treturn new Error(`Illegal state: ${name}`);\n\t} else {\n\t\treturn new Error('Illegal state');\n\t}\n}\n\nexport class NotSupportedError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper('NotSupported');\n\t\tif (message) {\n\t\t\tthis.message = message;\n\t\t}\n\t}\n}\n\n/**\n * Error that when thrown won't be logged in telemetry as an unhandled error.\n */\nexport class ErrorNoTelemetry extends Error {\n\toverride readonly name: string;\n\n\tconstructor(msg?: string) {\n\t\tsuper(msg);\n\t\tthis.name = 'CodeExpectedError';\n\t}\n\n\tpublic static fromError(err: Error): ErrorNoTelemetry {\n\t\tif (err instanceof ErrorNoTelemetry) {\n\t\t\treturn err;\n\t\t}\n\n\t\tconst result = new ErrorNoTelemetry();\n\t\tresult.message = err.message;\n\t\tresult.stack = err.stack;\n\t\treturn result;\n\t}\n\n\tpublic static isErrorNoTelemetry(err: Error): err is ErrorNoTelemetry {\n\t\treturn err.name === 'CodeExpectedError';\n\t}\n}\n\n/**\n * This error indicates a bug.\n * Do not throw this for invalid user input.\n * Only catch this error to recover gracefully from bugs.\n */\nexport class BugIndicatingError extends Error {\n\tconstructor(message?: string) {\n\t\tsuper(message || 'An unexpected bug occurred.');\n\t\tObject.setPrototypeOf(this, BugIndicatingError.prototype);\n\n\t\t// Because we know for sure only buggy code throws this,\n\t\t// we definitely want to break here and fix the bug.\n\t\t// debugger;\n\t}\n}\n"]}
|