canyonapp 0.0.2 → 0.0.3
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/assets/{PlusOutlined-BKBEnSjP.js → PlusOutlined-sY_ekDgf.js} +2 -2
- package/dist/assets/{PlusOutlined-BKBEnSjP.js.map → PlusOutlined-sY_ekDgf.js.map} +1 -1
- package/dist/assets/{Primary-kRxOAMo2.js → Primary-BQrD5zmy.js} +2 -2
- package/dist/assets/{Primary-kRxOAMo2.js.map → Primary-BQrD5zmy.js.map} +1 -1
- package/dist/assets/{SearchOutlined-Gotzyolm.js → SearchOutlined-BbFgLxbH.js} +2 -2
- package/dist/assets/{SearchOutlined-Gotzyolm.js.map → SearchOutlined-BbFgLxbH.js.map} +1 -1
- package/dist/assets/{_cr_-bWnXW3i3.js → _cr_-C-b_iODB.js} +2 -2
- package/dist/assets/{_cr_-bWnXW3i3.js.map → _cr_-C-b_iODB.js.map} +1 -1
- package/dist/assets/{_repo_-wV83V_Ao.js → _repo_-67VixA7I.js} +3 -3
- package/dist/assets/{_repo_-wV83V_Ao.js.map → _repo_-67VixA7I.js.map} +1 -1
- package/dist/assets/{avatar-U3eONG6p.js → avatar-mH_YkdK6.js} +2 -2
- package/dist/assets/{avatar-U3eONG6p.js.map → avatar-mH_YkdK6.js.map} +1 -1
- package/dist/assets/{card-Dlwgxpi6.js → card-Bjmmjg43.js} +2 -2
- package/dist/assets/{card-Dlwgxpi6.js.map → card-Bjmmjg43.js.map} +1 -1
- package/dist/assets/{commits-BduDqkt0.js → commits-DYkmJ-uz.js} +2 -2
- package/dist/assets/{commits-BduDqkt0.js.map → commits-DYkmJ-uz.js.map} +1 -1
- package/dist/assets/{compare-Cw69owfd.js → compare-DoPa_nKN.js} +2 -2
- package/dist/assets/{compare-Cw69owfd.js.map → compare-DoPa_nKN.js.map} +1 -1
- package/dist/assets/{cssMode-pdWk0ODS.js → cssMode-CdL5sipT.js} +2 -2
- package/dist/assets/{cssMode-pdWk0ODS.js.map → cssMode-CdL5sipT.js.map} +1 -1
- package/dist/assets/{database-Do-CAKK7.js → database-DMgJWEa5.js} +2 -2
- package/dist/assets/{database-Do-CAKK7.js.map → database-DMgJWEa5.js.map} +1 -1
- package/dist/assets/{dropdown-BZRTBpNN.js → dropdown-CRMju3hp.js} +2 -2
- package/dist/assets/{dropdown-BZRTBpNN.js.map → dropdown-CRMju3hp.js.map} +1 -1
- package/dist/assets/{form-DIHIzAn0.js → form-agjas9M8.js} +2 -2
- package/dist/assets/{form-DIHIzAn0.js.map → form-agjas9M8.js.map} +1 -1
- package/dist/assets/{htmlMode-BJkP6ANp.js → htmlMode-DL-08zYm.js} +2 -2
- package/dist/assets/{htmlMode-BJkP6ANp.js.map → htmlMode-DL-08zYm.js.map} +1 -1
- package/dist/assets/{index-CmpgusTt.js → index-Buo2eS-Q.js} +6 -6
- package/dist/assets/{index-CmpgusTt.js.map → index-Buo2eS-Q.js.map} +1 -1
- package/dist/assets/{infra-q74EDR4f.js → infra-BiHKZ7O6.js} +2 -2
- package/dist/assets/{infra-q74EDR4f.js.map → infra-BiHKZ7O6.js.map} +1 -1
- package/dist/assets/{jsonMode-YEDssj9h.js → jsonMode-BgUWdwoZ.js} +2 -2
- package/dist/assets/{jsonMode-YEDssj9h.js.map → jsonMode-BgUWdwoZ.js.map} +1 -1
- package/dist/assets/{login--q88da0J.js → login-BIxW6k10.js} +2 -2
- package/dist/assets/{login--q88da0J.js.map → login-BIxW6k10.js.map} +1 -1
- package/dist/assets/{login-D0kwNFIZ.js → login-CeBa1WeH.js} +1 -1
- package/dist/assets/{new-DLzTRflL.js → new-urCghqqi.js} +2 -2
- package/dist/assets/{new-DLzTRflL.js.map → new-urCghqqi.js.map} +1 -1
- package/dist/assets/{popconfirm-hdbKlzM8.js → popconfirm-XB7pULHq.js} +2 -2
- package/dist/assets/{popconfirm-hdbKlzM8.js.map → popconfirm-XB7pULHq.js.map} +1 -1
- package/dist/assets/{projects-BQQMe3Sa.js → projects-DpKv9IY6.js} +2 -2
- package/dist/assets/{projects-BQQMe3Sa.js.map → projects-DpKv9IY6.js.map} +1 -1
- package/dist/assets/{request-DBcySI71.js → request-OsR-2ZDW.js} +2 -2
- package/dist/assets/{request-DBcySI71.js.map → request-OsR-2ZDW.js.map} +1 -1
- package/dist/assets/{settings-FOAFhNrB.js → settings-CTtlAnDi.js} +2 -2
- package/dist/assets/{settings-FOAFhNrB.js.map → settings-CTtlAnDi.js.map} +1 -1
- package/dist/assets/{settings-DRwbAfEP.js → settings-dgWrzHRY.js} +2 -2
- package/dist/assets/{settings-DRwbAfEP.js.map → settings-dgWrzHRY.js.map} +1 -1
- package/dist/assets/{skeleton-C7XdtHwK.js → skeleton-Cxf0Yj2M.js} +2 -2
- package/dist/assets/{skeleton-C7XdtHwK.js.map → skeleton-Cxf0Yj2M.js.map} +1 -1
- package/dist/assets/{tabs-QwRshmnh.js → tabs-DfQHMKH8.js} +2 -2
- package/dist/assets/{tabs-QwRshmnh.js.map → tabs-DfQHMKH8.js.map} +1 -1
- package/dist/assets/{tsMode-B8Haz2NH.js → tsMode-B2vhKML7.js} +2 -2
- package/dist/assets/{tsMode-B8Haz2NH.js.map → tsMode-B2vhKML7.js.map} +1 -1
- package/dist/index.html +6 -6
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonMode-YEDssj9h.js","names":["createScanner"],"sources":["../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/language/json/workerManager.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/impl/scanner.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/impl/string-intern.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/impl/parser.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/main.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/language/json/tokenization.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/language/json/jsonMode.js"],"sourcesContent":["import { createWebWorker } from '../../common/workers.js';\n\nconst STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;\nclass WorkerManager {\n constructor(defaults) {\n this._defaults = defaults;\n this._worker = null;\n this._client = null;\n this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);\n this._lastUsedTime = 0;\n this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n }\n _stopWorker() {\n if (this._worker) {\n this._worker.dispose();\n this._worker = null;\n }\n this._client = null;\n }\n dispose() {\n clearInterval(this._idleCheckInterval);\n this._configChangeListener.dispose();\n this._stopWorker();\n }\n _checkIfIdle() {\n if (!this._worker) {\n return;\n }\n let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;\n if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n this._stopWorker();\n }\n }\n _getClient() {\n this._lastUsedTime = Date.now();\n if (!this._client) {\n this._worker = createWebWorker({\n // module that exports the create() method and returns a `JSONWorker` instance\n moduleId: \"vs/language/json/jsonWorker\",\n createWorker: () => new Worker(new URL('json.worker.js', import.meta.url), { type: \"module\" }),\n label: this._defaults.languageId,\n // passed in to the create() method\n createData: {\n languageSettings: this._defaults.diagnosticsOptions,\n languageId: this._defaults.languageId,\n enableSchemaRequest: this._defaults.diagnosticsOptions.enableSchemaRequest\n }\n });\n this._client = this._worker.getProxy();\n }\n return this._client;\n }\n getLanguageServiceWorker(...resources) {\n let _client;\n return this._getClient().then((client) => {\n _client = client;\n }).then((_) => {\n if (this._worker) {\n return this._worker.withSyncedResources(resources);\n }\n }).then((_) => _client);\n }\n}\n\nexport { WorkerManager };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Creates a JSON scanner on the given text.\n * If ignoreTrivia is set, whitespaces or comments are ignored.\n */\nfunction createScanner(text, ignoreTrivia = false) {\n const len = text.length;\n let pos = 0, value = '', tokenOffset = 0, token = 16 /* SyntaxKind.Unknown */, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0 /* ScanError.None */;\n function scanHexDigits(count, exact) {\n let digits = 0;\n let value = 0;\n while (digits < count || false) {\n let ch = text.charCodeAt(pos);\n if (ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */) {\n value = value * 16 + ch - 48 /* CharacterCodes._0 */;\n }\n else if (ch >= 65 /* CharacterCodes.A */ && ch <= 70 /* CharacterCodes.F */) {\n value = value * 16 + ch - 65 /* CharacterCodes.A */ + 10;\n }\n else if (ch >= 97 /* CharacterCodes.a */ && ch <= 102 /* CharacterCodes.f */) {\n value = value * 16 + ch - 97 /* CharacterCodes.a */ + 10;\n }\n else {\n break;\n }\n pos++;\n digits++;\n }\n if (digits < count) {\n value = -1;\n }\n return value;\n }\n function setPosition(newPosition) {\n pos = newPosition;\n value = '';\n tokenOffset = 0;\n token = 16 /* SyntaxKind.Unknown */;\n scanError = 0 /* ScanError.None */;\n }\n function scanNumber() {\n let start = pos;\n if (text.charCodeAt(pos) === 48 /* CharacterCodes._0 */) {\n pos++;\n }\n else {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n }\n if (pos < text.length && text.charCodeAt(pos) === 46 /* CharacterCodes.dot */) {\n pos++;\n if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n }\n else {\n scanError = 3 /* ScanError.UnexpectedEndOfNumber */;\n return text.substring(start, pos);\n }\n }\n let end = pos;\n if (pos < text.length && (text.charCodeAt(pos) === 69 /* CharacterCodes.E */ || text.charCodeAt(pos) === 101 /* CharacterCodes.e */)) {\n pos++;\n if (pos < text.length && text.charCodeAt(pos) === 43 /* CharacterCodes.plus */ || text.charCodeAt(pos) === 45 /* CharacterCodes.minus */) {\n pos++;\n }\n if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n end = pos;\n }\n else {\n scanError = 3 /* ScanError.UnexpectedEndOfNumber */;\n }\n }\n return text.substring(start, end);\n }\n function scanString() {\n let result = '', start = pos;\n while (true) {\n if (pos >= len) {\n result += text.substring(start, pos);\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n const ch = text.charCodeAt(pos);\n if (ch === 34 /* CharacterCodes.doubleQuote */) {\n result += text.substring(start, pos);\n pos++;\n break;\n }\n if (ch === 92 /* CharacterCodes.backslash */) {\n result += text.substring(start, pos);\n pos++;\n if (pos >= len) {\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n const ch2 = text.charCodeAt(pos++);\n switch (ch2) {\n case 34 /* CharacterCodes.doubleQuote */:\n result += '\\\"';\n break;\n case 92 /* CharacterCodes.backslash */:\n result += '\\\\';\n break;\n case 47 /* CharacterCodes.slash */:\n result += '/';\n break;\n case 98 /* CharacterCodes.b */:\n result += '\\b';\n break;\n case 102 /* CharacterCodes.f */:\n result += '\\f';\n break;\n case 110 /* CharacterCodes.n */:\n result += '\\n';\n break;\n case 114 /* CharacterCodes.r */:\n result += '\\r';\n break;\n case 116 /* CharacterCodes.t */:\n result += '\\t';\n break;\n case 117 /* CharacterCodes.u */:\n const ch3 = scanHexDigits(4);\n if (ch3 >= 0) {\n result += String.fromCharCode(ch3);\n }\n else {\n scanError = 4 /* ScanError.InvalidUnicode */;\n }\n break;\n default:\n scanError = 5 /* ScanError.InvalidEscapeCharacter */;\n }\n start = pos;\n continue;\n }\n if (ch >= 0 && ch <= 0x1f) {\n if (isLineBreak(ch)) {\n result += text.substring(start, pos);\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n else {\n scanError = 6 /* ScanError.InvalidCharacter */;\n // mark as error but continue with string\n }\n }\n pos++;\n }\n return result;\n }\n function scanNext() {\n value = '';\n scanError = 0 /* ScanError.None */;\n tokenOffset = pos;\n lineStartOffset = lineNumber;\n prevTokenLineStartOffset = tokenLineStartOffset;\n if (pos >= len) {\n // at the end\n tokenOffset = len;\n return token = 17 /* SyntaxKind.EOF */;\n }\n let code = text.charCodeAt(pos);\n // trivia: whitespace\n if (isWhiteSpace(code)) {\n do {\n pos++;\n value += String.fromCharCode(code);\n code = text.charCodeAt(pos);\n } while (isWhiteSpace(code));\n return token = 15 /* SyntaxKind.Trivia */;\n }\n // trivia: newlines\n if (isLineBreak(code)) {\n pos++;\n value += String.fromCharCode(code);\n if (code === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) {\n pos++;\n value += '\\n';\n }\n lineNumber++;\n tokenLineStartOffset = pos;\n return token = 14 /* SyntaxKind.LineBreakTrivia */;\n }\n switch (code) {\n // tokens: []{}:,\n case 123 /* CharacterCodes.openBrace */:\n pos++;\n return token = 1 /* SyntaxKind.OpenBraceToken */;\n case 125 /* CharacterCodes.closeBrace */:\n pos++;\n return token = 2 /* SyntaxKind.CloseBraceToken */;\n case 91 /* CharacterCodes.openBracket */:\n pos++;\n return token = 3 /* SyntaxKind.OpenBracketToken */;\n case 93 /* CharacterCodes.closeBracket */:\n pos++;\n return token = 4 /* SyntaxKind.CloseBracketToken */;\n case 58 /* CharacterCodes.colon */:\n pos++;\n return token = 6 /* SyntaxKind.ColonToken */;\n case 44 /* CharacterCodes.comma */:\n pos++;\n return token = 5 /* SyntaxKind.CommaToken */;\n // strings\n case 34 /* CharacterCodes.doubleQuote */:\n pos++;\n value = scanString();\n return token = 10 /* SyntaxKind.StringLiteral */;\n // comments\n case 47 /* CharacterCodes.slash */:\n const start = pos - 1;\n // Single-line comment\n if (text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) {\n pos += 2;\n while (pos < len) {\n if (isLineBreak(text.charCodeAt(pos))) {\n break;\n }\n pos++;\n }\n value = text.substring(start, pos);\n return token = 12 /* SyntaxKind.LineCommentTrivia */;\n }\n // Multi-line comment\n if (text.charCodeAt(pos + 1) === 42 /* CharacterCodes.asterisk */) {\n pos += 2;\n const safeLength = len - 1; // For lookahead.\n let commentClosed = false;\n while (pos < safeLength) {\n const ch = text.charCodeAt(pos);\n if (ch === 42 /* CharacterCodes.asterisk */ && text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) {\n pos += 2;\n commentClosed = true;\n break;\n }\n pos++;\n if (isLineBreak(ch)) {\n if (ch === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) {\n pos++;\n }\n lineNumber++;\n tokenLineStartOffset = pos;\n }\n }\n if (!commentClosed) {\n pos++;\n scanError = 1 /* ScanError.UnexpectedEndOfComment */;\n }\n value = text.substring(start, pos);\n return token = 13 /* SyntaxKind.BlockCommentTrivia */;\n }\n // just a single slash\n value += String.fromCharCode(code);\n pos++;\n return token = 16 /* SyntaxKind.Unknown */;\n // numbers\n case 45 /* CharacterCodes.minus */:\n value += String.fromCharCode(code);\n pos++;\n if (pos === len || !isDigit(text.charCodeAt(pos))) {\n return token = 16 /* SyntaxKind.Unknown */;\n }\n // found a minus, followed by a number so\n // we fall through to proceed with scanning\n // numbers\n case 48 /* CharacterCodes._0 */:\n case 49 /* CharacterCodes._1 */:\n case 50 /* CharacterCodes._2 */:\n case 51 /* CharacterCodes._3 */:\n case 52 /* CharacterCodes._4 */:\n case 53 /* CharacterCodes._5 */:\n case 54 /* CharacterCodes._6 */:\n case 55 /* CharacterCodes._7 */:\n case 56 /* CharacterCodes._8 */:\n case 57 /* CharacterCodes._9 */:\n value += scanNumber();\n return token = 11 /* SyntaxKind.NumericLiteral */;\n // literals and unknown symbols\n default:\n // is a literal? Read the full word.\n while (pos < len && isUnknownContentCharacter(code)) {\n pos++;\n code = text.charCodeAt(pos);\n }\n if (tokenOffset !== pos) {\n value = text.substring(tokenOffset, pos);\n // keywords: true, false, null\n switch (value) {\n case 'true': return token = 8 /* SyntaxKind.TrueKeyword */;\n case 'false': return token = 9 /* SyntaxKind.FalseKeyword */;\n case 'null': return token = 7 /* SyntaxKind.NullKeyword */;\n }\n return token = 16 /* SyntaxKind.Unknown */;\n }\n // some\n value += String.fromCharCode(code);\n pos++;\n return token = 16 /* SyntaxKind.Unknown */;\n }\n }\n function isUnknownContentCharacter(code) {\n if (isWhiteSpace(code) || isLineBreak(code)) {\n return false;\n }\n switch (code) {\n case 125 /* CharacterCodes.closeBrace */:\n case 93 /* CharacterCodes.closeBracket */:\n case 123 /* CharacterCodes.openBrace */:\n case 91 /* CharacterCodes.openBracket */:\n case 34 /* CharacterCodes.doubleQuote */:\n case 58 /* CharacterCodes.colon */:\n case 44 /* CharacterCodes.comma */:\n case 47 /* CharacterCodes.slash */:\n return false;\n }\n return true;\n }\n function scanNextNonTrivia() {\n let result;\n do {\n result = scanNext();\n } while (result >= 12 /* SyntaxKind.LineCommentTrivia */ && result <= 15 /* SyntaxKind.Trivia */);\n return result;\n }\n return {\n setPosition: setPosition,\n getPosition: () => pos,\n scan: ignoreTrivia ? scanNextNonTrivia : scanNext,\n getToken: () => token,\n getTokenValue: () => value,\n getTokenOffset: () => tokenOffset,\n getTokenLength: () => pos - tokenOffset,\n getTokenStartLine: () => lineStartOffset,\n getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset,\n getTokenError: () => scanError,\n };\n}\nfunction isWhiteSpace(ch) {\n return ch === 32 /* CharacterCodes.space */ || ch === 9 /* CharacterCodes.tab */;\n}\nfunction isLineBreak(ch) {\n return ch === 10 /* CharacterCodes.lineFeed */ || ch === 13 /* CharacterCodes.carriageReturn */;\n}\nfunction isDigit(ch) {\n return ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */;\n}\nvar CharacterCodes;\n(function (CharacterCodes) {\n CharacterCodes[CharacterCodes[\"lineFeed\"] = 10] = \"lineFeed\";\n CharacterCodes[CharacterCodes[\"carriageReturn\"] = 13] = \"carriageReturn\";\n CharacterCodes[CharacterCodes[\"space\"] = 32] = \"space\";\n CharacterCodes[CharacterCodes[\"_0\"] = 48] = \"_0\";\n CharacterCodes[CharacterCodes[\"_1\"] = 49] = \"_1\";\n CharacterCodes[CharacterCodes[\"_2\"] = 50] = \"_2\";\n CharacterCodes[CharacterCodes[\"_3\"] = 51] = \"_3\";\n CharacterCodes[CharacterCodes[\"_4\"] = 52] = \"_4\";\n CharacterCodes[CharacterCodes[\"_5\"] = 53] = \"_5\";\n CharacterCodes[CharacterCodes[\"_6\"] = 54] = \"_6\";\n CharacterCodes[CharacterCodes[\"_7\"] = 55] = \"_7\";\n CharacterCodes[CharacterCodes[\"_8\"] = 56] = \"_8\";\n CharacterCodes[CharacterCodes[\"_9\"] = 57] = \"_9\";\n CharacterCodes[CharacterCodes[\"a\"] = 97] = \"a\";\n CharacterCodes[CharacterCodes[\"b\"] = 98] = \"b\";\n CharacterCodes[CharacterCodes[\"c\"] = 99] = \"c\";\n CharacterCodes[CharacterCodes[\"d\"] = 100] = \"d\";\n CharacterCodes[CharacterCodes[\"e\"] = 101] = \"e\";\n CharacterCodes[CharacterCodes[\"f\"] = 102] = \"f\";\n CharacterCodes[CharacterCodes[\"g\"] = 103] = \"g\";\n CharacterCodes[CharacterCodes[\"h\"] = 104] = \"h\";\n CharacterCodes[CharacterCodes[\"i\"] = 105] = \"i\";\n CharacterCodes[CharacterCodes[\"j\"] = 106] = \"j\";\n CharacterCodes[CharacterCodes[\"k\"] = 107] = \"k\";\n CharacterCodes[CharacterCodes[\"l\"] = 108] = \"l\";\n CharacterCodes[CharacterCodes[\"m\"] = 109] = \"m\";\n CharacterCodes[CharacterCodes[\"n\"] = 110] = \"n\";\n CharacterCodes[CharacterCodes[\"o\"] = 111] = \"o\";\n CharacterCodes[CharacterCodes[\"p\"] = 112] = \"p\";\n CharacterCodes[CharacterCodes[\"q\"] = 113] = \"q\";\n CharacterCodes[CharacterCodes[\"r\"] = 114] = \"r\";\n CharacterCodes[CharacterCodes[\"s\"] = 115] = \"s\";\n CharacterCodes[CharacterCodes[\"t\"] = 116] = \"t\";\n CharacterCodes[CharacterCodes[\"u\"] = 117] = \"u\";\n CharacterCodes[CharacterCodes[\"v\"] = 118] = \"v\";\n CharacterCodes[CharacterCodes[\"w\"] = 119] = \"w\";\n CharacterCodes[CharacterCodes[\"x\"] = 120] = \"x\";\n CharacterCodes[CharacterCodes[\"y\"] = 121] = \"y\";\n CharacterCodes[CharacterCodes[\"z\"] = 122] = \"z\";\n CharacterCodes[CharacterCodes[\"A\"] = 65] = \"A\";\n CharacterCodes[CharacterCodes[\"B\"] = 66] = \"B\";\n CharacterCodes[CharacterCodes[\"C\"] = 67] = \"C\";\n CharacterCodes[CharacterCodes[\"D\"] = 68] = \"D\";\n CharacterCodes[CharacterCodes[\"E\"] = 69] = \"E\";\n CharacterCodes[CharacterCodes[\"F\"] = 70] = \"F\";\n CharacterCodes[CharacterCodes[\"G\"] = 71] = \"G\";\n CharacterCodes[CharacterCodes[\"H\"] = 72] = \"H\";\n CharacterCodes[CharacterCodes[\"I\"] = 73] = \"I\";\n CharacterCodes[CharacterCodes[\"J\"] = 74] = \"J\";\n CharacterCodes[CharacterCodes[\"K\"] = 75] = \"K\";\n CharacterCodes[CharacterCodes[\"L\"] = 76] = \"L\";\n CharacterCodes[CharacterCodes[\"M\"] = 77] = \"M\";\n CharacterCodes[CharacterCodes[\"N\"] = 78] = \"N\";\n CharacterCodes[CharacterCodes[\"O\"] = 79] = \"O\";\n CharacterCodes[CharacterCodes[\"P\"] = 80] = \"P\";\n CharacterCodes[CharacterCodes[\"Q\"] = 81] = \"Q\";\n CharacterCodes[CharacterCodes[\"R\"] = 82] = \"R\";\n CharacterCodes[CharacterCodes[\"S\"] = 83] = \"S\";\n CharacterCodes[CharacterCodes[\"T\"] = 84] = \"T\";\n CharacterCodes[CharacterCodes[\"U\"] = 85] = \"U\";\n CharacterCodes[CharacterCodes[\"V\"] = 86] = \"V\";\n CharacterCodes[CharacterCodes[\"W\"] = 87] = \"W\";\n CharacterCodes[CharacterCodes[\"X\"] = 88] = \"X\";\n CharacterCodes[CharacterCodes[\"Y\"] = 89] = \"Y\";\n CharacterCodes[CharacterCodes[\"Z\"] = 90] = \"Z\";\n CharacterCodes[CharacterCodes[\"asterisk\"] = 42] = \"asterisk\";\n CharacterCodes[CharacterCodes[\"backslash\"] = 92] = \"backslash\";\n CharacterCodes[CharacterCodes[\"closeBrace\"] = 125] = \"closeBrace\";\n CharacterCodes[CharacterCodes[\"closeBracket\"] = 93] = \"closeBracket\";\n CharacterCodes[CharacterCodes[\"colon\"] = 58] = \"colon\";\n CharacterCodes[CharacterCodes[\"comma\"] = 44] = \"comma\";\n CharacterCodes[CharacterCodes[\"dot\"] = 46] = \"dot\";\n CharacterCodes[CharacterCodes[\"doubleQuote\"] = 34] = \"doubleQuote\";\n CharacterCodes[CharacterCodes[\"minus\"] = 45] = \"minus\";\n CharacterCodes[CharacterCodes[\"openBrace\"] = 123] = \"openBrace\";\n CharacterCodes[CharacterCodes[\"openBracket\"] = 91] = \"openBracket\";\n CharacterCodes[CharacterCodes[\"plus\"] = 43] = \"plus\";\n CharacterCodes[CharacterCodes[\"slash\"] = 47] = \"slash\";\n CharacterCodes[CharacterCodes[\"formFeed\"] = 12] = \"formFeed\";\n CharacterCodes[CharacterCodes[\"tab\"] = 9] = \"tab\";\n})(CharacterCodes || (CharacterCodes = {}));\n\nexport { createScanner };\n","const cachedSpaces = new Array(20).fill(0).map((_, index) => {\n return ' '.repeat(index);\n});\nconst maxCachedValues = 200;\nconst cachedBreakLinesWithSpaces = {\n ' ': {\n '\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\n' + ' '.repeat(index);\n }),\n '\\r': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r' + ' '.repeat(index);\n }),\n '\\r\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r\\n' + ' '.repeat(index);\n }),\n },\n '\\t': {\n '\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\n' + '\\t'.repeat(index);\n }),\n '\\r': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r' + '\\t'.repeat(index);\n }),\n '\\r\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r\\n' + '\\t'.repeat(index);\n }),\n }\n};\nconst supportedEols = ['\\n', '\\r', '\\r\\n'];\n\nexport { cachedBreakLinesWithSpaces, cachedSpaces, supportedEols };\n","import { createScanner } from './scanner.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar ParseOptions;\n(function (ParseOptions) {\n ParseOptions.DEFAULT = {\n allowTrailingComma: false\n };\n})(ParseOptions || (ParseOptions = {}));\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore always check the errors list to find out if the input was valid.\n */\nfunction parse(text, errors = [], options = ParseOptions.DEFAULT) {\n let currentProperty = null;\n let currentParent = [];\n const previousParents = [];\n function onValue(value) {\n if (Array.isArray(currentParent)) {\n currentParent.push(value);\n }\n else if (currentProperty !== null) {\n currentParent[currentProperty] = value;\n }\n }\n const visitor = {\n onObjectBegin: () => {\n const object = {};\n onValue(object);\n previousParents.push(currentParent);\n currentParent = object;\n currentProperty = null;\n },\n onObjectProperty: (name) => {\n currentProperty = name;\n },\n onObjectEnd: () => {\n currentParent = previousParents.pop();\n },\n onArrayBegin: () => {\n const array = [];\n onValue(array);\n previousParents.push(currentParent);\n currentParent = array;\n currentProperty = null;\n },\n onArrayEnd: () => {\n currentParent = previousParents.pop();\n },\n onLiteralValue: onValue,\n onError: (error, offset, length) => {\n errors.push({ error, offset, length });\n }\n };\n visit(text, visitor, options);\n return currentParent[0];\n}\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nfunction getNodePath(node) {\n if (!node.parent || !node.parent.children) {\n return [];\n }\n const path = getNodePath(node.parent);\n if (node.parent.type === 'property') {\n const key = node.parent.children[0].value;\n path.push(key);\n }\n else if (node.parent.type === 'array') {\n const index = node.parent.children.indexOf(node);\n if (index !== -1) {\n path.push(index);\n }\n }\n return path;\n}\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nfunction getNodeValue(node) {\n switch (node.type) {\n case 'array':\n return node.children.map(getNodeValue);\n case 'object':\n const obj = Object.create(null);\n for (let prop of node.children) {\n const valueNode = prop.children[1];\n if (valueNode) {\n obj[prop.children[0].value] = getNodeValue(valueNode);\n }\n }\n return obj;\n case 'null':\n case 'string':\n case 'number':\n case 'boolean':\n return node.value;\n default:\n return undefined;\n }\n}\nfunction contains(node, offset, includeRightBound = false) {\n return (offset >= node.offset && offset < (node.offset + node.length)) || includeRightBound && (offset === (node.offset + node.length));\n}\n/**\n * Finds the most inner node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nfunction findNodeAtOffset(node, offset, includeRightBound = false) {\n if (contains(node, offset, includeRightBound)) {\n const children = node.children;\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length && children[i].offset <= offset; i++) {\n const item = findNodeAtOffset(children[i], offset, includeRightBound);\n if (item) {\n return item;\n }\n }\n }\n return node;\n }\n return undefined;\n}\n/**\n * Parses the given text and invokes the visitor functions for each object, array and literal reached.\n */\nfunction visit(text, visitor, options = ParseOptions.DEFAULT) {\n const _scanner = createScanner(text, false);\n // Important: Only pass copies of this to visitor functions to prevent accidental modification, and\n // to not affect visitor functions which stored a reference to a previous JSONPath\n const _jsonPath = [];\n function toNoArgVisit(visitFunction) {\n return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toNoArgVisitWithPath(visitFunction) {\n return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n }\n function toOneArgVisit(visitFunction) {\n return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toOneArgVisitWithPath(visitFunction) {\n return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n }\n const onObjectBegin = toNoArgVisitWithPath(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toNoArgVisit(visitor.onObjectEnd), onArrayBegin = toNoArgVisitWithPath(visitor.onArrayBegin), onArrayEnd = toNoArgVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError);\n const disallowComments = options && options.disallowComments;\n const allowTrailingComma = options && options.allowTrailingComma;\n function scanNext() {\n while (true) {\n const token = _scanner.scan();\n switch (_scanner.getTokenError()) {\n case 4 /* ScanError.InvalidUnicode */:\n handleError(14 /* ParseErrorCode.InvalidUnicode */);\n break;\n case 5 /* ScanError.InvalidEscapeCharacter */:\n handleError(15 /* ParseErrorCode.InvalidEscapeCharacter */);\n break;\n case 3 /* ScanError.UnexpectedEndOfNumber */:\n handleError(13 /* ParseErrorCode.UnexpectedEndOfNumber */);\n break;\n case 1 /* ScanError.UnexpectedEndOfComment */:\n if (!disallowComments) {\n handleError(11 /* ParseErrorCode.UnexpectedEndOfComment */);\n }\n break;\n case 2 /* ScanError.UnexpectedEndOfString */:\n handleError(12 /* ParseErrorCode.UnexpectedEndOfString */);\n break;\n case 6 /* ScanError.InvalidCharacter */:\n handleError(16 /* ParseErrorCode.InvalidCharacter */);\n break;\n }\n switch (token) {\n case 12 /* SyntaxKind.LineCommentTrivia */:\n case 13 /* SyntaxKind.BlockCommentTrivia */:\n if (disallowComments) {\n handleError(10 /* ParseErrorCode.InvalidCommentToken */);\n }\n else {\n onComment();\n }\n break;\n case 16 /* SyntaxKind.Unknown */:\n handleError(1 /* ParseErrorCode.InvalidSymbol */);\n break;\n case 15 /* SyntaxKind.Trivia */:\n case 14 /* SyntaxKind.LineBreakTrivia */:\n break;\n default:\n return token;\n }\n }\n }\n function handleError(error, skipUntilAfter = [], skipUntil = []) {\n onError(error);\n if (skipUntilAfter.length + skipUntil.length > 0) {\n let token = _scanner.getToken();\n while (token !== 17 /* SyntaxKind.EOF */) {\n if (skipUntilAfter.indexOf(token) !== -1) {\n scanNext();\n break;\n }\n else if (skipUntil.indexOf(token) !== -1) {\n break;\n }\n token = scanNext();\n }\n }\n }\n function parseString(isValue) {\n const value = _scanner.getTokenValue();\n if (isValue) {\n onLiteralValue(value);\n }\n else {\n onObjectProperty(value);\n // add property name afterwards\n _jsonPath.push(value);\n }\n scanNext();\n return true;\n }\n function parseLiteral() {\n switch (_scanner.getToken()) {\n case 11 /* SyntaxKind.NumericLiteral */:\n const tokenValue = _scanner.getTokenValue();\n let value = Number(tokenValue);\n if (isNaN(value)) {\n handleError(2 /* ParseErrorCode.InvalidNumberFormat */);\n value = 0;\n }\n onLiteralValue(value);\n break;\n case 7 /* SyntaxKind.NullKeyword */:\n onLiteralValue(null);\n break;\n case 8 /* SyntaxKind.TrueKeyword */:\n onLiteralValue(true);\n break;\n case 9 /* SyntaxKind.FalseKeyword */:\n onLiteralValue(false);\n break;\n default:\n return false;\n }\n scanNext();\n return true;\n }\n function parseProperty() {\n if (_scanner.getToken() !== 10 /* SyntaxKind.StringLiteral */) {\n handleError(3 /* ParseErrorCode.PropertyNameExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n return false;\n }\n parseString(false);\n if (_scanner.getToken() === 6 /* SyntaxKind.ColonToken */) {\n onSeparator(':');\n scanNext(); // consume colon\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n }\n else {\n handleError(5 /* ParseErrorCode.ColonExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n _jsonPath.pop(); // remove processed property name\n return true;\n }\n function parseObject() {\n onObjectBegin();\n scanNext(); // consume open brace\n let needsComma = false;\n while (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 2 /* SyntaxKind.CloseBraceToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (!parseProperty()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onObjectEnd();\n if (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */) {\n handleError(7 /* ParseErrorCode.CloseBraceExpected */, [2 /* SyntaxKind.CloseBraceToken */], []);\n }\n else {\n scanNext(); // consume close brace\n }\n return true;\n }\n function parseArray() {\n onArrayBegin();\n scanNext(); // consume open bracket\n let isFirstElement = true;\n let needsComma = false;\n while (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 4 /* SyntaxKind.CloseBracketToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (isFirstElement) {\n _jsonPath.push(0);\n isFirstElement = false;\n }\n else {\n _jsonPath[_jsonPath.length - 1]++;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [4 /* SyntaxKind.CloseBracketToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onArrayEnd();\n if (!isFirstElement) {\n _jsonPath.pop(); // remove array index\n }\n if (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */) {\n handleError(8 /* ParseErrorCode.CloseBracketExpected */, [4 /* SyntaxKind.CloseBracketToken */], []);\n }\n else {\n scanNext(); // consume close bracket\n }\n return true;\n }\n function parseValue() {\n switch (_scanner.getToken()) {\n case 3 /* SyntaxKind.OpenBracketToken */:\n return parseArray();\n case 1 /* SyntaxKind.OpenBraceToken */:\n return parseObject();\n case 10 /* SyntaxKind.StringLiteral */:\n return parseString(true);\n default:\n return parseLiteral();\n }\n }\n scanNext();\n if (_scanner.getToken() === 17 /* SyntaxKind.EOF */) {\n if (options.allowEmptyContent) {\n return true;\n }\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (_scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n handleError(9 /* ParseErrorCode.EndOfFileExpected */, [], []);\n }\n return true;\n}\n\nexport { contains, findNodeAtOffset, getNodePath, getNodeValue, parse, visit };\n","import { format as format$1 } from './impl/format.js';\nimport { parse as parse$1, getNodePath as getNodePath$1, getNodeValue as getNodeValue$1, findNodeAtOffset as findNodeAtOffset$1 } from './impl/parser.js';\nimport { createScanner as createScanner$1 } from './impl/scanner.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Creates a JSON scanner on the given text.\n * If ignoreTrivia is set, whitespaces or comments are ignored.\n */\nconst createScanner = createScanner$1;\nvar ScanError;\n(function (ScanError) {\n ScanError[ScanError[\"None\"] = 0] = \"None\";\n ScanError[ScanError[\"UnexpectedEndOfComment\"] = 1] = \"UnexpectedEndOfComment\";\n ScanError[ScanError[\"UnexpectedEndOfString\"] = 2] = \"UnexpectedEndOfString\";\n ScanError[ScanError[\"UnexpectedEndOfNumber\"] = 3] = \"UnexpectedEndOfNumber\";\n ScanError[ScanError[\"InvalidUnicode\"] = 4] = \"InvalidUnicode\";\n ScanError[ScanError[\"InvalidEscapeCharacter\"] = 5] = \"InvalidEscapeCharacter\";\n ScanError[ScanError[\"InvalidCharacter\"] = 6] = \"InvalidCharacter\";\n})(ScanError || (ScanError = {}));\nvar SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"OpenBraceToken\"] = 1] = \"OpenBraceToken\";\n SyntaxKind[SyntaxKind[\"CloseBraceToken\"] = 2] = \"CloseBraceToken\";\n SyntaxKind[SyntaxKind[\"OpenBracketToken\"] = 3] = \"OpenBracketToken\";\n SyntaxKind[SyntaxKind[\"CloseBracketToken\"] = 4] = \"CloseBracketToken\";\n SyntaxKind[SyntaxKind[\"CommaToken\"] = 5] = \"CommaToken\";\n SyntaxKind[SyntaxKind[\"ColonToken\"] = 6] = \"ColonToken\";\n SyntaxKind[SyntaxKind[\"NullKeyword\"] = 7] = \"NullKeyword\";\n SyntaxKind[SyntaxKind[\"TrueKeyword\"] = 8] = \"TrueKeyword\";\n SyntaxKind[SyntaxKind[\"FalseKeyword\"] = 9] = \"FalseKeyword\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 10] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 11] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"LineCommentTrivia\"] = 12] = \"LineCommentTrivia\";\n SyntaxKind[SyntaxKind[\"BlockCommentTrivia\"] = 13] = \"BlockCommentTrivia\";\n SyntaxKind[SyntaxKind[\"LineBreakTrivia\"] = 14] = \"LineBreakTrivia\";\n SyntaxKind[SyntaxKind[\"Trivia\"] = 15] = \"Trivia\";\n SyntaxKind[SyntaxKind[\"Unknown\"] = 16] = \"Unknown\";\n SyntaxKind[SyntaxKind[\"EOF\"] = 17] = \"EOF\";\n})(SyntaxKind || (SyntaxKind = {}));\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore, always check the errors list to find out if the input was valid.\n */\nconst parse = parse$1;\n/**\n * Finds the innermost node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nconst findNodeAtOffset = findNodeAtOffset$1;\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nconst getNodePath = getNodePath$1;\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nconst getNodeValue = getNodeValue$1;\nvar ParseErrorCode;\n(function (ParseErrorCode) {\n ParseErrorCode[ParseErrorCode[\"InvalidSymbol\"] = 1] = \"InvalidSymbol\";\n ParseErrorCode[ParseErrorCode[\"InvalidNumberFormat\"] = 2] = \"InvalidNumberFormat\";\n ParseErrorCode[ParseErrorCode[\"PropertyNameExpected\"] = 3] = \"PropertyNameExpected\";\n ParseErrorCode[ParseErrorCode[\"ValueExpected\"] = 4] = \"ValueExpected\";\n ParseErrorCode[ParseErrorCode[\"ColonExpected\"] = 5] = \"ColonExpected\";\n ParseErrorCode[ParseErrorCode[\"CommaExpected\"] = 6] = \"CommaExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBraceExpected\"] = 7] = \"CloseBraceExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBracketExpected\"] = 8] = \"CloseBracketExpected\";\n ParseErrorCode[ParseErrorCode[\"EndOfFileExpected\"] = 9] = \"EndOfFileExpected\";\n ParseErrorCode[ParseErrorCode[\"InvalidCommentToken\"] = 10] = \"InvalidCommentToken\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfComment\"] = 11] = \"UnexpectedEndOfComment\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfString\"] = 12] = \"UnexpectedEndOfString\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfNumber\"] = 13] = \"UnexpectedEndOfNumber\";\n ParseErrorCode[ParseErrorCode[\"InvalidUnicode\"] = 14] = \"InvalidUnicode\";\n ParseErrorCode[ParseErrorCode[\"InvalidEscapeCharacter\"] = 15] = \"InvalidEscapeCharacter\";\n ParseErrorCode[ParseErrorCode[\"InvalidCharacter\"] = 16] = \"InvalidCharacter\";\n})(ParseErrorCode || (ParseErrorCode = {}));\n/**\n * Computes the edit operations needed to format a JSON document.\n *\n * @param documentText The input text\n * @param range The range to format or `undefined` to format the full content\n * @param options The formatting options\n * @returns The edit operations describing the formatting changes to the original document following the format described in {@linkcode EditResult}.\n * To apply the edit operations to the input, use {@linkcode applyEdits}.\n */\nfunction format(documentText, range, options) {\n return format$1(documentText, range, options);\n}\n\nexport { ParseErrorCode, ScanError, SyntaxKind, createScanner, findNodeAtOffset, format, getNodePath, getNodeValue, parse };\n","import { createScanner } from '../../../external/jsonc-parser/lib/esm/main.js';\n\nfunction createTokenizationSupport(supportComments) {\n return {\n getInitialState: () => new JSONState(null, null, false, null),\n tokenize: (line, state) => tokenize(supportComments, line, state)\n };\n}\nconst TOKEN_DELIM_OBJECT = \"delimiter.bracket.json\";\nconst TOKEN_DELIM_ARRAY = \"delimiter.array.json\";\nconst TOKEN_DELIM_COLON = \"delimiter.colon.json\";\nconst TOKEN_DELIM_COMMA = \"delimiter.comma.json\";\nconst TOKEN_VALUE_BOOLEAN = \"keyword.json\";\nconst TOKEN_VALUE_NULL = \"keyword.json\";\nconst TOKEN_VALUE_STRING = \"string.value.json\";\nconst TOKEN_VALUE_NUMBER = \"number.json\";\nconst TOKEN_PROPERTY_NAME = \"string.key.json\";\nconst TOKEN_COMMENT_BLOCK = \"comment.block.json\";\nconst TOKEN_COMMENT_LINE = \"comment.line.json\";\nclass ParentsStack {\n constructor(parent, type) {\n this.parent = parent;\n this.type = type;\n }\n static pop(parents) {\n if (parents) {\n return parents.parent;\n }\n return null;\n }\n static push(parents, type) {\n return new ParentsStack(parents, type);\n }\n static equals(a, b) {\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n while (a && b) {\n if (a === b) {\n return true;\n }\n if (a.type !== b.type) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n }\n return true;\n }\n}\nclass JSONState {\n constructor(state, scanError, lastWasColon, parents) {\n this._state = state;\n this.scanError = scanError;\n this.lastWasColon = lastWasColon;\n this.parents = parents;\n }\n clone() {\n return new JSONState(this._state, this.scanError, this.lastWasColon, this.parents);\n }\n equals(other) {\n if (other === this) {\n return true;\n }\n if (!other || !(other instanceof JSONState)) {\n return false;\n }\n return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents);\n }\n getStateData() {\n return this._state;\n }\n setStateData(state) {\n this._state = state;\n }\n}\nfunction tokenize(comments, line, state, offsetDelta = 0) {\n let numberOfInsertedCharacters = 0;\n let adjustOffset = false;\n switch (state.scanError) {\n case 2 /* UnexpectedEndOfString */:\n line = '\"' + line;\n numberOfInsertedCharacters = 1;\n break;\n case 1 /* UnexpectedEndOfComment */:\n line = \"/*\" + line;\n numberOfInsertedCharacters = 2;\n break;\n }\n const scanner = createScanner(line);\n let lastWasColon = state.lastWasColon;\n let parents = state.parents;\n const ret = {\n tokens: [],\n endState: state.clone()\n };\n while (true) {\n let offset = offsetDelta + scanner.getPosition();\n let type = \"\";\n const kind = scanner.scan();\n if (kind === 17 /* EOF */) {\n break;\n }\n if (offset === offsetDelta + scanner.getPosition()) {\n throw new Error(\n \"Scanner did not advance, next 3 characters are: \" + line.substr(scanner.getPosition(), 3)\n );\n }\n if (adjustOffset) {\n offset -= numberOfInsertedCharacters;\n }\n adjustOffset = numberOfInsertedCharacters > 0;\n switch (kind) {\n case 1 /* OpenBraceToken */:\n parents = ParentsStack.push(parents, 0 /* Object */);\n type = TOKEN_DELIM_OBJECT;\n lastWasColon = false;\n break;\n case 2 /* CloseBraceToken */:\n parents = ParentsStack.pop(parents);\n type = TOKEN_DELIM_OBJECT;\n lastWasColon = false;\n break;\n case 3 /* OpenBracketToken */:\n parents = ParentsStack.push(parents, 1 /* Array */);\n type = TOKEN_DELIM_ARRAY;\n lastWasColon = false;\n break;\n case 4 /* CloseBracketToken */:\n parents = ParentsStack.pop(parents);\n type = TOKEN_DELIM_ARRAY;\n lastWasColon = false;\n break;\n case 6 /* ColonToken */:\n type = TOKEN_DELIM_COLON;\n lastWasColon = true;\n break;\n case 5 /* CommaToken */:\n type = TOKEN_DELIM_COMMA;\n lastWasColon = false;\n break;\n case 8 /* TrueKeyword */:\n case 9 /* FalseKeyword */:\n type = TOKEN_VALUE_BOOLEAN;\n lastWasColon = false;\n break;\n case 7 /* NullKeyword */:\n type = TOKEN_VALUE_NULL;\n lastWasColon = false;\n break;\n case 10 /* StringLiteral */:\n const currentParent = parents ? parents.type : 0 /* Object */;\n const inArray = currentParent === 1 /* Array */;\n type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME;\n lastWasColon = false;\n break;\n case 11 /* NumericLiteral */:\n type = TOKEN_VALUE_NUMBER;\n lastWasColon = false;\n break;\n }\n {\n switch (kind) {\n case 12 /* LineCommentTrivia */:\n type = TOKEN_COMMENT_LINE;\n break;\n case 13 /* BlockCommentTrivia */:\n type = TOKEN_COMMENT_BLOCK;\n break;\n }\n }\n ret.endState = new JSONState(\n state.getStateData(),\n scanner.getTokenError(),\n lastWasColon,\n parents\n );\n ret.tokens.push({\n startIndex: offset,\n scopes: type\n });\n }\n return ret;\n}\n\nexport { TOKEN_COMMENT_BLOCK, TOKEN_COMMENT_LINE, TOKEN_DELIM_ARRAY, TOKEN_DELIM_COLON, TOKEN_DELIM_COMMA, TOKEN_DELIM_OBJECT, TOKEN_PROPERTY_NAME, TOKEN_VALUE_BOOLEAN, TOKEN_VALUE_NULL, TOKEN_VALUE_NUMBER, TOKEN_VALUE_STRING, createTokenizationSupport };\n","import { WorkerManager } from './workerManager.js';\nimport { DocumentFormattingEditProvider, DocumentRangeFormattingEditProvider, CompletionAdapter, HoverAdapter, DocumentSymbolAdapter, DocumentColorAdapter, FoldingRangeAdapter, SelectionRangeAdapter, DiagnosticsAdapter } from '../common/lspLanguageFeatures.js';\nexport { DefinitionAdapter, DocumentHighlightAdapter, DocumentLinkAdapter, ReferenceAdapter, RenameAdapter, fromPosition, fromRange, toRange, toTextEdit } from '../common/lspLanguageFeatures.js';\nimport { createTokenizationSupport } from './tokenization.js';\nimport '../../editor/browser/coreCommands.js';\nimport '../../editor/browser/widget/codeEditor/codeEditorWidget.js';\nimport '../../editor/browser/widget/diffEditor/diffEditor.contribution.js';\nimport '../../editor/contrib/anchorSelect/browser/anchorSelect.js';\nimport '../../editor/contrib/bracketMatching/browser/bracketMatching.js';\nimport '../../editor/contrib/caretOperations/browser/caretOperations.js';\nimport '../../editor/contrib/caretOperations/browser/transpose.js';\nimport '../../editor/contrib/clipboard/browser/clipboard.js';\nimport '../../editor/contrib/codeAction/browser/codeActionContributions.js';\nimport '../../editor/contrib/codelens/browser/codelensController.js';\nimport '../../editor/contrib/colorPicker/browser/colorPickerContribution.js';\nimport '../../editor/contrib/comment/browser/comment.js';\nimport '../../editor/contrib/contextmenu/browser/contextmenu.js';\nimport '../../editor/contrib/cursorUndo/browser/cursorUndo.js';\nimport '../../editor/contrib/dnd/browser/dnd.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport '../../editor/contrib/find/browser/findController.js';\nimport '../../editor/contrib/folding/browser/folding.js';\nimport '../../editor/contrib/fontZoom/browser/fontZoom.js';\nimport '../../editor/contrib/format/browser/formatActions.js';\nimport '../../editor/contrib/documentSymbols/browser/documentSymbols.js';\nimport '../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport '../../editor/contrib/inlineProgress/browser/inlineProgress.js';\nimport '../../editor/contrib/gotoSymbol/browser/goToCommands.js';\nimport '../../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport '../../editor/contrib/gotoError/browser/gotoError.js';\nimport '../../editor/contrib/gpu/browser/gpuActions.js';\nimport '../../editor/contrib/hover/browser/hoverContribution.js';\nimport '../../editor/contrib/indentation/browser/indentation.js';\nimport '../../editor/contrib/inlayHints/browser/inlayHintsContribution.js';\nimport '../../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport '../../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport '../../editor/contrib/lineSelection/browser/lineSelection.js';\nimport '../../editor/contrib/linesOperations/browser/linesOperations.js';\nimport '../../editor/contrib/linkedEditing/browser/linkedEditing.js';\nimport '../../editor/contrib/links/browser/links.js';\nimport '../../editor/contrib/longLinesHelper/browser/longLinesHelper.js';\nimport '../../editor/contrib/middleScroll/browser/middleScroll.contribution.js';\nimport '../../editor/contrib/multicursor/browser/multicursor.js';\nimport '../../editor/contrib/parameterHints/browser/parameterHints.js';\nimport '../../editor/contrib/placeholderText/browser/placeholderText.contribution.js';\nimport '../../editor/contrib/rename/browser/rename.js';\nimport '../../editor/contrib/sectionHeaders/browser/sectionHeaders.js';\nimport '../../editor/contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport '../../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport '../../editor/contrib/smartSelect/browser/smartSelect.js';\nimport '../../editor/contrib/snippet/browser/snippetController2.js';\nimport '../../editor/contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport '../../editor/contrib/suggest/browser/suggestController.js';\nimport '../../editor/contrib/suggest/browser/suggestInlineCompletions.js';\nimport '../../editor/contrib/tokenization/browser/tokenization.js';\nimport '../../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport '../../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport '../../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport '../../editor/contrib/wordHighlighter/browser/wordHighlighter.js';\nimport '../../editor/contrib/wordOperations/browser/wordOperations.js';\nimport '../../editor/contrib/wordPartOperations/browser/wordPartOperations.js';\nimport '../../editor/contrib/readOnlyMessage/browser/contribution.js';\nimport '../../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport '../../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport '../../editor/common/standaloneStrings.js';\nimport '../../base/browser/ui/codicons/codicon/codicon.css';\nimport '../../base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport '../../editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport '../../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport '../../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport { languages, editor } from '../../editor/editor.api2.js';\n\nlet worker;\nfunction getWorker() {\n return new Promise((resolve, reject) => {\n if (!worker) {\n return reject(\"JSON not registered!\");\n }\n resolve(worker);\n });\n}\nclass JSONDiagnosticsAdapter extends DiagnosticsAdapter {\n constructor(languageId, worker2, defaults) {\n super(languageId, worker2, defaults.onDidChange);\n this._disposables.push(\n editor.onWillDisposeModel((model) => {\n this._resetSchema(model.uri);\n })\n );\n this._disposables.push(\n editor.onDidChangeModelLanguage((event) => {\n this._resetSchema(event.model.uri);\n })\n );\n }\n _resetSchema(resource) {\n this._worker().then((worker2) => {\n worker2.resetSchema(resource.toString());\n });\n }\n}\nfunction setupMode(defaults) {\n const disposables = [];\n const providers = [];\n const client = new WorkerManager(defaults);\n disposables.push(client);\n worker = (...uris) => {\n return client.getLanguageServiceWorker(...uris);\n };\n function registerProviders() {\n const { languageId, modeConfiguration: modeConfiguration2 } = defaults;\n disposeAll(providers);\n if (modeConfiguration2.documentFormattingEdits) {\n providers.push(\n languages.registerDocumentFormattingEditProvider(\n languageId,\n new DocumentFormattingEditProvider(worker)\n )\n );\n }\n if (modeConfiguration2.documentRangeFormattingEdits) {\n providers.push(\n languages.registerDocumentRangeFormattingEditProvider(\n languageId,\n new DocumentRangeFormattingEditProvider(worker)\n )\n );\n }\n if (modeConfiguration2.completionItems) {\n providers.push(\n languages.registerCompletionItemProvider(\n languageId,\n new CompletionAdapter(worker, [\" \", \":\", '\"'])\n )\n );\n }\n if (modeConfiguration2.hovers) {\n providers.push(\n languages.registerHoverProvider(languageId, new HoverAdapter(worker))\n );\n }\n if (modeConfiguration2.documentSymbols) {\n providers.push(\n languages.registerDocumentSymbolProvider(\n languageId,\n new DocumentSymbolAdapter(worker)\n )\n );\n }\n if (modeConfiguration2.tokens) {\n providers.push(languages.setTokensProvider(languageId, createTokenizationSupport(true)));\n }\n if (modeConfiguration2.colors) {\n providers.push(\n languages.registerColorProvider(\n languageId,\n new DocumentColorAdapter(worker)\n )\n );\n }\n if (modeConfiguration2.foldingRanges) {\n providers.push(\n languages.registerFoldingRangeProvider(\n languageId,\n new FoldingRangeAdapter(worker)\n )\n );\n }\n if (modeConfiguration2.diagnostics) {\n providers.push(new JSONDiagnosticsAdapter(languageId, worker, defaults));\n }\n if (modeConfiguration2.selectionRanges) {\n providers.push(\n languages.registerSelectionRangeProvider(\n languageId,\n new SelectionRangeAdapter(worker)\n )\n );\n }\n }\n registerProviders();\n disposables.push(languages.setLanguageConfiguration(defaults.languageId, richEditConfiguration));\n let modeConfiguration = defaults.modeConfiguration;\n defaults.onDidChange((newDefaults) => {\n if (newDefaults.modeConfiguration !== modeConfiguration) {\n modeConfiguration = newDefaults.modeConfiguration;\n registerProviders();\n }\n });\n disposables.push(asDisposable(providers));\n return asDisposable(disposables);\n}\nfunction asDisposable(disposables) {\n return { dispose: () => disposeAll(disposables) };\n}\nfunction disposeAll(disposables) {\n while (disposables.length) {\n disposables.pop().dispose();\n }\n}\nconst richEditConfiguration = {\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\[\\{\\]\\}\\:\\\"\\,\\s]+)/g,\n comments: {\n lineComment: \"//\",\n blockComment: [\"/*\", \"*/\"]\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"]\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\", notIn: [\"string\"] },\n { open: \"[\", close: \"]\", notIn: [\"string\"] },\n { open: '\"', close: '\"', notIn: [\"string\"] }\n ]\n};\n\nexport { CompletionAdapter, DiagnosticsAdapter, DocumentColorAdapter, DocumentFormattingEditProvider, DocumentRangeFormattingEditProvider, DocumentSymbolAdapter, FoldingRangeAdapter, HoverAdapter, SelectionRangeAdapter, WorkerManager, getWorker, setupMode };\n"],"x_google_ignoreList":[0,1,2,3,4,5,6],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsonMode-BgUWdwoZ.js","names":["createScanner"],"sources":["../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/language/json/workerManager.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/impl/scanner.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/impl/string-intern.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/impl/parser.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/external/jsonc-parser/lib/esm/main.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/language/json/tokenization.js","../../node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/language/json/jsonMode.js"],"sourcesContent":["import { createWebWorker } from '../../common/workers.js';\n\nconst STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;\nclass WorkerManager {\n constructor(defaults) {\n this._defaults = defaults;\n this._worker = null;\n this._client = null;\n this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);\n this._lastUsedTime = 0;\n this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n }\n _stopWorker() {\n if (this._worker) {\n this._worker.dispose();\n this._worker = null;\n }\n this._client = null;\n }\n dispose() {\n clearInterval(this._idleCheckInterval);\n this._configChangeListener.dispose();\n this._stopWorker();\n }\n _checkIfIdle() {\n if (!this._worker) {\n return;\n }\n let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;\n if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n this._stopWorker();\n }\n }\n _getClient() {\n this._lastUsedTime = Date.now();\n if (!this._client) {\n this._worker = createWebWorker({\n // module that exports the create() method and returns a `JSONWorker` instance\n moduleId: \"vs/language/json/jsonWorker\",\n createWorker: () => new Worker(new URL('json.worker.js', import.meta.url), { type: \"module\" }),\n label: this._defaults.languageId,\n // passed in to the create() method\n createData: {\n languageSettings: this._defaults.diagnosticsOptions,\n languageId: this._defaults.languageId,\n enableSchemaRequest: this._defaults.diagnosticsOptions.enableSchemaRequest\n }\n });\n this._client = this._worker.getProxy();\n }\n return this._client;\n }\n getLanguageServiceWorker(...resources) {\n let _client;\n return this._getClient().then((client) => {\n _client = client;\n }).then((_) => {\n if (this._worker) {\n return this._worker.withSyncedResources(resources);\n }\n }).then((_) => _client);\n }\n}\n\nexport { WorkerManager };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Creates a JSON scanner on the given text.\n * If ignoreTrivia is set, whitespaces or comments are ignored.\n */\nfunction createScanner(text, ignoreTrivia = false) {\n const len = text.length;\n let pos = 0, value = '', tokenOffset = 0, token = 16 /* SyntaxKind.Unknown */, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0 /* ScanError.None */;\n function scanHexDigits(count, exact) {\n let digits = 0;\n let value = 0;\n while (digits < count || false) {\n let ch = text.charCodeAt(pos);\n if (ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */) {\n value = value * 16 + ch - 48 /* CharacterCodes._0 */;\n }\n else if (ch >= 65 /* CharacterCodes.A */ && ch <= 70 /* CharacterCodes.F */) {\n value = value * 16 + ch - 65 /* CharacterCodes.A */ + 10;\n }\n else if (ch >= 97 /* CharacterCodes.a */ && ch <= 102 /* CharacterCodes.f */) {\n value = value * 16 + ch - 97 /* CharacterCodes.a */ + 10;\n }\n else {\n break;\n }\n pos++;\n digits++;\n }\n if (digits < count) {\n value = -1;\n }\n return value;\n }\n function setPosition(newPosition) {\n pos = newPosition;\n value = '';\n tokenOffset = 0;\n token = 16 /* SyntaxKind.Unknown */;\n scanError = 0 /* ScanError.None */;\n }\n function scanNumber() {\n let start = pos;\n if (text.charCodeAt(pos) === 48 /* CharacterCodes._0 */) {\n pos++;\n }\n else {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n }\n if (pos < text.length && text.charCodeAt(pos) === 46 /* CharacterCodes.dot */) {\n pos++;\n if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n }\n else {\n scanError = 3 /* ScanError.UnexpectedEndOfNumber */;\n return text.substring(start, pos);\n }\n }\n let end = pos;\n if (pos < text.length && (text.charCodeAt(pos) === 69 /* CharacterCodes.E */ || text.charCodeAt(pos) === 101 /* CharacterCodes.e */)) {\n pos++;\n if (pos < text.length && text.charCodeAt(pos) === 43 /* CharacterCodes.plus */ || text.charCodeAt(pos) === 45 /* CharacterCodes.minus */) {\n pos++;\n }\n if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n pos++;\n }\n end = pos;\n }\n else {\n scanError = 3 /* ScanError.UnexpectedEndOfNumber */;\n }\n }\n return text.substring(start, end);\n }\n function scanString() {\n let result = '', start = pos;\n while (true) {\n if (pos >= len) {\n result += text.substring(start, pos);\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n const ch = text.charCodeAt(pos);\n if (ch === 34 /* CharacterCodes.doubleQuote */) {\n result += text.substring(start, pos);\n pos++;\n break;\n }\n if (ch === 92 /* CharacterCodes.backslash */) {\n result += text.substring(start, pos);\n pos++;\n if (pos >= len) {\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n const ch2 = text.charCodeAt(pos++);\n switch (ch2) {\n case 34 /* CharacterCodes.doubleQuote */:\n result += '\\\"';\n break;\n case 92 /* CharacterCodes.backslash */:\n result += '\\\\';\n break;\n case 47 /* CharacterCodes.slash */:\n result += '/';\n break;\n case 98 /* CharacterCodes.b */:\n result += '\\b';\n break;\n case 102 /* CharacterCodes.f */:\n result += '\\f';\n break;\n case 110 /* CharacterCodes.n */:\n result += '\\n';\n break;\n case 114 /* CharacterCodes.r */:\n result += '\\r';\n break;\n case 116 /* CharacterCodes.t */:\n result += '\\t';\n break;\n case 117 /* CharacterCodes.u */:\n const ch3 = scanHexDigits(4);\n if (ch3 >= 0) {\n result += String.fromCharCode(ch3);\n }\n else {\n scanError = 4 /* ScanError.InvalidUnicode */;\n }\n break;\n default:\n scanError = 5 /* ScanError.InvalidEscapeCharacter */;\n }\n start = pos;\n continue;\n }\n if (ch >= 0 && ch <= 0x1f) {\n if (isLineBreak(ch)) {\n result += text.substring(start, pos);\n scanError = 2 /* ScanError.UnexpectedEndOfString */;\n break;\n }\n else {\n scanError = 6 /* ScanError.InvalidCharacter */;\n // mark as error but continue with string\n }\n }\n pos++;\n }\n return result;\n }\n function scanNext() {\n value = '';\n scanError = 0 /* ScanError.None */;\n tokenOffset = pos;\n lineStartOffset = lineNumber;\n prevTokenLineStartOffset = tokenLineStartOffset;\n if (pos >= len) {\n // at the end\n tokenOffset = len;\n return token = 17 /* SyntaxKind.EOF */;\n }\n let code = text.charCodeAt(pos);\n // trivia: whitespace\n if (isWhiteSpace(code)) {\n do {\n pos++;\n value += String.fromCharCode(code);\n code = text.charCodeAt(pos);\n } while (isWhiteSpace(code));\n return token = 15 /* SyntaxKind.Trivia */;\n }\n // trivia: newlines\n if (isLineBreak(code)) {\n pos++;\n value += String.fromCharCode(code);\n if (code === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) {\n pos++;\n value += '\\n';\n }\n lineNumber++;\n tokenLineStartOffset = pos;\n return token = 14 /* SyntaxKind.LineBreakTrivia */;\n }\n switch (code) {\n // tokens: []{}:,\n case 123 /* CharacterCodes.openBrace */:\n pos++;\n return token = 1 /* SyntaxKind.OpenBraceToken */;\n case 125 /* CharacterCodes.closeBrace */:\n pos++;\n return token = 2 /* SyntaxKind.CloseBraceToken */;\n case 91 /* CharacterCodes.openBracket */:\n pos++;\n return token = 3 /* SyntaxKind.OpenBracketToken */;\n case 93 /* CharacterCodes.closeBracket */:\n pos++;\n return token = 4 /* SyntaxKind.CloseBracketToken */;\n case 58 /* CharacterCodes.colon */:\n pos++;\n return token = 6 /* SyntaxKind.ColonToken */;\n case 44 /* CharacterCodes.comma */:\n pos++;\n return token = 5 /* SyntaxKind.CommaToken */;\n // strings\n case 34 /* CharacterCodes.doubleQuote */:\n pos++;\n value = scanString();\n return token = 10 /* SyntaxKind.StringLiteral */;\n // comments\n case 47 /* CharacterCodes.slash */:\n const start = pos - 1;\n // Single-line comment\n if (text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) {\n pos += 2;\n while (pos < len) {\n if (isLineBreak(text.charCodeAt(pos))) {\n break;\n }\n pos++;\n }\n value = text.substring(start, pos);\n return token = 12 /* SyntaxKind.LineCommentTrivia */;\n }\n // Multi-line comment\n if (text.charCodeAt(pos + 1) === 42 /* CharacterCodes.asterisk */) {\n pos += 2;\n const safeLength = len - 1; // For lookahead.\n let commentClosed = false;\n while (pos < safeLength) {\n const ch = text.charCodeAt(pos);\n if (ch === 42 /* CharacterCodes.asterisk */ && text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) {\n pos += 2;\n commentClosed = true;\n break;\n }\n pos++;\n if (isLineBreak(ch)) {\n if (ch === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) {\n pos++;\n }\n lineNumber++;\n tokenLineStartOffset = pos;\n }\n }\n if (!commentClosed) {\n pos++;\n scanError = 1 /* ScanError.UnexpectedEndOfComment */;\n }\n value = text.substring(start, pos);\n return token = 13 /* SyntaxKind.BlockCommentTrivia */;\n }\n // just a single slash\n value += String.fromCharCode(code);\n pos++;\n return token = 16 /* SyntaxKind.Unknown */;\n // numbers\n case 45 /* CharacterCodes.minus */:\n value += String.fromCharCode(code);\n pos++;\n if (pos === len || !isDigit(text.charCodeAt(pos))) {\n return token = 16 /* SyntaxKind.Unknown */;\n }\n // found a minus, followed by a number so\n // we fall through to proceed with scanning\n // numbers\n case 48 /* CharacterCodes._0 */:\n case 49 /* CharacterCodes._1 */:\n case 50 /* CharacterCodes._2 */:\n case 51 /* CharacterCodes._3 */:\n case 52 /* CharacterCodes._4 */:\n case 53 /* CharacterCodes._5 */:\n case 54 /* CharacterCodes._6 */:\n case 55 /* CharacterCodes._7 */:\n case 56 /* CharacterCodes._8 */:\n case 57 /* CharacterCodes._9 */:\n value += scanNumber();\n return token = 11 /* SyntaxKind.NumericLiteral */;\n // literals and unknown symbols\n default:\n // is a literal? Read the full word.\n while (pos < len && isUnknownContentCharacter(code)) {\n pos++;\n code = text.charCodeAt(pos);\n }\n if (tokenOffset !== pos) {\n value = text.substring(tokenOffset, pos);\n // keywords: true, false, null\n switch (value) {\n case 'true': return token = 8 /* SyntaxKind.TrueKeyword */;\n case 'false': return token = 9 /* SyntaxKind.FalseKeyword */;\n case 'null': return token = 7 /* SyntaxKind.NullKeyword */;\n }\n return token = 16 /* SyntaxKind.Unknown */;\n }\n // some\n value += String.fromCharCode(code);\n pos++;\n return token = 16 /* SyntaxKind.Unknown */;\n }\n }\n function isUnknownContentCharacter(code) {\n if (isWhiteSpace(code) || isLineBreak(code)) {\n return false;\n }\n switch (code) {\n case 125 /* CharacterCodes.closeBrace */:\n case 93 /* CharacterCodes.closeBracket */:\n case 123 /* CharacterCodes.openBrace */:\n case 91 /* CharacterCodes.openBracket */:\n case 34 /* CharacterCodes.doubleQuote */:\n case 58 /* CharacterCodes.colon */:\n case 44 /* CharacterCodes.comma */:\n case 47 /* CharacterCodes.slash */:\n return false;\n }\n return true;\n }\n function scanNextNonTrivia() {\n let result;\n do {\n result = scanNext();\n } while (result >= 12 /* SyntaxKind.LineCommentTrivia */ && result <= 15 /* SyntaxKind.Trivia */);\n return result;\n }\n return {\n setPosition: setPosition,\n getPosition: () => pos,\n scan: ignoreTrivia ? scanNextNonTrivia : scanNext,\n getToken: () => token,\n getTokenValue: () => value,\n getTokenOffset: () => tokenOffset,\n getTokenLength: () => pos - tokenOffset,\n getTokenStartLine: () => lineStartOffset,\n getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset,\n getTokenError: () => scanError,\n };\n}\nfunction isWhiteSpace(ch) {\n return ch === 32 /* CharacterCodes.space */ || ch === 9 /* CharacterCodes.tab */;\n}\nfunction isLineBreak(ch) {\n return ch === 10 /* CharacterCodes.lineFeed */ || ch === 13 /* CharacterCodes.carriageReturn */;\n}\nfunction isDigit(ch) {\n return ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */;\n}\nvar CharacterCodes;\n(function (CharacterCodes) {\n CharacterCodes[CharacterCodes[\"lineFeed\"] = 10] = \"lineFeed\";\n CharacterCodes[CharacterCodes[\"carriageReturn\"] = 13] = \"carriageReturn\";\n CharacterCodes[CharacterCodes[\"space\"] = 32] = \"space\";\n CharacterCodes[CharacterCodes[\"_0\"] = 48] = \"_0\";\n CharacterCodes[CharacterCodes[\"_1\"] = 49] = \"_1\";\n CharacterCodes[CharacterCodes[\"_2\"] = 50] = \"_2\";\n CharacterCodes[CharacterCodes[\"_3\"] = 51] = \"_3\";\n CharacterCodes[CharacterCodes[\"_4\"] = 52] = \"_4\";\n CharacterCodes[CharacterCodes[\"_5\"] = 53] = \"_5\";\n CharacterCodes[CharacterCodes[\"_6\"] = 54] = \"_6\";\n CharacterCodes[CharacterCodes[\"_7\"] = 55] = \"_7\";\n CharacterCodes[CharacterCodes[\"_8\"] = 56] = \"_8\";\n CharacterCodes[CharacterCodes[\"_9\"] = 57] = \"_9\";\n CharacterCodes[CharacterCodes[\"a\"] = 97] = \"a\";\n CharacterCodes[CharacterCodes[\"b\"] = 98] = \"b\";\n CharacterCodes[CharacterCodes[\"c\"] = 99] = \"c\";\n CharacterCodes[CharacterCodes[\"d\"] = 100] = \"d\";\n CharacterCodes[CharacterCodes[\"e\"] = 101] = \"e\";\n CharacterCodes[CharacterCodes[\"f\"] = 102] = \"f\";\n CharacterCodes[CharacterCodes[\"g\"] = 103] = \"g\";\n CharacterCodes[CharacterCodes[\"h\"] = 104] = \"h\";\n CharacterCodes[CharacterCodes[\"i\"] = 105] = \"i\";\n CharacterCodes[CharacterCodes[\"j\"] = 106] = \"j\";\n CharacterCodes[CharacterCodes[\"k\"] = 107] = \"k\";\n CharacterCodes[CharacterCodes[\"l\"] = 108] = \"l\";\n CharacterCodes[CharacterCodes[\"m\"] = 109] = \"m\";\n CharacterCodes[CharacterCodes[\"n\"] = 110] = \"n\";\n CharacterCodes[CharacterCodes[\"o\"] = 111] = \"o\";\n CharacterCodes[CharacterCodes[\"p\"] = 112] = \"p\";\n CharacterCodes[CharacterCodes[\"q\"] = 113] = \"q\";\n CharacterCodes[CharacterCodes[\"r\"] = 114] = \"r\";\n CharacterCodes[CharacterCodes[\"s\"] = 115] = \"s\";\n CharacterCodes[CharacterCodes[\"t\"] = 116] = \"t\";\n CharacterCodes[CharacterCodes[\"u\"] = 117] = \"u\";\n CharacterCodes[CharacterCodes[\"v\"] = 118] = \"v\";\n CharacterCodes[CharacterCodes[\"w\"] = 119] = \"w\";\n CharacterCodes[CharacterCodes[\"x\"] = 120] = \"x\";\n CharacterCodes[CharacterCodes[\"y\"] = 121] = \"y\";\n CharacterCodes[CharacterCodes[\"z\"] = 122] = \"z\";\n CharacterCodes[CharacterCodes[\"A\"] = 65] = \"A\";\n CharacterCodes[CharacterCodes[\"B\"] = 66] = \"B\";\n CharacterCodes[CharacterCodes[\"C\"] = 67] = \"C\";\n CharacterCodes[CharacterCodes[\"D\"] = 68] = \"D\";\n CharacterCodes[CharacterCodes[\"E\"] = 69] = \"E\";\n CharacterCodes[CharacterCodes[\"F\"] = 70] = \"F\";\n CharacterCodes[CharacterCodes[\"G\"] = 71] = \"G\";\n CharacterCodes[CharacterCodes[\"H\"] = 72] = \"H\";\n CharacterCodes[CharacterCodes[\"I\"] = 73] = \"I\";\n CharacterCodes[CharacterCodes[\"J\"] = 74] = \"J\";\n CharacterCodes[CharacterCodes[\"K\"] = 75] = \"K\";\n CharacterCodes[CharacterCodes[\"L\"] = 76] = \"L\";\n CharacterCodes[CharacterCodes[\"M\"] = 77] = \"M\";\n CharacterCodes[CharacterCodes[\"N\"] = 78] = \"N\";\n CharacterCodes[CharacterCodes[\"O\"] = 79] = \"O\";\n CharacterCodes[CharacterCodes[\"P\"] = 80] = \"P\";\n CharacterCodes[CharacterCodes[\"Q\"] = 81] = \"Q\";\n CharacterCodes[CharacterCodes[\"R\"] = 82] = \"R\";\n CharacterCodes[CharacterCodes[\"S\"] = 83] = \"S\";\n CharacterCodes[CharacterCodes[\"T\"] = 84] = \"T\";\n CharacterCodes[CharacterCodes[\"U\"] = 85] = \"U\";\n CharacterCodes[CharacterCodes[\"V\"] = 86] = \"V\";\n CharacterCodes[CharacterCodes[\"W\"] = 87] = \"W\";\n CharacterCodes[CharacterCodes[\"X\"] = 88] = \"X\";\n CharacterCodes[CharacterCodes[\"Y\"] = 89] = \"Y\";\n CharacterCodes[CharacterCodes[\"Z\"] = 90] = \"Z\";\n CharacterCodes[CharacterCodes[\"asterisk\"] = 42] = \"asterisk\";\n CharacterCodes[CharacterCodes[\"backslash\"] = 92] = \"backslash\";\n CharacterCodes[CharacterCodes[\"closeBrace\"] = 125] = \"closeBrace\";\n CharacterCodes[CharacterCodes[\"closeBracket\"] = 93] = \"closeBracket\";\n CharacterCodes[CharacterCodes[\"colon\"] = 58] = \"colon\";\n CharacterCodes[CharacterCodes[\"comma\"] = 44] = \"comma\";\n CharacterCodes[CharacterCodes[\"dot\"] = 46] = \"dot\";\n CharacterCodes[CharacterCodes[\"doubleQuote\"] = 34] = \"doubleQuote\";\n CharacterCodes[CharacterCodes[\"minus\"] = 45] = \"minus\";\n CharacterCodes[CharacterCodes[\"openBrace\"] = 123] = \"openBrace\";\n CharacterCodes[CharacterCodes[\"openBracket\"] = 91] = \"openBracket\";\n CharacterCodes[CharacterCodes[\"plus\"] = 43] = \"plus\";\n CharacterCodes[CharacterCodes[\"slash\"] = 47] = \"slash\";\n CharacterCodes[CharacterCodes[\"formFeed\"] = 12] = \"formFeed\";\n CharacterCodes[CharacterCodes[\"tab\"] = 9] = \"tab\";\n})(CharacterCodes || (CharacterCodes = {}));\n\nexport { createScanner };\n","const cachedSpaces = new Array(20).fill(0).map((_, index) => {\n return ' '.repeat(index);\n});\nconst maxCachedValues = 200;\nconst cachedBreakLinesWithSpaces = {\n ' ': {\n '\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\n' + ' '.repeat(index);\n }),\n '\\r': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r' + ' '.repeat(index);\n }),\n '\\r\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r\\n' + ' '.repeat(index);\n }),\n },\n '\\t': {\n '\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\n' + '\\t'.repeat(index);\n }),\n '\\r': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r' + '\\t'.repeat(index);\n }),\n '\\r\\n': new Array(maxCachedValues).fill(0).map((_, index) => {\n return '\\r\\n' + '\\t'.repeat(index);\n }),\n }\n};\nconst supportedEols = ['\\n', '\\r', '\\r\\n'];\n\nexport { cachedBreakLinesWithSpaces, cachedSpaces, supportedEols };\n","import { createScanner } from './scanner.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar ParseOptions;\n(function (ParseOptions) {\n ParseOptions.DEFAULT = {\n allowTrailingComma: false\n };\n})(ParseOptions || (ParseOptions = {}));\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore always check the errors list to find out if the input was valid.\n */\nfunction parse(text, errors = [], options = ParseOptions.DEFAULT) {\n let currentProperty = null;\n let currentParent = [];\n const previousParents = [];\n function onValue(value) {\n if (Array.isArray(currentParent)) {\n currentParent.push(value);\n }\n else if (currentProperty !== null) {\n currentParent[currentProperty] = value;\n }\n }\n const visitor = {\n onObjectBegin: () => {\n const object = {};\n onValue(object);\n previousParents.push(currentParent);\n currentParent = object;\n currentProperty = null;\n },\n onObjectProperty: (name) => {\n currentProperty = name;\n },\n onObjectEnd: () => {\n currentParent = previousParents.pop();\n },\n onArrayBegin: () => {\n const array = [];\n onValue(array);\n previousParents.push(currentParent);\n currentParent = array;\n currentProperty = null;\n },\n onArrayEnd: () => {\n currentParent = previousParents.pop();\n },\n onLiteralValue: onValue,\n onError: (error, offset, length) => {\n errors.push({ error, offset, length });\n }\n };\n visit(text, visitor, options);\n return currentParent[0];\n}\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nfunction getNodePath(node) {\n if (!node.parent || !node.parent.children) {\n return [];\n }\n const path = getNodePath(node.parent);\n if (node.parent.type === 'property') {\n const key = node.parent.children[0].value;\n path.push(key);\n }\n else if (node.parent.type === 'array') {\n const index = node.parent.children.indexOf(node);\n if (index !== -1) {\n path.push(index);\n }\n }\n return path;\n}\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nfunction getNodeValue(node) {\n switch (node.type) {\n case 'array':\n return node.children.map(getNodeValue);\n case 'object':\n const obj = Object.create(null);\n for (let prop of node.children) {\n const valueNode = prop.children[1];\n if (valueNode) {\n obj[prop.children[0].value] = getNodeValue(valueNode);\n }\n }\n return obj;\n case 'null':\n case 'string':\n case 'number':\n case 'boolean':\n return node.value;\n default:\n return undefined;\n }\n}\nfunction contains(node, offset, includeRightBound = false) {\n return (offset >= node.offset && offset < (node.offset + node.length)) || includeRightBound && (offset === (node.offset + node.length));\n}\n/**\n * Finds the most inner node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nfunction findNodeAtOffset(node, offset, includeRightBound = false) {\n if (contains(node, offset, includeRightBound)) {\n const children = node.children;\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length && children[i].offset <= offset; i++) {\n const item = findNodeAtOffset(children[i], offset, includeRightBound);\n if (item) {\n return item;\n }\n }\n }\n return node;\n }\n return undefined;\n}\n/**\n * Parses the given text and invokes the visitor functions for each object, array and literal reached.\n */\nfunction visit(text, visitor, options = ParseOptions.DEFAULT) {\n const _scanner = createScanner(text, false);\n // Important: Only pass copies of this to visitor functions to prevent accidental modification, and\n // to not affect visitor functions which stored a reference to a previous JSONPath\n const _jsonPath = [];\n function toNoArgVisit(visitFunction) {\n return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toNoArgVisitWithPath(visitFunction) {\n return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n }\n function toOneArgVisit(visitFunction) {\n return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toOneArgVisitWithPath(visitFunction) {\n return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n }\n const onObjectBegin = toNoArgVisitWithPath(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toNoArgVisit(visitor.onObjectEnd), onArrayBegin = toNoArgVisitWithPath(visitor.onArrayBegin), onArrayEnd = toNoArgVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError);\n const disallowComments = options && options.disallowComments;\n const allowTrailingComma = options && options.allowTrailingComma;\n function scanNext() {\n while (true) {\n const token = _scanner.scan();\n switch (_scanner.getTokenError()) {\n case 4 /* ScanError.InvalidUnicode */:\n handleError(14 /* ParseErrorCode.InvalidUnicode */);\n break;\n case 5 /* ScanError.InvalidEscapeCharacter */:\n handleError(15 /* ParseErrorCode.InvalidEscapeCharacter */);\n break;\n case 3 /* ScanError.UnexpectedEndOfNumber */:\n handleError(13 /* ParseErrorCode.UnexpectedEndOfNumber */);\n break;\n case 1 /* ScanError.UnexpectedEndOfComment */:\n if (!disallowComments) {\n handleError(11 /* ParseErrorCode.UnexpectedEndOfComment */);\n }\n break;\n case 2 /* ScanError.UnexpectedEndOfString */:\n handleError(12 /* ParseErrorCode.UnexpectedEndOfString */);\n break;\n case 6 /* ScanError.InvalidCharacter */:\n handleError(16 /* ParseErrorCode.InvalidCharacter */);\n break;\n }\n switch (token) {\n case 12 /* SyntaxKind.LineCommentTrivia */:\n case 13 /* SyntaxKind.BlockCommentTrivia */:\n if (disallowComments) {\n handleError(10 /* ParseErrorCode.InvalidCommentToken */);\n }\n else {\n onComment();\n }\n break;\n case 16 /* SyntaxKind.Unknown */:\n handleError(1 /* ParseErrorCode.InvalidSymbol */);\n break;\n case 15 /* SyntaxKind.Trivia */:\n case 14 /* SyntaxKind.LineBreakTrivia */:\n break;\n default:\n return token;\n }\n }\n }\n function handleError(error, skipUntilAfter = [], skipUntil = []) {\n onError(error);\n if (skipUntilAfter.length + skipUntil.length > 0) {\n let token = _scanner.getToken();\n while (token !== 17 /* SyntaxKind.EOF */) {\n if (skipUntilAfter.indexOf(token) !== -1) {\n scanNext();\n break;\n }\n else if (skipUntil.indexOf(token) !== -1) {\n break;\n }\n token = scanNext();\n }\n }\n }\n function parseString(isValue) {\n const value = _scanner.getTokenValue();\n if (isValue) {\n onLiteralValue(value);\n }\n else {\n onObjectProperty(value);\n // add property name afterwards\n _jsonPath.push(value);\n }\n scanNext();\n return true;\n }\n function parseLiteral() {\n switch (_scanner.getToken()) {\n case 11 /* SyntaxKind.NumericLiteral */:\n const tokenValue = _scanner.getTokenValue();\n let value = Number(tokenValue);\n if (isNaN(value)) {\n handleError(2 /* ParseErrorCode.InvalidNumberFormat */);\n value = 0;\n }\n onLiteralValue(value);\n break;\n case 7 /* SyntaxKind.NullKeyword */:\n onLiteralValue(null);\n break;\n case 8 /* SyntaxKind.TrueKeyword */:\n onLiteralValue(true);\n break;\n case 9 /* SyntaxKind.FalseKeyword */:\n onLiteralValue(false);\n break;\n default:\n return false;\n }\n scanNext();\n return true;\n }\n function parseProperty() {\n if (_scanner.getToken() !== 10 /* SyntaxKind.StringLiteral */) {\n handleError(3 /* ParseErrorCode.PropertyNameExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n return false;\n }\n parseString(false);\n if (_scanner.getToken() === 6 /* SyntaxKind.ColonToken */) {\n onSeparator(':');\n scanNext(); // consume colon\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n }\n else {\n handleError(5 /* ParseErrorCode.ColonExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n _jsonPath.pop(); // remove processed property name\n return true;\n }\n function parseObject() {\n onObjectBegin();\n scanNext(); // consume open brace\n let needsComma = false;\n while (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 2 /* SyntaxKind.CloseBraceToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (!parseProperty()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onObjectEnd();\n if (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */) {\n handleError(7 /* ParseErrorCode.CloseBraceExpected */, [2 /* SyntaxKind.CloseBraceToken */], []);\n }\n else {\n scanNext(); // consume close brace\n }\n return true;\n }\n function parseArray() {\n onArrayBegin();\n scanNext(); // consume open bracket\n let isFirstElement = true;\n let needsComma = false;\n while (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 4 /* SyntaxKind.CloseBracketToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (isFirstElement) {\n _jsonPath.push(0);\n isFirstElement = false;\n }\n else {\n _jsonPath[_jsonPath.length - 1]++;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [4 /* SyntaxKind.CloseBracketToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onArrayEnd();\n if (!isFirstElement) {\n _jsonPath.pop(); // remove array index\n }\n if (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */) {\n handleError(8 /* ParseErrorCode.CloseBracketExpected */, [4 /* SyntaxKind.CloseBracketToken */], []);\n }\n else {\n scanNext(); // consume close bracket\n }\n return true;\n }\n function parseValue() {\n switch (_scanner.getToken()) {\n case 3 /* SyntaxKind.OpenBracketToken */:\n return parseArray();\n case 1 /* SyntaxKind.OpenBraceToken */:\n return parseObject();\n case 10 /* SyntaxKind.StringLiteral */:\n return parseString(true);\n default:\n return parseLiteral();\n }\n }\n scanNext();\n if (_scanner.getToken() === 17 /* SyntaxKind.EOF */) {\n if (options.allowEmptyContent) {\n return true;\n }\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (_scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n handleError(9 /* ParseErrorCode.EndOfFileExpected */, [], []);\n }\n return true;\n}\n\nexport { contains, findNodeAtOffset, getNodePath, getNodeValue, parse, visit };\n","import { format as format$1 } from './impl/format.js';\nimport { parse as parse$1, getNodePath as getNodePath$1, getNodeValue as getNodeValue$1, findNodeAtOffset as findNodeAtOffset$1 } from './impl/parser.js';\nimport { createScanner as createScanner$1 } from './impl/scanner.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Creates a JSON scanner on the given text.\n * If ignoreTrivia is set, whitespaces or comments are ignored.\n */\nconst createScanner = createScanner$1;\nvar ScanError;\n(function (ScanError) {\n ScanError[ScanError[\"None\"] = 0] = \"None\";\n ScanError[ScanError[\"UnexpectedEndOfComment\"] = 1] = \"UnexpectedEndOfComment\";\n ScanError[ScanError[\"UnexpectedEndOfString\"] = 2] = \"UnexpectedEndOfString\";\n ScanError[ScanError[\"UnexpectedEndOfNumber\"] = 3] = \"UnexpectedEndOfNumber\";\n ScanError[ScanError[\"InvalidUnicode\"] = 4] = \"InvalidUnicode\";\n ScanError[ScanError[\"InvalidEscapeCharacter\"] = 5] = \"InvalidEscapeCharacter\";\n ScanError[ScanError[\"InvalidCharacter\"] = 6] = \"InvalidCharacter\";\n})(ScanError || (ScanError = {}));\nvar SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"OpenBraceToken\"] = 1] = \"OpenBraceToken\";\n SyntaxKind[SyntaxKind[\"CloseBraceToken\"] = 2] = \"CloseBraceToken\";\n SyntaxKind[SyntaxKind[\"OpenBracketToken\"] = 3] = \"OpenBracketToken\";\n SyntaxKind[SyntaxKind[\"CloseBracketToken\"] = 4] = \"CloseBracketToken\";\n SyntaxKind[SyntaxKind[\"CommaToken\"] = 5] = \"CommaToken\";\n SyntaxKind[SyntaxKind[\"ColonToken\"] = 6] = \"ColonToken\";\n SyntaxKind[SyntaxKind[\"NullKeyword\"] = 7] = \"NullKeyword\";\n SyntaxKind[SyntaxKind[\"TrueKeyword\"] = 8] = \"TrueKeyword\";\n SyntaxKind[SyntaxKind[\"FalseKeyword\"] = 9] = \"FalseKeyword\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 10] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 11] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"LineCommentTrivia\"] = 12] = \"LineCommentTrivia\";\n SyntaxKind[SyntaxKind[\"BlockCommentTrivia\"] = 13] = \"BlockCommentTrivia\";\n SyntaxKind[SyntaxKind[\"LineBreakTrivia\"] = 14] = \"LineBreakTrivia\";\n SyntaxKind[SyntaxKind[\"Trivia\"] = 15] = \"Trivia\";\n SyntaxKind[SyntaxKind[\"Unknown\"] = 16] = \"Unknown\";\n SyntaxKind[SyntaxKind[\"EOF\"] = 17] = \"EOF\";\n})(SyntaxKind || (SyntaxKind = {}));\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore, always check the errors list to find out if the input was valid.\n */\nconst parse = parse$1;\n/**\n * Finds the innermost node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nconst findNodeAtOffset = findNodeAtOffset$1;\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nconst getNodePath = getNodePath$1;\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nconst getNodeValue = getNodeValue$1;\nvar ParseErrorCode;\n(function (ParseErrorCode) {\n ParseErrorCode[ParseErrorCode[\"InvalidSymbol\"] = 1] = \"InvalidSymbol\";\n ParseErrorCode[ParseErrorCode[\"InvalidNumberFormat\"] = 2] = \"InvalidNumberFormat\";\n ParseErrorCode[ParseErrorCode[\"PropertyNameExpected\"] = 3] = \"PropertyNameExpected\";\n ParseErrorCode[ParseErrorCode[\"ValueExpected\"] = 4] = \"ValueExpected\";\n ParseErrorCode[ParseErrorCode[\"ColonExpected\"] = 5] = \"ColonExpected\";\n ParseErrorCode[ParseErrorCode[\"CommaExpected\"] = 6] = \"CommaExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBraceExpected\"] = 7] = \"CloseBraceExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBracketExpected\"] = 8] = \"CloseBracketExpected\";\n ParseErrorCode[ParseErrorCode[\"EndOfFileExpected\"] = 9] = \"EndOfFileExpected\";\n ParseErrorCode[ParseErrorCode[\"InvalidCommentToken\"] = 10] = \"InvalidCommentToken\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfComment\"] = 11] = \"UnexpectedEndOfComment\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfString\"] = 12] = \"UnexpectedEndOfString\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfNumber\"] = 13] = \"UnexpectedEndOfNumber\";\n ParseErrorCode[ParseErrorCode[\"InvalidUnicode\"] = 14] = \"InvalidUnicode\";\n ParseErrorCode[ParseErrorCode[\"InvalidEscapeCharacter\"] = 15] = \"InvalidEscapeCharacter\";\n ParseErrorCode[ParseErrorCode[\"InvalidCharacter\"] = 16] = \"InvalidCharacter\";\n})(ParseErrorCode || (ParseErrorCode = {}));\n/**\n * Computes the edit operations needed to format a JSON document.\n *\n * @param documentText The input text\n * @param range The range to format or `undefined` to format the full content\n * @param options The formatting options\n * @returns The edit operations describing the formatting changes to the original document following the format described in {@linkcode EditResult}.\n * To apply the edit operations to the input, use {@linkcode applyEdits}.\n */\nfunction format(documentText, range, options) {\n return format$1(documentText, range, options);\n}\n\nexport { ParseErrorCode, ScanError, SyntaxKind, createScanner, findNodeAtOffset, format, getNodePath, getNodeValue, parse };\n","import { createScanner } from '../../../external/jsonc-parser/lib/esm/main.js';\n\nfunction createTokenizationSupport(supportComments) {\n return {\n getInitialState: () => new JSONState(null, null, false, null),\n tokenize: (line, state) => tokenize(supportComments, line, state)\n };\n}\nconst TOKEN_DELIM_OBJECT = \"delimiter.bracket.json\";\nconst TOKEN_DELIM_ARRAY = \"delimiter.array.json\";\nconst TOKEN_DELIM_COLON = \"delimiter.colon.json\";\nconst TOKEN_DELIM_COMMA = \"delimiter.comma.json\";\nconst TOKEN_VALUE_BOOLEAN = \"keyword.json\";\nconst TOKEN_VALUE_NULL = \"keyword.json\";\nconst TOKEN_VALUE_STRING = \"string.value.json\";\nconst TOKEN_VALUE_NUMBER = \"number.json\";\nconst TOKEN_PROPERTY_NAME = \"string.key.json\";\nconst TOKEN_COMMENT_BLOCK = \"comment.block.json\";\nconst TOKEN_COMMENT_LINE = \"comment.line.json\";\nclass ParentsStack {\n constructor(parent, type) {\n this.parent = parent;\n this.type = type;\n }\n static pop(parents) {\n if (parents) {\n return parents.parent;\n }\n return null;\n }\n static push(parents, type) {\n return new ParentsStack(parents, type);\n }\n static equals(a, b) {\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n while (a && b) {\n if (a === b) {\n return true;\n }\n if (a.type !== b.type) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n }\n return true;\n }\n}\nclass JSONState {\n constructor(state, scanError, lastWasColon, parents) {\n this._state = state;\n this.scanError = scanError;\n this.lastWasColon = lastWasColon;\n this.parents = parents;\n }\n clone() {\n return new JSONState(this._state, this.scanError, this.lastWasColon, this.parents);\n }\n equals(other) {\n if (other === this) {\n return true;\n }\n if (!other || !(other instanceof JSONState)) {\n return false;\n }\n return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents);\n }\n getStateData() {\n return this._state;\n }\n setStateData(state) {\n this._state = state;\n }\n}\nfunction tokenize(comments, line, state, offsetDelta = 0) {\n let numberOfInsertedCharacters = 0;\n let adjustOffset = false;\n switch (state.scanError) {\n case 2 /* UnexpectedEndOfString */:\n line = '\"' + line;\n numberOfInsertedCharacters = 1;\n break;\n case 1 /* UnexpectedEndOfComment */:\n line = \"/*\" + line;\n numberOfInsertedCharacters = 2;\n break;\n }\n const scanner = createScanner(line);\n let lastWasColon = state.lastWasColon;\n let parents = state.parents;\n const ret = {\n tokens: [],\n endState: state.clone()\n };\n while (true) {\n let offset = offsetDelta + scanner.getPosition();\n let type = \"\";\n const kind = scanner.scan();\n if (kind === 17 /* EOF */) {\n break;\n }\n if (offset === offsetDelta + scanner.getPosition()) {\n throw new Error(\n \"Scanner did not advance, next 3 characters are: \" + line.substr(scanner.getPosition(), 3)\n );\n }\n if (adjustOffset) {\n offset -= numberOfInsertedCharacters;\n }\n adjustOffset = numberOfInsertedCharacters > 0;\n switch (kind) {\n case 1 /* OpenBraceToken */:\n parents = ParentsStack.push(parents, 0 /* Object */);\n type = TOKEN_DELIM_OBJECT;\n lastWasColon = false;\n break;\n case 2 /* CloseBraceToken */:\n parents = ParentsStack.pop(parents);\n type = TOKEN_DELIM_OBJECT;\n lastWasColon = false;\n break;\n case 3 /* OpenBracketToken */:\n parents = ParentsStack.push(parents, 1 /* Array */);\n type = TOKEN_DELIM_ARRAY;\n lastWasColon = false;\n break;\n case 4 /* CloseBracketToken */:\n parents = ParentsStack.pop(parents);\n type = TOKEN_DELIM_ARRAY;\n lastWasColon = false;\n break;\n case 6 /* ColonToken */:\n type = TOKEN_DELIM_COLON;\n lastWasColon = true;\n break;\n case 5 /* CommaToken */:\n type = TOKEN_DELIM_COMMA;\n lastWasColon = false;\n break;\n case 8 /* TrueKeyword */:\n case 9 /* FalseKeyword */:\n type = TOKEN_VALUE_BOOLEAN;\n lastWasColon = false;\n break;\n case 7 /* NullKeyword */:\n type = TOKEN_VALUE_NULL;\n lastWasColon = false;\n break;\n case 10 /* StringLiteral */:\n const currentParent = parents ? parents.type : 0 /* Object */;\n const inArray = currentParent === 1 /* Array */;\n type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME;\n lastWasColon = false;\n break;\n case 11 /* NumericLiteral */:\n type = TOKEN_VALUE_NUMBER;\n lastWasColon = false;\n break;\n }\n {\n switch (kind) {\n case 12 /* LineCommentTrivia */:\n type = TOKEN_COMMENT_LINE;\n break;\n case 13 /* BlockCommentTrivia */:\n type = TOKEN_COMMENT_BLOCK;\n break;\n }\n }\n ret.endState = new JSONState(\n state.getStateData(),\n scanner.getTokenError(),\n lastWasColon,\n parents\n );\n ret.tokens.push({\n startIndex: offset,\n scopes: type\n });\n }\n return ret;\n}\n\nexport { TOKEN_COMMENT_BLOCK, TOKEN_COMMENT_LINE, TOKEN_DELIM_ARRAY, TOKEN_DELIM_COLON, TOKEN_DELIM_COMMA, TOKEN_DELIM_OBJECT, TOKEN_PROPERTY_NAME, TOKEN_VALUE_BOOLEAN, TOKEN_VALUE_NULL, TOKEN_VALUE_NUMBER, TOKEN_VALUE_STRING, createTokenizationSupport };\n","import { WorkerManager } from './workerManager.js';\nimport { DocumentFormattingEditProvider, DocumentRangeFormattingEditProvider, CompletionAdapter, HoverAdapter, DocumentSymbolAdapter, DocumentColorAdapter, FoldingRangeAdapter, SelectionRangeAdapter, DiagnosticsAdapter } from '../common/lspLanguageFeatures.js';\nexport { DefinitionAdapter, DocumentHighlightAdapter, DocumentLinkAdapter, ReferenceAdapter, RenameAdapter, fromPosition, fromRange, toRange, toTextEdit } from '../common/lspLanguageFeatures.js';\nimport { createTokenizationSupport } from './tokenization.js';\nimport '../../editor/browser/coreCommands.js';\nimport '../../editor/browser/widget/codeEditor/codeEditorWidget.js';\nimport '../../editor/browser/widget/diffEditor/diffEditor.contribution.js';\nimport '../../editor/contrib/anchorSelect/browser/anchorSelect.js';\nimport '../../editor/contrib/bracketMatching/browser/bracketMatching.js';\nimport '../../editor/contrib/caretOperations/browser/caretOperations.js';\nimport '../../editor/contrib/caretOperations/browser/transpose.js';\nimport '../../editor/contrib/clipboard/browser/clipboard.js';\nimport '../../editor/contrib/codeAction/browser/codeActionContributions.js';\nimport '../../editor/contrib/codelens/browser/codelensController.js';\nimport '../../editor/contrib/colorPicker/browser/colorPickerContribution.js';\nimport '../../editor/contrib/comment/browser/comment.js';\nimport '../../editor/contrib/contextmenu/browser/contextmenu.js';\nimport '../../editor/contrib/cursorUndo/browser/cursorUndo.js';\nimport '../../editor/contrib/dnd/browser/dnd.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport '../../editor/contrib/find/browser/findController.js';\nimport '../../editor/contrib/folding/browser/folding.js';\nimport '../../editor/contrib/fontZoom/browser/fontZoom.js';\nimport '../../editor/contrib/format/browser/formatActions.js';\nimport '../../editor/contrib/documentSymbols/browser/documentSymbols.js';\nimport '../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport '../../editor/contrib/inlineProgress/browser/inlineProgress.js';\nimport '../../editor/contrib/gotoSymbol/browser/goToCommands.js';\nimport '../../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport '../../editor/contrib/gotoError/browser/gotoError.js';\nimport '../../editor/contrib/gpu/browser/gpuActions.js';\nimport '../../editor/contrib/hover/browser/hoverContribution.js';\nimport '../../editor/contrib/indentation/browser/indentation.js';\nimport '../../editor/contrib/inlayHints/browser/inlayHintsContribution.js';\nimport '../../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport '../../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport '../../editor/contrib/lineSelection/browser/lineSelection.js';\nimport '../../editor/contrib/linesOperations/browser/linesOperations.js';\nimport '../../editor/contrib/linkedEditing/browser/linkedEditing.js';\nimport '../../editor/contrib/links/browser/links.js';\nimport '../../editor/contrib/longLinesHelper/browser/longLinesHelper.js';\nimport '../../editor/contrib/middleScroll/browser/middleScroll.contribution.js';\nimport '../../editor/contrib/multicursor/browser/multicursor.js';\nimport '../../editor/contrib/parameterHints/browser/parameterHints.js';\nimport '../../editor/contrib/placeholderText/browser/placeholderText.contribution.js';\nimport '../../editor/contrib/rename/browser/rename.js';\nimport '../../editor/contrib/sectionHeaders/browser/sectionHeaders.js';\nimport '../../editor/contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport '../../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport '../../editor/contrib/smartSelect/browser/smartSelect.js';\nimport '../../editor/contrib/snippet/browser/snippetController2.js';\nimport '../../editor/contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport '../../editor/contrib/suggest/browser/suggestController.js';\nimport '../../editor/contrib/suggest/browser/suggestInlineCompletions.js';\nimport '../../editor/contrib/tokenization/browser/tokenization.js';\nimport '../../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport '../../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport '../../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport '../../editor/contrib/wordHighlighter/browser/wordHighlighter.js';\nimport '../../editor/contrib/wordOperations/browser/wordOperations.js';\nimport '../../editor/contrib/wordPartOperations/browser/wordPartOperations.js';\nimport '../../editor/contrib/readOnlyMessage/browser/contribution.js';\nimport '../../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport '../../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport '../../editor/common/standaloneStrings.js';\nimport '../../base/browser/ui/codicons/codicon/codicon.css';\nimport '../../base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport '../../editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport '../../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport '../../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport { languages, editor } from '../../editor/editor.api2.js';\n\nlet worker;\nfunction getWorker() {\n return new Promise((resolve, reject) => {\n if (!worker) {\n return reject(\"JSON not registered!\");\n }\n resolve(worker);\n });\n}\nclass JSONDiagnosticsAdapter extends DiagnosticsAdapter {\n constructor(languageId, worker2, defaults) {\n super(languageId, worker2, defaults.onDidChange);\n this._disposables.push(\n editor.onWillDisposeModel((model) => {\n this._resetSchema(model.uri);\n })\n );\n this._disposables.push(\n editor.onDidChangeModelLanguage((event) => {\n this._resetSchema(event.model.uri);\n })\n );\n }\n _resetSchema(resource) {\n this._worker().then((worker2) => {\n worker2.resetSchema(resource.toString());\n });\n }\n}\nfunction setupMode(defaults) {\n const disposables = [];\n const providers = [];\n const client = new WorkerManager(defaults);\n disposables.push(client);\n worker = (...uris) => {\n return client.getLanguageServiceWorker(...uris);\n };\n function registerProviders() {\n const { languageId, modeConfiguration: modeConfiguration2 } = defaults;\n disposeAll(providers);\n if (modeConfiguration2.documentFormattingEdits) {\n providers.push(\n languages.registerDocumentFormattingEditProvider(\n languageId,\n new DocumentFormattingEditProvider(worker)\n )\n );\n }\n if (modeConfiguration2.documentRangeFormattingEdits) {\n providers.push(\n languages.registerDocumentRangeFormattingEditProvider(\n languageId,\n new DocumentRangeFormattingEditProvider(worker)\n )\n );\n }\n if (modeConfiguration2.completionItems) {\n providers.push(\n languages.registerCompletionItemProvider(\n languageId,\n new CompletionAdapter(worker, [\" \", \":\", '\"'])\n )\n );\n }\n if (modeConfiguration2.hovers) {\n providers.push(\n languages.registerHoverProvider(languageId, new HoverAdapter(worker))\n );\n }\n if (modeConfiguration2.documentSymbols) {\n providers.push(\n languages.registerDocumentSymbolProvider(\n languageId,\n new DocumentSymbolAdapter(worker)\n )\n );\n }\n if (modeConfiguration2.tokens) {\n providers.push(languages.setTokensProvider(languageId, createTokenizationSupport(true)));\n }\n if (modeConfiguration2.colors) {\n providers.push(\n languages.registerColorProvider(\n languageId,\n new DocumentColorAdapter(worker)\n )\n );\n }\n if (modeConfiguration2.foldingRanges) {\n providers.push(\n languages.registerFoldingRangeProvider(\n languageId,\n new FoldingRangeAdapter(worker)\n )\n );\n }\n if (modeConfiguration2.diagnostics) {\n providers.push(new JSONDiagnosticsAdapter(languageId, worker, defaults));\n }\n if (modeConfiguration2.selectionRanges) {\n providers.push(\n languages.registerSelectionRangeProvider(\n languageId,\n new SelectionRangeAdapter(worker)\n )\n );\n }\n }\n registerProviders();\n disposables.push(languages.setLanguageConfiguration(defaults.languageId, richEditConfiguration));\n let modeConfiguration = defaults.modeConfiguration;\n defaults.onDidChange((newDefaults) => {\n if (newDefaults.modeConfiguration !== modeConfiguration) {\n modeConfiguration = newDefaults.modeConfiguration;\n registerProviders();\n }\n });\n disposables.push(asDisposable(providers));\n return asDisposable(disposables);\n}\nfunction asDisposable(disposables) {\n return { dispose: () => disposeAll(disposables) };\n}\nfunction disposeAll(disposables) {\n while (disposables.length) {\n disposables.pop().dispose();\n }\n}\nconst richEditConfiguration = {\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\[\\{\\]\\}\\:\\\"\\,\\s]+)/g,\n comments: {\n lineComment: \"//\",\n blockComment: [\"/*\", \"*/\"]\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"]\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\", notIn: [\"string\"] },\n { open: \"[\", close: \"]\", notIn: [\"string\"] },\n { open: '\"', close: '\"', notIn: [\"string\"] }\n ]\n};\n\nexport { CompletionAdapter, DiagnosticsAdapter, DocumentColorAdapter, DocumentFormattingEditProvider, DocumentRangeFormattingEditProvider, DocumentSymbolAdapter, FoldingRangeAdapter, HoverAdapter, SelectionRangeAdapter, WorkerManager, getWorker, setupMode };\n"],"x_google_ignoreList":[0,1,2,3,4,5,6],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{l as e}from"./chunk-UVKPFVEO-B3Wzw28P.js";function t(){var e=`/home/runner/work/canyonapp/canyonapp/src/helpers/login.ts`,n=`a463288777fcaee618c0a9c5ea12d7c4c685bddc`,r=globalThis,i=`__coverage__`,a={path:`/home/runner/work/canyonapp/canyonapp/src/helpers/login.ts`,s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0],6:[0,0],7:[0,0],8:[0,0],9:[0,0]},_coverageSchema:`1a1c01bbd47fc00a2c39e90264f33305004495a9`,hash:`a463288777fcaee618c0a9c5ea12d7c4c685bddc`,buildHash:`
|
|
2
|
-
//# sourceMappingURL=login
|
|
1
|
+
import{l as e}from"./chunk-UVKPFVEO-B3Wzw28P.js";function t(){var e=`/home/runner/work/canyonapp/canyonapp/src/helpers/login.ts`,n=`a463288777fcaee618c0a9c5ea12d7c4c685bddc`,r=globalThis,i=`__coverage__`,a={path:`/home/runner/work/canyonapp/canyonapp/src/helpers/login.ts`,s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0],6:[0,0],7:[0,0],8:[0,0],9:[0,0]},_coverageSchema:`1a1c01bbd47fc00a2c39e90264f33305004495a9`,hash:`a463288777fcaee618c0a9c5ea12d7c4c685bddc`,buildHash:`b39dd5f35e71ea8988cc899677b2be97c1a97732`},o=r[i]||(r[i]={});(!o[e]||o[e].hash!==n)&&(o[e]=a);var s=o[e];return t=function(){return s},s}t();var n=(t().s[0]++,`auth_token`),r=(t().s[1]++,7),i=(t().s[2]++,`guest`);function a(){if(t().f[0]++,t().s[3]++,typeof document>`u`)return t().b[0][0]++,t().s[4]++,null;t().b[0][1]++;let e=(t().s[5]++,document.cookie.match(RegExp(`(^| )`+n+`=([^;]+)`)));return t().s[6]++,e?(t().b[1][0]++,decodeURIComponent(e[2])):(t().b[1][1]++,null)}function o(){if(t().f[1]++,t().s[7]++,typeof document>`u`)return t().b[2][0]++,t().s[8]++,null;t().b[2][1]++;let e=(t().s[9]++,a());if(t().s[10]++,e)t().b[3][1]++;else return t().b[3][0]++,t().s[11]++,s(i),t().s[12]++,i;return t().s[13]++,e}function s(e,r){if(t().f[2]++,t().s[14]++,typeof document>`u`){t().b[4][0]++,t().s[15]++;return}else t().b[4][1]++;let i=(t().s[16]++,(t().b[5][0]++,r?.maxAgeDays)??(t().b[5][1]++,7)),a=(t().s[17]++,i*24*60*60);t().s[18]++,document.cookie=`${n}=${encodeURIComponent(e)}; path=/; max-age=${a}; SameSite=Lax`}function c(){if(t().f[3]++,t().s[19]++,typeof document>`u`){t().b[6][0]++,t().s[20]++;return}else t().b[6][1]++;t().s[21]++,document.cookie=`${n}=; path=/; max-age=0`}t().s[22]++,(t().b[8][0]++,typeof document<`u`)&&(t().b[8][1]++,!a())?(t().b[7][0]++,t().s[23]++,s(i)):t().b[7][1]++;function l(){return t().f[4]++,t().s[24]++,!!o()}function u(e){return t().f[5]++,t().s[25]++,typeof window<`u`?(t().b[9][0]++,window.location.href):(t().b[9][1]++,`#`)}async function d(e){return t().f[6]++,t().s[26]++,{token:i,user:{name:i}}}function f(){return t().f[7]++,t().s[27]++,e(),t().s[28]++,{status:`authenticated`,goLogin:()=>{t().f[8]++}}}export{o as a,f as c,u as i,d as l,r as n,l as o,c as r,s,n as t};
|
|
2
|
+
//# sourceMappingURL=login-BIxW6k10.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login
|
|
1
|
+
{"version":3,"file":"login-BIxW6k10.js","names":[],"sources":["../../src/helpers/login.ts"],"sourcesContent":["import { useSearchParams } from \"react-router-dom\";\n\n// ============ 默认:游客模式(无真实鉴权,自动脚本会替换此文件实现真实逻辑)============\n\nexport const AUTH_TOKEN_COOKIE_NAME = \"auth_token\";\nexport const AUTH_TOKEN_MAX_AGE_DAYS = 7;\n\nconst GUEST_TOKEN = \"guest\";\n\nfunction readTokenFromCookie(): string | null {\n if (typeof document === \"undefined\") return null;\n const match = document.cookie.match(new RegExp(\"(^| )\" + AUTH_TOKEN_COOKIE_NAME + \"=([^;]+)\"));\n return match ? decodeURIComponent(match[2]) : null;\n}\n\nexport function getToken(): string | null {\n if (typeof document === \"undefined\") return null;\n const token = readTokenFromCookie();\n if (!token) {\n setToken(GUEST_TOKEN);\n return GUEST_TOKEN;\n }\n return token;\n}\n\nexport function setToken(token: string, options?: { maxAgeDays?: number }): void {\n if (typeof document === \"undefined\") return;\n const days = options?.maxAgeDays ?? AUTH_TOKEN_MAX_AGE_DAYS;\n const maxAge = days * 24 * 60 * 60;\n document.cookie = `${AUTH_TOKEN_COOKIE_NAME}=${encodeURIComponent(token)}; path=/; max-age=${maxAge}; SameSite=Lax`;\n}\n\nexport function clearToken(): void {\n if (typeof document === \"undefined\") return;\n document.cookie = `${AUTH_TOKEN_COOKIE_NAME}=; path=/; max-age=0`;\n}\n\n// 每次进入(模块加载 / 页面加载)时检测,无 cookie 则写入游客\nif (typeof document !== \"undefined\" && !readTokenFromCookie()) {\n setToken(GUEST_TOKEN);\n}\n\nexport function isAuthenticated(): boolean {\n return !!getToken();\n}\n\nexport function getLoginUrl(_returnUrl?: string): string {\n return typeof window !== \"undefined\" ? window.location.href : \"#\";\n}\n\nexport interface ValidateTicketResult {\n token: string;\n user?: { name?: string; email?: string };\n}\n\nexport async function validateTicket(_ticket: string): Promise<ValidateTicketResult | null> {\n return { token: GUEST_TOKEN, user: { name: GUEST_TOKEN } };\n}\n\nexport type AuthGateStatus = \"authenticated\" | \"validating\" | \"guest\";\n\nexport function useAuthGate(): {\n status: AuthGateStatus;\n goLogin: () => void;\n} {\n useSearchParams();\n return {\n status: \"authenticated\",\n goLogin: () => {},\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./login
|
|
1
|
+
import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./login-BIxW6k10.js";export{c as AUTH_TOKEN_COOKIE_NAME,i as AUTH_TOKEN_MAX_AGE_DAYS,o as clearToken,n as getLoginUrl,e as getToken,a as isAuthenticated,s as setToken,t as useAuthGate,r as validateTicket};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./chunk-DECur_0Z.js";import{a as t,u as n}from"./chunk-UVKPFVEO-B3Wzw28P.js";import{v as r}from"./request-
|
|
2
|
-
//# sourceMappingURL=new-
|
|
1
|
+
import{r as e}from"./chunk-DECur_0Z.js";import{a as t,u as n}from"./chunk-UVKPFVEO-B3Wzw28P.js";import{v as r}from"./request-OsR-2ZDW.js";import{t as i}from"./form-agjas9M8.js";import{t as a}from"./SearchOutlined-BbFgLxbH.js";import{t as o}from"./card-Bjmmjg43.js";import{n as s,r as c}from"./infra-BiHKZ7O6.js";import{C as l,f as u,l as d,m as f,n as p,p as m,r as h,t as g}from"./index-Buo2eS-Q.js";var _=e(n(),1);function v(){var e=`/home/runner/work/canyonapp/canyonapp/src/helpers/api.ts`,t=`3bdd97512a70b53ce06ead28663edadca7accb7d`,n=globalThis,r=`__coverage__`,i={path:`/home/runner/work/canyonapp/canyonapp/src/helpers/api.ts`,s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0},f:{0:0,1:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0,0],5:[0,0],6:[0,0],7:[0,0],8:[0,0],9:[0,0]},_coverageSchema:`1a1c01bbd47fc00a2c39e90264f33305004495a9`,hash:`3bdd97512a70b53ce06ead28663edadca7accb7d`,buildHash:`b39dd5f35e71ea8988cc899677b2be97c1a97732`},a=n[r]||(n[r]={});(!a[e]||a[e].hash!==t)&&(a[e]=i);var o=a[e];return v=function(){return o},o}v();function y(e){if(v().f[1]++,v().s[8]++,(v().b[4][0]++,e)&&(v().b[4][1]++,typeof e==`object`)&&(v().b[4][2]++,`response`in e)){v().b[3][0]++;let t=(v().s[9]++,e.response),n=(v().s[10]++,t?.data?.message);if(v().s[11]++,(v().b[6][0]++,Array.isArray(n))&&(v().b[6][1]++,n[0]))return v().b[5][0]++,v().s[12]++,n[0];if(v().b[5][1]++,v().s[13]++,typeof n==`string`)return v().b[7][0]++,v().s[14]++,n;if(v().b[7][1]++,v().s[15]++,t?.status)return v().b[8][0]++,v().s[16]++,`请求失败: ${t.status}`;v().b[8][1]++}else v().b[3][1]++;return v().s[17]++,e instanceof Error?(v().b[9][0]++,v().s[18]++,e.message):(v().b[9][1]++,v().s[19]++,null)}var b=d();function x(){var e=`/home/runner/work/canyonapp/canyonapp/src/pages/projects/new.tsx`,t=`4cb810a9ca04ff7d0a103bae8d579aa93b75937d`,n=globalThis,r=`__coverage__`,i={path:`/home/runner/work/canyonapp/canyonapp/src/pages/projects/new.tsx`,s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0],6:[0,0],7:[0,0],8:[0,0,0],9:[0,0,0],10:[0,0]},_coverageSchema:`1a1c01bbd47fc00a2c39e90264f33305004495a9`,hash:`4cb810a9ca04ff7d0a103bae8d579aa93b75937d`,buildHash:`b39dd5f35e71ea8988cc899677b2be97c1a97732`},a=n[r]||(n[r]={});(!a[e]||a[e].hash!==t)&&(a[e]=i);var o=a[e];return x=function(){return o},o}x();function S(e){x().f[0]++;let t=(x().s[0]++,e.type===`gitlab`?(x().b[0][0]++,`GitLab`):(x().b[0][1]++,`GitHub`));return x().s[1]++,e.baseUrl?(x().b[1][0]++,x().s[2]++,`${t} (${e.baseUrl})`):(x().b[1][1]++,x().s[3]++,e.provider===e.type?(x().b[2][0]++,t):(x().b[2][1]++,`${t} (${e.provider})`))}x().s[4]++;var C=()=>{x().f[1]++;let e=(x().s[5]++,t()),[n]=(x().s[6]++,i.useForm()),[d,v]=(x().s[7]++,(0,_.useState)([])),[C,w]=(x().s[8]++,(0,_.useState)(!0)),[T,E]=(x().s[9]++,(0,_.useState)(!1)),[D,O]=(x().s[10]++,(0,_.useState)(!1)),[k,A]=(x().s[11]++,(0,_.useState)(null)),[j,M]=(x().s[12]++,(0,_.useState)(null));return x().s[13]++,(0,_.useEffect)(()=>{x().f[2]++,x().s[14]++,s().then(v).catch(()=>(x().f[3]++,x().s[15]++,u.error(`获取 Provider 列表失败`))).finally(()=>(x().f[4]++,x().s[16]++,w(!1)))},[]),x().s[17]++,x().s[34]++,x().s[42]++,(0,b.jsx)(g,{children:(0,b.jsxs)(o,{style:{maxWidth:520,margin:`0 auto`},title:(0,b.jsx)(`span`,{style:{fontSize:16,fontWeight:600},children:`创建仓库`}),extra:(0,b.jsx)(r,{type:`link`,onClick:()=>(x().f[8]++,x().s[43]++,e(`/projects`)),children:`返回列表`}),children:[(0,b.jsx)(`p`,{style:{color:`rgba(0,0,0,0.45)`,marginBottom:24},children:`录入仓库 ID 与来源,先检查再创建;检查与创建均由后端通过配置请求 GitLab/GitHub。`}),(0,b.jsxs)(i,{form:n,layout:`vertical`,onFinish:async t=>{x().f[7]++;let n=(x().s[35]++,(x().b[5][0]++,k?.repoID)??(x().b[5][1]++,t.repoID.trim()));x().s[36]++,E(!0),x().s[37]++;try{x().s[38]++,await h({repoID:n,provider:t.provider}),x().s[39]++,u.success(`创建成功`),x().s[40]++,e(`/projects`)}catch{}finally{x().s[41]++,E(!1)}},requiredMark:!0,children:[(0,b.jsx)(i.Item,{name:`repoID`,label:`仓库 ID`,rules:[{required:!0,message:`请输入仓库 ID`}],children:(0,b.jsx)(f,{placeholder:`如 118075`})}),(0,b.jsx)(i.Item,{name:`provider`,label:`来源`,rules:[{required:!0,message:`请选择来源`}],children:(0,b.jsx)(l,{placeholder:C?(x().b[6][0]++,`加载中...`):(x().b[6][1]++,`请选择`),loading:C,options:d.map(e=>(x().f[9]++,x().s[44]++,{label:S(e),value:e.provider}))})}),(0,b.jsx)(i.Item,{style:{marginBottom:0},children:(0,b.jsx)(r,{type:`default`,icon:(0,b.jsx)(a,{}),onClick:async()=>{x().f[5]++;let e=(x().s[18]++,await n.validateFields([`repoID`,`provider`]).catch(()=>(x().f[6]++,x().s[19]++,null)));if(x().s[20]++,e?.repoID?.trim())x().b[3][1]++;else{x().b[3][0]++,x().s[21]++,u.warning(`请先填写仓库 ID 和来源`),x().s[22]++;return}x().s[23]++,M(null),x().s[24]++,A(null),x().s[25]++,O(!0),x().s[26]++;try{let t=(x().s[27]++,await p(e.repoID.trim(),e.provider));x().s[28]++,A(t),x().s[29]++,u.success(`检查成功`)}catch(e){let t=(x().s[30]++,(x().b[4][0]++,y(e))||(x().b[4][1]++,`获取仓库信息失败`));x().s[31]++,M(t),x().s[32]++,u.error(t)}finally{x().s[33]++,O(!1)}},loading:D,children:`检查`})}),(x().b[7][0]++,D)&&(x().b[7][1]++,(0,b.jsx)(`div`,{style:{marginTop:16},children:(0,b.jsx)(m,{tip:`正在获取仓库信息...`})})),(x().b[8][0]++,j)&&(x().b[8][1]++,!D)&&(x().b[8][2]++,(0,b.jsx)(o,{size:`small`,style:{marginTop:16,borderColor:`#ff4d4f`},children:(0,b.jsx)(`span`,{style:{color:`#ff4d4f`},children:j})})),(x().b[9][0]++,k)&&(x().b[9][1]++,!D)&&(x().b[9][2]++,(0,b.jsx)(o,{size:`small`,style:{marginTop:16},title:`仓库信息`,children:(0,b.jsxs)(c,{column:1,size:`small`,children:[(0,b.jsx)(c.Item,{label:`仓库 ID`,children:k.repoID}),(0,b.jsx)(c.Item,{label:`pathWithNamespace`,children:k.pathWithNamespace}),(0,b.jsx)(c.Item,{label:`描述`,children:(x().b[10][0]++,k.description)||(x().b[10][1]++,`—`)})]})})),(0,b.jsxs)(i.Item,{style:{marginBottom:0,marginTop:24},children:[(0,b.jsx)(r,{type:`primary`,htmlType:`submit`,loading:T,children:`创建`}),(0,b.jsx)(r,{style:{marginLeft:8},onClick:()=>(x().f[10]++,x().s[45]++,e(`/projects`)),children:`取消`})]})]})]})})};export{C as default};
|
|
2
|
+
//# sourceMappingURL=new-urCghqqi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-DLzTRflL.js","names":[],"sources":["../../src/helpers/api.ts","../../src/pages/projects/new.tsx"],"sourcesContent":["/**\n * 从后端错误响应中解析出展示用的文案(约定:Nest 返回 { message: string | string[] })\n */\nexport async function getApiErrorMessage(res: Response): Promise<string> {\n try {\n const body = await res.json();\n const msg = body?.message;\n if (Array.isArray(msg)) return msg[0] ?? `请求失败: ${res.status}`;\n if (typeof msg === \"string\") return msg;\n } catch {\n // 非 JSON 或解析失败\n }\n return `请求失败: ${res.status}`;\n}\n\n/**\n * 从 axios 错误中解析展示文案(err.response?.data?.message)\n */\nexport function getAxiosErrorMessage(err: unknown): string | null {\n if (err && typeof err === \"object\" && \"response\" in err) {\n const res = (err as { response?: { data?: { message?: string | string[] }; status?: number } })\n .response;\n const msg = res?.data?.message;\n if (Array.isArray(msg) && msg[0]) return msg[0];\n if (typeof msg === \"string\") return msg;\n if (res?.status) return `请求失败: ${res.status}`;\n }\n if (err instanceof Error) return err.message;\n return null;\n}\n","import { SearchOutlined } from \"@ant-design/icons\";\nimport { Button, Card, Descriptions, Form, Input, message, Select, Spin } from \"antd\";\nimport { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport BasicLayout from \"@/layouts/BasicLayout\";\nimport { checkRepo, createRepo } from \"@/services/repo\";\nimport { getProviders, type ProviderItem } from \"@/services/infra\";\nimport { getAxiosErrorMessage } from \"@/helpers/api\";\n\ntype FormValues = {\n repoID: string;\n provider: string;\n};\n\ntype RepoCheckResult = {\n repoID: string;\n pathWithNamespace: string;\n description: string;\n};\n\nfunction formatProviderLabel(p: ProviderItem): string {\n const typeLabel = p.type === \"gitlab\" ? \"GitLab\" : \"GitHub\";\n if (p.baseUrl) {\n return `${typeLabel} (${p.baseUrl})`;\n }\n return p.provider === p.type ? typeLabel : `${typeLabel} (${p.provider})`;\n}\n\nconst NewProject = () => {\n const navigate = useNavigate();\n const [form] = Form.useForm<FormValues>();\n const [providers, setProviders] = useState<ProviderItem[]>([]);\n const [providersLoading, setProvidersLoading] = useState(true);\n const [submitting, setSubmitting] = useState(false);\n const [checkLoading, setCheckLoading] = useState(false);\n const [checkResult, setCheckResult] = useState<RepoCheckResult | null>(null);\n const [checkError, setCheckError] = useState<string | null>(null);\n\n useEffect(() => {\n getProviders()\n .then(setProviders)\n .catch(() => message.error(\"获取 Provider 列表失败\"))\n .finally(() => setProvidersLoading(false));\n }, []);\n\n const handleCheck = async () => {\n const values = await form.validateFields([\"repoID\", \"provider\"]).catch(() => null);\n if (!values?.repoID?.trim()) {\n message.warning(\"请先填写仓库 ID 和来源\");\n return;\n }\n setCheckError(null);\n setCheckResult(null);\n setCheckLoading(true);\n try {\n const result = await checkRepo(values.repoID.trim(), values.provider);\n setCheckResult(result as RepoCheckResult);\n message.success(\"检查成功\");\n } catch (e) {\n const msg = getAxiosErrorMessage(e) || \"获取仓库信息失败\";\n setCheckError(msg);\n message.error(msg);\n } finally {\n setCheckLoading(false);\n }\n };\n\n const onFinish = async (values: FormValues) => {\n const repoID = checkResult?.repoID ?? values.repoID.trim();\n setSubmitting(true);\n try {\n await createRepo({\n repoID,\n provider: values.provider,\n });\n message.success(\"创建成功\");\n navigate(\"/projects\");\n } catch (e) {\n // message.error(getAxiosErrorMessage(e) || \"请求失败\");\n } finally {\n setSubmitting(false);\n }\n };\n\n return (\n <BasicLayout>\n <Card\n style={{ maxWidth: 520, margin: \"0 auto\" }}\n title={<span style={{ fontSize: 16, fontWeight: 600 }}>创建仓库</span>}\n extra={\n <Button type=\"link\" onClick={() => navigate(\"/projects\")}>\n 返回列表\n </Button>\n }\n >\n <p style={{ color: \"rgba(0,0,0,0.45)\", marginBottom: 24 }}>\n 录入仓库 ID 与来源,先检查再创建;检查与创建均由后端通过配置请求 GitLab/GitHub。\n </p>\n\n <Form<FormValues> form={form} layout=\"vertical\" onFinish={onFinish} requiredMark>\n <Form.Item\n name=\"repoID\"\n label=\"仓库 ID\"\n rules={[{ required: true, message: \"请输入仓库 ID\" }]}\n >\n <Input placeholder=\"如 118075\" />\n </Form.Item>\n\n <Form.Item\n name=\"provider\"\n label=\"来源\"\n rules={[{ required: true, message: \"请选择来源\" }]}\n >\n <Select\n placeholder={providersLoading ? \"加载中...\" : \"请选择\"}\n loading={providersLoading}\n options={providers.map((p) => ({\n label: formatProviderLabel(p),\n value: p.provider,\n }))}\n />\n </Form.Item>\n\n <Form.Item style={{ marginBottom: 0 }}>\n <Button\n type=\"default\"\n icon={<SearchOutlined />}\n onClick={handleCheck}\n loading={checkLoading}\n >\n 检查\n </Button>\n </Form.Item>\n\n {checkLoading && (\n <div style={{ marginTop: 16 }}>\n <Spin tip=\"正在获取仓库信息...\" />\n </div>\n )}\n\n {checkError && !checkLoading && (\n <Card size=\"small\" style={{ marginTop: 16, borderColor: \"#ff4d4f\" }}>\n <span style={{ color: \"#ff4d4f\" }}>{checkError}</span>\n </Card>\n )}\n\n {checkResult && !checkLoading && (\n <Card size=\"small\" style={{ marginTop: 16 }} title=\"仓库信息\">\n <Descriptions column={1} size=\"small\">\n <Descriptions.Item label=\"仓库 ID\">{checkResult.repoID}</Descriptions.Item>\n <Descriptions.Item label=\"pathWithNamespace\">\n {checkResult.pathWithNamespace}\n </Descriptions.Item>\n <Descriptions.Item label=\"描述\">{checkResult.description || \"—\"}</Descriptions.Item>\n </Descriptions>\n </Card>\n )}\n\n <Form.Item style={{ marginBottom: 0, marginTop: 24 }}>\n <Button type=\"primary\" htmlType=\"submit\" loading={submitting}>\n 创建\n </Button>\n <Button style={{ marginLeft: 8 }} onClick={() => navigate(\"/projects\")}>\n 取消\n </Button>\n </Form.Item>\n </Form>\n </Card>\n </BasicLayout>\n );\n};\n\nexport default NewProject;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"new-urCghqqi.js","names":[],"sources":["../../src/helpers/api.ts","../../src/pages/projects/new.tsx"],"sourcesContent":["/**\n * 从后端错误响应中解析出展示用的文案(约定:Nest 返回 { message: string | string[] })\n */\nexport async function getApiErrorMessage(res: Response): Promise<string> {\n try {\n const body = await res.json();\n const msg = body?.message;\n if (Array.isArray(msg)) return msg[0] ?? `请求失败: ${res.status}`;\n if (typeof msg === \"string\") return msg;\n } catch {\n // 非 JSON 或解析失败\n }\n return `请求失败: ${res.status}`;\n}\n\n/**\n * 从 axios 错误中解析展示文案(err.response?.data?.message)\n */\nexport function getAxiosErrorMessage(err: unknown): string | null {\n if (err && typeof err === \"object\" && \"response\" in err) {\n const res = (err as { response?: { data?: { message?: string | string[] }; status?: number } })\n .response;\n const msg = res?.data?.message;\n if (Array.isArray(msg) && msg[0]) return msg[0];\n if (typeof msg === \"string\") return msg;\n if (res?.status) return `请求失败: ${res.status}`;\n }\n if (err instanceof Error) return err.message;\n return null;\n}\n","import { SearchOutlined } from \"@ant-design/icons\";\nimport { Button, Card, Descriptions, Form, Input, message, Select, Spin } from \"antd\";\nimport { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport BasicLayout from \"@/layouts/BasicLayout\";\nimport { checkRepo, createRepo } from \"@/services/repo\";\nimport { getProviders, type ProviderItem } from \"@/services/infra\";\nimport { getAxiosErrorMessage } from \"@/helpers/api\";\n\ntype FormValues = {\n repoID: string;\n provider: string;\n};\n\ntype RepoCheckResult = {\n repoID: string;\n pathWithNamespace: string;\n description: string;\n};\n\nfunction formatProviderLabel(p: ProviderItem): string {\n const typeLabel = p.type === \"gitlab\" ? \"GitLab\" : \"GitHub\";\n if (p.baseUrl) {\n return `${typeLabel} (${p.baseUrl})`;\n }\n return p.provider === p.type ? typeLabel : `${typeLabel} (${p.provider})`;\n}\n\nconst NewProject = () => {\n const navigate = useNavigate();\n const [form] = Form.useForm<FormValues>();\n const [providers, setProviders] = useState<ProviderItem[]>([]);\n const [providersLoading, setProvidersLoading] = useState(true);\n const [submitting, setSubmitting] = useState(false);\n const [checkLoading, setCheckLoading] = useState(false);\n const [checkResult, setCheckResult] = useState<RepoCheckResult | null>(null);\n const [checkError, setCheckError] = useState<string | null>(null);\n\n useEffect(() => {\n getProviders()\n .then(setProviders)\n .catch(() => message.error(\"获取 Provider 列表失败\"))\n .finally(() => setProvidersLoading(false));\n }, []);\n\n const handleCheck = async () => {\n const values = await form.validateFields([\"repoID\", \"provider\"]).catch(() => null);\n if (!values?.repoID?.trim()) {\n message.warning(\"请先填写仓库 ID 和来源\");\n return;\n }\n setCheckError(null);\n setCheckResult(null);\n setCheckLoading(true);\n try {\n const result = await checkRepo(values.repoID.trim(), values.provider);\n setCheckResult(result as RepoCheckResult);\n message.success(\"检查成功\");\n } catch (e) {\n const msg = getAxiosErrorMessage(e) || \"获取仓库信息失败\";\n setCheckError(msg);\n message.error(msg);\n } finally {\n setCheckLoading(false);\n }\n };\n\n const onFinish = async (values: FormValues) => {\n const repoID = checkResult?.repoID ?? values.repoID.trim();\n setSubmitting(true);\n try {\n await createRepo({\n repoID,\n provider: values.provider,\n });\n message.success(\"创建成功\");\n navigate(\"/projects\");\n } catch (e) {\n // message.error(getAxiosErrorMessage(e) || \"请求失败\");\n } finally {\n setSubmitting(false);\n }\n };\n\n return (\n <BasicLayout>\n <Card\n style={{ maxWidth: 520, margin: \"0 auto\" }}\n title={<span style={{ fontSize: 16, fontWeight: 600 }}>创建仓库</span>}\n extra={\n <Button type=\"link\" onClick={() => navigate(\"/projects\")}>\n 返回列表\n </Button>\n }\n >\n <p style={{ color: \"rgba(0,0,0,0.45)\", marginBottom: 24 }}>\n 录入仓库 ID 与来源,先检查再创建;检查与创建均由后端通过配置请求 GitLab/GitHub。\n </p>\n\n <Form<FormValues> form={form} layout=\"vertical\" onFinish={onFinish} requiredMark>\n <Form.Item\n name=\"repoID\"\n label=\"仓库 ID\"\n rules={[{ required: true, message: \"请输入仓库 ID\" }]}\n >\n <Input placeholder=\"如 118075\" />\n </Form.Item>\n\n <Form.Item\n name=\"provider\"\n label=\"来源\"\n rules={[{ required: true, message: \"请选择来源\" }]}\n >\n <Select\n placeholder={providersLoading ? \"加载中...\" : \"请选择\"}\n loading={providersLoading}\n options={providers.map((p) => ({\n label: formatProviderLabel(p),\n value: p.provider,\n }))}\n />\n </Form.Item>\n\n <Form.Item style={{ marginBottom: 0 }}>\n <Button\n type=\"default\"\n icon={<SearchOutlined />}\n onClick={handleCheck}\n loading={checkLoading}\n >\n 检查\n </Button>\n </Form.Item>\n\n {checkLoading && (\n <div style={{ marginTop: 16 }}>\n <Spin tip=\"正在获取仓库信息...\" />\n </div>\n )}\n\n {checkError && !checkLoading && (\n <Card size=\"small\" style={{ marginTop: 16, borderColor: \"#ff4d4f\" }}>\n <span style={{ color: \"#ff4d4f\" }}>{checkError}</span>\n </Card>\n )}\n\n {checkResult && !checkLoading && (\n <Card size=\"small\" style={{ marginTop: 16 }} title=\"仓库信息\">\n <Descriptions column={1} size=\"small\">\n <Descriptions.Item label=\"仓库 ID\">{checkResult.repoID}</Descriptions.Item>\n <Descriptions.Item label=\"pathWithNamespace\">\n {checkResult.pathWithNamespace}\n </Descriptions.Item>\n <Descriptions.Item label=\"描述\">{checkResult.description || \"—\"}</Descriptions.Item>\n </Descriptions>\n </Card>\n )}\n\n <Form.Item style={{ marginBottom: 0, marginTop: 24 }}>\n <Button type=\"primary\" htmlType=\"submit\" loading={submitting}>\n 创建\n </Button>\n <Button style={{ marginLeft: 8 }} onClick={() => navigate(\"/projects\")}>\n 取消\n </Button>\n </Form.Item>\n </Form>\n </Card>\n </BasicLayout>\n );\n};\n\nexport default NewProject;\n"],"mappings":"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"}
|