@macintacos/caret 1.0.0 → 1.0.1
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/.claude-plugin/plugin.json +1 -1
- package/README.md +43 -81
- package/bin/caret-launcher +1 -1
- package/dist/cli.js +173 -86
- package/opencode/caret.plugin.ts +1 -1
- package/package.json +1 -1
- package/ui/dist/assets/{angular-html-BrP7X_fT.js → angular-html-CNIx69MF.js} +1 -1
- package/ui/dist/assets/{angular-ts-CWSXPJ8_.js → angular-ts-B6ob15kD.js} +1 -1
- package/ui/dist/assets/{apl-DcDu9VfL.js → apl-BzQg5wKE.js} +1 -1
- package/ui/dist/assets/{astro-ZWhUFE02.js → astro-DQ6PiTON.js} +1 -1
- package/ui/dist/assets/{blade-Bnfid1aX.js → blade-DdGMUzbN.js} +1 -1
- package/ui/dist/assets/{c-DGhlaWFa.js → c-DhrAH2di.js} +1 -1
- package/ui/dist/assets/{chapel-B80nA-Wv.js → chapel-BIJH6n90.js} +1 -1
- package/ui/dist/assets/{cobol-BxPmMgGq.js → cobol-CR-dFJ1T.js} +1 -1
- package/ui/dist/assets/{coffee-qvFLvdPC.js → coffee-DWT27RO5.js} +1 -1
- package/ui/dist/assets/{cpp-BGBu9Yb6.js → cpp-CuONTEvg.js} +1 -1
- package/ui/dist/assets/{crystal-CV45eR73.js → crystal-Bvc0l-OM.js} +1 -1
- package/ui/dist/assets/{css-CBPwQP3-.js → css-BYejQHVV.js} +1 -1
- package/ui/dist/assets/{dist-CpcSX-YP.js → dist-BbAsmjOe.js} +1 -1
- package/ui/dist/assets/{dist-Dfm7Znx4.js → dist-BgZhLp84.js} +1 -1
- package/ui/dist/assets/{dist-Dj96YS5k.js → dist-Bn_ExXCc.js} +1 -1
- package/ui/dist/assets/{dist-418qtW5O.js → dist-C-FIXuZc.js} +1 -1
- package/ui/dist/assets/{dist-1bUsa9So.js → dist-CCPLuvXB.js} +1 -1
- package/ui/dist/assets/{dist-DWzXdmaf.js → dist-COogZ9jg.js} +1 -1
- package/ui/dist/assets/{dist-Dz8bokki.js → dist-Cuerw0_4.js} +1 -1
- package/ui/dist/assets/{dist-cV3QBg-W.js → dist-D-lJ6tIg.js} +1 -1
- package/ui/dist/assets/{dist-BafAgSat.js → dist-DV7t-p4N.js} +1 -1
- package/ui/dist/assets/{dist-Cj-JdNZd.js → dist-RKZBj-sl.js} +1 -1
- package/ui/dist/assets/{edge-Co6ItTYI.js → edge-B_-8Eolr.js} +1 -1
- package/ui/dist/assets/{elixir-0YZEZ0gv.js → elixir-CAhwbI74.js} +1 -1
- package/ui/dist/assets/{elm-BkRJOygl.js → elm-yg-VSwEl.js} +1 -1
- package/ui/dist/assets/{erb-BI2P49U3.js → erb-CIMOpWGO.js} +1 -1
- package/ui/dist/assets/{git-rebase-Bq5iIXzt.js → git-rebase-DI22snkc.js} +1 -1
- package/ui/dist/assets/{glimmer-js-BbOUbDIt.js → glimmer-js-CZHZNAs-.js} +1 -1
- package/ui/dist/assets/{glimmer-ts-CNnsk0yJ.js → glimmer-ts-C2rq-JGq.js} +1 -1
- package/ui/dist/assets/{glsl-BGnMm0dJ.js → glsl-ByXN6hIN.js} +1 -1
- package/ui/dist/assets/{graphql-7Z7p0nC9.js → graphql-DiiJwLqR.js} +1 -1
- package/ui/dist/assets/{hack-DqHfN4B0.js → hack-hQSSm1D1.js} +1 -1
- package/ui/dist/assets/{haml-3nZzM1j8.js → haml-cf9hcOgw.js} +1 -1
- package/ui/dist/assets/{handlebars-D76GLv5_.js → handlebars-B3tg892p.js} +1 -1
- package/ui/dist/assets/{html-KRo6nO5U.js → html-CkIr2qlC.js} +1 -1
- package/ui/dist/assets/{html-derivative-45dsHZ7G.js → html-derivative-U1EOyk5J.js} +1 -1
- package/ui/dist/assets/{http-Cd6yAfd3.js → http-ek0-hDT8.js} +1 -1
- package/ui/dist/assets/{hurl-DMRd-22O.js → hurl-DbN52Bpk.js} +1 -1
- package/ui/dist/assets/{index-DqZ7qZxG.js → index-uBaTjG1U.js} +211 -211
- package/ui/dist/assets/{java-C5BRRLzP.js → java-DXEu0FGs.js} +1 -1
- package/ui/dist/assets/{javascript-BEwOFxBm.js → javascript-Bi95ibpN.js} +1 -1
- package/ui/dist/assets/{jinja-DC6SxQM2.js → jinja-BcKnkqjY.js} +1 -1
- package/ui/dist/assets/{jison-BpM_G12u.js → jison-CFaHQ730.js} +1 -1
- package/ui/dist/assets/{json-DhXVH33S.js → json--ulVurkL.js} +1 -1
- package/ui/dist/assets/{jsx-QIa_kGnJ.js → jsx-ZonywBBD.js} +1 -1
- package/ui/dist/assets/{julia-BuS1ndKd.js → julia-Bnt3bGqT.js} +1 -1
- package/ui/dist/assets/{just-Dms5nmY6.js → just-CBpil8Tz.js} +1 -1
- package/ui/dist/assets/{latex-d0FSRalE.js → latex-D-qwKUqq.js} +1 -1
- package/ui/dist/assets/{liquid-Bq_YWguE.js → liquid-Bu8cI_b1.js} +1 -1
- package/ui/dist/assets/{lua-CqusOKbI.js → lua-DO_5Mymc.js} +1 -1
- package/ui/dist/assets/{marko-CfvdDxZz.js → marko-DJfs6dcc.js} +1 -1
- package/ui/dist/assets/{mdc-B_vZdcRe.js → mdc-CnkU1WJT.js} +1 -1
- package/ui/dist/assets/{nginx-YhyPrYEc.js → nginx-B5LxXEA3.js} +1 -1
- package/ui/dist/assets/{nim-UGiA-q4U.js → nim-DLTorTuD.js} +1 -1
- package/ui/dist/assets/{org-BWLiCWoV.js → org-DnNvsXCU.js} +1 -1
- package/ui/dist/assets/{perl-CXeAyAx6.js → perl-Q5Q2rA31.js} +1 -1
- package/ui/dist/assets/{php-C0Y5OILf.js → php-S65hjGBt.js} +1 -1
- package/ui/dist/assets/{pug-pavIHhZT.js → pug-k-MB8PEo.js} +1 -1
- package/ui/dist/assets/{qml-CbMVL_Hw.js → qml-Bf9cLRPv.js} +1 -1
- package/ui/dist/assets/{r-VbESC49D.js → r-Cr3hDQkZ.js} +1 -1
- package/ui/dist/assets/{razor-B4zmReq6.js → razor-BO5-wpmp.js} +1 -1
- package/ui/dist/assets/{regexp-CvzL3gAC.js → regexp-ffQ9gsih.js} +1 -1
- package/ui/dist/assets/{rst-B0YBcjx2.js → rst-B4AQC5xj.js} +1 -1
- package/ui/dist/assets/{ruby-BFx1yg1l.js → ruby-Dr8kfvLX.js} +1 -1
- package/ui/dist/assets/{sas-Bdz0EWxy.js → sas-Kuo2pLeL.js} +1 -1
- package/ui/dist/assets/{scss-Ar5qG57q.js → scss-Ci63BQ8y.js} +1 -1
- package/ui/dist/assets/{shellscript-BxZn-g_C.js → shellscript-DBh4gnVx.js} +1 -1
- package/ui/dist/assets/{shellsession-DdGjCUDJ.js → shellsession-L5KFvHI3.js} +1 -1
- package/ui/dist/assets/{soy-DNbG_b-4.js → soy-D6F5ilyd.js} +1 -1
- package/ui/dist/assets/{sql-BbO6oYzq.js → sql-xwRblxjL.js} +1 -1
- package/ui/dist/assets/{stata-CrT9A-Oi.js → stata-l8sBIGPT.js} +1 -1
- package/ui/dist/assets/{surrealql-_tFV7pCn.js → surrealql-DL2sOSzB.js} +1 -1
- package/ui/dist/assets/{svelte-ZdvR-T2J.js → svelte-Dp5d2Ja3.js} +1 -1
- package/ui/dist/assets/{templ-CpOqX9Rk.js → templ-B3LfgeSM.js} +1 -1
- package/ui/dist/assets/{tex-BnYgu1Tm.js → tex-CfLQjgEV.js} +1 -1
- package/ui/dist/assets/{ts-tags-CII1fKoY.js → ts-tags-BCfi6Eh_.js} +1 -1
- package/ui/dist/assets/{tsx-CPIX6Zti.js → tsx-BXhT7ita.js} +1 -1
- package/ui/dist/assets/{twig-Cpr1_Fdx.js → twig-t6tdMpRg.js} +1 -1
- package/ui/dist/assets/{typescript-CS1A4fih.js → typescript-CFIlDlxn.js} +1 -1
- package/ui/dist/assets/{typst-BEc_7GFB.js → typst-CVQ9ief2.js} +1 -1
- package/ui/dist/assets/{vue-DLe2p-nw.js → vue-D92U7PL6.js} +1 -1
- package/ui/dist/assets/{vue-html-CBsH80UM.js → vue-html-B_-4d7cG.js} +1 -1
- package/ui/dist/assets/{vue-vine-C6KcK89Z.js → vue-vine-LaG8znAe.js} +1 -1
- package/ui/dist/assets/{xml-CMmb8ycU.js → xml-DgAE0jfV.js} +1 -1
- package/ui/dist/assets/{xsl-vCAAt3o3.js → xsl-DkD8aIzS.js} +1 -1
- package/ui/dist/assets/{yaml-Be7JvL54.js → yaml-CEG92fN8.js} +1 -1
- package/ui/dist/index.html +1 -1
package/dist/cli.js
CHANGED
|
@@ -22417,7 +22417,7 @@ var package_default;
|
|
|
22417
22417
|
var init_package = __esm(() => {
|
|
22418
22418
|
package_default = {
|
|
22419
22419
|
name: "@macintacos/caret",
|
|
22420
|
-
version: "1.0.
|
|
22420
|
+
version: "1.0.1",
|
|
22421
22421
|
license: "MIT",
|
|
22422
22422
|
type: "module",
|
|
22423
22423
|
description: "A Claude Code plugin that replaces the terminal plan-approval prompt with a local web UI for inline review, annotation, and approval.",
|
|
@@ -27330,6 +27330,7 @@ function freeze(s) {
|
|
|
27330
27330
|
Object.freeze(s.daemon);
|
|
27331
27331
|
Object.freeze(s.review);
|
|
27332
27332
|
Object.freeze(s.opencode);
|
|
27333
|
+
Object.freeze(s.updates);
|
|
27333
27334
|
Object.freeze(s.dev.notify);
|
|
27334
27335
|
Object.freeze(s.dev);
|
|
27335
27336
|
return Object.freeze(s);
|
|
@@ -27514,10 +27515,13 @@ var init_settings = __esm(() => {
|
|
|
27514
27515
|
opencode: exports_external.object({
|
|
27515
27516
|
plans_dir: exports_external.string().min(1).optional()
|
|
27516
27517
|
}).prefault({}),
|
|
27518
|
+
updates: exports_external.object({
|
|
27519
|
+
check: exports_external.boolean().default(true)
|
|
27520
|
+
}).prefault({}),
|
|
27517
27521
|
dev: Dev
|
|
27518
27522
|
});
|
|
27519
27523
|
DEFAULTS = freeze(SettingsSchema.parse({}));
|
|
27520
|
-
SETTINGS_TABLES = ["logging", "daemon", "review"];
|
|
27524
|
+
SETTINGS_TABLES = ["logging", "daemon", "review", "updates"];
|
|
27521
27525
|
ENV_VARS = [
|
|
27522
27526
|
["CARET_PORT", Port],
|
|
27523
27527
|
["CARET_TIMEOUT", TimeoutS],
|
|
@@ -46214,14 +46218,15 @@ init_adapters();
|
|
|
46214
46218
|
// src/commands/daemon.ts
|
|
46215
46219
|
init_adapters();
|
|
46216
46220
|
init_boot();
|
|
46217
|
-
init_paths3();
|
|
46218
46221
|
import { randomUUID } from "crypto";
|
|
46219
46222
|
import { existsSync as existsSync9 } from "fs";
|
|
46220
46223
|
|
|
46221
|
-
// src/config/
|
|
46224
|
+
// src/config/config-write.ts
|
|
46225
|
+
init_dist();
|
|
46222
46226
|
init_paths3();
|
|
46223
|
-
import { readFile as readFile3 } from "fs/promises";
|
|
46227
|
+
import { mkdir, readFile as readFile3, stat as stat2 } from "fs/promises";
|
|
46224
46228
|
import { dirname as dirname4 } from "path";
|
|
46229
|
+
import { isDeepStrictEqual } from "util";
|
|
46225
46230
|
|
|
46226
46231
|
// src/lib/atomic-write.ts
|
|
46227
46232
|
import { realpath as realpath2, rename, rm, writeFile } from "fs/promises";
|
|
@@ -46238,9 +46243,6 @@ async function writeFileAtomic(path, data, opts) {
|
|
|
46238
46243
|
}
|
|
46239
46244
|
}
|
|
46240
46245
|
|
|
46241
|
-
// src/config/prefs.ts
|
|
46242
|
-
init_json_file();
|
|
46243
|
-
|
|
46244
46246
|
// src/lib/keyed-queue.ts
|
|
46245
46247
|
function createKeyedQueue(tails = new Map) {
|
|
46246
46248
|
return {
|
|
@@ -46257,48 +46259,138 @@ function createKeyedQueue(tails = new Map) {
|
|
|
46257
46259
|
};
|
|
46258
46260
|
}
|
|
46259
46261
|
|
|
46260
|
-
// src/config/
|
|
46261
|
-
|
|
46262
|
-
var
|
|
46263
|
-
|
|
46262
|
+
// src/config/config-write.ts
|
|
46263
|
+
var NEW_FILE_MODE = 420;
|
|
46264
|
+
var TABLE_HEADER = /^\s*\[\[?[^\]]*\]\]?\s*(#[^\n]*)?$/;
|
|
46265
|
+
var UPDATES_HEADER = /^\s*\[updates\]\s*(#[^\n]*)?$/;
|
|
46266
|
+
var CHECK_LINE = /^(\s*check\s*=\s*)(true|false)([\s\S]*)$/;
|
|
46267
|
+
function withoutUpdatesCheck(parsed) {
|
|
46268
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
46269
|
+
return parsed;
|
|
46270
|
+
const out = { ...parsed };
|
|
46271
|
+
const updates = out.updates;
|
|
46272
|
+
if (typeof updates === "object" && updates !== null) {
|
|
46273
|
+
const rest = { ...updates };
|
|
46274
|
+
delete rest.check;
|
|
46275
|
+
if (Object.keys(rest).length === 0)
|
|
46276
|
+
delete out.updates;
|
|
46277
|
+
else
|
|
46278
|
+
out.updates = rest;
|
|
46279
|
+
}
|
|
46280
|
+
return out;
|
|
46281
|
+
}
|
|
46282
|
+
function parseOrNull(text) {
|
|
46264
46283
|
try {
|
|
46265
|
-
|
|
46266
|
-
|
|
46267
|
-
|
|
46268
|
-
}
|
|
46269
|
-
log.debug("prefs", "unrecognized approve mode; using default");
|
|
46270
|
-
return set2.fallback;
|
|
46271
|
-
} catch (err) {
|
|
46272
|
-
const absent = err?.code === "ENOENT";
|
|
46273
|
-
log.debug("prefs", absent ? "no prefs file; using default approve mode" : "prefs unreadable; using default approve mode");
|
|
46274
|
-
return set2.fallback;
|
|
46284
|
+
return parse(text);
|
|
46285
|
+
} catch {
|
|
46286
|
+
return null;
|
|
46275
46287
|
}
|
|
46276
46288
|
}
|
|
46277
|
-
|
|
46278
|
-
const
|
|
46279
|
-
|
|
46289
|
+
function withUpdatesCheck(text, check2) {
|
|
46290
|
+
const before = parseOrNull(text);
|
|
46291
|
+
if (before === null)
|
|
46292
|
+
return null;
|
|
46293
|
+
const eol = text.includes(`\r
|
|
46294
|
+
`) ? `\r
|
|
46295
|
+
` : `
|
|
46296
|
+
`;
|
|
46297
|
+
const lines = text.split(`
|
|
46298
|
+
`);
|
|
46299
|
+
const headerLine = lines.findIndex((l) => UPDATES_HEADER.test(l));
|
|
46300
|
+
let next;
|
|
46301
|
+
if (headerLine === -1) {
|
|
46302
|
+
const separator = text === "" ? "" : text.endsWith(`
|
|
46303
|
+
`) ? eol : `${eol}${eol}`;
|
|
46304
|
+
next = `${text}${separator}[updates]${eol}check = ${check2}${eol}`;
|
|
46305
|
+
} else {
|
|
46306
|
+
const nextHeaderIndex = lines.findIndex((l, i) => i > headerLine && TABLE_HEADER.test(l));
|
|
46307
|
+
const tableEnd = nextHeaderIndex === -1 ? lines.length : nextHeaderIndex;
|
|
46308
|
+
const checkLineIndex = lines.findIndex((l, i) => i > headerLine && i < tableEnd && CHECK_LINE.test(l));
|
|
46309
|
+
if (checkLineIndex === -1) {
|
|
46310
|
+
lines.splice(headerLine + 1, 0, `check = ${check2}${eol === `\r
|
|
46311
|
+
` ? "\r" : ""}`);
|
|
46312
|
+
} else {
|
|
46313
|
+
lines[checkLineIndex] = lines[checkLineIndex].replace(CHECK_LINE, `$1${check2}$3`);
|
|
46314
|
+
}
|
|
46315
|
+
next = lines.join(`
|
|
46316
|
+
`);
|
|
46317
|
+
}
|
|
46318
|
+
const after = parseOrNull(next);
|
|
46319
|
+
if (after === null)
|
|
46320
|
+
return null;
|
|
46321
|
+
if (after.updates?.check !== check2)
|
|
46322
|
+
return null;
|
|
46323
|
+
if (!isDeepStrictEqual(withoutUpdatesCheck(before), withoutUpdatesCheck(after)))
|
|
46324
|
+
return null;
|
|
46325
|
+
return next;
|
|
46280
46326
|
}
|
|
46281
|
-
function
|
|
46327
|
+
function createConfigWriter(file2 = configFile()) {
|
|
46282
46328
|
const writes = createKeyedQueue();
|
|
46283
46329
|
return {
|
|
46284
|
-
|
|
46285
|
-
|
|
46286
|
-
|
|
46287
|
-
const
|
|
46288
|
-
|
|
46289
|
-
|
|
46290
|
-
|
|
46330
|
+
async setUpdatesCheck(check2) {
|
|
46331
|
+
let refusal = null;
|
|
46332
|
+
await writes.run(file2, async () => {
|
|
46333
|
+
const current = await readFile3(file2, "utf-8").catch((e) => e.code === "ENOENT" ? "" : null);
|
|
46334
|
+
if (current === null) {
|
|
46335
|
+
refusal = "unreadable";
|
|
46336
|
+
return;
|
|
46337
|
+
}
|
|
46338
|
+
const next = withUpdatesCheck(current, check2);
|
|
46339
|
+
if (next === null) {
|
|
46340
|
+
refusal = "unverifiable";
|
|
46341
|
+
return;
|
|
46342
|
+
}
|
|
46343
|
+
if (next === current)
|
|
46344
|
+
return;
|
|
46345
|
+
const mode = await stat2(file2).then((s) => s.mode & 511, () => NEW_FILE_MODE);
|
|
46346
|
+
try {
|
|
46347
|
+
await mkdir(dirname4(file2), { recursive: true });
|
|
46348
|
+
await writeFileAtomic(file2, next, { mode });
|
|
46349
|
+
} catch {
|
|
46350
|
+
refusal = "unwritable";
|
|
46351
|
+
}
|
|
46291
46352
|
});
|
|
46353
|
+
return refusal === null ? { ok: true } : { ok: false, reason: refusal };
|
|
46292
46354
|
}
|
|
46293
46355
|
};
|
|
46294
46356
|
}
|
|
46295
|
-
|
|
46296
|
-
|
|
46297
|
-
|
|
46357
|
+
|
|
46358
|
+
// src/commands/daemon.ts
|
|
46359
|
+
init_paths3();
|
|
46360
|
+
|
|
46361
|
+
// src/config/prefs.ts
|
|
46362
|
+
import { readFile as readFile4, rm as rm2 } from "fs/promises";
|
|
46363
|
+
async function migratePrefsFile(opts) {
|
|
46364
|
+
const { prefs, config: config2, writer, log } = opts;
|
|
46365
|
+
let text;
|
|
46366
|
+
try {
|
|
46367
|
+
text = await readFile4(prefs, "utf-8");
|
|
46368
|
+
} catch (err) {
|
|
46369
|
+
if (err.code !== "ENOENT") {
|
|
46370
|
+
log.warn("settings", "cannot read prefs.json", { prefs });
|
|
46371
|
+
}
|
|
46298
46372
|
return;
|
|
46299
46373
|
}
|
|
46300
|
-
|
|
46301
|
-
|
|
46374
|
+
if (optedOut(text)) {
|
|
46375
|
+
const wrote = await writer.setUpdatesCheck(false);
|
|
46376
|
+
if (!wrote.ok) {
|
|
46377
|
+
log.warn("settings", "cannot move updates.check into config.toml", {
|
|
46378
|
+
config: config2,
|
|
46379
|
+
reason: wrote.reason,
|
|
46380
|
+
fix: "edit it by hand: check = false under an [updates] table header"
|
|
46381
|
+
});
|
|
46382
|
+
return;
|
|
46383
|
+
}
|
|
46384
|
+
log.info("settings", "moved updates.check into config.toml");
|
|
46385
|
+
}
|
|
46386
|
+
await rm2(prefs, { force: true }).catch(() => {});
|
|
46387
|
+
}
|
|
46388
|
+
function optedOut(text) {
|
|
46389
|
+
try {
|
|
46390
|
+
return JSON.parse(text)?.updates?.check === false;
|
|
46391
|
+
} catch {
|
|
46392
|
+
return false;
|
|
46393
|
+
}
|
|
46302
46394
|
}
|
|
46303
46395
|
|
|
46304
46396
|
// src/commands/daemon.ts
|
|
@@ -46343,10 +46435,10 @@ function buildDiagnostics(deps) {
|
|
|
46343
46435
|
init_lifecycle();
|
|
46344
46436
|
|
|
46345
46437
|
// src/daemon/server.ts
|
|
46346
|
-
init_constants();
|
|
46347
|
-
init_paths3();
|
|
46348
46438
|
import { renameSync as renameSync3, unlinkSync as unlinkSync3, writeFileSync as writeFileSync5 } from "fs";
|
|
46349
46439
|
import { dirname as dirname6 } from "path";
|
|
46440
|
+
init_constants();
|
|
46441
|
+
init_paths3();
|
|
46350
46442
|
init_settings();
|
|
46351
46443
|
|
|
46352
46444
|
// src/daemon/guards.ts
|
|
@@ -46451,15 +46543,6 @@ function createLiveness(deps) {
|
|
|
46451
46543
|
});
|
|
46452
46544
|
release();
|
|
46453
46545
|
}
|
|
46454
|
-
function detachedWrite(write) {
|
|
46455
|
-
writesInFlight++;
|
|
46456
|
-
const settled = () => {
|
|
46457
|
-
writesInFlight--;
|
|
46458
|
-
if (draining)
|
|
46459
|
-
setTimeout(maybeReleaseDrain, 0);
|
|
46460
|
-
};
|
|
46461
|
-
write.then(settled, settled);
|
|
46462
|
-
}
|
|
46463
46546
|
function begin(method) {
|
|
46464
46547
|
inFlight++;
|
|
46465
46548
|
const isWrite = !isSafeMethod(method);
|
|
@@ -46486,7 +46569,7 @@ function createLiveness(deps) {
|
|
|
46486
46569
|
stop();
|
|
46487
46570
|
deps.release();
|
|
46488
46571
|
}
|
|
46489
|
-
return { arm: refreshIdle, begin,
|
|
46572
|
+
return { arm: refreshIdle, begin, isDraining: () => draining, drain, stop };
|
|
46490
46573
|
}
|
|
46491
46574
|
|
|
46492
46575
|
// src/daemon/schemas.ts
|
|
@@ -46507,7 +46590,7 @@ var ResolveBodySchema = exports_external.object({
|
|
|
46507
46590
|
feedback: exports_external.string().optional(),
|
|
46508
46591
|
acceptMode: exports_external.string().optional().catch(undefined)
|
|
46509
46592
|
}).catch({ behavior: "allow" });
|
|
46510
|
-
var
|
|
46593
|
+
var ConfigPatchSchema = exports_external.object({ updates: exports_external.object({ check: exports_external.boolean() }).strict().optional() }).strict();
|
|
46511
46594
|
var LineAnnotationSchema = exports_external.object({
|
|
46512
46595
|
id: exports_external.string(),
|
|
46513
46596
|
startLine: exports_external.number().int().min(1),
|
|
@@ -46603,7 +46686,7 @@ import { join as join11, relative as relative3, sep as sep4 } from "path";
|
|
|
46603
46686
|
// src/plan/excerpt.ts
|
|
46604
46687
|
init_constants();
|
|
46605
46688
|
import { readFileSync as readFileSync9 } from "fs";
|
|
46606
|
-
import { readdir as readdir3, realpath as realpath3, stat as
|
|
46689
|
+
import { readdir as readdir3, realpath as realpath3, stat as stat3 } from "fs/promises";
|
|
46607
46690
|
import { extname, isAbsolute, join as join10, relative as relative2, resolve, sep as sep3 } from "path";
|
|
46608
46691
|
var EXCERPT_HEAD_LINES = 60;
|
|
46609
46692
|
var MAX_EXCERPT_BYTES = 10 * 1024 * 1024;
|
|
@@ -46663,7 +46746,7 @@ function safeRealpath(path) {
|
|
|
46663
46746
|
return realpath3(path).catch(() => null);
|
|
46664
46747
|
}
|
|
46665
46748
|
function safeStat(path) {
|
|
46666
|
-
return
|
|
46749
|
+
return stat3(path).catch(() => null);
|
|
46667
46750
|
}
|
|
46668
46751
|
async function contained(cwdReal, abs) {
|
|
46669
46752
|
const real = await safeRealpath(abs);
|
|
@@ -48380,7 +48463,7 @@ init_log();
|
|
|
48380
48463
|
init_paths3();
|
|
48381
48464
|
import { createHash as createHash2 } from "crypto";
|
|
48382
48465
|
import { chmodSync as chmodSync3, existsSync as existsSync8, mkdirSync as mkdirSync2, renameSync as renameSync2, writeFileSync as writeFileSync4 } from "fs";
|
|
48383
|
-
import { mkdtemp, rm as
|
|
48466
|
+
import { mkdtemp, rm as rm3 } from "fs/promises";
|
|
48384
48467
|
import { tmpdir } from "os";
|
|
48385
48468
|
import { dirname as dirname5, join as join13 } from "path";
|
|
48386
48469
|
var RUMDL_VERSION = "0.2.73";
|
|
@@ -48442,7 +48525,7 @@ async function downloadRumdl(binPath, asset, fetchImpl = fetch) {
|
|
|
48442
48525
|
renameSync2(tmp, binPath);
|
|
48443
48526
|
return binPath;
|
|
48444
48527
|
} finally {
|
|
48445
|
-
await
|
|
48528
|
+
await rm3(work, { recursive: true, force: true });
|
|
48446
48529
|
}
|
|
48447
48530
|
}
|
|
48448
48531
|
var installPinnedRumdl = (binPath) => downloadRumdl(binPath, rumdlAsset());
|
|
@@ -48704,7 +48787,7 @@ function resolveOptions(opts) {
|
|
|
48704
48787
|
assets: opts.assets,
|
|
48705
48788
|
onShutdown: opts.onShutdown ?? (() => process.exit(0)),
|
|
48706
48789
|
routePlan: opts.routePlan ?? routeIncomingPlan,
|
|
48707
|
-
|
|
48790
|
+
configPath: opts.configPath ?? configFile(),
|
|
48708
48791
|
lockPath: opts.lockPath,
|
|
48709
48792
|
buildId: opts.buildId,
|
|
48710
48793
|
assetDigest: opts.assetDigest,
|
|
@@ -48737,12 +48820,11 @@ function ifNoneMatchHit(header, etag) {
|
|
|
48737
48820
|
}
|
|
48738
48821
|
function createServer(opts) {
|
|
48739
48822
|
const cfg = resolveOptions(opts);
|
|
48740
|
-
const { store, idle, heartbeat, resident, assets, onShutdown, routePlan,
|
|
48823
|
+
const { store, idle, heartbeat, resident, assets, onShutdown, routePlan, configPath, log } = cfg;
|
|
48741
48824
|
const { buildId, assetDigest, commit, stateDir: stateDir2, instanceId } = cfg;
|
|
48742
48825
|
const { approveVariants, source, lockPath } = cfg;
|
|
48743
48826
|
const { awaitDecision, resolveDecision, clearDecision, openDecisionCount, unreadDecisionCount } = createDecisions(log);
|
|
48744
|
-
const
|
|
48745
|
-
const prefsWriter = opts.prefsWriter ?? createPrefsWriter(prefsPath);
|
|
48827
|
+
const configWriter = createConfigWriter(configPath);
|
|
48746
48828
|
function raceDecision(id, ms) {
|
|
48747
48829
|
return new Promise((resolve2) => {
|
|
48748
48830
|
const t = setTimeout(() => resolve2(null), ms);
|
|
@@ -48890,22 +48972,28 @@ function createServer(opts) {
|
|
|
48890
48972
|
log.debug("ui", "ui presence retracted");
|
|
48891
48973
|
return new Response(null, { status: 204 });
|
|
48892
48974
|
}
|
|
48893
|
-
async function
|
|
48894
|
-
const
|
|
48895
|
-
approveMode: await readApproveMode(prefsPath, log, approveModeSet)
|
|
48896
|
-
};
|
|
48897
|
-
return Response.json(body);
|
|
48898
|
-
}
|
|
48899
|
-
async function handleSetPrefs(req) {
|
|
48900
|
-
const parsed = PrefsPatchSchema.safeParse(await req.json().catch(() => null));
|
|
48975
|
+
async function handleSetConfig(req) {
|
|
48976
|
+
const parsed = ConfigPatchSchema.safeParse(await req.json().catch(() => null));
|
|
48901
48977
|
if (!parsed.success) {
|
|
48902
|
-
const error61 = parsed.error.issues[0]?.message ?? "invalid
|
|
48903
|
-
log.warn("
|
|
48978
|
+
const error61 = parsed.error.issues[0]?.message ?? "invalid config patch";
|
|
48979
|
+
log.warn("settings", "config patch rejected", { reason: error61 });
|
|
48904
48980
|
return Response.json({ error: error61 }, { status: 400 });
|
|
48905
48981
|
}
|
|
48906
|
-
|
|
48907
|
-
|
|
48908
|
-
|
|
48982
|
+
const { updates } = parsed.data;
|
|
48983
|
+
if (updates === undefined) {
|
|
48984
|
+
if (Object.keys(parsed.data).length > 0) {
|
|
48985
|
+
return Response.json({ error: "unhandled config patch" }, { status: 400 });
|
|
48986
|
+
}
|
|
48987
|
+
return Response.json({ ok: true });
|
|
48988
|
+
}
|
|
48989
|
+
const { check: check2 } = updates;
|
|
48990
|
+
const wrote = await configWriter.setUpdatesCheck(check2);
|
|
48991
|
+
if (!wrote.ok) {
|
|
48992
|
+
log.warn("settings", "config.toml edit refused", { reason: wrote.reason });
|
|
48993
|
+
return Response.json({ error: "config.toml cannot be edited safely" }, { status: 409 });
|
|
48994
|
+
}
|
|
48995
|
+
log.debug("settings", "config saved");
|
|
48996
|
+
if (check2 === true)
|
|
48909
48997
|
cfg.onUpdatesEnabled?.();
|
|
48910
48998
|
return Response.json({ ok: true });
|
|
48911
48999
|
}
|
|
@@ -49080,11 +49168,6 @@ function createServer(opts) {
|
|
|
49080
49168
|
});
|
|
49081
49169
|
if (decision.behavior === "allow") {
|
|
49082
49170
|
await store.remove(id);
|
|
49083
|
-
if (decision.acceptMode !== undefined && approveModeSet.valid.includes(decision.acceptMode)) {
|
|
49084
|
-
liveness.detachedWrite(writeApproveMode(decision.acceptMode, prefsWriter, log, approveModeSet).catch(() => {
|
|
49085
|
-
log.warn("prefs", "approve mode write failed");
|
|
49086
|
-
}));
|
|
49087
|
-
}
|
|
49088
49171
|
}
|
|
49089
49172
|
if (existing.cmux)
|
|
49090
49173
|
cfg.markPaneRead(existing.cmux);
|
|
@@ -49136,10 +49219,8 @@ function createServer(opts) {
|
|
|
49136
49219
|
return handleUiGone();
|
|
49137
49220
|
if (method === "GET" && path === "/api/reviews")
|
|
49138
49221
|
return handleListReviews();
|
|
49139
|
-
if (method === "
|
|
49140
|
-
return
|
|
49141
|
-
if (method === "POST" && path === "/api/prefs")
|
|
49142
|
-
return handleSetPrefs(req);
|
|
49222
|
+
if (method === "POST" && path === "/api/config")
|
|
49223
|
+
return handleSetConfig(req);
|
|
49143
49224
|
const route = matchIdRoute(path);
|
|
49144
49225
|
if (route) {
|
|
49145
49226
|
const { id, sub } = route;
|
|
@@ -49426,7 +49507,7 @@ async function commitsAheadOfTrunk(commit, fetchImpl = fetch) {
|
|
|
49426
49507
|
|
|
49427
49508
|
// src/review/store.ts
|
|
49428
49509
|
init_paths3();
|
|
49429
|
-
import { readdir as readdir6, readFile as
|
|
49510
|
+
import { readdir as readdir6, readFile as readFile5, stat as stat4 } from "fs/promises";
|
|
49430
49511
|
import { join as join14 } from "path";
|
|
49431
49512
|
init_json_file();
|
|
49432
49513
|
init_log();
|
|
@@ -49520,9 +49601,9 @@ function createStore(dir, log = noopLogger) {
|
|
|
49520
49601
|
continue;
|
|
49521
49602
|
const path = join14(dir, file2);
|
|
49522
49603
|
try {
|
|
49523
|
-
if ((await
|
|
49604
|
+
if ((await stat4(path)).mtimeMs < now - STALE_AFTER_MS)
|
|
49524
49605
|
continue;
|
|
49525
|
-
const review = JSON.parse(await
|
|
49606
|
+
const review = JSON.parse(await readFile5(path, "utf-8"));
|
|
49526
49607
|
if (isUnresolved(review.status)) {
|
|
49527
49608
|
reviews.set(review.id, review);
|
|
49528
49609
|
loaded++;
|
|
@@ -49546,6 +49627,12 @@ async function runDaemon(opts) {
|
|
|
49546
49627
|
const cfg = configFile();
|
|
49547
49628
|
const boot = svc.current();
|
|
49548
49629
|
log.info("settings", existsSync9(cfg) ? `settings: reading ${cfg}` : `settings: no config at ${cfg}; using defaults`, { settings: boot });
|
|
49630
|
+
await migratePrefsFile({
|
|
49631
|
+
prefs: prefsFile(),
|
|
49632
|
+
config: cfg,
|
|
49633
|
+
writer: createConfigWriter(cfg),
|
|
49634
|
+
log
|
|
49635
|
+
});
|
|
49549
49636
|
warnInvalidEnvVars((msg) => log.warn("env", msg));
|
|
49550
49637
|
const adapter = selectAdapter();
|
|
49551
49638
|
const install = buildKind();
|
|
@@ -49558,7 +49645,7 @@ async function runDaemon(opts) {
|
|
|
49558
49645
|
kind: install,
|
|
49559
49646
|
version: version2,
|
|
49560
49647
|
commit,
|
|
49561
|
-
enabled: () =>
|
|
49648
|
+
enabled: async () => svc.current().updates.check,
|
|
49562
49649
|
now: Date.now,
|
|
49563
49650
|
cache: updateCache,
|
|
49564
49651
|
npmLatest: publishedCaretVersion,
|
|
@@ -49627,7 +49714,7 @@ async function runDaemon(opts) {
|
|
|
49627
49714
|
settings: () => settings().current(),
|
|
49628
49715
|
configPath: cfg
|
|
49629
49716
|
})),
|
|
49630
|
-
updateReport:
|
|
49717
|
+
updateReport: () => updateReportFor({ install, version: version2, commit }, updateStatus, svc.current().updates.check),
|
|
49631
49718
|
onUpdatesEnabled: refreshUpdate,
|
|
49632
49719
|
log
|
|
49633
49720
|
});
|
package/opencode/caret.plugin.ts
CHANGED
|
@@ -291,7 +291,7 @@ export function shouldCheckForUpdate(lastCheckMs: number | null, nowMs: number):
|
|
|
291
291
|
}
|
|
292
292
|
|
|
293
293
|
/** Absolute path of the throttle file holding the last-check epoch-ms. Lives under
|
|
294
|
-
* caret's state dir, beside caret's other small machine-global markers (
|
|
294
|
+
* caret's state dir, beside caret's other small machine-global markers (update-check.json).
|
|
295
295
|
* The plugin stays self-contained and cannot import src/config/paths.ts, so that
|
|
296
296
|
* convention is mirrored here by hand. */
|
|
297
297
|
export function updateCheckCachePath(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@macintacos/caret",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "A Claude Code plugin that replaces the terminal plan-approval prompt with a local web UI for inline review, annotation, and approval.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./index-DqZ7qZxG.js";import{t}from"./html-KRo6nO5U.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{s as e}from"./index-uBaTjG1U.js";import{t}from"./html-CkIr2qlC.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};
|