remote-codex 0.11.8 → 0.11.10
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/apps/relay-server/dist/index.js +93 -10
- package/apps/supervisor-api/dist/{chunk-ELPP22TZ.js → chunk-HMFJNQDI.js} +11 -4
- package/apps/supervisor-api/dist/index.js +1 -1
- package/apps/supervisor-api/dist/worker-index.js +1 -1
- package/apps/supervisor-web/dist/assets/{core-DIQen2lE.js → core-oEok_Crl.js} +1 -1
- package/apps/supervisor-web/dist/assets/{graph-vendor-CGzY-MFv.js → graph-vendor-DVPtkh3h.js} +1 -1
- package/apps/supervisor-web/dist/assets/index-Cp9GkemI.css +1 -0
- package/apps/supervisor-web/dist/assets/index-M5xKhovw.js +5 -0
- package/apps/supervisor-web/dist/assets/{markdown-vendor-hBDTCSB-.js → markdown-vendor-BQJfKm05.js} +1 -1
- package/apps/supervisor-web/dist/assets/{react-vendor-o1Xrx7m4.js → react-vendor-CgLzZcV4.js} +1 -1
- package/apps/supervisor-web/dist/assets/{terminal-vendor-CLGgN91S.js → terminal-vendor-B365Go3Z.js} +1 -1
- package/apps/supervisor-web/dist/assets/thread-ui-DldLSgqC.js +3604 -0
- package/apps/supervisor-web/dist/assets/ui-vendor-CeKGesq3.js +50 -0
- package/apps/supervisor-web/dist/index.html +8 -8
- package/bin/remote-codex.mjs +255 -40
- package/package.json +2 -2
- package/packages/shared/src/index.ts +1 -0
- package/apps/supervisor-api/dist/chunk-ZWZQVPDT.js +0 -27893
- package/apps/supervisor-web/dist/assets/index-CXq73NcP.js +0 -5
- package/apps/supervisor-web/dist/assets/index-Di1JBevU.css +0 -1
- package/apps/supervisor-web/dist/assets/thread-ui-ICfwCbte.js +0 -3604
- package/apps/supervisor-web/dist/assets/ui-vendor-D1uxdi-d.js +0 -430
|
@@ -284,6 +284,36 @@ var RelayStore = class _RelayStore {
|
|
|
284
284
|
this.sqlite.prepare("UPDATE relay_users SET enabled = ? WHERE id = ?").run(enabled ? 1 : 0, userId);
|
|
285
285
|
return this.publicUser({ ...user, enabled });
|
|
286
286
|
}
|
|
287
|
+
updateAccount(userId, input) {
|
|
288
|
+
const user = this.requireUser(userId);
|
|
289
|
+
const username = input.username !== void 0 ? normalizeUsername(input.username) : user.username;
|
|
290
|
+
if (username.length < 3) {
|
|
291
|
+
throw new RelayStoreError(400, "bad_request", "Username must be at least 3 characters.");
|
|
292
|
+
}
|
|
293
|
+
const existingUsername = this.getUserByUsername(username);
|
|
294
|
+
if (existingUsername && existingUsername.id !== user.id) {
|
|
295
|
+
throw new RelayStoreError(409, "conflict", "A user with that username already exists.");
|
|
296
|
+
}
|
|
297
|
+
this.sqlite.prepare("UPDATE relay_users SET username = ? WHERE id = ?").run(username, user.id);
|
|
298
|
+
return this.publicUser({ ...user, username });
|
|
299
|
+
}
|
|
300
|
+
updatePassword(userId, input) {
|
|
301
|
+
const user = this.requireUser(userId);
|
|
302
|
+
if (!verifySecret(input.currentPassword, user.passwordSalt, user.passwordHash)) {
|
|
303
|
+
throw new RelayStoreError(403, "forbidden", "Current password is incorrect.");
|
|
304
|
+
}
|
|
305
|
+
if (input.newPassword.length < 8) {
|
|
306
|
+
throw new RelayStoreError(400, "bad_request", "Password must be at least 8 characters.");
|
|
307
|
+
}
|
|
308
|
+
const passwordSalt = crypto.randomBytes(16).toString("base64url");
|
|
309
|
+
const passwordHash = hashSecret(input.newPassword, passwordSalt);
|
|
310
|
+
this.sqlite.prepare("UPDATE relay_users SET password_salt = ?, password_hash = ? WHERE id = ?").run(passwordSalt, passwordHash, user.id);
|
|
311
|
+
return this.publicUser({
|
|
312
|
+
...user,
|
|
313
|
+
passwordSalt,
|
|
314
|
+
passwordHash
|
|
315
|
+
});
|
|
316
|
+
}
|
|
287
317
|
emptySession() {
|
|
288
318
|
return {
|
|
289
319
|
authenticated: false,
|
|
@@ -665,7 +695,8 @@ var loginSchema = z.object({
|
|
|
665
695
|
var registerSchema = z.object({
|
|
666
696
|
email: z.string().trim().email(),
|
|
667
697
|
username: z.string().trim().min(3),
|
|
668
|
-
password: z.string().min(8)
|
|
698
|
+
password: z.string().min(8),
|
|
699
|
+
registrationPassword: z.string().optional()
|
|
669
700
|
});
|
|
670
701
|
var createDeviceSchema = z.object({
|
|
671
702
|
name: z.string().trim().min(1).max(120)
|
|
@@ -679,13 +710,26 @@ var createShareSchema = z.object({
|
|
|
679
710
|
var setEnabledSchema = z.object({
|
|
680
711
|
enabled: z.boolean()
|
|
681
712
|
});
|
|
713
|
+
var updateAccountSchema = z.object({
|
|
714
|
+
username: z.string().trim().min(3).optional()
|
|
715
|
+
});
|
|
716
|
+
var updatePasswordSchema = z.object({
|
|
717
|
+
currentPassword: z.string().min(1),
|
|
718
|
+
newPassword: z.string().min(8)
|
|
719
|
+
});
|
|
682
720
|
function buildRelayServer(config2) {
|
|
683
721
|
const app2 = Fastify({ logger: false });
|
|
722
|
+
app2.addContentTypeParser("*", { parseAs: "buffer" }, (_request, body, done) => {
|
|
723
|
+
done(null, body);
|
|
724
|
+
});
|
|
684
725
|
const store = RelayStore.fromDataDir(
|
|
685
726
|
config2.dataDir,
|
|
686
727
|
config2.sessionSecret,
|
|
687
728
|
config2.registrationEnabled
|
|
688
729
|
);
|
|
730
|
+
if (config2.registrationEnabledConfigured) {
|
|
731
|
+
store.setRegistrationEnabled(config2.registrationEnabled);
|
|
732
|
+
}
|
|
689
733
|
store.seedAdmin({
|
|
690
734
|
username: config2.adminUsername,
|
|
691
735
|
email: config2.adminEmail,
|
|
@@ -709,7 +753,15 @@ function buildRelayServer(config2) {
|
|
|
709
753
|
});
|
|
710
754
|
app2.post("/relay/auth/register", async (request, reply) => {
|
|
711
755
|
const body = registerSchema.parse(request.body ?? {});
|
|
712
|
-
|
|
756
|
+
if (config2.registrationPassword && body.registrationPassword !== config2.registrationPassword) {
|
|
757
|
+
reply.status(403).send({
|
|
758
|
+
code: "forbidden",
|
|
759
|
+
message: "Invalid registration password."
|
|
760
|
+
});
|
|
761
|
+
return;
|
|
762
|
+
}
|
|
763
|
+
const { registrationPassword: _registrationPassword, ...registerInput } = body;
|
|
764
|
+
const result = store.register(registerInput);
|
|
713
765
|
attachRelayCookie(reply, result.token);
|
|
714
766
|
return result;
|
|
715
767
|
});
|
|
@@ -723,6 +775,22 @@ function buildRelayServer(config2) {
|
|
|
723
775
|
clearRelayCookie(reply);
|
|
724
776
|
return store.emptySession();
|
|
725
777
|
});
|
|
778
|
+
app2.patch("/relay/account", async (request, reply) => {
|
|
779
|
+
const user = requireRelayUser(request, reply, store);
|
|
780
|
+
if (!user) {
|
|
781
|
+
return;
|
|
782
|
+
}
|
|
783
|
+
const body = updateAccountSchema.parse(request.body ?? {});
|
|
784
|
+
return store.updateAccount(user.id, body);
|
|
785
|
+
});
|
|
786
|
+
app2.patch("/relay/account/password", async (request, reply) => {
|
|
787
|
+
const user = requireRelayUser(request, reply, store);
|
|
788
|
+
if (!user) {
|
|
789
|
+
return;
|
|
790
|
+
}
|
|
791
|
+
const body = updatePasswordSchema.parse(request.body ?? {});
|
|
792
|
+
return store.updatePassword(user.id, body);
|
|
793
|
+
});
|
|
726
794
|
app2.get("/relay/portal", async (request, reply) => {
|
|
727
795
|
const user = requireRelayUser(request, reply, store);
|
|
728
796
|
if (!user) {
|
|
@@ -1042,6 +1110,7 @@ async function forwardRelayHttp(input) {
|
|
|
1042
1110
|
}
|
|
1043
1111
|
try {
|
|
1044
1112
|
const requestId = randomUUID();
|
|
1113
|
+
const requestBody = relayRequestBody(input.request.body);
|
|
1045
1114
|
const response = await supervisor.requestBroker.forward(supervisor.socket, {
|
|
1046
1115
|
type: "relay.request",
|
|
1047
1116
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -1051,7 +1120,8 @@ async function forwardRelayHttp(input) {
|
|
|
1051
1120
|
method: input.request.method,
|
|
1052
1121
|
path: input.targetPath,
|
|
1053
1122
|
headers: relayRequestHeaders(input.request.headers),
|
|
1054
|
-
body:
|
|
1123
|
+
body: requestBody.body,
|
|
1124
|
+
...requestBody.bodyEncoding ? { bodyEncoding: requestBody.bodyEncoding } : {}
|
|
1055
1125
|
}
|
|
1056
1126
|
});
|
|
1057
1127
|
for (const [name, value] of Object.entries(response.headers)) {
|
|
@@ -1279,15 +1349,18 @@ function shouldForwardSocketEvent(event, threadId) {
|
|
|
1279
1349
|
}
|
|
1280
1350
|
function relayRequestBody(body) {
|
|
1281
1351
|
if (body === void 0 || body === null) {
|
|
1282
|
-
return null;
|
|
1352
|
+
return { body: null };
|
|
1283
1353
|
}
|
|
1284
1354
|
if (typeof body === "string") {
|
|
1285
|
-
return body;
|
|
1355
|
+
return { body };
|
|
1286
1356
|
}
|
|
1287
1357
|
if (Buffer.isBuffer(body)) {
|
|
1288
|
-
return
|
|
1358
|
+
return {
|
|
1359
|
+
body: body.toString("base64"),
|
|
1360
|
+
bodyEncoding: "base64"
|
|
1361
|
+
};
|
|
1289
1362
|
}
|
|
1290
|
-
return JSON.stringify(body);
|
|
1363
|
+
return { body: JSON.stringify(body) };
|
|
1291
1364
|
}
|
|
1292
1365
|
function relayRequestHeaders(headers) {
|
|
1293
1366
|
const output = {};
|
|
@@ -1368,6 +1441,8 @@ import { z as z2 } from "zod";
|
|
|
1368
1441
|
var envSchema = z2.object({
|
|
1369
1442
|
HOST: z2.string().min(1).optional(),
|
|
1370
1443
|
PORT: z2.coerce.number().int().positive().optional(),
|
|
1444
|
+
REMOTE_CODEX_RELAY_HOST: z2.string().min(1).optional(),
|
|
1445
|
+
REMOTE_CODEX_RELAY_PORT: z2.coerce.number().int().positive().optional(),
|
|
1371
1446
|
REMOTE_CODEX_RELAY_SUPERVISOR_TOKEN: z2.string().min(1).optional(),
|
|
1372
1447
|
REMOTE_CODEX_RELAY_CLIENT_TOKEN: z2.string().min(1).optional(),
|
|
1373
1448
|
REMOTE_CODEX_ADMIN_USERNAME: z2.string().min(3),
|
|
@@ -1376,6 +1451,7 @@ var envSchema = z2.object({
|
|
|
1376
1451
|
REMOTE_CODEX_RELAY_DATA_DIR: z2.string().min(1).optional(),
|
|
1377
1452
|
REMOTE_CODEX_RELAY_SESSION_SECRET: z2.string().min(16).optional(),
|
|
1378
1453
|
REMOTE_CODEX_RELAY_REGISTRATION_ENABLED: z2.string().optional(),
|
|
1454
|
+
REMOTE_CODEX_RELAY_REGISTRATION_PASSWORD: z2.string().min(8).optional(),
|
|
1379
1455
|
REMOTE_CODEX_RELAY_WEB_DIST_DIR: z2.string().min(1).optional()
|
|
1380
1456
|
});
|
|
1381
1457
|
function optionalNonEmpty(value) {
|
|
@@ -1387,6 +1463,8 @@ function normalizeOptionalEnv(env) {
|
|
|
1387
1463
|
...env,
|
|
1388
1464
|
HOST: optionalNonEmpty(env.HOST),
|
|
1389
1465
|
PORT: optionalNonEmpty(env.PORT),
|
|
1466
|
+
REMOTE_CODEX_RELAY_HOST: optionalNonEmpty(env.REMOTE_CODEX_RELAY_HOST),
|
|
1467
|
+
REMOTE_CODEX_RELAY_PORT: optionalNonEmpty(env.REMOTE_CODEX_RELAY_PORT),
|
|
1390
1468
|
REMOTE_CODEX_RELAY_SUPERVISOR_TOKEN: optionalNonEmpty(
|
|
1391
1469
|
env.REMOTE_CODEX_RELAY_SUPERVISOR_TOKEN
|
|
1392
1470
|
),
|
|
@@ -1401,6 +1479,9 @@ function normalizeOptionalEnv(env) {
|
|
|
1401
1479
|
REMOTE_CODEX_RELAY_REGISTRATION_ENABLED: optionalNonEmpty(
|
|
1402
1480
|
env.REMOTE_CODEX_RELAY_REGISTRATION_ENABLED
|
|
1403
1481
|
),
|
|
1482
|
+
REMOTE_CODEX_RELAY_REGISTRATION_PASSWORD: optionalNonEmpty(
|
|
1483
|
+
env.REMOTE_CODEX_RELAY_REGISTRATION_PASSWORD
|
|
1484
|
+
),
|
|
1404
1485
|
REMOTE_CODEX_RELAY_WEB_DIST_DIR: optionalNonEmpty(
|
|
1405
1486
|
env.REMOTE_CODEX_RELAY_WEB_DIST_DIR
|
|
1406
1487
|
)
|
|
@@ -1409,8 +1490,8 @@ function normalizeOptionalEnv(env) {
|
|
|
1409
1490
|
function loadRelayServerConfig(env = process.env) {
|
|
1410
1491
|
const parsed = envSchema.parse(normalizeOptionalEnv(env));
|
|
1411
1492
|
return {
|
|
1412
|
-
host: parsed.HOST ?? "0.0.0.0",
|
|
1413
|
-
port: parsed.PORT ?? 8788,
|
|
1493
|
+
host: parsed.REMOTE_CODEX_RELAY_HOST ?? parsed.HOST ?? "0.0.0.0",
|
|
1494
|
+
port: parsed.REMOTE_CODEX_RELAY_PORT ?? parsed.PORT ?? 8788,
|
|
1414
1495
|
supervisorToken: parsed.REMOTE_CODEX_RELAY_SUPERVISOR_TOKEN ?? null,
|
|
1415
1496
|
clientToken: parsed.REMOTE_CODEX_RELAY_CLIENT_TOKEN ?? null,
|
|
1416
1497
|
adminUsername: parsed.REMOTE_CODEX_ADMIN_USERNAME,
|
|
@@ -1421,6 +1502,8 @@ function loadRelayServerConfig(env = process.env) {
|
|
|
1421
1502
|
registrationEnabled: parsed.REMOTE_CODEX_RELAY_REGISTRATION_ENABLED === void 0 ? true : ["1", "true", "yes", "on"].includes(
|
|
1422
1503
|
parsed.REMOTE_CODEX_RELAY_REGISTRATION_ENABLED.toLowerCase()
|
|
1423
1504
|
),
|
|
1505
|
+
registrationEnabledConfigured: parsed.REMOTE_CODEX_RELAY_REGISTRATION_ENABLED !== void 0,
|
|
1506
|
+
registrationPassword: parsed.REMOTE_CODEX_RELAY_REGISTRATION_PASSWORD ?? null,
|
|
1424
1507
|
webDistDir: parsed.REMOTE_CODEX_RELAY_WEB_DIST_DIR ?? defaultRelayWebDistDir()
|
|
1425
1508
|
};
|
|
1426
1509
|
}
|
|
@@ -1454,7 +1537,7 @@ try {
|
|
|
1454
1537
|
}
|
|
1455
1538
|
console.error("");
|
|
1456
1539
|
console.error("Required: REMOTE_CODEX_ADMIN_USERNAME, REMOTE_CODEX_ADMIN_PASSWORD");
|
|
1457
|
-
console.error("Optional: REMOTE_CODEX_ADMIN_EMAIL, REMOTE_CODEX_RELAY_SUPERVISOR_TOKEN, REMOTE_CODEX_RELAY_CLIENT_TOKEN, REMOTE_CODEX_RELAY_SESSION_SECRET, REMOTE_CODEX_RELAY_DATA_DIR, REMOTE_CODEX_RELAY_WEB_DIST_DIR,
|
|
1540
|
+
console.error("Optional: REMOTE_CODEX_ADMIN_EMAIL, REMOTE_CODEX_RELAY_SUPERVISOR_TOKEN, REMOTE_CODEX_RELAY_CLIENT_TOKEN, REMOTE_CODEX_RELAY_SESSION_SECRET, REMOTE_CODEX_RELAY_DATA_DIR, REMOTE_CODEX_RELAY_WEB_DIST_DIR, REMOTE_CODEX_RELAY_HOST, REMOTE_CODEX_RELAY_PORT");
|
|
1458
1541
|
process.exit(1);
|
|
1459
1542
|
}
|
|
1460
1543
|
throw error;
|
|
@@ -83,6 +83,8 @@ var envSchema = z.object({
|
|
|
83
83
|
REMOTE_CODEX_MODE: z.enum(["local", "server", "relay"]).optional(),
|
|
84
84
|
HOST: z.string().min(1).optional(),
|
|
85
85
|
PORT: z.coerce.number().int().positive().optional(),
|
|
86
|
+
REMOTE_CODEX_RELAY_SUPERVISOR_HOST: z.string().min(1).optional(),
|
|
87
|
+
REMOTE_CODEX_RELAY_SUPERVISOR_PORT: z.coerce.number().int().positive().optional(),
|
|
86
88
|
LOG_LEVEL: z.enum(["trace", "debug", "info", "warn", "error", "fatal"]).optional(),
|
|
87
89
|
DISABLE_REQUEST_LOGGING: z.string().optional(),
|
|
88
90
|
REMOTE_CODEX_MANAGEMENT_ROUTES_ENABLED: z.string().optional(),
|
|
@@ -131,6 +133,10 @@ function normalizeOptionalEnv(env) {
|
|
|
131
133
|
...env,
|
|
132
134
|
WORKSPACE_ROOT: optionalNonEmpty(env.WORKSPACE_ROOT),
|
|
133
135
|
DATABASE_URL: optionalNonEmpty(env.DATABASE_URL),
|
|
136
|
+
HOST: optionalNonEmpty(env.HOST),
|
|
137
|
+
PORT: optionalNonEmpty(env.PORT),
|
|
138
|
+
REMOTE_CODEX_RELAY_SUPERVISOR_HOST: optionalNonEmpty(env.REMOTE_CODEX_RELAY_SUPERVISOR_HOST),
|
|
139
|
+
REMOTE_CODEX_RELAY_SUPERVISOR_PORT: optionalNonEmpty(env.REMOTE_CODEX_RELAY_SUPERVISOR_PORT),
|
|
134
140
|
REMOTE_CODEX_ADMIN_USERNAME: optionalNonEmpty(env.REMOTE_CODEX_ADMIN_USERNAME),
|
|
135
141
|
REMOTE_CODEX_ADMIN_PASSWORD: optionalNonEmpty(env.REMOTE_CODEX_ADMIN_PASSWORD),
|
|
136
142
|
REMOTE_CODEX_SESSION_SECRET: optionalNonEmpty(env.REMOTE_CODEX_SESSION_SECRET),
|
|
@@ -181,9 +187,9 @@ function loadRuntimeConfig(env = process.env) {
|
|
|
181
187
|
runtimeRole,
|
|
182
188
|
sandboxId: parsed.REMOTE_CODEX_SANDBOX_ID ?? null,
|
|
183
189
|
userId: parsed.REMOTE_CODEX_USER_ID ?? null,
|
|
184
|
-
host: parsed.HOST ?? (runtimeRole === "worker" ? "0.0.0.0" : "127.0.0.1"),
|
|
190
|
+
host: parsed.REMOTE_CODEX_RELAY_SUPERVISOR_HOST ?? parsed.HOST ?? (runtimeRole === "worker" ? "0.0.0.0" : "127.0.0.1"),
|
|
185
191
|
mode,
|
|
186
|
-
port: parsed.PORT ?? 8787,
|
|
192
|
+
port: parsed.REMOTE_CODEX_RELAY_SUPERVISOR_PORT ?? parsed.PORT ?? 8787,
|
|
187
193
|
logLevel: parsed.LOG_LEVEL ?? (nodeEnv === "production" ? "warn" : "info"),
|
|
188
194
|
disableRequestLogging,
|
|
189
195
|
managementRoutesEnabled: parseBoolean(
|
|
@@ -25094,7 +25100,7 @@ var terminalPluginManifest = {
|
|
|
25094
25100
|
}
|
|
25095
25101
|
};
|
|
25096
25102
|
|
|
25097
|
-
// ../../packages/plugin-xyz-viewer/
|
|
25103
|
+
// ../../node_modules/.pnpm/@remote-codex+plugin-xyz-viewer@file+..+remote-codex-thread-ui+packages+plugin-xyz-view_5227bf80a742872b523d08ba646669ff/node_modules/@remote-codex/plugin-xyz-viewer/dist/chunk-6FS7BLJV.js
|
|
25098
25104
|
var XYZ_MOLECULE_ARTIFACT_TYPE = "chemistry.molecule3d";
|
|
25099
25105
|
var xyzViewerPluginManifest = {
|
|
25100
25106
|
id: "remote-codex.xyz-viewer",
|
|
@@ -27813,6 +27819,7 @@ function requestLog(app, error) {
|
|
|
27813
27819
|
}
|
|
27814
27820
|
function createRelayRequestHandler(app) {
|
|
27815
27821
|
return async function handleRelayRequest(request) {
|
|
27822
|
+
const payload = request.body === null ? void 0 : request.bodyEncoding === "base64" ? Buffer.from(request.body, "base64") : request.body;
|
|
27816
27823
|
const response = await app.inject({
|
|
27817
27824
|
method: request.method,
|
|
27818
27825
|
url: request.path,
|
|
@@ -27820,7 +27827,7 @@ function createRelayRequestHandler(app) {
|
|
|
27820
27827
|
...request.headers,
|
|
27821
27828
|
[RELAY_FORWARD_HEADER]: "1"
|
|
27822
27829
|
},
|
|
27823
|
-
...
|
|
27830
|
+
...payload !== void 0 ? { payload } : {}
|
|
27824
27831
|
});
|
|
27825
27832
|
return {
|
|
27826
27833
|
statusCode: response.statusCode,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Ht=Object.defineProperty;var zt=(n,e,t)=>e in n?Ht(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var d=(n,e,t)=>zt(n,typeof e!="symbol"?e+"":e,t);import{w as Ge,s as ot,f as Ut,c as Kt,d as Yt,e as Fe,z as Vt,h as Jt}from"./markdown-vendor-hBDTCSB-.js";import"./react-vendor-o1Xrx7m4.js";var R=class extends Error{constructor(n){super(n),this.name="ShikiError"}};function Qt(n){return Be(n)}function Be(n){return Array.isArray(n)?Xt(n):n instanceof RegExp?n:typeof n=="object"?Zt(n):n}function Xt(n){let e=[];for(let t=0,r=n.length;t<r;t++)e[t]=Be(n[t]);return e}function Zt(n){let e={};for(let t in n)e[t]=Be(n[t]);return e}function ct(n,...e){return e.forEach(t=>{for(let r in t)n[r]=t[r]}),n}function lt(n){const e=~n.lastIndexOf("/")||~n.lastIndexOf("\\");return e===0?n:~e===n.length-1?lt(n.substring(0,n.length-1)):n.substr(~e+1)}var Se=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,ee=class{static hasCaptures(n){return n===null?!1:(Se.lastIndex=0,Se.test(n))}static replaceCaptures(n,e,t){return n.replace(Se,(r,s,i,a)=>{let o=t[parseInt(s||i,10)];if(o){let c=e.substring(o.start,o.end);for(;c[0]===".";)c=c.substring(1);switch(a){case"downcase":return c.toLowerCase();case"upcase":return c.toUpperCase();default:return c}}else return r})}};function ut(n,e){return n<e?-1:n>e?1:0}function ht(n,e){if(n===null&&e===null)return 0;if(!n)return-1;if(!e)return 1;let t=n.length,r=e.length;if(t===r){for(let s=0;s<t;s++){let i=ut(n[s],e[s]);if(i!==0)return i}return 0}return t-r}function qe(n){return!!(/^#[0-9a-f]{6}$/i.test(n)||/^#[0-9a-f]{8}$/i.test(n)||/^#[0-9a-f]{3}$/i.test(n)||/^#[0-9a-f]{4}$/i.test(n))}function ft(n){return n.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}var dt=class{constructor(n){d(this,"cache",new Map);this.fn=n}get(n){if(this.cache.has(n))return this.cache.get(n);const e=this.fn(n);return this.cache.set(n,e),e}},ie=class{constructor(n,e,t){d(this,"_cachedMatchRoot",new dt(n=>this._root.match(n)));this._colorMap=n,this._defaults=e,this._root=t}static createFromRawTheme(n,e){return this.createFromParsedTheme(nn(n),e)}static createFromParsedTheme(n,e){return sn(n,e)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(n){if(n===null)return this._defaults;const e=n.scopeName,r=this._cachedMatchRoot.get(e).find(s=>en(n.parent,s.parentScopes));return r?new gt(r.fontStyle,r.foreground,r.background):null}},Ce=class re{constructor(e,t){this.parent=e,this.scopeName=t}static push(e,t){for(const r of t)e=new re(e,r);return e}static from(...e){let t=null;for(let r=0;r<e.length;r++)t=new re(t,e[r]);return t}push(e){return new re(this,e)}getSegments(){let e=this;const t=[];for(;e;)t.push(e.scopeName),e=e.parent;return t.reverse(),t}toString(){return this.getSegments().join(" ")}extends(e){return this===e?!0:this.parent===null?!1:this.parent.extends(e)}getExtensionIfDefined(e){const t=[];let r=this;for(;r&&r!==e;)t.push(r.scopeName),r=r.parent;return r===e?t.reverse():void 0}};function en(n,e){if(e.length===0)return!0;for(let t=0;t<e.length;t++){let r=e[t],s=!1;if(r===">"){if(t===e.length-1)return!1;r=e[++t],s=!0}for(;n&&!tn(n.scopeName,r);){if(s)return!1;n=n.parent}if(!n)return!1;n=n.parent}return!0}function tn(n,e){return e===n||n.startsWith(e)&&n[e.length]==="."}var gt=class{constructor(n,e,t){this.fontStyle=n,this.foregroundId=e,this.backgroundId=t}};function nn(n){if(!n)return[];if(!n.settings||!Array.isArray(n.settings))return[];let e=n.settings,t=[],r=0;for(let s=0,i=e.length;s<i;s++){let a=e[s];if(!a.settings)continue;let o;if(typeof a.scope=="string"){let u=a.scope;u=u.replace(/^[,]+/,""),u=u.replace(/[,]+$/,""),o=u.split(",")}else Array.isArray(a.scope)?o=a.scope:o=[""];let c=-1;if(typeof a.settings.fontStyle=="string"){c=0;let u=a.settings.fontStyle.split(" ");for(let f=0,g=u.length;f<g;f++)switch(u[f]){case"italic":c=c|1;break;case"bold":c=c|2;break;case"underline":c=c|4;break;case"strikethrough":c=c|8;break}}let l=null;typeof a.settings.foreground=="string"&&qe(a.settings.foreground)&&(l=a.settings.foreground);let h=null;typeof a.settings.background=="string"&&qe(a.settings.background)&&(h=a.settings.background);for(let u=0,f=o.length;u<f;u++){let m=o[u].trim().split(" "),S=m[m.length-1],b=null;m.length>1&&(b=m.slice(0,m.length-1),b.reverse()),t[r++]=new rn(S,b,s,c,l,h)}}return t}var rn=class{constructor(n,e,t,r,s,i){this.scope=n,this.parentScopes=e,this.index=t,this.fontStyle=r,this.foreground=s,this.background=i}},T=(n=>(n[n.NotSet=-1]="NotSet",n[n.None=0]="None",n[n.Italic=1]="Italic",n[n.Bold=2]="Bold",n[n.Underline=4]="Underline",n[n.Strikethrough=8]="Strikethrough",n))(T||{});function sn(n,e){n.sort((c,l)=>{let h=ut(c.scope,l.scope);return h!==0||(h=ht(c.parentScopes,l.parentScopes),h!==0)?h:c.index-l.index});let t=0,r="#000000",s="#ffffff";for(;n.length>=1&&n[0].scope==="";){let c=n.shift();c.fontStyle!==-1&&(t=c.fontStyle),c.foreground!==null&&(r=c.foreground),c.background!==null&&(s=c.background)}let i=new an(e),a=new gt(t,i.getId(r),i.getId(s)),o=new cn(new ve(0,null,-1,0,0),[]);for(let c=0,l=n.length;c<l;c++){let h=n[c];o.insert(0,h.scope,h.parentScopes,h.fontStyle,i.getId(h.foreground),i.getId(h.background))}return new ie(i,a,o)}var an=class{constructor(n){d(this,"_isFrozen");d(this,"_lastColorId");d(this,"_id2color");d(this,"_color2id");if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(n)){this._isFrozen=!0;for(let e=0,t=n.length;e<t;e++)this._color2id[n[e]]=e,this._id2color[e]=n[e]}else this._isFrozen=!1}getId(n){if(n===null)return 0;n=n.toUpperCase();let e=this._color2id[n];if(e)return e;if(this._isFrozen)throw new Error(`Missing color in color map - ${n}`);return e=++this._lastColorId,this._color2id[n]=e,this._id2color[e]=n,e}getColorMap(){return this._id2color.slice(0)}},on=Object.freeze([]),ve=class mt{constructor(e,t,r,s,i){d(this,"scopeDepth");d(this,"parentScopes");d(this,"fontStyle");d(this,"foreground");d(this,"background");this.scopeDepth=e,this.parentScopes=t||on,this.fontStyle=r,this.foreground=s,this.background=i}clone(){return new mt(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let t=[];for(let r=0,s=e.length;r<s;r++)t[r]=e[r].clone();return t}acceptOverwrite(e,t,r,s){this.scopeDepth>e?console.log("how did this happen?"):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),r!==0&&(this.foreground=r),s!==0&&(this.background=s)}},cn=class Te{constructor(e,t=[],r={}){d(this,"_rulesWithParentScopes");this._mainRule=e,this._children=r,this._rulesWithParentScopes=t}static _cmpBySpecificity(e,t){if(e.scopeDepth!==t.scopeDepth)return t.scopeDepth-e.scopeDepth;let r=0,s=0;for(;e.parentScopes[r]===">"&&r++,t.parentScopes[s]===">"&&s++,!(r>=e.parentScopes.length||s>=t.parentScopes.length);){const i=t.parentScopes[s].length-e.parentScopes[r].length;if(i!==0)return i;r++,s++}return t.parentScopes.length-e.parentScopes.length}match(e){if(e!==""){let r=e.indexOf("."),s,i;if(r===-1?(s=e,i=""):(s=e.substring(0,r),i=e.substring(r+1)),this._children.hasOwnProperty(s))return this._children[s].match(i)}const t=this._rulesWithParentScopes.concat(this._mainRule);return t.sort(Te._cmpBySpecificity),t}insert(e,t,r,s,i,a){if(t===""){this._doInsertHere(e,r,s,i,a);return}let o=t.indexOf("."),c,l;o===-1?(c=t,l=""):(c=t.substring(0,o),l=t.substring(o+1));let h;this._children.hasOwnProperty(c)?h=this._children[c]:(h=new Te(this._mainRule.clone(),ve.cloneArr(this._rulesWithParentScopes)),this._children[c]=h),h.insert(e+1,l,r,s,i,a)}_doInsertHere(e,t,r,s,i){if(t===null){this._mainRule.acceptOverwrite(e,r,s,i);return}for(let a=0,o=this._rulesWithParentScopes.length;a<o;a++){let c=this._rulesWithParentScopes[a];if(ht(c.parentScopes,t)===0){c.acceptOverwrite(e,r,s,i);return}}r===-1&&(r=this._mainRule.fontStyle),s===0&&(s=this._mainRule.foreground),i===0&&(i=this._mainRule.background),this._rulesWithParentScopes.push(new ve(e,t,r,s,i))}},F=class E{static toBinaryStr(e){return e.toString(2).padStart(32,"0")}static print(e){const t=E.getLanguageId(e),r=E.getTokenType(e),s=E.getFontStyle(e),i=E.getForeground(e),a=E.getBackground(e);console.log({languageId:t,tokenType:r,fontStyle:s,foreground:i,background:a})}static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(e,t,r,s,i,a,o){let c=E.getLanguageId(e),l=E.getTokenType(e),h=E.containsBalancedBrackets(e)?1:0,u=E.getFontStyle(e),f=E.getForeground(e),g=E.getBackground(e);return t!==0&&(c=t),r!==8&&(l=r),s!==null&&(h=s?1:0),i!==-1&&(u=i),a!==0&&(f=a),o!==0&&(g=o),(c<<0|l<<8|h<<10|u<<11|f<<15|g<<24)>>>0}};function ae(n,e){const t=[],r=ln(n);let s=r.next();for(;s!==null;){let c=0;if(s.length===2&&s.charAt(1)===":"){switch(s.charAt(0)){case"R":c=1;break;case"L":c=-1;break;default:console.log(`Unknown priority ${s} in scope selector`)}s=r.next()}let l=a();if(t.push({matcher:l,priority:c}),s!==",")break;s=r.next()}return t;function i(){if(s==="-"){s=r.next();const c=i();return l=>!!c&&!c(l)}if(s==="("){s=r.next();const c=o();return s===")"&&(s=r.next()),c}if(He(s)){const c=[];do c.push(s),s=r.next();while(He(s));return l=>e(c,l)}return null}function a(){const c=[];let l=i();for(;l;)c.push(l),l=i();return h=>c.every(u=>u(h))}function o(){const c=[];let l=a();for(;l&&(c.push(l),s==="|"||s===",");){do s=r.next();while(s==="|"||s===",");l=a()}return h=>c.some(u=>u(h))}}function He(n){return!!n&&!!n.match(/[\w\.:]+/)}function ln(n){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,t=e.exec(n);return{next:()=>{if(!t)return null;const r=t[0];return t=e.exec(n),r}}}function pt(n){typeof n.dispose=="function"&&n.dispose()}var K=class{constructor(n){this.scopeName=n}toKey(){return this.scopeName}},un=class{constructor(n,e){this.scopeName=n,this.ruleName=e}toKey(){return`${this.scopeName}#${this.ruleName}`}},hn=class{constructor(){d(this,"_references",[]);d(this,"_seenReferenceKeys",new Set);d(this,"visitedRule",new Set)}get references(){return this._references}add(n){const e=n.toKey();this._seenReferenceKeys.has(e)||(this._seenReferenceKeys.add(e),this._references.push(n))}},fn=class{constructor(n,e){d(this,"seenFullScopeRequests",new Set);d(this,"seenPartialScopeRequests",new Set);d(this,"Q");this.repo=n,this.initialScopeName=e,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new K(this.initialScopeName)]}processQueue(){const n=this.Q;this.Q=[];const e=new hn;for(const t of n)dn(t,this.initialScopeName,this.repo,e);for(const t of e.references)if(t instanceof K){if(this.seenFullScopeRequests.has(t.scopeName))continue;this.seenFullScopeRequests.add(t.scopeName),this.Q.push(t)}else{if(this.seenFullScopeRequests.has(t.scopeName)||this.seenPartialScopeRequests.has(t.toKey()))continue;this.seenPartialScopeRequests.add(t.toKey()),this.Q.push(t)}}};function dn(n,e,t,r){const s=t.lookup(n.scopeName);if(!s){if(n.scopeName===e)throw new Error(`No grammar provided for <${e}>`);return}const i=t.lookup(e);n instanceof K?se({baseGrammar:i,selfGrammar:s},r):Ae(n.ruleName,{baseGrammar:i,selfGrammar:s,repository:s.repository},r);const a=t.injections(n.scopeName);if(a)for(const o of a)r.add(new K(o))}function Ae(n,e,t){if(e.repository&&e.repository[n]){const r=e.repository[n];oe([r],e,t)}}function se(n,e){n.selfGrammar.patterns&&Array.isArray(n.selfGrammar.patterns)&&oe(n.selfGrammar.patterns,{...n,repository:n.selfGrammar.repository},e),n.selfGrammar.injections&&oe(Object.values(n.selfGrammar.injections),{...n,repository:n.selfGrammar.repository},e)}function oe(n,e,t){for(const r of n){if(t.visitedRule.has(r))continue;t.visitedRule.add(r);const s=r.repository?ct({},e.repository,r.repository):e.repository;Array.isArray(r.patterns)&&oe(r.patterns,{...e,repository:s},t);const i=r.include;if(!i)continue;const a=_t(i);switch(a.kind){case 0:se({...e,selfGrammar:e.baseGrammar},t);break;case 1:se(e,t);break;case 2:Ae(a.ruleName,{...e,repository:s},t);break;case 3:case 4:const o=a.scopeName===e.selfGrammar.scopeName?e.selfGrammar:a.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(o){const c={baseGrammar:e.baseGrammar,selfGrammar:o,repository:s};a.kind===4?Ae(a.ruleName,c,t):se(c,t)}else a.kind===4?t.add(new un(a.scopeName,a.ruleName)):t.add(new K(a.scopeName));break}}}var gn=class{constructor(){d(this,"kind",0)}},mn=class{constructor(){d(this,"kind",1)}},pn=class{constructor(n){d(this,"kind",2);this.ruleName=n}},_n=class{constructor(n){d(this,"kind",3);this.scopeName=n}},yn=class{constructor(n,e){d(this,"kind",4);this.scopeName=n,this.ruleName=e}};function _t(n){if(n==="$base")return new gn;if(n==="$self")return new mn;const e=n.indexOf("#");if(e===-1)return new _n(n);if(e===0)return new pn(n.substring(1));{const t=n.substring(0,e),r=n.substring(e+1);return new yn(t,r)}}var bn=/\\(\d+)/,ze=/\\(\d+)/g,Sn=-1,yt=-2;var Z=class{constructor(n,e,t,r){d(this,"$location");d(this,"id");d(this,"_nameIsCapturing");d(this,"_name");d(this,"_contentNameIsCapturing");d(this,"_contentName");this.$location=n,this.id=e,this._name=t||null,this._nameIsCapturing=ee.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=ee.hasCaptures(this._contentName)}get debugName(){const n=this.$location?`${lt(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${n}`}getName(n,e){return!this._nameIsCapturing||this._name===null||n===null||e===null?this._name:ee.replaceCaptures(this._name,n,e)}getContentName(n,e){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:ee.replaceCaptures(this._contentName,n,e)}},Cn=class extends Z{constructor(e,t,r,s,i){super(e,t,r,s);d(this,"retokenizeCapturedWithRuleId");this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,r,s){throw new Error("Not supported!")}},wn=class extends Z{constructor(e,t,r,s,i){super(e,t,r,null);d(this,"_match");d(this,"captures");d(this,"_cachedCompiledPatterns");this._match=new Y(s,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new V,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ue=class extends Z{constructor(e,t,r,s,i){super(e,t,r,s);d(this,"hasMissingPatterns");d(this,"patterns");d(this,"_cachedCompiledPatterns");this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const r of this.patterns)e.getRule(r).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new V,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ie=class extends Z{constructor(e,t,r,s,i,a,o,c,l,h){super(e,t,r,s);d(this,"_begin");d(this,"beginCaptures");d(this,"_end");d(this,"endHasBackReferences");d(this,"endCaptures");d(this,"applyEndPatternLast");d(this,"hasMissingPatterns");d(this,"patterns");d(this,"_cachedCompiledPatterns");this._begin=new Y(i,this.id),this.beginCaptures=a,this._end=new Y(o||"",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=c,this.applyEndPatternLast=l||!1,this.patterns=h.patterns,this.hasMissingPatterns=h.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e,t).compileAG(e,r,s)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new V;for(const r of this.patterns)e.getRule(r).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},ce=class extends Z{constructor(e,t,r,s,i,a,o,c,l){super(e,t,r,s);d(this,"_begin");d(this,"beginCaptures");d(this,"whileCaptures");d(this,"_while");d(this,"whileHasBackReferences");d(this,"hasMissingPatterns");d(this,"patterns");d(this,"_cachedCompiledPatterns");d(this,"_cachedCompiledWhilePatterns");this._begin=new Y(i,this.id),this.beginCaptures=a,this.whileCaptures=c,this._while=new Y(o,yt),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new V;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,r,s){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,r,s)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new V,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||""),this._cachedCompiledWhilePatterns}},bt=class v{static createCaptureRule(e,t,r,s,i){return e.registerRule(a=>new Cn(t,a,r,s,i))}static getCompiledRuleId(e,t,r){return e.id||t.registerRule(s=>{if(e.id=s,e.match)return new wn(e.$vscodeTextmateLocation,e.id,e.name,e.match,v._compileCaptures(e.captures,t,r));if(typeof e.begin>"u"){e.repository&&(r=ct({},r,e.repository));let i=e.patterns;return typeof i>"u"&&e.include&&(i=[{include:e.include}]),new Ue(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,v._compilePatterns(i,t,r))}return e.while?new ce(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,v._compileCaptures(e.beginCaptures||e.captures,t,r),e.while,v._compileCaptures(e.whileCaptures||e.captures,t,r),v._compilePatterns(e.patterns,t,r)):new Ie(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,v._compileCaptures(e.beginCaptures||e.captures,t,r),e.end,v._compileCaptures(e.endCaptures||e.captures,t,r),e.applyEndPatternLast,v._compilePatterns(e.patterns,t,r))}),e.id}static _compileCaptures(e,t,r){let s=[];if(e){let i=0;for(const a in e){if(a==="$vscodeTextmateLocation")continue;const o=parseInt(a,10);o>i&&(i=o)}for(let a=0;a<=i;a++)s[a]=null;for(const a in e){if(a==="$vscodeTextmateLocation")continue;const o=parseInt(a,10);let c=0;e[a].patterns&&(c=v.getCompiledRuleId(e[a],t,r)),s[o]=v.createCaptureRule(t,e[a].$vscodeTextmateLocation,e[a].name,e[a].contentName,c)}}return s}static _compilePatterns(e,t,r){let s=[];if(e)for(let i=0,a=e.length;i<a;i++){const o=e[i];let c=-1;if(o.include){const l=_t(o.include);switch(l.kind){case 0:case 1:c=v.getCompiledRuleId(r[o.include],t,r);break;case 2:let h=r[l.ruleName];h&&(c=v.getCompiledRuleId(h,t,r));break;case 3:case 4:const u=l.scopeName,f=l.kind===4?l.ruleName:null,g=t.getExternalGrammar(u,r);if(g)if(f){let m=g.repository[f];m&&(c=v.getCompiledRuleId(m,t,g.repository))}else c=v.getCompiledRuleId(g.repository.$self,t,g.repository);break}}else c=v.getCompiledRuleId(o,t,r);if(c!==-1){const l=t.getRule(c);let h=!1;if((l instanceof Ue||l instanceof Ie||l instanceof ce)&&l.hasMissingPatterns&&l.patterns.length===0&&(h=!0),h)continue;s.push(c)}}return{patterns:s,hasMissingPatterns:(e?e.length:0)!==s.length}}},Y=class St{constructor(e,t){d(this,"source");d(this,"ruleId");d(this,"hasAnchor");d(this,"hasBackReferences");d(this,"_anchorCache");if(e&&typeof e=="string"){const r=e.length;let s=0,i=[],a=!1;for(let o=0;o<r;o++)if(e.charAt(o)==="\\"&&o+1<r){const l=e.charAt(o+1);l==="z"?(i.push(e.substring(s,o)),i.push("$(?!\\n)(?<!\\n)"),s=o+2):(l==="A"||l==="G")&&(a=!0),o++}this.hasAnchor=a,s===0?this.source=e:(i.push(e.substring(s,r)),this.source=i.join(""))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=t,typeof this.source=="string"?this.hasBackReferences=bn.test(this.source):this.hasBackReferences=!1}clone(){return new St(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,t){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let r=t.map(s=>e.substring(s.start,s.end));return ze.lastIndex=0,this.source.replace(ze,(s,i)=>ft(r[parseInt(i,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let e=[],t=[],r=[],s=[],i,a,o,c;for(i=0,a=this.source.length;i<a;i++)o=this.source.charAt(i),e[i]=o,t[i]=o,r[i]=o,s[i]=o,o==="\\"&&i+1<a&&(c=this.source.charAt(i+1),c==="A"?(e[i+1]="",t[i+1]="",r[i+1]="A",s[i+1]="A"):c==="G"?(e[i+1]="",t[i+1]="G",r[i+1]="",s[i+1]="G"):(e[i+1]=c,t[i+1]=c,r[i+1]=c,s[i+1]=c),i++);return{A0_G0:e.join(""),A0_G1:t.join(""),A1_G0:r.join(""),A1_G1:s.join("")}}resolveAnchors(e,t){return!this.hasAnchor||!this._anchorCache||typeof this.source!="string"?this.source:e?t?this._anchorCache.A1_G1:this._anchorCache.A1_G0:t?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},V=class{constructor(){d(this,"_items");d(this,"_hasAnchors");d(this,"_cached");d(this,"_anchorCache");this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(n){this._items.push(n),this._hasAnchors=this._hasAnchors||n.hasAnchor}unshift(n){this._items.unshift(n),this._hasAnchors=this._hasAnchors||n.hasAnchor}length(){return this._items.length}setSource(n,e){this._items[n].source!==e&&(this._disposeCaches(),this._items[n].setSource(e))}compile(n){if(!this._cached){let e=this._items.map(t=>t.source);this._cached=new Ke(n,e,this._items.map(t=>t.ruleId))}return this._cached}compileAG(n,e,t){return this._hasAnchors?e?t?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G0):t?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G0):this.compile(n)}_resolveAnchors(n,e,t){let r=this._items.map(s=>s.resolveAnchors(e,t));return new Ke(n,r,this._items.map(s=>s.ruleId))}},Ke=class{constructor(n,e,t){d(this,"scanner");this.regExps=e,this.rules=t,this.scanner=n.createOnigScanner(e)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const n=[];for(let e=0,t=this.rules.length;e<t;e++)n.push(" - "+this.rules[e]+": "+this.regExps[e]);return n.join(`
|
|
1
|
+
var Ht=Object.defineProperty;var zt=(n,e,t)=>e in n?Ht(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var d=(n,e,t)=>zt(n,typeof e!="symbol"?e+"":e,t);import{w as Ge,s as ot,f as Ut,c as Kt,d as Yt,e as Fe,z as Vt,h as Jt}from"./markdown-vendor-BQJfKm05.js";import"./react-vendor-CgLzZcV4.js";var R=class extends Error{constructor(n){super(n),this.name="ShikiError"}};function Qt(n){return Be(n)}function Be(n){return Array.isArray(n)?Xt(n):n instanceof RegExp?n:typeof n=="object"?Zt(n):n}function Xt(n){let e=[];for(let t=0,r=n.length;t<r;t++)e[t]=Be(n[t]);return e}function Zt(n){let e={};for(let t in n)e[t]=Be(n[t]);return e}function ct(n,...e){return e.forEach(t=>{for(let r in t)n[r]=t[r]}),n}function lt(n){const e=~n.lastIndexOf("/")||~n.lastIndexOf("\\");return e===0?n:~e===n.length-1?lt(n.substring(0,n.length-1)):n.substr(~e+1)}var Se=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,ee=class{static hasCaptures(n){return n===null?!1:(Se.lastIndex=0,Se.test(n))}static replaceCaptures(n,e,t){return n.replace(Se,(r,s,i,a)=>{let o=t[parseInt(s||i,10)];if(o){let c=e.substring(o.start,o.end);for(;c[0]===".";)c=c.substring(1);switch(a){case"downcase":return c.toLowerCase();case"upcase":return c.toUpperCase();default:return c}}else return r})}};function ut(n,e){return n<e?-1:n>e?1:0}function ht(n,e){if(n===null&&e===null)return 0;if(!n)return-1;if(!e)return 1;let t=n.length,r=e.length;if(t===r){for(let s=0;s<t;s++){let i=ut(n[s],e[s]);if(i!==0)return i}return 0}return t-r}function qe(n){return!!(/^#[0-9a-f]{6}$/i.test(n)||/^#[0-9a-f]{8}$/i.test(n)||/^#[0-9a-f]{3}$/i.test(n)||/^#[0-9a-f]{4}$/i.test(n))}function ft(n){return n.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}var dt=class{constructor(n){d(this,"cache",new Map);this.fn=n}get(n){if(this.cache.has(n))return this.cache.get(n);const e=this.fn(n);return this.cache.set(n,e),e}},ie=class{constructor(n,e,t){d(this,"_cachedMatchRoot",new dt(n=>this._root.match(n)));this._colorMap=n,this._defaults=e,this._root=t}static createFromRawTheme(n,e){return this.createFromParsedTheme(nn(n),e)}static createFromParsedTheme(n,e){return sn(n,e)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(n){if(n===null)return this._defaults;const e=n.scopeName,r=this._cachedMatchRoot.get(e).find(s=>en(n.parent,s.parentScopes));return r?new gt(r.fontStyle,r.foreground,r.background):null}},Ce=class re{constructor(e,t){this.parent=e,this.scopeName=t}static push(e,t){for(const r of t)e=new re(e,r);return e}static from(...e){let t=null;for(let r=0;r<e.length;r++)t=new re(t,e[r]);return t}push(e){return new re(this,e)}getSegments(){let e=this;const t=[];for(;e;)t.push(e.scopeName),e=e.parent;return t.reverse(),t}toString(){return this.getSegments().join(" ")}extends(e){return this===e?!0:this.parent===null?!1:this.parent.extends(e)}getExtensionIfDefined(e){const t=[];let r=this;for(;r&&r!==e;)t.push(r.scopeName),r=r.parent;return r===e?t.reverse():void 0}};function en(n,e){if(e.length===0)return!0;for(let t=0;t<e.length;t++){let r=e[t],s=!1;if(r===">"){if(t===e.length-1)return!1;r=e[++t],s=!0}for(;n&&!tn(n.scopeName,r);){if(s)return!1;n=n.parent}if(!n)return!1;n=n.parent}return!0}function tn(n,e){return e===n||n.startsWith(e)&&n[e.length]==="."}var gt=class{constructor(n,e,t){this.fontStyle=n,this.foregroundId=e,this.backgroundId=t}};function nn(n){if(!n)return[];if(!n.settings||!Array.isArray(n.settings))return[];let e=n.settings,t=[],r=0;for(let s=0,i=e.length;s<i;s++){let a=e[s];if(!a.settings)continue;let o;if(typeof a.scope=="string"){let u=a.scope;u=u.replace(/^[,]+/,""),u=u.replace(/[,]+$/,""),o=u.split(",")}else Array.isArray(a.scope)?o=a.scope:o=[""];let c=-1;if(typeof a.settings.fontStyle=="string"){c=0;let u=a.settings.fontStyle.split(" ");for(let f=0,g=u.length;f<g;f++)switch(u[f]){case"italic":c=c|1;break;case"bold":c=c|2;break;case"underline":c=c|4;break;case"strikethrough":c=c|8;break}}let l=null;typeof a.settings.foreground=="string"&&qe(a.settings.foreground)&&(l=a.settings.foreground);let h=null;typeof a.settings.background=="string"&&qe(a.settings.background)&&(h=a.settings.background);for(let u=0,f=o.length;u<f;u++){let m=o[u].trim().split(" "),S=m[m.length-1],b=null;m.length>1&&(b=m.slice(0,m.length-1),b.reverse()),t[r++]=new rn(S,b,s,c,l,h)}}return t}var rn=class{constructor(n,e,t,r,s,i){this.scope=n,this.parentScopes=e,this.index=t,this.fontStyle=r,this.foreground=s,this.background=i}},T=(n=>(n[n.NotSet=-1]="NotSet",n[n.None=0]="None",n[n.Italic=1]="Italic",n[n.Bold=2]="Bold",n[n.Underline=4]="Underline",n[n.Strikethrough=8]="Strikethrough",n))(T||{});function sn(n,e){n.sort((c,l)=>{let h=ut(c.scope,l.scope);return h!==0||(h=ht(c.parentScopes,l.parentScopes),h!==0)?h:c.index-l.index});let t=0,r="#000000",s="#ffffff";for(;n.length>=1&&n[0].scope==="";){let c=n.shift();c.fontStyle!==-1&&(t=c.fontStyle),c.foreground!==null&&(r=c.foreground),c.background!==null&&(s=c.background)}let i=new an(e),a=new gt(t,i.getId(r),i.getId(s)),o=new cn(new ve(0,null,-1,0,0),[]);for(let c=0,l=n.length;c<l;c++){let h=n[c];o.insert(0,h.scope,h.parentScopes,h.fontStyle,i.getId(h.foreground),i.getId(h.background))}return new ie(i,a,o)}var an=class{constructor(n){d(this,"_isFrozen");d(this,"_lastColorId");d(this,"_id2color");d(this,"_color2id");if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(n)){this._isFrozen=!0;for(let e=0,t=n.length;e<t;e++)this._color2id[n[e]]=e,this._id2color[e]=n[e]}else this._isFrozen=!1}getId(n){if(n===null)return 0;n=n.toUpperCase();let e=this._color2id[n];if(e)return e;if(this._isFrozen)throw new Error(`Missing color in color map - ${n}`);return e=++this._lastColorId,this._color2id[n]=e,this._id2color[e]=n,e}getColorMap(){return this._id2color.slice(0)}},on=Object.freeze([]),ve=class mt{constructor(e,t,r,s,i){d(this,"scopeDepth");d(this,"parentScopes");d(this,"fontStyle");d(this,"foreground");d(this,"background");this.scopeDepth=e,this.parentScopes=t||on,this.fontStyle=r,this.foreground=s,this.background=i}clone(){return new mt(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let t=[];for(let r=0,s=e.length;r<s;r++)t[r]=e[r].clone();return t}acceptOverwrite(e,t,r,s){this.scopeDepth>e?console.log("how did this happen?"):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),r!==0&&(this.foreground=r),s!==0&&(this.background=s)}},cn=class Te{constructor(e,t=[],r={}){d(this,"_rulesWithParentScopes");this._mainRule=e,this._children=r,this._rulesWithParentScopes=t}static _cmpBySpecificity(e,t){if(e.scopeDepth!==t.scopeDepth)return t.scopeDepth-e.scopeDepth;let r=0,s=0;for(;e.parentScopes[r]===">"&&r++,t.parentScopes[s]===">"&&s++,!(r>=e.parentScopes.length||s>=t.parentScopes.length);){const i=t.parentScopes[s].length-e.parentScopes[r].length;if(i!==0)return i;r++,s++}return t.parentScopes.length-e.parentScopes.length}match(e){if(e!==""){let r=e.indexOf("."),s,i;if(r===-1?(s=e,i=""):(s=e.substring(0,r),i=e.substring(r+1)),this._children.hasOwnProperty(s))return this._children[s].match(i)}const t=this._rulesWithParentScopes.concat(this._mainRule);return t.sort(Te._cmpBySpecificity),t}insert(e,t,r,s,i,a){if(t===""){this._doInsertHere(e,r,s,i,a);return}let o=t.indexOf("."),c,l;o===-1?(c=t,l=""):(c=t.substring(0,o),l=t.substring(o+1));let h;this._children.hasOwnProperty(c)?h=this._children[c]:(h=new Te(this._mainRule.clone(),ve.cloneArr(this._rulesWithParentScopes)),this._children[c]=h),h.insert(e+1,l,r,s,i,a)}_doInsertHere(e,t,r,s,i){if(t===null){this._mainRule.acceptOverwrite(e,r,s,i);return}for(let a=0,o=this._rulesWithParentScopes.length;a<o;a++){let c=this._rulesWithParentScopes[a];if(ht(c.parentScopes,t)===0){c.acceptOverwrite(e,r,s,i);return}}r===-1&&(r=this._mainRule.fontStyle),s===0&&(s=this._mainRule.foreground),i===0&&(i=this._mainRule.background),this._rulesWithParentScopes.push(new ve(e,t,r,s,i))}},F=class E{static toBinaryStr(e){return e.toString(2).padStart(32,"0")}static print(e){const t=E.getLanguageId(e),r=E.getTokenType(e),s=E.getFontStyle(e),i=E.getForeground(e),a=E.getBackground(e);console.log({languageId:t,tokenType:r,fontStyle:s,foreground:i,background:a})}static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(e,t,r,s,i,a,o){let c=E.getLanguageId(e),l=E.getTokenType(e),h=E.containsBalancedBrackets(e)?1:0,u=E.getFontStyle(e),f=E.getForeground(e),g=E.getBackground(e);return t!==0&&(c=t),r!==8&&(l=r),s!==null&&(h=s?1:0),i!==-1&&(u=i),a!==0&&(f=a),o!==0&&(g=o),(c<<0|l<<8|h<<10|u<<11|f<<15|g<<24)>>>0}};function ae(n,e){const t=[],r=ln(n);let s=r.next();for(;s!==null;){let c=0;if(s.length===2&&s.charAt(1)===":"){switch(s.charAt(0)){case"R":c=1;break;case"L":c=-1;break;default:console.log(`Unknown priority ${s} in scope selector`)}s=r.next()}let l=a();if(t.push({matcher:l,priority:c}),s!==",")break;s=r.next()}return t;function i(){if(s==="-"){s=r.next();const c=i();return l=>!!c&&!c(l)}if(s==="("){s=r.next();const c=o();return s===")"&&(s=r.next()),c}if(He(s)){const c=[];do c.push(s),s=r.next();while(He(s));return l=>e(c,l)}return null}function a(){const c=[];let l=i();for(;l;)c.push(l),l=i();return h=>c.every(u=>u(h))}function o(){const c=[];let l=a();for(;l&&(c.push(l),s==="|"||s===",");){do s=r.next();while(s==="|"||s===",");l=a()}return h=>c.some(u=>u(h))}}function He(n){return!!n&&!!n.match(/[\w\.:]+/)}function ln(n){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,t=e.exec(n);return{next:()=>{if(!t)return null;const r=t[0];return t=e.exec(n),r}}}function pt(n){typeof n.dispose=="function"&&n.dispose()}var K=class{constructor(n){this.scopeName=n}toKey(){return this.scopeName}},un=class{constructor(n,e){this.scopeName=n,this.ruleName=e}toKey(){return`${this.scopeName}#${this.ruleName}`}},hn=class{constructor(){d(this,"_references",[]);d(this,"_seenReferenceKeys",new Set);d(this,"visitedRule",new Set)}get references(){return this._references}add(n){const e=n.toKey();this._seenReferenceKeys.has(e)||(this._seenReferenceKeys.add(e),this._references.push(n))}},fn=class{constructor(n,e){d(this,"seenFullScopeRequests",new Set);d(this,"seenPartialScopeRequests",new Set);d(this,"Q");this.repo=n,this.initialScopeName=e,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new K(this.initialScopeName)]}processQueue(){const n=this.Q;this.Q=[];const e=new hn;for(const t of n)dn(t,this.initialScopeName,this.repo,e);for(const t of e.references)if(t instanceof K){if(this.seenFullScopeRequests.has(t.scopeName))continue;this.seenFullScopeRequests.add(t.scopeName),this.Q.push(t)}else{if(this.seenFullScopeRequests.has(t.scopeName)||this.seenPartialScopeRequests.has(t.toKey()))continue;this.seenPartialScopeRequests.add(t.toKey()),this.Q.push(t)}}};function dn(n,e,t,r){const s=t.lookup(n.scopeName);if(!s){if(n.scopeName===e)throw new Error(`No grammar provided for <${e}>`);return}const i=t.lookup(e);n instanceof K?se({baseGrammar:i,selfGrammar:s},r):Ae(n.ruleName,{baseGrammar:i,selfGrammar:s,repository:s.repository},r);const a=t.injections(n.scopeName);if(a)for(const o of a)r.add(new K(o))}function Ae(n,e,t){if(e.repository&&e.repository[n]){const r=e.repository[n];oe([r],e,t)}}function se(n,e){n.selfGrammar.patterns&&Array.isArray(n.selfGrammar.patterns)&&oe(n.selfGrammar.patterns,{...n,repository:n.selfGrammar.repository},e),n.selfGrammar.injections&&oe(Object.values(n.selfGrammar.injections),{...n,repository:n.selfGrammar.repository},e)}function oe(n,e,t){for(const r of n){if(t.visitedRule.has(r))continue;t.visitedRule.add(r);const s=r.repository?ct({},e.repository,r.repository):e.repository;Array.isArray(r.patterns)&&oe(r.patterns,{...e,repository:s},t);const i=r.include;if(!i)continue;const a=_t(i);switch(a.kind){case 0:se({...e,selfGrammar:e.baseGrammar},t);break;case 1:se(e,t);break;case 2:Ae(a.ruleName,{...e,repository:s},t);break;case 3:case 4:const o=a.scopeName===e.selfGrammar.scopeName?e.selfGrammar:a.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(o){const c={baseGrammar:e.baseGrammar,selfGrammar:o,repository:s};a.kind===4?Ae(a.ruleName,c,t):se(c,t)}else a.kind===4?t.add(new un(a.scopeName,a.ruleName)):t.add(new K(a.scopeName));break}}}var gn=class{constructor(){d(this,"kind",0)}},mn=class{constructor(){d(this,"kind",1)}},pn=class{constructor(n){d(this,"kind",2);this.ruleName=n}},_n=class{constructor(n){d(this,"kind",3);this.scopeName=n}},yn=class{constructor(n,e){d(this,"kind",4);this.scopeName=n,this.ruleName=e}};function _t(n){if(n==="$base")return new gn;if(n==="$self")return new mn;const e=n.indexOf("#");if(e===-1)return new _n(n);if(e===0)return new pn(n.substring(1));{const t=n.substring(0,e),r=n.substring(e+1);return new yn(t,r)}}var bn=/\\(\d+)/,ze=/\\(\d+)/g,Sn=-1,yt=-2;var Z=class{constructor(n,e,t,r){d(this,"$location");d(this,"id");d(this,"_nameIsCapturing");d(this,"_name");d(this,"_contentNameIsCapturing");d(this,"_contentName");this.$location=n,this.id=e,this._name=t||null,this._nameIsCapturing=ee.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=ee.hasCaptures(this._contentName)}get debugName(){const n=this.$location?`${lt(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${n}`}getName(n,e){return!this._nameIsCapturing||this._name===null||n===null||e===null?this._name:ee.replaceCaptures(this._name,n,e)}getContentName(n,e){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:ee.replaceCaptures(this._contentName,n,e)}},Cn=class extends Z{constructor(e,t,r,s,i){super(e,t,r,s);d(this,"retokenizeCapturedWithRuleId");this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,r,s){throw new Error("Not supported!")}},wn=class extends Z{constructor(e,t,r,s,i){super(e,t,r,null);d(this,"_match");d(this,"captures");d(this,"_cachedCompiledPatterns");this._match=new Y(s,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new V,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ue=class extends Z{constructor(e,t,r,s,i){super(e,t,r,s);d(this,"hasMissingPatterns");d(this,"patterns");d(this,"_cachedCompiledPatterns");this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const r of this.patterns)e.getRule(r).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new V,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Ie=class extends Z{constructor(e,t,r,s,i,a,o,c,l,h){super(e,t,r,s);d(this,"_begin");d(this,"beginCaptures");d(this,"_end");d(this,"endHasBackReferences");d(this,"endCaptures");d(this,"applyEndPatternLast");d(this,"hasMissingPatterns");d(this,"patterns");d(this,"_cachedCompiledPatterns");this._begin=new Y(i,this.id),this.beginCaptures=a,this._end=new Y(o||"",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=c,this.applyEndPatternLast=l||!1,this.patterns=h.patterns,this.hasMissingPatterns=h.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e,t).compileAG(e,r,s)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new V;for(const r of this.patterns)e.getRule(r).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},ce=class extends Z{constructor(e,t,r,s,i,a,o,c,l){super(e,t,r,s);d(this,"_begin");d(this,"beginCaptures");d(this,"whileCaptures");d(this,"_while");d(this,"whileHasBackReferences");d(this,"hasMissingPatterns");d(this,"patterns");d(this,"_cachedCompiledPatterns");d(this,"_cachedCompiledWhilePatterns");this._begin=new Y(i,this.id),this.beginCaptures=a,this.whileCaptures=c,this._while=new Y(o,yt),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,r,s){return this._getCachedCompiledPatterns(e).compileAG(e,r,s)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new V;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,r,s){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,r,s)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new V,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||""),this._cachedCompiledWhilePatterns}},bt=class v{static createCaptureRule(e,t,r,s,i){return e.registerRule(a=>new Cn(t,a,r,s,i))}static getCompiledRuleId(e,t,r){return e.id||t.registerRule(s=>{if(e.id=s,e.match)return new wn(e.$vscodeTextmateLocation,e.id,e.name,e.match,v._compileCaptures(e.captures,t,r));if(typeof e.begin>"u"){e.repository&&(r=ct({},r,e.repository));let i=e.patterns;return typeof i>"u"&&e.include&&(i=[{include:e.include}]),new Ue(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,v._compilePatterns(i,t,r))}return e.while?new ce(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,v._compileCaptures(e.beginCaptures||e.captures,t,r),e.while,v._compileCaptures(e.whileCaptures||e.captures,t,r),v._compilePatterns(e.patterns,t,r)):new Ie(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,v._compileCaptures(e.beginCaptures||e.captures,t,r),e.end,v._compileCaptures(e.endCaptures||e.captures,t,r),e.applyEndPatternLast,v._compilePatterns(e.patterns,t,r))}),e.id}static _compileCaptures(e,t,r){let s=[];if(e){let i=0;for(const a in e){if(a==="$vscodeTextmateLocation")continue;const o=parseInt(a,10);o>i&&(i=o)}for(let a=0;a<=i;a++)s[a]=null;for(const a in e){if(a==="$vscodeTextmateLocation")continue;const o=parseInt(a,10);let c=0;e[a].patterns&&(c=v.getCompiledRuleId(e[a],t,r)),s[o]=v.createCaptureRule(t,e[a].$vscodeTextmateLocation,e[a].name,e[a].contentName,c)}}return s}static _compilePatterns(e,t,r){let s=[];if(e)for(let i=0,a=e.length;i<a;i++){const o=e[i];let c=-1;if(o.include){const l=_t(o.include);switch(l.kind){case 0:case 1:c=v.getCompiledRuleId(r[o.include],t,r);break;case 2:let h=r[l.ruleName];h&&(c=v.getCompiledRuleId(h,t,r));break;case 3:case 4:const u=l.scopeName,f=l.kind===4?l.ruleName:null,g=t.getExternalGrammar(u,r);if(g)if(f){let m=g.repository[f];m&&(c=v.getCompiledRuleId(m,t,g.repository))}else c=v.getCompiledRuleId(g.repository.$self,t,g.repository);break}}else c=v.getCompiledRuleId(o,t,r);if(c!==-1){const l=t.getRule(c);let h=!1;if((l instanceof Ue||l instanceof Ie||l instanceof ce)&&l.hasMissingPatterns&&l.patterns.length===0&&(h=!0),h)continue;s.push(c)}}return{patterns:s,hasMissingPatterns:(e?e.length:0)!==s.length}}},Y=class St{constructor(e,t){d(this,"source");d(this,"ruleId");d(this,"hasAnchor");d(this,"hasBackReferences");d(this,"_anchorCache");if(e&&typeof e=="string"){const r=e.length;let s=0,i=[],a=!1;for(let o=0;o<r;o++)if(e.charAt(o)==="\\"&&o+1<r){const l=e.charAt(o+1);l==="z"?(i.push(e.substring(s,o)),i.push("$(?!\\n)(?<!\\n)"),s=o+2):(l==="A"||l==="G")&&(a=!0),o++}this.hasAnchor=a,s===0?this.source=e:(i.push(e.substring(s,r)),this.source=i.join(""))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=t,typeof this.source=="string"?this.hasBackReferences=bn.test(this.source):this.hasBackReferences=!1}clone(){return new St(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,t){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let r=t.map(s=>e.substring(s.start,s.end));return ze.lastIndex=0,this.source.replace(ze,(s,i)=>ft(r[parseInt(i,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let e=[],t=[],r=[],s=[],i,a,o,c;for(i=0,a=this.source.length;i<a;i++)o=this.source.charAt(i),e[i]=o,t[i]=o,r[i]=o,s[i]=o,o==="\\"&&i+1<a&&(c=this.source.charAt(i+1),c==="A"?(e[i+1]="",t[i+1]="",r[i+1]="A",s[i+1]="A"):c==="G"?(e[i+1]="",t[i+1]="G",r[i+1]="",s[i+1]="G"):(e[i+1]=c,t[i+1]=c,r[i+1]=c,s[i+1]=c),i++);return{A0_G0:e.join(""),A0_G1:t.join(""),A1_G0:r.join(""),A1_G1:s.join("")}}resolveAnchors(e,t){return!this.hasAnchor||!this._anchorCache||typeof this.source!="string"?this.source:e?t?this._anchorCache.A1_G1:this._anchorCache.A1_G0:t?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},V=class{constructor(){d(this,"_items");d(this,"_hasAnchors");d(this,"_cached");d(this,"_anchorCache");this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(n){this._items.push(n),this._hasAnchors=this._hasAnchors||n.hasAnchor}unshift(n){this._items.unshift(n),this._hasAnchors=this._hasAnchors||n.hasAnchor}length(){return this._items.length}setSource(n,e){this._items[n].source!==e&&(this._disposeCaches(),this._items[n].setSource(e))}compile(n){if(!this._cached){let e=this._items.map(t=>t.source);this._cached=new Ke(n,e,this._items.map(t=>t.ruleId))}return this._cached}compileAG(n,e,t){return this._hasAnchors?e?t?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G0):t?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G0):this.compile(n)}_resolveAnchors(n,e,t){let r=this._items.map(s=>s.resolveAnchors(e,t));return new Ke(n,r,this._items.map(s=>s.ruleId))}},Ke=class{constructor(n,e,t){d(this,"scanner");this.regExps=e,this.rules=t,this.scanner=n.createOnigScanner(e)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const n=[];for(let e=0,t=this.rules.length;e<t;e++)n.push(" - "+this.rules[e]+": "+this.regExps[e]);return n.join(`
|
|
2
2
|
`)}findNextMatchSync(n,e,t){const r=this.scanner.findNextMatchSync(n,e,t);return r?{ruleId:this.rules[r.index],captureIndices:r.captureIndices}:null}},we=class{constructor(n,e){this.languageId=n,this.tokenType=e}},G,kn=(G=class{constructor(e,t){d(this,"_defaultAttributes");d(this,"_embeddedLanguagesMatcher");d(this,"_getBasicScopeAttributes",new dt(e=>{const t=this._scopeToLanguage(e),r=this._toStandardTokenType(e);return new we(t,r)}));this._defaultAttributes=new we(e,8),this._embeddedLanguagesMatcher=new Rn(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return e===null?G._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(G.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}},d(G,"_NULL_SCOPE_METADATA",new we(0,0)),d(G,"STANDARD_TOKEN_TYPE_REGEXP",/\b(comment|string|regex|meta\.embedded)\b/),G),Rn=class{constructor(n){d(this,"values");d(this,"scopesRegExp");if(n.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(n);const e=n.map(([t,r])=>ft(t));e.sort(),e.reverse(),this.scopesRegExp=new RegExp(`^((${e.join(")|(")}))($|\\.)`,"")}}match(n){if(!this.scopesRegExp)return;const e=n.match(this.scopesRegExp);if(e)return this.values.get(e[1])}},Ye=class{constructor(n,e){this.stack=n,this.stoppedEarly=e}};function Ct(n,e,t,r,s,i,a,o){const c=e.content.length;let l=!1,h=-1;if(a){const g=Nn(n,e,t,r,s,i);s=g.stack,r=g.linePos,t=g.isFirstLine,h=g.anchorPosition}const u=Date.now();for(;!l;){if(o!==0&&Date.now()-u>o)return new Ye(s,!0);f()}return new Ye(s,!1);function f(){const g=vn(n,e,t,r,s,h);if(!g){i.produce(s,c),l=!0;return}const m=g.captureIndices,S=g.matchedRuleId,b=m&&m.length>0?m[0].end>r:!1;if(S===Sn){const _=s.getRule(n);i.produce(s,m[0].start),s=s.withContentNameScopesList(s.nameScopesList),z(n,e,t,s,i,_.endCaptures,m),i.produce(s,m[0].end);const p=s;if(s=s.parent,h=p.getAnchorPos(),!b&&p.getEnterPos()===r){s=p,i.produce(s,c),l=!0;return}}else{const _=n.getRule(S);i.produce(s,m[0].start);const p=s,y=_.getName(e.content,m),w=s.contentNameScopesList.pushAttributed(y,n);if(s=s.push(S,r,h,m[0].end===c,null,w,w),_ instanceof Ie){const C=_;z(n,e,t,s,i,C.beginCaptures,m),i.produce(s,m[0].end),h=m[0].end;const k=C.getContentName(e.content,m),A=w.pushAttributed(k,n);if(s=s.withContentNameScopesList(A),C.endHasBackReferences&&(s=s.withEndRule(C.getEndWithResolvedBackReferences(e.content,m))),!b&&p.hasSameRuleAs(s)){s=s.pop(),i.produce(s,c),l=!0;return}}else if(_ instanceof ce){const C=_;z(n,e,t,s,i,C.beginCaptures,m),i.produce(s,m[0].end),h=m[0].end;const k=C.getContentName(e.content,m),A=w.pushAttributed(k,n);if(s=s.withContentNameScopesList(A),C.whileHasBackReferences&&(s=s.withEndRule(C.getWhileWithResolvedBackReferences(e.content,m))),!b&&p.hasSameRuleAs(s)){s=s.pop(),i.produce(s,c),l=!0;return}}else if(z(n,e,t,s,i,_.captures,m),i.produce(s,m[0].end),s=s.pop(),!b){s=s.safePop(),i.produce(s,c),l=!0;return}}m[0].end>r&&(r=m[0].end,t=!1)}}function Nn(n,e,t,r,s,i){let a=s.beginRuleCapturedEOL?0:-1;const o=[];for(let c=s;c;c=c.pop()){const l=c.getRule(n);l instanceof ce&&o.push({rule:l,stack:c})}for(let c=o.pop();c;c=o.pop()){const{ruleScanner:l,findOptions:h}=In(c.rule,n,c.stack.endRule,t,r===a),u=l.findNextMatchSync(e,r,h);if(u){if(u.ruleId!==yt){s=c.stack.pop();break}u.captureIndices&&u.captureIndices.length&&(i.produce(c.stack,u.captureIndices[0].start),z(n,e,t,c.stack,i,c.rule.whileCaptures,u.captureIndices),i.produce(c.stack,u.captureIndices[0].end),a=u.captureIndices[0].end,u.captureIndices[0].end>r&&(r=u.captureIndices[0].end,t=!1))}else{s=c.stack.pop();break}}return{stack:s,linePos:r,anchorPosition:a,isFirstLine:t}}function vn(n,e,t,r,s,i){const a=Tn(n,e,t,r,s,i),o=n.getInjections();if(o.length===0)return a;const c=An(o,n,e,t,r,s,i);if(!c)return a;if(!a)return c;const l=a.captureIndices[0].start,h=c.captureIndices[0].start;return h<l||c.priorityMatch&&h===l?c:a}function Tn(n,e,t,r,s,i){const a=s.getRule(n),{ruleScanner:o,findOptions:c}=wt(a,n,s.endRule,t,r===i),l=o.findNextMatchSync(e,r,c);return l?{captureIndices:l.captureIndices,matchedRuleId:l.ruleId}:null}function An(n,e,t,r,s,i,a){let o=Number.MAX_VALUE,c=null,l,h=0;const u=i.contentNameScopesList.getScopeNames();for(let f=0,g=n.length;f<g;f++){const m=n[f];if(!m.matcher(u))continue;const S=e.getRule(m.ruleId),{ruleScanner:b,findOptions:_}=wt(S,e,null,r,s===a),p=b.findNextMatchSync(t,s,_);if(!p)continue;const y=p.captureIndices[0].start;if(!(y>=o)&&(o=y,c=p.captureIndices,l=p.ruleId,h=m.priority,o===s))break}return c?{priorityMatch:h===-1,captureIndices:c,matchedRuleId:l}:null}function wt(n,e,t,r,s){return{ruleScanner:n.compileAG(e,t,r,s),findOptions:0}}function In(n,e,t,r,s){return{ruleScanner:n.compileWhileAG(e,t,r,s),findOptions:0}}function z(n,e,t,r,s,i,a){if(i.length===0)return;const o=e.content,c=Math.min(i.length,a.length),l=[],h=a[0].end;for(let u=0;u<c;u++){const f=i[u];if(f===null)continue;const g=a[u];if(g.length===0)continue;if(g.start>h)break;for(;l.length>0&&l[l.length-1].endPos<=g.start;)s.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?s.produceFromScopes(l[l.length-1].scopes,g.start):s.produce(r,g.start),f.retokenizeCapturedWithRuleId){const S=f.getName(o,a),b=r.contentNameScopesList.pushAttributed(S,n),_=f.getContentName(o,a),p=b.pushAttributed(_,n),y=r.push(f.retokenizeCapturedWithRuleId,g.start,-1,!1,null,b,p),w=n.createOnigString(o.substring(0,g.end));Ct(n,w,t&&g.start===0,g.start,y,s,!1,0),pt(w);continue}const m=f.getName(o,a);if(m!==null){const b=(l.length>0?l[l.length-1].scopes:r.contentNameScopesList).pushAttributed(m,n);l.push(new En(b,g.end))}}for(;l.length>0;)s.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var En=class{constructor(n,e){d(this,"scopes");d(this,"endPos");this.scopes=n,this.endPos=e}};function xn(n,e,t,r,s,i,a,o){return new Pn(n,e,t,r,s,i,a,o)}function Ve(n,e,t,r,s){const i=ae(e,le),a=bt.getCompiledRuleId(t,r,s.repository);for(const o of i)n.push({debugSelector:e,matcher:o.matcher,ruleId:a,grammar:s,priority:o.priority})}function le(n,e){if(e.length<n.length)return!1;let t=0;return n.every(r=>{for(let s=t;s<e.length;s++)if(Ln(e[s],r))return t=s+1,!0;return!1})}function Ln(n,e){if(!n)return!1;if(n===e)return!0;const t=e.length;return n.length>t&&n.substr(0,t)===e&&n[t]==="."}var Pn=class{constructor(n,e,t,r,s,i,a,o){d(this,"_rootId");d(this,"_lastRuleId");d(this,"_ruleId2desc");d(this,"_includedGrammars");d(this,"_grammarRepository");d(this,"_grammar");d(this,"_injections");d(this,"_basicScopeAttributesProvider");d(this,"_tokenTypeMatchers");if(this._rootScopeName=n,this.balancedBracketSelectors=i,this._onigLib=o,this._basicScopeAttributesProvider=new kn(t,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=a,this._grammar=Je(e,null),this._injections=null,this._tokenTypeMatchers=[],s)for(const c of Object.keys(s)){const l=ae(c,le);for(const h of l)this._tokenTypeMatchers.push({matcher:h.matcher,type:s[c]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const n of this._ruleId2desc)n&&n.dispose()}createOnigScanner(n){return this._onigLib.createOnigScanner(n)}createOnigString(n){return this._onigLib.createOnigString(n)}getMetadataForScope(n){return this._basicScopeAttributesProvider.getBasicScopeAttributes(n)}_collectInjections(){const n={lookup:s=>s===this._rootScopeName?this._grammar:this.getExternalGrammar(s),injections:s=>this._grammarRepository.injections(s)},e=[],t=this._rootScopeName,r=n.lookup(t);if(r){const s=r.injections;if(s)for(let a in s)Ve(e,a,s[a],this,r);const i=this._grammarRepository.injections(t);i&&i.forEach(a=>{const o=this.getExternalGrammar(a);if(o){const c=o.injectionSelector;c&&Ve(e,c,o,this,o)}})}return e.sort((s,i)=>s.priority-i.priority),e}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(n){const e=++this._lastRuleId,t=n(e);return this._ruleId2desc[e]=t,t}getRule(n){return this._ruleId2desc[n]}getExternalGrammar(n,e){if(this._includedGrammars[n])return this._includedGrammars[n];if(this._grammarRepository){const t=this._grammarRepository.lookup(n);if(t)return this._includedGrammars[n]=Je(t,e&&e.$base),this._includedGrammars[n]}}tokenizeLine(n,e,t=0){const r=this._tokenize(n,e,!1,t);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(n,e,t=0){const r=this._tokenize(n,e,!0,t);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(n,e,t,r){this._rootId===-1&&(this._rootId=bt.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let s;if(!e||e===Ee.NULL){s=!0;const l=this._basicScopeAttributesProvider.getDefaultAttributes(),h=this.themeProvider.getDefaults(),u=F.set(0,l.languageId,l.tokenType,null,h.fontStyle,h.foregroundId,h.backgroundId),f=this.getRule(this._rootId).getName(null,null);let g;f?g=U.createRootAndLookUpScopeName(f,u,this):g=U.createRoot("unknown",u),e=new Ee(null,this._rootId,-1,-1,!1,null,g,g)}else s=!1,e.reset();n=n+`
|
|
3
3
|
`;const i=this.createOnigString(n),a=i.content.length,o=new Bn(t,n,this._tokenTypeMatchers,this.balancedBracketSelectors),c=Ct(this,i,s,0,e,o,!0,r);return pt(i),{lineLength:a,lineTokens:o,ruleStack:c.stack,stoppedEarly:c.stoppedEarly}}};function Je(n,e){return n=Qt(n),n.repository=n.repository||{},n.repository.$self={$vscodeTextmateLocation:n.$vscodeTextmateLocation,patterns:n.patterns,name:n.scopeName},n.repository.$base=e||n.repository.$self,n}var U=class L{constructor(e,t,r){this.parent=e,this.scopePath=t,this.tokenAttributes=r}static fromExtension(e,t){let r=e,s=(e==null?void 0:e.scopePath)??null;for(const i of t)s=Ce.push(s,i.scopeNames),r=new L(r,s,i.encodedTokenAttributes);return r}static createRoot(e,t){return new L(null,new Ce(null,e),t)}static createRootAndLookUpScopeName(e,t,r){const s=r.getMetadataForScope(e),i=new Ce(null,e),a=r.themeProvider.themeMatch(i),o=L.mergeAttributes(t,s,a);return new L(null,i,o)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(e){return L.equals(this,e)}static equals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}while(!0)}static mergeAttributes(e,t,r){let s=-1,i=0,a=0;return r!==null&&(s=r.fontStyle,i=r.foregroundId,a=r.backgroundId),F.set(e,t.languageId,t.tokenType,null,s,i,a)}pushAttributed(e,t){if(e===null)return this;if(e.indexOf(" ")===-1)return L._pushAttributed(this,e,t);const r=e.split(/ /g);let s=this;for(const i of r)s=L._pushAttributed(s,i,t);return s}static _pushAttributed(e,t,r){const s=r.getMetadataForScope(t),i=e.scopePath.push(t),a=r.themeProvider.themeMatch(i),o=L.mergeAttributes(e.tokenAttributes,s,a);return new L(e,i,o)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){var s;const t=[];let r=this;for(;r&&r!==e;)t.push({encodedTokenAttributes:r.tokenAttributes,scopeNames:r.scopePath.getExtensionIfDefined(((s=r.parent)==null?void 0:s.scopePath)??null)}),r=r.parent;return r===e?t.reverse():void 0}},x,Ee=(x=class{constructor(e,t,r,s,i,a,o,c){d(this,"_stackElementBrand");d(this,"_enterPos");d(this,"_anchorPos");d(this,"depth");this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=i,this.endRule=a,this.nameScopesList=o,this.contentNameScopesList=c,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=r,this._anchorPos=s}equals(e){return e===null?!1:x._equals(this,e)}static _equals(e,t){return e===t?!0:this._structuralEquals(e,t)?U.equals(e.contentNameScopesList,t.contentNameScopesList):!1}static _structuralEquals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){x._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,r,s,i,a,o){return new x(this,e,t,r,s,i,a,o)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){var r,s;return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${(r=this.nameScopesList)==null?void 0:r.toString()}, ${(s=this.contentNameScopesList)==null?void 0:s.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new x(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){var e,t,r;return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:((t=this.nameScopesList)==null?void 0:t.getExtensionIfDefined(((e=this.parent)==null?void 0:e.nameScopesList)??null))??[],contentNameScopesList:((r=this.contentNameScopesList)==null?void 0:r.getExtensionIfDefined(this.nameScopesList))??[]}}static pushFrame(e,t){const r=U.fromExtension((e==null?void 0:e.nameScopesList)??null,t.nameScopesList);return new x(e,t.ruleId,t.enterPos??-1,t.anchorPos??-1,t.beginRuleCapturedEOL,t.endRule,r,U.fromExtension(r,t.contentNameScopesList))}},d(x,"NULL",new x(null,0,0,0,!1,null,null,null)),x),Gn=class{constructor(n,e){d(this,"balancedBracketScopes");d(this,"unbalancedBracketScopes");d(this,"allowAny",!1);this.balancedBracketScopes=n.flatMap(t=>t==="*"?(this.allowAny=!0,[]):ae(t,le).map(r=>r.matcher)),this.unbalancedBracketScopes=e.flatMap(t=>ae(t,le).map(r=>r.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(n){for(const e of this.unbalancedBracketScopes)if(e(n))return!1;for(const e of this.balancedBracketScopes)if(e(n))return!0;return this.allowAny}},Bn=class{constructor(n,e,t,r){d(this,"_emitBinaryTokens");d(this,"_lineText");d(this,"_tokens");d(this,"_binaryTokens");d(this,"_lastTokenEndIndex");d(this,"_tokenTypeOverrides");this.balancedBracketSelectors=r,this._emitBinaryTokens=n,this._tokenTypeOverrides=t,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(n,e){this.produceFromScopes(n.contentNameScopesList,e)}produceFromScopes(n,e){var r;if(this._lastTokenEndIndex>=e)return;if(this._emitBinaryTokens){let s=(n==null?void 0:n.tokenAttributes)??0,i=!1;if((r=this.balancedBracketSelectors)!=null&&r.matchesAlways&&(i=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const a=(n==null?void 0:n.getScopeNames())??[];for(const o of this._tokenTypeOverrides)o.matcher(a)&&(s=F.set(s,0,o.type,null,-1,0,0));this.balancedBracketSelectors&&(i=this.balancedBracketSelectors.match(a))}if(i&&(s=F.set(s,0,8,i,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s){this._lastTokenEndIndex=e;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(s),this._lastTokenEndIndex=e;return}const t=(n==null?void 0:n.getScopeNames())??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:e,scopes:t}),this._lastTokenEndIndex=e}getResult(n,e){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===e-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(n,e),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(n,e){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===e-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(n,e),this._binaryTokens[this._binaryTokens.length-2]=0);const t=new Uint32Array(this._binaryTokens.length);for(let r=0,s=this._binaryTokens.length;r<s;r++)t[r]=this._binaryTokens[r];return t}},On=class{constructor(n,e){d(this,"_grammars",new Map);d(this,"_rawGrammars",new Map);d(this,"_injectionGrammars",new Map);d(this,"_theme");this._onigLib=e,this._theme=n}dispose(){for(const n of this._grammars.values())n.dispose()}setTheme(n){this._theme=n}getColorMap(){return this._theme.getColorMap()}addGrammar(n,e){this._rawGrammars.set(n.scopeName,n),e&&this._injectionGrammars.set(n.scopeName,e)}lookup(n){return this._rawGrammars.get(n)}injections(n){return this._injectionGrammars.get(n)}getDefaults(){return this._theme.getDefaults()}themeMatch(n){return this._theme.match(n)}grammarForScopeName(n,e,t,r,s){if(!this._grammars.has(n)){let i=this._rawGrammars.get(n);if(!i)return null;this._grammars.set(n,xn(n,i,e,t,r,s,this,this._onigLib))}return this._grammars.get(n)}},$n=class{constructor(e){d(this,"_options");d(this,"_syncRegistry");d(this,"_ensureGrammarCache");this._options=e,this._syncRegistry=new On(ie.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(ie.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,r){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:r})}loadGrammarWithConfiguration(e,t,r){return this._loadGrammar(e,t,r.embeddedLanguages,r.tokenTypes,new Gn(r.balancedBracketSelectors||[],r.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}_loadGrammar(e,t,r,s,i){const a=new fn(this._syncRegistry,e);for(;a.Q.length>0;)a.Q.map(o=>this._loadSingleGrammar(o.scopeName)),a.processQueue();return this._grammarForScopeName(e,t,r,s,i)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){const t=this._options.loadGrammar(e);if(t){const r=typeof this._options.getInjections=="function"?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,r)}}addGrammar(e,t=[],r=0,s=null){return this._syncRegistry.addGrammar(e,t),this._grammarForScopeName(e.scopeName,r,s)}_grammarForScopeName(e,t=0,r=null,s=null,i=null){return this._syncRegistry.grammarForScopeName(e,t,r,s,i)}},xe=Ee.NULL;function ue(n,e){const t=typeof n=="string"?{}:{...n.colorReplacements},r=typeof n=="string"?n:n.name;for(const[s,i]of Object.entries((e==null?void 0:e.colorReplacements)||{}))typeof i=="string"?t[s]=i:s===r&&Object.assign(t,i);return t}function O(n,e){return n&&((e==null?void 0:e[n==null?void 0:n.toLowerCase()])||n)}function Mn(n){return Array.isArray(n)?n:[n]}async function kt(n){return Promise.resolve(typeof n=="function"?n():n).then(e=>e.default||e)}function ge(n){return!n||["plaintext","txt","text","plain"].includes(n)}function Rt(n){return n==="ansi"||ge(n)}function me(n){return n==="none"}function Nt(n){return me(n)}const jn=/(\r?\n)/g;function pe(n,e=!1){var i;if(n.length===0)return[["",0]];const t=n.split(jn);let r=0;const s=[];for(let a=0;a<t.length;a+=2){const o=e?t[a]+(t[a+1]||""):t[a];s.push([o,r]),r+=t[a].length,r+=((i=t[a+1])==null?void 0:i.length)||0}return s}const Qe={light:"#333333",dark:"#bbbbbb"},Xe={light:"#fffffe",dark:"#1e1e1e"},Ze="__shiki_resolved";function Oe(n){var o,c,l,h,u;if(n!=null&&n[Ze])return n;const e={...n};e.tokenColors&&!e.settings&&(e.settings=e.tokenColors,delete e.tokenColors),e.type||(e.type="dark"),e.colorReplacements={...e.colorReplacements},e.settings||(e.settings=[]);let{bg:t,fg:r}=e;if(!t||!r){const f=e.settings?e.settings.find(g=>!g.name&&!g.scope):void 0;(o=f==null?void 0:f.settings)!=null&&o.foreground&&(r=f.settings.foreground),(c=f==null?void 0:f.settings)!=null&&c.background&&(t=f.settings.background),!r&&((l=e==null?void 0:e.colors)!=null&&l["editor.foreground"])&&(r=e.colors["editor.foreground"]),!t&&((h=e==null?void 0:e.colors)!=null&&h["editor.background"])&&(t=e.colors["editor.background"]),r||(r=e.type==="light"?Qe.light:Qe.dark),t||(t=e.type==="light"?Xe.light:Xe.dark),e.fg=r,e.bg=t}e.settings[0]&&e.settings[0].settings&&!e.settings[0].scope||e.settings.unshift({settings:{foreground:e.fg,background:e.bg}});let s=0;const i=new Map;function a(f){var m;if(i.has(f))return i.get(f);s+=1;const g=`#${s.toString(16).padStart(8,"0").toLowerCase()}`;return(m=e.colorReplacements)!=null&&m[`#${g}`]?a(f):(i.set(f,g),g)}e.settings=e.settings.map(f=>{var b,_;const g=((b=f.settings)==null?void 0:b.foreground)&&!f.settings.foreground.startsWith("#"),m=((_=f.settings)==null?void 0:_.background)&&!f.settings.background.startsWith("#");if(!g&&!m)return f;const S={...f,settings:{...f.settings}};if(g){const p=a(f.settings.foreground);e.colorReplacements[p]=f.settings.foreground,S.settings.foreground=p}if(m){const p=a(f.settings.background);e.colorReplacements[p]=f.settings.background,S.settings.background=p}return S});for(const f of Object.keys(e.colors||{}))if((f==="editor.foreground"||f==="editor.background"||f.startsWith("terminal.ansi"))&&!((u=e.colors[f])!=null&&u.startsWith("#"))){const g=a(e.colors[f]);e.colorReplacements[g]=e.colors[f],e.colors[f]=g}return Object.defineProperty(e,Ze,{enumerable:!1,writable:!1,value:!0}),e}async function vt(n){return[...new Set((await Promise.all(n.filter(e=>!Rt(e)).map(async e=>await kt(e).then(t=>Array.isArray(t)?t:[t])))).flat())]}async function Tt(n){return(await Promise.all(n.map(async e=>Nt(e)?null:Oe(await kt(e))))).filter(e=>!!e)}function At(n,e){if(!e)return n;if(e[n]){const t=new Set([n]);for(;e[n];){if(n=e[n],t.has(n))throw new R(`Circular alias \`${[...t].join(" -> ")} -> ${n}\``);t.add(n)}}return n}var Wn=class extends $n{constructor(e,t,r,s={}){super(e);d(this,"_resolver");d(this,"_themes");d(this,"_langs");d(this,"_alias");d(this,"_resolvedThemes",new Map);d(this,"_resolvedGrammars",new Map);d(this,"_langMap",new Map);d(this,"_langGraph",new Map);d(this,"_textmateThemeCache",new WeakMap);d(this,"_loadedThemesCache",null);d(this,"_loadedLanguagesCache",null);this._resolver=e,this._themes=t,this._langs=r,this._alias=s,this._themes.map(i=>this.loadTheme(i)),this.loadLanguages(this._langs)}getTheme(e){return typeof e=="string"?this._resolvedThemes.get(e):this.loadTheme(e)}loadTheme(e){const t=Oe(e);return t.name&&(this._resolvedThemes.set(t.name,t),this._loadedThemesCache=null),t}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(e){let t=this._textmateThemeCache.get(e);t||(t=ie.createFromRawTheme(e),this._textmateThemeCache.set(e,t)),this._syncRegistry.setTheme(t)}getGrammar(e){return e=At(e,this._alias),this._resolvedGrammars.get(e)}loadLanguage(e){var i,a,o,c;if(this.getGrammar(e.name))return;const t=new Set([...this._langMap.values()].filter(l=>{var h;return(h=l.embeddedLangsLazy)==null?void 0:h.includes(e.name)}));this._resolver.addLanguage(e);const r={balancedBracketSelectors:e.balancedBracketSelectors||["*"],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(e.scopeName,e);const s=this.loadGrammarWithConfiguration(e.scopeName,1,r);if(s.name=e.name,this._resolvedGrammars.set(e.name,s),e.aliases&&e.aliases.forEach(l=>{this._alias[l]=e.name}),this._loadedLanguagesCache=null,t.size)for(const l of t)this._resolvedGrammars.delete(l.name),this._loadedLanguagesCache=null,(a=(i=this._syncRegistry)==null?void 0:i._injectionGrammars)==null||a.delete(l.scopeName),(c=(o=this._syncRegistry)==null?void 0:o._grammars)==null||c.delete(l.scopeName),this.loadLanguage(this._langMap.get(l.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(e){for(const s of e)this.resolveEmbeddedLanguages(s);const t=[...this._langGraph.entries()],r=t.filter(([s,i])=>!i);if(r.length){const s=t.filter(([i,a])=>{var o;return a?(o=a.embeddedLanguages||a.embeddedLangs)==null?void 0:o.some(c=>r.map(([l])=>l).includes(c)):!1}).filter(i=>!r.includes(i));throw new R(`Missing languages ${r.map(([i])=>`\`${i}\``).join(", ")}, required by ${s.map(([i])=>`\`${i}\``).join(", ")}`)}for(const[s,i]of t)this._resolver.addLanguage(i);for(const[s,i]of t)this.loadLanguage(i)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(e){this._langMap.set(e.name,e),this._langGraph.set(e.name,e);const t=e.embeddedLanguages??e.embeddedLangs;if(t)for(const r of t)this._langGraph.set(r,this._langMap.get(r))}},Dn=class{constructor(n,e){d(this,"_langs",new Map);d(this,"_scopeToLang",new Map);d(this,"_injections",new Map);d(this,"_onigLib");this._onigLib={createOnigScanner:t=>n.createScanner(t),createOnigString:t=>n.createString(t)},e.forEach(t=>this.addLanguage(t))}get onigLib(){return this._onigLib}getLangRegistration(n){return this._langs.get(n)}loadGrammar(n){return this._scopeToLang.get(n)}addLanguage(n){this._langs.set(n.name,n),n.aliases&&n.aliases.forEach(e=>{this._langs.set(e,n)}),this._scopeToLang.set(n.scopeName,n),n.injectTo&&n.injectTo.forEach(e=>{this._injections.get(e)||this._injections.set(e,[]),this._injections.get(e).push(n.scopeName)})}getInjections(n){const e=n.split(".");let t=[];for(let r=1;r<=e.length;r++){const s=e.slice(0,r).join(".");t=[...t,...this._injections.get(s)||[]]}return t}};let H=0;function $e(n){H+=1,n.warnings!==!1&&H>=10&&H%10===0&&console.warn(`[Shiki] ${H} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let e=!1;if(!n.engine)throw new R("`engine` option is required for synchronous mode");const t=(n.langs||[]).flat(1),r=(n.themes||[]).flat(1).map(Oe),s=new Wn(new Dn(n.engine,t),r,t,n.langAlias);let i;function a(p){return At(p,n.langAlias)}function o(p){b();const y=s.getGrammar(typeof p=="string"?p:p.name);if(!y)throw new R(`Language \`${p}\` not found, you may need to load it first`);return y}function c(p){if(p==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};b();const y=s.getTheme(p);if(!y)throw new R(`Theme \`${p}\` not found, you may need to load it first`);return y}function l(p){b();const y=c(p);return i!==p&&(s.setTheme(y),i=p),{theme:y,colorMap:s.getColorMap()}}function h(){return b(),s.getLoadedThemes()}function u(){return b(),s.getLoadedLanguages()}function f(...p){b(),s.loadLanguages(p.flat(1))}async function g(...p){return f(await vt(p))}function m(...p){b();for(const y of p.flat(1))s.loadTheme(y)}async function S(...p){return b(),m(await Tt(p))}function b(){if(e)throw new R("Shiki instance has been disposed")}function _(){e||(e=!0,s.dispose(),H-=1)}return{setTheme:l,getTheme:c,getLanguage:o,getLoadedThemes:h,getLoadedLanguages:u,resolveLangAlias:a,loadLanguage:g,loadLanguageSync:f,loadTheme:S,loadThemeSync:m,dispose:_,[Symbol.dispose]:_}}const Os=$e;async function It(n){n.engine||console.warn("`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.");const[e,t,r]=await Promise.all([Tt(n.themes||[]),vt(n.langs||[]),n.engine]);return $e({...n,themes:e,langs:t,engine:r})}const $s=It,Et=new WeakMap;function _e(n,e){Et.set(n,e)}function J(n){return Et.get(n)}var ye=class xt{constructor(...e){d(this,"_stacks",{});d(this,"lang");if(e.length===2){const[t,r]=e;this.lang=r,this._stacks=t}else{const[t,r,s]=e;this.lang=r,this._stacks={[s]:t}}}get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(e,t){return new xt(Object.fromEntries(Mn(t).map(r=>[r,xe])),e)}getInternalStack(e=this.theme){return this._stacks[e]}getScopes(e=this.theme){return Fn(this._stacks[e])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}};function Fn(n){const e=[],t=new Set;function r(s){var a;if(t.has(s))return;t.add(s);const i=(a=s==null?void 0:s.nameScopesList)==null?void 0:a.scopeName;i&&e.push(i),s.parent&&r(s.parent)}return r(n),e}function qn(n,e){if(!(n instanceof ye))throw new R("Invalid grammar state");return n.getInternalStack(e)}const Hn=/,/,zn=/ /;function Lt(n,e,t={}){const{theme:r=n.getLoadedThemes()[0]}=t;if(ge(n.resolveLangAlias(t.lang||"text"))||me(r))return pe(e).map(o=>[{content:o[0],offset:o[1]}]);const{theme:s,colorMap:i}=n.setTheme(r),a=n.getLanguage(t.lang||"text");if(t.grammarState){if(t.grammarState.lang!==a.name)throw new R(`Grammar state language "${t.grammarState.lang}" does not match highlight language "${a.name}"`);if(!t.grammarState.themes.includes(s.name))throw new R(`Grammar state themes "${t.grammarState.themes}" do not contain highlight theme "${s.name}"`)}return Un(e,a,s,i,t)}function Pt(...n){if(n.length===2)return J(n[1]);const[e,t,r={}]=n,{lang:s="text",theme:i=e.getLoadedThemes()[0]}=r;if(ge(s)||me(i))throw new R("Plain language does not have grammar state");if(s==="ansi")throw new R("ANSI language does not have grammar state");const{theme:a,colorMap:o}=e.setTheme(i),c=e.getLanguage(s);return new ye(Me(t,c,a,o,r).stateStack,c.name,a.name)}function Un(n,e,t,r,s){const i=Me(n,e,t,r,s),a=new ye(i.stateStack,e.name,t.name);return _e(i.tokens,a),i.tokens}function Me(n,e,t,r,s){const i=ue(t,s),{tokenizeMaxLineLength:a=0,tokenizeTimeLimit:o=500}=s,c=pe(n);let l=s.grammarState?qn(s.grammarState,t.name)??xe:s.grammarContextCode!=null?Me(s.grammarContextCode,e,t,r,{...s,grammarState:void 0,grammarContextCode:void 0}).stateStack:xe,h=[];const u=[];for(let f=0,g=c.length;f<g;f++){const[m,S]=c[f];if(m===""){h=[],u.push([]);continue}if(a>0&&m.length>=a){h=[],u.push([{content:m,offset:S,color:"",fontStyle:0}]);continue}let b,_,p;s.includeExplanation&&(b=e.tokenizeLine(m,l,o),_=b.tokens,p=0);const y=e.tokenizeLine2(m,l,o),w=y.tokens.length/2;for(let C=0;C<w;C++){const k=y.tokens[2*C],A=C+1<w?y.tokens[2*C+2]:m.length;if(k===A)continue;const q=y.tokens[2*C+1],I=O(r[F.getForeground(q)],i),B=F.getFontStyle(q),M={content:m.substring(k,A),offset:S+k,color:I,fontStyle:B};if(s.includeExplanation){const j=[];if(s.includeExplanation!=="scopeName")for(const P of t.settings){let W;switch(typeof P.scope){case"string":W=P.scope.split(Hn).map(be=>be.trim());break;case"object":W=P.scope;break;default:continue}j.push({settings:P,selectors:W.map(be=>be.split(zn))})}M.explanation=[];let De=0;for(;k+De<A;){const P=_[p],W=m.substring(P.startIndex,P.endIndex);De+=W.length,M.explanation.push({content:W,scopes:s.includeExplanation==="scopeName"?Kn(P.scopes):Yn(j,P.scopes)}),p+=1}}h.push(M)}u.push(h),h=[],l=y.ruleStack}return{tokens:u,stateStack:l}}function Kn(n){return n.map(e=>({scopeName:e}))}function Yn(n,e){const t=[];for(let r=0,s=e.length;r<s;r++){const i=e[r];t[r]={scopeName:i,themeMatches:Jn(n,i,e.slice(0,r))}}return t}function et(n,e){return n===e||e.substring(0,n.length)===n&&e[n.length]==="."}function Vn(n,e,t){if(!et(n.at(-1),e))return!1;let r=n.length-2,s=t.length-1;for(;r>=0&&s>=0;)et(n[r],t[s])&&(r-=1),s-=1;return r===-1}function Jn(n,e,t){const r=[];for(const{selectors:s,settings:i}of n)for(const a of s)if(Vn(a,e,t)){r.push(i);break}return r}function je(n,e,t,r=Lt){const s=Object.entries(t.themes).filter(l=>l[1]).map(l=>({color:l[0],theme:l[1]})),i=s.map(l=>{const h=r(n,e,{...t,theme:l.theme});return{tokens:h,state:J(h),theme:typeof l.theme=="string"?l.theme:l.theme.name}}),a=Qn(...i.map(l=>l.tokens)),o=a[0].map((l,h)=>l.map((u,f)=>{const g={content:u.content,variants:{},offset:u.offset};return"includeExplanation"in t&&t.includeExplanation&&(g.explanation=u.explanation),a.forEach((m,S)=>{const{content:b,explanation:_,offset:p,...y}=m[h][f];g.variants[s[S].color]=y}),g})),c=i[0].state?new ye(Object.fromEntries(i.map(l=>{var h;return[l.theme,(h=l.state)==null?void 0:h.getInternalStack(l.theme)]})),i[0].state.lang):void 0;return c&&_e(o,c),o}function Qn(...n){const e=n.map(()=>[]),t=n.length;for(let r=0;r<n[0].length;r++){const s=n.map(c=>c[r]),i=e.map(()=>[]);e.forEach((c,l)=>c.push(i[l]));const a=s.map(()=>0),o=s.map(c=>c[0]);for(;o.every(c=>c);){const c=Math.min(...o.map(l=>l.content.length));for(let l=0;l<t;l++){const h=o[l];h.content.length===c?(i[l].push(h),a[l]+=1,o[l]=s[l][a[l]]):(i[l].push({...h,content:h.content.slice(0,c)}),o[l]={...h,content:h.content.slice(c),offset:h.offset+c})}}}return e}const Xn=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"],Zn=/["&'<>`]/g,er=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,tr=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,nr=/[|\\{}()[\]^$+*?.]/g,tt=new WeakMap;function rr(n,e){if(n=n.replace(e.subset?sr(e.subset):Zn,r),e.subset||e.escapeOnly)return n;return n.replace(er,t).replace(tr,r);function t(s,i,a){return e.format((s.charCodeAt(0)-55296)*1024+s.charCodeAt(1)-56320+65536,a.charCodeAt(i+2),e)}function r(s,i,a){return e.format(s.charCodeAt(0),a.charCodeAt(i+1),e)}}function sr(n){let e=tt.get(n);return e||(e=ir(n),tt.set(n,e)),e}function ir(n){const e=[];let t=-1;for(;++t<n.length;)e.push(n[t].replace(nr,"\\$&"));return new RegExp("(?:"+e.join("|")+")","g")}const ar=/[\dA-Fa-f]/;function or(n,e,t){const r="&#x"+n.toString(16).toUpperCase();return t&&e&&!ar.test(String.fromCharCode(e))?r:r+";"}const cr=/\d/;function lr(n,e,t){const r="&#"+String(n);return t&&e&&!cr.test(String.fromCharCode(e))?r:r+";"}const ur=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],ke={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"",zwj:"",lrm:"",rlm:"",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},hr=["cent","copy","divide","gt","lt","not","para","times"],Gt={}.hasOwnProperty,Le={};let te;for(te in ke)Gt.call(ke,te)&&(Le[ke[te]]=te);const fr=/[^\dA-Za-z]/;function dr(n,e,t,r){const s=String.fromCharCode(n);if(Gt.call(Le,s)){const i=Le[s],a="&"+i;return t&&ur.includes(i)&&!hr.includes(i)&&(!r||e&&e!==61&&fr.test(String.fromCharCode(e)))?a:a+";"}return""}function gr(n,e,t){let r=or(n,e,t.omitOptionalSemicolons),s;if((t.useNamedReferences||t.useShortestReferences)&&(s=dr(n,e,t.omitOptionalSemicolons,t.attribute)),(t.useShortestReferences||!s)&&t.useShortestReferences){const i=lr(n,e,t.omitOptionalSemicolons);i.length<r.length&&(r=i)}return s&&(!t.useShortestReferences||s.length<r.length)?s:r}function D(n,e){return rr(n,Object.assign({format:gr},e))}const mr=/^>|^->|<!--|-->|--!>|<!-$/g,pr=[">"],_r=["<",">"];function yr(n,e,t,r){return r.settings.bogusComments?"<?"+D(n.value,Object.assign({},r.settings.characterReferences,{subset:pr}))+">":"<!--"+n.value.replace(mr,s)+"-->";function s(i){return D(i,Object.assign({},r.settings.characterReferences,{subset:_r}))}}function br(n,e,t,r){return"<!"+(r.settings.upperDoctype?"DOCTYPE":"doctype")+(r.settings.tightDoctype?"":" ")+"html>"}const N=Ot(1),Bt=Ot(-1),Sr=[];function Ot(n){return e;function e(t,r,s){const i=t?t.children:Sr;let a=(r||0)+n,o=i[a];if(!s)for(;o&&Ge(o);)a+=n,o=i[a];return o}}const Cr={}.hasOwnProperty;function $t(n){return e;function e(t,r,s){return Cr.call(n,t.tagName)&&n[t.tagName](t,r,s)}}const We=$t({body:kr,caption:Re,colgroup:Re,dd:Tr,dt:vr,head:Re,html:wr,li:Nr,optgroup:Ar,option:Ir,p:Rr,rp:nt,rt:nt,tbody:xr,td:rt,tfoot:Lr,th:rt,thead:Er,tr:Pr});function Re(n,e,t){const r=N(t,e,!0);return!r||r.type!=="comment"&&!(r.type==="text"&&Ge(r.value.charAt(0)))}function wr(n,e,t){const r=N(t,e);return!r||r.type!=="comment"}function kr(n,e,t){const r=N(t,e);return!r||r.type!=="comment"}function Rr(n,e,t){const r=N(t,e);return r?r.type==="element"&&(r.tagName==="address"||r.tagName==="article"||r.tagName==="aside"||r.tagName==="blockquote"||r.tagName==="details"||r.tagName==="div"||r.tagName==="dl"||r.tagName==="fieldset"||r.tagName==="figcaption"||r.tagName==="figure"||r.tagName==="footer"||r.tagName==="form"||r.tagName==="h1"||r.tagName==="h2"||r.tagName==="h3"||r.tagName==="h4"||r.tagName==="h5"||r.tagName==="h6"||r.tagName==="header"||r.tagName==="hgroup"||r.tagName==="hr"||r.tagName==="main"||r.tagName==="menu"||r.tagName==="nav"||r.tagName==="ol"||r.tagName==="p"||r.tagName==="pre"||r.tagName==="section"||r.tagName==="table"||r.tagName==="ul"):!t||!(t.type==="element"&&(t.tagName==="a"||t.tagName==="audio"||t.tagName==="del"||t.tagName==="ins"||t.tagName==="map"||t.tagName==="noscript"||t.tagName==="video"))}function Nr(n,e,t){const r=N(t,e);return!r||r.type==="element"&&r.tagName==="li"}function vr(n,e,t){const r=N(t,e);return!!(r&&r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd"))}function Tr(n,e,t){const r=N(t,e);return!r||r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd")}function nt(n,e,t){const r=N(t,e);return!r||r.type==="element"&&(r.tagName==="rp"||r.tagName==="rt")}function Ar(n,e,t){const r=N(t,e);return!r||r.type==="element"&&r.tagName==="optgroup"}function Ir(n,e,t){const r=N(t,e);return!r||r.type==="element"&&(r.tagName==="option"||r.tagName==="optgroup")}function Er(n,e,t){const r=N(t,e);return!!(r&&r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot"))}function xr(n,e,t){const r=N(t,e);return!r||r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot")}function Lr(n,e,t){return!N(t,e)}function Pr(n,e,t){const r=N(t,e);return!r||r.type==="element"&&r.tagName==="tr"}function rt(n,e,t){const r=N(t,e);return!r||r.type==="element"&&(r.tagName==="td"||r.tagName==="th")}const Gr=$t({body:$r,colgroup:Mr,head:Or,html:Br,tbody:jr});function Br(n){const e=N(n,-1);return!e||e.type!=="comment"}function Or(n){const e=new Set;for(const r of n.children)if(r.type==="element"&&(r.tagName==="base"||r.tagName==="title")){if(e.has(r.tagName))return!1;e.add(r.tagName)}const t=n.children[0];return!t||t.type==="element"}function $r(n){const e=N(n,-1,!0);return!e||e.type!=="comment"&&!(e.type==="text"&&Ge(e.value.charAt(0)))&&!(e.type==="element"&&(e.tagName==="meta"||e.tagName==="link"||e.tagName==="script"||e.tagName==="style"||e.tagName==="template"))}function Mr(n,e,t){const r=Bt(t,e),s=N(n,-1,!0);return t&&r&&r.type==="element"&&r.tagName==="colgroup"&&We(r,t.children.indexOf(r),t)?!1:!!(s&&s.type==="element"&&s.tagName==="col")}function jr(n,e,t){const r=Bt(t,e),s=N(n,-1);return t&&r&&r.type==="element"&&(r.tagName==="thead"||r.tagName==="tbody")&&We(r,t.children.indexOf(r),t)?!1:!!(s&&s.type==="element"&&s.tagName==="tr")}const ne={name:[[`
|
|
4
4
|
\f\r &/=>`.split(""),`
|