swagger-editor 5.8.10 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/apidom.worker.js +457 -245
- package/dist/esm/apidom.worker.js.map +1 -1
- package/dist/esm/plugins/editor-monaco-language-apidom/index.js +41 -46
- package/dist/esm/plugins/editor-monaco-language-apidom/index.js.map +1 -1
- package/dist/umd/apidom.worker.js +8 -8
- package/dist/umd/swagger-editor.js +30 -28
- package/package.json +3 -3
|
@@ -487,38 +487,39 @@ var s = "apidom", c = {
|
|
|
487
487
|
#e = null;
|
|
488
488
|
#t = null;
|
|
489
489
|
#n = null;
|
|
490
|
-
#r;
|
|
491
|
-
#i
|
|
490
|
+
#r = null;
|
|
491
|
+
#i;
|
|
492
|
+
#a = 0;
|
|
492
493
|
constructor(e) {
|
|
493
|
-
this.#e = e, this.#
|
|
494
|
-
}
|
|
495
|
-
#a() {
|
|
496
|
-
this.#t &&= (this.#t.dispose(), null), this.#n = null;
|
|
494
|
+
this.#e = e, this.#i = setInterval(() => this.#s(), 30 * 1e3);
|
|
497
495
|
}
|
|
498
496
|
#o() {
|
|
499
|
-
this.#t
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
497
|
+
this.#t &&= (this.#t.dispose(), null), this.#n = null, this.#r = null;
|
|
498
|
+
}
|
|
499
|
+
#s() {
|
|
500
|
+
this.#t && Date.now() - this.#a > d && this.#o();
|
|
501
|
+
}
|
|
502
|
+
async #c() {
|
|
503
|
+
let e = this.#e.getLanguageId(), t = await globalThis.MonacoEnvironment.getWorker("ApiDOMWorker", e), r = {
|
|
504
|
+
...this.#e.getWorkerOptions().data,
|
|
505
|
+
languageId: e,
|
|
506
|
+
apiDOMContext: this.#e.getWorkerOptions().apiDOMContext,
|
|
507
|
+
customWorkerPath: this.#e.getWorkerOptions().customWorkerPath
|
|
508
|
+
};
|
|
509
|
+
return t.postMessage(r), this.#t = n.editor.createWebWorker({
|
|
510
|
+
worker: t,
|
|
511
|
+
keepIdleModels: !0
|
|
512
|
+
}), this.#n = this.#t.getProxy(), this.#n;
|
|
513
|
+
}
|
|
514
|
+
async #l() {
|
|
515
|
+
return this.#a = Date.now(), this.#r ??= this.#c(), this.#r;
|
|
515
516
|
}
|
|
516
517
|
async getLanguageServiceWorker(...e) {
|
|
517
|
-
let t = await this.#
|
|
518
|
+
let t = await this.#l();
|
|
518
519
|
return this.#t && await this.#t.withSyncedResources(e), t;
|
|
519
520
|
}
|
|
520
521
|
dispose() {
|
|
521
|
-
clearInterval(this.#
|
|
522
|
+
clearInterval(this.#i), this.#o();
|
|
522
523
|
}
|
|
523
524
|
}, p = class {
|
|
524
525
|
#e;
|
|
@@ -567,10 +568,9 @@ var s = "apidom", c = {
|
|
|
567
568
|
});
|
|
568
569
|
}
|
|
569
570
|
async #i(e) {
|
|
570
|
-
let t = await this.worker(e.uri);
|
|
571
|
-
if (e.isDisposed()) return [];
|
|
572
571
|
try {
|
|
573
|
-
|
|
572
|
+
let t = await this.worker(e.uri);
|
|
573
|
+
return e.isDisposed() ? [] : await t.doValidation(e.uri.toString());
|
|
574
574
|
} catch {
|
|
575
575
|
return [];
|
|
576
576
|
}
|
|
@@ -584,9 +584,8 @@ var s = "apidom", c = {
|
|
|
584
584
|
}
|
|
585
585
|
}, h = class extends p {
|
|
586
586
|
async #e(e, t) {
|
|
587
|
-
let n = await this.worker(e.uri);
|
|
588
587
|
try {
|
|
589
|
-
return await
|
|
588
|
+
return await (await this.worker(e.uri)).doHover(e.uri.toString(), this.codeConverter.asPosition(t));
|
|
590
589
|
} catch {
|
|
591
590
|
return;
|
|
592
591
|
}
|
|
@@ -597,9 +596,8 @@ var s = "apidom", c = {
|
|
|
597
596
|
}
|
|
598
597
|
}, g = class extends p {
|
|
599
598
|
async #e(e) {
|
|
600
|
-
let t = await this.worker(e.uri);
|
|
601
599
|
try {
|
|
602
|
-
return await
|
|
600
|
+
return await (await this.worker(e.uri)).doLinks(e.uri.toString());
|
|
603
601
|
} catch {
|
|
604
602
|
return [];
|
|
605
603
|
}
|
|
@@ -613,9 +611,8 @@ var s = "apidom", c = {
|
|
|
613
611
|
}
|
|
614
612
|
}, _ = class extends p {
|
|
615
613
|
async #e(e, t) {
|
|
616
|
-
let n = await this.worker(e.uri);
|
|
617
614
|
try {
|
|
618
|
-
return await
|
|
615
|
+
return await (await this.worker(e.uri)).doComplete(e.uri.toString(), this.codeConverter.asPosition(t));
|
|
619
616
|
} catch {
|
|
620
617
|
return;
|
|
621
618
|
}
|
|
@@ -626,9 +623,8 @@ var s = "apidom", c = {
|
|
|
626
623
|
}
|
|
627
624
|
}, v = class extends p {
|
|
628
625
|
async #e(e) {
|
|
629
|
-
let t = await this.worker(e.uri);
|
|
630
626
|
try {
|
|
631
|
-
return await
|
|
627
|
+
return await (await this.worker(e.uri)).findSemanticTokens(e.uri.toString());
|
|
632
628
|
} catch {
|
|
633
629
|
return;
|
|
634
630
|
}
|
|
@@ -639,9 +635,8 @@ var s = "apidom", c = {
|
|
|
639
635
|
}
|
|
640
636
|
}, y = class extends p {
|
|
641
637
|
async #e(e, t) {
|
|
642
|
-
let n = await this.worker(e.uri);
|
|
643
638
|
try {
|
|
644
|
-
return await
|
|
639
|
+
return await (await this.worker(e.uri)).doCodeActions(e.uri.toString(), t);
|
|
645
640
|
} catch {
|
|
646
641
|
return;
|
|
647
642
|
}
|
|
@@ -655,9 +650,8 @@ var s = "apidom", c = {
|
|
|
655
650
|
}
|
|
656
651
|
}, b = class extends p {
|
|
657
652
|
async #e(e) {
|
|
658
|
-
let t = await this.worker(e.uri);
|
|
659
653
|
try {
|
|
660
|
-
return await
|
|
654
|
+
return await (await this.worker(e.uri)).findDocumentSymbols(e.uri.toString());
|
|
661
655
|
} catch {
|
|
662
656
|
return;
|
|
663
657
|
}
|
|
@@ -668,9 +662,8 @@ var s = "apidom", c = {
|
|
|
668
662
|
}
|
|
669
663
|
}, x = class extends p {
|
|
670
664
|
async #e(e, t) {
|
|
671
|
-
let n = await this.worker(e.uri);
|
|
672
665
|
try {
|
|
673
|
-
return await
|
|
666
|
+
return await (await this.worker(e.uri)).provideDefinition(e.uri.toString(), this.codeConverter.asPosition(t));
|
|
674
667
|
} catch {
|
|
675
668
|
return;
|
|
676
669
|
}
|
|
@@ -692,10 +685,10 @@ var s = "apidom", c = {
|
|
|
692
685
|
s
|
|
693
686
|
], u = c();
|
|
694
687
|
return t.push(new m(...l, c)), (async () => {
|
|
695
|
-
if (await u.monacoInitializationDeferred().promise, t.push(r.registerHoverProvider(e, new h(...l))), t.push(r.registerDocumentLinkProvider(e, new g(...l))), t.push(r.registerCompletionItemProvider(e, new _(...l))), t.push(r.registerCodeActionsProvider(e, new y(...l))), t.push(r.registerDocumentSymbolProvider(e, new b(...l))), t.push(r.registerDefinitionProvider(e, new x(...l))), i) {
|
|
688
|
+
if (await u.monacoInitializationDeferred().promise, t.push(r.registerHoverProvider(e, new h(...l))), t.push(r.registerDocumentLinkProvider(e, new g(...l))), t.push(r.registerCompletionItemProvider(e, new _(...l))), t.push(r.registerCodeActionsProvider(e, new y(...l))), t.push(r.registerDocumentSymbolProvider(e, new b(...l))), t.push(r.registerDefinitionProvider(e, new x(...l))), i) try {
|
|
696
689
|
let n = await (await a()).getSemanticTokensLegend();
|
|
697
690
|
t.push(r.registerDocumentSemanticTokensProvider(e, new v(...l), n));
|
|
698
|
-
}
|
|
691
|
+
} catch {}
|
|
699
692
|
})(), t;
|
|
700
693
|
};
|
|
701
694
|
function D(e, { useApiDOMSyntaxHighlighting: t } = {}) {
|
|
@@ -722,14 +715,16 @@ var O = ({ getSystem: e }) => ({
|
|
|
722
715
|
async run(n) {
|
|
723
716
|
let r = e(), i = r.editorSelectors.selectIsContentFormatJSON(), a = r.editorSelectors.selectIsContentFormatYAML();
|
|
724
717
|
if (!i && !a) return;
|
|
725
|
-
let o = n.getModel(), s = await
|
|
718
|
+
let o = n.getModel(), s = await T()(o.uri).catch(() => void 0);
|
|
719
|
+
if (!s) return;
|
|
720
|
+
let c = await s.doDeref(o.uri.toString(), {
|
|
726
721
|
baseURI: globalThis.document.baseURI || globalThis.location.href,
|
|
727
722
|
format: i ? 0 : a ? 1 : "unknown"
|
|
728
723
|
});
|
|
729
724
|
if (a) {
|
|
730
|
-
let e = t.dump(t.load(
|
|
725
|
+
let e = t.dump(t.load(c));
|
|
731
726
|
r.editorActions.setContent(e, r.EditorContentOrigin.Resolve);
|
|
732
|
-
} else i && r.editorActions.setContent(
|
|
727
|
+
} else i && r.editorActions.setContent(c, r.EditorContentOrigin.Resolve);
|
|
733
728
|
}
|
|
734
729
|
}), k = {}, A = {
|
|
735
730
|
customWorkerPath: void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["#defaults","#idleCheckInterval","#checkIfIdle","#worker","#client","#lastUsedTime","#stopWorker","#getClient","#worker","#codeConverter","#protocolConverter","#system","#validate","#listener","#diagnosticCollection","apidom.languageId","vscodeLanguages","#disposables","#getDiagnostics","#getHover","#getLinks","#getCompletionList","#getSemanticTokens","#getCodeActionList","#maybeConvert","#getSymbolInformationList","#getLocation","vscodeLanguages","createCodeConverter","createProtocolConverter","apidom.languageId","#languageId","#workerOptions","#modeConfiguration","vscodeLanguages","apidom.conf","apidom.apiDOMMonarchLanguageDef","apidom.monarchLanguageDef"],"sources":["../../../../src/plugins/editor-monaco-language-apidom/language/apidom.js","../../../../src/plugins/editor-monaco-language-apidom/language/WorkerManager.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/Provider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DiagnosticsProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/HoverProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DocumentLinkProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/CompletionItemProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DocumentSemanticTokensProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/CodeActionsProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DocumentSymbolProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DefinitionProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/apidom-mode.js","../../../../src/plugins/editor-monaco-language-apidom/language/actions/dereference.js","../../../../src/plugins/editor-monaco-language-apidom/language/monaco.contribution.js","../../../../src/plugins/editor-monaco-language-apidom/after-load.js","../../../../src/plugins/editor-monaco-language-apidom/actions/get-json-pointer-position.js","../../../../src/plugins/editor-monaco-language-apidom/extensions/editor-monaco/wrap-components/EditorWrapper.jsx","../../../../src/plugins/editor-monaco-language-apidom/index.js"],"sourcesContent":["import * as monaco from 'monaco-editor';\n\nexport const languageId = 'apidom';\n\nexport const conf = {\n comments: {\n lineComment: '#',\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n\n onEnterRules: [\n {\n beforeText: /:\\s*$/,\n action: { indentAction: monaco.languages.IndentAction.Indent },\n },\n {\n beforeText: /-\\s+\\w*$/,\n action: { indentAction: monaco.languages.IndentAction.None, appendText: '- ' },\n },\n {\n beforeText: /-\\s*$/,\n action: { indentAction: monaco.languages.IndentAction.None, appendText: '- ' },\n },\n ],\n};\n\nexport const apiDOMMonarchLanguageDef = {\n // set defaultToken to invalid to see what you do not tokenize yet\n defaultToken: 'invalid',\n keywords: ['swagger', 'info', 'host', 'basePath', 'tags', 'schemes', 'paths', 'externalDocs'],\n typeKeywords: ['description', 'title', 'termsOfService'],\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n // the main tokenizer for our languages\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /[a-zA-Z_$][\\w$]*/,\n {\n cases: {\n '@keywords': { token: 'keyword' },\n '@typeKeywords': { token: 'type' },\n '@default': 'identifier',\n },\n },\n ],\n // whitespace\n { include: '@whitespace' },\n // strings for todos\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-terminated string\n [/\"/, 'string', '@string'],\n ],\n whitespace: [[/[ \\t\\r\\n]+/, '']],\n string: [\n [/[^\\\\\"]+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [/\"/, 'string', '@pop'],\n ],\n },\n};\n\nexport const monarchLanguageDef = {\n // set defaultToken to invalid to see what you do not tokenize yet\n defaultToken: 'invalid',\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n // the main tokenizer for our languages\n tokenizer: {\n root: [\n [/^#.*$/, 'plain.value'],\n\n // objects\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n\n // specification extensions\n [/^(x-[^:\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(x-[^:\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords\n [/^([a-zA-Z_$][\\w$]*)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^([a-zA-Z_$][\\w$]*)(:)$/, ['plain.keyword', 'plain.value']],\n\n // single-quoted keywords\n [/^(\\s*'[^']*')(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(\\s*'[^']*')(:)$/, ['plain.keyword', 'plain.value']],\n\n // double-quoted keywords\n [/^(\\s*\"[^\"]*\")(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(\\s*\"[^\"]*\")(:)$/, ['plain.keyword', 'plain.value']],\n\n // arrays\n [/^\\s*-\\s/, 'plain.value', '@arrays'],\n\n // nested keywords\n [/^\\s{1,}/, '', '@nestedKeywords'],\n\n // keywords catch-all\n [/^(\\s*[^\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(\\s*[^\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // whitespace\n { include: '@whitespace' },\n\n // strings for todos\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-terminated string\n [/\"/, 'plain.value.string', '@stringDoubleQuoted'],\n [/'/, 'plain.value.string', '@stringSingleQuoted'],\n ],\n\n values: [\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // numbers\n [/\\s*[0-9]+\\s*$/, 'plain.value.number'],\n [/\\s*[0-9]+(\\.[0-9]+)?\\s*$/, 'plain.value.number'],\n\n // booleans\n [/\\s*(true|false)\\s*$/, 'plain.value.boolean'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n // quoted values\n [/\\s*\"/, { token: 'plain.value.string', next: '@stringDoubleQuoted' }],\n [/\\s*'/, { token: 'plain.value.string', next: '@stringSingleQuoted' }],\n\n // unquoted values - catch-all\n [/[^\\n]+$/, 'plain.value'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n [/:/, 'plain.value', '@pop'],\n\n [/.+$/, '', '@pop'],\n [/.*$/, '', '@pop'],\n ],\n\n whitespace: [[/[ \\t\\r\\n]+/, '']],\n\n stringDoubleQuoted: [\n [/[^\\\\\"]+/, 'plain.value.string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [/\"/, 'plain.value.string', '@pop'],\n ],\n\n stringSingleQuoted: [\n [/[^\\\\']+/, 'plain.value.string'],\n [(/@escapes/, 'string.escape')],\n [/\\\\./, 'string.escape.invalid'],\n [/'/, 'plain.value.string', '@pop'],\n ],\n\n nestedKeywords: [\n // specification extensions\n [/(x-[^:\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(x-[^:\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords\n [/([a-zA-Z_$][\\w$]*)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/([a-zA-Z_$][\\w$]*)(:)$/, ['plain.keyword', 'plain.value']],\n\n // single-quoted keywords\n [/(\\s*'[^']*')(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*'[^']*')(:)$/, ['plain.keyword', 'plain.value']],\n\n // double-quoted keywords\n [/(\\s*\"[^\"]*\")(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*\"[^\"]*\")(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords catch-all\n [/(\\s*[^\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*[^\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n [/.+$/, 'plain.value', '@pop'],\n ],\n\n arrays: [\n // specification extensions\n [/(x-[^:\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(x-[^:\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords\n [/([a-zA-Z_$][\\w$]*)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/([a-zA-Z_$][\\w$]*)(:)$/, ['plain.keyword', 'plain.value']],\n\n // single-quoted keywords\n [/(\\s*'[^']*')(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*'[^']*')(:)$/, ['plain.keyword', 'plain.value']],\n\n // double-quoted keywords\n [/(\\s*\"[^\"]*\")(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*\"[^\"]*\")(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords catch-all\n [/(\\s*[^\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*[^\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n [/^/, '', '@pop'],\n\n // numbers\n [/\\s*([0-9]+)\\s*$/, 'plain.value.number'],\n [/\\s*([0-9]+\\.[0-9]+)\\s*$/, 'plain.value.number'],\n\n // booleans\n [/\\s*(true|false)\\s*$/, 'plain.value.boolean'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n // unquoted values - catch-all\n [/([^\\n'\"]+)\\s*$/, 'plain.value'],\n\n // quoted values\n [/\\s*\"/, 'plain.value.string', '@stringDoubleQuoted'],\n [/\\s*'/, 'plain.value.string', '@stringSingleQuoted'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n [/:/, 'plain.value', '@pop'],\n\n [/.+$/, '', '@pop'],\n [/.*$/, '', '@pop'],\n ],\n\n objectValues: [\n // objects\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n // arrays\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // numbers\n [\n /(\\s*)([0-9]+\\.[0-9]+)(\\s*,?\\s*)/,\n ['plain.value', 'plain.value.number', { token: 'plain.value', next: '@pop' }],\n ],\n [\n /(\\s*)([0-9]+)(\\s*,?\\s*)/,\n ['plain.value', 'plain.value.number', { token: 'plain.value', next: '@pop' }],\n ],\n\n // booleans\n [\n /(\\s*)(true|false)(\\s*,?\\s*)/,\n ['plain.value', 'plain.value.boolean', { token: 'plain.value', next: '@pop' }],\n ],\n\n // quoted values\n [/\\s*\"/, { token: 'plain.value.string', next: '@stringDoubleQuoted' }],\n [/\\s*'/, { token: 'plain.value.string', next: '@stringSingleQuoted' }],\n\n // unquoted values - catch-all\n [/[^,}\\n]+/, 'plain.value'],\n\n [/,/, 'plain.value', '@pop'],\n\n [/(?=})/, 'plain.value', '@pop'],\n ],\n\n objects: [\n // single-quoted keywords\n [\n /(\\s*'[^']*'\\s*)(:)(?=\\s*\\S)/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n [\n /(\\s*'[^']*')(\\s*:\\s*)$/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n\n // double-quoted keywords\n [\n /(\\s*\"[^\"]*\")(\\s*:)(?=\\s*\\S)/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n [\n /(\\s*\"[^\"]*\")(\\s*:\\s*)$/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n\n // objects\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n // arrays\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // unquoted values - catch-all\n [/[^,}\\n]+/, 'plain.value'],\n\n [/,/, 'plain.value'],\n\n [/}/, 'plain.value', '@pop'],\n ],\n\n // JSON arrays\n jsonArrays: [\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // numbers\n [/(\\s*)([0-9]+)(\\s*,?\\s*)/, ['plain.value', 'plain.value.number', 'plain.value']],\n [/(\\s*)([0-9]+\\.[0-9]+)(\\s*,?\\s*)/, ['plain.value', 'plain.value.number', 'plain.value']],\n\n // booleans\n [/(\\s*)(true|false)(\\s*,?\\s*)/, ['plain.value', 'plain.value.boolean', 'plain.value']],\n\n // quoted values\n [/\\s*\"/, { token: 'plain.value.string', next: '@stringDoubleQuoted' }],\n [/\\s*'/, { token: 'plain.value.string', next: '@stringSingleQuoted' }],\n\n // unquoted values - catch-all\n [/[^,\\]\\n]+/, 'plain.value'],\n\n [/,/, 'plain.value'],\n\n [/\\]/, 'plain.value', '@pop'],\n ],\n },\n};\n","import * as monaco from 'monaco-editor';\n\nconst STOP_WHEN_IDLE_FOR = 2 * 60 * 1000; // 2min\n\nexport default class WorkerManager {\n #defaults = null;\n\n #worker = null;\n\n #client = null;\n\n #idleCheckInterval;\n\n #lastUsedTime = 0;\n\n constructor(defaults) {\n this.#defaults = defaults;\n this.#idleCheckInterval = setInterval(() => this.#checkIfIdle(), 30 * 1000);\n }\n\n #stopWorker() {\n if (this.#worker) {\n this.#worker.dispose();\n this.#worker = null;\n }\n this.#client = null;\n }\n\n #checkIfIdle() {\n if (!this.#worker) {\n return;\n }\n\n const timePassedSinceLastUsed = Date.now() - this.#lastUsedTime;\n if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n this.#stopWorker();\n }\n }\n\n async #getClient() {\n this.#lastUsedTime = Date.now();\n\n if (!this.#client) {\n const languageId = this.#defaults.getLanguageId();\n const worker = globalThis.MonacoEnvironment.getWorker('ApiDOMWorker', languageId);\n const createData = {\n ...this.#defaults.getWorkerOptions().data,\n languageId,\n apiDOMContext: this.#defaults.getWorkerOptions().apiDOMContext,\n customWorkerPath: this.#defaults.getWorkerOptions().customWorkerPath,\n };\n worker.postMessage(createData);\n\n this.#worker = monaco.editor.createWebWorker({\n worker,\n keepIdleModels: true,\n });\n\n this.#client = this.#worker.getProxy();\n }\n return this.#client;\n }\n\n async getLanguageServiceWorker(...resources) {\n const client = await this.#getClient();\n\n if (this.#worker) {\n await this.#worker.withSyncedResources(resources);\n }\n\n return client;\n }\n\n dispose() {\n clearInterval(this.#idleCheckInterval);\n this.#stopWorker();\n }\n}\n","class Provider {\n #worker;\n\n #codeConverter;\n\n #protocolConverter;\n\n constructor(worker, codeConverter, protocolConverter) {\n this.#worker = worker;\n this.#codeConverter = codeConverter;\n this.#protocolConverter = protocolConverter;\n }\n\n get worker() {\n return this.#worker;\n }\n\n get codeConverter() {\n return this.#codeConverter;\n }\n\n get protocolConverter() {\n return this.#protocolConverter;\n }\n\n dispose() {\n this.#worker = null;\n this.#codeConverter = null;\n this.#protocolConverter = null;\n }\n}\n\nexport default Provider;\n","import * as monaco from 'monaco-editor';\nimport { languages as vscodeLanguages } from 'vscode';\n\nimport Provider from './Provider.js';\nimport * as apidom from '../apidom.js';\n\nclass DiagnosticsProvider extends Provider {\n #listener = [];\n\n #disposables = [];\n\n #diagnosticCollection = null;\n\n #system = null;\n\n constructor(worker, codeConverter, protocolConverter, getSystem) {\n super(worker, codeConverter, protocolConverter);\n this.#system = getSystem();\n\n const onModelAdded = (model) => {\n if (model.getLanguageId() !== apidom.languageId) {\n return;\n }\n\n let handle;\n const changeSubscription = model.onDidChangeContent(() => {\n /**\n * Here we are Debouncing the user changes, so everytime a new change is done,\n * we wait some time before validating, otherwise if the user is still typing, we cancel the change.\n */\n clearTimeout(handle);\n handle = setTimeout(() => this.#validate(model), 300);\n });\n\n this.#listener[model.uri.toString()] = {\n dispose() {\n changeSubscription.dispose();\n clearTimeout(handle);\n },\n };\n\n this.#validate(model);\n };\n\n const onModelRemoved = (model) => {\n this.#diagnosticCollection?.set(model.uri, []);\n const key = model.uri.toString();\n if (this.#listener[key]) {\n this.#listener[key].dispose();\n delete this.#listener[key];\n }\n };\n\n const onModelLanguageChanged = (model) => {\n const key = model.uri.toString();\n const hasChangedToApiDOM = model.getLanguageId() === apidom.languageId;\n const isModelSubscribed = !!this.#listener[key];\n\n if (!isModelSubscribed && hasChangedToApiDOM) {\n onModelAdded(model);\n } else if (isModelSubscribed && !hasChangedToApiDOM) {\n onModelRemoved(model);\n }\n };\n\n const onVscodeInitialized = () => {\n this.#diagnosticCollection = vscodeLanguages.createDiagnosticCollection(apidom.languageId);\n return this.#diagnosticCollection;\n };\n\n this.#disposables.push(monaco.editor.onDidCreateModel(onModelAdded));\n this.#disposables.push(monaco.editor.onDidChangeModelLanguage(onModelLanguageChanged));\n this.#disposables.push(monaco.editor.onWillDisposeModel(onModelRemoved));\n this.#system.monacoInitializationDeferred().promise.then(() => {\n this.#disposables.push(onVscodeInitialized());\n });\n }\n\n async #getDiagnostics(model) {\n const worker = await this.worker(model.uri);\n\n if (model.isDisposed()) {\n // model was disposed in the meantime\n return [];\n }\n\n try {\n return await worker.doValidation(model.uri.toString());\n } catch {\n return [];\n }\n }\n\n async #validate(model) {\n const diagnostics = await this.#getDiagnostics(model);\n\n if (this.protocolConverter && this.#diagnosticCollection) {\n this.#diagnosticCollection.set(\n model.uri,\n await this.protocolConverter.asDiagnostics(diagnostics)\n );\n }\n }\n\n dispose() {\n super.dispose();\n this.#disposables.forEach((disposable) => disposable?.dispose());\n this.#disposables = [];\n this.#system = null;\n }\n}\n\nexport default DiagnosticsProvider;\n","import Provider from './Provider.js';\n\nclass HoverProvider extends Provider {\n async #getHover(vscodeDocument, position) {\n const worker = await this.worker(vscodeDocument.uri);\n\n try {\n return await worker.doHover(\n vscodeDocument.uri.toString(),\n this.codeConverter.asPosition(position)\n );\n } catch {\n return undefined;\n }\n }\n\n async provideHover(vscodeDocument, position) {\n const hover = await this.#getHover(vscodeDocument, position);\n\n return this.protocolConverter.asHover(hover);\n }\n}\n\nexport default HoverProvider;\n","import Provider from './Provider.js';\n\nclass DocumentLinkProvider extends Provider {\n async #getLinks(vscodeDocument) {\n const worker = await this.worker(vscodeDocument.uri);\n\n try {\n return await worker.doLinks(vscodeDocument.uri.toString());\n } catch {\n return [];\n }\n }\n\n async provideDocumentLinks(vscodeDocument) {\n const links = await this.#getLinks(vscodeDocument);\n const linksWithNonEmptyRanges = links.filter(\n (link) => !this.protocolConverter.asRange(link.range).isEmpty\n );\n\n return this.protocolConverter.asDocumentLinks(linksWithNonEmptyRanges);\n }\n\n // eslint-disable-next-line class-methods-use-this\n async resolveDocumentLink(link) {\n return link;\n }\n}\n\nexport default DocumentLinkProvider;\n","import Provider from './Provider.js';\n\nclass CompletionItemProvider extends Provider {\n async #getCompletionList(vscodeDocument, position) {\n const worker = await this.worker(vscodeDocument.uri);\n\n try {\n return await worker.doComplete(\n vscodeDocument.uri.toString(),\n this.codeConverter.asPosition(position)\n );\n } catch {\n return undefined;\n }\n }\n\n async provideCompletionItems(vscodeDocument, position) {\n const completionList = await this.#getCompletionList(vscodeDocument, position);\n\n return this.protocolConverter.asCompletionResult(completionList);\n }\n}\n\nexport default CompletionItemProvider;\n","import Provider from './Provider.js';\n\nclass DocumentSemanticTokensProvider extends Provider {\n async #getSemanticTokens(vscodeDocument) {\n const worker = await this.worker(vscodeDocument.uri);\n\n try {\n return await worker.findSemanticTokens(vscodeDocument.uri.toString());\n } catch {\n return undefined;\n }\n }\n\n async provideDocumentSemanticTokens(vscodeDocument) {\n const semanticTokens = await this.#getSemanticTokens(vscodeDocument);\n\n return this.protocolConverter.asSemanticTokens(semanticTokens);\n }\n}\n\nexport default DocumentSemanticTokensProvider;\n","import Provider from './Provider.js';\n\nclass CodeActionsProvider extends Provider {\n async #getCodeActionList(vscodeDocument, diagnosticList) {\n const worker = await this.worker(vscodeDocument.uri);\n\n try {\n return await worker.doCodeActions(vscodeDocument.uri.toString(), diagnosticList);\n } catch {\n return undefined;\n }\n }\n\n #maybeConvert(codeActionList) {\n if (typeof codeActionList === 'undefined') {\n return codeActionList;\n }\n\n return this.protocolConverter.asCodeActionResult(codeActionList);\n }\n\n async provideCodeActions(vscodeDocument, range, ctx) {\n const diagnosticList = await this.codeConverter.asDiagnostics(ctx.diagnostics);\n const codeActionList = await this.#getCodeActionList(vscodeDocument, diagnosticList);\n\n return this.#maybeConvert(codeActionList);\n }\n}\n\nexport default CodeActionsProvider;\n","import Provider from './Provider.js';\n\nclass DocumentSymbolProvider extends Provider {\n async #getSymbolInformationList(vscodeDocument) {\n const worker = await this.worker(vscodeDocument.uri);\n\n try {\n return await worker.findDocumentSymbols(vscodeDocument.uri.toString());\n } catch {\n return undefined;\n }\n }\n\n async provideDocumentSymbols(vscodeDocument) {\n const symbolInformationList = await this.#getSymbolInformationList(vscodeDocument);\n\n return this.protocolConverter.asSymbolInformations(symbolInformationList);\n }\n}\n\nexport default DocumentSymbolProvider;\n","import Provider from './Provider.js';\n\nclass DefinitionProvider extends Provider {\n async #getLocation(vscodeDocument, position) {\n const worker = await this.worker(vscodeDocument.uri);\n\n try {\n return await worker.provideDefinition(\n vscodeDocument.uri.toString(),\n this.codeConverter.asPosition(position)\n );\n } catch {\n return undefined;\n }\n }\n\n async provideDefinition(vscodeDocument, position) {\n const location = await this.#getLocation(vscodeDocument, position);\n\n return this.protocolConverter.asDefinitionResult(location);\n }\n}\n\nexport default DefinitionProvider;\n","import { languages as vscodeLanguages } from 'vscode';\nimport { createConverter as createCodeConverter } from 'vscode-languageclient/lib/common/codeConverter.js';\nimport { createConverter as createProtocolConverter } from 'vscode-languageclient/lib/common/protocolConverter.js';\n\nimport WorkerManager from './WorkerManager.js';\nimport DiagnosticsProvider from './providers/DiagnosticsProvider.js';\nimport HoverProvider from './providers/HoverProvider.js';\nimport DocumentLinkProvider from './providers/DocumentLinkProvider.js';\nimport CompletionItemProvider from './providers/CompletionItemProvider.js';\nimport DocumentSemanticTokensProvider from './providers/DocumentSemanticTokensProvider.js';\nimport CodeActionsProvider from './providers/CodeActionsProvider.js';\nimport DocumentSymbolProvider from './providers/DocumentSymbolProvider.js';\nimport DefinitionProvider from './providers/DefinitionProvider.js';\n\nlet apidomWorker;\n\nconst disposeAll = (disposables) => {\n while (disposables.length) {\n disposables.pop().dispose();\n }\n};\n\nconst asDisposable = (disposables) => {\n return { dispose: () => disposeAll(disposables) };\n};\n\nexport const getWorker = () => {\n if (!apidomWorker) {\n throw new Error('ApiDOM not registered');\n }\n return apidomWorker;\n};\n\nconst registerProviders = ({\n languageId,\n providers,\n dependencies,\n opts: { useApiDOMSyntaxHighlighting } = {},\n}) => {\n disposeAll(providers);\n\n const { worker, codeConverter, protocolConverter, getSystem } = dependencies;\n const args = [worker, codeConverter, protocolConverter];\n const system = getSystem();\n\n /**\n * Customized providers needs to be registered before monaco editor is created.\n */\n providers.push(new DiagnosticsProvider(...args, getSystem));\n\n (async () => {\n await system.monacoInitializationDeferred().promise;\n\n providers.push(vscodeLanguages.registerHoverProvider(languageId, new HoverProvider(...args)));\n providers.push(\n vscodeLanguages.registerDocumentLinkProvider(languageId, new DocumentLinkProvider(...args))\n );\n providers.push(\n vscodeLanguages.registerCompletionItemProvider(\n languageId,\n new CompletionItemProvider(...args)\n )\n );\n providers.push(\n vscodeLanguages.registerCodeActionsProvider(languageId, new CodeActionsProvider(...args))\n );\n providers.push(\n vscodeLanguages.registerDocumentSymbolProvider(\n languageId,\n new DocumentSymbolProvider(...args)\n )\n );\n providers.push(\n vscodeLanguages.registerDefinitionProvider(languageId, new DefinitionProvider(...args))\n );\n\n if (useApiDOMSyntaxHighlighting) {\n const workerService = await worker();\n const semanticTokensLegend = await workerService.getSemanticTokensLegend();\n providers.push(\n vscodeLanguages.registerDocumentSemanticTokensProvider(\n languageId,\n new DocumentSemanticTokensProvider(...args),\n semanticTokensLegend\n )\n );\n }\n })();\n\n return providers;\n};\n\nexport function setupMode(defaults, { useApiDOMSyntaxHighlighting } = {}) {\n const disposables = [];\n const providers = [];\n const codeConverter = createCodeConverter();\n const protocolConverter = createProtocolConverter(undefined, true, true);\n\n // setup ApiDOM worker\n const client = new WorkerManager(defaults);\n const worker = async (...uris) => client.getLanguageServiceWorker(...uris);\n apidomWorker = worker;\n disposables.push({\n dispose() {\n apidomWorker = null;\n },\n });\n disposables.push(client);\n\n /**\n * Register ApiDOM providers.\n * We're already assuming here that extensions have\n * been successfully initialized.\n */\n disposables.push(\n asDisposable(\n registerProviders({\n languageId: defaults.getLanguageId(),\n providers,\n dependencies: {\n worker,\n codeConverter,\n protocolConverter,\n getSystem: defaults.getModeConfiguration().getSystem,\n },\n opts: { useApiDOMSyntaxHighlighting },\n })\n )\n );\n\n return asDisposable(disposables);\n}\n","import YAML from 'js-yaml';\n\nimport { getWorker } from '../apidom-mode.js';\n\nconst createDereferenceActionDescriptor = ({ getSystem }) => ({\n id: 'swagger.editor.apidomDereference',\n label: 'Resolve document',\n async run(editor) {\n const system = getSystem();\n const isContentJSON = system.editorSelectors.selectIsContentFormatJSON();\n const isContentYAML = system.editorSelectors.selectIsContentFormatYAML();\n\n if (!isContentJSON && !isContentYAML) return; // nothing to do here\n\n const model = editor.getModel();\n const worker = await getWorker()(model.uri);\n const dereferenced = await worker.doDeref(model.uri.toString(), {\n baseURI: globalThis.document.baseURI || globalThis.location.href,\n format: isContentJSON ? 0 : isContentYAML ? 1 : 'unknown',\n });\n\n if (isContentYAML) {\n const nicelyFormattedYAML = YAML.dump(YAML.load(dereferenced));\n system.editorActions.setContent(nicelyFormattedYAML, system.EditorContentOrigin.Resolve);\n } else if (isContentJSON) {\n system.editorActions.setContent(dereferenced, system.EditorContentOrigin.Resolve);\n }\n },\n});\n\nexport default createDereferenceActionDescriptor;\n","import * as monaco from 'monaco-editor';\nimport { languages as vscodeLanguages } from 'vscode';\nimport { ModesRegistry } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/modesRegistry';\n\nimport * as apidom from './apidom.js';\nimport { setupMode } from './apidom-mode.js';\nimport createDereferenceActionDescriptor from './actions/dereference.js';\n\nexport { getWorker } from './apidom-mode.js';\n\nconst modeConfigurationDefault = {};\n\nconst workerOptionsDefault = {\n customWorkerPath: undefined,\n data: {},\n};\n\nclass LanguageServiceDefaultsImpl {\n #languageId;\n\n #workerOptions;\n\n #modeConfiguration;\n\n constructor(workerOptions, modeConfiguration) {\n this.setLanguageId(apidom.languageId);\n this.setWorkerOptions(workerOptions);\n this.setModeConfiguration(modeConfiguration);\n }\n\n getLanguageId() {\n return this.#languageId;\n }\n\n setLanguageId(languageId) {\n this.#languageId = languageId;\n }\n\n getWorkerOptions() {\n return this.#workerOptions;\n }\n\n setWorkerOptions(workerOptions) {\n this.#workerOptions = workerOptions || JSON.parse(JSON.stringify(workerOptionsDefault));\n }\n\n getModeConfiguration() {\n return this.#modeConfiguration;\n }\n\n setModeConfiguration(modeConfiguration) {\n this.#modeConfiguration =\n modeConfiguration || JSON.parse(JSON.stringify(modeConfigurationDefault));\n }\n}\n\nexport const apidomDefaults = new LanguageServiceDefaultsImpl(\n workerOptionsDefault,\n modeConfigurationDefault\n);\n\nexport const isLanguageRegistered = () => {\n const languages = ModesRegistry.getLanguages().map(({ id }) => id);\n return languages.includes(apidom.languageId);\n};\n\nconst lazyMonacoContribution = ({ createData, system, useApiDOMSyntaxHighlighting }) => {\n const disposables = [];\n\n // register apidom language\n disposables.push(\n /**\n * This code uses ModesRegistry API instead of monaco.languages API.\n * The reason is that monaco.languages API is using ModesRegistry under the hood\n * but doesn't return disposables produced by ModesRegistry. By using ModesRegistry\n * directly we're able to obtain disposables.\n */\n ModesRegistry.registerLanguage({\n id: apidom.languageId,\n })\n );\n\n system.monacoInitializationDeferred().promise.then(() => {\n disposables.push(vscodeLanguages.setLanguageConfiguration(apidom.languageId, apidom.conf));\n });\n\n if (useApiDOMSyntaxHighlighting) {\n disposables.push(\n monaco.languages.setMonarchTokensProvider(apidom.languageId, apidom.apiDOMMonarchLanguageDef)\n );\n } else {\n disposables.push(\n monaco.languages.setMonarchTokensProvider(apidom.languageId, apidom.monarchLanguageDef)\n );\n }\n\n // setup apidom mode\n disposables.push(\n monaco.editor.onDidCreateEditor(() => {\n const { customApiDOMWorkerPath: customWorkerPath, apiDOMContext, ...data } = createData;\n const defaults = new LanguageServiceDefaultsImpl(\n { apiDOMContext, customWorkerPath, data },\n { getSystem: system.getSystem }\n );\n\n disposables.push(setupMode(defaults, { useApiDOMSyntaxHighlighting }));\n })\n );\n\n // setup custom actions\n disposables.push(\n monaco.editor.onDidCreateEditor((editor) => {\n disposables.push(\n monaco.editor.onDidCreateModel(() => {\n const dereferenceActionDescriptor = createDereferenceActionDescriptor(system);\n if (!editor.getAction(dereferenceActionDescriptor.id)) {\n disposables.push(editor.addAction(dereferenceActionDescriptor));\n }\n })\n );\n })\n );\n\n // disposing of all allocated disposables\n disposables.push(\n monaco.editor.onDidCreateEditor((editor) => {\n disposables.push(\n editor.onDidDispose(() => {\n disposables.forEach((disposable) => disposable.dispose());\n disposables.length = 0;\n })\n );\n })\n );\n};\n\nexport default lazyMonacoContribution;\n","import lazyMonacoContribution, {\n isLanguageRegistered,\n apidomDefaults,\n} from './language/monaco.contribution.js';\n\nconst makeAfterLoad =\n ({ createData = {}, useApiDOMSyntaxHighlighting = false } = {}) =>\n (system) => {\n if (isLanguageRegistered()) return;\n\n lazyMonacoContribution({ createData, system, useApiDOMSyntaxHighlighting });\n system.editorActions.setLanguage(apidomDefaults.getLanguageId());\n };\n\nexport default makeAfterLoad;\n","export const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_STARTED =\n 'editor_monaco_language_apidom_get_json_pointer_position_started';\n\nexport const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_SUCCESS =\n 'editor_monaco_language_apidom_get_json_pointer_position_success';\n\nexport const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_FAILURE =\n 'editor_monaco_language_apidom_get_json_pointer_position_failure';\n\nexport const getJsonPointerPositionStarted = ({ jsonPointer, requestId }) => ({\n type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_STARTED,\n payload: jsonPointer,\n meta: { requestId },\n});\n\nexport const getJsonPointerPositionSuccess = ({ position, jsonPointer, requestId }) => ({\n type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_SUCCESS,\n payload: position,\n meta: { jsonPointer, requestId },\n});\n\nexport const getJsonPointerPositionFailure = ({ error, jsonPointer, requestId }) => ({\n type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_FAILURE,\n error: true,\n payload: error,\n meta: { jsonPointer, requestId },\n});\n\nexport const getJsonPointerPosition = (jsonPointer) => async (system) => {\n const { editorActions, editorSelectors, fn } = system;\n const requestId = fn.generateRequestId();\n\n editorActions.getJsonPointerPositionStarted({ jsonPointer, requestId });\n\n try {\n const editor = editorSelectors.selectEditor();\n const model = editor.getModel();\n const worker = await fn.getApiDOMWorker()(model.uri);\n const { line, character } = await worker.getJsonPointerPosition(\n model.uri.toString(),\n jsonPointer\n );\n const position = { lineNumber: line, column: character - 1 };\n\n return editorActions.getJsonPointerPositionSuccess({ position, jsonPointer, requestId });\n } catch (error) {\n return editorActions.getJsonPointerPositionFailure({ error, jsonPointer, requestId });\n }\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nconst EditorWrapper =\n ({ useApiDOMSyntaxHighlighting = false }) =>\n (Original) => {\n const Editor = ({ ...props }) => {\n return <Original {...props} bracketPairColorizationEnabled={useApiDOMSyntaxHighlighting} />;\n };\n\n return Editor;\n };\n\nexport default EditorWrapper;\n","import makeAfterLoad from './after-load.js';\nimport {\n getJsonPointerPosition,\n getJsonPointerPositionStarted,\n getJsonPointerPositionSuccess,\n getJsonPointerPositionFailure,\n} from './actions/get-json-pointer-position.js';\nimport { getWorker } from './language/monaco.contribution.js';\nimport { monarchLanguageDef, apiDOMMonarchLanguageDef, languageId } from './language/apidom.js';\nimport EditorWrapper from './extensions/editor-monaco/wrap-components/EditorWrapper.jsx';\n\nconst defaultOptions = {\n useApiDOMSyntaxHighlighting: false,\n};\n\nconst EditorMonacoLanguageApiDOMPlugin = (opts = defaultOptions) => {\n const isCalledWithGetSystem = typeof opts.getSystem === 'function';\n const options = isCalledWithGetSystem ? defaultOptions : opts;\n const plugin = () => ({\n afterLoad: makeAfterLoad(options),\n rootInjects: {\n monarchLanguageDef,\n apiDOMMonarchLanguageDef,\n apiDOMLanguageId: languageId,\n },\n wrapComponents: {\n Editor: EditorWrapper(options),\n },\n fn: {\n getApiDOMWorker: getWorker,\n },\n statePlugins: {\n editor: {\n actions: {\n getJsonPointerPosition,\n getJsonPointerPositionStarted,\n getJsonPointerPositionSuccess,\n getJsonPointerPositionFailure,\n },\n },\n },\n });\n\n return isCalledWithGetSystem ? plugin(opts) : plugin;\n};\n\nexport default EditorMonacoLanguageApiDOMPlugin;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["#defaults","#idleCheckInterval","#checkIfIdle","#worker","#client","#clientPromise","#lastUsedTime","#stopWorker","#initClient","#getClient","#worker","#codeConverter","#protocolConverter","#system","#validate","#listener","#diagnosticCollection","apidom.languageId","vscodeLanguages","#disposables","#getDiagnostics","#getHover","#getLinks","#getCompletionList","#getSemanticTokens","#getCodeActionList","#maybeConvert","#getSymbolInformationList","#getLocation","vscodeLanguages","createCodeConverter","createProtocolConverter","apidom.languageId","#languageId","#workerOptions","#modeConfiguration","vscodeLanguages","apidom.conf","apidom.apiDOMMonarchLanguageDef","apidom.monarchLanguageDef"],"sources":["../../../../src/plugins/editor-monaco-language-apidom/language/apidom.js","../../../../src/plugins/editor-monaco-language-apidom/language/WorkerManager.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/Provider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DiagnosticsProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/HoverProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DocumentLinkProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/CompletionItemProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DocumentSemanticTokensProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/CodeActionsProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DocumentSymbolProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/providers/DefinitionProvider.js","../../../../src/plugins/editor-monaco-language-apidom/language/apidom-mode.js","../../../../src/plugins/editor-monaco-language-apidom/language/actions/dereference.js","../../../../src/plugins/editor-monaco-language-apidom/language/monaco.contribution.js","../../../../src/plugins/editor-monaco-language-apidom/after-load.js","../../../../src/plugins/editor-monaco-language-apidom/actions/get-json-pointer-position.js","../../../../src/plugins/editor-monaco-language-apidom/extensions/editor-monaco/wrap-components/EditorWrapper.jsx","../../../../src/plugins/editor-monaco-language-apidom/index.js"],"sourcesContent":["import * as monaco from 'monaco-editor';\n\nexport const languageId = 'apidom';\n\nexport const conf = {\n comments: {\n lineComment: '#',\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n\n onEnterRules: [\n {\n beforeText: /:\\s*$/,\n action: { indentAction: monaco.languages.IndentAction.Indent },\n },\n {\n beforeText: /-\\s+\\w*$/,\n action: { indentAction: monaco.languages.IndentAction.None, appendText: '- ' },\n },\n {\n beforeText: /-\\s*$/,\n action: { indentAction: monaco.languages.IndentAction.None, appendText: '- ' },\n },\n ],\n};\n\nexport const apiDOMMonarchLanguageDef = {\n // set defaultToken to invalid to see what you do not tokenize yet\n defaultToken: 'invalid',\n keywords: ['swagger', 'info', 'host', 'basePath', 'tags', 'schemes', 'paths', 'externalDocs'],\n typeKeywords: ['description', 'title', 'termsOfService'],\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n // the main tokenizer for our languages\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /[a-zA-Z_$][\\w$]*/,\n {\n cases: {\n '@keywords': { token: 'keyword' },\n '@typeKeywords': { token: 'type' },\n '@default': 'identifier',\n },\n },\n ],\n // whitespace\n { include: '@whitespace' },\n // strings for todos\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-terminated string\n [/\"/, 'string', '@string'],\n ],\n whitespace: [[/[ \\t\\r\\n]+/, '']],\n string: [\n [/[^\\\\\"]+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [/\"/, 'string', '@pop'],\n ],\n },\n};\n\nexport const monarchLanguageDef = {\n // set defaultToken to invalid to see what you do not tokenize yet\n defaultToken: 'invalid',\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n // the main tokenizer for our languages\n tokenizer: {\n root: [\n [/^#.*$/, 'plain.value'],\n\n // objects\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n\n // specification extensions\n [/^(x-[^:\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(x-[^:\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords\n [/^([a-zA-Z_$][\\w$]*)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^([a-zA-Z_$][\\w$]*)(:)$/, ['plain.keyword', 'plain.value']],\n\n // single-quoted keywords\n [/^(\\s*'[^']*')(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(\\s*'[^']*')(:)$/, ['plain.keyword', 'plain.value']],\n\n // double-quoted keywords\n [/^(\\s*\"[^\"]*\")(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(\\s*\"[^\"]*\")(:)$/, ['plain.keyword', 'plain.value']],\n\n // arrays\n [/^\\s*-\\s/, 'plain.value', '@arrays'],\n\n // nested keywords\n [/^\\s{1,}/, '', '@nestedKeywords'],\n\n // keywords catch-all\n [/^(\\s*[^\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/^(\\s*[^\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // whitespace\n { include: '@whitespace' },\n\n // strings for todos\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-terminated string\n [/\"/, 'plain.value.string', '@stringDoubleQuoted'],\n [/'/, 'plain.value.string', '@stringSingleQuoted'],\n ],\n\n values: [\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // numbers\n [/\\s*[0-9]+\\s*$/, 'plain.value.number'],\n [/\\s*[0-9]+(\\.[0-9]+)?\\s*$/, 'plain.value.number'],\n\n // booleans\n [/\\s*(true|false)\\s*$/, 'plain.value.boolean'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n // quoted values\n [/\\s*\"/, { token: 'plain.value.string', next: '@stringDoubleQuoted' }],\n [/\\s*'/, { token: 'plain.value.string', next: '@stringSingleQuoted' }],\n\n // unquoted values - catch-all\n [/[^\\n]+$/, 'plain.value'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n [/:/, 'plain.value', '@pop'],\n\n [/.+$/, '', '@pop'],\n [/.*$/, '', '@pop'],\n ],\n\n whitespace: [[/[ \\t\\r\\n]+/, '']],\n\n stringDoubleQuoted: [\n [/[^\\\\\"]+/, 'plain.value.string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [/\"/, 'plain.value.string', '@pop'],\n ],\n\n stringSingleQuoted: [\n [/[^\\\\']+/, 'plain.value.string'],\n [(/@escapes/, 'string.escape')],\n [/\\\\./, 'string.escape.invalid'],\n [/'/, 'plain.value.string', '@pop'],\n ],\n\n nestedKeywords: [\n // specification extensions\n [/(x-[^:\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(x-[^:\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords\n [/([a-zA-Z_$][\\w$]*)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/([a-zA-Z_$][\\w$]*)(:)$/, ['plain.keyword', 'plain.value']],\n\n // single-quoted keywords\n [/(\\s*'[^']*')(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*'[^']*')(:)$/, ['plain.keyword', 'plain.value']],\n\n // double-quoted keywords\n [/(\\s*\"[^\"]*\")(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*\"[^\"]*\")(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords catch-all\n [/(\\s*[^\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*[^\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n [/.+$/, 'plain.value', '@pop'],\n ],\n\n arrays: [\n // specification extensions\n [/(x-[^:\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(x-[^:\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords\n [/([a-zA-Z_$][\\w$]*)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/([a-zA-Z_$][\\w$]*)(:)$/, ['plain.keyword', 'plain.value']],\n\n // single-quoted keywords\n [/(\\s*'[^']*')(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*'[^']*')(:)$/, ['plain.keyword', 'plain.value']],\n\n // double-quoted keywords\n [/(\\s*\"[^\"]*\")(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*\"[^\"]*\")(:)$/, ['plain.keyword', 'plain.value']],\n\n // keywords catch-all\n [/(\\s*[^\\s]+)(: )/, ['plain.keyword', { token: 'plain.value', next: '@values' }]],\n [/(\\s*[^\\s]+)(:)$/, ['plain.keyword', 'plain.value']],\n\n [/^/, '', '@pop'],\n\n // numbers\n [/\\s*([0-9]+)\\s*$/, 'plain.value.number'],\n [/\\s*([0-9]+\\.[0-9]+)\\s*$/, 'plain.value.number'],\n\n // booleans\n [/\\s*(true|false)\\s*$/, 'plain.value.boolean'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n // unquoted values - catch-all\n [/([^\\n'\"]+)\\s*$/, 'plain.value'],\n\n // quoted values\n [/\\s*\"/, 'plain.value.string', '@stringDoubleQuoted'],\n [/\\s*'/, 'plain.value.string', '@stringSingleQuoted'],\n\n // pop state when getting to a new line\n [/^/, '', '@pop'],\n\n [/:/, 'plain.value', '@pop'],\n\n [/.+$/, '', '@pop'],\n [/.*$/, '', '@pop'],\n ],\n\n objectValues: [\n // objects\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n // arrays\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // numbers\n [\n /(\\s*)([0-9]+\\.[0-9]+)(\\s*,?\\s*)/,\n ['plain.value', 'plain.value.number', { token: 'plain.value', next: '@pop' }],\n ],\n [\n /(\\s*)([0-9]+)(\\s*,?\\s*)/,\n ['plain.value', 'plain.value.number', { token: 'plain.value', next: '@pop' }],\n ],\n\n // booleans\n [\n /(\\s*)(true|false)(\\s*,?\\s*)/,\n ['plain.value', 'plain.value.boolean', { token: 'plain.value', next: '@pop' }],\n ],\n\n // quoted values\n [/\\s*\"/, { token: 'plain.value.string', next: '@stringDoubleQuoted' }],\n [/\\s*'/, { token: 'plain.value.string', next: '@stringSingleQuoted' }],\n\n // unquoted values - catch-all\n [/[^,}\\n]+/, 'plain.value'],\n\n [/,/, 'plain.value', '@pop'],\n\n [/(?=})/, 'plain.value', '@pop'],\n ],\n\n objects: [\n // single-quoted keywords\n [\n /(\\s*'[^']*'\\s*)(:)(?=\\s*\\S)/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n [\n /(\\s*'[^']*')(\\s*:\\s*)$/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n\n // double-quoted keywords\n [\n /(\\s*\"[^\"]*\")(\\s*:)(?=\\s*\\S)/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n [\n /(\\s*\"[^\"]*\")(\\s*:\\s*)$/,\n ['plain.keyword', { token: 'plain.value', next: '@objectValues' }],\n ],\n\n // objects\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n // arrays\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // unquoted values - catch-all\n [/[^,}\\n]+/, 'plain.value'],\n\n [/,/, 'plain.value'],\n\n [/}/, 'plain.value', '@pop'],\n ],\n\n // JSON arrays\n jsonArrays: [\n [/\\s*{/, { token: 'plain.value', next: '@objects' }],\n [/\\s*\\[/, { token: 'plain.value', next: '@jsonArrays' }],\n\n // numbers\n [/(\\s*)([0-9]+)(\\s*,?\\s*)/, ['plain.value', 'plain.value.number', 'plain.value']],\n [/(\\s*)([0-9]+\\.[0-9]+)(\\s*,?\\s*)/, ['plain.value', 'plain.value.number', 'plain.value']],\n\n // booleans\n [/(\\s*)(true|false)(\\s*,?\\s*)/, ['plain.value', 'plain.value.boolean', 'plain.value']],\n\n // quoted values\n [/\\s*\"/, { token: 'plain.value.string', next: '@stringDoubleQuoted' }],\n [/\\s*'/, { token: 'plain.value.string', next: '@stringSingleQuoted' }],\n\n // unquoted values - catch-all\n [/[^,\\]\\n]+/, 'plain.value'],\n\n [/,/, 'plain.value'],\n\n [/\\]/, 'plain.value', '@pop'],\n ],\n },\n};\n","import * as monaco from 'monaco-editor';\n\nconst STOP_WHEN_IDLE_FOR = 2 * 60 * 1000; // 2min\n\nexport default class WorkerManager {\n #defaults = null;\n\n #worker = null;\n\n #client = null;\n\n #clientPromise = null;\n\n #idleCheckInterval;\n\n #lastUsedTime = 0;\n\n constructor(defaults) {\n this.#defaults = defaults;\n this.#idleCheckInterval = setInterval(() => this.#checkIfIdle(), 30 * 1000);\n }\n\n #stopWorker() {\n if (this.#worker) {\n this.#worker.dispose();\n this.#worker = null;\n }\n this.#client = null;\n this.#clientPromise = null;\n }\n\n #checkIfIdle() {\n if (!this.#worker) {\n return;\n }\n\n const timePassedSinceLastUsed = Date.now() - this.#lastUsedTime;\n if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n this.#stopWorker();\n }\n }\n\n async #initClient() {\n const languageId = this.#defaults.getLanguageId();\n const worker = await globalThis.MonacoEnvironment.getWorker('ApiDOMWorker', languageId);\n const createData = {\n ...this.#defaults.getWorkerOptions().data,\n languageId,\n apiDOMContext: this.#defaults.getWorkerOptions().apiDOMContext,\n customWorkerPath: this.#defaults.getWorkerOptions().customWorkerPath,\n };\n worker.postMessage(createData);\n\n this.#worker = monaco.editor.createWebWorker({\n worker,\n keepIdleModels: true,\n });\n\n this.#client = this.#worker.getProxy();\n return this.#client;\n }\n\n async #getClient() {\n this.#lastUsedTime = Date.now();\n this.#clientPromise ??= this.#initClient();\n return this.#clientPromise;\n }\n\n async getLanguageServiceWorker(...resources) {\n const client = await this.#getClient();\n\n if (this.#worker) {\n await this.#worker.withSyncedResources(resources);\n }\n\n return client;\n }\n\n dispose() {\n clearInterval(this.#idleCheckInterval);\n this.#stopWorker();\n }\n}\n","class Provider {\n #worker;\n\n #codeConverter;\n\n #protocolConverter;\n\n constructor(worker, codeConverter, protocolConverter) {\n this.#worker = worker;\n this.#codeConverter = codeConverter;\n this.#protocolConverter = protocolConverter;\n }\n\n get worker() {\n return this.#worker;\n }\n\n get codeConverter() {\n return this.#codeConverter;\n }\n\n get protocolConverter() {\n return this.#protocolConverter;\n }\n\n dispose() {\n this.#worker = null;\n this.#codeConverter = null;\n this.#protocolConverter = null;\n }\n}\n\nexport default Provider;\n","import * as monaco from 'monaco-editor';\nimport { languages as vscodeLanguages } from 'vscode';\n\nimport Provider from './Provider.js';\nimport * as apidom from '../apidom.js';\n\nclass DiagnosticsProvider extends Provider {\n #listener = [];\n\n #disposables = [];\n\n #diagnosticCollection = null;\n\n #system = null;\n\n constructor(worker, codeConverter, protocolConverter, getSystem) {\n super(worker, codeConverter, protocolConverter);\n this.#system = getSystem();\n\n const onModelAdded = (model) => {\n if (model.getLanguageId() !== apidom.languageId) {\n return;\n }\n\n let handle;\n const changeSubscription = model.onDidChangeContent(() => {\n /**\n * Here we are Debouncing the user changes, so everytime a new change is done,\n * we wait some time before validating, otherwise if the user is still typing, we cancel the change.\n */\n clearTimeout(handle);\n handle = setTimeout(() => this.#validate(model), 300);\n });\n\n this.#listener[model.uri.toString()] = {\n dispose() {\n changeSubscription.dispose();\n clearTimeout(handle);\n },\n };\n\n this.#validate(model);\n };\n\n const onModelRemoved = (model) => {\n this.#diagnosticCollection?.set(model.uri, []);\n const key = model.uri.toString();\n if (this.#listener[key]) {\n this.#listener[key].dispose();\n delete this.#listener[key];\n }\n };\n\n const onModelLanguageChanged = (model) => {\n const key = model.uri.toString();\n const hasChangedToApiDOM = model.getLanguageId() === apidom.languageId;\n const isModelSubscribed = !!this.#listener[key];\n\n if (!isModelSubscribed && hasChangedToApiDOM) {\n onModelAdded(model);\n } else if (isModelSubscribed && !hasChangedToApiDOM) {\n onModelRemoved(model);\n }\n };\n\n const onVscodeInitialized = () => {\n this.#diagnosticCollection = vscodeLanguages.createDiagnosticCollection(apidom.languageId);\n return this.#diagnosticCollection;\n };\n\n this.#disposables.push(monaco.editor.onDidCreateModel(onModelAdded));\n this.#disposables.push(monaco.editor.onDidChangeModelLanguage(onModelLanguageChanged));\n this.#disposables.push(monaco.editor.onWillDisposeModel(onModelRemoved));\n this.#system.monacoInitializationDeferred().promise.then(() => {\n this.#disposables.push(onVscodeInitialized());\n });\n }\n\n async #getDiagnostics(model) {\n try {\n const worker = await this.worker(model.uri);\n\n if (model.isDisposed()) {\n // model was disposed in the meantime\n return [];\n }\n\n return await worker.doValidation(model.uri.toString());\n } catch {\n return [];\n }\n }\n\n async #validate(model) {\n const diagnostics = await this.#getDiagnostics(model);\n\n if (this.protocolConverter && this.#diagnosticCollection) {\n this.#diagnosticCollection.set(\n model.uri,\n await this.protocolConverter.asDiagnostics(diagnostics)\n );\n }\n }\n\n dispose() {\n super.dispose();\n this.#disposables.forEach((disposable) => disposable?.dispose());\n this.#disposables = [];\n this.#system = null;\n }\n}\n\nexport default DiagnosticsProvider;\n","import Provider from './Provider.js';\n\nclass HoverProvider extends Provider {\n async #getHover(vscodeDocument, position) {\n try {\n const worker = await this.worker(vscodeDocument.uri);\n\n return await worker.doHover(\n vscodeDocument.uri.toString(),\n this.codeConverter.asPosition(position)\n );\n } catch {\n return undefined;\n }\n }\n\n async provideHover(vscodeDocument, position) {\n const hover = await this.#getHover(vscodeDocument, position);\n\n return this.protocolConverter.asHover(hover);\n }\n}\n\nexport default HoverProvider;\n","import Provider from './Provider.js';\n\nclass DocumentLinkProvider extends Provider {\n async #getLinks(vscodeDocument) {\n try {\n const worker = await this.worker(vscodeDocument.uri);\n\n return await worker.doLinks(vscodeDocument.uri.toString());\n } catch {\n return [];\n }\n }\n\n async provideDocumentLinks(vscodeDocument) {\n const links = await this.#getLinks(vscodeDocument);\n const linksWithNonEmptyRanges = links.filter(\n (link) => !this.protocolConverter.asRange(link.range).isEmpty\n );\n\n return this.protocolConverter.asDocumentLinks(linksWithNonEmptyRanges);\n }\n\n // eslint-disable-next-line class-methods-use-this\n async resolveDocumentLink(link) {\n return link;\n }\n}\n\nexport default DocumentLinkProvider;\n","import Provider from './Provider.js';\n\nclass CompletionItemProvider extends Provider {\n async #getCompletionList(vscodeDocument, position) {\n try {\n const worker = await this.worker(vscodeDocument.uri);\n\n return await worker.doComplete(\n vscodeDocument.uri.toString(),\n this.codeConverter.asPosition(position)\n );\n } catch {\n return undefined;\n }\n }\n\n async provideCompletionItems(vscodeDocument, position) {\n const completionList = await this.#getCompletionList(vscodeDocument, position);\n\n return this.protocolConverter.asCompletionResult(completionList);\n }\n}\n\nexport default CompletionItemProvider;\n","import Provider from './Provider.js';\n\nclass DocumentSemanticTokensProvider extends Provider {\n async #getSemanticTokens(vscodeDocument) {\n try {\n const worker = await this.worker(vscodeDocument.uri);\n\n return await worker.findSemanticTokens(vscodeDocument.uri.toString());\n } catch {\n return undefined;\n }\n }\n\n async provideDocumentSemanticTokens(vscodeDocument) {\n const semanticTokens = await this.#getSemanticTokens(vscodeDocument);\n\n return this.protocolConverter.asSemanticTokens(semanticTokens);\n }\n}\n\nexport default DocumentSemanticTokensProvider;\n","import Provider from './Provider.js';\n\nclass CodeActionsProvider extends Provider {\n async #getCodeActionList(vscodeDocument, diagnosticList) {\n try {\n const worker = await this.worker(vscodeDocument.uri);\n\n return await worker.doCodeActions(vscodeDocument.uri.toString(), diagnosticList);\n } catch {\n return undefined;\n }\n }\n\n #maybeConvert(codeActionList) {\n if (typeof codeActionList === 'undefined') {\n return codeActionList;\n }\n\n return this.protocolConverter.asCodeActionResult(codeActionList);\n }\n\n async provideCodeActions(vscodeDocument, range, ctx) {\n const diagnosticList = await this.codeConverter.asDiagnostics(ctx.diagnostics);\n const codeActionList = await this.#getCodeActionList(vscodeDocument, diagnosticList);\n\n return this.#maybeConvert(codeActionList);\n }\n}\n\nexport default CodeActionsProvider;\n","import Provider from './Provider.js';\n\nclass DocumentSymbolProvider extends Provider {\n async #getSymbolInformationList(vscodeDocument) {\n try {\n const worker = await this.worker(vscodeDocument.uri);\n\n return await worker.findDocumentSymbols(vscodeDocument.uri.toString());\n } catch {\n return undefined;\n }\n }\n\n async provideDocumentSymbols(vscodeDocument) {\n const symbolInformationList = await this.#getSymbolInformationList(vscodeDocument);\n\n return this.protocolConverter.asSymbolInformations(symbolInformationList);\n }\n}\n\nexport default DocumentSymbolProvider;\n","import Provider from './Provider.js';\n\nclass DefinitionProvider extends Provider {\n async #getLocation(vscodeDocument, position) {\n try {\n const worker = await this.worker(vscodeDocument.uri);\n\n return await worker.provideDefinition(\n vscodeDocument.uri.toString(),\n this.codeConverter.asPosition(position)\n );\n } catch {\n return undefined;\n }\n }\n\n async provideDefinition(vscodeDocument, position) {\n const location = await this.#getLocation(vscodeDocument, position);\n\n return this.protocolConverter.asDefinitionResult(location);\n }\n}\n\nexport default DefinitionProvider;\n","import { languages as vscodeLanguages } from 'vscode';\nimport { createConverter as createCodeConverter } from 'vscode-languageclient/lib/common/codeConverter.js';\nimport { createConverter as createProtocolConverter } from 'vscode-languageclient/lib/common/protocolConverter.js';\n\nimport WorkerManager from './WorkerManager.js';\nimport DiagnosticsProvider from './providers/DiagnosticsProvider.js';\nimport HoverProvider from './providers/HoverProvider.js';\nimport DocumentLinkProvider from './providers/DocumentLinkProvider.js';\nimport CompletionItemProvider from './providers/CompletionItemProvider.js';\nimport DocumentSemanticTokensProvider from './providers/DocumentSemanticTokensProvider.js';\nimport CodeActionsProvider from './providers/CodeActionsProvider.js';\nimport DocumentSymbolProvider from './providers/DocumentSymbolProvider.js';\nimport DefinitionProvider from './providers/DefinitionProvider.js';\n\nlet apidomWorker;\n\nconst disposeAll = (disposables) => {\n while (disposables.length) {\n disposables.pop().dispose();\n }\n};\n\nconst asDisposable = (disposables) => {\n return { dispose: () => disposeAll(disposables) };\n};\n\nexport const getWorker = () => {\n if (!apidomWorker) {\n throw new Error('ApiDOM not registered');\n }\n return apidomWorker;\n};\n\nconst registerProviders = ({\n languageId,\n providers,\n dependencies,\n opts: { useApiDOMSyntaxHighlighting } = {},\n}) => {\n disposeAll(providers);\n\n const { worker, codeConverter, protocolConverter, getSystem } = dependencies;\n const args = [worker, codeConverter, protocolConverter];\n const system = getSystem();\n\n /**\n * Customized providers needs to be registered before monaco editor is created.\n */\n providers.push(new DiagnosticsProvider(...args, getSystem));\n\n (async () => {\n await system.monacoInitializationDeferred().promise;\n\n providers.push(vscodeLanguages.registerHoverProvider(languageId, new HoverProvider(...args)));\n providers.push(\n vscodeLanguages.registerDocumentLinkProvider(languageId, new DocumentLinkProvider(...args))\n );\n providers.push(\n vscodeLanguages.registerCompletionItemProvider(\n languageId,\n new CompletionItemProvider(...args)\n )\n );\n providers.push(\n vscodeLanguages.registerCodeActionsProvider(languageId, new CodeActionsProvider(...args))\n );\n providers.push(\n vscodeLanguages.registerDocumentSymbolProvider(\n languageId,\n new DocumentSymbolProvider(...args)\n )\n );\n providers.push(\n vscodeLanguages.registerDefinitionProvider(languageId, new DefinitionProvider(...args))\n );\n\n if (useApiDOMSyntaxHighlighting) {\n try {\n const workerService = await worker();\n const semanticTokensLegend = await workerService.getSemanticTokensLegend();\n providers.push(\n vscodeLanguages.registerDocumentSemanticTokensProvider(\n languageId,\n new DocumentSemanticTokensProvider(...args),\n semanticTokensLegend\n )\n );\n } catch {\n // skip semantic tokens if worker is unavailable\n }\n }\n })();\n\n return providers;\n};\n\nexport function setupMode(defaults, { useApiDOMSyntaxHighlighting } = {}) {\n const disposables = [];\n const providers = [];\n const codeConverter = createCodeConverter();\n const protocolConverter = createProtocolConverter(undefined, true, true);\n\n // setup ApiDOM worker\n const client = new WorkerManager(defaults);\n const worker = async (...uris) => client.getLanguageServiceWorker(...uris);\n apidomWorker = worker;\n disposables.push({\n dispose() {\n apidomWorker = null;\n },\n });\n disposables.push(client);\n\n /**\n * Register ApiDOM providers.\n * We're already assuming here that extensions have\n * been successfully initialized.\n */\n disposables.push(\n asDisposable(\n registerProviders({\n languageId: defaults.getLanguageId(),\n providers,\n dependencies: {\n worker,\n codeConverter,\n protocolConverter,\n getSystem: defaults.getModeConfiguration().getSystem,\n },\n opts: { useApiDOMSyntaxHighlighting },\n })\n )\n );\n\n return asDisposable(disposables);\n}\n","import YAML from 'js-yaml';\n\nimport { getWorker } from '../apidom-mode.js';\n\nconst createDereferenceActionDescriptor = ({ getSystem }) => ({\n id: 'swagger.editor.apidomDereference',\n label: 'Resolve document',\n async run(editor) {\n const system = getSystem();\n const isContentJSON = system.editorSelectors.selectIsContentFormatJSON();\n const isContentYAML = system.editorSelectors.selectIsContentFormatYAML();\n\n if (!isContentJSON && !isContentYAML) return; // nothing to do here\n\n const model = editor.getModel();\n const worker = await getWorker()(model.uri).catch(() => undefined);\n\n if (!worker) return;\n\n const dereferenced = await worker.doDeref(model.uri.toString(), {\n baseURI: globalThis.document.baseURI || globalThis.location.href,\n format: isContentJSON ? 0 : isContentYAML ? 1 : 'unknown',\n });\n\n if (isContentYAML) {\n const nicelyFormattedYAML = YAML.dump(YAML.load(dereferenced));\n system.editorActions.setContent(nicelyFormattedYAML, system.EditorContentOrigin.Resolve);\n } else if (isContentJSON) {\n system.editorActions.setContent(dereferenced, system.EditorContentOrigin.Resolve);\n }\n },\n});\n\nexport default createDereferenceActionDescriptor;\n","import * as monaco from 'monaco-editor';\nimport { languages as vscodeLanguages } from 'vscode';\nimport { ModesRegistry } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/modesRegistry';\n\nimport * as apidom from './apidom.js';\nimport { setupMode } from './apidom-mode.js';\nimport createDereferenceActionDescriptor from './actions/dereference.js';\n\nexport { getWorker } from './apidom-mode.js';\n\nconst modeConfigurationDefault = {};\n\nconst workerOptionsDefault = {\n customWorkerPath: undefined,\n data: {},\n};\n\nclass LanguageServiceDefaultsImpl {\n #languageId;\n\n #workerOptions;\n\n #modeConfiguration;\n\n constructor(workerOptions, modeConfiguration) {\n this.setLanguageId(apidom.languageId);\n this.setWorkerOptions(workerOptions);\n this.setModeConfiguration(modeConfiguration);\n }\n\n getLanguageId() {\n return this.#languageId;\n }\n\n setLanguageId(languageId) {\n this.#languageId = languageId;\n }\n\n getWorkerOptions() {\n return this.#workerOptions;\n }\n\n setWorkerOptions(workerOptions) {\n this.#workerOptions = workerOptions || JSON.parse(JSON.stringify(workerOptionsDefault));\n }\n\n getModeConfiguration() {\n return this.#modeConfiguration;\n }\n\n setModeConfiguration(modeConfiguration) {\n this.#modeConfiguration =\n modeConfiguration || JSON.parse(JSON.stringify(modeConfigurationDefault));\n }\n}\n\nexport const apidomDefaults = new LanguageServiceDefaultsImpl(\n workerOptionsDefault,\n modeConfigurationDefault\n);\n\nexport const isLanguageRegistered = () => {\n const languages = ModesRegistry.getLanguages().map(({ id }) => id);\n return languages.includes(apidom.languageId);\n};\n\nconst lazyMonacoContribution = ({ createData, system, useApiDOMSyntaxHighlighting }) => {\n const disposables = [];\n\n // register apidom language\n disposables.push(\n /**\n * This code uses ModesRegistry API instead of monaco.languages API.\n * The reason is that monaco.languages API is using ModesRegistry under the hood\n * but doesn't return disposables produced by ModesRegistry. By using ModesRegistry\n * directly we're able to obtain disposables.\n */\n ModesRegistry.registerLanguage({\n id: apidom.languageId,\n })\n );\n\n system.monacoInitializationDeferred().promise.then(() => {\n disposables.push(vscodeLanguages.setLanguageConfiguration(apidom.languageId, apidom.conf));\n });\n\n if (useApiDOMSyntaxHighlighting) {\n disposables.push(\n monaco.languages.setMonarchTokensProvider(apidom.languageId, apidom.apiDOMMonarchLanguageDef)\n );\n } else {\n disposables.push(\n monaco.languages.setMonarchTokensProvider(apidom.languageId, apidom.monarchLanguageDef)\n );\n }\n\n // setup apidom mode\n disposables.push(\n monaco.editor.onDidCreateEditor(() => {\n const { customApiDOMWorkerPath: customWorkerPath, apiDOMContext, ...data } = createData;\n const defaults = new LanguageServiceDefaultsImpl(\n { apiDOMContext, customWorkerPath, data },\n { getSystem: system.getSystem }\n );\n\n disposables.push(setupMode(defaults, { useApiDOMSyntaxHighlighting }));\n })\n );\n\n // setup custom actions\n disposables.push(\n monaco.editor.onDidCreateEditor((editor) => {\n disposables.push(\n monaco.editor.onDidCreateModel(() => {\n const dereferenceActionDescriptor = createDereferenceActionDescriptor(system);\n if (!editor.getAction(dereferenceActionDescriptor.id)) {\n disposables.push(editor.addAction(dereferenceActionDescriptor));\n }\n })\n );\n })\n );\n\n // disposing of all allocated disposables\n disposables.push(\n monaco.editor.onDidCreateEditor((editor) => {\n disposables.push(\n editor.onDidDispose(() => {\n disposables.forEach((disposable) => disposable.dispose());\n disposables.length = 0;\n })\n );\n })\n );\n};\n\nexport default lazyMonacoContribution;\n","import lazyMonacoContribution, {\n isLanguageRegistered,\n apidomDefaults,\n} from './language/monaco.contribution.js';\n\nconst makeAfterLoad =\n ({ createData = {}, useApiDOMSyntaxHighlighting = false } = {}) =>\n (system) => {\n if (isLanguageRegistered()) return;\n\n lazyMonacoContribution({ createData, system, useApiDOMSyntaxHighlighting });\n system.editorActions.setLanguage(apidomDefaults.getLanguageId());\n };\n\nexport default makeAfterLoad;\n","export const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_STARTED =\n 'editor_monaco_language_apidom_get_json_pointer_position_started';\n\nexport const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_SUCCESS =\n 'editor_monaco_language_apidom_get_json_pointer_position_success';\n\nexport const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_FAILURE =\n 'editor_monaco_language_apidom_get_json_pointer_position_failure';\n\nexport const getJsonPointerPositionStarted = ({ jsonPointer, requestId }) => ({\n type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_STARTED,\n payload: jsonPointer,\n meta: { requestId },\n});\n\nexport const getJsonPointerPositionSuccess = ({ position, jsonPointer, requestId }) => ({\n type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_SUCCESS,\n payload: position,\n meta: { jsonPointer, requestId },\n});\n\nexport const getJsonPointerPositionFailure = ({ error, jsonPointer, requestId }) => ({\n type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_FAILURE,\n error: true,\n payload: error,\n meta: { jsonPointer, requestId },\n});\n\nexport const getJsonPointerPosition = (jsonPointer) => async (system) => {\n const { editorActions, editorSelectors, fn } = system;\n const requestId = fn.generateRequestId();\n\n editorActions.getJsonPointerPositionStarted({ jsonPointer, requestId });\n\n try {\n const editor = editorSelectors.selectEditor();\n const model = editor.getModel();\n const worker = await fn.getApiDOMWorker()(model.uri);\n const { line, character } = await worker.getJsonPointerPosition(\n model.uri.toString(),\n jsonPointer\n );\n const position = { lineNumber: line, column: character - 1 };\n\n return editorActions.getJsonPointerPositionSuccess({ position, jsonPointer, requestId });\n } catch (error) {\n return editorActions.getJsonPointerPositionFailure({ error, jsonPointer, requestId });\n }\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nconst EditorWrapper =\n ({ useApiDOMSyntaxHighlighting = false }) =>\n (Original) => {\n const Editor = ({ ...props }) => {\n return <Original {...props} bracketPairColorizationEnabled={useApiDOMSyntaxHighlighting} />;\n };\n\n return Editor;\n };\n\nexport default EditorWrapper;\n","import makeAfterLoad from './after-load.js';\nimport {\n getJsonPointerPosition,\n getJsonPointerPositionStarted,\n getJsonPointerPositionSuccess,\n getJsonPointerPositionFailure,\n} from './actions/get-json-pointer-position.js';\nimport { getWorker } from './language/monaco.contribution.js';\nimport { monarchLanguageDef, apiDOMMonarchLanguageDef, languageId } from './language/apidom.js';\nimport EditorWrapper from './extensions/editor-monaco/wrap-components/EditorWrapper.jsx';\n\nconst defaultOptions = {\n useApiDOMSyntaxHighlighting: false,\n};\n\nconst EditorMonacoLanguageApiDOMPlugin = (opts = defaultOptions) => {\n const isCalledWithGetSystem = typeof opts.getSystem === 'function';\n const options = isCalledWithGetSystem ? defaultOptions : opts;\n const plugin = () => ({\n afterLoad: makeAfterLoad(options),\n rootInjects: {\n monarchLanguageDef,\n apiDOMMonarchLanguageDef,\n apiDOMLanguageId: languageId,\n },\n wrapComponents: {\n Editor: EditorWrapper(options),\n },\n fn: {\n getApiDOMWorker: getWorker,\n },\n statePlugins: {\n editor: {\n actions: {\n getJsonPointerPosition,\n getJsonPointerPositionStarted,\n getJsonPointerPositionSuccess,\n getJsonPointerPositionFailure,\n },\n },\n },\n });\n\n return isCalledWithGetSystem ? plugin(opts) : plugin;\n};\n\nexport default EditorMonacoLanguageApiDOMPlugin;\n"],"mappings":"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"}
|