UNPKG

amis-playground

Version:

amis-playground 是一个amis在线代码编辑器可实时预览运行效果

1,581 lines (1,568 loc) 1.2 MB
(() => { // node_modules/monaco-editor/esm/vs/base/common/errors.js var ErrorHandler = class { constructor() { this.listeners = []; this.unexpectedErrorHandler = function(e) { setTimeout(() => { if (e.stack) { if (ErrorNoTelemetry.isErrorNoTelemetry(e)) { throw new ErrorNoTelemetry(e.message + "\n\n" + e.stack); } throw new Error(e.message + "\n\n" + e.stack); } throw e; }, 0); }; } emit(e) { this.listeners.forEach((listener) => { listener(e); }); } onUnexpectedError(e) { this.unexpectedErrorHandler(e); this.emit(e); } // For external errors, we don't want the listeners to be called onUnexpectedExternalError(e) { this.unexpectedErrorHandler(e); } }; var errorHandler = new ErrorHandler(); function onUnexpectedError(e) { if (!isCancellationError(e)) { errorHandler.onUnexpectedError(e); } return void 0; } function transformErrorForSerialization(error) { if (error instanceof Error) { const { name, message } = error; const stack = error.stacktrace || error.stack; return { $isError: true, name, message, stack, noTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error) }; } return error; } var canceledName = "Canceled"; function isCancellationError(error) { if (error instanceof CancellationError) { return true; } return error instanceof Error && error.name === canceledName && error.message === canceledName; } var CancellationError = class extends Error { constructor() { super(canceledName); this.name = this.message; } }; var ErrorNoTelemetry = class _ErrorNoTelemetry extends Error { constructor(msg) { super(msg); this.name = "CodeExpectedError"; } static fromError(err) { if (err instanceof _ErrorNoTelemetry) { return err; } const result = new _ErrorNoTelemetry(); result.message = err.message; result.stack = err.stack; return result; } static isErrorNoTelemetry(err) { return err.name === "CodeExpectedError"; } }; var BugIndicatingError = class _BugIndicatingError extends Error { constructor(message) { super(message || "An unexpected bug occurred."); Object.setPrototypeOf(this, _BugIndicatingError.prototype); } }; // node_modules/monaco-editor/esm/vs/base/common/functional.js function once(fn) { const _this = this; let didCall = false; let result; return function() { if (didCall) { return result; } didCall = true; result = fn.apply(_this, arguments); return result; }; } // node_modules/monaco-editor/esm/vs/base/common/iterator.js var Iterable; (function(Iterable2) { function is(thing) { return thing && typeof thing === "object" && typeof thing[Symbol.iterator] === "function"; } Iterable2.is = is; const _empty2 = Object.freeze([]); function empty() { return _empty2; } Iterable2.empty = empty; function* single(element) { yield element; } Iterable2.single = single; function wrap(iterableOrElement) { if (is(iterableOrElement)) { return iterableOrElement; } else { return single(iterableOrElement); } } Iterable2.wrap = wrap; function from(iterable) { return iterable || _empty2; } Iterable2.from = from; function isEmpty(iterable) { return !iterable || iterable[Symbol.iterator]().next().done === true; } Iterable2.isEmpty = isEmpty; function first(iterable) { return iterable[Symbol.iterator]().next().value; } Iterable2.first = first; function some(iterable, predicate) { for (const element of iterable) { if (predicate(element)) { return true; } } return false; } Iterable2.some = some; function find(iterable, predicate) { for (const element of iterable) { if (predicate(element)) { return element; } } return void 0; } Iterable2.find = find; function* filter(iterable, predicate) { for (const element of iterable) { if (predicate(element)) { yield element; } } } Iterable2.filter = filter; function* map(iterable, fn) { let index = 0; for (const element of iterable) { yield fn(element, index++); } } Iterable2.map = map; function* concat(...iterables) { for (const iterable of iterables) { for (const element of iterable) { yield element; } } } Iterable2.concat = concat; function reduce(iterable, reducer, initialValue) { let value = initialValue; for (const element of iterable) { value = reducer(value, element); } return value; } Iterable2.reduce = reduce; function* slice(arr, from2, to = arr.length) { if (from2 < 0) { from2 += arr.length; } if (to < 0) { to += arr.length; } else if (to > arr.length) { to = arr.length; } for (; from2 < to; from2++) { yield arr[from2]; } } Iterable2.slice = slice; function consume(iterable, atMost = Number.POSITIVE_INFINITY) { const consumed = []; if (atMost === 0) { return [consumed, iterable]; } const iterator = iterable[Symbol.iterator](); for (let i = 0; i < atMost; i++) { const next = iterator.next(); if (next.done) { return [consumed, Iterable2.empty()]; } consumed.push(next.value); } return [consumed, { [Symbol.iterator]() { return iterator; } }]; } Iterable2.consume = consume; })(Iterable || (Iterable = {})); // node_modules/monaco-editor/esm/vs/base/common/lifecycle.js var TRACK_DISPOSABLES = false; var disposableTracker = null; function setDisposableTracker(tracker) { disposableTracker = tracker; } if (TRACK_DISPOSABLES) { const __is_disposable_tracked__ = "__is_disposable_tracked__"; setDisposableTracker(new class { trackDisposable(x) { const stack = new Error("Potentially leaked disposable").stack; setTimeout(() => { if (!x[__is_disposable_tracked__]) { console.log(stack); } }, 3e3); } setParent(child, parent) { if (child && child !== Disposable.None) { try { child[__is_disposable_tracked__] = true; } catch (_a4) { } } } markAsDisposed(disposable) { if (disposable && disposable !== Disposable.None) { try { disposable[__is_disposable_tracked__] = true; } catch (_a4) { } } } markAsSingleton(disposable) { } }()); } function trackDisposable(x) { disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.trackDisposable(x); return x; } function markAsDisposed(disposable) { disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsDisposed(disposable); } function setParentOfDisposable(child, parent) { disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.setParent(child, parent); } function setParentOfDisposables(children, parent) { if (!disposableTracker) { return; } for (const child of children) { disposableTracker.setParent(child, parent); } } function dispose(arg) { if (Iterable.is(arg)) { const errors = []; for (const d of arg) { if (d) { try { d.dispose(); } catch (e) { errors.push(e); } } } if (errors.length === 1) { throw errors[0]; } else if (errors.length > 1) { throw new AggregateError(errors, "Encountered errors while disposing of store"); } return Array.isArray(arg) ? [] : arg; } else if (arg) { arg.dispose(); return arg; } } function combinedDisposable(...disposables) { const parent = toDisposable(() => dispose(disposables)); setParentOfDisposables(disposables, parent); return parent; } function toDisposable(fn) { const self2 = trackDisposable({ dispose: once(() => { markAsDisposed(self2); fn(); }) }); return self2; } var DisposableStore = class _DisposableStore { constructor() { this._toDispose = /* @__PURE__ */ new Set(); this._isDisposed = false; trackDisposable(this); } /** * Dispose of all registered disposables and mark this object as disposed. * * Any future disposables added to this object will be disposed of on `add`. */ dispose() { if (this._isDisposed) { return; } markAsDisposed(this); this._isDisposed = true; this.clear(); } /** * @return `true` if this object has been disposed of. */ get isDisposed() { return this._isDisposed; } /** * Dispose of all registered disposables but do not mark this object as disposed. */ clear() { if (this._toDispose.size === 0) { return; } try { dispose(this._toDispose); } finally { this._toDispose.clear(); } } /** * Add a new {@link IDisposable disposable} to the collection. */ add(o) { if (!o) { return o; } if (o === this) { throw new Error("Cannot register a disposable on itself!"); } setParentOfDisposable(o, this); if (this._isDisposed) { if (!_DisposableStore.DISABLE_DISPOSED_WARNING) { console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack); } } else { this._toDispose.add(o); } return o; } }; DisposableStore.DISABLE_DISPOSED_WARNING = false; var Disposable = class { constructor() { this._store = new DisposableStore(); trackDisposable(this); setParentOfDisposable(this._store, this); } dispose() { markAsDisposed(this); this._store.dispose(); } /** * Adds `o` to the collection of disposables managed by this object. */ _register(o) { if (o === this) { throw new Error("Cannot register a disposable on itself!"); } return this._store.add(o); } }; Disposable.None = Object.freeze({ dispose() { } }); var DisposableMap = class { constructor() { this._store = /* @__PURE__ */ new Map(); this._isDisposed = false; trackDisposable(this); } /** * Disposes of all stored values and mark this object as disposed. * * Trying to use this object after it has been disposed of is an error. */ dispose() { markAsDisposed(this); this._isDisposed = true; this.clearAndDisposeAll(); } /** * Disposes of all stored values and clear the map, but DO NOT mark this object as disposed. */ clearAndDisposeAll() { if (!this._store.size) { return; } try { dispose(this._store.values()); } finally { this._store.clear(); } } get(key) { return this._store.get(key); } set(key, value, skipDisposeOnOverwrite = false) { var _a4; if (this._isDisposed) { console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack); } if (!skipDisposeOnOverwrite) { (_a4 = this._store.get(key)) === null || _a4 === void 0 ? void 0 : _a4.dispose(); } this._store.set(key, value); } /** * Delete the value stored for `key` from this map and also dispose of it. */ deleteAndDispose(key) { var _a4; (_a4 = this._store.get(key)) === null || _a4 === void 0 ? void 0 : _a4.dispose(); this._store.delete(key); } [Symbol.iterator]() { return this._store[Symbol.iterator](); } }; // node_modules/monaco-editor/esm/vs/base/common/linkedList.js var Node = class _Node { constructor(element) { this.element = element; this.next = _Node.Undefined; this.prev = _Node.Undefined; } }; Node.Undefined = new Node(void 0); var LinkedList = class { constructor() { this._first = Node.Undefined; this._last = Node.Undefined; this._size = 0; } get size() { return this._size; } isEmpty() { return this._first === Node.Undefined; } clear() { let node = this._first; while (node !== Node.Undefined) { const next = node.next; node.prev = Node.Undefined; node.next = Node.Undefined; node = next; } this._first = Node.Undefined; this._last = Node.Undefined; this._size = 0; } unshift(element) { return this._insert(element, false); } push(element) { return this._insert(element, true); } _insert(element, atTheEnd) { const newNode = new Node(element); if (this._first === Node.Undefined) { this._first = newNode; this._last = newNode; } else if (atTheEnd) { const oldLast = this._last; this._last = newNode; newNode.prev = oldLast; oldLast.next = newNode; } else { const oldFirst = this._first; this._first = newNode; newNode.next = oldFirst; oldFirst.prev = newNode; } this._size += 1; let didRemove = false; return () => { if (!didRemove) { didRemove = true; this._remove(newNode); } }; } shift() { if (this._first === Node.Undefined) { return void 0; } else { const res = this._first.element; this._remove(this._first); return res; } } pop() { if (this._last === Node.Undefined) { return void 0; } else { const res = this._last.element; this._remove(this._last); return res; } } _remove(node) { if (node.prev !== Node.Undefined && node.next !== Node.Undefined) { const anchor = node.prev; anchor.next = node.next; node.next.prev = anchor; } else if (node.prev === Node.Undefined && node.next === Node.Undefined) { this._first = Node.Undefined; this._last = Node.Undefined; } else if (node.next === Node.Undefined) { this._last = this._last.prev; this._last.next = Node.Undefined; } else if (node.prev === Node.Undefined) { this._first = this._first.next; this._first.prev = Node.Undefined; } this._size -= 1; } *[Symbol.iterator]() { let node = this._first; while (node !== Node.Undefined) { yield node.element; node = node.next; } } }; // node_modules/monaco-editor/esm/vs/base/common/stopwatch.js var hasPerformanceNow = globalThis.performance && typeof globalThis.performance.now === "function"; var StopWatch = class _StopWatch { static create(highResolution) { return new _StopWatch(highResolution); } constructor(highResolution) { this._now = hasPerformanceNow && highResolution === false ? Date.now : globalThis.performance.now.bind(globalThis.performance); this._startTime = this._now(); this._stopTime = -1; } stop() { this._stopTime = this._now(); } elapsed() { if (this._stopTime !== -1) { return this._stopTime - this._startTime; } return this._now() - this._startTime; } }; // node_modules/monaco-editor/esm/vs/base/common/event.js var _enableDisposeWithListenerWarning = false; var _enableSnapshotPotentialLeakWarning = false; var Event; (function(Event2) { Event2.None = () => Disposable.None; function _addLeakageTraceLogic(options) { if (_enableSnapshotPotentialLeakWarning) { const { onDidAddListener: origListenerDidAdd } = options; const stack = Stacktrace.create(); let count = 0; options.onDidAddListener = () => { if (++count === 2) { console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"); stack.print(); } origListenerDidAdd === null || origListenerDidAdd === void 0 ? void 0 : origListenerDidAdd(); }; } } function defer(event, disposable) { return debounce(event, () => void 0, 0, void 0, true, void 0, disposable); } Event2.defer = defer; function once3(event) { return (listener, thisArgs = null, disposables) => { let didFire = false; let result = void 0; result = event((e) => { if (didFire) { return; } else if (result) { result.dispose(); } else { didFire = true; } return listener.call(thisArgs, e); }, null, disposables); if (didFire) { result.dispose(); } return result; }; } Event2.once = once3; function map(event, map2, disposable) { return snapshot((listener, thisArgs = null, disposables) => event((i) => listener.call(thisArgs, map2(i)), null, disposables), disposable); } Event2.map = map; function forEach(event, each, disposable) { return snapshot((listener, thisArgs = null, disposables) => event((i) => { each(i); listener.call(thisArgs, i); }, null, disposables), disposable); } Event2.forEach = forEach; function filter(event, filter2, disposable) { return snapshot((listener, thisArgs = null, disposables) => event((e) => filter2(e) && listener.call(thisArgs, e), null, disposables), disposable); } Event2.filter = filter; function signal(event) { return event; } Event2.signal = signal; function any(...events) { return (listener, thisArgs = null, disposables) => combinedDisposable(...events.map((event) => event((e) => listener.call(thisArgs, e), null, disposables))); } Event2.any = any; function reduce(event, merge, initial, disposable) { let output = initial; return map(event, (e) => { output = merge(output, e); return output; }, disposable); } Event2.reduce = reduce; function snapshot(event, disposable) { let listener; const options = { onWillAddFirstListener() { listener = event(emitter.fire, emitter); }, onDidRemoveLastListener() { listener === null || listener === void 0 ? void 0 : listener.dispose(); } }; if (!disposable) { _addLeakageTraceLogic(options); } const emitter = new Emitter(options); disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter); return emitter.event; } function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) { let subscription; let output = void 0; let handle = void 0; let numDebouncedCalls = 0; let doFire; const options = { leakWarningThreshold, onWillAddFirstListener() { subscription = event((cur) => { numDebouncedCalls++; output = merge(output, cur); if (leading && !handle) { emitter.fire(output); output = void 0; } doFire = () => { const _output = output; output = void 0; handle = void 0; if (!leading || numDebouncedCalls > 1) { emitter.fire(_output); } numDebouncedCalls = 0; }; if (typeof delay === "number") { clearTimeout(handle); handle = setTimeout(doFire, delay); } else { if (handle === void 0) { handle = 0; queueMicrotask(doFire); } } }); }, onWillRemoveListener() { if (flushOnListenerRemove && numDebouncedCalls > 0) { doFire === null || doFire === void 0 ? void 0 : doFire(); } }, onDidRemoveLastListener() { doFire = void 0; subscription.dispose(); } }; if (!disposable) { _addLeakageTraceLogic(options); } const emitter = new Emitter(options); disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter); return emitter.event; } Event2.debounce = debounce; function accumulate(event, delay = 0, disposable) { return Event2.debounce(event, (last, e) => { if (!last) { return [e]; } last.push(e); return last; }, delay, void 0, true, void 0, disposable); } Event2.accumulate = accumulate; function latch(event, equals3 = (a, b) => a === b, disposable) { let firstCall = true; let cache; return filter(event, (value) => { const shouldEmit = firstCall || !equals3(value, cache); firstCall = false; cache = value; return shouldEmit; }, disposable); } Event2.latch = latch; function split(event, isT, disposable) { return [ Event2.filter(event, isT, disposable), Event2.filter(event, (e) => !isT(e), disposable) ]; } Event2.split = split; function buffer(event, flushAfterTimeout = false, _buffer = []) { let buffer2 = _buffer.slice(); let listener = event((e) => { if (buffer2) { buffer2.push(e); } else { emitter.fire(e); } }); const flush = () => { buffer2 === null || buffer2 === void 0 ? void 0 : buffer2.forEach((e) => emitter.fire(e)); buffer2 = null; }; const emitter = new Emitter({ onWillAddFirstListener() { if (!listener) { listener = event((e) => emitter.fire(e)); } }, onDidAddFirstListener() { if (buffer2) { if (flushAfterTimeout) { setTimeout(flush); } else { flush(); } } }, onDidRemoveLastListener() { if (listener) { listener.dispose(); } listener = null; } }); return emitter.event; } Event2.buffer = buffer; class ChainableEvent { constructor(event) { this.event = event; this.disposables = new DisposableStore(); } /** @see {@link Event.map} */ map(fn) { return new ChainableEvent(map(this.event, fn, this.disposables)); } /** @see {@link Event.forEach} */ forEach(fn) { return new ChainableEvent(forEach(this.event, fn, this.disposables)); } filter(fn) { return new ChainableEvent(filter(this.event, fn, this.disposables)); } /** @see {@link Event.reduce} */ reduce(merge, initial) { return new ChainableEvent(reduce(this.event, merge, initial, this.disposables)); } /** @see {@link Event.reduce} */ latch() { return new ChainableEvent(latch(this.event, void 0, this.disposables)); } debounce(merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold) { return new ChainableEvent(debounce(this.event, merge, delay, leading, flushOnListenerRemove, leakWarningThreshold, this.disposables)); } /** * Attach a listener to the event. */ on(listener, thisArgs, disposables) { return this.event(listener, thisArgs, disposables); } /** @see {@link Event.once} */ once(listener, thisArgs, disposables) { return once3(this.event)(listener, thisArgs, disposables); } dispose() { this.disposables.dispose(); } } function chain(event) { return new ChainableEvent(event); } Event2.chain = chain; function fromNodeEventEmitter(emitter, eventName, map2 = (id) => id) { const fn = (...args) => result.fire(map2(...args)); const onFirstListenerAdd = () => emitter.on(eventName, fn); const onLastListenerRemove = () => emitter.removeListener(eventName, fn); const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove }); return result.event; } Event2.fromNodeEventEmitter = fromNodeEventEmitter; function fromDOMEventEmitter(emitter, eventName, map2 = (id) => id) { const fn = (...args) => result.fire(map2(...args)); const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn); const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn); const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove }); return result.event; } Event2.fromDOMEventEmitter = fromDOMEventEmitter; function toPromise(event) { return new Promise((resolve2) => once3(event)(resolve2)); } Event2.toPromise = toPromise; function fromPromise(promise) { const result = new Emitter(); promise.then((res) => { result.fire(res); }, () => { result.fire(void 0); }).finally(() => { result.dispose(); }); return result.event; } Event2.fromPromise = fromPromise; function runAndSubscribe(event, handler) { handler(void 0); return event((e) => handler(e)); } Event2.runAndSubscribe = runAndSubscribe; function runAndSubscribeWithStore(event, handler) { let store = null; function run(e) { store === null || store === void 0 ? void 0 : store.dispose(); store = new DisposableStore(); handler(e, store); } run(void 0); const disposable = event((e) => run(e)); return toDisposable(() => { disposable.dispose(); store === null || store === void 0 ? void 0 : store.dispose(); }); } Event2.runAndSubscribeWithStore = runAndSubscribeWithStore; class EmitterObserver { constructor(_observable, store) { this._observable = _observable; this._counter = 0; this._hasChanged = false; const options = { onWillAddFirstListener: () => { _observable.addObserver(this); }, onDidRemoveLastListener: () => { _observable.removeObserver(this); } }; if (!store) { _addLeakageTraceLogic(options); } this.emitter = new Emitter(options); if (store) { store.add(this.emitter); } } beginUpdate(_observable) { this._counter++; } handlePossibleChange(_observable) { } handleChange(_observable, _change) { this._hasChanged = true; } endUpdate(_observable) { this._counter--; if (this._counter === 0) { this._observable.reportChanges(); if (this._hasChanged) { this._hasChanged = false; this.emitter.fire(this._observable.get()); } } } } function fromObservable(obs, store) { const observer = new EmitterObserver(obs, store); return observer.emitter.event; } Event2.fromObservable = fromObservable; function fromObservableLight(observable) { return (listener) => { let count = 0; let didChange = false; const observer = { beginUpdate() { count++; }, endUpdate() { count--; if (count === 0) { observable.reportChanges(); if (didChange) { didChange = false; listener(); } } }, handlePossibleChange() { }, handleChange() { didChange = true; } }; observable.addObserver(observer); observable.reportChanges(); return { dispose() { observable.removeObserver(observer); } }; }; } Event2.fromObservableLight = fromObservableLight; })(Event || (Event = {})); var EventProfiling = class _EventProfiling { constructor(name) { this.listenerCount = 0; this.invocationCount = 0; this.elapsedOverall = 0; this.durations = []; this.name = `${name}_${_EventProfiling._idPool++}`; _EventProfiling.all.add(this); } start(listenerCount) { this._stopWatch = new StopWatch(); this.listenerCount = listenerCount; } stop() { if (this._stopWatch) { const elapsed = this._stopWatch.elapsed(); this.durations.push(elapsed); this.elapsedOverall += elapsed; this.invocationCount += 1; this._stopWatch = void 0; } } }; EventProfiling.all = /* @__PURE__ */ new Set(); EventProfiling._idPool = 0; var _globalLeakWarningThreshold = -1; var LeakageMonitor = class { constructor(threshold, name = Math.random().toString(18).slice(2, 5)) { this.threshold = threshold; this.name = name; this._warnCountdown = 0; } dispose() { var _a4; (_a4 = this._stacks) === null || _a4 === void 0 ? void 0 : _a4.clear(); } check(stack, listenerCount) { const threshold = this.threshold; if (threshold <= 0 || listenerCount < threshold) { return void 0; } if (!this._stacks) { this._stacks = /* @__PURE__ */ new Map(); } const count = this._stacks.get(stack.value) || 0; this._stacks.set(stack.value, count + 1); this._warnCountdown -= 1; if (this._warnCountdown <= 0) { this._warnCountdown = threshold * 0.5; let topStack; let topCount = 0; for (const [stack2, count2] of this._stacks) { if (!topStack || topCount < count2) { topStack = stack2; topCount = count2; } } console.warn(`[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`); console.warn(topStack); } return () => { const count2 = this._stacks.get(stack.value) || 0; this._stacks.set(stack.value, count2 - 1); }; } }; var Stacktrace = class _Stacktrace { static create() { var _a4; return new _Stacktrace((_a4 = new Error().stack) !== null && _a4 !== void 0 ? _a4 : ""); } constructor(value) { this.value = value; } print() { console.warn(this.value.split("\n").slice(2).join("\n")); } }; var UniqueContainer = class { constructor(value) { this.value = value; } }; var compactionThreshold = 2; var forEachListener = (listeners, fn) => { if (listeners instanceof UniqueContainer) { fn(listeners); } else { for (let i = 0; i < listeners.length; i++) { const l = listeners[i]; if (l) { fn(l); } } } }; var Emitter = class { constructor(options) { var _a4, _b, _c, _d, _e; this._size = 0; this._options = options; this._leakageMon = _globalLeakWarningThreshold > 0 || ((_a4 = this._options) === null || _a4 === void 0 ? void 0 : _a4.leakWarningThreshold) ? new LeakageMonitor((_c = (_b = this._options) === null || _b === void 0 ? void 0 : _b.leakWarningThreshold) !== null && _c !== void 0 ? _c : _globalLeakWarningThreshold) : void 0; this._perfMon = ((_d = this._options) === null || _d === void 0 ? void 0 : _d._profName) ? new EventProfiling(this._options._profName) : void 0; this._deliveryQueue = (_e = this._options) === null || _e === void 0 ? void 0 : _e.deliveryQueue; } dispose() { var _a4, _b, _c, _d; if (!this._disposed) { this._disposed = true; if (((_a4 = this._deliveryQueue) === null || _a4 === void 0 ? void 0 : _a4.current) === this) { this._deliveryQueue.reset(); } if (this._listeners) { if (_enableDisposeWithListenerWarning) { const listeners = this._listeners; queueMicrotask(() => { forEachListener(listeners, (l) => { var _a5; return (_a5 = l.stack) === null || _a5 === void 0 ? void 0 : _a5.print(); }); }); } this._listeners = void 0; this._size = 0; } (_c = (_b = this._options) === null || _b === void 0 ? void 0 : _b.onDidRemoveLastListener) === null || _c === void 0 ? void 0 : _c.call(_b); (_d = this._leakageMon) === null || _d === void 0 ? void 0 : _d.dispose(); } } /** * For the public to allow to subscribe * to events from this Emitter */ get event() { var _a4; (_a4 = this._event) !== null && _a4 !== void 0 ? _a4 : this._event = (callback, thisArgs, disposables) => { var _a5, _b, _c, _d, _e; if (this._leakageMon && this._size > this._leakageMon.threshold * 3) { console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`); return Disposable.None; } if (this._disposed) { return Disposable.None; } if (thisArgs) { callback = callback.bind(thisArgs); } const contained = new UniqueContainer(callback); let removeMonitor; let stack; if (this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2)) { contained.stack = Stacktrace.create(); removeMonitor = this._leakageMon.check(contained.stack, this._size + 1); } if (_enableDisposeWithListenerWarning) { contained.stack = stack !== null && stack !== void 0 ? stack : Stacktrace.create(); } if (!this._listeners) { (_b = (_a5 = this._options) === null || _a5 === void 0 ? void 0 : _a5.onWillAddFirstListener) === null || _b === void 0 ? void 0 : _b.call(_a5, this); this._listeners = contained; (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.onDidAddFirstListener) === null || _d === void 0 ? void 0 : _d.call(_c, this); } else if (this._listeners instanceof UniqueContainer) { (_e = this._deliveryQueue) !== null && _e !== void 0 ? _e : this._deliveryQueue = new EventDeliveryQueuePrivate(); this._listeners = [this._listeners, contained]; } else { this._listeners.push(contained); } this._size++; const result = toDisposable(() => { removeMonitor === null || removeMonitor === void 0 ? void 0 : removeMonitor(); this._removeListener(contained); }); if (disposables instanceof DisposableStore) { disposables.add(result); } else if (Array.isArray(disposables)) { disposables.push(result); } return result; }; return this._event; } _removeListener(listener) { var _a4, _b, _c, _d; (_b = (_a4 = this._options) === null || _a4 === void 0 ? void 0 : _a4.onWillRemoveListener) === null || _b === void 0 ? void 0 : _b.call(_a4, this); if (!this._listeners) { return; } if (this._size === 1) { this._listeners = void 0; (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.onDidRemoveLastListener) === null || _d === void 0 ? void 0 : _d.call(_c, this); this._size = 0; return; } const listeners = this._listeners; const index = listeners.indexOf(listener); if (index === -1) { console.log("disposed?", this._disposed); console.log("size?", this._size); console.log("arr?", JSON.stringify(this._listeners)); throw new Error("Attempted to dispose unknown listener"); } this._size--; listeners[index] = void 0; const adjustDeliveryQueue = this._deliveryQueue.current === this; if (this._size * compactionThreshold <= listeners.length) { let n = 0; for (let i = 0; i < listeners.length; i++) { if (listeners[i]) { listeners[n++] = listeners[i]; } else if (adjustDeliveryQueue) { this._deliveryQueue.end--; if (n < this._deliveryQueue.i) { this._deliveryQueue.i--; } } } listeners.length = n; } } _deliver(listener, value) { var _a4; if (!listener) { return; } const errorHandler2 = ((_a4 = this._options) === null || _a4 === void 0 ? void 0 : _a4.onListenerError) || onUnexpectedError; if (!errorHandler2) { listener.value(value); return; } try { listener.value(value); } catch (e) { errorHandler2(e); } } /** Delivers items in the queue. Assumes the queue is ready to go. */ _deliverQueue(dq) { const listeners = dq.current._listeners; while (dq.i < dq.end) { this._deliver(listeners[dq.i++], dq.value); } dq.reset(); } /** * To be kept private to fire an event to * subscribers */ fire(event) { var _a4, _b, _c, _d; if ((_a4 = this._deliveryQueue) === null || _a4 === void 0 ? void 0 : _a4.current) { this._deliverQueue(this._deliveryQueue); (_b = this._perfMon) === null || _b === void 0 ? void 0 : _b.stop(); } (_c = this._perfMon) === null || _c === void 0 ? void 0 : _c.start(this._size); if (!this._listeners) { } else if (this._listeners instanceof UniqueContainer) { this._deliver(this._listeners, event); } else { const dq = this._deliveryQueue; dq.enqueue(this, event, this._listeners.length); this._deliverQueue(dq); } (_d = this._perfMon) === null || _d === void 0 ? void 0 : _d.stop(); } hasListeners() { return this._size > 0; } }; var EventDeliveryQueuePrivate = class { constructor() { this.i = -1; this.end = 0; } enqueue(emitter, value, end) { this.i = 0; this.end = end; this.current = emitter; this.value = value; } reset() { this.i = this.end; this.current = void 0; this.value = void 0; } }; // node_modules/monaco-editor/esm/vs/base/common/types.js function isString(str) { return typeof str === "string"; } // node_modules/monaco-editor/esm/vs/base/common/objects.js function getAllPropertyNames(obj) { let res = []; while (Object.prototype !== obj) { res = res.concat(Object.getOwnPropertyNames(obj)); obj = Object.getPrototypeOf(obj); } return res; } function getAllMethodNames(obj) { const methods = []; for (const prop of getAllPropertyNames(obj)) { if (typeof obj[prop] === "function") { methods.push(prop); } } return methods; } function createProxyObject(methodNames, invoke) { const createProxyMethod = (method) => { return function() { const args = Array.prototype.slice.call(arguments, 0); return invoke(method, args); }; }; const result = {}; for (const methodName of methodNames) { result[methodName] = createProxyMethod(methodName); } return result; } // node_modules/monaco-editor/esm/vs/nls.js var isPseudo = typeof document !== "undefined" && document.location && document.location.hash.indexOf("pseudo=true") >= 0; function _format(message, args) { let result; if (args.length === 0) { result = message; } else { result = message.replace(/\{(\d+)\}/g, (match, rest) => { const index = rest[0]; const arg = args[index]; let result2 = match; if (typeof arg === "string") { result2 = arg; } else if (typeof arg === "number" || typeof arg === "boolean" || arg === void 0 || arg === null) { result2 = String(arg); } return result2; }); } if (isPseudo) { result = "\uFF3B" + result.replace(/[aouei]/g, "$&$&") + "\uFF3D"; } return result; } function localize(data, message, ...args) { return _format(message, args); } function getConfiguredDefaultLocale(_) { return void 0; } // node_modules/monaco-editor/esm/vs/base/common/platform.js var _a; var LANGUAGE_DEFAULT = "en"; var _isWindows = false; var _isMacintosh = false; var _isLinux = false; var _isLinuxSnap = false; var _isNative = false; var _isWeb = false; var _isElectron = false; var _isIOS = false; var _isCI = false; var _isMobile = false; var _locale = void 0; var _language = LANGUAGE_DEFAULT; var _platformLocale = LANGUAGE_DEFAULT; var _translationsConfigFile = void 0; var _userAgent = void 0; var globals = typeof self === "object" ? self : typeof global === "object" ? global : {}; var nodeProcess = void 0; if (typeof globals.vscode !== "undefined" && typeof globals.vscode.process !== "undefined") { nodeProcess = globals.vscode.process; } else if (typeof process !== "undefined") { nodeProcess = process; } var isElectronProcess = typeof ((_a = nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.versions) === null || _a === void 0 ? void 0 : _a.electron) === "string"; var isElectronRenderer = isElectronProcess && (nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.type) === "renderer"; if (typeof navigator === "object" && !isElectronRenderer) { _userAgent = navigator.userAgent; _isWindows = _userAgent.indexOf("Windows") >= 0; _isMacintosh = _userAgent.indexOf("Macintosh") >= 0; _isIOS = (_userAgent.indexOf("Macintosh") >= 0 || _userAgent.indexOf("iPad") >= 0 || _userAgent.indexOf("iPhone") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0; _isLinux = _userAgent.indexOf("Linux") >= 0; _isMobile = (_userAgent === null || _userAgent === void 0 ? void 0 : _userAgent.indexOf("Mobi")) >= 0; _isWeb = true; const configuredLocale = getConfiguredDefaultLocale( // This call _must_ be done in the file that calls `nls.getConfiguredDefaultLocale` // to ensure that the NLS AMD Loader plugin has been loaded and configured. // This is because the loader plugin decides what the default locale is based on // how it's able to resolve the strings. localize({ key: "ensureLoaderPluginIsLoaded", comment: ["{Locked}"] }, "_") ); _locale = configuredLocale || LANGUAGE_DEFAULT; _language = _locale; _platformLocale = navigator.language; } else if (typeof nodeProcess === "object") { _isWindows = nodeProcess.platform === "win32"; _isMacintosh = nodeProcess.platform === "darwin"; _isLinux = nodeProcess.platform === "linux"; _isLinuxSnap = _isLinux && !!nodeProcess.env["SNAP"] && !!nodeProcess.env["SNAP_REVISION"]; _isElectron = isElectronProcess; _isCI = !!nodeProcess.env["CI"] || !!nodeProcess.env["BUILD_ARTIFACTSTAGINGDIRECTORY"]; _locale = LANGUAGE_DEFAULT; _language = LANGUAGE_DEFAULT; const rawNlsConfig = nodeProcess.env["VSCODE_NLS_CONFIG"]; if (rawNlsConfig) { try { const nlsConfig = JSON.parse(rawNlsConfig); const resolved = nlsConfig.availableLanguages["*"]; _locale = nlsConfig.locale; _platformLocale = nlsConfig.osLocale; _language = resolved ? resolved : LANGUAGE_DEFAULT; _translationsConfigFile = nlsConfig._translationsConfigFile; } catch (e) { } } _isNative = true; } else { console.error("Unable to resolve platform."); } var _platform = 0; if (_isMacintosh) { _platform = 1; } else if (_isWindows) { _platform = 3; } else if (_isLinux) { _platform = 2; } var isWindows = _isWindows; var isMacintosh = _isMacintosh; var isWebWorker = _isWeb && typeof globals.importScripts === "function"; var userAgent = _userAgent; var setTimeout0IsFaster = typeof globals.postMessage === "function" && !globals.importScripts; var setTimeout0 = (() => { if (setTimeout0IsFaster) { const pending = []; globals.addEventListener("message", (e) => { if (e.data && e.data.vscodeScheduleAsyncWork) { for (let i = 0, len = pending.length; i < len; i++) { const candidate = pending[i]; if (candidate.id === e.data.vscodeScheduleAsyncWork) { pending.splice(i, 1); candidate.callback(); return; } } } }); let lastId = 0; return (callback) => { const myId = ++lastId; pending.push({ id: myId, callback }); globals.postMessage({ vscodeScheduleAsyncWork: myId }, "*"); }; } return (callback) => setTimeout(callback); })(); var isChrome = !!(userAgent && userAgent.indexOf("Chrome") >= 0); var isFirefox = !!(userAgent && userAgent.indexOf("Firefox") >= 0); var isSafari = !!(!isChrome && (userAgent && userAgent.indexOf("Safari") >= 0)); var isEdge = !!(userAgent && userAgent.indexOf("Edg/") >= 0); var isAndroid = !!(userAgent && userAgent.indexOf("Android") >= 0); // node_modules/monaco-editor/esm/vs/base/common/cache.js var LRUCachedFunction = class { constructor(fn) { this.fn = fn; this.lastCache = void 0; this.lastArgKey = void 0; } get(arg) { const key = JSON.stringify(arg); if (this.lastArgKey !== key) { this.lastArgKey = key; this.lastCache = this.fn(arg); } return this.lastCache; } }; // node_modules/monaco-editor/esm/vs/base/common/lazy.js var Lazy = class { constructor(executor) { this.executor = executor; this._didRun = false; } /** * Get the wrapped value. * * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value */ get value() { if (!this._didRun) { try { this._value = this.executor(); } catch (err) { this._error = err; } finally { this._didRun = true; } } if (this._error) { throw this._error; } return this._value; } /** * Get the wrapped value without forcing evaluation. */ get rawValue() { return this._value; } }; // node_modules/monaco-editor/esm/vs/base/common/strings.js var _a2; function escapeRegExpCharacters(value) { return value.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, "\\$&"); } function splitLines(str) { return str.split(/\r\n|\r|\n/); } function firstNonWhitespaceIndex(str) { for (let i = 0, len = str.length; i < len; i++) { const chCode = str.charCodeAt(i); if (chCode !== 32 && chCode !== 9) { return i; } } return -1; } function lastNonWhitespaceIndex(str, startIndex = str.length - 1) { for (let i = startIndex; i >= 0; i--) { const chCode = str.charCodeAt(i); if (chCode !== 32 && chCode !== 9) { return i; } } return -1; } function isUpperAsciiLetter(code) { return code >= 65 && code <= 90; } function isHighSurrogate(charCode) { return 55296 <= charCode && charCode <= 56319; } function isLowSurrogate(charCode) { return 56320 <= charCode && charCode <= 57343; } function computeCodePoint(highSurrogate, lowSurrogate) { return (highSurrogate - 55296 << 10) + (lowSurrogate - 56320) + 65536; } function getNextCodePoint(str, len, offset) { const charCode = str.charCodeAt(offset); if (isHighSurrogate(charCode) && offset + 1 < len) { const nextCharCode = str.charCodeAt(offset + 1); if (isLowSurrogate(nextCharCode)) { return computeCodePoint(charCode, nextCharCode); } } return charCode; } var IS_BASIC_ASCII = /^[\t\n\r\x20-\x7E]*$/; function isBasicASCII(str) { return IS_BASIC_ASCII.test(str); } var UTF8_BOM_CHARACTER = String.fromCharCode( 65279 /* CharCode.UTF8_BOM */ ); var GraphemeBreakTree = class _GraphemeBreakTree { static getInstance() { if (!_GraphemeBreakTree._INSTANCE) { _GraphemeBreakTree._INSTANCE = new _GraphemeBreakTree(); } return _GraphemeBreakTree._INSTANCE; } constructor() { this._data = getGraphemeBreakRawData(); } getGraphemeBreakType(codePoint) { if (codePoint < 32) { if (codePoint === 10) { return 3; } if (codePoint === 13) { return 2; } return 4; } if (codePoint < 127) { return 0; } const data = this._data; const nodeCount = data.length / 3; let nodeIndex = 1; while (nodeIndex <= nodeCount) { if (codePoint < data[3 * nodeIndex]) { nodeIndex = 2 * nodeIndex; } else if (codePoint > data[3 * nodeIndex