diffing 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/dist/cli-agent-B4hU6Xay.mjs +499 -0
- package/dist/cli-agent-B_PHd635.mjs +499 -0
- package/dist/cli-gh-abs-IJrz.mjs +147 -0
- package/dist/cli.mjs +154 -16
- package/dist/client/assets/{angular-html-DbbrJavS.js → angular-html-BVFBJbbm.js} +1 -1
- package/dist/client/assets/{angular-ts-tCrxb1ht.js → angular-ts-CbJB4bNJ.js} +1 -1
- package/dist/client/assets/{apl-DawII0w7.js → apl-MzqTwOQT.js} +1 -1
- package/dist/client/assets/{arc-DIRV7ZXr.js → arc-DkYz3FVO.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-3IoH78OV.js → architectureDiagram-3BPJPVTR-CU3k1-_g.js} +1 -1
- package/dist/client/assets/{astro-DIyGTFXc.js → astro-DDblGxmh.js} +1 -1
- package/dist/client/assets/{blade-CuF4Z1mP.js → blade-DlgT3iuV.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-CFxPndC0.js → blockDiagram-GPEHLZMM-1lwkHRY_.js} +1 -1
- package/dist/client/assets/{c-DUrjo9T5.js → c-BL61MF4M.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CGMBnkiv.js → c4Diagram-AAUBKEIU-BPBjnNM8.js} +1 -1
- package/dist/client/assets/channel-BX6tZjG6.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-CJMBLaXy.js → chunk-2J33WTMH-C_SASPYW.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-C9HQWVLl.js → chunk-3OPIFGDE-CTcbOBts.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-Qqg72GQd.js → chunk-4BX2VUAB-BipHnfY4.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DZF8brTR.js → chunk-55IACEB6-BzJYLlnc.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-BflVFV5z.js → chunk-5ZQYHXKU-CorupEGf.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-COn6BRLY.js → chunk-727SXJPM-Cqjzb4FZ.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-CNOjODUR.js → chunk-AQP2D5EJ-DcaAmtSe.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-PQX4ASCI.js → chunk-BSJP7CBP-CiBjSxwv.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-BfmUvL-L.js → chunk-CSCIHK7Q-BTbf6qN3.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DorfwLnQ.js → chunk-FMBD7UC4-BA8_ZS2e.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-CXY93mId.js → chunk-KSCS5N6A-ChcT2GOp.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-BjMrSVmH.js → chunk-L5ZTLDWV-BjzpE0xm.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-q8jj6Nyb.js → chunk-LZXEDZCA-Bu0azrf_.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-BRRQbYHl.js → chunk-ND2GUHAM-Co55RNsd.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-Czt1qHrO.js → chunk-NZK2D7GU-CtPYeO8_.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-DEopURak.js → chunk-O5CBEL6O-CzRKb_Hn.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-BCSN705V.js +1 -0
- package/dist/client/assets/chunk-WU5MYG2G-xPWDnrji.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-DocCoKUT.js → chunk-XPW4576I-CYH9wUok.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-7xfBUC5E.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CFM5yYso.js +1 -0
- package/dist/client/assets/{cobol-BylylR2x.js → cobol-D37UDAkO.js} +1 -1
- package/dist/client/assets/{coffee-DCKfk8xx.js → coffee-NCjhDwWZ.js} +1 -1
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Cm0BD5CS.js → cose-bilkent-S5V4N54A-B8RnQ-yF.js} +1 -1
- package/dist/client/assets/{cpp-CfKCIrGK.js → cpp-CQUNgUz4.js} +1 -1
- package/dist/client/assets/{crystal-v-9RIu3l.js → crystal-DGHLJtZ_.js} +1 -1
- package/dist/client/assets/{css-XjlXeGmZ.js → css-xCgEbp_3.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-kqgFUaF1.js → dagre-BM42HDAG-CvmQMXPT.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-B3hBvGUc.js → diagram-2AECGRRQ-wIyWTlXo.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-r8zU8C-Y.js → diagram-5GNKFQAL-BLMMWtHj.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-CDWD5zkZ.js → diagram-KO2AKTUF-Duz_hHky.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CRRfS6RD.js → diagram-LMA3HP47-CftQIrJ1.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-ChBS6E-K.js → diagram-OG6HWLK6-7odjt2qL.js} +1 -1
- package/dist/client/assets/{dist-DUTeKbN7.js → dist-PmPhNea3.js} +1 -1
- package/dist/client/assets/{edge-Cwh953i8.js → edge-C6_UFojU.js} +1 -1
- package/dist/client/assets/{elixir-C4MgLzTj.js → elixir-B12MoaTY.js} +1 -1
- package/dist/client/assets/{elm-CFBu8r7i.js → elm-C80KxC_R.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-_03Fb9RH.js → erDiagram-TEJ5UH35-DOeyf617.js} +1 -1
- package/dist/client/assets/{erb-CrCna7R1.js → erb-DqelkF7l.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-D9pSaH_8.js → flowDiagram-I6XJVG4X-BJX7W8r0.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DKBfXY9D.js → ganttDiagram-6RSMTGT7-CFWnCca0.js} +1 -1
- package/dist/client/assets/{git-rebase-CExLk2dD.js → git-rebase-7L4r_tbx.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BPQ2kpJA.js → gitGraphDiagram-PVQCEYII-oNErRHPR.js} +1 -1
- package/dist/client/assets/{glimmer-js-wjBSKaMu.js → glimmer-js-8OQAbTGs.js} +1 -1
- package/dist/client/assets/{glimmer-ts-CyjMXDgZ.js → glimmer-ts-3IyQiCHC.js} +1 -1
- package/dist/client/assets/{glsl-CWOoN8or.js → glsl-Bi_bzGJK.js} +1 -1
- package/dist/client/assets/{graphql-DI5CB58U.js → graphql-YcGxsBfT.js} +1 -1
- package/dist/client/assets/{hack-Ct_Cm7Pr.js → hack-C9IpUqi6.js} +1 -1
- package/dist/client/assets/{haml-DzAjli8d.js → haml-YWDwVGeX.js} +1 -1
- package/dist/client/assets/{handlebars-BfJB0RYx.js → handlebars-zyG7ocdI.js} +1 -1
- package/dist/client/assets/{html-CK8auhK8.js → html-CHYhpzfH.js} +1 -1
- package/dist/client/assets/{html-derivative-B7VntYnF.js → html-derivative-BhgSILdB.js} +1 -1
- package/dist/client/assets/{http-_Zy71Sv3.js → http-BPv6bUpq.js} +1 -1
- package/dist/client/assets/{hurl-VbL4I95z.js → hurl-CpohSten.js} +1 -1
- package/dist/client/assets/{index-Dv9jPmOc.js → index-BIrpcT6-.js} +97 -96
- package/dist/client/assets/index-CMyunQt6.css +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-B5RN-4Ke.js → infoDiagram-5YYISTIA-D1xM4RZP.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DpbSX3Zy.js → ishikawaDiagram-YF4QCWOH-7DsxXa1L.js} +1 -1
- package/dist/client/assets/{java-0CC2DnK9.js → java-Bt4sAY2m.js} +1 -1
- package/dist/client/assets/{javascript-DKSTP7rz.js → javascript-DZjI42QZ.js} +1 -1
- package/dist/client/assets/{jinja-DoGBHNJ6.js → jinja-D2zTW07t.js} +1 -1
- package/dist/client/assets/{jison-Bnl3lPA2.js → jison-Dz-ndIM5.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-B_X4_qPO.js → journeyDiagram-JHISSGLW-C_A1TmoL.js} +1 -1
- package/dist/client/assets/{json-BQ3Ddj6g.js → json-Ykn4LhOH.js} +1 -1
- package/dist/client/assets/{jsx-C_aFDuFZ.js → jsx-Ce8SKNSt.js} +1 -1
- package/dist/client/assets/{julia-nIjp5yMR.js → julia-DlfibiGU.js} +1 -1
- package/dist/client/assets/{just-zc4yJ46n.js → just-CT2PIeY2.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BSs4C5DW.js → kanban-definition-UN3LZRKU-ccKLE8Df.js} +1 -1
- package/dist/client/assets/{latex-BszBC80j.js → latex-Dkfo8_p4.js} +1 -1
- package/dist/client/assets/{line-C9HWVwPi.js → line-BbqJI7bZ.js} +1 -1
- package/dist/client/assets/{linear-DatJfpKY.js → linear-B7c0dSOq.js} +1 -1
- package/dist/client/assets/{liquid-DglQpTge.js → liquid-dWmg5egV.js} +1 -1
- package/dist/client/assets/{lua-BcbliFeR.js → lua-6hNhLpj8.js} +1 -1
- package/dist/client/assets/{marko-BPm4M8j-.js → marko-DTVuQVoJ.js} +1 -1
- package/dist/client/assets/{mdc-BNUj07UF.js → mdc-LbJVW6cj.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-BVEKlqQr.js → mermaid-parser.core-f-eKVdX9.js} +1 -1
- package/dist/client/assets/{mermaid.core-DVis21V_.js → mermaid.core-ClMOD6O3.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-Cuo7KewF.js → mindmap-definition-RKZ34NQL-vaLTR09L.js} +1 -1
- package/dist/client/assets/{nginx-CSSJwkd6.js → nginx-BvMTgdwH.js} +1 -1
- package/dist/client/assets/{nim-nQAskwTR.js → nim-BdGYhiTu.js} +1 -1
- package/dist/client/assets/{perl-CtH8xYH6.js → perl-DamEOAxn.js} +1 -1
- package/dist/client/assets/{php-Dcc3T2PH.js → php-DtubpAAy.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-BfpvCRmo.js → pieDiagram-4H26LBE5-yuTkGKaM.js} +1 -1
- package/dist/client/assets/{pug-BCLaymlV.js → pug-CMYtl1BN.js} +1 -1
- package/dist/client/assets/{qml-BpKydcOi.js → qml-D76DCV4U.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CJY6un0-.js → quadrantDiagram-W4KKPZXB-Db00tlGp.js} +1 -1
- package/dist/client/assets/{r-BzCB9dpd.js → r-gMTLVmYP.js} +1 -1
- package/dist/client/assets/{razor-BWmujqiQ.js → razor-1oOg77PO.js} +1 -1
- package/dist/client/assets/{regexp-urCI3YiZ.js → regexp-BJzbycG8.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DIHWguS0.js → requirementDiagram-4Y6WPE33-CwCGFaVe.js} +1 -1
- package/dist/client/assets/{rst-YTDC9H6u.js → rst-Be7RtxcU.js} +1 -1
- package/dist/client/assets/{ruby-v1IXQAFZ.js → ruby-oyNd3WUZ.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DJRPEO_F.js → sankeyDiagram-5OEKKPKP-D78nH-eA.js} +1 -1
- package/dist/client/assets/{sas-KDUG3BSk.js → sas-Bx8dCxcK.js} +1 -1
- package/dist/client/assets/{scss-pLIGFpjD.js → scss-DzZEPh1d.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DX0jVCOU.js → sequenceDiagram-3UESZ5HK-CEy9mjHg.js} +1 -1
- package/dist/client/assets/{shellscript-B5ZTyEsK.js → shellscript-t9s0AoBc.js} +1 -1
- package/dist/client/assets/{shellsession-DVK3bw4p.js → shellsession-NczJO6Io.js} +1 -1
- package/dist/client/assets/{soy-BXgyj2-T.js → soy-Dl6InSac.js} +1 -1
- package/dist/client/assets/{sql-G2vZCmw6.js → sql-DXkZEc28.js} +1 -1
- package/dist/client/assets/{src-D9zkqEEX.js → src-DCIMHd9M.js} +1 -1
- package/dist/client/assets/{stata-C4mEnygx.js → stata-DmpUDP7M.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-AMtMxKgQ.js → stateDiagram-AJRCARHV-Cz0qtN4R.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Dye5cILT.js +1 -0
- package/dist/client/assets/{surrealql-Bf8gsTcP.js → surrealql-BAZp4tA6.js} +1 -1
- package/dist/client/assets/{svelte-C1oIyl9t.js → svelte-DXBMAgu7.js} +1 -1
- package/dist/client/assets/{templ-PJcWUuTF.js → templ-CF-yfRM7.js} +1 -1
- package/dist/client/assets/{tex-B7Fnujsi.js → tex-D5tGX-j9.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-BZJSqcAg.js → timeline-definition-PNZ67QCA-B6_u5aFI.js} +1 -1
- package/dist/client/assets/{ts-tags-CAAsFnUt.js → ts-tags-DWMVxoO1.js} +1 -1
- package/dist/client/assets/{tsx-DAKyTsWW.js → tsx-C6QVlWvX.js} +1 -1
- package/dist/client/assets/{twig-Bd4dieZF.js → twig-DKFN0Lvm.js} +1 -1
- package/dist/client/assets/{typescript-8myByDGd.js → typescript-DVfrnfSW.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CMjBZNs2.js → vennDiagram-CIIHVFJN-C_-TQFos.js} +1 -1
- package/dist/client/assets/{vue-fBA2B-QU.js → vue-BCLQ-g1T.js} +1 -1
- package/dist/client/assets/{vue-html-DEZECpsR.js → vue-html-Ddr0JbE-.js} +1 -1
- package/dist/client/assets/{vue-vine-B_gG939R.js → vue-vine-CX36RUs5.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-qeHmPLyL.js → wardleyDiagram-YWT4CUSO-BJQg7Pb-.js} +1 -1
- package/dist/client/assets/{xml-DbXNss3s.js → xml-FnMA1W8C.js} +1 -1
- package/dist/client/assets/{xsl-B7_dgqqc.js → xsl-CLduN3zs.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-NN2Et7YL.js → xychartDiagram-2RQKCTM6-1Ux8tle4.js} +1 -1
- package/dist/client/assets/{yaml-DSyIApdJ.js → yaml-B6hNfHm7.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/mcp-DNZQvKKF.mjs +298 -0
- package/dist/mcp-DO4zfNZX.mjs +298 -0
- package/dist/plan-format-DVnF8xrq.mjs +126 -0
- package/dist/plan-format-mSDtsPcC.mjs +132 -0
- package/dist/server-lock-D73NKKbn.mjs +842 -0
- package/package.json +1 -1
- package/dist/client/assets/channel-D5AdjEWX.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-BE917fn9.js +0 -1
- package/dist/client/assets/chunk-WU5MYG2G-DdoWnPla.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CxjhKO7s.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CSScAAQ4.js +0 -1
- package/dist/client/assets/index-C3p7VKOX.css +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C89CM-_4.js +0 -1
package/dist/cli.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as toSafeRelativePath, S as isSafePath, _ as getUntrackedFilePathsAsync, a as formatComments, b as listRepoFiles, c as getFileContent, d as getMergeStatus, f as getProjectStorageDir, g as getTabSizeForFiles, h as getShowDiff, i as writeServerLock, l as getGitDiffAsync, m as getRepoRoot, o as getBranchName, p as getRepoName, r as removeServerLock, s as getCustomGitDiffAsync, u as getHunkHistory, v as gitAddFile, x as revertHunk, y as isGitRepo } from "./server-lock-
|
|
3
|
-
import { n as formatPlanReview, r as sectionTitleForLine, t as extractPlanLines } from "./plan-format-
|
|
2
|
+
import { C as toSafeRelativePath, S as isSafePath, _ as getUntrackedFilePathsAsync, a as formatComments, b as listRepoFiles, c as getFileContent, d as getMergeStatus, f as getProjectStorageDir, g as getTabSizeForFiles, h as getShowDiff, i as writeServerLock, l as getGitDiffAsync, m as getRepoRoot, o as getBranchName, p as getRepoName, r as removeServerLock, s as getCustomGitDiffAsync, u as getHunkHistory, v as gitAddFile, x as revertHunk, y as isGitRepo } from "./server-lock-D73NKKbn.mjs";
|
|
3
|
+
import { n as formatPlanReview, r as sectionTitleForLine, t as extractPlanLines } from "./plan-format-mSDtsPcC.mjs";
|
|
4
4
|
import { execFile, execFileSync, spawn } from "node:child_process";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { dirname, extname, isAbsolute, join, resolve } from "node:path";
|
|
@@ -1331,6 +1331,42 @@ var FileCommentStore = class {
|
|
|
1331
1331
|
function newId() {
|
|
1332
1332
|
return crypto.randomUUID();
|
|
1333
1333
|
}
|
|
1334
|
+
/**
|
|
1335
|
+
* Backfill / repair a plan loaded from disk so it matches the current schema.
|
|
1336
|
+
* Older persisted plans may be missing `versions` and `createdAtPlanVersion`;
|
|
1337
|
+
* we synthesize sensible values so callers can always rely on the new fields.
|
|
1338
|
+
*/
|
|
1339
|
+
function backfillPlan(plan) {
|
|
1340
|
+
const currentVersion = plan.version ?? 1;
|
|
1341
|
+
const have = Array.isArray(plan.versions) ? plan.versions.length : 0;
|
|
1342
|
+
if (!plan.versions || have === 0 || have < currentVersion) {
|
|
1343
|
+
const createdAt = plan.updatedAt ?? plan.createdAt ?? Date.now();
|
|
1344
|
+
const haveEntries = Array.isArray(plan.versions) ? plan.versions : [];
|
|
1345
|
+
const present = new Set(haveEntries.map((v) => v.version));
|
|
1346
|
+
const next = [];
|
|
1347
|
+
for (let i = 1; i <= currentVersion; i++) {
|
|
1348
|
+
const existing = haveEntries.find((v) => v.version === i);
|
|
1349
|
+
if (existing) next.push(existing);
|
|
1350
|
+
else next.push({
|
|
1351
|
+
version: i,
|
|
1352
|
+
body: plan.body,
|
|
1353
|
+
title: plan.title,
|
|
1354
|
+
source: plan.source,
|
|
1355
|
+
model: plan.model,
|
|
1356
|
+
createdAt
|
|
1357
|
+
});
|
|
1358
|
+
}
|
|
1359
|
+
plan.versions = next.filter((v) => v.version >= 1 && v.version <= currentVersion);
|
|
1360
|
+
if (have < currentVersion || !present.has(currentVersion)) markBackfilled(plan);
|
|
1361
|
+
}
|
|
1362
|
+
if (plan.comments) {
|
|
1363
|
+
for (const c of plan.comments) if (typeof c.createdAtPlanVersion !== "number") c.createdAtPlanVersion = plan.version ?? 1;
|
|
1364
|
+
}
|
|
1365
|
+
if (!plan.comments) plan.comments = [];
|
|
1366
|
+
}
|
|
1367
|
+
function markBackfilled(plan) {
|
|
1368
|
+
plan.__backfilledVersions = true;
|
|
1369
|
+
}
|
|
1334
1370
|
/** Shared mutation helpers so both stores behave identically. */
|
|
1335
1371
|
function applyUpsert(plans, input, now) {
|
|
1336
1372
|
if (input.id) {
|
|
@@ -1342,6 +1378,15 @@ function applyUpsert(plans, input, now) {
|
|
|
1342
1378
|
if (input.model !== void 0) existing.model = input.model;
|
|
1343
1379
|
existing.version += 1;
|
|
1344
1380
|
existing.updatedAt = now;
|
|
1381
|
+
if (!existing.versions) existing.versions = [];
|
|
1382
|
+
existing.versions.push({
|
|
1383
|
+
version: existing.version,
|
|
1384
|
+
body: existing.body,
|
|
1385
|
+
title: existing.title,
|
|
1386
|
+
source: existing.source,
|
|
1387
|
+
model: existing.model,
|
|
1388
|
+
createdAt: now
|
|
1389
|
+
});
|
|
1345
1390
|
existing.decision = "pending";
|
|
1346
1391
|
existing.decisionComment = void 0;
|
|
1347
1392
|
existing.decidedAt = void 0;
|
|
@@ -1358,11 +1403,43 @@ function applyUpsert(plans, input, now) {
|
|
|
1358
1403
|
updatedAt: now,
|
|
1359
1404
|
version: 1,
|
|
1360
1405
|
decision: "pending",
|
|
1361
|
-
comments: []
|
|
1406
|
+
comments: [],
|
|
1407
|
+
versions: [{
|
|
1408
|
+
version: 1,
|
|
1409
|
+
body: input.body,
|
|
1410
|
+
title: input.title,
|
|
1411
|
+
source: input.source,
|
|
1412
|
+
model: input.model,
|
|
1413
|
+
createdAt: now
|
|
1414
|
+
}]
|
|
1362
1415
|
};
|
|
1363
1416
|
plans.push(plan);
|
|
1364
1417
|
return plan;
|
|
1365
1418
|
}
|
|
1419
|
+
/**
|
|
1420
|
+
* Keep the most-recent `PlanVersion` snapshot in sync with the current `Plan`
|
|
1421
|
+
* fields after a non-resubmit edit (PUT). Doesn't add a new entry — that only
|
|
1422
|
+
* happens via `upsert` (the resubmit flow).
|
|
1423
|
+
*/
|
|
1424
|
+
function syncCurrentVersion(plan) {
|
|
1425
|
+
if (!plan.versions || plan.versions.length === 0) plan.versions = [];
|
|
1426
|
+
if (plan.versions.length === 0) {
|
|
1427
|
+
plan.versions.push({
|
|
1428
|
+
version: plan.version,
|
|
1429
|
+
body: plan.body,
|
|
1430
|
+
title: plan.title,
|
|
1431
|
+
source: plan.source,
|
|
1432
|
+
model: plan.model,
|
|
1433
|
+
createdAt: plan.updatedAt
|
|
1434
|
+
});
|
|
1435
|
+
return;
|
|
1436
|
+
}
|
|
1437
|
+
const last = plan.versions[plan.versions.length - 1];
|
|
1438
|
+
last.body = plan.body;
|
|
1439
|
+
last.title = plan.title;
|
|
1440
|
+
last.source = plan.source;
|
|
1441
|
+
last.model = plan.model;
|
|
1442
|
+
}
|
|
1366
1443
|
var FilePlanStore = class {
|
|
1367
1444
|
dirPath;
|
|
1368
1445
|
filePath;
|
|
@@ -1380,7 +1457,19 @@ var FilePlanStore = class {
|
|
|
1380
1457
|
async getAll() {
|
|
1381
1458
|
try {
|
|
1382
1459
|
const data = await readFile(this.filePath, "utf-8");
|
|
1383
|
-
|
|
1460
|
+
const plans = JSON.parse(data);
|
|
1461
|
+
let anyBackfilled = false;
|
|
1462
|
+
for (const p of plans) {
|
|
1463
|
+
const before = Array.isArray(p.versions) ? p.versions.length : 0;
|
|
1464
|
+
const beforeValid = Array.isArray(p.versions) && p.versions.length > 0;
|
|
1465
|
+
backfillPlan(p);
|
|
1466
|
+
const after = Array.isArray(p.versions) ? p.versions.length : 0;
|
|
1467
|
+
if ((!beforeValid || before < (p.version ?? 1)) && after > before) anyBackfilled = true;
|
|
1468
|
+
}
|
|
1469
|
+
if (anyBackfilled) try {
|
|
1470
|
+
await this.save(plans);
|
|
1471
|
+
} catch {}
|
|
1472
|
+
return plans;
|
|
1384
1473
|
} catch {
|
|
1385
1474
|
return [];
|
|
1386
1475
|
}
|
|
@@ -1388,6 +1477,11 @@ var FilePlanStore = class {
|
|
|
1388
1477
|
async get(id) {
|
|
1389
1478
|
return (await this.getAll()).find((p) => p.id === id) ?? null;
|
|
1390
1479
|
}
|
|
1480
|
+
async getVersion(id, version) {
|
|
1481
|
+
const plan = await this.get(id);
|
|
1482
|
+
if (!plan) return null;
|
|
1483
|
+
return plan.versions.find((v) => v.version === version) ?? null;
|
|
1484
|
+
}
|
|
1391
1485
|
async save(plans) {
|
|
1392
1486
|
try {
|
|
1393
1487
|
await mkdir(this.dirPath, { recursive: true });
|
|
@@ -1395,7 +1489,12 @@ var FilePlanStore = class {
|
|
|
1395
1489
|
const repoRoot = getRepoRoot();
|
|
1396
1490
|
await writeFile(join(this.dirPath, "repo_path.txt"), repoRoot, "utf-8");
|
|
1397
1491
|
} catch {}
|
|
1398
|
-
|
|
1492
|
+
const clean = plans.map((p) => {
|
|
1493
|
+
const copy = { ...p };
|
|
1494
|
+
delete copy.__backfilledVersions;
|
|
1495
|
+
return copy;
|
|
1496
|
+
});
|
|
1497
|
+
await writeFile(this.filePath, JSON.stringify(clean, null, 2), "utf-8");
|
|
1399
1498
|
} catch (err) {
|
|
1400
1499
|
console.error("Failed to save plans to file:", err);
|
|
1401
1500
|
}
|
|
@@ -1403,6 +1502,7 @@ var FilePlanStore = class {
|
|
|
1403
1502
|
async upsert(input) {
|
|
1404
1503
|
const plans = await this.getAll();
|
|
1405
1504
|
const plan = applyUpsert(plans, input, Date.now());
|
|
1505
|
+
backfillPlan(plan);
|
|
1406
1506
|
await this.save(plans);
|
|
1407
1507
|
return plan;
|
|
1408
1508
|
}
|
|
@@ -1415,6 +1515,8 @@ var FilePlanStore = class {
|
|
|
1415
1515
|
if (fields.source !== void 0) plan.source = fields.source;
|
|
1416
1516
|
if (fields.model !== void 0) plan.model = fields.model;
|
|
1417
1517
|
plan.updatedAt = Date.now();
|
|
1518
|
+
syncCurrentVersion(plan);
|
|
1519
|
+
backfillPlan(plan);
|
|
1418
1520
|
await this.save(plans);
|
|
1419
1521
|
return plan;
|
|
1420
1522
|
}
|
|
@@ -1443,11 +1545,13 @@ var FilePlanStore = class {
|
|
|
1443
1545
|
if (!plan) return null;
|
|
1444
1546
|
if (!plan.comments) plan.comments = [];
|
|
1445
1547
|
if (!fn(plan)) return null;
|
|
1548
|
+
backfillPlan(plan);
|
|
1446
1549
|
await this.save(plans);
|
|
1447
1550
|
return plan;
|
|
1448
1551
|
}
|
|
1449
1552
|
async addComment(planId, comment) {
|
|
1450
1553
|
return this.mutate(planId, (plan) => {
|
|
1554
|
+
if (typeof comment.createdAtPlanVersion !== "number") comment.createdAtPlanVersion = plan.version ?? 1;
|
|
1451
1555
|
plan.comments.push(comment);
|
|
1452
1556
|
return true;
|
|
1453
1557
|
});
|
|
@@ -1473,6 +1577,7 @@ var FilePlanStore = class {
|
|
|
1473
1577
|
return this.mutate(planId, (plan) => {
|
|
1474
1578
|
const c = plan.comments.find((x) => x.id === commentId);
|
|
1475
1579
|
if (!c) return false;
|
|
1580
|
+
if (typeof c.createdAtPlanVersion === "number" && typeof reply.createdAtPlanVersion !== "number") reply.createdAtPlanVersion = c.createdAtPlanVersion;
|
|
1476
1581
|
if (!c.replies) c.replies = [];
|
|
1477
1582
|
c.replies.push(reply);
|
|
1478
1583
|
return true;
|
|
@@ -1653,7 +1758,8 @@ var ReviewSession = class {
|
|
|
1653
1758
|
commentXml: input.commentXml,
|
|
1654
1759
|
openCount: input.openCount,
|
|
1655
1760
|
comments: input.comments,
|
|
1656
|
-
decision: input.decision
|
|
1761
|
+
decision: input.decision,
|
|
1762
|
+
mode: input.mode ?? "standard"
|
|
1657
1763
|
};
|
|
1658
1764
|
this.lastPayload = payload;
|
|
1659
1765
|
const waiters = [...this.waiters];
|
|
@@ -1747,7 +1853,8 @@ var PlanReviewSession = class {
|
|
|
1747
1853
|
decisionComment: input.decisionComment,
|
|
1748
1854
|
reviewXml: input.reviewXml,
|
|
1749
1855
|
openCommentCount: input.openCommentCount,
|
|
1750
|
-
plan: input.plan
|
|
1856
|
+
plan: input.plan,
|
|
1857
|
+
mode: input.mode ?? "standard"
|
|
1751
1858
|
};
|
|
1752
1859
|
this.lastPayload = payload;
|
|
1753
1860
|
const waiters = [...this.waiters];
|
|
@@ -2887,21 +2994,24 @@ function createApp(clientDir, diffOpts = DEFAULTS$1, commentStore, planStore, pr
|
|
|
2887
2994
|
app.post("/api/review/send", async (c) => {
|
|
2888
2995
|
const body = await c.req.json().catch(() => ({}));
|
|
2889
2996
|
const generalComment = typeof body?.generalComment === "string" ? body.generalComment : void 0;
|
|
2890
|
-
const decision = body?.decision === "approved" || body?.decision === "changes-requested" || body?.decision === "rejected" ? body.decision : void 0;
|
|
2997
|
+
const decision = body?.decision === "approved" || body?.decision === "changes-requested" || body?.decision === "rejected" || body?.decision === "comment-only" ? body.decision : void 0;
|
|
2998
|
+
const mode = body?.mode === "comment-only" || body?.mode === "standard" ? body.mode : "standard";
|
|
2891
2999
|
const all = await store.getAll();
|
|
2892
3000
|
const openCount = all.filter((x) => x.status === "open").length;
|
|
2893
3001
|
const payload = reviewSession.send({
|
|
2894
3002
|
sentAt: Date.now(),
|
|
2895
|
-
commentXml: formatComments(all, generalComment, decision),
|
|
3003
|
+
commentXml: formatComments(all, generalComment, decision, mode),
|
|
2896
3004
|
openCount,
|
|
2897
3005
|
comments: all,
|
|
2898
|
-
decision
|
|
3006
|
+
decision,
|
|
3007
|
+
mode
|
|
2899
3008
|
});
|
|
2900
3009
|
return c.json({
|
|
2901
3010
|
ok: true,
|
|
2902
3011
|
round: payload.round,
|
|
2903
3012
|
openCount: payload.openCount,
|
|
2904
3013
|
decision: payload.decision,
|
|
3014
|
+
mode: payload.mode,
|
|
2905
3015
|
waiters: reviewSession.snapshot().waiters
|
|
2906
3016
|
});
|
|
2907
3017
|
});
|
|
@@ -2928,6 +3038,29 @@ function createApp(clientDir, diffOpts = DEFAULTS$1, commentStore, planStore, pr
|
|
|
2928
3038
|
if (!plan) return c.json({ error: "Plan not found" }, 404);
|
|
2929
3039
|
return c.json(plan);
|
|
2930
3040
|
});
|
|
3041
|
+
app.get("/api/plans/:id/versions", async (c) => {
|
|
3042
|
+
const plan = await plans.get(c.req.param("id"));
|
|
3043
|
+
if (!plan) return c.json({ error: "Plan not found" }, 404);
|
|
3044
|
+
return c.json(plan.versions ?? []);
|
|
3045
|
+
});
|
|
3046
|
+
app.get("/api/plans/:id/versions/:n", async (c) => {
|
|
3047
|
+
const id = c.req.param("id");
|
|
3048
|
+
const n = Number(c.req.param("n"));
|
|
3049
|
+
if (!Number.isFinite(n) || n < 1) return c.json({ error: "version must be a positive integer" }, 400);
|
|
3050
|
+
const plan = await plans.get(id);
|
|
3051
|
+
if (!plan) return c.json({ error: "Plan not found" }, 404);
|
|
3052
|
+
const version = (plan.versions ?? []).find((v) => v.version === n);
|
|
3053
|
+
if (!version) return c.json({ error: `Version ${n} not found` }, 404);
|
|
3054
|
+
return c.json({
|
|
3055
|
+
version,
|
|
3056
|
+
plan: {
|
|
3057
|
+
id: plan.id,
|
|
3058
|
+
title: plan.title,
|
|
3059
|
+
decision: plan.decision,
|
|
3060
|
+
currentVersion: plan.version
|
|
3061
|
+
}
|
|
3062
|
+
});
|
|
3063
|
+
});
|
|
2931
3064
|
app.post("/api/plans", async (c) => {
|
|
2932
3065
|
const body = await c.req.json().catch(() => ({}));
|
|
2933
3066
|
if (typeof body.body !== "string" || !body.body.trim()) return c.json({ error: "A plan body (markdown) is required" }, 400);
|
|
@@ -2967,6 +3100,7 @@ function createApp(clientDir, diffOpts = DEFAULTS$1, commentStore, planStore, pr
|
|
|
2967
3100
|
const anchorStart = startLineNumber ?? lineNumber;
|
|
2968
3101
|
const lineContent = typeof body.lineContent === "string" && body.lineContent ? body.lineContent : lineNumber > 0 ? extractPlanLines(plan.body, anchorStart, lineNumber) : "";
|
|
2969
3102
|
const sectionTitle = typeof body.sectionTitle === "string" && body.sectionTitle ? body.sectionTitle : lineNumber > 0 ? sectionTitleForLine(plan.body, anchorStart) : void 0;
|
|
3103
|
+
const createdAtPlanVersion = Number.isFinite(body.createdAtPlanVersion) ? Number(body.createdAtPlanVersion) : plan.version;
|
|
2970
3104
|
const comment = {
|
|
2971
3105
|
id: crypto.randomUUID(),
|
|
2972
3106
|
lineNumber,
|
|
@@ -2976,6 +3110,7 @@ function createApp(clientDir, diffOpts = DEFAULTS$1, commentStore, planStore, pr
|
|
|
2976
3110
|
body: body.body,
|
|
2977
3111
|
status: "open",
|
|
2978
3112
|
createdAt: Date.now(),
|
|
3113
|
+
createdAtPlanVersion,
|
|
2979
3114
|
replies: []
|
|
2980
3115
|
};
|
|
2981
3116
|
const updated = await plans.addComment(planId, comment);
|
|
@@ -3025,8 +3160,9 @@ function createApp(clientDir, diffOpts = DEFAULTS$1, commentStore, planStore, pr
|
|
|
3025
3160
|
const planId = c.req.param("id");
|
|
3026
3161
|
const body = await c.req.json().catch(() => ({}));
|
|
3027
3162
|
const decision = body.decision;
|
|
3028
|
-
if (decision !== "approved" && decision !== "rejected" && decision !== "changes-requested") return c.json({ error: "decision must be one of: approved, rejected, changes-requested" }, 400);
|
|
3163
|
+
if (decision !== "approved" && decision !== "rejected" && decision !== "changes-requested" && decision !== "comment-only") return c.json({ error: "decision must be one of: approved, rejected, changes-requested, comment-only" }, 400);
|
|
3029
3164
|
const decisionComment = typeof body.decisionComment === "string" ? body.decisionComment : void 0;
|
|
3165
|
+
const mode = body?.mode === "comment-only" || body?.mode === "standard" ? body.mode : "standard";
|
|
3030
3166
|
const plan = await plans.setDecision(planId, decision, decisionComment);
|
|
3031
3167
|
if (!plan) return c.json({ error: "Plan not found" }, 404);
|
|
3032
3168
|
const openCommentCount = (plan.comments ?? []).filter((x) => x.status === "open").length;
|
|
@@ -3035,14 +3171,16 @@ function createApp(clientDir, diffOpts = DEFAULTS$1, commentStore, planStore, pr
|
|
|
3035
3171
|
planId,
|
|
3036
3172
|
decision,
|
|
3037
3173
|
decisionComment: plan.decisionComment,
|
|
3038
|
-
reviewXml: formatPlanReview(plan),
|
|
3174
|
+
reviewXml: formatPlanReview(plan, { mode }),
|
|
3039
3175
|
openCommentCount,
|
|
3040
|
-
plan
|
|
3176
|
+
plan,
|
|
3177
|
+
mode
|
|
3041
3178
|
});
|
|
3042
3179
|
return c.json({
|
|
3043
3180
|
ok: true,
|
|
3044
3181
|
round: payload.round,
|
|
3045
3182
|
decision,
|
|
3183
|
+
mode: payload.mode,
|
|
3046
3184
|
openCommentCount,
|
|
3047
3185
|
waiters: planReviewSession.snapshot().waiters
|
|
3048
3186
|
});
|
|
@@ -3346,7 +3484,7 @@ const QUOTES = [
|
|
|
3346
3484
|
author: "Unknown"
|
|
3347
3485
|
},
|
|
3348
3486
|
{
|
|
3349
|
-
text: "A QA engineer walks into a
|
|
3487
|
+
text: "A QA engineer walks into a coffie shop. Orders 0 cups. Orders 999999 cups. Orders NULL cups. Walks in through the window.",
|
|
3350
3488
|
author: "Unknown"
|
|
3351
3489
|
},
|
|
3352
3490
|
{
|
|
@@ -3671,11 +3809,11 @@ if (new Set([
|
|
|
3671
3809
|
"gh"
|
|
3672
3810
|
]).has(args[0])) {
|
|
3673
3811
|
if (args[0] === "mcp") {
|
|
3674
|
-
const { startMcpServer } = await import("./mcp-
|
|
3812
|
+
const { startMcpServer } = await import("./mcp-DNZQvKKF.mjs");
|
|
3675
3813
|
await startMcpServer();
|
|
3676
3814
|
await new Promise(() => {});
|
|
3677
3815
|
}
|
|
3678
|
-
const { runSubcommand } = await import("./cli-agent-
|
|
3816
|
+
const { runSubcommand } = await import("./cli-agent-B4hU6Xay.mjs");
|
|
3679
3817
|
process.exit(await runSubcommand(args[0], args.slice(1)));
|
|
3680
3818
|
}
|
|
3681
3819
|
let showSubcommand = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./index-Dv9jPmOc.js";import{t}from"./html-CK8auhK8.js";var n=[Object.freeze(JSON.parse('{"injectionSelector":"L:text.html -comment","name":"angular-expression","patterns":[{"include":"#ngExpression"}],"repository":{"arrayLiteral":{"begin":"\\\\[","beginCaptures":{"0":{"name":"meta.brace.square.ts"}},"end":"]","endCaptures":{"0":{"name":"meta.brace.square.ts"}},"name":"meta.array.literal.ts","patterns":[{"include":"#ngExpression"},{"include":"#punctuationComma"}]},"booleanLiteral":{"patterns":[{"match":"(?<![$.])\\\\btrue\\\\b(?!\\\\$)","name":"constant.language.boolean.true.ts"},{"match":"(?<![$.])\\\\bfalse\\\\b(?!\\\\$)","name":"constant.language.boolean.false.ts"}]},"expressionOperator":{"patterns":[{"captures":{"1":{"name":"keyword.operator.logical.ts"},"2":{"name":"entity.name.function.pipe.ng"}},"match":"((?<!\\\\|)\\\\|(?!\\\\|))\\\\s?([-$0-9A-Z_a-z]*)"},{"match":"(?<![$.])\\\\b(let)\\\\b(?!\\\\$)","name":"storage.type.ts"},{"match":"(?<![$.])\\\\b(await)\\\\b(?!\\\\$)","name":"keyword.control.flow.ts"},{"match":"(?<![$.])\\\\bdelete\\\\b(?!\\\\$)","name":"keyword.operator.expression.delete.ts"},{"match":"(?<![$.])\\\\bin\\\\b(?!\\\\$)","name":"keyword.operator.expression.in.ts"},{"match":"(?<![$.])\\\\bof\\\\b(?!\\\\$)","name":"keyword.operator.expression.of.ts"},{"match":"(?<![$.])\\\\bif\\\\b(?!\\\\$)","name":"keyword.control.if.ts"},{"match":"(?<![$.])\\\\belse\\\\b(?!\\\\$)","name":"keyword.control.else.ts"},{"match":"(?<![$.])\\\\bthen\\\\b(?!\\\\$)","name":"keyword.control.then.ts"},{"match":"(?<![$.])\\\\binstanceof\\\\b(?!\\\\$)","name":"keyword.operator.expression.instanceof.ts"},{"match":"(?<![$.])\\\\bnew\\\\b(?!\\\\$)","name":"keyword.operator.new.ts"},{"match":"(?<![$.])\\\\bvoid\\\\b(?!\\\\$)","name":"keyword.operator.expression.void.ts"},{"begin":"(?<![$.])\\\\bas\\\\b(?!\\\\$)","beginCaptures":{"0":{"name":"storage.type.as.ts"}},"end":"(?=$|[]\\"\'),:;}])","patterns":[{"include":"#type"}]},{"match":"(?:\\\\*|(?<!\\\\()/|[-%+])=","name":"keyword.operator.assignment.compound.ts"},{"match":"(?:[\\\\&^]|<<|>>>??|\\\\|)=","name":"keyword.operator.assignment.compound.bitwise.ts"},{"match":"<<|>>>?","name":"keyword.operator.bitwise.shift.ts"},{"match":"[!=]==?","name":"keyword.operator.comparison.ts"},{"match":"<=|>=|<>|[<>]","name":"keyword.operator.relational.ts"},{"match":"!|&&|\\\\?\\\\?|\\\\|\\\\|","name":"keyword.operator.logical.ts"},{"match":"[\\\\&^|~]","name":"keyword.operator.bitwise.ts"},{"match":"=","name":"keyword.operator.assignment.ts"},{"match":"--","name":"keyword.operator.decrement.ts"},{"match":"\\\\+\\\\+","name":"keyword.operator.increment.ts"},{"match":"[-%*+/]","name":"keyword.operator.arithmetic.ts"},{"captures":{"1":{"name":"keyword.operator.arithmetic.ts"}},"match":"(?<=[$_[:alnum:]])\\\\s*(/)(?![*/])"},{"include":"#typeofOperator"}]},"functionCall":{"begin":"(?=(\\\\??\\\\.\\\\s*)?([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\()","end":"(?<=\\\\))(?!(\\\\??\\\\.\\\\s*)?([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\()","patterns":[{"match":"\\\\?","name":"punctuation.accessor.ts"},{"match":"\\\\.","name":"punctuation.accessor.ts"},{"match":"([$_[:alpha:]][$_[:alnum:]]*)","name":"entity.name.function.ts"},{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.ts"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.ts"}},"name":"meta.type.parameters.ts","patterns":[{"include":"#type"},{"include":"#punctuationComma"}]},{"include":"#parenExpression"}]},"functionParameters":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ts"}},"name":"meta.parameters.ts","patterns":[{"include":"#decorator"},{"include":"#parameterName"},{"include":"#variableInitializer"},{"match":",","name":"punctuation.separator.parameter.ts"}]},"identifiers":{"patterns":[{"match":"([$_[:alpha:]][$_[:alnum:]]*)(?=\\\\s*\\\\.\\\\s*prototype\\\\b(?!\\\\$))","name":"support.class.ts"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"constant.other.object.property.ts"},"3":{"name":"variable.other.object.property.ts"}},"match":"([!?]?\\\\.)\\\\s*(?:(\\\\p{upper}[$_\\\\d[:upper:]]*)|([$_[:alpha:]][$_[:alnum:]]*))(?=\\\\s*\\\\.\\\\s*[$_[:alpha:]][$_[:alnum:]]*)"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"entity.name.function.ts"}},"match":"(?:([!?]?\\\\.)\\\\s*)?([$_[:alpha:]][$_[:alnum:]]*)(?=\\\\s*=\\\\s*((async\\\\s+)|(function\\\\s*[(<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)|((<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)))"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"constant.other.property.ts"}},"match":"([!?]?\\\\.)\\\\s*(\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"variable.other.property.ts"}},"match":"([!?]?\\\\.)\\\\s*([$_[:alpha:]][$_[:alnum:]]*)"},{"captures":{"1":{"name":"constant.other.object.ts"},"2":{"name":"variable.other.object.ts"}},"match":"(?:(\\\\p{upper}[$_\\\\d[:upper:]]*)|([$_[:alpha:]][$_[:alnum:]]*))(?=\\\\s*\\\\.\\\\s*[$_[:alpha:]][$_[:alnum:]]*)"},{"match":"(\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])","name":"constant.character.other"},{"match":"[$_[:alpha:]][$_[:alnum:]]*","name":"variable.other.readwrite.ts"}]},"literal":{"name":"literal.ts","patterns":[{"include":"#numericLiteral"},{"include":"#booleanLiteral"},{"include":"#nullLiteral"},{"include":"#undefinedLiteral"},{"include":"#numericConstantLiteral"},{"include":"#arrayLiteral"},{"include":"#thisLiteral"}]},"ngExpression":{"name":"meta.expression.ng","patterns":[{"include":"#string"},{"include":"#literal"},{"include":"#ternaryExpression"},{"include":"#expressionOperator"},{"include":"#functionCall"},{"include":"#identifiers"},{"include":"#parenExpression"},{"include":"#punctuationComma"},{"include":"#punctuationSemicolon"},{"include":"#punctuationAccessor"}]},"nullLiteral":{"match":"(?<![$.])\\\\bnull\\\\b(?!\\\\$)","name":"constant.language.null.ts"},"numericConstantLiteral":{"patterns":[{"match":"(?<![$.])\\\\bNaN\\\\b(?!\\\\$)","name":"constant.language.nan.ts"},{"match":"(?<![$.])\\\\bInfinity\\\\b(?!\\\\$)","name":"constant.language.infinity.ts"}]},"numericLiteral":{"patterns":[{"match":"\\\\b(?<!\\\\$)0([Xx])\\\\h+\\\\b(?!\\\\$)","name":"constant.numeric.hex.ts"},{"match":"\\\\b(?<!\\\\$)0([Bb])[01]+\\\\b(?!\\\\$)","name":"constant.numeric.binary.ts"},{"match":"\\\\\\\\b(?<!\\\\$)0([Oo])?[0-7]+\\\\b(?!\\\\$)","name":"constant.numeric.octal.ts"},{"captures":{"0":{"name":"constant.numeric.decimal.ts"},"1":{"name":"meta.delimiter.decimal.period.ts"},"2":{"name":"meta.delimiter.decimal.period.ts"},"3":{"name":"meta.delimiter.decimal.period.ts"},"4":{"name":"meta.delimiter.decimal.period.ts"},"5":{"name":"meta.delimiter.decimal.period.ts"},"6":{"name":"meta.delimiter.decimal.period.ts"}},"match":"(?<!\\\\$)(?:\\\\b[0-9]+(\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+(\\\\.)[Ee][-+]?[0-9]+\\\\b|\\\\B(\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+(\\\\.)\\\\B|\\\\B(\\\\.)[0-9]+\\\\b|\\\\b[0-9]+\\\\b(?!\\\\.))(?!\\\\$)"}]},"parameterName":{"patterns":[{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"keyword.operator.rest.ts"},"4":{"name":"entity.name.function.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:\\\\s*\\\\b(readonly)\\\\s+)?(?:\\\\s*\\\\b(p(?:ublic|rivate|rotected))\\\\s+)?(\\\\.\\\\.\\\\.)?\\\\s*(?<![:=])([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(\\\\??)(?=\\\\s*(=\\\\s*((async\\\\s+)|(function\\\\s*[(<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)|((<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)))|(:\\\\s*((<)|(\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>))))))))"},{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"keyword.operator.rest.ts"},"4":{"name":"variable.parameter.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:\\\\s*\\\\b(readonly)\\\\s+)?(?:\\\\s*\\\\b(p(?:ublic|rivate|rotected))\\\\s+)?(\\\\.\\\\.\\\\.)?\\\\s*(?<![:=])([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(\\\\??)"}]},"parenExpression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#ngExpression"},{"include":"#punctuationComma"}]},"punctuationAccessor":{"match":"(?:\\\\?|!?)\\\\.","name":"punctuation.accessor.ts"},"punctuationComma":{"match":",","name":"punctuation.separator.comma.ts"},"punctuationSemicolon":{"match":";","name":"punctuation.terminator.statement.ts"},"qstringDouble":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ts"}},"end":"(\\")|([^\\\\n\\\\\\\\])$","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"invalid.illegal.newline.ts"}},"name":"string.quoted.double.ts","patterns":[{"include":"#stringCharacterEscape"}]},"qstringSingle":{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ts"}},"end":"(\')|([^\\\\n\\\\\\\\])$","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"invalid.illegal.newline.ts"}},"name":"string.quoted.single.ts","patterns":[{"include":"#stringCharacterEscape"}]},"string":{"patterns":[{"include":"#qstringSingle"},{"include":"#qstringDouble"},{"include":"#templateLiteral"}]},"stringCharacterEscape":{"match":"\\\\\\\\(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)","name":"constant.character.escape.ts"},"templateLiteral":{"patterns":[{"include":"#templateLiteralCall"},{"begin":"([$_[:alpha:]][$_[:alnum:]]*)?(`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ts"},"2":{"name":"string.template.ts punctuation.definition.string.template.begin.ts"}},"contentName":"string.template.ts","end":"`","endCaptures":{"0":{"name":"string.template.ts punctuation.definition.string.template.end.ts"}},"patterns":[{"include":"#templateLiteralSubstitutionElement"},{"include":"#stringCharacterEscape"}]}]},"templateLiteralCall":{"patterns":[{"begin":"(?=(([$_[:alpha:]][$_[:alnum:]]*\\\\s*\\\\??\\\\.\\\\s*)*|(\\\\??\\\\.\\\\s*)?)([$_[:alpha:]][$_[:alnum:]]*)(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\\\s*)?`)","end":"(?=`)","patterns":[{"begin":"(?=(([$_[:alpha:]][$_[:alnum:]]*\\\\s*\\\\??\\\\.\\\\s*)*|(\\\\??\\\\.\\\\s*)?)([$_[:alpha:]][$_[:alnum:]]*))","end":"(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\\\s*)?`)","patterns":[{"include":"#support-function-call-identifiers"},{"match":"([$_[:alpha:]][$_[:alnum:]]*)","name":"entity.name.function.tagged-template.ts"}]},{"include":"#typeArguments"}]},{"begin":"([$_[:alpha:]][$_[:alnum:]]*)?\\\\s*(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\\\s*)`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ts"}},"end":"(?=`)","patterns":[{"include":"#typeArguments"}]}]},"templateLiteralSubstitutionElement":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ts"}},"contentName":"meta.embedded.line.ts","end":"}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ts"}},"name":"meta.template.expression.ts","patterns":[{"include":"#ngExpression"}]},"ternaryExpression":{"begin":"(?!\\\\?\\\\.\\\\s*\\\\D)(\\\\?)(?!\\\\?)","beginCaptures":{"1":{"name":"keyword.operator.ternary.ts"}},"end":"\\\\s*(:)","endCaptures":{"1":{"name":"keyword.operator.ternary.ts"}},"patterns":[{"include":"#ngExpression"}]},"thisLiteral":{"match":"(?<![$.])\\\\bthis\\\\b(?!\\\\$)","name":"variable.language.this.ts"},"type":{"name":"meta.type.ts","patterns":[{"include":"#string"},{"include":"#numericLiteral"},{"include":"#typeBuiltinLiterals"},{"include":"#typeTuple"},{"include":"#typeObject"},{"include":"#typeOperators"},{"include":"#typeFnTypeParameters"},{"include":"#typeParenOrFunctionParameters"},{"include":"#typeName"}]},"typeAnnotation":{"begin":":","beginCaptures":{"0":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?=$|[]),;}]|//|\\")|(?==[^>])|(?<=[]$)>_}[:alpha:]])\\\\s*(?=\\\\{)","name":"meta.type.annotation.ts","patterns":[{"include":"#type"}]},"typeArguments":{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.ts"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.ts"}},"name":"meta.type.parameters.ts","patterns":[{"include":"#typeArgumentsBody"}]},"typeArgumentsBody":{"patterns":[{"captures":{"0":{"name":"keyword.operator.type.ts"}},"match":"(?<![$_[:alnum:]])(?:(?<=\\\\.\\\\.\\\\.)|(?<!\\\\.))(_)(?![$_[:alnum:]])(?:(?=\\\\.\\\\.\\\\.)|(?!\\\\.))"},{"include":"#type"},{"include":"#punctuationComma"}]},"typeBuiltinLiterals":{"match":"(?<![$.])\\\\b(this|true|false|undefined|null)\\\\b(?!\\\\$)","name":"support.type.builtin.ts"},"typeFnTypeParameters":{"patterns":[{"captures":{"1":{"name":"keyword.control.new.ts"}},"match":"(?<![$.])\\\\b(new)\\\\b(?=\\\\s*<)","name":"meta.type.constructor.ts"},{"begin":"(?<![$.])\\\\b(new)\\\\b\\\\s*(?=\\\\()","beginCaptures":{"1":{"name":"keyword.control.new.ts"}},"end":"(?<=\\\\))","name":"meta.type.constructor.ts","patterns":[{"include":"#functionParameters"}]},{"begin":"(?<=>)\\\\s*(?=\\\\()","end":"(?<=\\\\))","include":"#typeofOperator","name":"meta.type.function.ts","patterns":[{"include":"#functionParameters"}]},{"begin":"((?=\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>))))))","end":"(?<=\\\\))","name":"meta.type.function.ts","patterns":[{"include":"#functionParameters"}]}]},"typeName":{"patterns":[{"captures":{"1":{"name":"entity.name.type.module.ts"},"2":{"name":"punctuation.accessor.ts"}},"match":"([$_[:alpha:]][$_[:alnum:]]*)\\\\s*([!?]?\\\\.)"},{"match":"[$_[:alpha:]][$_[:alnum:]]*","name":"entity.name.type.ts"}]},"typeObject":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"name":"meta.object.type.ts","patterns":[{"include":"#typeObjectMembers"}]},"typeObjectMembers":{"patterns":[{"include":"#typeAnnotation"},{"include":"#punctuationComma"},{"include":"#punctuationSemicolon"}]},"typeOperators":{"patterns":[{"include":"#typeofOperator"},{"match":"[\\\\&|]","name":"keyword.operator.type.ts"},{"match":"(?<![$.])\\\\bkeyof\\\\b(?!\\\\$)","name":"keyword.operator.expression.keyof.ts"}]},"typeParenOrFunctionParameters":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"name":"meta.type.paren.cover.ts","patterns":[{"include":"#type"},{"include":"#functionParameters"}]},"typeTuple":{"begin":"\\\\[","beginCaptures":{"0":{"name":"meta.brace.square.ts"}},"end":"]","endCaptures":{"0":{"name":"meta.brace.square.ts"}},"name":"meta.type.tuple.ts","patterns":[{"include":"#type"},{"include":"#punctuationComma"}]},"typeofOperator":{"match":"(?<![$.])\\\\btypeof\\\\b(?!\\\\$)","name":"keyword.operator.expression.typeof.ts"},"undefinedLiteral":{"match":"(?<![$.])\\\\bundefined\\\\b(?!\\\\$)","name":"constant.language.undefined.ts"},"variableInitializer":{"begin":"(?<![!=])(=)(?!=)","beginCaptures":{"1":{"name":"keyword.operator.assignment.ts"}},"end":"(?=$|[]),;}])","patterns":[{"include":"#ngExpression"}]}},"scopeName":"expression.ng"}'))],r=Object.freeze(JSON.parse(`{"injectTo":["text.html.derivative","text.html.derivative.ng","source.ts.ng"],"injectionSelector":"L:text.html -comment -expression.ng -meta.tag -source.css -source.js","name":"angular-let-declaration","patterns":[{"include":"#letDeclaration"}],"repository":{"letDeclaration":{"begin":"(@let)\\\\s+([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(=)?","beginCaptures":{"1":{"name":"storage.type.ng"},"2":{"name":"variable.other.constant.ng"},"3":{"name":"keyword.operator.assignment.ng"}},"end":"(?<=;)","name":"meta.definition.variable.ng","patterns":[{"include":"#letInitializer"}]},"letInitializer":{"begin":"\\\\s*","beginCaptures":{"0":{"name":"keyword.operator.assignment.ng"}},"contentName":"meta.definition.variable.initializer.ng","end":";","endCaptures":{"0":{"name":"punctuation.terminator.statement.ng"}},"patterns":[{"include":"expression.ng"}]}},"scopeName":"template.let.ng","embeddedLangs":["angular-expression"]}`)),i=[...n,r],a=Object.freeze(JSON.parse(`{"injectTo":["text.html.derivative","text.html.derivative.ng","source.ts.ng"],"injectionSelector":"L:text.html -comment","name":"angular-template","patterns":[{"include":"#interpolation"}],"repository":{"interpolation":{"begin":"\\\\{\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"contentName":"expression.ng","end":"}}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"expression.ng"}]}},"scopeName":"template.ng","embeddedLangs":["angular-expression"]}`)),o=[...n,a],s=Object.freeze(JSON.parse(`{"injectTo":["text.html.derivative","text.html.derivative.ng","source.ts.ng"],"injectionSelector":"L:text.html -comment -expression.ng -meta.tag -source.css -source.js","name":"angular-template-blocks","patterns":[{"include":"#block"}],"repository":{"block":{"begin":"(@)(if|else if|else|defer|placeholder|loading|error|switch|case|default|for|empty)\\\\s*","beginCaptures":{"1":{"patterns":[{"include":"#transition"}]},"2":{"name":"keyword.control.block.kind.ng"}},"end":"(?<=})","name":"control.block.ng","patterns":[{"include":"#blockExpression"},{"include":"#blockBody"}]},"blockBody":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"contentName":"control.block.body.ng","end":"}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"text.html.derivative.ng"},{"include":"template.ng"}]},"blockExpression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"contentName":"control.block.expression.ng","end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#blockExpressionOfClause"},{"include":"#blockExpressionLetBinding"},{"include":"#blockExpressionTrackClause"},{"include":"expression.ng"}]},"blockExpressionLetBinding":{"begin":"\\\\blet\\\\b","beginCaptures":{"0":{"name":"storage.type.ng"}},"end":"(?=[$)])|(?<=;)","patterns":[{"include":"expression.ng"}]},"blockExpressionOfClause":{"begin":"([$_[:alpha:]][$_[:alnum:]]*)\\\\s+(of)\\\\b","beginCaptures":{"1":{"name":"variable.other.constant.ng"},"2":{"name":"keyword.operator.expression.of.ng"}},"end":"(?=[$)])|(?<=;)","patterns":[{"include":"expression.ng"}]},"blockExpressionTrackClause":{"begin":"\\\\btrack\\\\b","beginCaptures":{"0":{"name":"keyword.control.track.ng"}},"end":"(?=[$)])|(?<=;)","patterns":[{"include":"expression.ng"}]},"transition":{"match":"@","name":"keyword.control.block.transition.ng"}},"scopeName":"template.blocks.ng","embeddedLangs":["angular-expression","angular-template"]}`)),c=[...n,...o,s],l=e({default:()=>d}),u=Object.freeze(JSON.parse(`{"displayName":"Angular HTML","injections":{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{"patterns":[{"match":"<","name":"invalid.illegal.bad-angle-bracket.html"}]}},"name":"angular-html","patterns":[{"include":"text.html.basic#core-minus-invalid"},{"begin":"(</?)(\\\\w[^>\\\\s]*)(?<!/)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"((?: ?/)?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.unrecognized.html.derivative","patterns":[{"include":"text.html.basic#attribute"}]}],"scopeName":"text.html.derivative.ng","embeddedLangs":["html","angular-expression","angular-let-declaration","angular-template","angular-template-blocks"]}`)),d=[...t,...n,...i,...o,...c,u];export{i as a,o as i,l as n,n as o,c as r,d as t};
|
|
1
|
+
import{r as e}from"./index-BIrpcT6-.js";import{t}from"./html-CHYhpzfH.js";var n=[Object.freeze(JSON.parse('{"injectionSelector":"L:text.html -comment","name":"angular-expression","patterns":[{"include":"#ngExpression"}],"repository":{"arrayLiteral":{"begin":"\\\\[","beginCaptures":{"0":{"name":"meta.brace.square.ts"}},"end":"]","endCaptures":{"0":{"name":"meta.brace.square.ts"}},"name":"meta.array.literal.ts","patterns":[{"include":"#ngExpression"},{"include":"#punctuationComma"}]},"booleanLiteral":{"patterns":[{"match":"(?<![$.])\\\\btrue\\\\b(?!\\\\$)","name":"constant.language.boolean.true.ts"},{"match":"(?<![$.])\\\\bfalse\\\\b(?!\\\\$)","name":"constant.language.boolean.false.ts"}]},"expressionOperator":{"patterns":[{"captures":{"1":{"name":"keyword.operator.logical.ts"},"2":{"name":"entity.name.function.pipe.ng"}},"match":"((?<!\\\\|)\\\\|(?!\\\\|))\\\\s?([-$0-9A-Z_a-z]*)"},{"match":"(?<![$.])\\\\b(let)\\\\b(?!\\\\$)","name":"storage.type.ts"},{"match":"(?<![$.])\\\\b(await)\\\\b(?!\\\\$)","name":"keyword.control.flow.ts"},{"match":"(?<![$.])\\\\bdelete\\\\b(?!\\\\$)","name":"keyword.operator.expression.delete.ts"},{"match":"(?<![$.])\\\\bin\\\\b(?!\\\\$)","name":"keyword.operator.expression.in.ts"},{"match":"(?<![$.])\\\\bof\\\\b(?!\\\\$)","name":"keyword.operator.expression.of.ts"},{"match":"(?<![$.])\\\\bif\\\\b(?!\\\\$)","name":"keyword.control.if.ts"},{"match":"(?<![$.])\\\\belse\\\\b(?!\\\\$)","name":"keyword.control.else.ts"},{"match":"(?<![$.])\\\\bthen\\\\b(?!\\\\$)","name":"keyword.control.then.ts"},{"match":"(?<![$.])\\\\binstanceof\\\\b(?!\\\\$)","name":"keyword.operator.expression.instanceof.ts"},{"match":"(?<![$.])\\\\bnew\\\\b(?!\\\\$)","name":"keyword.operator.new.ts"},{"match":"(?<![$.])\\\\bvoid\\\\b(?!\\\\$)","name":"keyword.operator.expression.void.ts"},{"begin":"(?<![$.])\\\\bas\\\\b(?!\\\\$)","beginCaptures":{"0":{"name":"storage.type.as.ts"}},"end":"(?=$|[]\\"\'),:;}])","patterns":[{"include":"#type"}]},{"match":"(?:\\\\*|(?<!\\\\()/|[-%+])=","name":"keyword.operator.assignment.compound.ts"},{"match":"(?:[\\\\&^]|<<|>>>??|\\\\|)=","name":"keyword.operator.assignment.compound.bitwise.ts"},{"match":"<<|>>>?","name":"keyword.operator.bitwise.shift.ts"},{"match":"[!=]==?","name":"keyword.operator.comparison.ts"},{"match":"<=|>=|<>|[<>]","name":"keyword.operator.relational.ts"},{"match":"!|&&|\\\\?\\\\?|\\\\|\\\\|","name":"keyword.operator.logical.ts"},{"match":"[\\\\&^|~]","name":"keyword.operator.bitwise.ts"},{"match":"=","name":"keyword.operator.assignment.ts"},{"match":"--","name":"keyword.operator.decrement.ts"},{"match":"\\\\+\\\\+","name":"keyword.operator.increment.ts"},{"match":"[-%*+/]","name":"keyword.operator.arithmetic.ts"},{"captures":{"1":{"name":"keyword.operator.arithmetic.ts"}},"match":"(?<=[$_[:alnum:]])\\\\s*(/)(?![*/])"},{"include":"#typeofOperator"}]},"functionCall":{"begin":"(?=(\\\\??\\\\.\\\\s*)?([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\()","end":"(?<=\\\\))(?!(\\\\??\\\\.\\\\s*)?([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\()","patterns":[{"match":"\\\\?","name":"punctuation.accessor.ts"},{"match":"\\\\.","name":"punctuation.accessor.ts"},{"match":"([$_[:alpha:]][$_[:alnum:]]*)","name":"entity.name.function.ts"},{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.ts"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.ts"}},"name":"meta.type.parameters.ts","patterns":[{"include":"#type"},{"include":"#punctuationComma"}]},{"include":"#parenExpression"}]},"functionParameters":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.ts"}},"name":"meta.parameters.ts","patterns":[{"include":"#decorator"},{"include":"#parameterName"},{"include":"#variableInitializer"},{"match":",","name":"punctuation.separator.parameter.ts"}]},"identifiers":{"patterns":[{"match":"([$_[:alpha:]][$_[:alnum:]]*)(?=\\\\s*\\\\.\\\\s*prototype\\\\b(?!\\\\$))","name":"support.class.ts"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"constant.other.object.property.ts"},"3":{"name":"variable.other.object.property.ts"}},"match":"([!?]?\\\\.)\\\\s*(?:(\\\\p{upper}[$_\\\\d[:upper:]]*)|([$_[:alpha:]][$_[:alnum:]]*))(?=\\\\s*\\\\.\\\\s*[$_[:alpha:]][$_[:alnum:]]*)"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"entity.name.function.ts"}},"match":"(?:([!?]?\\\\.)\\\\s*)?([$_[:alpha:]][$_[:alnum:]]*)(?=\\\\s*=\\\\s*((async\\\\s+)|(function\\\\s*[(<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)|((<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)))"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"constant.other.property.ts"}},"match":"([!?]?\\\\.)\\\\s*(\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])"},{"captures":{"1":{"name":"punctuation.accessor.ts"},"2":{"name":"variable.other.property.ts"}},"match":"([!?]?\\\\.)\\\\s*([$_[:alpha:]][$_[:alnum:]]*)"},{"captures":{"1":{"name":"constant.other.object.ts"},"2":{"name":"variable.other.object.ts"}},"match":"(?:(\\\\p{upper}[$_\\\\d[:upper:]]*)|([$_[:alpha:]][$_[:alnum:]]*))(?=\\\\s*\\\\.\\\\s*[$_[:alpha:]][$_[:alnum:]]*)"},{"match":"(\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])","name":"constant.character.other"},{"match":"[$_[:alpha:]][$_[:alnum:]]*","name":"variable.other.readwrite.ts"}]},"literal":{"name":"literal.ts","patterns":[{"include":"#numericLiteral"},{"include":"#booleanLiteral"},{"include":"#nullLiteral"},{"include":"#undefinedLiteral"},{"include":"#numericConstantLiteral"},{"include":"#arrayLiteral"},{"include":"#thisLiteral"}]},"ngExpression":{"name":"meta.expression.ng","patterns":[{"include":"#string"},{"include":"#literal"},{"include":"#ternaryExpression"},{"include":"#expressionOperator"},{"include":"#functionCall"},{"include":"#identifiers"},{"include":"#parenExpression"},{"include":"#punctuationComma"},{"include":"#punctuationSemicolon"},{"include":"#punctuationAccessor"}]},"nullLiteral":{"match":"(?<![$.])\\\\bnull\\\\b(?!\\\\$)","name":"constant.language.null.ts"},"numericConstantLiteral":{"patterns":[{"match":"(?<![$.])\\\\bNaN\\\\b(?!\\\\$)","name":"constant.language.nan.ts"},{"match":"(?<![$.])\\\\bInfinity\\\\b(?!\\\\$)","name":"constant.language.infinity.ts"}]},"numericLiteral":{"patterns":[{"match":"\\\\b(?<!\\\\$)0([Xx])\\\\h+\\\\b(?!\\\\$)","name":"constant.numeric.hex.ts"},{"match":"\\\\b(?<!\\\\$)0([Bb])[01]+\\\\b(?!\\\\$)","name":"constant.numeric.binary.ts"},{"match":"\\\\\\\\b(?<!\\\\$)0([Oo])?[0-7]+\\\\b(?!\\\\$)","name":"constant.numeric.octal.ts"},{"captures":{"0":{"name":"constant.numeric.decimal.ts"},"1":{"name":"meta.delimiter.decimal.period.ts"},"2":{"name":"meta.delimiter.decimal.period.ts"},"3":{"name":"meta.delimiter.decimal.period.ts"},"4":{"name":"meta.delimiter.decimal.period.ts"},"5":{"name":"meta.delimiter.decimal.period.ts"},"6":{"name":"meta.delimiter.decimal.period.ts"}},"match":"(?<!\\\\$)(?:\\\\b[0-9]+(\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+(\\\\.)[Ee][-+]?[0-9]+\\\\b|\\\\B(\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+[Ee][-+]?[0-9]+\\\\b|\\\\b[0-9]+(\\\\.)\\\\B|\\\\B(\\\\.)[0-9]+\\\\b|\\\\b[0-9]+\\\\b(?!\\\\.))(?!\\\\$)"}]},"parameterName":{"patterns":[{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"keyword.operator.rest.ts"},"4":{"name":"entity.name.function.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:\\\\s*\\\\b(readonly)\\\\s+)?(?:\\\\s*\\\\b(p(?:ublic|rivate|rotected))\\\\s+)?(\\\\.\\\\.\\\\.)?\\\\s*(?<![:=])([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(\\\\??)(?=\\\\s*(=\\\\s*((async\\\\s+)|(function\\\\s*[(<])|(function\\\\s+)|([$_[:alpha:]][$_[:alnum:]]*\\\\s*=>)|((<([^<>]|<[^<>]+>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)))|(:\\\\s*((<)|(\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>))))))))"},{"captures":{"1":{"name":"storage.modifier.ts"},"2":{"name":"storage.modifier.ts"},"3":{"name":"keyword.operator.rest.ts"},"4":{"name":"variable.parameter.ts"},"5":{"name":"keyword.operator.optional.ts"}},"match":"(?:\\\\s*\\\\b(readonly)\\\\s+)?(?:\\\\s*\\\\b(p(?:ublic|rivate|rotected))\\\\s+)?(\\\\.\\\\.\\\\.)?\\\\s*(?<![:=])([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(\\\\??)"}]},"parenExpression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#ngExpression"},{"include":"#punctuationComma"}]},"punctuationAccessor":{"match":"(?:\\\\?|!?)\\\\.","name":"punctuation.accessor.ts"},"punctuationComma":{"match":",","name":"punctuation.separator.comma.ts"},"punctuationSemicolon":{"match":";","name":"punctuation.terminator.statement.ts"},"qstringDouble":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ts"}},"end":"(\\")|([^\\\\n\\\\\\\\])$","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"invalid.illegal.newline.ts"}},"name":"string.quoted.double.ts","patterns":[{"include":"#stringCharacterEscape"}]},"qstringSingle":{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ts"}},"end":"(\')|([^\\\\n\\\\\\\\])$","endCaptures":{"1":{"name":"punctuation.definition.string.end.ts"},"2":{"name":"invalid.illegal.newline.ts"}},"name":"string.quoted.single.ts","patterns":[{"include":"#stringCharacterEscape"}]},"string":{"patterns":[{"include":"#qstringSingle"},{"include":"#qstringDouble"},{"include":"#templateLiteral"}]},"stringCharacterEscape":{"match":"\\\\\\\\(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)","name":"constant.character.escape.ts"},"templateLiteral":{"patterns":[{"include":"#templateLiteralCall"},{"begin":"([$_[:alpha:]][$_[:alnum:]]*)?(`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ts"},"2":{"name":"string.template.ts punctuation.definition.string.template.begin.ts"}},"contentName":"string.template.ts","end":"`","endCaptures":{"0":{"name":"string.template.ts punctuation.definition.string.template.end.ts"}},"patterns":[{"include":"#templateLiteralSubstitutionElement"},{"include":"#stringCharacterEscape"}]}]},"templateLiteralCall":{"patterns":[{"begin":"(?=(([$_[:alpha:]][$_[:alnum:]]*\\\\s*\\\\??\\\\.\\\\s*)*|(\\\\??\\\\.\\\\s*)?)([$_[:alpha:]][$_[:alnum:]]*)(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\\\s*)?`)","end":"(?=`)","patterns":[{"begin":"(?=(([$_[:alpha:]][$_[:alnum:]]*\\\\s*\\\\??\\\\.\\\\s*)*|(\\\\??\\\\.\\\\s*)?)([$_[:alpha:]][$_[:alnum:]]*))","end":"(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\\\s*)?`)","patterns":[{"include":"#support-function-call-identifiers"},{"match":"([$_[:alpha:]][$_[:alnum:]]*)","name":"entity.name.function.tagged-template.ts"}]},{"include":"#typeArguments"}]},{"begin":"([$_[:alpha:]][$_[:alnum:]]*)?\\\\s*(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([$_[:alpha:]][$_[:alnum:]]*|(\\\\{([^{}]|(\\\\{([^{}]|\\\\{[^{}]*})*}))*})|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(\\\\[([^]\\\\[]|(\\\\[([^]\\\\[]|\\\\[[^]\\\\[]*])*]))*])|(\'([^\'\\\\\\\\]|\\\\\\\\.)*\')|(\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\")|(`([^\\\\\\\\`]|\\\\\\\\.)*`))(?=\\\\s*([,.<>\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\\\\s*)`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.ts"}},"end":"(?=`)","patterns":[{"include":"#typeArguments"}]}]},"templateLiteralSubstitutionElement":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.ts"}},"contentName":"meta.embedded.line.ts","end":"}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.ts"}},"name":"meta.template.expression.ts","patterns":[{"include":"#ngExpression"}]},"ternaryExpression":{"begin":"(?!\\\\?\\\\.\\\\s*\\\\D)(\\\\?)(?!\\\\?)","beginCaptures":{"1":{"name":"keyword.operator.ternary.ts"}},"end":"\\\\s*(:)","endCaptures":{"1":{"name":"keyword.operator.ternary.ts"}},"patterns":[{"include":"#ngExpression"}]},"thisLiteral":{"match":"(?<![$.])\\\\bthis\\\\b(?!\\\\$)","name":"variable.language.this.ts"},"type":{"name":"meta.type.ts","patterns":[{"include":"#string"},{"include":"#numericLiteral"},{"include":"#typeBuiltinLiterals"},{"include":"#typeTuple"},{"include":"#typeObject"},{"include":"#typeOperators"},{"include":"#typeFnTypeParameters"},{"include":"#typeParenOrFunctionParameters"},{"include":"#typeName"}]},"typeAnnotation":{"begin":":","beginCaptures":{"0":{"name":"keyword.operator.type.annotation.ts"}},"end":"(?=$|[]),;}]|//|\\")|(?==[^>])|(?<=[]$)>_}[:alpha:]])\\\\s*(?=\\\\{)","name":"meta.type.annotation.ts","patterns":[{"include":"#type"}]},"typeArguments":{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.ts"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.ts"}},"name":"meta.type.parameters.ts","patterns":[{"include":"#typeArgumentsBody"}]},"typeArgumentsBody":{"patterns":[{"captures":{"0":{"name":"keyword.operator.type.ts"}},"match":"(?<![$_[:alnum:]])(?:(?<=\\\\.\\\\.\\\\.)|(?<!\\\\.))(_)(?![$_[:alnum:]])(?:(?=\\\\.\\\\.\\\\.)|(?!\\\\.))"},{"include":"#type"},{"include":"#punctuationComma"}]},"typeBuiltinLiterals":{"match":"(?<![$.])\\\\b(this|true|false|undefined|null)\\\\b(?!\\\\$)","name":"support.type.builtin.ts"},"typeFnTypeParameters":{"patterns":[{"captures":{"1":{"name":"keyword.control.new.ts"}},"match":"(?<![$.])\\\\b(new)\\\\b(?=\\\\s*<)","name":"meta.type.constructor.ts"},{"begin":"(?<![$.])\\\\b(new)\\\\b\\\\s*(?=\\\\()","beginCaptures":{"1":{"name":"keyword.control.new.ts"}},"end":"(?<=\\\\))","name":"meta.type.constructor.ts","patterns":[{"include":"#functionParameters"}]},{"begin":"(?<=>)\\\\s*(?=\\\\()","end":"(?<=\\\\))","include":"#typeofOperator","name":"meta.type.function.ts","patterns":[{"include":"#functionParameters"}]},{"begin":"((?=\\\\(\\\\s*((\\\\))|(\\\\.\\\\.\\\\.)|([$_[:alnum:]]+\\\\s*(([,:=?])|(\\\\)\\\\s*=>))))))","end":"(?<=\\\\))","name":"meta.type.function.ts","patterns":[{"include":"#functionParameters"}]}]},"typeName":{"patterns":[{"captures":{"1":{"name":"entity.name.type.module.ts"},"2":{"name":"punctuation.accessor.ts"}},"match":"([$_[:alpha:]][$_[:alnum:]]*)\\\\s*([!?]?\\\\.)"},{"match":"[$_[:alpha:]][$_[:alnum:]]*","name":"entity.name.type.ts"}]},"typeObject":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"name":"meta.object.type.ts","patterns":[{"include":"#typeObjectMembers"}]},"typeObjectMembers":{"patterns":[{"include":"#typeAnnotation"},{"include":"#punctuationComma"},{"include":"#punctuationSemicolon"}]},"typeOperators":{"patterns":[{"include":"#typeofOperator"},{"match":"[\\\\&|]","name":"keyword.operator.type.ts"},{"match":"(?<![$.])\\\\bkeyof\\\\b(?!\\\\$)","name":"keyword.operator.expression.keyof.ts"}]},"typeParenOrFunctionParameters":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"name":"meta.type.paren.cover.ts","patterns":[{"include":"#type"},{"include":"#functionParameters"}]},"typeTuple":{"begin":"\\\\[","beginCaptures":{"0":{"name":"meta.brace.square.ts"}},"end":"]","endCaptures":{"0":{"name":"meta.brace.square.ts"}},"name":"meta.type.tuple.ts","patterns":[{"include":"#type"},{"include":"#punctuationComma"}]},"typeofOperator":{"match":"(?<![$.])\\\\btypeof\\\\b(?!\\\\$)","name":"keyword.operator.expression.typeof.ts"},"undefinedLiteral":{"match":"(?<![$.])\\\\bundefined\\\\b(?!\\\\$)","name":"constant.language.undefined.ts"},"variableInitializer":{"begin":"(?<![!=])(=)(?!=)","beginCaptures":{"1":{"name":"keyword.operator.assignment.ts"}},"end":"(?=$|[]),;}])","patterns":[{"include":"#ngExpression"}]}},"scopeName":"expression.ng"}'))],r=Object.freeze(JSON.parse(`{"injectTo":["text.html.derivative","text.html.derivative.ng","source.ts.ng"],"injectionSelector":"L:text.html -comment -expression.ng -meta.tag -source.css -source.js","name":"angular-let-declaration","patterns":[{"include":"#letDeclaration"}],"repository":{"letDeclaration":{"begin":"(@let)\\\\s+([$_[:alpha:]][$_[:alnum:]]*)\\\\s*(=)?","beginCaptures":{"1":{"name":"storage.type.ng"},"2":{"name":"variable.other.constant.ng"},"3":{"name":"keyword.operator.assignment.ng"}},"end":"(?<=;)","name":"meta.definition.variable.ng","patterns":[{"include":"#letInitializer"}]},"letInitializer":{"begin":"\\\\s*","beginCaptures":{"0":{"name":"keyword.operator.assignment.ng"}},"contentName":"meta.definition.variable.initializer.ng","end":";","endCaptures":{"0":{"name":"punctuation.terminator.statement.ng"}},"patterns":[{"include":"expression.ng"}]}},"scopeName":"template.let.ng","embeddedLangs":["angular-expression"]}`)),i=[...n,r],a=Object.freeze(JSON.parse(`{"injectTo":["text.html.derivative","text.html.derivative.ng","source.ts.ng"],"injectionSelector":"L:text.html -comment","name":"angular-template","patterns":[{"include":"#interpolation"}],"repository":{"interpolation":{"begin":"\\\\{\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"contentName":"expression.ng","end":"}}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"expression.ng"}]}},"scopeName":"template.ng","embeddedLangs":["angular-expression"]}`)),o=[...n,a],s=Object.freeze(JSON.parse(`{"injectTo":["text.html.derivative","text.html.derivative.ng","source.ts.ng"],"injectionSelector":"L:text.html -comment -expression.ng -meta.tag -source.css -source.js","name":"angular-template-blocks","patterns":[{"include":"#block"}],"repository":{"block":{"begin":"(@)(if|else if|else|defer|placeholder|loading|error|switch|case|default|for|empty)\\\\s*","beginCaptures":{"1":{"patterns":[{"include":"#transition"}]},"2":{"name":"keyword.control.block.kind.ng"}},"end":"(?<=})","name":"control.block.ng","patterns":[{"include":"#blockExpression"},{"include":"#blockBody"}]},"blockBody":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"contentName":"control.block.body.ng","end":"}","endCaptures":{"0":{"name":"punctuation.definition.block.ts"}},"patterns":[{"include":"text.html.derivative.ng"},{"include":"template.ng"}]},"blockExpression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.ts"}},"contentName":"control.block.expression.ng","end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.ts"}},"patterns":[{"include":"#blockExpressionOfClause"},{"include":"#blockExpressionLetBinding"},{"include":"#blockExpressionTrackClause"},{"include":"expression.ng"}]},"blockExpressionLetBinding":{"begin":"\\\\blet\\\\b","beginCaptures":{"0":{"name":"storage.type.ng"}},"end":"(?=[$)])|(?<=;)","patterns":[{"include":"expression.ng"}]},"blockExpressionOfClause":{"begin":"([$_[:alpha:]][$_[:alnum:]]*)\\\\s+(of)\\\\b","beginCaptures":{"1":{"name":"variable.other.constant.ng"},"2":{"name":"keyword.operator.expression.of.ng"}},"end":"(?=[$)])|(?<=;)","patterns":[{"include":"expression.ng"}]},"blockExpressionTrackClause":{"begin":"\\\\btrack\\\\b","beginCaptures":{"0":{"name":"keyword.control.track.ng"}},"end":"(?=[$)])|(?<=;)","patterns":[{"include":"expression.ng"}]},"transition":{"match":"@","name":"keyword.control.block.transition.ng"}},"scopeName":"template.blocks.ng","embeddedLangs":["angular-expression","angular-template"]}`)),c=[...n,...o,s],l=e({default:()=>d}),u=Object.freeze(JSON.parse(`{"displayName":"Angular HTML","injections":{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{"patterns":[{"match":"<","name":"invalid.illegal.bad-angle-bracket.html"}]}},"name":"angular-html","patterns":[{"include":"text.html.basic#core-minus-invalid"},{"begin":"(</?)(\\\\w[^>\\\\s]*)(?<!/)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"((?: ?/)?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.unrecognized.html.derivative","patterns":[{"include":"text.html.basic#attribute"}]}],"scopeName":"text.html.derivative.ng","embeddedLangs":["html","angular-expression","angular-let-declaration","angular-template","angular-template-blocks"]}`)),d=[...t,...n,...i,...o,...c,u];export{i as a,o as i,l as n,n as o,c as r,d as t};
|