UNPKG

@graphql-yoga/graphiql

Version:

This the GraphiQL used by GraphQL Yoga. This package is currently not published to npm and only contains the React component `GraphQLYoga`.

1,644 lines (1,631 loc) • 860 kB
(() => { var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a2, b) => (typeof require !== "undefined" ? require : a2)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x + '" is not supported'); }); // ../../node_modules/.pnpm/monaco-editor@0.52.2/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/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/base/common/functional.js function createSingleCallFunction(fn, fnDidRunCallback) { const _this = this; let didCall = false; let result; return function() { if (didCall) { return result; } didCall = true; if (fnDidRunCallback) { try { result = fn.apply(_this, arguments); } finally { fnDidRunCallback(); } } else { result = fn.apply(_this, arguments); } return result; }; } // ../../node_modules/.pnpm/monaco-editor@0.52.2/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* reverse(array) { for (let i = array.length - 1; i >= 0; i--) { yield array[i]; } } Iterable2.reverse = reverse; 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) { let i = 0; for (const element of iterable) { if (predicate(element, i++)) { 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* flatMap(iterable, fn) { let index = 0; for (const element of iterable) { yield* fn(element, index++); } } Iterable2.flatMap = flatMap; function* concat(...iterables) { for (const iterable of iterables) { yield* iterable; } } 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; async function asyncToArray(iterable) { const result = []; for await (const item of iterable) { result.push(item); } return Promise.resolve(result); } Iterable2.asyncToArray = asyncToArray; })(Iterable || (Iterable = {})); // ../../node_modules/.pnpm/monaco-editor@0.52.2/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 { } } } markAsDisposed(disposable) { if (disposable && disposable !== Disposable.None) { try { disposable[__is_disposable_tracked__] = true; } catch { } } } markAsSingleton(disposable) { } }()); } function trackDisposable(x) { disposableTracker?.trackDisposable(x); return x; } function markAsDisposed(disposable) { disposableTracker?.markAsDisposed(disposable); } function setParentOfDisposable(child, parent) { 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: createSingleCallFunction(() => { markAsDisposed(self2); fn(); }) }); return self2; } var DisposableStore = class _DisposableStore { static { this.DISABLE_DISPOSED_WARNING = false; } 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; } /** * Deletes the value from the store, but does not dispose it. */ deleteAndLeak(o) { if (!o) { return; } if (this._toDispose.has(o)) { this._toDispose.delete(o); setParentOfDisposable(o, null); } } }; var Disposable = class { static { this.None = Object.freeze({ dispose() { } }); } 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); } }; // ../../node_modules/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/base/common/linkedList.js var Node = class _Node { static { this.Undefined = new _Node(void 0); } constructor(element) { this.element = element; this.next = _Node.Undefined; this.prev = _Node.Undefined; } }; 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/.pnpm/monaco-editor@0.52.2/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(); } reset() { this._startTime = this._now(); this._stopTime = -1; } elapsed() { if (this._stopTime !== -1) { return this._stopTime - this._startTime; } return this._now() - this._startTime; } }; // ../../node_modules/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/base/common/event.js var _enableListenerGCedWarning = false; 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?.(); }; } } function defer(event, disposable) { return debounce(event, () => void 0, 0, void 0, true, void 0, disposable); } Event2.defer = defer; function once(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 = once; function onceIf(event, condition) { return Event2.once(Event2.filter(event, condition)); } Event2.onceIf = onceIf; 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) => { const disposable = combinedDisposable(...events.map((event) => event((e) => listener.call(thisArgs, e)))); return addAndReturnDisposable(disposable, 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?.dispose(); } }; if (!disposable) { _addLeakageTraceLogic(options); } const emitter = new Emitter(options); disposable?.add(emitter); return emitter.event; } function addAndReturnDisposable(d, store) { if (store instanceof Array) { store.push(d); } else if (store) { store.add(d); } return d; } 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?.(); } }, onDidRemoveLastListener() { doFire = void 0; subscription.dispose(); } }; if (!disposable) { _addLeakageTraceLogic(options); } const emitter = new Emitter(options); 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, equals4 = (a2, b) => a2 === b, disposable) { let firstCall = true; let cache; return filter(event, (value) => { const shouldEmit = firstCall || !equals4(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 = [], disposable) { let buffer2 = _buffer.slice(); let listener = event((e) => { if (buffer2) { buffer2.push(e); } else { emitter.fire(e); } }); if (disposable) { disposable.add(listener); } const flush = () => { buffer2?.forEach((e) => emitter.fire(e)); buffer2 = null; }; const emitter = new Emitter({ onWillAddFirstListener() { if (!listener) { listener = event((e) => emitter.fire(e)); if (disposable) { disposable.add(listener); } } }, onDidAddFirstListener() { if (buffer2) { if (flushAfterTimeout) { setTimeout(flush); } else { flush(); } } }, onDidRemoveLastListener() { if (listener) { listener.dispose(); } listener = null; } }); if (disposable) { disposable.add(emitter); } return emitter.event; } Event2.buffer = buffer; function chain(event, sythensize) { const fn = (listener, thisArgs, disposables) => { const cs = sythensize(new ChainableSynthesis()); return event(function(value) { const result = cs.evaluate(value); if (result !== HaltChainable) { listener.call(thisArgs, result); } }, void 0, disposables); }; return fn; } Event2.chain = chain; const HaltChainable = Symbol("HaltChainable"); class ChainableSynthesis { constructor() { this.steps = []; } map(fn) { this.steps.push(fn); return this; } forEach(fn) { this.steps.push((v) => { fn(v); return v; }); return this; } filter(fn) { this.steps.push((v) => fn(v) ? v : HaltChainable); return this; } reduce(merge, initial) { let last = initial; this.steps.push((v) => { last = merge(last, v); return last; }); return this; } latch(equals4 = (a2, b) => a2 === b) { let firstCall = true; let cache; this.steps.push((value) => { const shouldEmit = firstCall || !equals4(value, cache); firstCall = false; cache = value; return shouldEmit ? value : HaltChainable; }); return this; } evaluate(value) { for (const step of this.steps) { value = step(value); if (value === HaltChainable) { break; } } return value; } } 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) => once(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 forward(from, to) { return from((e) => to.fire(e)); } Event2.forward = forward; function runAndSubscribe(event, handler, initial) { handler(initial); return event((e) => handler(e)); } Event2.runAndSubscribe = runAndSubscribe; class EmitterObserver { constructor(_observable, store) { this._observable = _observable; this._counter = 0; this._hasChanged = false; const options = { onWillAddFirstListener: () => { _observable.addObserver(this); this._observable.reportChanges(); }, 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, thisArgs, disposables) => { let count = 0; let didChange = false; const observer = { beginUpdate() { count++; }, endUpdate() { count--; if (count === 0) { observable.reportChanges(); if (didChange) { didChange = false; listener.call(thisArgs); } } }, handlePossibleChange() { }, handleChange() { didChange = true; } }; observable.addObserver(observer); observable.reportChanges(); const disposable = { dispose() { observable.removeObserver(observer); } }; if (disposables instanceof DisposableStore) { disposables.add(disposable); } else if (Array.isArray(disposables)) { disposables.push(disposable); } return disposable; }; } Event2.fromObservableLight = fromObservableLight; })(Event || (Event = {})); var EventProfiling = class _EventProfiling { static { this.all = /* @__PURE__ */ new Set(); } static { this._idPool = 0; } 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; } } }; var _globalLeakWarningThreshold = -1; var LeakageMonitor = class _LeakageMonitor { static { this._idPool = 1; } constructor(_errorHandler, threshold, name = (_LeakageMonitor._idPool++).toString(16).padStart(3, "0")) { this._errorHandler = _errorHandler; this.threshold = threshold; this.name = name; this._warnCountdown = 0; } dispose() { this._stacks?.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; const [topStack, topCount] = this.getMostFrequentStack(); const message = `[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`; console.warn(message); console.warn(topStack); const error = new ListenerLeakError(message, topStack); this._errorHandler(error); } return () => { const count2 = this._stacks.get(stack.value) || 0; this._stacks.set(stack.value, count2 - 1); }; } getMostFrequentStack() { if (!this._stacks) { return void 0; } let topStack; let topCount = 0; for (const [stack, count] of this._stacks) { if (!topStack || topCount < count) { topStack = [stack, count]; topCount = count; } } return topStack; } }; var Stacktrace = class _Stacktrace { static create() { const err = new Error(); return new _Stacktrace(err.stack ?? ""); } constructor(value) { this.value = value; } print() { console.warn(this.value.split("\n").slice(2).join("\n")); } }; var ListenerLeakError = class extends Error { constructor(message, stack) { super(message); this.name = "ListenerLeakError"; this.stack = stack; } }; var ListenerRefusalError = class extends Error { constructor(message, stack) { super(message); this.name = "ListenerRefusalError"; this.stack = stack; } }; 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 _listenerFinalizers; if (_enableListenerGCedWarning) { const leaks = []; setInterval(() => { if (leaks.length === 0) { return; } console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"); console.warn(leaks.join("\n")); leaks.length = 0; }, 3e3); _listenerFinalizers = new FinalizationRegistry((heldValue) => { if (typeof heldValue === "string") { leaks.push(heldValue); } }); } var Emitter = class { constructor(options) { this._size = 0; this._options = options; this._leakageMon = _globalLeakWarningThreshold > 0 || this._options?.leakWarningThreshold ? new LeakageMonitor(options?.onListenerError ?? onUnexpectedError, this._options?.leakWarningThreshold ?? _globalLeakWarningThreshold) : void 0; this._perfMon = this._options?._profName ? new EventProfiling(this._options._profName) : void 0; this._deliveryQueue = this._options?.deliveryQueue; } dispose() { if (!this._disposed) { this._disposed = true; if (this._deliveryQueue?.current === this) { this._deliveryQueue.reset(); } if (this._listeners) { if (_enableDisposeWithListenerWarning) { const listeners = this._listeners; queueMicrotask(() => { forEachListener(listeners, (l) => l.stack?.print()); }); } this._listeners = void 0; this._size = 0; } this._options?.onDidRemoveLastListener?.(); this._leakageMon?.dispose(); } } /** * For the public to allow to subscribe * to events from this Emitter */ get event() { this._event ??= (callback, thisArgs, disposables) => { if (this._leakageMon && this._size > this._leakageMon.threshold ** 2) { const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`; console.warn(message); const tuple = this._leakageMon.getMostFrequentStack() ?? ["UNKNOWN stack", -1]; const error = new ListenerRefusalError(`${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0]); const errorHandler2 = this._options?.onListenerError || onUnexpectedError; errorHandler2(error); 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 ?? Stacktrace.create(); } if (!this._listeners) { this._options?.onWillAddFirstListener?.(this); this._listeners = contained; this._options?.onDidAddFirstListener?.(this); } else if (this._listeners instanceof UniqueContainer) { this._deliveryQueue ??= new EventDeliveryQueuePrivate(); this._listeners = [this._listeners, contained]; } else { this._listeners.push(contained); } this._size++; const result = toDisposable(() => { _listenerFinalizers?.unregister(result); removeMonitor?.(); this._removeListener(contained); }); if (disposables instanceof DisposableStore) { disposables.add(result); } else if (Array.isArray(disposables)) { disposables.push(result); } if (_listenerFinalizers) { const stack2 = new Error().stack.split("\n").slice(2, 3).join("\n").trim(); const match = /(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(stack2); _listenerFinalizers.register(result, match?.[2] ?? stack2, result); } return result; }; return this._event; } _removeListener(listener) { this._options?.onWillRemoveListener?.(this); if (!this._listeners) { return; } if (this._size === 1) { this._listeners = void 0; this._options?.onDidRemoveLastListener?.(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) { if (!listener) { return; } const errorHandler2 = this._options?.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) { if (this._deliveryQueue?.current) { this._deliverQueue(this._deliveryQueue); this._perfMon?.stop(); } this._perfMon?.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); } this._perfMon?.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/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/nls.messages.js function getNLSMessages() { return globalThis._VSCODE_NLS_MESSAGES; } function getNLSLanguage() { return globalThis._VSCODE_NLS_LANGUAGE; } // ../../node_modules/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/nls.js var isPseudo = getNLSLanguage() === "pseudo" || 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) { if (typeof data === "number") { return _format(lookupMessage(data, message), args); } return _format(message, args); } function lookupMessage(index, fallback) { const message = getNLSMessages()?.[index]; if (typeof message !== "string") { if (typeof fallback === "string") { return fallback; } throw new Error(`!!! NLS MISSING: ${index} !!!`); } return message; } // ../../node_modules/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/base/common/platform.js 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 $globalThis = globalThis; var nodeProcess = void 0; if (typeof $globalThis.vscode !== "undefined" && typeof $globalThis.vscode.process !== "undefined") { nodeProcess = $globalThis.vscode.process; } else if (typeof process !== "undefined" && typeof process?.versions?.node === "string") { nodeProcess = process; } var isElectronProcess = typeof nodeProcess?.versions?.electron === "string"; var isElectronRenderer = isElectronProcess && nodeProcess?.type === "renderer"; 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); _locale = nlsConfig.userLocale; _platformLocale = nlsConfig.osLocale; _language = nlsConfig.resolvedLanguage || LANGUAGE_DEFAULT; _translationsConfigFile = nlsConfig.languagePack?.translationsConfigFile; } catch (e) { } } _isNative = true; } else 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?.indexOf("Mobi") >= 0; _isWeb = true; _language = getNLSLanguage() || LANGUAGE_DEFAULT; _locale = navigator.language.toLowerCase(); _platformLocale = _locale; } 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 isNative = _isNative; var isWeb = _isWeb; var isWebWorker = _isWeb && typeof $globalThis.importScripts === "function"; var webWorkerOrigin = isWebWorker ? $globalThis.origin : void 0; var userAgent = _userAgent; var setTimeout0IsFaster = typeof $globalThis.postMessage === "function" && !$globalThis.importScripts; var setTimeout0 = (() => { if (setTimeout0IsFaster) { const pending = []; $globalThis.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 }); $globalThis.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/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/base/common/cache.js function identity(t2) { return t2; } var LRUCachedFunction = class { constructor(arg1, arg2) { this.lastCache = void 0; this.lastArgKey = void 0; if (typeof arg1 === "function") { this._fn = arg1; this._computeKey = identity; } else { this._fn = arg2; this._computeKey = arg1.getCacheKey; } } get(arg) { const key = this._computeKey(arg); if (this.lastArgKey !== key) { this.lastArgKey = key; this.lastCache = this._fn(arg); } return this.lastCache; } }; // ../../node_modules/.pnpm/monaco-editor@0.52.2/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/.pnpm/monaco-editor@0.52.2/node_modules/monaco-editor/esm/vs/base/common/strings.js 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 { this._INSTANCE = null; } 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