// ==UserScript==
// @name codeTheme
// @namespace Baozoulolw
// @version 0.1.7
// @author Baozoulolw
// @description 修改editor样式
// @license MIT
// @icon https://baozoulolw.oss-cn-chengdu.aliyuncs.com/codeSet/theme.svg
// @match *://*/*
// @grant GM_addStyle
// @grant unsafeWindow
// ==/UserScript==
(n=>{if(typeof GM_addStyle=="function"){GM_addStyle(n);return}const e=document.createElement("style");e.textContent=n,document.head.append(e)})(` #self_dialog{
font-size: 18px;
margin-right: 10px;
}
.head-right{
display: flex;
align-items: center;
}
.custom-tree-node[data-v-545643b4] {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
}
.el-input[data-v-93c5e0b4] .el-input__inner {
text-align: left;
} `);
(async function () {
'use strict';
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
var _a, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n2, _o, _p, _q, _r;
function waitForElementByClass(className, callback) {
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
Array.from(mutation.addedNodes).forEach((addedNode) => {
let classNames = addedNode.className;
if (!classNames || typeof classNames !== "string")
return;
if (classNames.includes(className)) {
callback(addedNode);
observer.disconnect();
}
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
}
var _unsafeWindow = /* @__PURE__ */ (() => typeof unsafeWindow != "undefined" ? unsafeWindow : void 0)();
const monacoEditorInnerLanguages = [
"css",
"vue",
"html",
"javascript",
"less",
"pug",
"scss",
"typescript",
"coffee"
];
const scopeNameMap = {
html: "text.html.basic",
vue: "text.html.basic",
pug: "text.pug",
css: "source.css",
less: "source.css.less",
scss: "source.css.scss",
sass: "source.sassdoc",
typescript: "source.ts",
javascript: "source.js",
javascriptreact: "source.js.jsx",
coffeescript: "source.coffee",
json: "source.json"
};
const tmGrammarJsonMap = {
"text.html.basic": "html.tmLanguage.json",
"text.pug": "pug.tmLanguage.json",
"source.css": "css.tmLanguage.json",
"source.css.less": "less.tmLanguage.json",
"source.less": "less.tmLanguage.json",
"source.css.scss": "scss.tmLanguage.json",
"source.sass": "scss.tmLanguage.json",
"source.sassdoc": "sassdoc.tmLanguage.json",
"source.stylus": "css.tmLanguage.json",
"source.ts": "TypeScript.tmLanguage.json",
"source.js": "JavaScript.tmLanguage.json",
"source.js.jsx": "JavaScriptReact.tmLanguage.json",
"source.coffee": "coffeescript.tmLanguage.json",
"source.js.regexp": {
format: "plist",
path: "Regular Expressions (JavaScript).tmLanguage"
},
"source.json": "JSON.tmLanguage.json"
};
const completionItemKinds = [
{ name: "Text", value: 1, description: "\u666E\u901A\u6587\u672C" },
{ name: "Method", value: 2, description: "\u65B9\u6CD5\u6216\u51FD\u6570" },
{ name: "Function", value: 3, description: "\u51FD\u6570\uFF08\u975E\u65B9\u6CD5\uFF09" },
{ name: "Constructor", value: 4, description: "\u6784\u9020\u51FD\u6570" },
{ name: "Field", value: 5, description: "\u7C7B\u7684\u5B57\u6BB5\u6216\u5C5E\u6027" },
{ name: "Variable", value: 6, description: "\u53D8\u91CF" },
{ name: "Class", value: 7, description: "\u7C7B" },
{ name: "Interface", value: 8, description: "\u63A5\u53E3" },
{ name: "Module", value: 9, description: "\u6A21\u5757" },
{ name: "Property", value: 10, description: "\u5BF9\u8C61\u7684\u5C5E\u6027" },
{ name: "Unit", value: 11, description: "\u5355\u4F4D\uFF0C\u5982\u50CF\u7D20\u3001\u79D2\u7B49" },
{ name: "Value", value: 12, description: "\u5E38\u91CF\u6216\u679A\u4E3E\u6210\u5458" },
{ name: "Enum", value: 13, description: "\u679A\u4E3E\u7C7B\u578B" },
{ name: "Keyword", value: 14, description: "\u5173\u952E\u5B57\uFF0C\u5982\u8BED\u8A00\u4FDD\u7559\u5B57" },
{ name: "Snippet", value: 15, description: "\u4EE3\u7801\u7247\u6BB5" },
{ name: "Color", value: 16, description: "\u989C\u8272" },
{ name: "File", value: 17, description: "\u6587\u4EF6" },
{ name: "Reference", value: 18, description: "\u5F15\u7528\uFF0C\u901A\u5E38\u6307\u5411\u53E6\u4E00\u4E2A\u8865\u5168\u9879" },
{ name: "Folder", value: 19, description: "\u6587\u4EF6\u5939" },
{ name: "EnumMember", value: 20, description: "\u679A\u4E3E\u7684\u6210\u5458" },
{ name: "Constant", value: 21, description: "\u5E38\u91CF" },
{ name: "Struct", value: 22, description: "\u7ED3\u6784\u4F53" },
{ name: "Event", value: 23, description: "\u4E8B\u4EF6" },
{ name: "Operator", value: 24, description: "\u8FD0\u7B97\u7B26" },
{ name: "TypeParameter", value: 25, description: "\u6CDB\u578B\u6216\u7C7B\u578B\u53C2\u6570" }
];
const insertTextRules = [
{ name: "None", value: 1, description: "\u6CA1\u6709\u7279\u6B8A\u89C4\u5219\uFF0C\u63D2\u5165\u6587\u672C\u5C06\u66FF\u6362\u6574\u4E2A\u8303\u56F4" },
{ name: "InsertAsSnippet", value: 2, description: "\u63D2\u5165\u6587\u672C\u5E94\u88AB\u89C6\u4E3A\u4EE3\u7801\u7247\u6BB5\uFF0C\u5141\u8BB8\u4F7F\u7528\u5360\u4F4D\u7B26" },
{ name: "KeepWhitespace", value: 4, description: "\u4FDD\u7559\u524D\u5BFC\u548C\u5C3E\u968F\u7A7A\u767D\u5B57\u7B26\uFF0C\u5373\u4F7F\u5B83\u4EEC\u5728\u63D2\u5165\u6587\u672C\u4E4B\u5916" },
{ name: "AdjustIndentation", value: 8, description: "\u8C03\u6574\u7F29\u8FDB\uFF0C\u4EE5\u5339\u914D\u63D2\u5165\u4F4D\u7F6E\u7684\u7F29\u8FDB\u7EA7\u522B" },
{ name: "ReplaceAllEnclosing", value: 16, description: "\u66FF\u6362\u6574\u4E2A\u8303\u56F4\uFF0C\u5305\u62EC\u5305\u56F4\u7684\u62EC\u53F7\u3001\u5F15\u53F7\u7B49" },
{ name: "InsertAfter", value: 32, description: "\u5728\u8303\u56F4\u4E4B\u540E\u63D2\u5165\u6587\u672C\uFF0C\u4FDD\u7559\u8303\u56F4\u5185\u7684\u6587\u672C" },
{ name: "InsertBefore", value: 64, description: "\u5728\u8303\u56F4\u4E4B\u524D\u63D2\u5165\u6587\u672C\uFF0C\u4FDD\u7559\u8303\u56F4\u5185\u7684\u6587\u672C" },
{ name: "InsertAfterComment", value: 128, description: "\u5728\u6CE8\u91CA\u7ED3\u675F\u6807\u8BB0\u540E\u63D2\u5165\u6587\u672C" }
];
const tips = [
{
id: "1",
label: "log",
insertText: "console.log(${1:})",
kind: 2,
documentation: "Logs a message to the console.",
detail: "Shortcut for console.log()",
insertTextRules: [2],
sortText: "001",
supportLanguage: "javascript"
},
{
id: "3",
label: "watchEffectOnce",
insertText: "const ${1:} = await zzUtil.watchEffectOnce(() => this.\\$page('${2:}'))",
kind: 1,
documentation: "watchEffectOnce",
detail: "watchEffectOnce",
insertTextRules: [2],
sortText: "001",
supportLanguage: "javascript"
},
{
id: "2",
label: "<xtypeRender",
insertText: 'xtypeRender v-bind="\\$attrs" v-model="value"></xtypeRender>',
kind: 1,
documentation: "xtypeRender",
detail: "xtypeRender",
insertTextRules: [2],
sortText: "001",
supportLanguage: "html"
}
];
var render$2 = function() {
var _vm = this;
var _h2 = _vm.$createElement;
var _c2 = _vm._self._c || _h2;
return _c2("div", [_c2("el-tree", {
attrs: {
"data": _vm.languages,
"props": _vm.defaultProps
},
scopedSlots: _vm._u([{
key: "default",
fn: function(_ref) {
var node = _ref.node;
_ref.data;
return _c2("span", {
staticClass: "custom-tree-node"
}, [_c2("span", [_vm._v(_vm._s(node.label))])]);
}
}])
}), _c2("el-dialog", {
attrs: {
"append-to-body": "",
"title": "\u65B0\u589E\u4EE3\u7801\u7247\u6BB5",
"visible": _vm.formShow,
"before-close": _vm.dialogClose
}
}, [_c2("el-form", {
ref: "form",
attrs: {
"rules": _vm.rules,
"label-width": "120px",
"model": _vm.editTips
}
}, [_c2("el-form-item", {
attrs: {
"label": "label"
}
}, [_c2("el-input", {
attrs: {
"autosize": {
minRows: 3
},
"type": "textarea"
},
model: {
value: _vm.editTips.label,
callback: function($$v) {
_vm.$set(_vm.editTips, "label", $$v);
},
expression: "editTips.label"
}
})], 1), _c2("el-form-item", {
attrs: {
"label": "insertText"
}
}, [_c2("el-input", {
attrs: {
"autosize": {
minRows: 4
},
"type": "textarea"
},
model: {
value: _vm.editTips.insertText,
callback: function($$v) {
_vm.$set(_vm.editTips, "insertText", $$v);
},
expression: "editTips.insertText"
}
})], 1), _c2("el-form-item", {
attrs: {
"label": "kind"
}
}, [_c2("el-select", {
staticClass: "tw-w-full",
model: {
value: _vm.editTips.kind,
callback: function($$v) {
_vm.$set(_vm.editTips, "kind", $$v);
},
expression: "editTips.kind"
}
}, _vm._l(_vm.completionItemKinds, function(item) {
return _c2("el-option", {
key: item.value,
attrs: {
"label": item.name,
"value": item.value
}
});
}), 1)], 1), _c2("el-form-item", {
attrs: {
"label": "documentation"
}
}, [_c2("el-input", {
model: {
value: _vm.editTips.documentation,
callback: function($$v) {
_vm.$set(_vm.editTips, "documentation", $$v);
},
expression: "editTips.documentation"
}
})], 1), _c2("el-form-item", {
attrs: {
"label": "detail"
}
}, [_c2("el-input", {
model: {
value: _vm.editTips.detail,
callback: function($$v) {
_vm.$set(_vm.editTips, "detail", $$v);
},
expression: "editTips.detail"
}
})], 1), _c2("el-form-item", {
attrs: {
"label": "insertTextRules"
}
}, [_c2("el-select", {
staticClass: "tw-w-full",
attrs: {
"multiple": ""
},
model: {
value: _vm.editTips.insertTextRules,
callback: function($$v) {
_vm.$set(_vm.editTips, "insertTextRules", $$v);
},
expression: "editTips.insertTextRules"
}
}, _vm._l(_vm.insertTextRules, function(item) {
return _c2("el-option", {
key: item.value,
attrs: {
"label": item.name,
"value": item.value
}
});
}), 1), _c2("div", _vm._l(_vm.showTags, function(item) {
return _c2("el-tag", {
key: item.value
}, [_vm._v(_vm._s(item.name))]);
}), 1)], 1), _c2("el-form-item", {
attrs: {
"label": "sortText"
}
}, [_c2("el-input", {
model: {
value: _vm.editTips.sortText,
callback: function($$v) {
_vm.$set(_vm.editTips, "sortText", $$v);
},
expression: "editTips.sortText"
}
})], 1)], 1), _c2("span", {
staticClass: "dialog-footer",
attrs: {
"slot": "footer"
},
slot: "footer"
}, [_c2("el-button", {
on: {
"click": _vm.cancel
}
}, [_vm._v("\u53D6 \u6D88")]), _c2("el-button", {
attrs: {
"type": "primary"
},
on: {
"click": _vm.confirm
}
}, [_vm._v("\u786E \u5B9A")])], 1)], 1)], 1);
};
var staticRenderFns$1 = [];
function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
if (render2) {
options.render = render2;
options.staticRenderFns = staticRenderFns2;
options._compiled = true;
}
if (functionalTemplate) {
options.functional = true;
}
if (scopeId) {
options._scopeId = "data-v-" + scopeId;
}
var hook;
if (moduleIdentifier) {
hook = function(context) {
context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
context = __VUE_SSR_CONTEXT__;
}
if (injectStyles) {
injectStyles.call(this, context);
}
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier);
}
};
options._ssrRegister = hook;
} else if (injectStyles) {
hook = shadowMode ? function() {
injectStyles.call(
this,
(options.functional ? this.parent : this).$root.$options.shadowRoot
);
} : injectStyles;
}
if (hook) {
if (options.functional) {
options._injectStyles = hook;
var originalRender = options.render;
options.render = function renderWithStyleInjection(h, context) {
hook.call(context);
return originalRender(h, context);
};
} else {
var existing = options.beforeCreate;
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
}
}
return {
exports: scriptExports,
options
};
}
const _$3 = _unsafeWindow._;
const __vue2_script$1 = {
name: "",
data: () => ({
languages: [
{
name: "javascript",
children: []
},
{
name: "css",
children: []
},
{
name: "html",
children: []
},
{
name: "json",
children: []
}
],
activeNames: "",
colSpans: {},
formShow: false,
defaultProps: {
children: "children",
label: "name"
},
editTips: {},
completionItemKinds: [],
insertTextRules: [],
rules: {
label: [{ required: true, message: "\u8BF7\u8F93\u5165label", trigger: "blur" }],
insertText: [
{ required: true, message: "\u8BF7\u8F93\u5165insertText", trigger: "blur" }
],
kind: [{ required: true, message: "\u8BF7\u9009\u62E9kind", trigger: "change" }],
detail: [{ required: true, message: "\u8BF7\u8F93\u5165detail", trigger: "blur" }],
documentation: [
{ required: true, message: "\u8BF7\u8F93\u5165documentation", trigger: "blur" }
]
}
}),
computed: {
colKeys() {
return Object.keys(this.colSpans);
},
showTags() {
const { insertTextRules: rules = [] } = this.editTips;
return insertTextRules.filter((i) => rules.includes(i.value));
}
},
methods: {
handleChange() {
},
editSnippet() {
},
getLabel(node) {
console.log(node);
},
append(node, data) {
this.formShow = true;
},
edit(node, data) {
console.log(data);
this.editTips = data.data;
this.formShow = true;
},
dialogClose() {
this.editTips = {};
this.formShow = false;
},
cancel() {
this.dialogClose();
},
async confirm() {
const check = await this.$refs.form.validate();
if (!check)
return;
},
initData() {
let codeSnippets = _unsafeWindow.editorTips;
let obj = _$3.groupBy(codeSnippets, "supportLanguage");
this.languages.forEach((language) => {
var _a2;
let arr = (_a2 = obj[language.name]) != null ? _a2 : [];
language.children = arr.map((i) => ({
name: `${i.label}(${i.detail})`,
data: i
}));
});
}
},
async mounted() {
this.completionItemKinds = completionItemKinds;
this.insertTextRules = insertTextRules;
this.initData();
}
};
const __cssModules$1 = {};
var __component__$1 = /* @__PURE__ */ normalizeComponent(
__vue2_script$1,
render$2,
staticRenderFns$1,
false,
__vue2_injectStyles$1,
"545643b4",
null,
null
);
function __vue2_injectStyles$1(context) {
for (let o in __cssModules$1) {
this[o] = __cssModules$1[o];
}
}
var Tips = /* @__PURE__ */ function() {
return __component__$1.exports;
}();
const codeThemeList = [
{ name: "vs", value: "vs", out: true, group: "\u9ED8\u8BA4" },
{ name: "vs-dark", value: "vs-dark", out: true, group: "\u9ED8\u8BA4" },
{ name: "hc-black", value: "hc-black", out: true, group: "\u9ED8\u8BA4" },
{
"group": "Winter is Coming",
"name": "Winter Is Coming1",
"themeName": "WinterIsComing1",
"path": "WinterIsComing-dark-blue-color-no-italics-theme.json",
"loaded": false,
"cache": ""
},
{
"group": "Winter is Coming",
"name": "Winter is Coming5",
"themeName": "WinterisComing5",
"path": "WinterIsComing-light-color-no-italics-theme.json",
"loaded": false,
"cache": ""
},
{
"group": "Winter is Coming",
"name": "Winter is Coming6",
"themeName": "WinterisComing6",
"path": "WinterIsComing-light-color-theme.json",
"loaded": false,
"cache": ""
},
{
"group": "Winter is Coming",
"name": "Winter Is Coming3",
"themeName": "WinterIsComing3",
"path": "WinterIsComing-dark-color-no-italics-theme.json",
"loaded": false,
"cache": ""
},
{
"group": "Winter is Coming",
"name": "Winter Is Coming4",
"themeName": "WinterIsComing4",
"path": "WinterIsComing-dark-color-theme.json",
"loaded": false,
"cache": ""
},
{
"group": "Winter is Coming",
"name": "Winter Is Coming2",
"themeName": "WinterIsComing2",
"path": "WinterIsComing-dark-blue-color-theme.json",
"loaded": false,
"cache": ""
},
{
"group": "Catppuccin",
"name": "Catppuccin Macchiato",
"themeName": "CatppuccinMacchiato",
"path": "macchiato.json",
"loaded": false,
"cache": ""
},
{
"group": "Catppuccin",
"name": "Catppuccin Mocha",
"themeName": "CatppuccinMocha",
"path": "mocha.json",
"loaded": false,
"cache": ""
},
{
"group": "Catppuccin",
"name": "Catppuccin Frapp\xE9",
"themeName": "CatppuccinFrapp\xE9",
"path": "frappe.json",
"loaded": false,
"cache": ""
},
{
"group": "Catppuccin",
"name": "Catppuccin Latte",
"themeName": "CatppuccinLatte",
"path": "latte.json",
"loaded": false,
"cache": ""
},
{
"group": "Atom One Dark Theme",
"name": "OneDark",
"themeName": "OneDark",
"path": "OneDark.json",
"loaded": false,
"cache": ""
},
{
"group": "One Dark Pro",
"name": "One Dark Pro1",
"themeName": "OneDarkPro1",
"path": "OneDark-Pro-darker.json",
"loaded": false,
"cache": ""
},
{
"group": "One Dark Pro",
"name": "One Dark Pro2",
"themeName": "OneDarkPro2",
"path": "OneDark-Pro-flat.json",
"loaded": false,
"cache": ""
},
{
"group": "One Dark Pro",
"name": "One Dark Pro3",
"themeName": "OneDarkPro3",
"path": "OneDark-Pro-mix.json",
"loaded": false,
"cache": ""
},
{
"group": "One Dark Pro",
"name": "One Dark Pro4",
"themeName": "OneDarkPro4",
"path": "OneDark-Pro.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Dark High Contrast",
"themeName": "GitHubDarkHighContrast",
"path": "dark-high-contrast.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Dark Colorblind",
"themeName": "GitHubDarkColorblind",
"path": "dark-colorblind.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Light Colorblind",
"themeName": "GitHubLightColorblind",
"path": "light-colorblind.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Light",
"themeName": "GitHubLight",
"path": "light.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Light Default",
"themeName": "GitHubLightDefault",
"path": "light-default.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Light High Contrast",
"themeName": "GitHubLightHighContrast",
"path": "light-high-contrast.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Dark",
"themeName": "GitHubDark",
"path": "dark.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Dark Default",
"themeName": "GitHubDarkDefault",
"path": "dark-default.json",
"loaded": false,
"cache": ""
},
{
"group": "GitHub's",
"name": "GitHub Dark Dimmed",
"themeName": "GitHubDarkDimmed",
"path": "dark-dimmed.json",
"loaded": false,
"cache": ""
},
{
"group": "Monokai Pro",
"name": "Monokai Classic",
"themeName": "MonokaiClassic",
"path": "Monokai Classic.json",
"loaded": false,
"cache": ""
},
{
"group": "Monokai Pro",
"name": "Monokai Pro (Filter Ristretto)",
"themeName": "MonokaiProFilterRistretto",
"path": "Monokai Pro (Filter Ristretto).json",
"loaded": false,
"cache": ""
},
{
"group": "Monokai Pro",
"name": "Monokai Pro",
"themeName": "MonokaiPro",
"path": "Monokai Pro.json",
"loaded": false,
"cache": ""
},
{
"group": "Monokai Pro",
"name": "Monokai Pro (Filter Machine)",
"themeName": "MonokaiProFilterMachine",
"path": "Monokai Pro (Filter Machine).json",
"loaded": false,
"cache": ""
},
{
"group": "Monokai Pro",
"name": "Monokai Pro (Filter Octagon)",
"themeName": "MonokaiProFilterOctagon",
"path": "Monokai Pro (Filter Octagon).json",
"loaded": false,
"cache": ""
},
{
"group": "Monokai Pro",
"name": "Monokai Pro (Filter Spectrum)",
"themeName": "MonokaiProFilterSpectrum",
"path": "Monokai Pro (Filter Spectrum).json",
"loaded": false,
"cache": ""
},
{
"group": "Bluloco Dark",
"name": "Bluloco Dark Italic",
"themeName": "BlulocoDarkItalic",
"path": "bluloco-dark-italic-color-theme.json",
"loaded": false,
"cache": ""
},
{
"group": "Bluloco Dark",
"name": "Bluloco Dark",
"themeName": "BlulocoDark",
"path": "bluloco-dark-color-theme.json",
"loaded": false,
"cache": ""
}
];
const fontFamilys = [
{ label: "Fira Code", value: "Fira Code, Monoid, Consolas, monospace" },
{ label: "Menlo", value: "Menlo, Monaco, Courier New, monospace" }
];
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
function getAugmentedNamespace(n) {
if (n.__esModule)
return n;
var a = Object.defineProperty({}, "__esModule", { value: true });
Object.keys(n).forEach(function(k) {
var d2 = Object.getOwnPropertyDescriptor(n, k);
Object.defineProperty(a, k, d2.get ? d2 : {
enumerable: true,
get: function() {
return n[k];
}
});
});
return a;
}
var main$1 = {};
var registry = {};
var grammar = {};
var utils = {};
Object.defineProperty(utils, "__esModule", { value: true });
function clone(something) {
return doClone(something);
}
utils.clone = clone;
function doClone(something) {
if (Array.isArray(something)) {
return cloneArray(something);
}
if (typeof something === "object") {
return cloneObj(something);
}
return something;
}
function cloneArray(arr) {
var r = [];
for (var i = 0, len = arr.length; i < len; i++) {
r[i] = doClone(arr[i]);
}
return r;
}
function cloneObj(obj) {
var r = {};
for (var key in obj) {
r[key] = doClone(obj[key]);
}
return r;
}
function mergeObjects(target) {
var sources = [];
for (var _i2 = 1; _i2 < arguments.length; _i2++) {
sources[_i2 - 1] = arguments[_i2];
}
sources.forEach(function(source) {
for (var key in source) {
target[key] = source[key];
}
});
return target;
}
utils.mergeObjects = mergeObjects;
var CAPTURING_REGEX_SOURCE = /\$(\d+)|\${(\d+):\/(downcase|upcase)}/;
var RegexSource = function() {
function RegexSource2() {
}
RegexSource2.hasCaptures = function(regexSource) {
return CAPTURING_REGEX_SOURCE.test(regexSource);
};
RegexSource2.replaceCaptures = function(regexSource, captureSource, captureIndices) {
return regexSource.replace(CAPTURING_REGEX_SOURCE, function(match, index, commandIndex, command) {
var capture = captureIndices[parseInt(index || commandIndex, 10)];
if (capture) {
var result = captureSource.substring(capture.start, capture.end);
while (result[0] === ".") {
result = result.substring(1);
}
switch (command) {
case "downcase":
return result.toLowerCase();
case "upcase":
return result.toUpperCase();
default:
return result;
}
} else {
return match;
}
});
};
return RegexSource2;
}();
utils.RegexSource = RegexSource;
var rule = {};
var __viteBrowserExternal = {};
var __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
"default": __viteBrowserExternal
}, Symbol.toStringTag, { value: "Module" }));
var require$$0 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);
var lib = {};
var onigasmH = {};
var onigasm = { exports: {} };
(function(module, exports) {
var Onigasm = function() {
typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0;
return function(Onigasm2) {
Onigasm2 = Onigasm2 || {};
var Module = typeof Onigasm2 !== "undefined" ? Onigasm2 : {};
var moduleOverrides = {};
var key;
for (key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key];
}
}
var ENVIRONMENT_IS_WORKER = false;
var scriptDirectory = "";
function locateFile(path2) {
if (Module["locateFile"]) {
return Module["locateFile"](path2, scriptDirectory);
}
return scriptDirectory + path2;
}
var readBinary;
{
readBinary = function readBinary2(f2) {
var data;
if (typeof readbuffer === "function") {
return new Uint8Array(readbuffer(f2));
}
data = read(f2, "binary");
assert(typeof data === "object");
return data;
};
if (typeof scriptArgs != "undefined") {
scriptArgs;
}
if (typeof print !== "undefined") {
if (typeof console === "undefined")
console = {};
// console.log = print;
// console.warn = console.error = typeof printErr !== "undefined" ? printErr : print;
}
}
var out = Module["print"] || console.log.bind(console);
var err = Module["printErr"] || console.warn.bind(console);
for (key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key];
}
}
moduleOverrides = null;
if (Module["arguments"])
Module["arguments"];
if (Module["thisProgram"])
Module["thisProgram"];
if (Module["quit"])
Module["quit"];
var wasmBinary;
if (Module["wasmBinary"])
wasmBinary = Module["wasmBinary"];
if (Module["noExitRuntime"])
Module["noExitRuntime"];
if (typeof WebAssembly !== "object") {
err("no native wasm support detected");
}
var wasmMemory;
var wasmTable = new WebAssembly.Table({ "initial": 244, "maximum": 244 + 0, "element": "anyfunc" });
var ABORT = false;
function assert(condition, text) {
if (!condition) {
abort("Assertion failed: " + text);
}
}
function getCFunc(ident) {
var func = Module["_" + ident];
assert(func, "Cannot call unknown function " + ident + ", make sure it is exported");
return func;
}
function ccall(ident, returnType, argTypes, args, opts) {
var toC = { "string": function(str) {
var ret2 = 0;
if (str !== null && str !== void 0 && str !== 0) {
var len = (str.length << 2) + 1;
ret2 = stackAlloc(len);
stringToUTF8(str, ret2, len);
}
return ret2;
}, "array": function(arr) {
var ret2 = stackAlloc(arr.length);
writeArrayToMemory(arr, ret2);
return ret2;
} };
function convertReturnValue(ret2) {
if (returnType === "string")
return UTF8ToString(ret2);
if (returnType === "boolean")
return Boolean(ret2);
return ret2;
}
var func = getCFunc(ident);
var cArgs = [];
var stack = 0;
if (args) {
for (var i = 0; i < args.length; i++) {
var converter = toC[argTypes[i]];
if (converter) {
if (stack === 0)
stack = stackSave();
cArgs[i] = converter(args[i]);
} else {
cArgs[i] = args[i];
}
}
}
var ret = func.apply(null, cArgs);
ret = convertReturnValue(ret);
if (stack !== 0)
stackRestore(stack);
return ret;
}
var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : void 0;
function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {
var endIdx = idx + maxBytesToRead;
var endPtr = idx;
while (u8Array[endPtr] && !(endPtr >= endIdx))
++endPtr;
if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {
return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));
} else {
var str = "";
while (idx < endPtr) {
var u0 = u8Array[idx++];
if (!(u0 & 128)) {
str += String.fromCharCode(u0);
continue;
}
var u1 = u8Array[idx++] & 63;
if ((u0 & 224) == 192) {
str += String.fromCharCode((u0 & 31) << 6 | u1);
continue;
}
var u2 = u8Array[idx++] & 63;
if ((u0 & 240) == 224) {
u0 = (u0 & 15) << 12 | u1 << 6 | u2;
} else {
u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u8Array[idx++] & 63;
}
if (u0 < 65536) {
str += String.fromCharCode(u0);
} else {
var ch = u0 - 65536;
str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
}
}
}
return str;
}
function UTF8ToString(ptr, maxBytesToRead) {
return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
}
function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
if (!(maxBytesToWrite > 0))
return 0;
var startIdx = outIdx;
var endIdx = outIdx + maxBytesToWrite - 1;
for (var i = 0; i < str.length; ++i) {
var u = str.charCodeAt(i);
if (u >= 55296 && u <= 57343) {
var u1 = str.charCodeAt(++i);
u = 65536 + ((u & 1023) << 10) | u1 & 1023;
}
if (u <= 127) {
if (outIdx >= endIdx)
break;
outU8Array[outIdx++] = u;
} else if (u <= 2047) {
if (outIdx + 1 >= endIdx)
break;
outU8Array[outIdx++] = 192 | u >> 6;
outU8Array[outIdx++] = 128 | u & 63;
} else if (u <= 65535) {
if (outIdx + 2 >= endIdx)
break;
outU8Array[outIdx++] = 224 | u >> 12;
outU8Array[outIdx++] = 128 | u >> 6 & 63;
outU8Array[outIdx++] = 128 | u & 63;
} else {
if (outIdx + 3 >= endIdx)
break;
outU8Array[outIdx++] = 240 | u >> 18;
outU8Array[outIdx++] = 128 | u >> 12 & 63;
outU8Array[outIdx++] = 128 | u >> 6 & 63;
outU8Array[outIdx++] = 128 | u & 63;
}
}
outU8Array[outIdx] = 0;
return outIdx - startIdx;
}
function stringToUTF8(str, outPtr, maxBytesToWrite) {
return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
}
typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : void 0;
function writeArrayToMemory(array, buffer2) {
HEAP8.set(array, buffer2);
}
var WASM_PAGE_SIZE = 65536;
function alignUp(x2, multiple) {
if (x2 % multiple > 0) {
x2 += multiple - x2 % multiple;
}
return x2;
}
var buffer, HEAP8, HEAPU8, HEAP32;
function updateGlobalBufferAndViews(buf) {
buffer = buf;
Module["HEAP8"] = HEAP8 = new Int8Array(buf);
Module["HEAP16"] = new Int16Array(buf);
Module["HEAP32"] = HEAP32 = new Int32Array(buf);
Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
Module["HEAPU16"] = new Uint16Array(buf);
Module["HEAPU32"] = new Uint32Array(buf);
Module["HEAPF32"] = new Float32Array(buf);
Module["HEAPF64"] = new Float64Array(buf);
}
var DYNAMIC_BASE = 5507664, DYNAMICTOP_PTR = 264624;
var INITIAL_TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 157286400;
if (Module["wasmMemory"]) {
wasmMemory = Module["wasmMemory"];
} else {
wasmMemory = new WebAssembly.Memory({ "initial": INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE });
}
if (wasmMemory) {
buffer = wasmMemory.buffer;
}
INITIAL_TOTAL_MEMORY = buffer.byteLength;
updateGlobalBufferAndViews(buffer);
HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;
function callRuntimeCallbacks(callbacks) {
while (callbacks.length > 0) {
var callback = callbacks.shift();
if (typeof callback == "function") {
callback();
continue;
}
var func = callback.func;
if (typeof func === "number") {
if (callback.arg === void 0) {
Module["dynCall_v"](func);
} else {
Module["dynCall_vi"](func, callback.arg);
}
} else {
func(callback.arg === void 0 ? null : callback.arg);
}
}
}
var __ATPRERUN__ = [];
var __ATINIT__ = [];
var __ATMAIN__ = [];
var __ATPOSTRUN__ = [];
function preRun() {
if (Module["preRun"]) {
if (typeof Module["preRun"] == "function")
Module["preRun"] = [Module["preRun"]];
while (Module["preRun"].length) {
addOnPreRun(Module["preRun"].shift());
}
}
callRuntimeCallbacks(__ATPRERUN__);
}
function initRuntime() {
callRuntimeCallbacks(__ATINIT__);
}
function preMain() {
callRuntimeCallbacks(__ATMAIN__);
}
function postRun() {
if (Module["postRun"]) {
if (typeof Module["postRun"] == "function")
Module["postRun"] = [Module["postRun"]];
while (Module["postRun"].length) {
addOnPostRun(Module["postRun"].shift());
}
}
callRuntimeCallbacks(__ATPOSTRUN__);
}
function addOnPreRun(cb) {
__ATPRERUN__.unshift(cb);
}
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb);
}
var runDependencies = 0;
var dependenciesFulfilled = null;
function addRunDependency(id) {
runDependencies++;
if (Module["monitorRunDependencies"]) {
Module["monitorRunDependencies"](runDependencies);
}
}
function removeRunDependency(id) {
runDependencies--;
if (Module["monitorRunDependencies"]) {
Module["monitorRunDependencies"](runDependencies);
}
if (runDependencies == 0) {
if (dependenciesFulfilled) {
var callback = dependenciesFulfilled;
dependenciesFulfilled = null;
callback();
}
}
}
Module["preloadedImages"] = {};
Module["preloadedAudios"] = {};
function abort(what) {
if (Module["onAbort"]) {
Module["onAbort"](what);
}
what += "";
out(what);
err(what);
ABORT = true;
what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info.";
throw new WebAssembly.RuntimeError(what);
}
var dataURIPrefix = "data:application/octet-stream;base64,";
function isDataURI(filename) {
return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0;
}
var wasmBinaryFile = "onigasm.wasm";
if (!isDataURI(wasmBinaryFile)) {
wasmBinaryFile = locateFile(wasmBinaryFile);
}
function getBinary() {
try {
if (wasmBinary) {
return new Uint8Array(wasmBinary);
}
if (readBinary) {
return readBinary(wasmBinaryFile);
} else {
throw "both async and sync fetching of the wasm failed";
}
} catch (err2) {
abort(err2);
}
}
function getBinaryPromise() {
if (!wasmBinary && ENVIRONMENT_IS_WORKER && typeof fetch === "function") {
return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) {
if (!response["ok"]) {
throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
}
return response["arrayBuffer"]();
}).catch(function() {
return getBinary();
});
}
return new Promise(function(resolve, reject) {
resolve(getBinary());
});
}
function createWasm() {
var info = { "env": asmLibraryArg, "wasi_unstable": asmLibraryArg };
function receiveInstance(instance, module2) {
var exports3 = instance.exports;
Module["asm"] = exports3;
removeRunDependency();
}
addRunDependency();
function receiveInstantiatedSource(output) {
receiveInstance(output["instance"]);
}
function instantiateArrayBuffer(receiver) {
return getBinaryPromise().then(function(binary) {
return WebAssembly.instantiate(binary, info);
}).then(receiver, function(reason) {
err("failed to asynchronously prepare wasm: " + reason);
abort(reason);
});
}
function instantiateAsync() {
if (!wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && typeof fetch === "function") {
fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) {
var result = WebAssembly.instantiateStreaming(response, info);
return result.then(receiveInstantiatedSource, function(reason) {
err("wasm streaming compile failed: " + reason);
err("falling back to ArrayBuffer instantiation");
instantiateArrayBuffer(receiveInstantiatedSource);
});
});
} else {
return instantiateArrayBuffer(receiveInstantiatedSource);
}
}
if (Module["instantiateWasm"]) {
try {
var exports2 = Module["instantiateWasm"](info, receiveInstance);
return exports2;
} catch (e4) {
err("Module.instantiateWasm callback failed with error: " + e4);
return false;
}
}
instantiateAsync();
return {};
}
__ATINIT__.push({ func: function() {
___wasm_call_ctors();
} });
function _abort() {
abort();
}
function _emscripten_get_heap_size() {
return HEAP8.length;
}
function _emscripten_get_sbrk_ptr() {
return 264624;
}
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src + num), dest);
}
function emscripten_realloc_buffer(size) {
try {
wasmMemory.grow(size - buffer.byteLength + 65535 >> 16);
updateGlobalBufferAndViews(wasmMemory.buffer);
return 1;
} catch (e4) {
}
}
function _emscripten_resize_heap(requestedSize) {
var oldSize = _emscripten_get_heap_size();
var PAGE_MULTIPLE = 65536;
var LIMIT = 2147483648 - PAGE_MULTIPLE;
if (requestedSize > LIMIT) {
return false;
}
var MIN_TOTAL_MEMORY = 16777216;
var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY);
while (newSize < requestedSize) {
if (newSize <= 536870912) {
newSize = alignUp(2 * newSize, PAGE_MULTIPLE);
} else {
newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);
}
}
var replacement = emscripten_realloc_buffer(newSize);
if (!replacement) {
return false;
}
return true;
}
var SYSCALLS = { buffers: [null, [], []], printChar: function(stream, curr) {
var buffer2 = SYSCALLS.buffers[stream];
if (curr === 0 || curr === 10) {
(stream === 1 ? out : err)(UTF8ArrayToString(buffer2, 0));
buffer2.length = 0;
} else {
buffer2.push(curr);
}
}, varargs: 0, get: function(varargs) {
SYSCALLS.varargs += 4;
var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];
return ret;
}, getStr: function() {
var ret = UTF8ToString(SYSCALLS.get());
return ret;
}, get64: function() {
var low = SYSCALLS.get();
SYSCALLS.get();
return low;
}, getZero: function() {
SYSCALLS.get();
} };
function _fd_close(fd) {
try {
return 0;
} catch (e4) {
if (typeof FS === "undefined" || !(e4 instanceof FS.ErrnoError))
abort(e4);
return e4.errno;
}
}
function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
try {
return 0;
} catch (e4) {
if (typeof FS === "undefined" || !(e4 instanceof FS.ErrnoError))
abort(e4);
return e4.errno;
}
}
function _fd_write(fd, iov, iovcnt, pnum) {
try {
var num = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[iov + i * 8 >> 2];
var len = HEAP32[iov + (i * 8 + 4) >> 2];
for (var j2 = 0; j2 < len; j2++) {
SYSCALLS.printChar(fd, HEAPU8[ptr + j2]);
}
num += len;
}
HEAP32[pnum >> 2] = num;
return 0;
} catch (e4) {
if (typeof FS === "undefined" || !(e4 instanceof FS.ErrnoError))
abort(e4);
return e4.errno;
}
}
function _setTempRet0($i) {
}
var asmLibraryArg = { "abort": _abort, "emscripten_get_sbrk_ptr": _emscripten_get_sbrk_ptr, "emscripten_memcpy_big": _emscripten_memcpy_big, "emscripten_resize_heap": _emscripten_resize_heap, "fd_close": _fd_close, "fd_seek": _fd_seek, "fd_write": _fd_write, "memory": wasmMemory, "setTempRet0": _setTempRet0, "table": wasmTable };
var asm = createWasm();
Module["asm"] = asm;
var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() {
return Module["asm"]["__wasm_call_ctors"].apply(null, arguments);
};
Module["_malloc"] = function() {
return Module["asm"]["malloc"].apply(null, arguments);
};
Module["_free"] = function() {
return Module["asm"]["free"].apply(null, arguments);
};
Module["_getLastError"] = function() {
return Module["asm"]["getLastError"].apply(null, arguments);
};
Module["_compilePattern"] = function() {
return Module["asm"]["compilePattern"].apply(null, arguments);
};
Module["_disposeCompiledPatterns"] = function() {
return Module["asm"]["disposeCompiledPatterns"].apply(null, arguments);
};
Module["_findBestMatch"] = function() {
return Module["asm"]["findBestMatch"].apply(null, arguments);
};
Module["___cxa_demangle"] = function() {
return Module["asm"]["__cxa_demangle"].apply(null, arguments);
};
Module["_setThrew"] = function() {
return Module["asm"]["setThrew"].apply(null, arguments);
};
var stackSave = Module["stackSave"] = function() {
return Module["asm"]["stackSave"].apply(null, arguments);
};
var stackAlloc = Module["stackAlloc"] = function() {
return Module["asm"]["stackAlloc"].apply(null, arguments);
};
var stackRestore = Module["stackRestore"] = function() {
return Module["asm"]["stackRestore"].apply(null, arguments);
};
Module["__growWasmMemory"] = function() {
return Module["asm"]["__growWasmMemory"].apply(null, arguments);
};
Module["dynCall_vi"] = function() {
return Module["asm"]["dynCall_vi"].apply(null, arguments);
};
Module["dynCall_iiii"] = function() {
return Module["asm"]["dynCall_iiii"].apply(null, arguments);
};
Module["dynCall_iiiii"] = function() {
return Module["asm"]["dynCall_iiiii"].apply(null, arguments);
};
Module["dynCall_iii"] = function() {
return Module["asm"]["dynCall_iii"].apply(null, arguments);
};
Module["dynCall_iidiiii"] = function() {
return Module["asm"]["dynCall_iidiiii"].apply(null, arguments);
};
Module["dynCall_vii"] = function() {
return Module["asm"]["dynCall_vii"].apply(null, arguments);
};
Module["dynCall_ii"] = function() {
return Module["asm"]["dynCall_ii"].apply(null, arguments);
};
Module["dynCall_i"] = function() {
return Module["asm"]["dynCall_i"].apply(null, arguments);
};
Module["dynCall_v"] = function() {
return Module["asm"]["dynCall_v"].apply(null, arguments);
};
Module["dynCall_viiiiii"] = function() {
return Module["asm"]["dynCall_viiiiii"].apply(null, arguments);
};
Module["dynCall_viiiii"] = function() {
return Module["asm"]["dynCall_viiiii"].apply(null, arguments);
};
Module["dynCall_viiii"] = function() {
return Module["asm"]["dynCall_viiii"].apply(null, arguments);
};
Module["dynCall_jiji"] = function() {
return Module["asm"]["dynCall_jiji"].apply(null, arguments);
};
Module["asm"] = asm;
Module["ccall"] = ccall;
var calledRun;
Module["then"] = function(func) {
if (calledRun) {
func(Module);
} else {
var old = Module["onRuntimeInitialized"];
Module["onRuntimeInitialized"] = function() {
if (old)
old();
func(Module);
};
}
return Module;
};
dependenciesFulfilled = function runCaller() {
if (!calledRun)
run();
if (!calledRun)
dependenciesFulfilled = runCaller;
};
function run(args) {
if (runDependencies > 0) {
return;
}
preRun();
if (runDependencies > 0)
return;
function doRun() {
if (calledRun)
return;
calledRun = true;
if (ABORT)
return;
initRuntime();
preMain();
if (Module["onRuntimeInitialized"])
Module["onRuntimeInitialized"]();
postRun();
}
if (Module["setStatus"]) {
Module["setStatus"]("Running...");
setTimeout(function() {
setTimeout(function() {
Module["setStatus"]("");
}, 1);
doRun();
}, 1);
} else {
doRun();
}
}
Module["run"] = run;
if (Module["preInit"]) {
if (typeof Module["preInit"] == "function")
Module["preInit"] = [Module["preInit"]];
while (Module["preInit"].length > 0) {
Module["preInit"].pop()();
}
}
run();
return Onigasm2;
};
}();
module.exports = Onigasm;
})(onigasm);
Object.defineProperty(onigasmH, "__esModule", { value: true });
const OnigasmModuleFactory = onigasm.exports;
async function initModule(bytes) {
return new Promise((resolve, reject) => {
OnigasmModuleFactory({
instantiateWasm(imports, successCallback) {
WebAssembly.instantiate(bytes, imports).then((output) => {
successCallback(output.instance);
}).catch((e4) => {
throw e4;
});
return {};
}
}).then((moduleH) => {
onigasmH.onigasmH = moduleH;
resolve();
});
});
}
let isInitialized = false;
async function loadWASM$1(data) {
if (isInitialized) {
throw new Error(`Onigasm#init has been called and was succesful, subsequent calls are not allowed once initialized`);
}
if (typeof data === "string") {
const arrayBuffer = await (await fetch(data)).arrayBuffer();
await initModule(arrayBuffer);
} else if (data instanceof ArrayBuffer) {
await initModule(data);
} else {
throw new TypeError(`Expected a string (URL of .wasm file) or ArrayBuffer (.wasm file itself) as first parameter`);
}
isInitialized = true;
}
onigasmH.loadWASM = loadWASM$1;
var OnigRegExp$1 = {};
var OnigScanner$1 = {};
var yallist = Yallist$1;
Yallist$1.Node = Node;
Yallist$1.create = Yallist$1;
function Yallist$1(list) {
var self2 = this;
if (!(self2 instanceof Yallist$1)) {
self2 = new Yallist$1();
}
self2.tail = null;
self2.head = null;
self2.length = 0;
if (list && typeof list.forEach === "function") {
list.forEach(function(item) {
self2.push(item);
});
} else if (arguments.length > 0) {
for (var i = 0, l = arguments.length; i < l; i++) {
self2.push(arguments[i]);
}
}
return self2;
}
Yallist$1.prototype.removeNode = function(node) {
if (node.list !== this) {
throw new Error("removing node which does not belong to this list");
}
var next = node.next;
var prev = node.prev;
if (next) {
next.prev = prev;
}
if (prev) {
prev.next = next;
}
if (node === this.head) {
this.head = next;
}
if (node === this.tail) {
this.tail = prev;
}
node.list.length--;
node.next = null;
node.prev = null;
node.list = null;
return next;
};
Yallist$1.prototype.unshiftNode = function(node) {
if (node === this.head) {
return;
}
if (node.list) {
node.list.removeNode(node);
}
var head = this.head;
node.list = this;
node.next = head;
if (head) {
head.prev = node;
}
this.head = node;
if (!this.tail) {
this.tail = node;
}
this.length++;
};
Yallist$1.prototype.pushNode = function(node) {
if (node === this.tail) {
return;
}
if (node.list) {
node.list.removeNode(node);
}
var tail = this.tail;
node.list = this;
node.prev = tail;
if (tail) {
tail.next = node;
}
this.tail = node;
if (!this.head) {
this.head = node;
}
this.length++;
};
Yallist$1.prototype.push = function() {
for (var i = 0, l = arguments.length; i < l; i++) {
push(this, arguments[i]);
}
return this.length;
};
Yallist$1.prototype.unshift = function() {
for (var i = 0, l = arguments.length; i < l; i++) {
unshift(this, arguments[i]);
}
return this.length;
};
Yallist$1.prototype.pop = function() {
if (!this.tail) {
return void 0;
}
var res = this.tail.value;
this.tail = this.tail.prev;
if (this.tail) {
this.tail.next = null;
} else {
this.head = null;
}
this.length--;
return res;
};
Yallist$1.prototype.shift = function() {
if (!this.head) {
return void 0;
}
var res = this.head.value;
this.head = this.head.next;
if (this.head) {
this.head.prev = null;
} else {
this.tail = null;
}
this.length--;
return res;
};
Yallist$1.prototype.forEach = function(fn2, thisp) {
thisp = thisp || this;
for (var walker = this.head, i = 0; walker !== null; i++) {
fn2.call(thisp, walker.value, i, this);
walker = walker.next;
}
};
Yallist$1.prototype.forEachReverse = function(fn2, thisp) {
thisp = thisp || this;
for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
fn2.call(thisp, walker.value, i, this);
walker = walker.prev;
}
};
Yallist$1.prototype.get = function(n) {
for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
walker = walker.next;
}
if (i === n && walker !== null) {
return walker.value;
}
};
Yallist$1.prototype.getReverse = function(n) {
for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
walker = walker.prev;
}
if (i === n && walker !== null) {
return walker.value;
}
};
Yallist$1.prototype.map = function(fn2, thisp) {
thisp = thisp || this;
var res = new Yallist$1();
for (var walker = this.head; walker !== null; ) {
res.push(fn2.call(thisp, walker.value, this));
walker = walker.next;
}
return res;
};
Yallist$1.prototype.mapReverse = function(fn2, thisp) {
thisp = thisp || this;
var res = new Yallist$1();
for (var walker = this.tail; walker !== null; ) {
res.push(fn2.call(thisp, walker.value, this));
walker = walker.prev;
}
return res;
};
Yallist$1.prototype.reduce = function(fn2, initial) {
var acc;
var walker = this.head;
if (arguments.length > 1) {
acc = initial;
} else if (this.head) {
walker = this.head.next;
acc = this.head.value;
} else {
throw new TypeError("Reduce of empty list with no initial value");
}
for (var i = 0; walker !== null; i++) {
acc = fn2(acc, walker.value, i);
walker = walker.next;
}
return acc;
};
Yallist$1.prototype.reduceReverse = function(fn2, initial) {
var acc;
var walker = this.tail;
if (arguments.length > 1) {
acc = initial;
} else if (this.tail) {
walker = this.tail.prev;
acc = this.tail.value;
} else {
throw new TypeError("Reduce of empty list with no initial value");
}
for (var i = this.length - 1; walker !== null; i--) {
acc = fn2(acc, walker.value, i);
walker = walker.prev;
}
return acc;
};
Yallist$1.prototype.toArray = function() {
var arr = new Array(this.length);
for (var i = 0, walker = this.head; walker !== null; i++) {
arr[i] = walker.value;
walker = walker.next;
}
return arr;
};
Yallist$1.prototype.toArrayReverse = function() {
var arr = new Array(this.length);
for (var i = 0, walker = this.tail; walker !== null; i++) {
arr[i] = walker.value;
walker = walker.prev;
}
return arr;
};
Yallist$1.prototype.slice = function(from, to) {
to = to || this.length;
if (to < 0) {
to += this.length;
}
from = from || 0;
if (from < 0) {
from += this.length;
}
var ret = new Yallist$1();
if (to < from || to < 0) {
return ret;
}
if (from < 0) {
from = 0;
}
if (to > this.length) {
to = this.length;
}
for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
walker = walker.next;
}
for (; walker !== null && i < to; i++, walker = walker.next) {
ret.push(walker.value);
}
return ret;
};
Yallist$1.prototype.sliceReverse = function(from, to) {
to = to || this.length;
if (to < 0) {
to += this.length;
}
from = from || 0;
if (from < 0) {
from += this.length;
}
var ret = new Yallist$1();
if (to < from || to < 0) {
return ret;
}
if (from < 0) {
from = 0;
}
if (to > this.length) {
to = this.length;
}
for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
walker = walker.prev;
}
for (; walker !== null && i > from; i--, walker = walker.prev) {
ret.push(walker.value);
}
return ret;
};
Yallist$1.prototype.splice = function(start, deleteCount) {
if (start > this.length) {
start = this.length - 1;
}
if (start < 0) {
start = this.length + start;
}
for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
walker = walker.next;
}
var ret = [];
for (var i = 0; walker && i < deleteCount; i++) {
ret.push(walker.value);
walker = this.removeNode(walker);
}
if (walker === null) {
walker = this.tail;
}
if (walker !== this.head && walker !== this.tail) {
walker = walker.prev;
}
for (var i = 2; i < arguments.length; i++) {
walker = insert(this, walker, arguments[i]);
}
return ret;
};
Yallist$1.prototype.reverse = function() {
var head = this.head;
var tail = this.tail;
for (var walker = head; walker !== null; walker = walker.prev) {
var p = walker.prev;
walker.prev = walker.next;
walker.next = p;
}
this.head = tail;
this.tail = head;
return this;
};
function insert(self2, node, value) {
var inserted = node === self2.head ? new Node(value, null, node, self2) : new Node(value, node, node.next, self2);
if (inserted.next === null) {
self2.tail = inserted;
}
if (inserted.prev === null) {
self2.head = inserted;
}
self2.length++;
return inserted;
}
function push(self2, item) {
self2.tail = new Node(item, self2.tail, null, self2);
if (!self2.head) {
self2.head = self2.tail;
}
self2.length++;
}
function unshift(self2, item) {
self2.head = new Node(item, null, self2.head, self2);
if (!self2.tail) {
self2.tail = self2.head;
}
self2.length++;
}
function Node(value, prev, next, list) {
if (!(this instanceof Node)) {
return new Node(value, prev, next, list);
}
this.list = list;
this.value = value;
if (prev) {
prev.next = this;
this.prev = prev;
} else {
this.prev = null;
}
if (next) {
next.prev = this;
this.next = next;
} else {
this.next = null;
}
}
try {
require("./iterator.js")(Yallist$1);
} catch (er2) {
}
const Yallist = yallist;
const MAX = Symbol("max");
const LENGTH = Symbol("length");
const LENGTH_CALCULATOR = Symbol("lengthCalculator");
const ALLOW_STALE = Symbol("allowStale");
const MAX_AGE = Symbol("maxAge");
const DISPOSE = Symbol("dispose");
const NO_DISPOSE_ON_SET = Symbol("noDisposeOnSet");
const LRU_LIST = Symbol("lruList");
const CACHE = Symbol("cache");
const UPDATE_AGE_ON_GET = Symbol("updateAgeOnGet");
const naiveLength = () => 1;
class LRUCache$1 {
constructor(options) {
if (typeof options === "number")
options = { max: options };
if (!options)
options = {};
if (options.max && (typeof options.max !== "number" || options.max < 0))
throw new TypeError("max must be a non-negative number");
this[MAX] = options.max || Infinity;
const lc = options.length || naiveLength;
this[LENGTH_CALCULATOR] = typeof lc !== "function" ? naiveLength : lc;
this[ALLOW_STALE] = options.stale || false;
if (options.maxAge && typeof options.maxAge !== "number")
throw new TypeError("maxAge must be a number");
this[MAX_AGE] = options.maxAge || 0;
this[DISPOSE] = options.dispose;
this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;
this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;
this.reset();
}
set max(mL) {
if (typeof mL !== "number" || mL < 0)
throw new TypeError("max must be a non-negative number");
this[MAX] = mL || Infinity;
trim(this);
}
get max() {
return this[MAX];
}
set allowStale(allowStale) {
this[ALLOW_STALE] = !!allowStale;
}
get allowStale() {
return this[ALLOW_STALE];
}
set maxAge(mA) {
if (typeof mA !== "number")
throw new TypeError("maxAge must be a non-negative number");
this[MAX_AGE] = mA;
trim(this);
}
get maxAge() {
return this[MAX_AGE];
}
set lengthCalculator(lC) {
if (typeof lC !== "function")
lC = naiveLength;
if (lC !== this[LENGTH_CALCULATOR]) {
this[LENGTH_CALCULATOR] = lC;
this[LENGTH] = 0;
this[LRU_LIST].forEach((hit) => {
hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);
this[LENGTH] += hit.length;
});
}
trim(this);
}
get lengthCalculator() {
return this[LENGTH_CALCULATOR];
}
get length() {
return this[LENGTH];
}
get itemCount() {
return this[LRU_LIST].length;
}
rforEach(fn2, thisp) {
thisp = thisp || this;
for (let walker = this[LRU_LIST].tail; walker !== null; ) {
const prev = walker.prev;
forEachStep(this, fn2, walker, thisp);
walker = prev;
}
}
forEach(fn2, thisp) {
thisp = thisp || this;
for (let walker = this[LRU_LIST].head; walker !== null; ) {
const next = walker.next;
forEachStep(this, fn2, walker, thisp);
walker = next;
}
}
keys() {
return this[LRU_LIST].toArray().map((k) => k.key);
}
values() {
return this[LRU_LIST].toArray().map((k) => k.value);
}
reset() {
if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) {
this[LRU_LIST].forEach((hit) => this[DISPOSE](hit.key, hit.value));
}
this[CACHE] = /* @__PURE__ */ new Map();
this[LRU_LIST] = new Yallist();
this[LENGTH] = 0;
}
dump() {
return this[LRU_LIST].map((hit) => isStale(this, hit) ? false : {
k: hit.key,
v: hit.value,
e: hit.now + (hit.maxAge || 0)
}).toArray().filter((h) => h);
}
dumpLru() {
return this[LRU_LIST];
}
set(key, value, maxAge) {
maxAge = maxAge || this[MAX_AGE];
if (maxAge && typeof maxAge !== "number")
throw new TypeError("maxAge must be a number");
const now = maxAge ? Date.now() : 0;
const len = this[LENGTH_CALCULATOR](value, key);
if (this[CACHE].has(key)) {
if (len > this[MAX]) {
del(this, this[CACHE].get(key));
return false;
}
const node = this[CACHE].get(key);
const item = node.value;
if (this[DISPOSE]) {
if (!this[NO_DISPOSE_ON_SET])
this[DISPOSE](key, item.value);
}
item.now = now;
item.maxAge = maxAge;
item.value = value;
this[LENGTH] += len - item.length;
item.length = len;
this.get(key);
trim(this);
return true;
}
const hit = new Entry(key, value, len, now, maxAge);
if (hit.length > this[MAX]) {
if (this[DISPOSE])
this[DISPOSE](key, value);
return false;
}
this[LENGTH] += hit.length;
this[LRU_LIST].unshift(hit);
this[CACHE].set(key, this[LRU_LIST].head);
trim(this);
return true;
}
has(key) {
if (!this[CACHE].has(key))
return false;
const hit = this[CACHE].get(key).value;
return !isStale(this, hit);
}
get(key) {
return get(this, key, true);
}
peek(key) {
return get(this, key, false);
}
pop() {
const node = this[LRU_LIST].tail;
if (!node)
return null;
del(this, node);
return node.value;
}
del(key) {
del(this, this[CACHE].get(key));
}
load(arr) {
this.reset();
const now = Date.now();
for (let l = arr.length - 1; l >= 0; l--) {
const hit = arr[l];
const expiresAt = hit.e || 0;
if (expiresAt === 0)
this.set(hit.k, hit.v);
else {
const maxAge = expiresAt - now;
if (maxAge > 0) {
this.set(hit.k, hit.v, maxAge);
}
}
}
}
prune() {
this[CACHE].forEach((value, key) => get(this, key, false));
}
}
const get = (self2, key, doUse) => {
const node = self2[CACHE].get(key);
if (node) {
const hit = node.value;
if (isStale(self2, hit)) {
del(self2, node);
if (!self2[ALLOW_STALE])
return void 0;
} else {
if (doUse) {
if (self2[UPDATE_AGE_ON_GET])
node.value.now = Date.now();
self2[LRU_LIST].unshiftNode(node);
}
}
return hit.value;
}
};
const isStale = (self2, hit) => {
if (!hit || !hit.maxAge && !self2[MAX_AGE])
return false;
const diff = Date.now() - hit.now;
return hit.maxAge ? diff > hit.maxAge : self2[MAX_AGE] && diff > self2[MAX_AGE];
};
const trim = (self2) => {
if (self2[LENGTH] > self2[MAX]) {
for (let walker = self2[LRU_LIST].tail; self2[LENGTH] > self2[MAX] && walker !== null; ) {
const prev = walker.prev;
del(self2, walker);
walker = prev;
}
}
};
const del = (self2, node) => {
if (node) {
const hit = node.value;
if (self2[DISPOSE])
self2[DISPOSE](hit.key, hit.value);
self2[LENGTH] -= hit.length;
self2[CACHE].delete(hit.key);
self2[LRU_LIST].removeNode(node);
}
};
class Entry {
constructor(key, value, length, now, maxAge) {
this.key = key;
this.value = value;
this.length = length;
this.now = now;
this.maxAge = maxAge || 0;
}
}
const forEachStep = (self2, fn2, node, thisp) => {
let hit = node.value;
if (isStale(self2, hit)) {
del(self2, node);
if (!self2[ALLOW_STALE])
hit = void 0;
}
if (hit)
fn2.call(thisp, hit.value, hit.key, self2);
};
var lruCache = LRUCache$1;
var OnigString$1 = {};
Object.defineProperty(OnigString$1, "__esModule", { value: true });
class OnigString {
constructor(content) {
this.substring = (start, end) => {
return this.source.substring(start, end);
};
this.toString = (start, end) => {
return this.source;
};
if (typeof content !== "string") {
throw new TypeError("Argument must be a string");
}
this.source = content;
this._utf8Bytes = null;
this._utf8Indexes = null;
}
get utf8Bytes() {
if (!this._utf8Bytes) {
this.encode();
}
return this._utf8Bytes;
}
get utf8Indexes() {
if (!this._utf8Bytes) {
this.encode();
}
return this._utf8Indexes;
}
get content() {
return this.source;
}
get length() {
return this.source.length;
}
get hasMultiByteCharacters() {
return this.utf8Indexes !== null;
}
convertUtf8OffsetToUtf16(utf8Offset) {
if (utf8Offset < 0) {
return 0;
}
const utf8Array = this._utf8Bytes;
if (utf8Offset >= utf8Array.length - 1) {
return this.source.length;
}
const utf8OffsetMap = this.utf8Indexes;
if (utf8OffsetMap && utf8Offset >= this._mappingTableStartOffset) {
return findFirstInSorted(utf8OffsetMap, utf8Offset - this._mappingTableStartOffset) + this._mappingTableStartOffset;
}
return utf8Offset;
}
convertUtf16OffsetToUtf8(utf16Offset) {
if (utf16Offset < 0) {
return 0;
}
const utf8Array = this._utf8Bytes;
if (utf16Offset >= this.source.length) {
return utf8Array.length - 1;
}
const utf8OffsetMap = this.utf8Indexes;
if (utf8OffsetMap && utf16Offset >= this._mappingTableStartOffset) {
return utf8OffsetMap[utf16Offset - this._mappingTableStartOffset] + this._mappingTableStartOffset;
}
return utf16Offset;
}
encode() {
const str = this.source;
const n = str.length;
let utf16OffsetToUtf8;
let utf8Offset = 0;
let mappingTableStartOffset = 0;
function createOffsetTable(startOffset) {
const maxUtf8Len = (n - startOffset) * 3;
if (maxUtf8Len <= 255) {
utf16OffsetToUtf8 = new Uint8Array(n - startOffset);
} else if (maxUtf8Len <= 65535) {
utf16OffsetToUtf8 = new Uint16Array(n - startOffset);
} else {
utf16OffsetToUtf8 = new Uint32Array(n - startOffset);
}
mappingTableStartOffset = startOffset;
utf16OffsetToUtf8[utf8Offset++] = 0;
}
const u8view = new Uint8Array(n * 3 + 1);
let ptrHead = 0;
let i = 0;
while (i < str.length) {
let codepoint;
const c = str.charCodeAt(i);
if (utf16OffsetToUtf8) {
utf16OffsetToUtf8[utf8Offset++] = ptrHead - mappingTableStartOffset;
}
if (c < 55296 || c > 57343) {
codepoint = c;
} else if (c >= 56320) {
codepoint = 65533;
} else {
if (i === n - 1) {
codepoint = 65533;
} else {
const d2 = str.charCodeAt(i + 1);
if (56320 <= d2 && d2 <= 57343) {
if (!utf16OffsetToUtf8) {
createOffsetTable(i);
}
const a = c & 1023;
const b = d2 & 1023;
codepoint = 65536 + (a << 10) + b;
i += 1;
utf16OffsetToUtf8[utf8Offset++] = ptrHead - mappingTableStartOffset;
} else {
codepoint = 65533;
}
}
}
let bytesRequiredToEncode;
let offset;
if (codepoint <= 127) {
bytesRequiredToEncode = 1;
offset = 0;
} else if (codepoint <= 2047) {
bytesRequiredToEncode = 2;
offset = 192;
} else if (codepoint <= 65535) {
bytesRequiredToEncode = 3;
offset = 224;
} else {
bytesRequiredToEncode = 4;
offset = 240;
}
if (bytesRequiredToEncode === 1) {
u8view[ptrHead++] = codepoint;
} else {
if (!utf16OffsetToUtf8) {
createOffsetTable(ptrHead);
}
u8view[ptrHead++] = (codepoint >> 6 * --bytesRequiredToEncode) + offset;
while (bytesRequiredToEncode > 0) {
const temp = codepoint >> 6 * (bytesRequiredToEncode - 1);
u8view[ptrHead++] = 128 | temp & 63;
bytesRequiredToEncode -= 1;
}
}
i += 1;
}
const utf8 = u8view.slice(0, ptrHead + 1);
utf8[ptrHead] = 0;
this._utf8Bytes = utf8;
if (utf16OffsetToUtf8) {
this._utf8Indexes = utf16OffsetToUtf8;
this._mappingTableStartOffset = mappingTableStartOffset;
}
}
}
function findFirstInSorted(array, i) {
let low = 0;
let high = array.length;
if (high === 0) {
return 0;
}
while (low < high) {
const mid = Math.floor((low + high) / 2);
if (array[mid] >= i) {
high = mid;
} else {
low = mid + 1;
}
}
while (low > 0 && (low >= array.length || array[low] > i)) {
low--;
}
if (low > 0 && array[low] === array[low - 1]) {
low--;
}
return low;
}
OnigString$1.default = OnigString;
Object.defineProperty(OnigScanner$1, "__esModule", { value: true });
const LRUCache = lruCache;
const onigasmH_1$1 = onigasmH;
const OnigString_1$1 = OnigString$1;
function mallocAndWriteString(str) {
const ptr = onigasmH_1$1.onigasmH._malloc(str.utf8Bytes.length);
onigasmH_1$1.onigasmH.HEAPU8.set(str.utf8Bytes, ptr);
return ptr;
}
function convertUTF8BytesFromPtrToString(ptr) {
const chars = [];
let i = 0;
while (onigasmH_1$1.onigasmH.HEAPU8[ptr] !== 0) {
chars[i++] = onigasmH_1$1.onigasmH.HEAPU8[ptr++];
}
return chars.join();
}
const cache = new LRUCache({
dispose: (scanner, info) => {
const regexTPtrsPtr = onigasmH_1$1.onigasmH._malloc(info.regexTPtrs.length);
onigasmH_1$1.onigasmH.HEAPU8.set(info.regexTPtrs, regexTPtrsPtr);
const status = onigasmH_1$1.onigasmH._disposeCompiledPatterns(regexTPtrsPtr, scanner.patterns.length);
if (status !== 0) {
const errMessage = convertUTF8BytesFromPtrToString(onigasmH_1$1.onigasmH._getLastError());
throw new Error(errMessage);
}
onigasmH_1$1.onigasmH._free(regexTPtrsPtr);
},
max: 1e3
});
class OnigScanner {
constructor(patterns) {
if (onigasmH_1$1.onigasmH === null) {
throw new Error(`Onigasm has not been initialized, call loadWASM from 'onigasm' exports before using any other API`);
}
for (let i = 0; i < patterns.length; i++) {
const pattern = patterns[i];
if (typeof pattern !== "string") {
throw new TypeError(`First parameter to OnigScanner constructor must be array of (pattern) strings`);
}
}
this.sources = patterns.slice();
}
get patterns() {
return this.sources.slice();
}
findNextMatch(string, startPosition, callback) {
if (startPosition == null) {
startPosition = 0;
}
if (typeof startPosition === "function") {
callback = startPosition;
startPosition = 0;
}
try {
const match = this.findNextMatchSync(string, startPosition);
callback(null, match);
} catch (error) {
callback(error);
}
}
findNextMatchSync(string, startPosition) {
if (startPosition == null) {
startPosition = 0;
}
startPosition = this.convertToNumber(startPosition);
let onigNativeInfo = cache.get(this);
let status = 0;
if (!onigNativeInfo) {
const regexTAddrRecieverPtr = onigasmH_1$1.onigasmH._malloc(4);
const regexTPtrs = [];
for (let i = 0; i < this.sources.length; i++) {
const pattern = this.sources[i];
const patternStrPtr = mallocAndWriteString(new OnigString_1$1.default(pattern));
status = onigasmH_1$1.onigasmH._compilePattern(patternStrPtr, regexTAddrRecieverPtr);
if (status !== 0) {
const errMessage = convertUTF8BytesFromPtrToString(onigasmH_1$1.onigasmH._getLastError());
throw new Error(errMessage);
}
const regexTAddress = onigasmH_1$1.onigasmH.HEAP32[regexTAddrRecieverPtr / 4];
regexTPtrs.push(regexTAddress);
onigasmH_1$1.onigasmH._free(patternStrPtr);
}
onigNativeInfo = {
regexTPtrs: new Uint8Array(Uint32Array.from(regexTPtrs).buffer)
};
onigasmH_1$1.onigasmH._free(regexTAddrRecieverPtr);
cache.set(this, onigNativeInfo);
}
const onigString = string instanceof OnigString_1$1.default ? string : new OnigString_1$1.default(this.convertToString(string));
const strPtr = mallocAndWriteString(onigString);
const resultInfoReceiverPtr = onigasmH_1$1.onigasmH._malloc(8);
const regexTPtrsPtr = onigasmH_1$1.onigasmH._malloc(onigNativeInfo.regexTPtrs.length);
onigasmH_1$1.onigasmH.HEAPU8.set(onigNativeInfo.regexTPtrs, regexTPtrsPtr);
status = onigasmH_1$1.onigasmH._findBestMatch(
regexTPtrsPtr,
this.sources.length,
strPtr,
onigString.utf8Bytes.length - 1,
onigString.convertUtf16OffsetToUtf8(startPosition),
resultInfoReceiverPtr
);
if (status !== 0) {
const errMessage = convertUTF8BytesFromPtrToString(onigasmH_1$1.onigasmH._getLastError());
throw new Error(errMessage);
}
const [
bestPatternIdx,
encodedResultBeginAddress,
encodedResultLength
] = new Uint32Array(onigasmH_1$1.onigasmH.HEAPU32.buffer, resultInfoReceiverPtr, 3);
onigasmH_1$1.onigasmH._free(strPtr);
onigasmH_1$1.onigasmH._free(resultInfoReceiverPtr);
onigasmH_1$1.onigasmH._free(regexTPtrsPtr);
if (encodedResultLength > 0) {
const encodedResult = new Uint32Array(onigasmH_1$1.onigasmH.HEAPU32.buffer, encodedResultBeginAddress, encodedResultLength);
const captureIndices = [];
let i = 0;
let captureIdx = 0;
while (i < encodedResultLength) {
const index = captureIdx++;
let start = encodedResult[i++];
let end = encodedResult[i++];
if (onigString.hasMultiByteCharacters) {
start = onigString.convertUtf8OffsetToUtf16(start);
end = onigString.convertUtf8OffsetToUtf16(end);
}
captureIndices.push({
end,
index,
length: end - start,
start
});
}
onigasmH_1$1.onigasmH._free(encodedResultBeginAddress);
return {
captureIndices,
index: bestPatternIdx,
scanner: this
};
}
return null;
}
convertToString(value) {
if (value === void 0) {
return "undefined";
}
if (value === null) {
return "null";
}
if (value instanceof OnigString_1$1.default) {
return value.content;
}
return value.toString();
}
convertToNumber(value) {
value = parseInt(value, 10);
if (!isFinite(value)) {
value = 0;
}
value = Math.max(value, 0);
return value;
}
}
OnigScanner$1.OnigScanner = OnigScanner;
OnigScanner$1.default = OnigScanner;
Object.defineProperty(OnigRegExp$1, "__esModule", { value: true });
const OnigScanner_1$1 = OnigScanner$1;
class OnigRegExp {
constructor(source) {
this.source = source;
try {
this.scanner = new OnigScanner_1$1.default([this.source]);
} catch (error) {
}
}
searchSync(string, startPosition) {
let match;
if (startPosition == null) {
startPosition = 0;
}
match = this.scanner.findNextMatchSync(string, startPosition);
return this.captureIndicesForMatch(string, match);
}
search(string, startPosition, callback) {
if (startPosition == null) {
startPosition = 0;
}
if (typeof startPosition === "function") {
callback = startPosition;
startPosition = 0;
}
try {
const ret = this.searchSync(string, startPosition);
callback(null, ret);
} catch (error) {
callback(error);
}
}
testSync(string) {
if (typeof this.source === "boolean" || typeof string === "boolean") {
return this.source === string;
}
return this.searchSync(string) != null;
}
test(string, callback) {
if (typeof callback !== "function") {
callback = () => {
};
}
try {
callback(null, this.testSync(string));
} catch (error) {
callback(error);
}
}
captureIndicesForMatch(string, match) {
if (match != null) {
const { captureIndices } = match;
let capture;
string = this.scanner.convertToString(string);
for (let i = 0; i < captureIndices.length; i++) {
capture = captureIndices[i];
capture.match = string.slice(capture.start, capture.end);
}
return captureIndices;
} else {
return null;
}
}
}
OnigRegExp$1.default = OnigRegExp;
Object.defineProperty(lib, "__esModule", { value: true });
const onigasmH_1 = onigasmH;
var loadWASM = lib.loadWASM = onigasmH_1.loadWASM;
const OnigRegExp_1 = OnigRegExp$1;
lib.OnigRegExp = OnigRegExp_1.default;
const OnigScanner_1 = OnigScanner$1;
lib.OnigScanner = OnigScanner_1.default;
const OnigString_1 = OnigString$1;
lib.OnigString = OnigString_1.default;
var __extends = commonjsGlobal && commonjsGlobal.__extends || function() {
var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b) {
d2.__proto__ = b;
} || function(d2, b) {
for (var p in b)
if (b.hasOwnProperty(p))
d2[p] = b[p];
};
return function(d2, b) {
extendStatics(d2, b);
function __() {
this.constructor = d2;
}
d2.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
}();
Object.defineProperty(rule, "__esModule", { value: true });
var path = require$$0;
var utils_1$1 = utils;
var onigasm_1 = lib;
var HAS_BACK_REFERENCES = /\\(\d+)/;
var BACK_REFERENCING_END = /\\(\d+)/g;
var Rule = function() {
function Rule2($location, id, name, contentName) {
this.$location = $location;
this.id = id;
this._name = name || null;
this._nameIsCapturing = utils_1$1.RegexSource.hasCaptures(this._name);
this._contentName = contentName || null;
this._contentNameIsCapturing = utils_1$1.RegexSource.hasCaptures(this._contentName);
}
Object.defineProperty(Rule2.prototype, "debugName", {
get: function() {
return this.constructor.name + "#" + this.id + " @ " + path.basename(this.$location.filename) + ":" + this.$location.line;
},
enumerable: true,
configurable: true
});
Rule2.prototype.getName = function(lineText, captureIndices) {
if (!this._nameIsCapturing) {
return this._name;
}
return utils_1$1.RegexSource.replaceCaptures(this._name, lineText, captureIndices);
};
Rule2.prototype.getContentName = function(lineText, captureIndices) {
if (!this._contentNameIsCapturing) {
return this._contentName;
}
return utils_1$1.RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);
};
Rule2.prototype.collectPatternsRecursive = function(grammar2, out, isFirst) {
throw new Error("Implement me!");
};
Rule2.prototype.compile = function(grammar2, endRegexSource, allowA, allowG) {
throw new Error("Implement me!");
};
return Rule2;
}();
rule.Rule = Rule;
var CaptureRule = function(_super) {
__extends(CaptureRule2, _super);
function CaptureRule2($location, id, name, contentName, retokenizeCapturedWithRuleId) {
var _this = _super.call(this, $location, id, name, contentName) || this;
_this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;
return _this;
}
return CaptureRule2;
}(Rule);
rule.CaptureRule = CaptureRule;
var RegExpSource = function() {
function RegExpSource2(regExpSource, ruleId, handleAnchors) {
if (handleAnchors === void 0) {
handleAnchors = true;
}
if (handleAnchors) {
this._handleAnchors(regExpSource);
} else {
this.source = regExpSource;
this.hasAnchor = false;
}
if (this.hasAnchor) {
this._anchorCache = this._buildAnchorCache();
}
this.ruleId = ruleId;
this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);
}
RegExpSource2.prototype.clone = function() {
return new RegExpSource2(this.source, this.ruleId, true);
};
RegExpSource2.prototype.setSource = function(newSource) {
if (this.source === newSource) {
return;
}
this.source = newSource;
if (this.hasAnchor) {
this._anchorCache = this._buildAnchorCache();
}
};
RegExpSource2.prototype._handleAnchors = function(regExpSource) {
if (regExpSource) {
var pos = void 0, len = void 0, ch = void 0, nextCh = void 0, lastPushedPos = 0, output = [];
var hasAnchor = false;
for (pos = 0, len = regExpSource.length; pos < len; pos++) {
ch = regExpSource.charAt(pos);
if (ch === "\\") {
if (pos + 1 < len) {
nextCh = regExpSource.charAt(pos + 1);
if (nextCh === "z") {
output.push(regExpSource.substring(lastPushedPos, pos));
output.push("$(?!\\n)(?<!\\n)");
lastPushedPos = pos + 2;
} else if (nextCh === "A" || nextCh === "G") {
hasAnchor = true;
}
pos++;
}
}
}
this.hasAnchor = hasAnchor;
if (lastPushedPos === 0) {
this.source = regExpSource;
} else {
output.push(regExpSource.substring(lastPushedPos, len));
this.source = output.join("");
}
} else {
this.hasAnchor = false;
this.source = regExpSource;
}
};
RegExpSource2.prototype.resolveBackReferences = function(lineText, captureIndices) {
var capturedValues = captureIndices.map(function(capture) {
return lineText.substring(capture.start, capture.end);
});
BACK_REFERENCING_END.lastIndex = 0;
return this.source.replace(BACK_REFERENCING_END, function(match, g1) {
return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || "");
});
};
RegExpSource2.prototype._buildAnchorCache = function() {
var A0_G0_result = [];
var A0_G1_result = [];
var A1_G0_result = [];
var A1_G1_result = [];
var pos, len, ch, nextCh;
for (pos = 0, len = this.source.length; pos < len; pos++) {
ch = this.source.charAt(pos);
A0_G0_result[pos] = ch;
A0_G1_result[pos] = ch;
A1_G0_result[pos] = ch;
A1_G1_result[pos] = ch;
if (ch === "\\") {
if (pos + 1 < len) {
nextCh = this.source.charAt(pos + 1);
if (nextCh === "A") {
A0_G0_result[pos + 1] = "\uFFFF";
A0_G1_result[pos + 1] = "\uFFFF";
A1_G0_result[pos + 1] = "A";
A1_G1_result[pos + 1] = "A";
} else if (nextCh === "G") {
A0_G0_result[pos + 1] = "\uFFFF";
A0_G1_result[pos + 1] = "G";
A1_G0_result[pos + 1] = "\uFFFF";
A1_G1_result[pos + 1] = "G";
} else {
A0_G0_result[pos + 1] = nextCh;
A0_G1_result[pos + 1] = nextCh;
A1_G0_result[pos + 1] = nextCh;
A1_G1_result[pos + 1] = nextCh;
}
pos++;
}
}
}
return {
A0_G0: A0_G0_result.join(""),
A0_G1: A0_G1_result.join(""),
A1_G0: A1_G0_result.join(""),
A1_G1: A1_G1_result.join("")
};
};
RegExpSource2.prototype.resolveAnchors = function(allowA, allowG) {
if (!this.hasAnchor) {
return this.source;
}
if (allowA) {
if (allowG) {
return this._anchorCache.A1_G1;
} else {
return this._anchorCache.A1_G0;
}
} else {
if (allowG) {
return this._anchorCache.A0_G1;
} else {
return this._anchorCache.A0_G0;
}
}
};
return RegExpSource2;
}();
rule.RegExpSource = RegExpSource;
function createOnigScanner(sources) {
return new onigasm_1.OnigScanner(sources);
}
function createOnigString(sources) {
var r = new onigasm_1.OnigString(sources);
r.$str = sources;
return r;
}
rule.createOnigString = createOnigString;
function getString(str) {
return str.$str;
}
rule.getString = getString;
var RegExpSourceList = function() {
function RegExpSourceList2() {
this._items = [];
this._hasAnchors = false;
this._cached = null;
this._cachedSources = null;
this._anchorCache = {
A0_G0: null,
A0_G1: null,
A1_G0: null,
A1_G1: null
};
}
RegExpSourceList2.prototype.push = function(item) {
this._items.push(item);
this._hasAnchors = this._hasAnchors || item.hasAnchor;
};
RegExpSourceList2.prototype.unshift = function(item) {
this._items.unshift(item);
this._hasAnchors = this._hasAnchors || item.hasAnchor;
};
RegExpSourceList2.prototype.length = function() {
return this._items.length;
};
RegExpSourceList2.prototype.setSource = function(index, newSource) {
if (this._items[index].source !== newSource) {
this._cached = null;
this._anchorCache.A0_G0 = null;
this._anchorCache.A0_G1 = null;
this._anchorCache.A1_G0 = null;
this._anchorCache.A1_G1 = null;
this._items[index].setSource(newSource);
}
};
RegExpSourceList2.prototype.compile = function(grammar2, allowA, allowG) {
if (!this._hasAnchors) {
if (!this._cached) {
var regExps = this._items.map(function(e4) {
return e4.source;
});
this._cached = {
scanner: createOnigScanner(regExps),
rules: this._items.map(function(e4) {
return e4.ruleId;
}),
debugRegExps: regExps
};
}
return this._cached;
} else {
this._anchorCache = {
A0_G0: this._anchorCache.A0_G0 || (allowA === false && allowG === false ? this._resolveAnchors(allowA, allowG) : null),
A0_G1: this._anchorCache.A0_G1 || (allowA === false && allowG === true ? this._resolveAnchors(allowA, allowG) : null),
A1_G0: this._anchorCache.A1_G0 || (allowA === true && allowG === false ? this._resolveAnchors(allowA, allowG) : null),
A1_G1: this._anchorCache.A1_G1 || (allowA === true && allowG === true ? this._resolveAnchors(allowA, allowG) : null)
};
if (allowA) {
if (allowG) {
return this._anchorCache.A1_G1;
} else {
return this._anchorCache.A1_G0;
}
} else {
if (allowG) {
return this._anchorCache.A0_G1;
} else {
return this._anchorCache.A0_G0;
}
}
}
};
RegExpSourceList2.prototype._resolveAnchors = function(allowA, allowG) {
var regExps = this._items.map(function(e4) {
return e4.resolveAnchors(allowA, allowG);
});
return {
scanner: createOnigScanner(regExps),
rules: this._items.map(function(e4) {
return e4.ruleId;
}),
debugRegExps: regExps
};
};
return RegExpSourceList2;
}();
rule.RegExpSourceList = RegExpSourceList;
var MatchRule = function(_super) {
__extends(MatchRule2, _super);
function MatchRule2($location, id, name, match, captures) {
var _this = _super.call(this, $location, id, name, null) || this;
_this._match = new RegExpSource(match, _this.id);
_this.captures = captures;
_this._cachedCompiledPatterns = null;
return _this;
}
Object.defineProperty(MatchRule2.prototype, "debugMatchRegExp", {
get: function() {
return "" + this._match.source;
},
enumerable: true,
configurable: true
});
MatchRule2.prototype.collectPatternsRecursive = function(grammar2, out, isFirst) {
out.push(this._match);
};
MatchRule2.prototype.compile = function(grammar2, endRegexSource, allowA, allowG) {
if (!this._cachedCompiledPatterns) {
this._cachedCompiledPatterns = new RegExpSourceList();
this.collectPatternsRecursive(grammar2, this._cachedCompiledPatterns, true);
}
return this._cachedCompiledPatterns.compile(grammar2, allowA, allowG);
};
return MatchRule2;
}(Rule);
rule.MatchRule = MatchRule;
var IncludeOnlyRule = function(_super) {
__extends(IncludeOnlyRule2, _super);
function IncludeOnlyRule2($location, id, name, contentName, patterns) {
var _this = _super.call(this, $location, id, name, contentName) || this;
_this.patterns = patterns.patterns;
_this.hasMissingPatterns = patterns.hasMissingPatterns;
_this._cachedCompiledPatterns = null;
return _this;
}
IncludeOnlyRule2.prototype.collectPatternsRecursive = function(grammar2, out, isFirst) {
var i, len, rule2;
for (i = 0, len = this.patterns.length; i < len; i++) {
rule2 = grammar2.getRule(this.patterns[i]);
rule2.collectPatternsRecursive(grammar2, out, false);
}
};
IncludeOnlyRule2.prototype.compile = function(grammar2, endRegexSource, allowA, allowG) {
if (!this._cachedCompiledPatterns) {
this._cachedCompiledPatterns = new RegExpSourceList();
this.collectPatternsRecursive(grammar2, this._cachedCompiledPatterns, true);
}
return this._cachedCompiledPatterns.compile(grammar2, allowA, allowG);
};
return IncludeOnlyRule2;
}(Rule);
rule.IncludeOnlyRule = IncludeOnlyRule;
function escapeRegExpCharacters(value) {
return value.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, "\\$&");
}
var BeginEndRule = function(_super) {
__extends(BeginEndRule2, _super);
function BeginEndRule2($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {
var _this = _super.call(this, $location, id, name, contentName) || this;
_this._begin = new RegExpSource(begin, _this.id);
_this.beginCaptures = beginCaptures;
_this._end = new RegExpSource(end, -1);
_this.endHasBackReferences = _this._end.hasBackReferences;
_this.endCaptures = endCaptures;
_this.applyEndPatternLast = applyEndPatternLast || false;
_this.patterns = patterns.patterns;
_this.hasMissingPatterns = patterns.hasMissingPatterns;
_this._cachedCompiledPatterns = null;
return _this;
}
Object.defineProperty(BeginEndRule2.prototype, "debugBeginRegExp", {
get: function() {
return "" + this._begin.source;
},
enumerable: true,
configurable: true
});
Object.defineProperty(BeginEndRule2.prototype, "debugEndRegExp", {
get: function() {
return "" + this._end.source;
},
enumerable: true,
configurable: true
});
BeginEndRule2.prototype.getEndWithResolvedBackReferences = function(lineText, captureIndices) {
return this._end.resolveBackReferences(lineText, captureIndices);
};
BeginEndRule2.prototype.collectPatternsRecursive = function(grammar2, out, isFirst) {
if (isFirst) {
var i = void 0, len = void 0, rule2 = void 0;
for (i = 0, len = this.patterns.length; i < len; i++) {
rule2 = grammar2.getRule(this.patterns[i]);
rule2.collectPatternsRecursive(grammar2, out, false);
}
} else {
out.push(this._begin);
}
};
BeginEndRule2.prototype.compile = function(grammar2, endRegexSource, allowA, allowG) {
var precompiled = this._precompile(grammar2);
if (this._end.hasBackReferences) {
if (this.applyEndPatternLast) {
precompiled.setSource(precompiled.length() - 1, endRegexSource);
} else {
precompiled.setSource(0, endRegexSource);
}
}
return this._cachedCompiledPatterns.compile(grammar2, allowA, allowG);
};
BeginEndRule2.prototype._precompile = function(grammar2) {
if (!this._cachedCompiledPatterns) {
this._cachedCompiledPatterns = new RegExpSourceList();
this.collectPatternsRecursive(grammar2, this._cachedCompiledPatterns, true);
if (this.applyEndPatternLast) {
this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);
} else {
this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);
}
}
return this._cachedCompiledPatterns;
};
return BeginEndRule2;
}(Rule);
rule.BeginEndRule = BeginEndRule;
var BeginWhileRule = function(_super) {
__extends(BeginWhileRule2, _super);
function BeginWhileRule2($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {
var _this = _super.call(this, $location, id, name, contentName) || this;
_this._begin = new RegExpSource(begin, _this.id);
_this.beginCaptures = beginCaptures;
_this.whileCaptures = whileCaptures;
_this._while = new RegExpSource(_while, -2);
_this.whileHasBackReferences = _this._while.hasBackReferences;
_this.patterns = patterns.patterns;
_this.hasMissingPatterns = patterns.hasMissingPatterns;
_this._cachedCompiledPatterns = null;
_this._cachedCompiledWhilePatterns = null;
return _this;
}
BeginWhileRule2.prototype.getWhileWithResolvedBackReferences = function(lineText, captureIndices) {
return this._while.resolveBackReferences(lineText, captureIndices);
};
BeginWhileRule2.prototype.collectPatternsRecursive = function(grammar2, out, isFirst) {
if (isFirst) {
var i = void 0, len = void 0, rule2 = void 0;
for (i = 0, len = this.patterns.length; i < len; i++) {
rule2 = grammar2.getRule(this.patterns[i]);
rule2.collectPatternsRecursive(grammar2, out, false);
}
} else {
out.push(this._begin);
}
};
BeginWhileRule2.prototype.compile = function(grammar2, endRegexSource, allowA, allowG) {
this._precompile(grammar2);
return this._cachedCompiledPatterns.compile(grammar2, allowA, allowG);
};
BeginWhileRule2.prototype._precompile = function(grammar2) {
if (!this._cachedCompiledPatterns) {
this._cachedCompiledPatterns = new RegExpSourceList();
this.collectPatternsRecursive(grammar2, this._cachedCompiledPatterns, true);
}
};
BeginWhileRule2.prototype.compileWhile = function(grammar2, endRegexSource, allowA, allowG) {
this._precompileWhile(grammar2);
if (this._while.hasBackReferences) {
this._cachedCompiledWhilePatterns.setSource(0, endRegexSource);
}
return this._cachedCompiledWhilePatterns.compile(grammar2, allowA, allowG);
};
BeginWhileRule2.prototype._precompileWhile = function(grammar2) {
if (!this._cachedCompiledWhilePatterns) {
this._cachedCompiledWhilePatterns = new RegExpSourceList();
this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);
}
};
return BeginWhileRule2;
}(Rule);
rule.BeginWhileRule = BeginWhileRule;
var RuleFactory = function() {
function RuleFactory2() {
}
RuleFactory2.createCaptureRule = function(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {
return helper.registerRule(function(id) {
return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);
});
};
RuleFactory2.getCompiledRuleId = function(desc, helper, repository) {
if (!desc.id) {
helper.registerRule(function(id) {
desc.id = id;
if (desc.match) {
return new MatchRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory2._compileCaptures(desc.captures, helper, repository));
}
if (!desc.begin) {
if (desc.repository) {
repository = utils_1$1.mergeObjects({}, repository, desc.repository);
}
return new IncludeOnlyRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory2._compilePatterns(desc.patterns, helper, repository));
}
if (desc.while) {
return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory2._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory2._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory2._compilePatterns(desc.patterns, helper, repository));
}
return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory2._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory2._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory2._compilePatterns(desc.patterns, helper, repository));
});
}
return desc.id;
};
RuleFactory2._compileCaptures = function(captures, helper, repository) {
var r = [], numericCaptureId, maximumCaptureId, i, captureId;
if (captures) {
maximumCaptureId = 0;
for (captureId in captures) {
if (captureId === "$vscodeTextmateLocation") {
continue;
}
numericCaptureId = parseInt(captureId, 10);
if (numericCaptureId > maximumCaptureId) {
maximumCaptureId = numericCaptureId;
}
}
for (i = 0; i <= maximumCaptureId; i++) {
r[i] = null;
}
for (captureId in captures) {
if (captureId === "$vscodeTextmateLocation") {
continue;
}
numericCaptureId = parseInt(captureId, 10);
var retokenizeCapturedWithRuleId = 0;
if (captures[captureId].patterns) {
retokenizeCapturedWithRuleId = RuleFactory2.getCompiledRuleId(captures[captureId], helper, repository);
}
r[numericCaptureId] = RuleFactory2.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);
}
}
return r;
};
RuleFactory2._compilePatterns = function(patterns, helper, repository) {
var r = [], pattern, i, len, patternId, externalGrammar, rule2, skipRule;
if (patterns) {
for (i = 0, len = patterns.length; i < len; i++) {
pattern = patterns[i];
patternId = -1;
if (pattern.include) {
if (pattern.include.charAt(0) === "#") {
var localIncludedRule = repository[pattern.include.substr(1)];
if (localIncludedRule) {
patternId = RuleFactory2.getCompiledRuleId(localIncludedRule, helper, repository);
}
} else if (pattern.include === "$base" || pattern.include === "$self") {
patternId = RuleFactory2.getCompiledRuleId(repository[pattern.include], helper, repository);
} else {
var externalGrammarName = null, externalGrammarInclude = null, sharpIndex = pattern.include.indexOf("#");
if (sharpIndex >= 0) {
externalGrammarName = pattern.include.substring(0, sharpIndex);
externalGrammarInclude = pattern.include.substring(sharpIndex + 1);
} else {
externalGrammarName = pattern.include;
}
externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);
if (externalGrammar) {
if (externalGrammarInclude) {
var externalIncludedRule = externalGrammar.repository[externalGrammarInclude];
if (externalIncludedRule) {
patternId = RuleFactory2.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);
}
} else {
patternId = RuleFactory2.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);
}
}
}
} else {
patternId = RuleFactory2.getCompiledRuleId(pattern, helper, repository);
}
if (patternId !== -1) {
rule2 = helper.getRule(patternId);
skipRule = false;
if (rule2 instanceof IncludeOnlyRule || rule2 instanceof BeginEndRule || rule2 instanceof BeginWhileRule) {
if (rule2.hasMissingPatterns && rule2.patterns.length === 0) {
skipRule = true;
}
}
if (skipRule) {
continue;
}
r.push(patternId);
}
}
}
return {
patterns: r,
hasMissingPatterns: (patterns ? patterns.length : 0) !== r.length
};
};
return RuleFactory2;
}();
rule.RuleFactory = RuleFactory;
var matcher = {};
Object.defineProperty(matcher, "__esModule", { value: true });
function createMatchers(selector, matchesName) {
var results = [];
var tokenizer = newTokenizer(selector);
var token = tokenizer.next();
while (token !== null) {
var priority = 0;
if (token.length === 2 && token.charAt(1) === ":") {
switch (token.charAt(0)) {
case "R":
priority = 1;
break;
case "L":
priority = -1;
break;
default:
console.log("Unknown priority " + token + " in scope selector");
}
token = tokenizer.next();
}
var matcher2 = parseConjunction();
if (matcher2) {
results.push({ matcher: matcher2, priority });
}
if (token !== ",") {
break;
}
token = tokenizer.next();
}
return results;
function parseOperand() {
if (token === "-") {
token = tokenizer.next();
var expressionToNegate = parseOperand();
return function(matcherInput) {
return expressionToNegate && !expressionToNegate(matcherInput);
};
}
if (token === "(") {
token = tokenizer.next();
var expressionInParents = parseInnerExpression();
if (token === ")") {
token = tokenizer.next();
}
return expressionInParents;
}
if (isIdentifier(token)) {
var identifiers = [];
do {
identifiers.push(token);
token = tokenizer.next();
} while (isIdentifier(token));
return function(matcherInput) {
return matchesName(identifiers, matcherInput);
};
}
return null;
}
function parseConjunction() {
var matchers = [];
var matcher3 = parseOperand();
while (matcher3) {
matchers.push(matcher3);
matcher3 = parseOperand();
}
return function(matcherInput) {
return matchers.every(function(matcher4) {
return matcher4(matcherInput);
});
};
}
function parseInnerExpression() {
var matchers = [];
var matcher3 = parseConjunction();
while (matcher3) {
matchers.push(matcher3);
if (token === "|" || token === ",") {
do {
token = tokenizer.next();
} while (token === "|" || token === ",");
} else {
break;
}
matcher3 = parseConjunction();
}
return function(matcherInput) {
return matchers.some(function(matcher4) {
return matcher4(matcherInput);
});
};
}
}
matcher.createMatchers = createMatchers;
function isIdentifier(token) {
return token && token.match(/[\w\.:]+/);
}
function newTokenizer(input) {
var regex = /([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g;
var match = regex.exec(input);
return {
next: function() {
if (!match) {
return null;
}
var res = match[0];
match = regex.exec(input);
return res;
}
};
}
var debug = {};
Object.defineProperty(debug, "__esModule", { value: true });
debug.CAPTURE_METADATA = typeof process === "undefined" ? false : !!process.env["VSCODE_TEXTMATE_DEBUG"];
debug.IN_DEBUG_MODE = typeof process === "undefined" ? false : !!process.env["VSCODE_TEXTMATE_DEBUG"];
Object.defineProperty(grammar, "__esModule", { value: true });
var utils_1 = utils;
var rule_1 = rule;
var matcher_1 = matcher;
var debug_1$1 = debug;
function createGrammar(grammar2, initialLanguage, embeddedLanguages, tokenTypes, grammarRepository) {
return new Grammar(grammar2, initialLanguage, embeddedLanguages, tokenTypes, grammarRepository);
}
grammar.createGrammar = createGrammar;
function _extractIncludedScopesInPatterns(result, patterns) {
for (var i = 0, len = patterns.length; i < len; i++) {
if (Array.isArray(patterns[i].patterns)) {
_extractIncludedScopesInPatterns(result, patterns[i].patterns);
}
var include = patterns[i].include;
if (!include) {
continue;
}
if (include === "$base" || include === "$self") {
continue;
}
if (include.charAt(0) === "#") {
continue;
}
var sharpIndex = include.indexOf("#");
if (sharpIndex >= 0) {
result[include.substring(0, sharpIndex)] = true;
} else {
result[include] = true;
}
}
}
function _extractIncludedScopesInRepository(result, repository) {
for (var name in repository) {
var rule2 = repository[name];
if (rule2.patterns && Array.isArray(rule2.patterns)) {
_extractIncludedScopesInPatterns(result, rule2.patterns);
}
if (rule2.repository) {
_extractIncludedScopesInRepository(result, rule2.repository);
}
}
}
function collectIncludedScopes(result, grammar2) {
if (grammar2.patterns && Array.isArray(grammar2.patterns)) {
_extractIncludedScopesInPatterns(result, grammar2.patterns);
}
if (grammar2.repository) {
_extractIncludedScopesInRepository(result, grammar2.repository);
}
delete result[grammar2.scopeName];
}
grammar.collectIncludedScopes = collectIncludedScopes;
function scopesAreMatching(thisScopeName, scopeName) {
if (!thisScopeName) {
return false;
}
if (thisScopeName === scopeName) {
return true;
}
var len = scopeName.length;
return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === ".";
}
function nameMatcher(identifers, scopes) {
if (scopes.length < identifers.length) {
return false;
}
var lastIndex = 0;
return identifers.every(function(identifier) {
for (var i = lastIndex; i < scopes.length; i++) {
if (scopesAreMatching(scopes[i], identifier)) {
lastIndex = i + 1;
return true;
}
}
return false;
});
}
function collectInjections(result, selector, rule2, ruleFactoryHelper, grammar2) {
var matchers = matcher_1.createMatchers(selector, nameMatcher);
var ruleId = rule_1.RuleFactory.getCompiledRuleId(rule2, ruleFactoryHelper, grammar2.repository);
for (var _i2 = 0, matchers_1 = matchers; _i2 < matchers_1.length; _i2++) {
var matcher2 = matchers_1[_i2];
result.push({
matcher: matcher2.matcher,
ruleId,
grammar: grammar2,
priority: matcher2.priority
});
}
}
var ScopeMetadata = function() {
function ScopeMetadata2(scopeName, languageId, tokenType, themeData) {
this.scopeName = scopeName;
this.languageId = languageId;
this.tokenType = tokenType;
this.themeData = themeData;
}
return ScopeMetadata2;
}();
grammar.ScopeMetadata = ScopeMetadata;
var ScopeMetadataProvider = function() {
function ScopeMetadataProvider2(initialLanguage, themeProvider, embeddedLanguages) {
this._initialLanguage = initialLanguage;
this._themeProvider = themeProvider;
this.onDidChangeTheme();
this._embeddedLanguages = /* @__PURE__ */ Object.create(null);
if (embeddedLanguages) {
var scopes = Object.keys(embeddedLanguages);
for (var i = 0, len = scopes.length; i < len; i++) {
var scope = scopes[i];
var language = embeddedLanguages[scope];
if (typeof language !== "number" || language === 0) {
console.warn("Invalid embedded language found at scope " + scope + ": <<" + language + ">>");
continue;
}
this._embeddedLanguages[scope] = language;
}
}
var escapedScopes = Object.keys(this._embeddedLanguages).map(function(scopeName) {
return ScopeMetadataProvider2._escapeRegExpCharacters(scopeName);
});
if (escapedScopes.length === 0) {
this._embeddedLanguagesRegex = null;
} else {
escapedScopes.sort();
escapedScopes.reverse();
this._embeddedLanguagesRegex = new RegExp("^((" + escapedScopes.join(")|(") + "))($|\\.)", "");
}
}
ScopeMetadataProvider2.prototype.onDidChangeTheme = function() {
this._cache = /* @__PURE__ */ Object.create(null);
this._defaultMetaData = new ScopeMetadata("", this._initialLanguage, 0, [this._themeProvider.getDefaults()]);
};
ScopeMetadataProvider2.prototype.getDefaultMetadata = function() {
return this._defaultMetaData;
};
ScopeMetadataProvider2._escapeRegExpCharacters = function(value) {
return value.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, "\\$&");
};
ScopeMetadataProvider2.prototype.getMetadataForScope = function(scopeName) {
if (scopeName === null) {
return ScopeMetadataProvider2._NULL_SCOPE_METADATA;
}
var value = this._cache[scopeName];
if (value) {
return value;
}
value = this._doGetMetadataForScope(scopeName);
this._cache[scopeName] = value;
return value;
};
ScopeMetadataProvider2.prototype._doGetMetadataForScope = function(scopeName) {
var languageId = this._scopeToLanguage(scopeName);
var standardTokenType = this._toStandardTokenType(scopeName);
var themeData = this._themeProvider.themeMatch(scopeName);
return new ScopeMetadata(scopeName, languageId, standardTokenType, themeData);
};
ScopeMetadataProvider2.prototype._scopeToLanguage = function(scope) {
if (!scope) {
return 0;
}
if (!this._embeddedLanguagesRegex) {
return 0;
}
var m = scope.match(this._embeddedLanguagesRegex);
if (!m) {
return 0;
}
var language = this._embeddedLanguages[m[1]] || 0;
if (!language) {
return 0;
}
return language;
};
ScopeMetadataProvider2.prototype._toStandardTokenType = function(tokenType) {
var m = tokenType.match(ScopeMetadataProvider2.STANDARD_TOKEN_TYPE_REGEXP);
if (!m) {
return 0;
}
switch (m[1]) {
case "comment":
return 1;
case "string":
return 2;
case "regex":
return 4;
case "meta.embedded":
return 8;
}
throw new Error("Unexpected match for standard token type!");
};
ScopeMetadataProvider2._NULL_SCOPE_METADATA = new ScopeMetadata("", 0, 0, null);
ScopeMetadataProvider2.STANDARD_TOKEN_TYPE_REGEXP = /\b(comment|string|regex|meta\.embedded)\b/;
return ScopeMetadataProvider2;
}();
var Grammar = function() {
function Grammar2(grammar2, initialLanguage, embeddedLanguages, tokenTypes, grammarRepository) {
this._scopeMetadataProvider = new ScopeMetadataProvider(initialLanguage, grammarRepository, embeddedLanguages);
this._rootId = -1;
this._lastRuleId = 0;
this._ruleId2desc = [];
this._includedGrammars = {};
this._grammarRepository = grammarRepository;
this._grammar = initGrammar(grammar2, null);
this._tokenTypeMatchers = [];
if (tokenTypes) {
for (var _i2 = 0, _a2 = Object.keys(tokenTypes); _i2 < _a2.length; _i2++) {
var selector = _a2[_i2];
var matchers = matcher_1.createMatchers(selector, nameMatcher);
for (var _b2 = 0, matchers_2 = matchers; _b2 < matchers_2.length; _b2++) {
var matcher2 = matchers_2[_b2];
this._tokenTypeMatchers.push({
matcher: matcher2.matcher,
type: tokenTypes[selector]
});
}
}
}
}
Grammar2.prototype.onDidChangeTheme = function() {
this._scopeMetadataProvider.onDidChangeTheme();
};
Grammar2.prototype.getMetadataForScope = function(scope) {
return this._scopeMetadataProvider.getMetadataForScope(scope);
};
Grammar2.prototype.getInjections = function() {
var _this = this;
if (!this._injections) {
this._injections = [];
var rawInjections = this._grammar.injections;
if (rawInjections) {
for (var expression in rawInjections) {
collectInjections(this._injections, expression, rawInjections[expression], this, this._grammar);
}
}
if (this._grammarRepository) {
var injectionScopeNames = this._grammarRepository.injections(this._grammar.scopeName);
if (injectionScopeNames) {
injectionScopeNames.forEach(function(injectionScopeName) {
var injectionGrammar = _this.getExternalGrammar(injectionScopeName);
if (injectionGrammar) {
var selector = injectionGrammar.injectionSelector;
if (selector) {
collectInjections(_this._injections, selector, injectionGrammar, _this, injectionGrammar);
}
}
});
}
}
this._injections.sort(function(i1, i2) {
return i1.priority - i2.priority;
});
}
if (this._injections.length === 0) {
return this._injections;
}
return this._injections;
};
Grammar2.prototype.registerRule = function(factory) {
var id = ++this._lastRuleId;
var result = factory(id);
this._ruleId2desc[id] = result;
return result;
};
Grammar2.prototype.getRule = function(patternId) {
return this._ruleId2desc[patternId];
};
Grammar2.prototype.getExternalGrammar = function(scopeName, repository) {
if (this._includedGrammars[scopeName]) {
return this._includedGrammars[scopeName];
} else if (this._grammarRepository) {
var rawIncludedGrammar = this._grammarRepository.lookup(scopeName);
if (rawIncludedGrammar) {
this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);
return this._includedGrammars[scopeName];
}
}
};
Grammar2.prototype.tokenizeLine = function(lineText, prevState) {
var r = this._tokenize(lineText, prevState, false);
return {
tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),
ruleStack: r.ruleStack
};
};
Grammar2.prototype.tokenizeLine2 = function(lineText, prevState) {
var r = this._tokenize(lineText, prevState, true);
return {
tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),
ruleStack: r.ruleStack
};
};
Grammar2.prototype._tokenize = function(lineText, prevState, emitBinaryTokens) {
if (this._rootId === -1) {
this._rootId = rule_1.RuleFactory.getCompiledRuleId(this._grammar.repository.$self, this, this._grammar.repository);
}
var isFirstLine;
if (!prevState || prevState === StackElement.NULL) {
isFirstLine = true;
var rawDefaultMetadata = this._scopeMetadataProvider.getDefaultMetadata();
var defaultTheme = rawDefaultMetadata.themeData[0];
var defaultMetadata = StackElementMetadata.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, defaultTheme.fontStyle, defaultTheme.foreground, defaultTheme.background);
var rootScopeName = this.getRule(this._rootId).getName(null, null);
var rawRootMetadata = this._scopeMetadataProvider.getMetadataForScope(rootScopeName);
var rootMetadata = ScopeListElement.mergeMetadata(defaultMetadata, null, rawRootMetadata);
var scopeList = new ScopeListElement(null, rootScopeName, rootMetadata);
prevState = new StackElement(null, this._rootId, -1, null, scopeList, scopeList);
} else {
isFirstLine = false;
prevState.reset();
}
lineText = lineText + "\n";
var onigLineText = rule_1.createOnigString(lineText);
var lineLength = rule_1.getString(onigLineText).length;
var lineTokens = new LineTokens(emitBinaryTokens, lineText, this._tokenTypeMatchers);
var nextState = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens);
return {
lineLength,
lineTokens,
ruleStack: nextState
};
};
return Grammar2;
}();
grammar.Grammar = Grammar;
function initGrammar(grammar2, base) {
grammar2 = utils_1.clone(grammar2);
grammar2.repository = grammar2.repository || {};
grammar2.repository.$self = {
$vscodeTextmateLocation: grammar2.$vscodeTextmateLocation,
patterns: grammar2.patterns,
name: grammar2.scopeName
};
grammar2.repository.$base = base || grammar2.repository.$self;
return grammar2;
}
function handleCaptures(grammar2, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {
if (captures.length === 0) {
return;
}
var len = Math.min(captures.length, captureIndices.length);
var localStack = [];
var maxEnd = captureIndices[0].end;
for (var i = 0; i < len; i++) {
var captureRule = captures[i];
if (captureRule === null) {
continue;
}
var captureIndex = captureIndices[i];
if (captureIndex.length === 0) {
continue;
}
if (captureIndex.start > maxEnd) {
break;
}
while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {
lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);
localStack.pop();
}
if (localStack.length > 0) {
lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);
} else {
lineTokens.produce(stack, captureIndex.start);
}
if (captureRule.retokenizeCapturedWithRuleId) {
var scopeName = captureRule.getName(rule_1.getString(lineText), captureIndices);
var nameScopesList = stack.contentNameScopesList.push(grammar2, scopeName);
var contentName = captureRule.getContentName(rule_1.getString(lineText), captureIndices);
var contentNameScopesList = nameScopesList.push(grammar2, contentName);
var stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, null, nameScopesList, contentNameScopesList);
_tokenizeString(grammar2, rule_1.createOnigString(rule_1.getString(lineText).substring(0, captureIndex.end)), isFirstLine && captureIndex.start === 0, captureIndex.start, stackClone, lineTokens);
continue;
}
var captureRuleScopeName = captureRule.getName(rule_1.getString(lineText), captureIndices);
if (captureRuleScopeName !== null) {
var base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;
var captureRuleScopesList = base.push(grammar2, captureRuleScopeName);
localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));
}
}
while (localStack.length > 0) {
lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);
localStack.pop();
}
}
function debugCompiledRuleToString(ruleScanner) {
var r = [];
for (var i = 0, len = ruleScanner.rules.length; i < len; i++) {
r.push(" - " + ruleScanner.rules[i] + ": " + ruleScanner.debugRegExps[i]);
}
return r.join("\n");
}
function matchInjections(injections, grammar2, lineText, isFirstLine, linePos, stack, anchorPosition) {
var bestMatchRating = Number.MAX_VALUE;
var bestMatchCaptureIndices = null;
var bestMatchRuleId;
var bestMatchResultPriority = 0;
var scopes = stack.contentNameScopesList.generateScopes();
for (var i = 0, len = injections.length; i < len; i++) {
var injection = injections[i];
if (!injection.matcher(scopes)) {
continue;
}
var ruleScanner = grammar2.getRule(injection.ruleId).compile(grammar2, null, isFirstLine, linePos === anchorPosition);
var matchResult = ruleScanner.scanner.findNextMatchSync(lineText, linePos);
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" scanning for injections");
console.log(debugCompiledRuleToString(ruleScanner));
}
if (!matchResult) {
continue;
}
var matchRating = matchResult.captureIndices[0].start;
if (matchRating >= bestMatchRating) {
continue;
}
bestMatchRating = matchRating;
bestMatchCaptureIndices = matchResult.captureIndices;
bestMatchRuleId = ruleScanner.rules[matchResult.index];
bestMatchResultPriority = injection.priority;
if (bestMatchRating === linePos) {
break;
}
}
if (bestMatchCaptureIndices) {
return {
priorityMatch: bestMatchResultPriority === -1,
captureIndices: bestMatchCaptureIndices,
matchedRuleId: bestMatchRuleId
};
}
return null;
}
function matchRule(grammar2, lineText, isFirstLine, linePos, stack, anchorPosition) {
var rule2 = stack.getRule(grammar2);
var ruleScanner = rule2.compile(grammar2, stack.endRule, isFirstLine, linePos === anchorPosition);
var r = ruleScanner.scanner.findNextMatchSync(lineText, linePos);
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" scanning for");
console.log(debugCompiledRuleToString(ruleScanner));
}
if (r) {
return {
captureIndices: r.captureIndices,
matchedRuleId: ruleScanner.rules[r.index]
};
}
return null;
}
function matchRuleOrInjections(grammar2, lineText, isFirstLine, linePos, stack, anchorPosition) {
var matchResult = matchRule(grammar2, lineText, isFirstLine, linePos, stack, anchorPosition);
var injections = grammar2.getInjections();
if (injections.length === 0) {
return matchResult;
}
var injectionResult = matchInjections(injections, grammar2, lineText, isFirstLine, linePos, stack, anchorPosition);
if (!injectionResult) {
return matchResult;
}
if (!matchResult) {
return injectionResult;
}
var matchResultScore = matchResult.captureIndices[0].start;
var injectionResultScore = injectionResult.captureIndices[0].start;
if (injectionResultScore < matchResultScore || injectionResult.priorityMatch && injectionResultScore === matchResultScore) {
return injectionResult;
}
return matchResult;
}
function _checkWhileConditions(grammar2, lineText, isFirstLine, linePos, stack, lineTokens) {
var anchorPosition = -1;
var whileRules = [];
for (var node = stack; node; node = node.pop()) {
var nodeRule = node.getRule(grammar2);
if (nodeRule instanceof rule_1.BeginWhileRule) {
whileRules.push({
rule: nodeRule,
stack: node
});
}
}
for (var whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {
var ruleScanner = whileRule.rule.compileWhile(grammar2, whileRule.stack.endRule, isFirstLine, anchorPosition === linePos);
var r = ruleScanner.scanner.findNextMatchSync(lineText, linePos);
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" scanning for while rule");
console.log(debugCompiledRuleToString(ruleScanner));
}
if (r) {
var matchedRuleId = ruleScanner.rules[r.index];
if (matchedRuleId !== -2) {
stack = whileRule.stack.pop();
break;
}
if (r.captureIndices && r.captureIndices.length) {
lineTokens.produce(whileRule.stack, r.captureIndices[0].start);
handleCaptures(grammar2, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);
lineTokens.produce(whileRule.stack, r.captureIndices[0].end);
anchorPosition = r.captureIndices[0].end;
if (r.captureIndices[0].end > linePos) {
linePos = r.captureIndices[0].end;
isFirstLine = false;
}
}
} else {
stack = whileRule.stack.pop();
break;
}
}
return { stack, linePos, anchorPosition, isFirstLine };
}
function _tokenizeString(grammar2, lineText, isFirstLine, linePos, stack, lineTokens) {
var lineLength = rule_1.getString(lineText).length;
var STOP = false;
var whileCheckResult = _checkWhileConditions(grammar2, lineText, isFirstLine, linePos, stack, lineTokens);
stack = whileCheckResult.stack;
linePos = whileCheckResult.linePos;
isFirstLine = whileCheckResult.isFirstLine;
var anchorPosition = whileCheckResult.anchorPosition;
while (!STOP) {
scanNext();
}
function scanNext() {
if (debug_1$1.IN_DEBUG_MODE) {
console.log("");
console.log("@@scanNext: |" + rule_1.getString(lineText).replace(/\n$/, "\\n").substr(linePos) + "|");
}
var r = matchRuleOrInjections(grammar2, lineText, isFirstLine, linePos, stack, anchorPosition);
if (!r) {
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" no more matches.");
}
lineTokens.produce(stack, lineLength);
STOP = true;
return;
}
var captureIndices = r.captureIndices;
var matchedRuleId = r.matchedRuleId;
var hasAdvanced = captureIndices && captureIndices.length > 0 ? captureIndices[0].end > linePos : false;
if (matchedRuleId === -1) {
var poppedRule = stack.getRule(grammar2);
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" popping " + poppedRule.debugName + " - " + poppedRule.debugEndRegExp);
}
lineTokens.produce(stack, captureIndices[0].start);
stack = stack.setContentNameScopesList(stack.nameScopesList);
handleCaptures(grammar2, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);
lineTokens.produce(stack, captureIndices[0].end);
var popped = stack;
stack = stack.pop();
if (!hasAdvanced && popped.getEnterPos() === linePos) {
console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing");
stack = popped;
lineTokens.produce(stack, lineLength);
STOP = true;
return;
}
} else {
var _rule = grammar2.getRule(matchedRuleId);
lineTokens.produce(stack, captureIndices[0].start);
var beforePush = stack;
var scopeName = _rule.getName(rule_1.getString(lineText), captureIndices);
var nameScopesList = stack.contentNameScopesList.push(grammar2, scopeName);
stack = stack.push(matchedRuleId, linePos, null, nameScopesList, nameScopesList);
if (_rule instanceof rule_1.BeginEndRule) {
var pushedRule = _rule;
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" pushing " + pushedRule.debugName + " - " + pushedRule.debugBeginRegExp);
}
handleCaptures(grammar2, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);
lineTokens.produce(stack, captureIndices[0].end);
anchorPosition = captureIndices[0].end;
var contentName = pushedRule.getContentName(rule_1.getString(lineText), captureIndices);
var contentNameScopesList = nameScopesList.push(grammar2, contentName);
stack = stack.setContentNameScopesList(contentNameScopesList);
if (pushedRule.endHasBackReferences) {
stack = stack.setEndRule(pushedRule.getEndWithResolvedBackReferences(rule_1.getString(lineText), captureIndices));
}
if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {
console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing");
stack = stack.pop();
lineTokens.produce(stack, lineLength);
STOP = true;
return;
}
} else if (_rule instanceof rule_1.BeginWhileRule) {
var pushedRule = _rule;
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" pushing " + pushedRule.debugName);
}
handleCaptures(grammar2, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);
lineTokens.produce(stack, captureIndices[0].end);
anchorPosition = captureIndices[0].end;
var contentName = pushedRule.getContentName(rule_1.getString(lineText), captureIndices);
var contentNameScopesList = nameScopesList.push(grammar2, contentName);
stack = stack.setContentNameScopesList(contentNameScopesList);
if (pushedRule.whileHasBackReferences) {
stack = stack.setEndRule(pushedRule.getWhileWithResolvedBackReferences(rule_1.getString(lineText), captureIndices));
}
if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {
console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing");
stack = stack.pop();
lineTokens.produce(stack, lineLength);
STOP = true;
return;
}
} else {
var matchingRule = _rule;
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" matched " + matchingRule.debugName + " - " + matchingRule.debugMatchRegExp);
}
handleCaptures(grammar2, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);
lineTokens.produce(stack, captureIndices[0].end);
stack = stack.pop();
if (!hasAdvanced) {
console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping");
stack = stack.safePop();
lineTokens.produce(stack, lineLength);
STOP = true;
return;
}
}
}
if (captureIndices[0].end > linePos) {
linePos = captureIndices[0].end;
isFirstLine = false;
}
}
return stack;
}
var StackElementMetadata = function() {
function StackElementMetadata2() {
}
StackElementMetadata2.toBinaryStr = function(metadata) {
var r = metadata.toString(2);
while (r.length < 32) {
r = "0" + r;
}
return r;
};
StackElementMetadata2.printMetadata = function(metadata) {
var languageId = StackElementMetadata2.getLanguageId(metadata);
var tokenType = StackElementMetadata2.getTokenType(metadata);
var fontStyle = StackElementMetadata2.getFontStyle(metadata);
var foreground = StackElementMetadata2.getForeground(metadata);
var background = StackElementMetadata2.getBackground(metadata);
console.log({
languageId,
tokenType,
fontStyle,
foreground,
background
});
};
StackElementMetadata2.getLanguageId = function(metadata) {
return (metadata & 255) >>> 0;
};
StackElementMetadata2.getTokenType = function(metadata) {
return (metadata & 1792) >>> 8;
};
StackElementMetadata2.getFontStyle = function(metadata) {
return (metadata & 14336) >>> 11;
};
StackElementMetadata2.getForeground = function(metadata) {
return (metadata & 8372224) >>> 14;
};
StackElementMetadata2.getBackground = function(metadata) {
return (metadata & 4286578688) >>> 23;
};
StackElementMetadata2.set = function(metadata, languageId, tokenType, fontStyle, foreground, background) {
var _languageId = StackElementMetadata2.getLanguageId(metadata);
var _tokenType = StackElementMetadata2.getTokenType(metadata);
var _fontStyle = StackElementMetadata2.getFontStyle(metadata);
var _foreground = StackElementMetadata2.getForeground(metadata);
var _background = StackElementMetadata2.getBackground(metadata);
if (languageId !== 0) {
_languageId = languageId;
}
if (tokenType !== 0) {
_tokenType = tokenType === 8 ? 0 : tokenType;
}
if (fontStyle !== -1) {
_fontStyle = fontStyle;
}
if (foreground !== 0) {
_foreground = foreground;
}
if (background !== 0) {
_background = background;
}
return (_languageId << 0 | _tokenType << 8 | _fontStyle << 11 | _foreground << 14 | _background << 23) >>> 0;
};
return StackElementMetadata2;
}();
grammar.StackElementMetadata = StackElementMetadata;
var ScopeListElement = function() {
function ScopeListElement2(parent, scope, metadata) {
this.parent = parent;
this.scope = scope;
this.metadata = metadata;
}
ScopeListElement2._equals = function(a, b) {
do {
if (a === b) {
return true;
}
if (a.scope !== b.scope || a.metadata !== b.metadata) {
return false;
}
a = a.parent;
b = b.parent;
if (!a && !b) {
return true;
}
if (!a || !b) {
return false;
}
} while (true);
};
ScopeListElement2.prototype.equals = function(other) {
return ScopeListElement2._equals(this, other);
};
ScopeListElement2._matchesScope = function(scope, selector, selectorWithDot) {
return selector === scope || scope.substring(0, selectorWithDot.length) === selectorWithDot;
};
ScopeListElement2._matches = function(target, parentScopes) {
if (parentScopes === null) {
return true;
}
var len = parentScopes.length;
var index = 0;
var selector = parentScopes[index];
var selectorWithDot = selector + ".";
while (target) {
if (this._matchesScope(target.scope, selector, selectorWithDot)) {
index++;
if (index === len) {
return true;
}
selector = parentScopes[index];
selectorWithDot = selector + ".";
}
target = target.parent;
}
return false;
};
ScopeListElement2.mergeMetadata = function(metadata, scopesList, source) {
if (source === null) {
return metadata;
}
var fontStyle = -1;
var foreground = 0;
var background = 0;
if (source.themeData !== null) {
for (var i = 0, len = source.themeData.length; i < len; i++) {
var themeData = source.themeData[i];
if (this._matches(scopesList, themeData.parentScopes)) {
fontStyle = themeData.fontStyle;
foreground = themeData.foreground;
background = themeData.background;
break;
}
}
}
return StackElementMetadata.set(metadata, source.languageId, source.tokenType, fontStyle, foreground, background);
};
ScopeListElement2._push = function(target, grammar2, scopes) {
for (var i = 0, len = scopes.length; i < len; i++) {
var scope = scopes[i];
var rawMetadata = grammar2.getMetadataForScope(scope);
var metadata = ScopeListElement2.mergeMetadata(target.metadata, target, rawMetadata);
target = new ScopeListElement2(target, scope, metadata);
}
return target;
};
ScopeListElement2.prototype.push = function(grammar2, scope) {
if (scope === null) {
return this;
}
if (scope.indexOf(" ") >= 0) {
return ScopeListElement2._push(this, grammar2, scope.split(/ /g));
}
return ScopeListElement2._push(this, grammar2, [scope]);
};
ScopeListElement2._generateScopes = function(scopesList) {
var result = [], resultLen = 0;
while (scopesList) {
result[resultLen++] = scopesList.scope;
scopesList = scopesList.parent;
}
result.reverse();
return result;
};
ScopeListElement2.prototype.generateScopes = function() {
return ScopeListElement2._generateScopes(this);
};
return ScopeListElement2;
}();
grammar.ScopeListElement = ScopeListElement;
var StackElement = function() {
function StackElement2(parent, ruleId, enterPos, endRule, nameScopesList, contentNameScopesList) {
this.parent = parent;
this.depth = this.parent ? this.parent.depth + 1 : 1;
this.ruleId = ruleId;
this._enterPos = enterPos;
this.endRule = endRule;
this.nameScopesList = nameScopesList;
this.contentNameScopesList = contentNameScopesList;
}
StackElement2._structuralEquals = function(a, b) {
do {
if (a === b) {
return true;
}
if (a.depth !== b.depth || a.ruleId !== b.ruleId || a.endRule !== b.endRule) {
return false;
}
a = a.parent;
b = b.parent;
if (!a && !b) {
return true;
}
if (!a || !b) {
return false;
}
} while (true);
};
StackElement2._equals = function(a, b) {
if (a === b) {
return true;
}
if (!this._structuralEquals(a, b)) {
return false;
}
return a.contentNameScopesList.equals(b.contentNameScopesList);
};
StackElement2.prototype.clone = function() {
return this;
};
StackElement2.prototype.equals = function(other) {
if (other === null) {
return false;
}
return StackElement2._equals(this, other);
};
StackElement2._reset = function(el) {
while (el) {
el._enterPos = -1;
el = el.parent;
}
};
StackElement2.prototype.reset = function() {
StackElement2._reset(this);
};
StackElement2.prototype.pop = function() {
return this.parent;
};
StackElement2.prototype.safePop = function() {
if (this.parent) {
return this.parent;
}
return this;
};
StackElement2.prototype.push = function(ruleId, enterPos, endRule, nameScopesList, contentNameScopesList) {
return new StackElement2(this, ruleId, enterPos, endRule, nameScopesList, contentNameScopesList);
};
StackElement2.prototype.getEnterPos = function() {
return this._enterPos;
};
StackElement2.prototype.getRule = function(grammar2) {
return grammar2.getRule(this.ruleId);
};
StackElement2.prototype._writeString = function(res, outIndex) {
if (this.parent) {
outIndex = this.parent._writeString(res, outIndex);
}
res[outIndex++] = "(" + this.ruleId + ", TODO-" + this.nameScopesList + ", TODO-" + this.contentNameScopesList + ")";
return outIndex;
};
StackElement2.prototype.toString = function() {
var r = [];
this._writeString(r, 0);
return "[" + r.join(",") + "]";
};
StackElement2.prototype.setContentNameScopesList = function(contentNameScopesList) {
if (this.contentNameScopesList === contentNameScopesList) {
return this;
}
return this.parent.push(this.ruleId, this._enterPos, this.endRule, this.nameScopesList, contentNameScopesList);
};
StackElement2.prototype.setEndRule = function(endRule) {
if (this.endRule === endRule) {
return this;
}
return new StackElement2(this.parent, this.ruleId, this._enterPos, endRule, this.nameScopesList, this.contentNameScopesList);
};
StackElement2.prototype.hasSameRuleAs = function(other) {
return this.ruleId === other.ruleId;
};
StackElement2.NULL = new StackElement2(null, 0, 0, null, null, null);
return StackElement2;
}();
grammar.StackElement = StackElement;
var LocalStackElement = function() {
function LocalStackElement2(scopes, endPos) {
this.scopes = scopes;
this.endPos = endPos;
}
return LocalStackElement2;
}();
grammar.LocalStackElement = LocalStackElement;
var LineTokens = function() {
function LineTokens2(emitBinaryTokens, lineText, tokenTypeOverrides) {
this._emitBinaryTokens = emitBinaryTokens;
this._tokenTypeOverrides = tokenTypeOverrides;
if (debug_1$1.IN_DEBUG_MODE) {
this._lineText = lineText;
}
if (this._emitBinaryTokens) {
this._binaryTokens = [];
} else {
this._tokens = [];
}
this._lastTokenEndIndex = 0;
}
LineTokens2.prototype.produce = function(stack, endIndex) {
this.produceFromScopes(stack.contentNameScopesList, endIndex);
};
LineTokens2.prototype.produceFromScopes = function(scopesList, endIndex) {
if (this._lastTokenEndIndex >= endIndex) {
return;
}
if (this._emitBinaryTokens) {
var metadata = scopesList.metadata;
for (var _i2 = 0, _a2 = this._tokenTypeOverrides; _i2 < _a2.length; _i2++) {
var tokenType = _a2[_i2];
if (tokenType.matcher(scopesList.generateScopes())) {
metadata = StackElementMetadata.set(metadata, 0, toTemporaryType(tokenType.type), -1, 0, 0);
}
}
if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {
this._lastTokenEndIndex = endIndex;
return;
}
this._binaryTokens.push(this._lastTokenEndIndex);
this._binaryTokens.push(metadata);
this._lastTokenEndIndex = endIndex;
return;
}
var scopes = scopesList.generateScopes();
if (debug_1$1.IN_DEBUG_MODE) {
console.log(" token: |" + this._lineText.substring(this._lastTokenEndIndex, endIndex).replace(/\n$/, "\\n") + "|");
for (var k = 0; k < scopes.length; k++) {
console.log(" * " + scopes[k]);
}
}
this._tokens.push({
startIndex: this._lastTokenEndIndex,
endIndex,
scopes
});
this._lastTokenEndIndex = endIndex;
};
LineTokens2.prototype.getResult = function(stack, lineLength) {
if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {
this._tokens.pop();
}
if (this._tokens.length === 0) {
this._lastTokenEndIndex = -1;
this.produce(stack, lineLength);
this._tokens[this._tokens.length - 1].startIndex = 0;
}
return this._tokens;
};
LineTokens2.prototype.getBinaryResult = function(stack, lineLength) {
if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {
this._binaryTokens.pop();
this._binaryTokens.pop();
}
if (this._binaryTokens.length === 0) {
this._lastTokenEndIndex = -1;
this.produce(stack, lineLength);
this._binaryTokens[this._binaryTokens.length - 2] = 0;
}
var result = new Uint32Array(this._binaryTokens.length);
for (var i = 0, len = this._binaryTokens.length; i < len; i++) {
result[i] = this._binaryTokens[i];
}
return result;
};
return LineTokens2;
}();
function toTemporaryType(standardType) {
switch (standardType) {
case 4:
return 4;
case 2:
return 2;
case 1:
return 1;
case 0:
default:
return 8;
}
}
Object.defineProperty(registry, "__esModule", { value: true });
var grammar_1$1 = grammar;
var SyncRegistry = function() {
function SyncRegistry2(theme2) {
this._theme = theme2;
this._grammars = {};
this._rawGrammars = {};
this._injectionGrammars = {};
}
SyncRegistry2.prototype.setTheme = function(theme2) {
var _this = this;
this._theme = theme2;
Object.keys(this._grammars).forEach(function(scopeName) {
var grammar2 = _this._grammars[scopeName];
grammar2.onDidChangeTheme();
});
};
SyncRegistry2.prototype.getColorMap = function() {
return this._theme.getColorMap();
};
SyncRegistry2.prototype.addGrammar = function(grammar2, injectionScopeNames) {
this._rawGrammars[grammar2.scopeName] = grammar2;
var includedScopes = {};
grammar_1$1.collectIncludedScopes(includedScopes, grammar2);
if (injectionScopeNames) {
this._injectionGrammars[grammar2.scopeName] = injectionScopeNames;
injectionScopeNames.forEach(function(scopeName) {
includedScopes[scopeName] = true;
});
}
return Object.keys(includedScopes);
};
SyncRegistry2.prototype.lookup = function(scopeName) {
return this._rawGrammars[scopeName];
};
SyncRegistry2.prototype.injections = function(targetScope) {
return this._injectionGrammars[targetScope];
};
SyncRegistry2.prototype.getDefaults = function() {
return this._theme.getDefaults();
};
SyncRegistry2.prototype.themeMatch = function(scopeName) {
return this._theme.match(scopeName);
};
SyncRegistry2.prototype.grammarForScopeName = function(scopeName, initialLanguage, embeddedLanguages, tokenTypes) {
if (!this._grammars[scopeName]) {
var rawGrammar = this._rawGrammars[scopeName];
if (!rawGrammar) {
return null;
}
this._grammars[scopeName] = grammar_1$1.createGrammar(rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, this);
}
return this._grammars[scopeName];
};
return SyncRegistry2;
}();
registry.SyncRegistry = SyncRegistry;
var grammarReader = {};
var main = {};
main.__esModule = true;
main.parse = main.parseWithLocation = void 0;
function parseWithLocation(content, filename, locationKeyName) {
return _parse(content, filename, locationKeyName);
}
main.parseWithLocation = parseWithLocation;
function parse$1(content) {
return _parse(content, null, null);
}
main.parse = parse$1;
function _parse(content, filename, locationKeyName) {
var len = content.length;
var pos = 0;
var line = 1;
var char = 0;
if (len > 0 && content.charCodeAt(0) === 65279) {
pos = 1;
}
function advancePosBy(by) {
if (locationKeyName === null) {
pos = pos + by;
} else {
while (by > 0) {
var chCode2 = content.charCodeAt(pos);
if (chCode2 === 10) {
pos++;
line++;
char = 0;
} else {
pos++;
char++;
}
by--;
}
}
}
function advancePosTo(to) {
if (locationKeyName === null) {
pos = to;
} else {
advancePosBy(to - pos);
}
}
function skipWhitespace() {
while (pos < len) {
var chCode2 = content.charCodeAt(pos);
if (chCode2 !== 32 && chCode2 !== 9 && chCode2 !== 13 && chCode2 !== 10) {
break;
}
advancePosBy(1);
}
}
function advanceIfStartsWith(str) {
if (content.substr(pos, str.length) === str) {
advancePosBy(str.length);
return true;
}
return false;
}
function advanceUntil(str) {
var nextOccurence = content.indexOf(str, pos);
if (nextOccurence !== -1) {
advancePosTo(nextOccurence + str.length);
} else {
advancePosTo(len);
}
}
function captureUntil(str) {
var nextOccurence = content.indexOf(str, pos);
if (nextOccurence !== -1) {
var r = content.substring(pos, nextOccurence);
advancePosTo(nextOccurence + str.length);
return r;
} else {
var r = content.substr(pos);
advancePosTo(len);
return r;
}
}
var state = 0;
var cur = null;
var stateStack = [];
var objStack = [];
var curKey = null;
function pushState(newState, newCur) {
stateStack.push(state);
objStack.push(cur);
state = newState;
cur = newCur;
}
function popState() {
if (stateStack.length === 0) {
return fail("illegal state stack");
}
state = stateStack.pop();
cur = objStack.pop();
}
function fail(msg) {
throw new Error("Near offset " + pos + ": " + msg + " ~~~" + content.substr(pos, 50) + "~~~");
}
var dictState = {
enterDict: function() {
if (curKey === null) {
return fail("missing <key>");
}
var newDict = {};
if (locationKeyName !== null) {
newDict[locationKeyName] = {
filename,
line,
char
};
}
cur[curKey] = newDict;
curKey = null;
pushState(1, newDict);
},
enterArray: function() {
if (curKey === null) {
return fail("missing <key>");
}
var newArr = [];
cur[curKey] = newArr;
curKey = null;
pushState(2, newArr);
}
};
var arrState = {
enterDict: function() {
var newDict = {};
if (locationKeyName !== null) {
newDict[locationKeyName] = {
filename,
line,
char
};
}
cur.push(newDict);
pushState(1, newDict);
},
enterArray: function() {
var newArr = [];
cur.push(newArr);
pushState(2, newArr);
}
};
function enterDict() {
if (state === 1) {
dictState.enterDict();
} else if (state === 2) {
arrState.enterDict();
} else {
cur = {};
if (locationKeyName !== null) {
cur[locationKeyName] = {
filename,
line,
char
};
}
pushState(1, cur);
}
}
function leaveDict() {
if (state === 1) {
popState();
} else if (state === 2) {
return fail("unexpected </dict>");
} else {
return fail("unexpected </dict>");
}
}
function enterArray() {
if (state === 1) {
dictState.enterArray();
} else if (state === 2) {
arrState.enterArray();
} else {
cur = [];
pushState(2, cur);
}
}
function leaveArray() {
if (state === 1) {
return fail("unexpected </array>");
} else if (state === 2) {
popState();
} else {
return fail("unexpected </array>");
}
}
function acceptKey(val) {
if (state === 1) {
if (curKey !== null) {
return fail("too many <key>");
}
curKey = val;
} else if (state === 2) {
return fail("unexpected <key>");
} else {
return fail("unexpected <key>");
}
}
function acceptString(val) {
if (state === 1) {
if (curKey === null) {
return fail("missing <key>");
}
cur[curKey] = val;
curKey = null;
} else if (state === 2) {
cur.push(val);
} else {
cur = val;
}
}
function acceptReal(val) {
if (isNaN(val)) {
return fail("cannot parse float");
}
if (state === 1) {
if (curKey === null) {
return fail("missing <key>");
}
cur[curKey] = val;
curKey = null;
} else if (state === 2) {
cur.push(val);
} else {
cur = val;
}
}
function acceptInteger(val) {
if (isNaN(val)) {
return fail("cannot parse integer");
}
if (state === 1) {
if (curKey === null) {
return fail("missing <key>");
}
cur[curKey] = val;
curKey = null;
} else if (state === 2) {
cur.push(val);
} else {
cur = val;
}
}
function acceptDate(val) {
if (state === 1) {
if (curKey === null) {
return fail("missing <key>");
}
cur[curKey] = val;
curKey = null;
} else if (state === 2) {
cur.push(val);
} else {
cur = val;
}
}
function acceptData(val) {
if (state === 1) {
if (curKey === null) {
return fail("missing <key>");
}
cur[curKey] = val;
curKey = null;
} else if (state === 2) {
cur.push(val);
} else {
cur = val;
}
}
function acceptBool(val) {
if (state === 1) {
if (curKey === null) {
return fail("missing <key>");
}
cur[curKey] = val;
curKey = null;
} else if (state === 2) {
cur.push(val);
} else {
cur = val;
}
}
function escapeVal(str) {
return str.replace(/&#([0-9]+);/g, function(_2, m0) {
return String.fromCodePoint(parseInt(m0, 10));
}).replace(/&#x([0-9a-f]+);/g, function(_2, m0) {
return String.fromCodePoint(parseInt(m0, 16));
}).replace(/&|<|>|"|'/g, function(_2) {
switch (_2) {
case "&":
return "&";
case "<":
return "<";
case ">":
return ">";
case """:
return '"';
case "'":
return "'";
}
return _2;
});
}
function parseOpenTag() {
var r = captureUntil(">");
var isClosed = false;
if (r.charCodeAt(r.length - 1) === 47) {
isClosed = true;
r = r.substring(0, r.length - 1);
}
return {
name: r.trim(),
isClosed
};
}
function parseTagValue(tag2) {
if (tag2.isClosed) {
return "";
}
var val = captureUntil("</");
advanceUntil(">");
return escapeVal(val);
}
while (pos < len) {
skipWhitespace();
if (pos >= len) {
break;
}
var chCode = content.charCodeAt(pos);
advancePosBy(1);
if (chCode !== 60) {
return fail("expected <");
}
if (pos >= len) {
return fail("unexpected end of input");
}
var peekChCode = content.charCodeAt(pos);
if (peekChCode === 63) {
advancePosBy(1);
advanceUntil("?>");
continue;
}
if (peekChCode === 33) {
advancePosBy(1);
if (advanceIfStartsWith("--")) {
advanceUntil("-->");
continue;
}
advanceUntil(">");
continue;
}
if (peekChCode === 47) {
advancePosBy(1);
skipWhitespace();
if (advanceIfStartsWith("plist")) {
advanceUntil(">");
continue;
}
if (advanceIfStartsWith("dict")) {
advanceUntil(">");
leaveDict();
continue;
}
if (advanceIfStartsWith("array")) {
advanceUntil(">");
leaveArray();
continue;
}
return fail("unexpected closed tag");
}
var tag = parseOpenTag();
switch (tag.name) {
case "dict":
enterDict();
if (tag.isClosed) {
leaveDict();
}
continue;
case "array":
enterArray();
if (tag.isClosed) {
leaveArray();
}
continue;
case "key":
acceptKey(parseTagValue(tag));
continue;
case "string":
acceptString(parseTagValue(tag));
continue;
case "real":
acceptReal(parseFloat(parseTagValue(tag)));
continue;
case "integer":
acceptInteger(parseInt(parseTagValue(tag), 10));
continue;
case "date":
acceptDate(new Date(parseTagValue(tag)));
continue;
case "data":
acceptData(parseTagValue(tag));
continue;
case "true":
parseTagValue(tag);
acceptBool(true);
continue;
case "false":
parseTagValue(tag);
acceptBool(false);
continue;
}
if (/^plist/.test(tag.name)) {
continue;
}
return fail("unexpected opened tag " + tag.name);
}
return cur;
}
var json = {};
Object.defineProperty(json, "__esModule", { value: true });
function doFail(streamState, msg) {
throw new Error("Near offset " + streamState.pos + ": " + msg + " ~~~" + streamState.source.substr(streamState.pos, 50) + "~~~");
}
function parse(source, filename, withMetadata) {
var streamState = new JSONStreamState(source);
var token = new JSONToken();
var state = 0;
var cur = null;
var stateStack = [];
var objStack = [];
function pushState() {
stateStack.push(state);
objStack.push(cur);
}
function popState() {
state = stateStack.pop();
cur = objStack.pop();
}
function fail(msg) {
doFail(streamState, msg);
}
while (nextJSONToken(streamState, token)) {
if (state === 0) {
if (cur !== null) {
fail("too many constructs in root");
}
if (token.type === 3) {
cur = {};
if (withMetadata) {
cur.$vscodeTextmateLocation = token.toLocation(filename);
}
pushState();
state = 1;
continue;
}
if (token.type === 2) {
cur = [];
pushState();
state = 4;
continue;
}
fail("unexpected token in root");
}
if (state === 2) {
if (token.type === 5) {
popState();
continue;
}
if (token.type === 7) {
state = 3;
continue;
}
fail("expected , or }");
}
if (state === 1 || state === 3) {
if (state === 1 && token.type === 5) {
popState();
continue;
}
if (token.type === 1) {
var keyValue = token.value;
if (!nextJSONToken(streamState, token) || token.type !== 6) {
fail("expected colon");
}
if (!nextJSONToken(streamState, token)) {
fail("expected value");
}
state = 2;
if (token.type === 1) {
cur[keyValue] = token.value;
continue;
}
if (token.type === 8) {
cur[keyValue] = null;
continue;
}
if (token.type === 9) {
cur[keyValue] = true;
continue;
}
if (token.type === 10) {
cur[keyValue] = false;
continue;
}
if (token.type === 11) {
cur[keyValue] = parseFloat(token.value);
continue;
}
if (token.type === 2) {
var newArr = [];
cur[keyValue] = newArr;
pushState();
state = 4;
cur = newArr;
continue;
}
if (token.type === 3) {
var newDict = {};
if (withMetadata) {
newDict.$vscodeTextmateLocation = token.toLocation(filename);
}
cur[keyValue] = newDict;
pushState();
state = 1;
cur = newDict;
continue;
}
}
fail("unexpected token in dict");
}
if (state === 5) {
if (token.type === 4) {
popState();
continue;
}
if (token.type === 7) {
state = 6;
continue;
}
fail("expected , or ]");
}
if (state === 4 || state === 6) {
if (state === 4 && token.type === 4) {
popState();
continue;
}
state = 5;
if (token.type === 1) {
cur.push(token.value);
continue;
}
if (token.type === 8) {
cur.push(null);
continue;
}
if (token.type === 9) {
cur.push(true);
continue;
}
if (token.type === 10) {
cur.push(false);
continue;
}
if (token.type === 11) {
cur.push(parseFloat(token.value));
continue;
}
if (token.type === 2) {
var newArr = [];
cur.push(newArr);
pushState();
state = 4;
cur = newArr;
continue;
}
if (token.type === 3) {
var newDict = {};
if (withMetadata) {
newDict.$vscodeTextmateLocation = token.toLocation(filename);
}
cur.push(newDict);
pushState();
state = 1;
cur = newDict;
continue;
}
fail("unexpected token in array");
}
fail("unknown state");
}
if (objStack.length !== 0) {
fail("unclosed constructs");
}
return cur;
}
json.parse = parse;
var JSONStreamState = function() {
function JSONStreamState2(source) {
this.source = source;
this.pos = 0;
this.len = source.length;
this.line = 1;
this.char = 0;
}
return JSONStreamState2;
}();
var JSONToken = function() {
function JSONToken2() {
this.value = null;
this.offset = -1;
this.len = -1;
this.line = -1;
this.char = -1;
}
JSONToken2.prototype.toLocation = function(filename) {
return {
filename,
line: this.line,
char: this.char
};
};
return JSONToken2;
}();
function nextJSONToken(_state, _out) {
_out.value = null;
_out.type = 0;
_out.offset = -1;
_out.len = -1;
_out.line = -1;
_out.char = -1;
var source = _state.source;
var pos = _state.pos;
var len = _state.len;
var line = _state.line;
var char = _state.char;
var chCode;
do {
if (pos >= len) {
return false;
}
chCode = source.charCodeAt(pos);
if (chCode === 32 || chCode === 9 || chCode === 13) {
pos++;
char++;
continue;
}
if (chCode === 10) {
pos++;
line++;
char = 0;
continue;
}
break;
} while (true);
_out.offset = pos;
_out.line = line;
_out.char = char;
if (chCode === 34) {
_out.type = 1;
pos++;
char++;
do {
if (pos >= len) {
return false;
}
chCode = source.charCodeAt(pos);
pos++;
char++;
if (chCode === 92) {
pos++;
char++;
continue;
}
if (chCode === 34) {
break;
}
} while (true);
_out.value = source.substring(_out.offset + 1, pos - 1).replace(/\\u([0-9A-Fa-f]{4})/g, function(_2, m0) {
return String.fromCodePoint(parseInt(m0, 16));
}).replace(/\\(.)/g, function(_2, m0) {
switch (m0) {
case '"':
return '"';
case "\\":
return "\\";
case "/":
return "/";
case "b":
return "\b";
case "f":
return "\f";
case "n":
return "\n";
case "r":
return "\r";
case "t":
return " ";
default:
doFail(_state, "invalid escape sequence");
}
});
} else if (chCode === 91) {
_out.type = 2;
pos++;
char++;
} else if (chCode === 123) {
_out.type = 3;
pos++;
char++;
} else if (chCode === 93) {
_out.type = 4;
pos++;
char++;
} else if (chCode === 125) {
_out.type = 5;
pos++;
char++;
} else if (chCode === 58) {
_out.type = 6;
pos++;
char++;
} else if (chCode === 44) {
_out.type = 7;
pos++;
char++;
} else if (chCode === 110) {
_out.type = 8;
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 117) {
return false;
}
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 108) {
return false;
}
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 108) {
return false;
}
pos++;
char++;
} else if (chCode === 116) {
_out.type = 9;
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 114) {
return false;
}
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 117) {
return false;
}
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 101) {
return false;
}
pos++;
char++;
} else if (chCode === 102) {
_out.type = 10;
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 97) {
return false;
}
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 108) {
return false;
}
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 115) {
return false;
}
pos++;
char++;
chCode = source.charCodeAt(pos);
if (chCode !== 101) {
return false;
}
pos++;
char++;
} else {
_out.type = 11;
do {
if (pos >= len) {
return false;
}
chCode = source.charCodeAt(pos);
if (chCode === 46 || chCode >= 48 && chCode <= 57 || (chCode === 101 || chCode === 69) || (chCode === 45 || chCode === 43)) {
pos++;
char++;
continue;
}
break;
} while (true);
}
_out.len = pos - _out.offset;
if (_out.value === null) {
_out.value = source.substr(_out.offset, _out.len);
}
_state.pos = pos;
_state.line = line;
_state.char = char;
return true;
}
Object.defineProperty(grammarReader, "__esModule", { value: true });
var plist = main;
var debug_1 = debug;
var json_1 = json;
function parseJSONGrammar(contents, filename) {
if (debug_1.CAPTURE_METADATA) {
return json_1.parse(contents, filename, true);
}
return JSON.parse(contents);
}
grammarReader.parseJSONGrammar = parseJSONGrammar;
function parsePLISTGrammar(contents, filename) {
if (debug_1.CAPTURE_METADATA) {
return plist.parseWithLocation(contents, filename, "$vscodeTextmateLocation");
}
return plist.parse(contents);
}
grammarReader.parsePLISTGrammar = parsePLISTGrammar;
var theme = {};
Object.defineProperty(theme, "__esModule", { value: true });
var ParsedThemeRule = function() {
function ParsedThemeRule2(scope, parentScopes, index, fontStyle, foreground, background) {
this.scope = scope;
this.parentScopes = parentScopes;
this.index = index;
this.fontStyle = fontStyle;
this.foreground = foreground;
this.background = background;
}
return ParsedThemeRule2;
}();
theme.ParsedThemeRule = ParsedThemeRule;
function isValidHexColor(hex) {
if (/^#[0-9a-f]{6}$/i.test(hex)) {
return true;
}
if (/^#[0-9a-f]{8}$/i.test(hex)) {
return true;
}
if (/^#[0-9a-f]{3}$/i.test(hex)) {
return true;
}
if (/^#[0-9a-f]{4}$/i.test(hex)) {
return true;
}
return false;
}
function parseTheme(source) {
if (!source) {
return [];
}
if (!source.settings || !Array.isArray(source.settings)) {
return [];
}
var settings = source.settings;
var result = [], resultLen = 0;
for (var i = 0, len = settings.length; i < len; i++) {
var entry = settings[i];
if (!entry.settings) {
continue;
}
var scopes = void 0;
if (typeof entry.scope === "string") {
var _scope = entry.scope;
_scope = _scope.replace(/^[,]+/, "");
_scope = _scope.replace(/[,]+$/, "");
scopes = _scope.split(",");
} else if (Array.isArray(entry.scope)) {
scopes = entry.scope;
} else {
scopes = [""];
}
var fontStyle = -1;
if (typeof entry.settings.fontStyle === "string") {
fontStyle = 0;
var segments = entry.settings.fontStyle.split(" ");
for (var j2 = 0, lenJ = segments.length; j2 < lenJ; j2++) {
var segment = segments[j2];
switch (segment) {
case "italic":
fontStyle = fontStyle | 1;
break;
case "bold":
fontStyle = fontStyle | 2;
break;
case "underline":
fontStyle = fontStyle | 4;
break;
}
}
}
var foreground = null;
if (typeof entry.settings.foreground === "string" && isValidHexColor(entry.settings.foreground)) {
foreground = entry.settings.foreground;
}
var background = null;
if (typeof entry.settings.background === "string" && isValidHexColor(entry.settings.background)) {
background = entry.settings.background;
}
for (var j2 = 0, lenJ = scopes.length; j2 < lenJ; j2++) {
var _scope = scopes[j2].trim();
var segments = _scope.split(" ");
var scope = segments[segments.length - 1];
var parentScopes = null;
if (segments.length > 1) {
parentScopes = segments.slice(0, segments.length - 1);
parentScopes.reverse();
}
result[resultLen++] = new ParsedThemeRule(scope, parentScopes, i, fontStyle, foreground, background);
}
}
return result;
}
theme.parseTheme = parseTheme;
function resolveParsedThemeRules(parsedThemeRules) {
parsedThemeRules.sort(function(a, b) {
var r = strcmp(a.scope, b.scope);
if (r !== 0) {
return r;
}
r = strArrCmp(a.parentScopes, b.parentScopes);
if (r !== 0) {
return r;
}
return a.index - b.index;
});
var defaultFontStyle = 0;
var defaultForeground = "#000000";
var defaultBackground = "#ffffff";
while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === "") {
var incomingDefaults = parsedThemeRules.shift();
if (incomingDefaults.fontStyle !== -1) {
defaultFontStyle = incomingDefaults.fontStyle;
}
if (incomingDefaults.foreground !== null) {
defaultForeground = incomingDefaults.foreground;
}
if (incomingDefaults.background !== null) {
defaultBackground = incomingDefaults.background;
}
}
var colorMap = new ColorMap();
var defaults = new ThemeTrieElementRule(0, null, defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));
var root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1, 0, 0), []);
for (var i = 0, len = parsedThemeRules.length; i < len; i++) {
var rule2 = parsedThemeRules[i];
root.insert(0, rule2.scope, rule2.parentScopes, rule2.fontStyle, colorMap.getId(rule2.foreground), colorMap.getId(rule2.background));
}
return new Theme(colorMap, defaults, root);
}
var ColorMap = function() {
function ColorMap2() {
this._lastColorId = 0;
this._id2color = [];
this._color2id = /* @__PURE__ */ Object.create(null);
}
ColorMap2.prototype.getId = function(color) {
if (color === null) {
return 0;
}
color = color.toUpperCase();
var value = this._color2id[color];
if (value) {
return value;
}
value = ++this._lastColorId;
this._color2id[color] = value;
this._id2color[value] = color;
return value;
};
ColorMap2.prototype.getColorMap = function() {
return this._id2color.slice(0);
};
return ColorMap2;
}();
theme.ColorMap = ColorMap;
var Theme = function() {
function Theme2(colorMap, defaults, root) {
this._colorMap = colorMap;
this._root = root;
this._defaults = defaults;
this._cache = {};
}
Theme2.createFromRawTheme = function(source) {
return this.createFromParsedTheme(parseTheme(source));
};
Theme2.createFromParsedTheme = function(source) {
return resolveParsedThemeRules(source);
};
Theme2.prototype.getColorMap = function() {
return this._colorMap.getColorMap();
};
Theme2.prototype.getDefaults = function() {
return this._defaults;
};
Theme2.prototype.match = function(scopeName) {
if (!this._cache.hasOwnProperty(scopeName)) {
this._cache[scopeName] = this._root.match(scopeName);
}
return this._cache[scopeName];
};
return Theme2;
}();
theme.Theme = Theme;
function strcmp(a, b) {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
theme.strcmp = strcmp;
function strArrCmp(a, b) {
if (a === null && b === null) {
return 0;
}
if (!a) {
return -1;
}
if (!b) {
return 1;
}
var len1 = a.length;
var len2 = b.length;
if (len1 === len2) {
for (var i = 0; i < len1; i++) {
var res = strcmp(a[i], b[i]);
if (res !== 0) {
return res;
}
}
return 0;
}
return len1 - len2;
}
theme.strArrCmp = strArrCmp;
var ThemeTrieElementRule = function() {
function ThemeTrieElementRule2(scopeDepth, parentScopes, fontStyle, foreground, background) {
this.scopeDepth = scopeDepth;
this.parentScopes = parentScopes;
this.fontStyle = fontStyle;
this.foreground = foreground;
this.background = background;
}
ThemeTrieElementRule2.prototype.clone = function() {
return new ThemeTrieElementRule2(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);
};
ThemeTrieElementRule2.cloneArr = function(arr) {
var r = [];
for (var i = 0, len = arr.length; i < len; i++) {
r[i] = arr[i].clone();
}
return r;
};
ThemeTrieElementRule2.prototype.acceptOverwrite = function(scopeDepth, fontStyle, foreground, background) {
if (this.scopeDepth > scopeDepth) {
console.log("how did this happen?");
} else {
this.scopeDepth = scopeDepth;
}
if (fontStyle !== -1) {
this.fontStyle = fontStyle;
}
if (foreground !== 0) {
this.foreground = foreground;
}
if (background !== 0) {
this.background = background;
}
};
return ThemeTrieElementRule2;
}();
theme.ThemeTrieElementRule = ThemeTrieElementRule;
var ThemeTrieElement = function() {
function ThemeTrieElement2(mainRule, rulesWithParentScopes, children) {
if (rulesWithParentScopes === void 0) {
rulesWithParentScopes = [];
}
if (children === void 0) {
children = {};
}
this._mainRule = mainRule;
this._rulesWithParentScopes = rulesWithParentScopes;
this._children = children;
}
ThemeTrieElement2._sortBySpecificity = function(arr) {
if (arr.length === 1) {
return arr;
}
arr.sort(this._cmpBySpecificity);
return arr;
};
ThemeTrieElement2._cmpBySpecificity = function(a, b) {
if (a.scopeDepth === b.scopeDepth) {
var aParentScopes = a.parentScopes;
var bParentScopes = b.parentScopes;
var aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;
var bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;
if (aParentScopesLen === bParentScopesLen) {
for (var i = 0; i < aParentScopesLen; i++) {
var aLen = aParentScopes[i].length;
var bLen = bParentScopes[i].length;
if (aLen !== bLen) {
return bLen - aLen;
}
}
}
return bParentScopesLen - aParentScopesLen;
}
return b.scopeDepth - a.scopeDepth;
};
ThemeTrieElement2.prototype.match = function(scope) {
if (scope === "") {
return ThemeTrieElement2._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));
}
var dotIndex = scope.indexOf(".");
var head;
var tail;
if (dotIndex === -1) {
head = scope;
tail = "";
} else {
head = scope.substring(0, dotIndex);
tail = scope.substring(dotIndex + 1);
}
if (this._children.hasOwnProperty(head)) {
return this._children[head].match(tail);
}
return ThemeTrieElement2._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));
};
ThemeTrieElement2.prototype.insert = function(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {
if (scope === "") {
this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);
return;
}
var dotIndex = scope.indexOf(".");
var head;
var tail;
if (dotIndex === -1) {
head = scope;
tail = "";
} else {
head = scope.substring(0, dotIndex);
tail = scope.substring(dotIndex + 1);
}
var child;
if (this._children.hasOwnProperty(head)) {
child = this._children[head];
} else {
child = new ThemeTrieElement2(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));
this._children[head] = child;
}
child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);
};
ThemeTrieElement2.prototype._doInsertHere = function(scopeDepth, parentScopes, fontStyle, foreground, background) {
if (parentScopes === null) {
this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);
return;
}
for (var i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {
var rule2 = this._rulesWithParentScopes[i];
if (strArrCmp(rule2.parentScopes, parentScopes) === 0) {
rule2.acceptOverwrite(scopeDepth, fontStyle, foreground, background);
return;
}
}
if (fontStyle === -1) {
fontStyle = this._mainRule.fontStyle;
}
if (foreground === 0) {
foreground = this._mainRule.foreground;
}
if (background === 0) {
background = this._mainRule.background;
}
this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));
};
return ThemeTrieElement2;
}();
theme.ThemeTrieElement = ThemeTrieElement;
var __awaiter = commonjsGlobal && commonjsGlobal.__awaiter || function(thisArg, _arguments, P2, generator) {
return new (P2 || (P2 = Promise))(function(resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e4) {
reject(e4);
}
}
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e4) {
reject(e4);
}
}
function step(result) {
result.done ? resolve(result.value) : new P2(function(resolve2) {
resolve2(result.value);
}).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = commonjsGlobal && commonjsGlobal.__generator || function(thisArg, body) {
var _2 = { label: 0, sent: function() {
if (t[0] & 1)
throw t[1];
return t[1];
}, trys: [], ops: [] }, f2, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
return this;
}), g;
function verb(n) {
return function(v) {
return step([n, v]);
};
}
function step(op) {
if (f2)
throw new TypeError("Generator is already executing.");
while (_2)
try {
if (f2 = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
return t;
if (y = 0, t)
op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_2.label++;
return { value: op[1], done: false };
case 5:
_2.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _2.ops.pop();
_2.trys.pop();
continue;
default:
if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_2 = 0;
continue;
}
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
_2.label = op[1];
break;
}
if (op[0] === 6 && _2.label < t[1]) {
_2.label = t[1];
t = op;
break;
}
if (t && _2.label < t[2]) {
_2.label = t[2];
_2.ops.push(op);
break;
}
if (t[2])
_2.ops.pop();
_2.trys.pop();
continue;
}
op = body.call(thisArg, _2);
} catch (e4) {
op = [6, e4];
y = 0;
} finally {
f2 = t = 0;
}
if (op[0] & 5)
throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(main$1, "__esModule", { value: true });
var registry_1 = registry;
var grammarReader_1 = grammarReader;
var theme_1 = theme;
var grammar_1 = grammar;
var DEFAULT_OPTIONS = {
getGrammarDefinition: function(scopeName) {
return null;
},
getInjections: function(scopeName) {
return null;
}
};
var Registry = function() {
function Registry2(locator) {
if (locator === void 0) {
locator = DEFAULT_OPTIONS;
}
this._locator = locator;
this._syncRegistry = new registry_1.SyncRegistry(theme_1.Theme.createFromRawTheme(locator.theme));
this.installationQueue = /* @__PURE__ */ new Map();
}
Registry2.prototype.setTheme = function(theme2) {
this._syncRegistry.setTheme(theme_1.Theme.createFromRawTheme(theme2));
};
Registry2.prototype.getColorMap = function() {
return this._syncRegistry.getColorMap();
};
Registry2.prototype.loadGrammarWithEmbeddedLanguages = function(initialScopeName, initialLanguage, embeddedLanguages) {
return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });
};
Registry2.prototype.loadGrammarWithConfiguration = function(initialScopeName, initialLanguage, configuration) {
return __awaiter(this, void 0, void 0, function() {
return __generator(this, function(_a2) {
switch (_a2.label) {
case 0:
return [4, this._loadGrammar(initialScopeName)];
case 1:
_a2.sent();
return [2, this.grammarForScopeName(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes)];
}
});
});
};
Registry2.prototype.loadGrammar = function(initialScopeName) {
return __awaiter(this, void 0, void 0, function() {
return __generator(this, function(_a2) {
return [2, this._loadGrammar(initialScopeName)];
});
});
};
Registry2.prototype._loadGrammar = function(initialScopeName, dependentScope) {
if (dependentScope === void 0) {
dependentScope = null;
}
return __awaiter(this, void 0, void 0, function() {
var prom;
var _this = this;
return __generator(this, function(_a2) {
switch (_a2.label) {
case 0:
if (this._syncRegistry.lookup(initialScopeName)) {
return [2, this.grammarForScopeName(initialScopeName)];
}
if (this.installationQueue.has(initialScopeName)) {
return [2, this.installationQueue.get(initialScopeName)];
}
prom = new Promise(function(resolve, reject) {
return __awaiter(_this, void 0, void 0, function() {
var grammarDefinition, rawGrammar, injections, deps;
var _this2 = this;
return __generator(this, function(_a3) {
switch (_a3.label) {
case 0:
return [4, this._locator.getGrammarDefinition(initialScopeName, dependentScope)];
case 1:
grammarDefinition = _a3.sent();
if (!grammarDefinition) {
throw new Error("A tmGrammar load was requested but registry host failed to provide grammar definition");
}
if (grammarDefinition.format !== "json" && grammarDefinition.format !== "plist" || grammarDefinition.format === "json" && typeof grammarDefinition.content !== "object" && typeof grammarDefinition.content !== "string" || grammarDefinition.format === "plist" && typeof grammarDefinition.content !== "string") {
throw new TypeError('Grammar definition must be an object, either `{ content: string | object, format: "json" }` OR `{ content: string, format: "plist" }`)');
}
rawGrammar = grammarDefinition.format === "json" ? typeof grammarDefinition.content === "string" ? grammarReader_1.parseJSONGrammar(grammarDefinition.content, "c://fakepath/grammar.json") : grammarDefinition.content : grammarReader_1.parsePLISTGrammar(grammarDefinition.content, "c://fakepath/grammar.plist");
injections = typeof this._locator.getInjections === "function" && this._locator.getInjections(initialScopeName);
rawGrammar.scopeName = initialScopeName;
deps = this._syncRegistry.addGrammar(rawGrammar, injections);
return [4, Promise.all(deps.map(function(scopeNameD) {
return __awaiter(_this2, void 0, void 0, function() {
return __generator(this, function(_a4) {
try {
return [2, this._loadGrammar(scopeNameD, initialScopeName)];
} catch (error) {
throw new Error("While trying to load tmGrammar with scopeId: '" + initialScopeName + "', it's dependency (scopeId: " + scopeNameD + ") loading errored: " + error.message);
}
return [2];
});
});
}))];
case 2:
_a3.sent();
resolve(this.grammarForScopeName(initialScopeName));
return [2];
}
});
});
});
this.installationQueue.set(initialScopeName, prom);
return [4, prom];
case 1:
_a2.sent();
this.installationQueue.delete(initialScopeName);
return [2, prom];
}
});
});
};
Registry2.prototype.grammarForScopeName = function(scopeName, initialLanguage, embeddedLanguages, tokenTypes) {
if (initialLanguage === void 0) {
initialLanguage = 0;
}
if (embeddedLanguages === void 0) {
embeddedLanguages = null;
}
if (tokenTypes === void 0) {
tokenTypes = null;
}
return this._syncRegistry.grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes);
};
return Registry2;
}();
var Registry_1 = main$1.Registry = Registry;
main$1.INITIAL = grammar_1.StackElement.NULL;
var dist = {};
var tmToMonacoToken = {};
Object.defineProperty(tmToMonacoToken, "__esModule", { value: true });
tmToMonacoToken.TMToMonacoToken = void 0;
const TMToMonacoToken = (editor, scopes) => {
let scopeName = "";
for (let i = scopes[0].length - 1; i >= 0; i -= 1) {
const char = scopes[0][i];
if (char === ".") {
break;
}
scopeName = char + scopeName;
}
for (let i = scopes.length - 1; i >= 0; i -= 1) {
const scope = scopes[i];
for (let i2 = scope.length - 1; i2 >= 0; i2 -= 1) {
const char = scope[i2];
if (char === ".") {
const token = scope.slice(0, i2);
if (editor["_themeService"]._theme._tokenTheme._match(token + "." + scopeName)._foreground > 1) {
return token + "." + scopeName;
}
if (editor["_themeService"]._theme._tokenTheme._match(token)._foreground > 1) {
return token;
}
}
}
}
return "";
};
tmToMonacoToken.TMToMonacoToken = TMToMonacoToken;
Object.defineProperty(dist, "__esModule", { value: true });
var wireTmGrammars_1 = dist.wireTmGrammars = void 0;
const monaco_textmate_1 = main$1;
const tm_to_monaco_token_1 = tmToMonacoToken;
class TokenizerState {
constructor(_ruleStack) {
__publicField(this, "_ruleStack");
this._ruleStack = _ruleStack;
}
get ruleStack() {
return this._ruleStack;
}
clone() {
return new TokenizerState(this._ruleStack);
}
equals(other) {
if (!other || !(other instanceof TokenizerState) || other !== this || other._ruleStack !== this._ruleStack) {
return false;
}
return true;
}
}
function wireTmGrammars(monaco, registry2, languages, editor) {
return Promise.all(Array.from(languages.keys()).map(async (languageId) => {
const grammar2 = await registry2.loadGrammar(languages.get(languageId));
monaco.languages.setTokensProvider(languageId, {
getInitialState: () => new TokenizerState(monaco_textmate_1.INITIAL),
tokenize: (line, state) => {
const res = grammar2.tokenizeLine(line, state.ruleStack);
return {
endState: new TokenizerState(res.ruleStack),
tokens: res.tokens.map((token) => ({
...token,
scopes: editor ? (0, tm_to_monaco_token_1.TMToMonacoToken)(editor, token.scopes) : token.scopes[token.scopes.length - 1]
}))
};
}
});
}));
}
wireTmGrammars_1 = dist.wireTmGrammars = wireTmGrammars;
const initMonacoEditor = async () => {
await loadWASM(`${"https://baozoulolw.oss-cn-chengdu.aliyuncs.com/codeSet/data"}/onigasm/onigasm.wasm`);
};
const wire = async (languageId, editor, monaco) => {
languageId = ["vue2", "vue3", "vue"].includes(languageId) ? "vue" : languageId;
if (!scopeNameMap[languageId]) {
return;
}
const grammars = /* @__PURE__ */ new Map();
grammars.set(languageId, scopeNameMap[languageId]);
const registry2 = new Registry_1({
getGrammarDefinition: async (scopeName) => {
let jsonMap = tmGrammarJsonMap[scopeName];
if (!jsonMap) {
return null;
}
let format = "json";
let path2 = jsonMap;
if (typeof jsonMap !== "string") {
format = jsonMap.format;
path2 = jsonMap.path;
}
let text = await (await fetch(`${"https://baozoulolw.oss-cn-chengdu.aliyuncs.com/codeSet/data"}/grammars/${path2}`)).text();
return {
format,
content: text
};
}
});
if (!monacoEditorInnerLanguages.includes(languageId)) {
monaco.languages.register({ id: languageId });
}
await wireTmGrammars_1(monaco, registry2, grammars, editor);
};
var E;
(function(e4) {
e4[e4.Canceled = 1] = "Canceled", e4[e4.Unknown = 2] = "Unknown", e4[e4.InvalidArgument = 3] = "InvalidArgument", e4[e4.DeadlineExceeded = 4] = "DeadlineExceeded", e4[e4.NotFound = 5] = "NotFound", e4[e4.AlreadyExists = 6] = "AlreadyExists", e4[e4.PermissionDenied = 7] = "PermissionDenied", e4[e4.ResourceExhausted = 8] = "ResourceExhausted", e4[e4.FailedPrecondition = 9] = "FailedPrecondition", e4[e4.Aborted = 10] = "Aborted", e4[e4.OutOfRange = 11] = "OutOfRange", e4[e4.Unimplemented = 12] = "Unimplemented", e4[e4.Internal = 13] = "Internal", e4[e4.Unavailable = 14] = "Unavailable", e4[e4.DataLoss = 15] = "DataLoss", e4[e4.Unauthenticated = 16] = "Unauthenticated";
})(E || (E = {}));
function N(e4, t) {
if (!e4)
throw new Error(t);
}
var On = 34028234663852886e22, Un = -34028234663852886e22, Rn = 4294967295, Fn = 2147483647, _n = -2147483648;
function L(e4) {
if (typeof e4 != "number")
throw new Error("invalid int 32: " + typeof e4);
if (!Number.isInteger(e4) || e4 > Fn || e4 < _n)
throw new Error("invalid int 32: " + e4);
}
function j(e4) {
if (typeof e4 != "number")
throw new Error("invalid uint 32: " + typeof e4);
if (!Number.isInteger(e4) || e4 > Rn || e4 < 0)
throw new Error("invalid uint 32: " + e4);
}
function oe(e4) {
if (typeof e4 != "number")
throw new Error("invalid float 32: " + typeof e4);
if (Number.isFinite(e4) && (e4 > On || e4 < Un))
throw new Error("invalid float 32: " + e4);
}
var Tt = Symbol("@bufbuild/protobuf/enum-type");
function St(e4) {
let t = e4[Tt];
return N(t, "missing enum type on enum object"), t;
}
function $e(e4, t, n, r) {
e4[Tt] = je(t, n.map((o) => ({ no: o.no, name: o.name, localName: e4[o.no] })));
}
function je(e4, t, n) {
let r = /* @__PURE__ */ Object.create(null), o = /* @__PURE__ */ Object.create(null), i = [];
for (let s of t) {
let a = Nt(s);
i.push(a), r[s.name] = a, o[s.no] = a;
}
return { typeName: e4, values: i, findName(s) {
return r[s];
}, findNumber(s) {
return o[s];
} };
}
function At(e4, t, n) {
let r = {};
for (let o of t) {
let i = Nt(o);
r[i.localName] = i.no, r[i.no] = i.localName;
}
return $e(r, e4, t), r;
}
function Nt(e4) {
return "localName" in e4 ? e4 : Object.assign(Object.assign({}, e4), { localName: e4.name });
}
var w = class {
equals(t) {
return this.getType().runtime.util.equals(this.getType(), this, t);
}
clone() {
return this.getType().runtime.util.clone(this);
}
fromBinary(t, n) {
let r = this.getType(), o = r.runtime.bin, i = o.makeReadOptions(n);
return o.readMessage(this, i.readerFactory(t), t.byteLength, i), this;
}
fromJson(t, n) {
let r = this.getType(), o = r.runtime.json, i = o.makeReadOptions(n);
return o.readMessage(r, t, i, this), this;
}
fromJsonString(t, n) {
let r;
try {
r = JSON.parse(t);
} catch (o) {
throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${o instanceof Error ? o.message : String(o)}`);
}
return this.fromJson(r, n);
}
toBinary(t) {
let n = this.getType(), r = n.runtime.bin, o = r.makeWriteOptions(t), i = o.writerFactory();
return r.writeMessage(this, i, o), i.finish();
}
toJson(t) {
let n = this.getType(), r = n.runtime.json, o = r.makeWriteOptions(t);
return r.writeMessage(this, o);
}
toJsonString(t) {
var n;
let r = this.toJson(t);
return JSON.stringify(r, null, (n = t == null ? void 0 : t.prettySpaces) !== null && n !== void 0 ? n : 0);
}
toJSON() {
return this.toJson({ emitDefaultValues: true });
}
getType() {
return Object.getPrototypeOf(this).constructor;
}
};
function Pt(e4, t, n, r) {
var o;
let i = (o = r == null ? void 0 : r.localName) !== null && o !== void 0 ? o : t.substring(t.lastIndexOf(".") + 1), s = { [i]: function(a) {
e4.util.initFields(this), e4.util.initPartial(a, this);
} }[i];
return Object.setPrototypeOf(s.prototype, new w()), Object.assign(s, { runtime: e4, typeName: t, fields: e4.util.newFieldList(n), fromBinary(a, c) {
return new s().fromBinary(a, c);
}, fromJson(a, c) {
return new s().fromJson(a, c);
}, fromJsonString(a, c) {
return new s().fromJsonString(a, c);
}, equals(a, c) {
return e4.util.equals(s, a, c);
} }), s;
}
function vt(e4, t, n, r) {
return { syntax: e4, json: t, bin: n, util: r, makeMessageType(o, i, s) {
return Pt(this, o, i, s);
}, makeEnum: At, makeEnumType: je, getEnumType: St };
}
var f;
(function(e4) {
e4[e4.DOUBLE = 1] = "DOUBLE", e4[e4.FLOAT = 2] = "FLOAT", e4[e4.INT64 = 3] = "INT64", e4[e4.UINT64 = 4] = "UINT64", e4[e4.INT32 = 5] = "INT32", e4[e4.FIXED64 = 6] = "FIXED64", e4[e4.FIXED32 = 7] = "FIXED32", e4[e4.BOOL = 8] = "BOOL", e4[e4.STRING = 9] = "STRING", e4[e4.BYTES = 12] = "BYTES", e4[e4.UINT32 = 13] = "UINT32", e4[e4.SFIXED32 = 15] = "SFIXED32", e4[e4.SFIXED64 = 16] = "SFIXED64", e4[e4.SINT32 = 17] = "SINT32", e4[e4.SINT64 = 18] = "SINT64";
})(f || (f = {}));
var R;
(function(e4) {
e4[e4.BIGINT = 0] = "BIGINT", e4[e4.STRING = 1] = "STRING";
})(R || (R = {}));
function kt() {
let e4 = 0, t = 0;
for (let r = 0; r < 28; r += 7) {
let o = this.buf[this.pos++];
if (e4 |= (o & 127) << r, !(o & 128))
return this.assertBounds(), [e4, t];
}
let n = this.buf[this.pos++];
if (e4 |= (n & 15) << 28, t = (n & 112) >> 4, !(n & 128))
return this.assertBounds(), [e4, t];
for (let r = 3; r <= 31; r += 7) {
let o = this.buf[this.pos++];
if (t |= (o & 127) << r, !(o & 128))
return this.assertBounds(), [e4, t];
}
throw new Error("invalid varint");
}
function se(e4, t, n) {
for (let i = 0; i < 28; i = i + 7) {
let s = e4 >>> i, a = !(!(s >>> 7) && t == 0), c = (a ? s | 128 : s) & 255;
if (n.push(c), !a)
return;
}
let r = e4 >>> 28 & 15 | (t & 7) << 4, o = !!(t >> 3);
if (n.push((o ? r | 128 : r) & 255), !!o) {
for (let i = 3; i < 31; i = i + 7) {
let s = t >>> i, a = !!(s >>> 7), c = (a ? s | 128 : s) & 255;
if (n.push(c), !a)
return;
}
n.push(t >>> 31 & 1);
}
}
var ie = 4294967296;
function He(e4) {
let t = e4[0] === "-";
t && (e4 = e4.slice(1));
let n = 1e6, r = 0, o = 0;
function i(s, a) {
let c = Number(e4.slice(s, a));
o *= n, r = r * n + c, r >= ie && (o = o + (r / ie | 0), r = r % ie);
}
return i(-24, -18), i(-18, -12), i(-12, -6), i(-6), t ? Ut(r, o) : ze(r, o);
}
function Ot(e4, t) {
let n = ze(e4, t), r = n.hi & 2147483648;
r && (n = Ut(n.lo, n.hi));
let o = Xe(n.lo, n.hi);
return r ? "-" + o : o;
}
function Xe(e4, t) {
if ({ lo: e4, hi: t } = Jn(e4, t), t <= 2097151)
return String(ie * t + e4);
let n = e4 & 16777215, r = (e4 >>> 24 | t << 8) & 16777215, o = t >> 16 & 65535, i = n + r * 6777216 + o * 6710656, s = r + o * 8147497, a = o * 2, c = 1e7;
return i >= c && (s += Math.floor(i / c), i %= c), s >= c && (a += Math.floor(s / c), s %= c), a.toString() + Ct(s) + Ct(i);
}
function Jn(e4, t) {
return { lo: e4 >>> 0, hi: t >>> 0 };
}
function ze(e4, t) {
return { lo: e4 | 0, hi: t | 0 };
}
function Ut(e4, t) {
return t = ~t, e4 ? e4 = ~e4 + 1 : t += 1, ze(e4, t);
}
var Ct = (e4) => {
let t = String(e4);
return "0000000".slice(t.length) + t;
};
function Ye(e4, t) {
if (e4 >= 0) {
for (; e4 > 127; )
t.push(e4 & 127 | 128), e4 = e4 >>> 7;
t.push(e4);
} else {
for (let n = 0; n < 9; n++)
t.push(e4 & 127 | 128), e4 = e4 >> 7;
t.push(1);
}
}
function Rt() {
let e4 = this.buf[this.pos++], t = e4 & 127;
if (!(e4 & 128))
return this.assertBounds(), t;
if (e4 = this.buf[this.pos++], t |= (e4 & 127) << 7, !(e4 & 128))
return this.assertBounds(), t;
if (e4 = this.buf[this.pos++], t |= (e4 & 127) << 14, !(e4 & 128))
return this.assertBounds(), t;
if (e4 = this.buf[this.pos++], t |= (e4 & 127) << 21, !(e4 & 128))
return this.assertBounds(), t;
e4 = this.buf[this.pos++], t |= (e4 & 15) << 28;
for (let n = 5; e4 & 128 && n < 10; n++)
e4 = this.buf[this.pos++];
if (e4 & 128)
throw new Error("invalid varint");
return this.assertBounds(), t >>> 0;
}
function Mn() {
let e4 = new DataView(new ArrayBuffer(8));
if (typeof BigInt == "function" && typeof e4.getBigInt64 == "function" && typeof e4.getBigUint64 == "function" && typeof e4.setBigInt64 == "function" && typeof e4.setBigUint64 == "function" && (typeof process != "object" || typeof process.env != "object" || {}.BUF_BIGINT_DISABLE !== "1")) {
let o = BigInt("-9223372036854775808"), i = BigInt("9223372036854775807"), s = BigInt("0"), a = BigInt("18446744073709551615");
return { zero: BigInt(0), supported: true, parse(c) {
let l = typeof c == "bigint" ? c : BigInt(c);
if (l > i || l < o)
throw new Error(`int64 invalid: ${c}`);
return l;
}, uParse(c) {
let l = typeof c == "bigint" ? c : BigInt(c);
if (l > a || l < s)
throw new Error(`uint64 invalid: ${c}`);
return l;
}, enc(c) {
return e4.setBigInt64(0, this.parse(c), true), { lo: e4.getInt32(0, true), hi: e4.getInt32(4, true) };
}, uEnc(c) {
return e4.setBigInt64(0, this.uParse(c), true), { lo: e4.getInt32(0, true), hi: e4.getInt32(4, true) };
}, dec(c, l) {
return e4.setInt32(0, c, true), e4.setInt32(4, l, true), e4.getBigInt64(0, true);
}, uDec(c, l) {
return e4.setInt32(0, c, true), e4.setInt32(4, l, true), e4.getBigUint64(0, true);
} };
}
let n = (o) => N(/^-?[0-9]+$/.test(o), `int64 invalid: ${o}`), r = (o) => N(/^[0-9]+$/.test(o), `uint64 invalid: ${o}`);
return { zero: "0", supported: false, parse(o) {
return typeof o != "string" && (o = o.toString()), n(o), o;
}, uParse(o) {
return typeof o != "string" && (o = o.toString()), r(o), o;
}, enc(o) {
return typeof o != "string" && (o = o.toString()), n(o), He(o);
}, uEnc(o) {
return typeof o != "string" && (o = o.toString()), r(o), He(o);
}, dec(o, i) {
return Ot(o, i);
}, uDec(o, i) {
return Xe(o, i);
} };
}
var x = Mn();
var A;
(function(e4) {
e4[e4.Varint = 0] = "Varint", e4[e4.Bit64 = 1] = "Bit64", e4[e4.LengthDelimited = 2] = "LengthDelimited", e4[e4.StartGroup = 3] = "StartGroup", e4[e4.EndGroup = 4] = "EndGroup", e4[e4.Bit32 = 5] = "Bit32";
})(A || (A = {}));
var ae = class {
constructor(t) {
this.stack = [], this.textEncoder = t != null ? t : new TextEncoder(), this.chunks = [], this.buf = [];
}
finish() {
this.chunks.push(new Uint8Array(this.buf));
let t = 0;
for (let o = 0; o < this.chunks.length; o++)
t += this.chunks[o].length;
let n = new Uint8Array(t), r = 0;
for (let o = 0; o < this.chunks.length; o++)
n.set(this.chunks[o], r), r += this.chunks[o].length;
return this.chunks = [], n;
}
fork() {
return this.stack.push({ chunks: this.chunks, buf: this.buf }), this.chunks = [], this.buf = [], this;
}
join() {
let t = this.finish(), n = this.stack.pop();
if (!n)
throw new Error("invalid state, fork stack empty");
return this.chunks = n.chunks, this.buf = n.buf, this.uint32(t.byteLength), this.raw(t);
}
tag(t, n) {
return this.uint32((t << 3 | n) >>> 0);
}
raw(t) {
return this.buf.length && (this.chunks.push(new Uint8Array(this.buf)), this.buf = []), this.chunks.push(t), this;
}
uint32(t) {
for (j(t); t > 127; )
this.buf.push(t & 127 | 128), t = t >>> 7;
return this.buf.push(t), this;
}
int32(t) {
return L(t), Ye(t, this.buf), this;
}
bool(t) {
return this.buf.push(t ? 1 : 0), this;
}
bytes(t) {
return this.uint32(t.byteLength), this.raw(t);
}
string(t) {
let n = this.textEncoder.encode(t);
return this.uint32(n.byteLength), this.raw(n);
}
float(t) {
oe(t);
let n = new Uint8Array(4);
return new DataView(n.buffer).setFloat32(0, t, true), this.raw(n);
}
double(t) {
let n = new Uint8Array(8);
return new DataView(n.buffer).setFloat64(0, t, true), this.raw(n);
}
fixed32(t) {
j(t);
let n = new Uint8Array(4);
return new DataView(n.buffer).setUint32(0, t, true), this.raw(n);
}
sfixed32(t) {
L(t);
let n = new Uint8Array(4);
return new DataView(n.buffer).setInt32(0, t, true), this.raw(n);
}
sint32(t) {
return L(t), t = (t << 1 ^ t >> 31) >>> 0, Ye(t, this.buf), this;
}
sfixed64(t) {
let n = new Uint8Array(8), r = new DataView(n.buffer), o = x.enc(t);
return r.setInt32(0, o.lo, true), r.setInt32(4, o.hi, true), this.raw(n);
}
fixed64(t) {
let n = new Uint8Array(8), r = new DataView(n.buffer), o = x.uEnc(t);
return r.setInt32(0, o.lo, true), r.setInt32(4, o.hi, true), this.raw(n);
}
int64(t) {
let n = x.enc(t);
return se(n.lo, n.hi, this.buf), this;
}
sint64(t) {
let n = x.enc(t), r = n.hi >> 31, o = n.lo << 1 ^ r, i = (n.hi << 1 | n.lo >>> 31) ^ r;
return se(o, i, this.buf), this;
}
uint64(t) {
let n = x.uEnc(t);
return se(n.lo, n.hi, this.buf), this;
}
}, ce = class {
constructor(t, n) {
this.varint64 = kt, this.uint32 = Rt, this.buf = t, this.len = t.length, this.pos = 0, this.view = new DataView(t.buffer, t.byteOffset, t.byteLength), this.textDecoder = n != null ? n : new TextDecoder();
}
tag() {
let t = this.uint32(), n = t >>> 3, r = t & 7;
if (n <= 0 || r < 0 || r > 5)
throw new Error("illegal tag: field no " + n + " wire type " + r);
return [n, r];
}
skip(t) {
let n = this.pos;
switch (t) {
case A.Varint:
for (; this.buf[this.pos++] & 128; )
;
break;
case A.Bit64:
this.pos += 4;
case A.Bit32:
this.pos += 4;
break;
case A.LengthDelimited:
let r = this.uint32();
this.pos += r;
break;
case A.StartGroup:
let o;
for (; (o = this.tag()[1]) !== A.EndGroup; )
this.skip(o);
break;
default:
throw new Error("cant skip wire type " + t);
}
return this.assertBounds(), this.buf.subarray(n, this.pos);
}
assertBounds() {
if (this.pos > this.len)
throw new RangeError("premature EOF");
}
int32() {
return this.uint32() | 0;
}
sint32() {
let t = this.uint32();
return t >>> 1 ^ -(t & 1);
}
int64() {
return x.dec(...this.varint64());
}
uint64() {
return x.uDec(...this.varint64());
}
sint64() {
let [t, n] = this.varint64(), r = -(t & 1);
return t = (t >>> 1 | (n & 1) << 31) ^ r, n = n >>> 1 ^ r, x.dec(t, n);
}
bool() {
let [t, n] = this.varint64();
return t !== 0 || n !== 0;
}
fixed32() {
return this.view.getUint32((this.pos += 4) - 4, true);
}
sfixed32() {
return this.view.getInt32((this.pos += 4) - 4, true);
}
fixed64() {
return x.uDec(this.sfixed32(), this.sfixed32());
}
sfixed64() {
return x.dec(this.sfixed32(), this.sfixed32());
}
float() {
return this.view.getFloat32((this.pos += 4) - 4, true);
}
double() {
return this.view.getFloat64((this.pos += 8) - 8, true);
}
bytes() {
let t = this.uint32(), n = this.pos;
return this.pos += t, this.assertBounds(), this.buf.subarray(n, n + t);
}
string() {
return this.textDecoder.decode(this.bytes());
}
};
function H(e4, t) {
return t instanceof w || !e4.fieldWrapper ? t : e4.fieldWrapper.wrapField(t);
}
({ "google.protobuf.DoubleValue": f.DOUBLE, "google.protobuf.FloatValue": f.FLOAT, "google.protobuf.Int64Value": f.INT64, "google.protobuf.UInt64Value": f.UINT64, "google.protobuf.Int32Value": f.INT32, "google.protobuf.UInt32Value": f.UINT32, "google.protobuf.BoolValue": f.BOOL, "google.protobuf.StringValue": f.STRING, "google.protobuf.BytesValue": f.BYTES });
function F(e4, t, n) {
if (t === n)
return true;
if (e4 == f.BYTES) {
if (!(t instanceof Uint8Array) || !(n instanceof Uint8Array) || t.length !== n.length)
return false;
for (let r = 0; r < t.length; r++)
if (t[r] !== n[r])
return false;
return true;
}
switch (e4) {
case f.UINT64:
case f.FIXED64:
case f.INT64:
case f.SFIXED64:
case f.SINT64:
return t == n;
}
return false;
}
function X(e4, t) {
switch (e4) {
case f.BOOL:
return false;
case f.UINT64:
case f.FIXED64:
case f.INT64:
case f.SFIXED64:
case f.SINT64:
return t == 0 ? x.zero : "0";
case f.DOUBLE:
case f.FLOAT:
return 0;
case f.BYTES:
return new Uint8Array(0);
case f.STRING:
return "";
default:
return 0;
}
}
function Ke(e4, t) {
let n = t === void 0, r = A.Varint, o = t === 0;
switch (e4) {
case f.STRING:
o = n || !t.length, r = A.LengthDelimited;
break;
case f.BOOL:
o = t === false;
break;
case f.DOUBLE:
r = A.Bit64;
break;
case f.FLOAT:
r = A.Bit32;
break;
case f.INT64:
o = n || t == 0;
break;
case f.UINT64:
o = n || t == 0;
break;
case f.FIXED64:
o = n || t == 0, r = A.Bit64;
break;
case f.BYTES:
o = n || !t.byteLength, r = A.LengthDelimited;
break;
case f.FIXED32:
r = A.Bit32;
break;
case f.SFIXED32:
r = A.Bit32;
break;
case f.SFIXED64:
o = n || t == 0, r = A.Bit64;
break;
case f.SINT64:
o = n || t == 0;
break;
}
let i = f[e4].toLowerCase();
return [r, i, n || o];
}
var D = Symbol("@bufbuild/protobuf/unknown-fields"), Ft = { readUnknownFields: true, readerFactory: (e4) => new ce(e4) }, _t = { writeUnknownFields: true, writerFactory: () => new ae() };
function Gn(e4) {
return e4 ? Object.assign(Object.assign({}, Ft), e4) : Ft;
}
function Bn(e4) {
return e4 ? Object.assign(Object.assign({}, _t), e4) : _t;
}
function Jt() {
return { makeReadOptions: Gn, makeWriteOptions: Bn, listUnknownFields(e4) {
var t;
return (t = e4[D]) !== null && t !== void 0 ? t : [];
}, discardUnknownFields(e4) {
delete e4[D];
}, writeUnknownFields(e4, t) {
let r = e4[D];
if (r)
for (let o of r)
t.tag(o.no, o.wireType).raw(o.data);
}, onUnknownField(e4, t, n, r) {
let o = e4;
Array.isArray(o[D]) || (o[D] = []), o[D].push({ no: t, wireType: n, data: r });
}, readMessage(e4, t, n, r) {
let o = e4.getType(), i = n === void 0 ? t.len : t.pos + n;
for (; t.pos < i; ) {
let [s, a] = t.tag(), c = o.fields.find(s);
if (!c) {
let m = t.skip(a);
r.readUnknownFields && this.onUnknownField(e4, s, a, m);
continue;
}
let l = e4, h = c.repeated, y = c.localName;
switch (c.oneof && (l = l[c.oneof.localName], l.case != y && delete l.value, l.case = y, y = "value"), c.kind) {
case "scalar":
case "enum":
let m = c.kind == "enum" ? f.INT32 : c.T, p = ue;
if (c.kind == "scalar" && c.L > 0 && (p = Dn), h) {
let v = l[y];
if (a == A.LengthDelimited && m != f.STRING && m != f.BYTES) {
let T = t.uint32() + t.pos;
for (; t.pos < T; )
v.push(p(t, m));
} else
v.push(p(t, m));
} else
l[y] = p(t, m);
break;
case "message":
let g = c.T;
h ? l[y].push(le(t, new g(), r)) : l[y] instanceof w ? le(t, l[y], r) : (l[y] = le(t, new g(), r), g.fieldWrapper && !c.oneof && !c.repeated && (l[y] = g.fieldWrapper.unwrapField(l[y])));
break;
case "map":
let [b, I] = Ln(c, t, r);
l[y][b] = I;
break;
}
}
} };
}
function le(e4, t, n) {
return t.getType().runtime.bin.readMessage(t, e4, e4.uint32(), n), t;
}
function Ln(e4, t, n) {
let r = t.uint32(), o = t.pos + r, i, s;
for (; t.pos < o; ) {
let [a] = t.tag();
switch (a) {
case 1:
i = ue(t, e4.K);
break;
case 2:
switch (e4.V.kind) {
case "scalar":
s = ue(t, e4.V.T);
break;
case "enum":
s = t.int32();
break;
case "message":
s = le(t, new e4.V.T(), n);
break;
}
break;
}
}
if (i === void 0) {
let a = X(e4.K, R.BIGINT);
i = e4.K == f.BOOL ? a.toString() : a;
}
if (typeof i != "string" && typeof i != "number" && (i = i.toString()), s === void 0)
switch (e4.V.kind) {
case "scalar":
s = X(e4.V.T, R.BIGINT);
break;
case "enum":
s = 0;
break;
case "message":
s = new e4.V.T();
break;
}
return [i, s];
}
function Dn(e4, t) {
let n = ue(e4, t);
return typeof n == "bigint" ? n.toString() : n;
}
function ue(e4, t) {
switch (t) {
case f.STRING:
return e4.string();
case f.BOOL:
return e4.bool();
case f.DOUBLE:
return e4.double();
case f.FLOAT:
return e4.float();
case f.INT32:
return e4.int32();
case f.INT64:
return e4.int64();
case f.UINT64:
return e4.uint64();
case f.FIXED64:
return e4.fixed64();
case f.BYTES:
return e4.bytes();
case f.FIXED32:
return e4.fixed32();
case f.SFIXED32:
return e4.sfixed32();
case f.SFIXED64:
return e4.sfixed64();
case f.SINT64:
return e4.sint64();
case f.UINT32:
return e4.uint32();
case f.SINT32:
return e4.sint32();
}
}
function Mt(e4, t, n, r, o) {
e4.tag(n.no, A.LengthDelimited), e4.fork();
let i = r;
switch (n.K) {
case f.INT32:
case f.FIXED32:
case f.UINT32:
case f.SFIXED32:
case f.SINT32:
i = Number.parseInt(r);
break;
case f.BOOL:
N(r == "true" || r == "false"), i = r == "true";
break;
}
switch (V(e4, n.K, 1, i, true), n.V.kind) {
case "scalar":
V(e4, n.V.T, 2, o, true);
break;
case "enum":
V(e4, f.INT32, 2, o, true);
break;
case "message":
fe(e4, t, n.V.T, 2, o);
break;
}
e4.join();
}
function fe(e4, t, n, r, o) {
if (o !== void 0) {
let i = H(n, o);
e4.tag(r, A.LengthDelimited).bytes(i.toBinary(t));
}
}
function V(e4, t, n, r, o) {
let [i, s, a] = Ke(t, r);
(!a || o) && e4.tag(n, i)[s](r);
}
function Gt(e4, t, n, r) {
if (!r.length)
return;
e4.tag(n, A.LengthDelimited).fork();
let [, o] = Ke(t);
for (let i = 0; i < r.length; i++)
e4[o](r[i]);
e4.join();
}
function Bt() {
return Object.assign(Object.assign({}, Jt()), { writeMessage(e4, t, n) {
let r = e4.getType();
for (let o of r.fields.byNumber()) {
let i, s = o.repeated, a = o.localName;
if (o.oneof) {
let c = e4[o.oneof.localName];
if (c.case !== a)
continue;
i = c.value;
} else
i = e4[a];
switch (o.kind) {
case "scalar":
case "enum":
let c = o.kind == "enum" ? f.INT32 : o.T;
if (s)
if (o.packed)
Gt(t, c, o.no, i);
else
for (let l of i)
V(t, c, o.no, l, true);
else
i !== void 0 && V(t, c, o.no, i, !!o.oneof || o.opt);
break;
case "message":
if (s)
for (let l of i)
fe(t, n, o.T, o.no, l);
else
fe(t, n, o.T, o.no, i);
break;
case "map":
for (let [l, h] of Object.entries(i))
Mt(t, n, o, l, h);
break;
}
}
return n.writeUnknownFields && this.writeUnknownFields(e4, t), t;
} });
}
var _$2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), me = [];
for (let e4 = 0; e4 < _$2.length; e4++)
me[_$2[e4].charCodeAt(0)] = e4;
me[45] = _$2.indexOf("+");
me[95] = _$2.indexOf("/");
var J = { dec(e4) {
let t = e4.length * 3 / 4;
e4[e4.length - 2] == "=" ? t -= 2 : e4[e4.length - 1] == "=" && (t -= 1);
let n = new Uint8Array(t), r = 0, o = 0, i, s = 0;
for (let a = 0; a < e4.length; a++) {
if (i = me[e4.charCodeAt(a)], i === void 0)
switch (e4[a]) {
case "=":
o = 0;
case `
`:
case "\r":
case " ":
case " ":
continue;
default:
throw Error("invalid base64 string.");
}
switch (o) {
case 0:
s = i, o = 1;
break;
case 1:
n[r++] = s << 2 | (i & 48) >> 4, s = i, o = 2;
break;
case 2:
n[r++] = (s & 15) << 4 | (i & 60) >> 2, s = i, o = 3;
break;
case 3:
n[r++] = (s & 3) << 6 | i, o = 0;
break;
}
}
if (o == 1)
throw Error("invalid base64 string.");
return n.subarray(0, r);
}, enc(e4) {
let t = "", n = 0, r, o = 0;
for (let i = 0; i < e4.length; i++)
switch (r = e4[i], n) {
case 0:
t += _$2[r >> 2], o = (r & 3) << 4, n = 1;
break;
case 1:
t += _$2[o | r >> 4], o = (r & 15) << 2, n = 2;
break;
case 2:
t += _$2[o | r >> 6], t += _$2[r & 63], n = 0;
break;
}
return n && (t += _$2[o], t += "=", n == 1 && (t += "=")), t;
} };
var Lt = { ignoreUnknownFields: false }, Dt = { emitDefaultValues: false, enumAsInteger: false, useProtoFieldName: false, prettySpaces: 0 };
function Vn(e4) {
return e4 ? Object.assign(Object.assign({}, Lt), e4) : Lt;
}
function qn(e4) {
return e4 ? Object.assign(Object.assign({}, Dt), e4) : Dt;
}
function qt(e4) {
let t = e4($n, Vt);
return { makeReadOptions: Vn, makeWriteOptions: qn, readMessage(n, r, o, i) {
if (r == null || Array.isArray(r) || typeof r != "object")
throw new Error(`cannot decode message ${n.typeName} from JSON: ${this.debug(r)}`);
i = i != null ? i : new n();
let s = {};
for (let [a, c] of Object.entries(r)) {
let l = n.fields.findJsonName(a);
if (!l) {
if (!o.ignoreUnknownFields)
throw new Error(`cannot decode message ${n.typeName} from JSON: key "${a}" is unknown`);
continue;
}
let h = l.localName, y = i;
if (l.oneof) {
if (c === null && l.kind == "scalar")
continue;
let m = s[l.oneof.localName];
if (m)
throw new Error(`cannot decode message ${n.typeName} from JSON: multiple keys for oneof "${l.oneof.name}" present: "${m}", "${a}"`);
s[l.oneof.localName] = a, y = y[l.oneof.localName] = { case: h }, h = "value";
}
if (l.repeated) {
if (c === null)
continue;
if (!Array.isArray(c))
throw new Error(`cannot decode field ${n.typeName}.${l.name} from JSON: ${this.debug(c)}`);
let m = y[h];
for (let p of c) {
if (p === null)
throw new Error(`cannot decode field ${n.typeName}.${l.name} from JSON: ${this.debug(p)}`);
let g;
switch (l.kind) {
case "message":
g = l.T.fromJson(p, o);
break;
case "enum":
if (g = We(l.T, p, o.ignoreUnknownFields), g === void 0)
continue;
break;
case "scalar":
try {
g = z(l.T, p, l.L);
} catch (b) {
let I = `cannot decode field ${n.typeName}.${l.name} from JSON: ${this.debug(p)}`;
throw b instanceof Error && b.message.length > 0 && (I += `: ${b.message}`), new Error(I);
}
break;
}
m.push(g);
}
} else if (l.kind == "map") {
if (c === null)
continue;
if (Array.isArray(c) || typeof c != "object")
throw new Error(`cannot decode field ${n.typeName}.${l.name} from JSON: ${this.debug(c)}`);
let m = y[h];
for (let [p, g] of Object.entries(c)) {
if (g === null)
throw new Error(`cannot decode field ${n.typeName}.${l.name} from JSON: map value null`);
let b;
switch (l.V.kind) {
case "message":
b = l.V.T.fromJson(g, o);
break;
case "enum":
if (b = We(l.V.T, g, o.ignoreUnknownFields), b === void 0)
continue;
break;
case "scalar":
try {
b = z(l.V.T, g, R.BIGINT);
} catch (I) {
let v = `cannot decode map value for field ${n.typeName}.${l.name} from JSON: ${this.debug(c)}`;
throw I instanceof Error && I.message.length > 0 && (v += `: ${I.message}`), new Error(v);
}
break;
}
try {
m[z(l.K, l.K == f.BOOL ? p == "true" ? true : p == "false" ? false : p : p, R.BIGINT).toString()] = b;
} catch (I) {
let v = `cannot decode map key for field ${n.typeName}.${l.name} from JSON: ${this.debug(c)}`;
throw I instanceof Error && I.message.length > 0 && (v += `: ${I.message}`), new Error(v);
}
}
} else
switch (l.kind) {
case "message":
let m = l.T;
if (c === null && m.typeName != "google.protobuf.Value") {
if (l.oneof)
throw new Error(`cannot decode field ${n.typeName}.${l.name} from JSON: null is invalid for oneof field "${a}"`);
continue;
}
y[h] instanceof w ? y[h].fromJson(c, o) : (y[h] = m.fromJson(c, o), m.fieldWrapper && !l.oneof && (y[h] = m.fieldWrapper.unwrapField(y[h])));
break;
case "enum":
let p = We(l.T, c, o.ignoreUnknownFields);
p !== void 0 && (y[h] = p);
break;
case "scalar":
try {
y[h] = z(l.T, c, l.L);
} catch (g) {
let b = `cannot decode field ${n.typeName}.${l.name} from JSON: ${this.debug(c)}`;
throw g instanceof Error && g.message.length > 0 && (b += `: ${g.message}`), new Error(b);
}
break;
}
}
return i;
}, writeMessage(n, r) {
let o = n.getType(), i = {}, s;
try {
for (let a of o.fields.byMember()) {
let c;
if (a.kind == "oneof") {
let l = n[a.localName];
if (l.value === void 0)
continue;
if (s = a.findField(l.case), !s)
throw "oneof case not found: " + l.case;
c = t(s, l.value, r);
} else
s = a, c = t(s, n[s.localName], r);
c !== void 0 && (i[r.useProtoFieldName ? s.name : s.jsonName] = c);
}
} catch (a) {
let c = s ? `cannot encode field ${o.typeName}.${s.name} to JSON` : `cannot encode message ${o.typeName} to JSON`, l = a instanceof Error ? a.message : String(a);
throw new Error(c + (l.length > 0 ? `: ${l}` : ""));
}
return i;
}, readScalar: z, writeScalar: Vt, debug: $t };
}
function $t(e4) {
if (e4 === null)
return "null";
switch (typeof e4) {
case "object":
return Array.isArray(e4) ? "array" : "object";
case "string":
return e4.length > 100 ? "string" : `"${e4.split('"').join('\\"')}"`;
default:
return String(e4);
}
}
function z(e4, t, n) {
switch (e4) {
case f.DOUBLE:
case f.FLOAT:
if (t === null)
return 0;
if (t === "NaN")
return Number.NaN;
if (t === "Infinity")
return Number.POSITIVE_INFINITY;
if (t === "-Infinity")
return Number.NEGATIVE_INFINITY;
if (t === "" || typeof t == "string" && t.trim().length !== t.length || typeof t != "string" && typeof t != "number")
break;
let r = Number(t);
if (Number.isNaN(r) || !Number.isFinite(r))
break;
return e4 == f.FLOAT && oe(r), r;
case f.INT32:
case f.FIXED32:
case f.SFIXED32:
case f.SINT32:
case f.UINT32:
if (t === null)
return 0;
let o;
if (typeof t == "number" ? o = t : typeof t == "string" && t.length > 0 && t.trim().length === t.length && (o = Number(t)), o === void 0)
break;
return e4 == f.UINT32 ? j(o) : L(o), o;
case f.INT64:
case f.SFIXED64:
case f.SINT64:
if (t === null)
return x.zero;
if (typeof t != "number" && typeof t != "string")
break;
let i = x.parse(t);
return n ? i.toString() : i;
case f.FIXED64:
case f.UINT64:
if (t === null)
return x.zero;
if (typeof t != "number" && typeof t != "string")
break;
let s = x.uParse(t);
return n ? s.toString() : s;
case f.BOOL:
if (t === null)
return false;
if (typeof t != "boolean")
break;
return t;
case f.STRING:
if (t === null)
return "";
if (typeof t != "string")
break;
try {
encodeURIComponent(t);
} catch {
throw new Error("invalid UTF8");
}
return t;
case f.BYTES:
if (t === null || t === "")
return new Uint8Array(0);
if (typeof t != "string")
break;
return J.dec(t);
}
throw new Error();
}
function We(e4, t, n) {
if (t === null)
return 0;
switch (typeof t) {
case "number":
if (Number.isInteger(t))
return t;
break;
case "string":
let r = e4.findName(t);
if (r || n)
return r == null ? void 0 : r.no;
break;
}
throw new Error(`cannot decode enum ${e4.typeName} from JSON: ${$t(t)}`);
}
function $n(e4, t, n, r) {
var o;
if (t === void 0)
return t;
if (t === 0 && !n)
return;
if (r)
return t;
if (e4.typeName == "google.protobuf.NullValue")
return null;
let i = e4.findNumber(t);
return (o = i == null ? void 0 : i.name) !== null && o !== void 0 ? o : t;
}
function Vt(e4, t, n) {
if (t !== void 0)
switch (e4) {
case f.INT32:
case f.SFIXED32:
case f.SINT32:
case f.FIXED32:
case f.UINT32:
return N(typeof t == "number"), t != 0 || n ? t : void 0;
case f.FLOAT:
case f.DOUBLE:
return N(typeof t == "number"), Number.isNaN(t) ? "NaN" : t === Number.POSITIVE_INFINITY ? "Infinity" : t === Number.NEGATIVE_INFINITY ? "-Infinity" : t !== 0 || n ? t : void 0;
case f.STRING:
return N(typeof t == "string"), t.length > 0 || n ? t : void 0;
case f.BOOL:
return N(typeof t == "boolean"), t || n ? t : void 0;
case f.UINT64:
case f.FIXED64:
case f.INT64:
case f.SFIXED64:
case f.SINT64:
return N(typeof t == "bigint" || typeof t == "string" || typeof t == "number"), n || t != 0 ? t.toString(10) : void 0;
case f.BYTES:
return N(t instanceof Uint8Array), n || t.byteLength > 0 ? J.enc(t) : void 0;
}
}
function jt() {
return qt((e4, t) => function(r, o, i) {
if (r.kind == "map") {
let s = {};
switch (r.V.kind) {
case "scalar":
for (let [c, l] of Object.entries(o)) {
let h = t(r.V.T, l, true);
N(h !== void 0), s[c.toString()] = h;
}
break;
case "message":
for (let [c, l] of Object.entries(o))
s[c.toString()] = l.toJson(i);
break;
case "enum":
let a = r.V.T;
for (let [c, l] of Object.entries(o)) {
N(l === void 0 || typeof l == "number");
let h = e4(a, l, true, i.enumAsInteger);
N(h !== void 0), s[c.toString()] = h;
}
break;
}
return i.emitDefaultValues || Object.keys(s).length > 0 ? s : void 0;
} else if (r.repeated) {
let s = [];
switch (r.kind) {
case "scalar":
for (let a = 0; a < o.length; a++)
s.push(t(r.T, o[a], true));
break;
case "enum":
for (let a = 0; a < o.length; a++)
s.push(e4(r.T, o[a], true, i.enumAsInteger));
break;
case "message":
for (let a = 0; a < o.length; a++)
s.push(H(r.T, o[a]).toJson(i));
break;
}
return i.emitDefaultValues || s.length > 0 ? s : void 0;
} else
switch (r.kind) {
case "scalar":
return t(r.T, o, !!r.oneof || r.opt || i.emitDefaultValues);
case "enum":
return e4(r.T, o, !!r.oneof || r.opt || i.emitDefaultValues, i.enumAsInteger);
case "message":
return o !== void 0 ? H(r.T, o).toJson(i) : void 0;
}
});
}
function Ht() {
return { setEnumType: $e, initPartial(e4, t) {
if (e4 === void 0)
return;
let n = t.getType();
for (let r of n.fields.byMember()) {
let o = r.localName, i = t, s = e4;
if (s[o] !== void 0)
switch (r.kind) {
case "oneof":
let a = s[o].case;
if (a === void 0)
continue;
let c = r.findField(a), l = s[o].value;
c && c.kind == "message" && !(l instanceof c.T) ? l = new c.T(l) : c && c.kind === "scalar" && c.T === f.BYTES && (l = Y(l)), i[o] = { case: a, value: l };
break;
case "scalar":
case "enum":
let h = s[o];
r.T === f.BYTES && (h = r.repeated ? h.map(Y) : Y(h)), i[o] = h;
break;
case "map":
switch (r.V.kind) {
case "scalar":
case "enum":
if (r.V.T === f.BYTES)
for (let [p, g] of Object.entries(s[o]))
i[o][p] = Y(g);
else
Object.assign(i[o], s[o]);
break;
case "message":
let m = r.V.T;
for (let p of Object.keys(s[o])) {
let g = s[o][p];
m.fieldWrapper || (g = new m(g)), i[o][p] = g;
}
break;
}
break;
case "message":
let y = r.T;
if (r.repeated)
i[o] = s[o].map((m) => m instanceof y ? m : new y(m));
else if (s[o] !== void 0) {
let m = s[o];
y.fieldWrapper ? y.typeName === "google.protobuf.BytesValue" ? i[o] = Y(m) : i[o] = m : i[o] = m instanceof y ? m : new y(m);
}
break;
}
}
}, equals(e4, t, n) {
return t === n ? true : !t || !n ? false : e4.fields.byMember().every((r) => {
let o = t[r.localName], i = n[r.localName];
if (r.repeated) {
if (o.length !== i.length)
return false;
switch (r.kind) {
case "message":
return o.every((s, a) => r.T.equals(s, i[a]));
case "scalar":
return o.every((s, a) => F(r.T, s, i[a]));
case "enum":
return o.every((s, a) => F(f.INT32, s, i[a]));
}
throw new Error(`repeated cannot contain ${r.kind}`);
}
switch (r.kind) {
case "message":
return r.T.equals(o, i);
case "enum":
return F(f.INT32, o, i);
case "scalar":
return F(r.T, o, i);
case "oneof":
if (o.case !== i.case)
return false;
let s = r.findField(o.case);
if (s === void 0)
return true;
switch (s.kind) {
case "message":
return s.T.equals(o.value, i.value);
case "enum":
return F(f.INT32, o.value, i.value);
case "scalar":
return F(s.T, o.value, i.value);
}
throw new Error(`oneof cannot contain ${s.kind}`);
case "map":
let a = Object.keys(o).concat(Object.keys(i));
switch (r.V.kind) {
case "message":
let c = r.V.T;
return a.every((h) => c.equals(o[h], i[h]));
case "enum":
return a.every((h) => F(f.INT32, o[h], i[h]));
case "scalar":
let l = r.V.T;
return a.every((h) => F(l, o[h], i[h]));
}
break;
}
});
}, clone(e4) {
let t = e4.getType(), n = new t(), r = n;
for (let o of t.fields.byMember()) {
let i = e4[o.localName], s;
if (o.repeated)
s = i.map(de);
else if (o.kind == "map") {
s = r[o.localName];
for (let [a, c] of Object.entries(i))
s[a] = de(c);
} else
o.kind == "oneof" ? s = o.findField(i.case) ? { case: i.case, value: de(i.value) } : { case: void 0 } : s = de(i);
r[o.localName] = s;
}
return n;
} };
}
function de(e4) {
if (e4 === void 0)
return e4;
if (e4 instanceof w)
return e4.clone();
if (e4 instanceof Uint8Array) {
let t = new Uint8Array(e4.byteLength);
return t.set(e4), t;
}
return e4;
}
function Y(e4) {
return e4 instanceof Uint8Array ? e4 : new Uint8Array(e4);
}
var pe = class {
constructor(t, n) {
this._fields = t, this._normalizer = n;
}
findJsonName(t) {
if (!this.jsonNames) {
let n = {};
for (let r of this.list())
n[r.jsonName] = n[r.name] = r;
this.jsonNames = n;
}
return this.jsonNames[t];
}
find(t) {
if (!this.numbers) {
let n = {};
for (let r of this.list())
n[r.no] = r;
this.numbers = n;
}
return this.numbers[t];
}
list() {
return this.all || (this.all = this._normalizer(this._fields)), this.all;
}
byNumber() {
return this.numbersAsc || (this.numbersAsc = this.list().concat().sort((t, n) => t.no - n.no)), this.numbersAsc;
}
byMember() {
if (!this.members) {
this.members = [];
let t = this.members, n;
for (let r of this.list())
r.oneof ? r.oneof !== n && (n = r.oneof, t.push(n)) : t.push(r);
}
return this.members;
}
};
function Qe(e4, t) {
let n = Yt(e4);
return t ? n : zn(Xn(n));
}
function Xt(e4) {
return Qe(e4, false);
}
var zt = Yt;
function Yt(e4) {
let t = false, n = [];
for (let r = 0; r < e4.length; r++) {
let o = e4.charAt(r);
switch (o) {
case "_":
t = true;
break;
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
n.push(o), t = false;
break;
default:
t && (t = false, o = o.toUpperCase()), n.push(o);
break;
}
}
return n.join("");
}
var jn = /* @__PURE__ */ new Set(["constructor", "toString", "toJSON", "valueOf"]), Hn = /* @__PURE__ */ new Set(["getType", "clone", "equals", "fromBinary", "fromJson", "fromJsonString", "toBinary", "toJson", "toJsonString", "toObject"]), Kt = (e4) => `${e4}$`, Xn = (e4) => Hn.has(e4) ? Kt(e4) : e4, zn = (e4) => jn.has(e4) ? Kt(e4) : e4;
var he = class {
constructor(t) {
this.kind = "oneof", this.repeated = false, this.packed = false, this.opt = false, this.default = void 0, this.fields = [], this.name = t, this.localName = Xt(t);
}
addField(t) {
N(t.oneof === this, `field ${t.name} not one of ${this.name}`), this.fields.push(t);
}
findField(t) {
if (!this._lookup) {
this._lookup = /* @__PURE__ */ Object.create(null);
for (let n = 0; n < this.fields.length; n++)
this._lookup[this.fields[n].localName] = this.fields[n];
}
return this._lookup[t];
}
};
var d = vt("proto3", jt(), Bt(), Object.assign(Object.assign({}, Ht()), { newFieldList(e4) {
return new pe(e4, Yn);
}, initFields(e4) {
for (let t of e4.getType().fields.byMember()) {
if (t.opt)
continue;
let n = t.localName, r = e4;
if (t.repeated) {
r[n] = [];
continue;
}
switch (t.kind) {
case "oneof":
r[n] = { case: void 0 };
break;
case "enum":
r[n] = 0;
break;
case "map":
r[n] = {};
break;
case "scalar":
r[n] = X(t.T, t.L);
break;
}
}
} }));
function Yn(e4) {
var t, n, r, o;
let i = [], s;
for (let a of typeof e4 == "function" ? e4() : e4) {
let c = a;
if (c.localName = Qe(a.name, a.oneof !== void 0), c.jsonName = (t = a.jsonName) !== null && t !== void 0 ? t : zt(a.name), c.repeated = (n = a.repeated) !== null && n !== void 0 ? n : false, a.kind == "scalar" && (c.L = (r = a.L) !== null && r !== void 0 ? r : R.BIGINT), c.packed = (o = a.packed) !== null && o !== void 0 ? o : a.kind == "enum" || a.kind == "scalar" && a.T != f.BYTES && a.T != f.STRING, a.oneof !== void 0) {
let l = typeof a.oneof == "string" ? a.oneof : a.oneof.name;
(!s || s.name != l) && (s = new he(l)), c.oneof = s, s.addField(c);
}
i.push(c);
}
return i;
}
var P;
(function(e4) {
e4[e4.Unary = 0] = "Unary", e4[e4.ServerStreaming = 1] = "ServerStreaming", e4[e4.ClientStreaming = 2] = "ClientStreaming", e4[e4.BiDiStreaming = 3] = "BiDiStreaming";
})(P || (P = {}));
var K;
(function(e4) {
e4[e4.NoSideEffects = 1] = "NoSideEffects", e4[e4.Idempotent = 2] = "Idempotent";
})(K || (K = {}));
function W(e4) {
let t = E[e4];
return typeof t != "string" ? e4.toString() : t[0].toLowerCase() + t.substring(1).replace(/[A-Z]/g, (n) => "_" + n.toLowerCase());
}
var ye;
function Wt(e4) {
if (!ye) {
ye = {};
for (let t of Object.values(E))
typeof t != "string" && (ye[W(t)] = t);
}
return ye[e4];
}
var S = class e extends Error {
constructor(t, n = E.Unknown, r, o, i) {
super(Kn(t, n)), this.name = "ConnectError", Object.setPrototypeOf(this, new.target.prototype), this.rawMessage = t, this.code = n, this.metadata = new Headers(r != null ? r : {}), this.details = o != null ? o : [], this.cause = i;
}
static from(t, n = E.Unknown) {
return t instanceof e ? t : t instanceof Error ? t.name == "AbortError" ? new e(t.message, E.Canceled) : new e(t.message, n, void 0, void 0, t) : new e(String(t), n, void 0, void 0, t);
}
findDetails(t) {
let n = "typeName" in t ? { findMessage: (o) => o === t.typeName ? t : void 0 } : t, r = [];
for (let o of this.details) {
if (o instanceof w) {
n.findMessage(o.getType().typeName) && r.push(o);
continue;
}
let i = n.findMessage(o.type);
if (i)
try {
r.push(i.fromBinary(o.value));
} catch {
}
}
return r;
}
};
function Kn(e4, t) {
return e4.length ? `[${W(t)}] ${e4}` : `[${W(t)}]`;
}
function Ze(...e4) {
let t = new Headers();
for (let n of e4)
n.forEach((r, o) => {
t.append(o, r);
});
return t;
}
function Qt(e4, t) {
let n = {};
for (let [r, o] of Object.entries(e4.methods)) {
let i = t(Object.assign(Object.assign({}, o), { localName: r, service: e4 }));
i != null && (n[r] = i);
}
return n;
}
function et(e4) {
let t, n = new Uint8Array(0);
function r(o) {
let i = new Uint8Array(n.length + o.length);
i.set(n), i.set(o, n.length), n = i;
}
return new ReadableStream({ start() {
t = e4.getReader();
}, async pull(o) {
let i;
for (; ; ) {
if (i === void 0 && n.byteLength >= 5) {
let c = 0;
for (let l = 1; l < 5; l++)
c = (c << 8) + n[l];
i = { flags: n[0], length: c };
}
if (i !== void 0 && n.byteLength >= i.length + 5)
break;
let a = await t.read();
if (a.done)
break;
r(a.value);
}
if (i === void 0) {
if (n.byteLength == 0) {
o.close();
return;
}
o.error(new S("premature end of stream", E.DataLoss));
return;
}
let s = n.subarray(5, 5 + i.length);
n = n.subarray(5 + i.length), o.enqueue({ flags: i.flags, data: s });
} });
}
function tt(e4, t) {
let n = new Uint8Array(t.length + 5);
n.set(t, 5);
let r = new DataView(n.buffer, n.byteOffset, n.byteLength);
return r.setUint8(0, e4), r.setUint32(1, t.length), n;
}
var Wn = function(e4) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var t = e4[Symbol.asyncIterator], n;
return t ? t.call(e4) : (e4 = typeof __values == "function" ? __values(e4) : e4[Symbol.iterator](), n = {}, r("next"), r("throw"), r("return"), n[Symbol.asyncIterator] = function() {
return this;
}, n);
function r(i) {
n[i] = e4[i] && function(s) {
return new Promise(function(a, c) {
s = e4[i](s), o(a, c, s.done, s.value);
});
};
}
function o(i, s, a, c) {
Promise.resolve(c).then(function(l) {
i({ value: l, done: a });
}, s);
}
}, Q = function(e4) {
return this instanceof Q ? (this.v = e4, this) : new Q(e4);
}, Qn = function(e4, t, n) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var r = n.apply(e4, t || []), o, i = [];
return o = {}, s("next"), s("throw"), s("return"), o[Symbol.asyncIterator] = function() {
return this;
}, o;
function s(m) {
r[m] && (o[m] = function(p) {
return new Promise(function(g, b) {
i.push([m, p, g, b]) > 1 || a(m, p);
});
});
}
function a(m, p) {
try {
c(r[m](p));
} catch (g) {
y(i[0][3], g);
}
}
function c(m) {
m.value instanceof Q ? Promise.resolve(m.value.v).then(l, h) : y(i[0][2], m);
}
function l(m) {
a("next", m);
}
function h(m) {
a("throw", m);
}
function y(m, p) {
m(p), i.shift(), i.length && a(i[0][0], i[0][1]);
}
}, Zn = function(e4) {
var t, n;
return t = {}, r("next"), r("throw", function(o) {
throw o;
}), r("return"), t[Symbol.iterator] = function() {
return this;
}, t;
function r(o, i) {
t[o] = e4[o] ? function(s) {
return (n = !n) ? { value: Q(e4[o](s)), done: false } : i ? i(s) : s;
} : i;
}
};
function Zt(e4) {
return Qn(this, arguments, function* () {
yield Q(yield* Zn(Wn(e4)));
});
}
var en = function(e4) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var t = e4[Symbol.asyncIterator], n;
return t ? t.call(e4) : (e4 = typeof __values == "function" ? __values(e4) : e4[Symbol.iterator](), n = {}, r("next"), r("throw"), r("return"), n[Symbol.asyncIterator] = function() {
return this;
}, n);
function r(i) {
n[i] = e4[i] && function(s) {
return new Promise(function(a, c) {
s = e4[i](s), o(a, c, s.done, s.value);
});
};
}
function o(i, s, a, c) {
Promise.resolve(c).then(function(l) {
i({ value: l, done: a });
}, s);
}
}, q = function(e4) {
return this instanceof q ? (this.v = e4, this) : new q(e4);
}, er = function(e4) {
var t, n;
return t = {}, r("next"), r("throw", function(o) {
throw o;
}), r("return"), t[Symbol.iterator] = function() {
return this;
}, t;
function r(o, i) {
t[o] = e4[o] ? function(s) {
return (n = !n) ? { value: q(e4[o](s)), done: false } : i ? i(s) : s;
} : i;
}
}, tr = function(e4, t, n) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var r = n.apply(e4, t || []), o, i = [];
return o = {}, s("next"), s("throw"), s("return"), o[Symbol.asyncIterator] = function() {
return this;
}, o;
function s(m) {
r[m] && (o[m] = function(p) {
return new Promise(function(g, b) {
i.push([m, p, g, b]) > 1 || a(m, p);
});
});
}
function a(m, p) {
try {
c(r[m](p));
} catch (g) {
y(i[0][3], g);
}
}
function c(m) {
m.value instanceof q ? Promise.resolve(m.value.v).then(l, h) : y(i[0][2], m);
}
function l(m) {
a("next", m);
}
function h(m) {
a("throw", m);
}
function y(m, p) {
m(p), i.shift(), i.length && a(i[0][0], i[0][1]);
}
};
function nt(e4, t) {
return Qt(e4, (n) => {
switch (n.kind) {
case P.Unary:
return nr(t, e4, n);
case P.ServerStreaming:
return rr(t, e4, n);
case P.ClientStreaming:
return or(t, e4, n);
case P.BiDiStreaming:
return ir(t, e4, n);
default:
return null;
}
});
}
function nr(e4, t, n) {
return async function(r, o) {
var i, s;
let a = await e4.unary(t, n, o == null ? void 0 : o.signal, o == null ? void 0 : o.timeoutMs, o == null ? void 0 : o.headers, r, o == null ? void 0 : o.contextValues);
return (i = o == null ? void 0 : o.onHeader) === null || i === void 0 || i.call(o, a.header), (s = o == null ? void 0 : o.onTrailer) === null || s === void 0 || s.call(o, a.trailer), a.message;
};
}
function rr(e4, t, n) {
return function(r, o) {
return tn(e4.stream(t, n, o == null ? void 0 : o.signal, o == null ? void 0 : o.timeoutMs, o == null ? void 0 : o.headers, Zt([r]), o == null ? void 0 : o.contextValues), o);
};
}
function or(e4, t, n) {
return async function(r, o) {
var i, s, a, c, l, h;
let y = await e4.stream(t, n, o == null ? void 0 : o.signal, o == null ? void 0 : o.timeoutMs, o == null ? void 0 : o.headers, r, o == null ? void 0 : o.contextValues);
(l = o == null ? void 0 : o.onHeader) === null || l === void 0 || l.call(o, y.header);
let m;
try {
for (var p = true, g = en(y.message), b; b = await g.next(), i = b.done, !i; p = true)
c = b.value, p = false, m = c;
} catch (I) {
s = { error: I };
} finally {
try {
!p && !i && (a = g.return) && await a.call(g);
} finally {
if (s)
throw s.error;
}
}
if (!m)
throw new S("protocol error: missing response message", E.Internal);
return (h = o == null ? void 0 : o.onTrailer) === null || h === void 0 || h.call(o, y.trailer), m;
};
}
function ir(e4, t, n) {
return function(r, o) {
return tn(e4.stream(t, n, o == null ? void 0 : o.signal, o == null ? void 0 : o.timeoutMs, o == null ? void 0 : o.headers, r, o == null ? void 0 : o.contextValues), o);
};
}
function tn(e4, t) {
let n = function() {
var r, o;
return tr(this, arguments, function* () {
let i = yield q(e4);
(r = t == null ? void 0 : t.onHeader) === null || r === void 0 || r.call(t, i.header), yield q(yield* er(en(i.message))), (o = t == null ? void 0 : t.onTrailer) === null || o === void 0 || o.call(t, i.trailer);
});
}()[Symbol.asyncIterator]();
return { [Symbol.asyncIterator]: () => ({ next: () => n.next() }) };
}
function nn(...e4) {
let t = new AbortController(), n = e4.filter((o) => o !== void 0).concat(t.signal);
for (let o of n) {
if (o.aborted) {
r.apply(o);
break;
}
o.addEventListener("abort", r);
}
function r() {
t.signal.aborted || t.abort(rt(this));
for (let o of n)
o.removeEventListener("abort", r);
}
return t;
}
function rn(e4) {
let t = new AbortController(), n = () => {
t.abort(new S("the operation timed out", E.DeadlineExceeded));
}, r;
return e4 !== void 0 && (e4 <= 0 ? n() : r = setTimeout(n, e4)), { signal: t.signal, cleanup: () => clearTimeout(r) };
}
function rt(e4) {
if (!e4.aborted)
return;
if (e4.reason !== void 0)
return e4.reason;
let t = new Error("This operation was aborted");
return t.name = "AbortError", t;
}
function ge() {
return { get(e4) {
return e4.id in this ? this[e4.id] : e4.defaultValue;
}, set(e4, t) {
return this[e4.id] = t, this;
}, delete(e4) {
return delete this[e4.id], this;
} };
}
function be(e4, t, n) {
let r = typeof t == "string" ? t : t.typeName, o = typeof n == "string" ? n : n.name;
return e4.toString().replace(/\/?$/, `/${r}/${o}`);
}
function ot(e4, t) {
return t instanceof w ? t : new e4(t);
}
function on(e4, t) {
function n(r) {
return r.done === true ? r : { done: r.done, value: ot(e4, r.value) };
}
return { [Symbol.asyncIterator]() {
let r = t[Symbol.asyncIterator](), o = { next: () => r.next().then(n) };
return r.throw !== void 0 && (o.throw = (i) => r.throw(i).then(n)), r.return !== void 0 && (o.return = (i) => r.return(i).then(n)), o;
} };
}
function Ee(e4) {
var t;
let n = Object.assign({}, e4);
return (t = n.ignoreUnknownFields) !== null && t !== void 0 || (n.ignoreUnknownFields = true), n;
}
function we(e4, t, n, r) {
let o = t ? sn(e4.I, r) : an(e4.I, n);
return { parse: (t ? sn(e4.O, r) : an(e4.O, n)).parse, serialize: o.serialize };
}
function sn(e4, t) {
return { parse(n) {
try {
return e4.fromBinary(n, t);
} catch (r) {
let o = r instanceof Error ? r.message : String(r);
throw new S(`parse binary: ${o}`, E.InvalidArgument);
}
}, serialize(n) {
try {
return n.toBinary(t);
} catch (r) {
let o = r instanceof Error ? r.message : String(r);
throw new S(`serialize binary: ${o}`, E.Internal);
}
} };
}
function an(e4, t) {
var n, r;
let o = (n = t == null ? void 0 : t.textEncoder) !== null && n !== void 0 ? n : new TextEncoder(), i = (r = t == null ? void 0 : t.textDecoder) !== null && r !== void 0 ? r : new TextDecoder(), s = Ee(t);
return { parse(a) {
try {
let c = i.decode(a);
return e4.fromJsonString(c, s);
} catch (c) {
throw S.from(c, E.InvalidArgument);
}
}, serialize(a) {
try {
let c = a.toJsonString(s);
return o.encode(c);
} catch (c) {
throw S.from(c, E.Internal);
}
} };
}
var sr = /^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;
var cn = "application/proto", ln = "application/json", un = "application/connect+proto", fn = "application/connect+json";
function mn(e4) {
let t = e4 == null ? void 0 : e4.match(sr);
if (!t)
return;
let n = !!t[1], r = !!t[3];
return { stream: n, binary: r };
}
function Z(e4, t, n) {
if (t && new Headers(t).forEach((s, a) => n.metadata.append(a, s)), typeof e4 != "object" || e4 == null || Array.isArray(e4) || !("code" in e4) || typeof e4.code != "string")
throw n;
let r = Wt(e4.code);
if (r === void 0)
throw n;
let o = e4.message;
if (o != null && typeof o != "string")
throw n;
let i = new S(o != null ? o : "", r, t);
if ("details" in e4 && Array.isArray(e4.details))
for (let s of e4.details) {
if (s === null || typeof s != "object" || Array.isArray(s) || typeof s.type != "string" || typeof s.value != "string" || "debug" in s && typeof s.debug != "object")
throw n;
try {
i.details.push({ type: s.type, value: J.dec(s.value), debug: s.debug });
} catch {
throw n;
}
}
return i;
}
var xe = 2;
function it(e4) {
let t = new S("invalid end stream", E.InvalidArgument), n;
try {
n = JSON.parse(typeof e4 == "string" ? e4 : new TextDecoder().decode(e4));
} catch {
throw t;
}
if (typeof n != "object" || n == null || Array.isArray(n))
throw t;
let r = new Headers();
if ("metadata" in n) {
if (typeof n.metadata != "object" || n.metadata == null || Array.isArray(n.metadata))
throw t;
for (let [i, s] of Object.entries(n.metadata)) {
if (!Array.isArray(s) || s.some((a) => typeof a != "string"))
throw t;
for (let a of s)
r.append(i, a);
}
}
let o = "error" in n ? Z(n.error, r, t) : void 0;
return { metadata: r, error: o };
}
var ee = "Content-Type", dn = "Content-Length", Ie = "Content-Encoding";
var st = "Accept-Encoding";
var pn = "Connect-Timeout-Ms", Te = "Connect-Protocol-Version", hn = "User-Agent";
function yn(e4) {
switch (e4) {
case 400:
return E.InvalidArgument;
case 401:
return E.Unauthenticated;
case 403:
return E.PermissionDenied;
case 404:
return E.Unimplemented;
case 408:
return E.DeadlineExceeded;
case 409:
return E.Aborted;
case 412:
return E.FailedPrecondition;
case 413:
return E.ResourceExhausted;
case 415:
return E.Internal;
case 429:
return E.Unavailable;
case 431:
return E.ResourceExhausted;
case 502:
return E.Unavailable;
case 503:
return E.Unavailable;
case 504:
return E.Unavailable;
default:
return E.Unknown;
}
}
function Se(e4) {
let t = new Headers(), n = new Headers();
return e4.forEach((r, o) => {
o.toLowerCase().startsWith("trailer-") ? n.set(o.substring(8), r) : t.set(o, r);
}), [t, n];
}
var Ae = "1";
function Ne(e4, t, n, r) {
let o = new Headers(r != null ? r : {});
return n !== void 0 && o.set(pn, `${n}`), o.set(ee, e4 == P.Unary ? t ? cn : ln : t ? un : fn), o.set(Te, Ae), o.set(hn, "connect-es/1.1.3"), o;
}
function Pe(e4, t, n) {
let r = n.get("Content-Type"), o = mn(r);
if (t !== 200) {
let i = new S(`HTTP ${t}`, yn(t), n);
if (e4 == P.Unary && o && !o.binary)
return { isUnaryError: true, unaryError: i };
throw i;
}
return { isUnaryError: false };
}
var gn = "application/";
function cr(e4, t) {
return t ? J.enc(e4).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "") : encodeURIComponent(new TextDecoder().decode(e4));
}
function at(e4, t, n) {
let r = `?connect=v${Ae}`, o = e4.header.get(ee);
(o == null ? void 0 : o.indexOf(gn)) === 0 && (r += "&encoding=" + encodeURIComponent(o.slice(gn.length)));
let i = e4.header.get(Ie);
i !== null && i !== "identity" && (r += "&compression=" + encodeURIComponent(i), n = true), n && (r += "&base64=1"), r += "&message=" + cr(t, n);
let s = e4.url + r, a = new Headers(e4.header);
return [Te, ee, dn, Ie, st].forEach((c) => a.delete(c)), Object.assign(Object.assign({}, e4), { init: Object.assign(Object.assign({}, e4.init), { method: "GET" }), url: s, header: a });
}
function ct(e4) {
let t = En(e4.next, e4.interceptors), [n, r, o] = bn(e4), i = Object.assign(Object.assign({}, e4.req), { message: ot(e4.req.method.I, e4.req.message), signal: n });
return t(i).then((s) => (o(), s), r);
}
function lt(e4) {
let t = En(e4.next, e4.interceptors), [n, r, o] = bn(e4), i = Object.assign(Object.assign({}, e4.req), { message: on(e4.req.method.I, e4.req.message), signal: n }), s = false;
return n.addEventListener("abort", function() {
var a, c;
let l = e4.req.message[Symbol.asyncIterator]();
s || (a = l.throw) === null || a === void 0 || a.call(l, this.reason).catch(() => {
}), (c = l.return) === null || c === void 0 || c.call(l).catch(() => {
});
}), t(i).then((a) => Object.assign(Object.assign({}, a), { message: { [Symbol.asyncIterator]() {
let c = a.message[Symbol.asyncIterator]();
return { next() {
return c.next().then((l) => (l.done == true && (s = true, o()), l), r);
} };
} } }), r);
}
function bn(e4) {
let { signal: t, cleanup: n } = rn(e4.timeoutMs), r = nn(e4.signal, t);
return [r.signal, function(i) {
let s = S.from(t.aborted ? rt(t) : i);
return r.abort(s), n(), Promise.reject(s);
}, function() {
n(), r.abort();
}];
}
function En(e4, t) {
var n;
return (n = t == null ? void 0 : t.concat().reverse().reduce((r, o) => o(r), e4)) !== null && n !== void 0 ? n : e4;
}
var ke = ((n) => (n[n.UNSPECIFIED = 0] = "UNSPECIFIED", n[n.JUPYTER_FORMAT = 77] = "JUPYTER_FORMAT", n))(ke || {});
d.util.setEnumType(ke, "exa.codeium_common_pb.ExperimentKey", [{ no: 0, name: "UNSPECIFIED" }, { no: 77, name: "JUPYTER_FORMAT" }]);
var ut = ((t) => (t[t.CODEIUM = 0] = "CODEIUM", t))(ut || {});
d.util.setEnumType(ut, "exa.codeium_common_pb.AuthSource", [{ no: 0, name: "AUTH_SOURCE_CODEIUM" }]);
var ft = ((i) => (i[i.UNSPECIFIED = 0] = "UNSPECIFIED", i[i.ENABLE_CODEIUM = 1] = "ENABLE_CODEIUM", i[i.DISABLE_CODEIUM = 2] = "DISABLE_CODEIUM", i[i.SHOW_PREVIOUS_COMPLETION = 3] = "SHOW_PREVIOUS_COMPLETION", i[i.SHOW_NEXT_COMPLETION = 4] = "SHOW_NEXT_COMPLETION", i))(ft || {});
d.util.setEnumType(ft, "exa.codeium_common_pb.EventType", [{ no: 0, name: "EVENT_TYPE_UNSPECIFIED" }, { no: 1, name: "EVENT_TYPE_ENABLE_CODEIUM" }, { no: 2, name: "EVENT_TYPE_DISABLE_CODEIUM" }, { no: 3, name: "EVENT_TYPE_SHOW_PREVIOUS_COMPLETION" }, { no: 4, name: "EVENT_TYPE_SHOW_NEXT_COMPLETION" }]);
var Oe = ((o) => (o[o.UNSPECIFIED = 0] = "UNSPECIFIED", o[o.TYPING_AS_SUGGESTED = 1] = "TYPING_AS_SUGGESTED", o[o.CACHE = 2] = "CACHE", o[o.NETWORK = 3] = "NETWORK", o))(Oe || {});
d.util.setEnumType(Oe, "exa.codeium_common_pb.CompletionSource", [{ no: 0, name: "COMPLETION_SOURCE_UNSPECIFIED" }, { no: 1, name: "COMPLETION_SOURCE_TYPING_AS_SUGGESTED" }, { no: 2, name: "COMPLETION_SOURCE_CACHE" }, { no: 3, name: "COMPLETION_SOURCE_NETWORK" }]);
var $ = ((u) => (u[u.UNSPECIFIED = 0] = "UNSPECIFIED", u[u.C = 1] = "C", u[u.CLOJURE = 2] = "CLOJURE", u[u.COFFEESCRIPT = 3] = "COFFEESCRIPT", u[u.CPP = 4] = "CPP", u[u.CSHARP = 5] = "CSHARP", u[u.CSS = 6] = "CSS", u[u.CUDACPP = 7] = "CUDACPP", u[u.DOCKERFILE = 8] = "DOCKERFILE", u[u.GO = 9] = "GO", u[u.GROOVY = 10] = "GROOVY", u[u.HANDLEBARS = 11] = "HANDLEBARS", u[u.HASKELL = 12] = "HASKELL", u[u.HCL = 13] = "HCL", u[u.HTML = 14] = "HTML", u[u.INI = 15] = "INI", u[u.JAVA = 16] = "JAVA", u[u.JAVASCRIPT = 17] = "JAVASCRIPT", u[u.JSON = 18] = "JSON", u[u.JULIA = 19] = "JULIA", u[u.KOTLIN = 20] = "KOTLIN", u[u.LATEX = 21] = "LATEX", u[u.LESS = 22] = "LESS", u[u.LUA = 23] = "LUA", u[u.MAKEFILE = 24] = "MAKEFILE", u[u.MARKDOWN = 25] = "MARKDOWN", u[u.OBJECTIVEC = 26] = "OBJECTIVEC", u[u.OBJECTIVECPP = 27] = "OBJECTIVECPP", u[u.PERL = 28] = "PERL", u[u.PHP = 29] = "PHP", u[u.PLAINTEXT = 30] = "PLAINTEXT", u[u.PROTOBUF = 31] = "PROTOBUF", u[u.PBTXT = 32] = "PBTXT", u[u.PYTHON = 33] = "PYTHON", u[u.R = 34] = "R", u[u.RUBY = 35] = "RUBY", u[u.RUST = 36] = "RUST", u[u.SASS = 37] = "SASS", u[u.SCALA = 38] = "SCALA", u[u.SCSS = 39] = "SCSS", u[u.SHELL = 40] = "SHELL", u[u.SQL = 41] = "SQL", u[u.STARLARK = 42] = "STARLARK", u[u.SWIFT = 43] = "SWIFT", u[u.TSX = 44] = "TSX", u[u.TYPESCRIPT = 45] = "TYPESCRIPT", u[u.VISUALBASIC = 46] = "VISUALBASIC", u[u.VUE = 47] = "VUE", u[u.XML = 48] = "XML", u[u.XSL = 49] = "XSL", u[u.YAML = 50] = "YAML", u[u.SVELTE = 51] = "SVELTE", u[u.TOML = 52] = "TOML", u[u.DART = 53] = "DART", u[u.RST = 54] = "RST", u[u.OCAML = 55] = "OCAML", u[u.CMAKE = 56] = "CMAKE", u[u.PASCAL = 57] = "PASCAL", u[u.ELIXIR = 58] = "ELIXIR", u[u.FSHARP = 59] = "FSHARP", u[u.LISP = 60] = "LISP", u[u.MATLAB = 61] = "MATLAB", u[u.POWERSHELL = 62] = "POWERSHELL", u[u.SOLIDITY = 63] = "SOLIDITY", u[u.ADA = 64] = "ADA", u[u.OCAML_INTERFACE = 65] = "OCAML_INTERFACE", u))($ || {});
d.util.setEnumType($, "exa.codeium_common_pb.Language", [{ no: 0, name: "LANGUAGE_UNSPECIFIED" }, { no: 1, name: "LANGUAGE_C" }, { no: 2, name: "LANGUAGE_CLOJURE" }, { no: 3, name: "LANGUAGE_COFFEESCRIPT" }, { no: 4, name: "LANGUAGE_CPP" }, { no: 5, name: "LANGUAGE_CSHARP" }, { no: 6, name: "LANGUAGE_CSS" }, { no: 7, name: "LANGUAGE_CUDACPP" }, { no: 8, name: "LANGUAGE_DOCKERFILE" }, { no: 9, name: "LANGUAGE_GO" }, { no: 10, name: "LANGUAGE_GROOVY" }, { no: 11, name: "LANGUAGE_HANDLEBARS" }, { no: 12, name: "LANGUAGE_HASKELL" }, { no: 13, name: "LANGUAGE_HCL" }, { no: 14, name: "LANGUAGE_HTML" }, { no: 15, name: "LANGUAGE_INI" }, { no: 16, name: "LANGUAGE_JAVA" }, { no: 17, name: "LANGUAGE_JAVASCRIPT" }, { no: 18, name: "LANGUAGE_JSON" }, { no: 19, name: "LANGUAGE_JULIA" }, { no: 20, name: "LANGUAGE_KOTLIN" }, { no: 21, name: "LANGUAGE_LATEX" }, { no: 22, name: "LANGUAGE_LESS" }, { no: 23, name: "LANGUAGE_LUA" }, { no: 24, name: "LANGUAGE_MAKEFILE" }, { no: 25, name: "LANGUAGE_MARKDOWN" }, { no: 26, name: "LANGUAGE_OBJECTIVEC" }, { no: 27, name: "LANGUAGE_OBJECTIVECPP" }, { no: 28, name: "LANGUAGE_PERL" }, { no: 29, name: "LANGUAGE_PHP" }, { no: 30, name: "LANGUAGE_PLAINTEXT" }, { no: 31, name: "LANGUAGE_PROTOBUF" }, { no: 32, name: "LANGUAGE_PBTXT" }, { no: 33, name: "LANGUAGE_PYTHON" }, { no: 34, name: "LANGUAGE_R" }, { no: 35, name: "LANGUAGE_RUBY" }, { no: 36, name: "LANGUAGE_RUST" }, { no: 37, name: "LANGUAGE_SASS" }, { no: 38, name: "LANGUAGE_SCALA" }, { no: 39, name: "LANGUAGE_SCSS" }, { no: 40, name: "LANGUAGE_SHELL" }, { no: 41, name: "LANGUAGE_SQL" }, { no: 42, name: "LANGUAGE_STARLARK" }, { no: 43, name: "LANGUAGE_SWIFT" }, { no: 44, name: "LANGUAGE_TSX" }, { no: 45, name: "LANGUAGE_TYPESCRIPT" }, { no: 46, name: "LANGUAGE_VISUALBASIC" }, { no: 47, name: "LANGUAGE_VUE" }, { no: 48, name: "LANGUAGE_XML" }, { no: 49, name: "LANGUAGE_XSL" }, { no: 50, name: "LANGUAGE_YAML" }, { no: 51, name: "LANGUAGE_SVELTE" }, { no: 52, name: "LANGUAGE_TOML" }, { no: 53, name: "LANGUAGE_DART" }, { no: 54, name: "LANGUAGE_RST" }, { no: 55, name: "LANGUAGE_OCAML" }, { no: 56, name: "LANGUAGE_CMAKE" }, { no: 57, name: "LANGUAGE_PASCAL" }, { no: 58, name: "LANGUAGE_ELIXIR" }, { no: 59, name: "LANGUAGE_FSHARP" }, { no: 60, name: "LANGUAGE_LISP" }, { no: 61, name: "LANGUAGE_MATLAB" }, { no: 62, name: "LANGUAGE_POWERSHELL" }, { no: 63, name: "LANGUAGE_SOLIDITY" }, { no: 64, name: "LANGUAGE_ADA" }, { no: 65, name: "LANGUAGE_OCAML_INTERFACE" }]);
var ve = (_a = class extends w {
constructor(n) {
super();
this.completionId = "";
this.text = "";
this.prefix = "";
this.stop = "";
this.score = 0;
this.tokens = [];
this.decodedTokens = [];
this.probabilities = [];
this.adjustedProbabilities = [];
this.generatedLength = x.zero;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _a().fromBinary(n, r);
}
static fromJson(n, r) {
return new _a().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _a().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_a, n, r);
}
}, (() => {
_a.runtime = d;
})(), (() => {
_a.typeName = "exa.codeium_common_pb.Completion";
})(), (() => {
_a.fields = d.util.newFieldList(() => [{ no: 1, name: "completion_id", kind: "scalar", T: 9 }, { no: 2, name: "text", kind: "scalar", T: 9 }, { no: 3, name: "prefix", kind: "scalar", T: 9 }, { no: 4, name: "stop", kind: "scalar", T: 9 }, { no: 5, name: "score", kind: "scalar", T: 1 }, { no: 6, name: "tokens", kind: "scalar", T: 4, repeated: true }, { no: 7, name: "decoded_tokens", kind: "scalar", T: 9, repeated: true }, { no: 8, name: "probabilities", kind: "scalar", T: 1, repeated: true }, { no: 9, name: "adjusted_probabilities", kind: "scalar", T: 1, repeated: true }, { no: 10, name: "generated_length", kind: "scalar", T: 4 }]);
})(), _a), G = (_b = class extends w {
constructor(n) {
super();
this.ideName = "";
this.ideVersion = "";
this.extensionName = "";
this.extensionVersion = "";
this.apiKey = "";
this.locale = "";
this.sessionId = "";
this.requestId = x.zero;
this.userAgent = "";
this.url = "";
this.authSource = 0;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _b().fromBinary(n, r);
}
static fromJson(n, r) {
return new _b().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _b().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_b, n, r);
}
}, (() => {
_b.runtime = d;
})(), (() => {
_b.typeName = "exa.codeium_common_pb.Metadata";
})(), (() => {
_b.fields = d.util.newFieldList(() => [{ no: 1, name: "ide_name", kind: "scalar", T: 9 }, { no: 7, name: "ide_version", kind: "scalar", T: 9 }, { no: 12, name: "extension_name", kind: "scalar", T: 9 }, { no: 2, name: "extension_version", kind: "scalar", T: 9 }, { no: 3, name: "api_key", kind: "scalar", T: 9 }, { no: 4, name: "locale", kind: "scalar", T: 9 }, { no: 10, name: "session_id", kind: "scalar", T: 9 }, { no: 9, name: "request_id", kind: "scalar", T: 4 }, { no: 13, name: "user_agent", kind: "scalar", T: 9 }, { no: 14, name: "url", kind: "scalar", T: 9 }, { no: 15, name: "auth_source", kind: "enum", T: d.getEnumType(ut) }]);
})(), _b), Ce = (_c = class extends w {
constructor(n) {
super();
this.tabSize = x.zero;
this.insertSpaces = false;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _c().fromBinary(n, r);
}
static fromJson(n, r) {
return new _c().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _c().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_c, n, r);
}
}, (() => {
_c.runtime = d;
})(), (() => {
_c.typeName = "exa.codeium_common_pb.EditorOptions";
})(), (() => {
_c.fields = d.util.newFieldList(() => [{ no: 1, name: "tab_size", kind: "scalar", T: 4 }, { no: 2, name: "insert_spaces", kind: "scalar", T: 8 }]);
})(), _c);
_d = class extends w {
constructor(n) {
super();
this.eventType = 0;
this.eventJson = "";
this.timestampUnixMs = x.zero;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _d().fromBinary(n, r);
}
static fromJson(n, r) {
return new _d().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _d().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_d, n, r);
}
}, (() => {
_d.runtime = d;
})(), (() => {
_d.typeName = "exa.codeium_common_pb.Event";
})(), (() => {
_d.fields = d.util.newFieldList(() => [{ no: 1, name: "event_type", kind: "enum", T: d.getEnumType(ft) }, { no: 2, name: "event_json", kind: "scalar", T: 9 }, { no: 3, name: "timestamp_unix_ms", kind: "scalar", T: 3 }]);
})();
var bt = ((s) => (s[s.UNSPECIFIED = 0] = "UNSPECIFIED", s[s.INACTIVE = 1] = "INACTIVE", s[s.PROCESSING = 2] = "PROCESSING", s[s.SUCCESS = 3] = "SUCCESS", s[s.WARNING = 4] = "WARNING", s[s.ERROR = 5] = "ERROR", s))(bt || {});
d.util.setEnumType(bt, "exa.language_server_pb.CodeiumState", [{ no: 0, name: "CODEIUM_STATE_UNSPECIFIED" }, { no: 1, name: "CODEIUM_STATE_INACTIVE" }, { no: 2, name: "CODEIUM_STATE_PROCESSING" }, { no: 3, name: "CODEIUM_STATE_SUCCESS" }, { no: 4, name: "CODEIUM_STATE_WARNING" }, { no: 5, name: "CODEIUM_STATE_ERROR" }]);
var xn = ((r) => (r[r.UNSPECIFIED = 0] = "UNSPECIFIED", r[r.SINGLE = 1] = "SINGLE", r[r.MULTI = 2] = "MULTI", r))(xn || {});
d.util.setEnumType(xn, "exa.language_server_pb.LineType", [{ no: 0, name: "LINE_TYPE_UNSPECIFIED" }, { no: 1, name: "LINE_TYPE_SINGLE" }, { no: 2, name: "LINE_TYPE_MULTI" }]);
var Et = ((o) => (o[o.UNSPECIFIED = 0] = "UNSPECIFIED", o[o.INLINE = 1] = "INLINE", o[o.BLOCK = 2] = "BLOCK", o[o.INLINE_MASK = 3] = "INLINE_MASK", o))(Et || {});
d.util.setEnumType(Et, "exa.language_server_pb.CompletionPartType", [{ no: 0, name: "COMPLETION_PART_TYPE_UNSPECIFIED" }, { no: 1, name: "COMPLETION_PART_TYPE_INLINE" }, { no: 2, name: "COMPLETION_PART_TYPE_BLOCK" }, { no: 3, name: "COMPLETION_PART_TYPE_INLINE_MASK" }]);
var Ue = (_e2 = class extends w {
constructor(n) {
super();
this.otherDocuments = [];
this.modelName = "";
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _e2().fromBinary(n, r);
}
static fromJson(n, r) {
return new _e2().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _e2().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_e2, n, r);
}
}, (() => {
_e2.runtime = d;
})(), (() => {
_e2.typeName = "exa.language_server_pb.GetCompletionsRequest";
})(), (() => {
_e2.fields = d.util.newFieldList(() => [{ no: 1, name: "metadata", kind: "message", T: G }, { no: 2, name: "document", kind: "message", T: M }, { no: 3, name: "editor_options", kind: "message", T: Ce }, { no: 5, name: "other_documents", kind: "message", T: M, repeated: true }, { no: 7, name: "experiment_config", kind: "message", T: mt }, { no: 10, name: "model_name", kind: "scalar", T: 9 }]);
})(), _e2), Re = (_f = class extends w {
constructor(n) {
super();
this.completionItems = [];
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _f().fromBinary(n, r);
}
static fromJson(n, r) {
return new _f().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _f().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_f, n, r);
}
}, (() => {
_f.runtime = d;
})(), (() => {
_f.typeName = "exa.language_server_pb.GetCompletionsResponse";
})(), (() => {
_f.fields = d.util.newFieldList(() => [{ no: 1, name: "state", kind: "message", T: dt }, { no: 2, name: "completion_items", kind: "message", T: gt, repeated: true }]);
})(), _f), Fe = (_g = class extends w {
constructor(n) {
super();
this.completionId = "";
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _g().fromBinary(n, r);
}
static fromJson(n, r) {
return new _g().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _g().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_g, n, r);
}
}, (() => {
_g.runtime = d;
})(), (() => {
_g.typeName = "exa.language_server_pb.AcceptCompletionRequest";
})(), (() => {
_g.fields = d.util.newFieldList(() => [{ no: 1, name: "metadata", kind: "message", T: G }, { no: 2, name: "completion_id", kind: "scalar", T: 9 }]);
})(), _g), _e = (_h = class extends w {
constructor(t) {
super(), d.util.initPartial(t, this);
}
static fromBinary(t, n) {
return new _h().fromBinary(t, n);
}
static fromJson(t, n) {
return new _h().fromJson(t, n);
}
static fromJsonString(t, n) {
return new _h().fromJsonString(t, n);
}
static equals(t, n) {
return d.util.equals(_h, t, n);
}
}, (() => {
_h.runtime = d;
})(), (() => {
_h.typeName = "exa.language_server_pb.AcceptCompletionResponse";
})(), (() => {
_h.fields = d.util.newFieldList(() => []);
})(), _h), Je = (_i = class extends w {
constructor(t) {
super(), d.util.initPartial(t, this);
}
static fromBinary(t, n) {
return new _i().fromBinary(t, n);
}
static fromJson(t, n) {
return new _i().fromJson(t, n);
}
static fromJsonString(t, n) {
return new _i().fromJsonString(t, n);
}
static equals(t, n) {
return d.util.equals(_i, t, n);
}
}, (() => {
_i.runtime = d;
})(), (() => {
_i.typeName = "exa.language_server_pb.GetAuthTokenRequest";
})(), (() => {
_i.fields = d.util.newFieldList(() => []);
})(), _i), Me = (_j = class extends w {
constructor(n) {
super();
this.authToken = "";
this.uuid = "";
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _j().fromBinary(n, r);
}
static fromJson(n, r) {
return new _j().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _j().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_j, n, r);
}
}, (() => {
_j.runtime = d;
})(), (() => {
_j.typeName = "exa.language_server_pb.GetAuthTokenResponse";
})(), (() => {
_j.fields = d.util.newFieldList(() => [{ no: 1, name: "auth_token", kind: "scalar", T: 9 }, { no: 2, name: "uuid", kind: "scalar", T: 9 }]);
})(), _j), te = (_k = class extends w {
constructor(n) {
super();
this.row = x.zero;
this.col = x.zero;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _k().fromBinary(n, r);
}
static fromJson(n, r) {
return new _k().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _k().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_k, n, r);
}
}, (() => {
_k.runtime = d;
})(), (() => {
_k.typeName = "exa.language_server_pb.DocumentPosition";
})(), (() => {
_k.fields = d.util.newFieldList(() => [{ no: 1, name: "row", kind: "scalar", T: 4 }, { no: 2, name: "col", kind: "scalar", T: 4 }]);
})(), _k), M = (_l = class extends w {
constructor(n) {
super();
this.absolutePath = "";
this.relativePath = "";
this.text = "";
this.editorLanguage = "";
this.language = 0;
this.cursorOffset = x.zero;
this.lineEnding = "";
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _l().fromBinary(n, r);
}
static fromJson(n, r) {
return new _l().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _l().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_l, n, r);
}
}, (() => {
_l.runtime = d;
})(), (() => {
_l.typeName = "exa.language_server_pb.Document";
})(), (() => {
_l.fields = d.util.newFieldList(() => [{ no: 1, name: "absolute_path", kind: "scalar", T: 9 }, { no: 2, name: "relative_path", kind: "scalar", T: 9 }, { no: 3, name: "text", kind: "scalar", T: 9 }, { no: 4, name: "editor_language", kind: "scalar", T: 9 }, { no: 5, name: "language", kind: "enum", T: d.getEnumType($) }, { no: 6, name: "cursor_offset", kind: "scalar", T: 4 }, { no: 8, name: "cursor_position", kind: "message", T: te }, { no: 7, name: "line_ending", kind: "scalar", T: 9 }]);
})(), _l), mt = (_m = class extends w {
constructor(n) {
super();
this.forceEnableExperiments = [];
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _m().fromBinary(n, r);
}
static fromJson(n, r) {
return new _m().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _m().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_m, n, r);
}
}, (() => {
_m.runtime = d;
})(), (() => {
_m.typeName = "exa.language_server_pb.ExperimentConfig";
})(), (() => {
_m.fields = d.util.newFieldList(() => [{ no: 1, name: "force_enable_experiments", kind: "enum", T: d.getEnumType(ke), repeated: true }]);
})(), _m), dt = (_n2 = class extends w {
constructor(n) {
super();
this.state = 0;
this.message = "";
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _n2().fromBinary(n, r);
}
static fromJson(n, r) {
return new _n2().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _n2().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_n2, n, r);
}
}, (() => {
_n2.runtime = d;
})(), (() => {
_n2.typeName = "exa.language_server_pb.State";
})(), (() => {
_n2.fields = d.util.newFieldList(() => [{ no: 1, name: "state", kind: "enum", T: d.getEnumType(bt) }, { no: 2, name: "message", kind: "scalar", T: 9 }]);
})(), _n2), pt = (_o = class extends w {
constructor(n) {
super();
this.startOffset = x.zero;
this.endOffset = x.zero;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _o().fromBinary(n, r);
}
static fromJson(n, r) {
return new _o().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _o().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_o, n, r);
}
}, (() => {
_o.runtime = d;
})(), (() => {
_o.typeName = "exa.language_server_pb.Range";
})(), (() => {
_o.fields = d.util.newFieldList(() => [{ no: 1, name: "start_offset", kind: "scalar", T: 4 }, { no: 2, name: "end_offset", kind: "scalar", T: 4 }, { no: 3, name: "start_position", kind: "message", T: te }, { no: 4, name: "end_position", kind: "message", T: te }]);
})(), _o), ht = (_p = class extends w {
constructor(n) {
super();
this.text = "";
this.deltaCursorOffset = x.zero;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _p().fromBinary(n, r);
}
static fromJson(n, r) {
return new _p().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _p().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_p, n, r);
}
}, (() => {
_p.runtime = d;
})(), (() => {
_p.typeName = "exa.language_server_pb.Suffix";
})(), (() => {
_p.fields = d.util.newFieldList(() => [{ no: 1, name: "text", kind: "scalar", T: 9 }, { no: 2, name: "delta_cursor_offset", kind: "scalar", T: 3 }]);
})(), _p), yt = (_q = class extends w {
constructor(n) {
super();
this.text = "";
this.offset = x.zero;
this.type = 0;
this.prefix = "";
this.line = x.zero;
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _q().fromBinary(n, r);
}
static fromJson(n, r) {
return new _q().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _q().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_q, n, r);
}
}, (() => {
_q.runtime = d;
})(), (() => {
_q.typeName = "exa.language_server_pb.CompletionPart";
})(), (() => {
_q.fields = d.util.newFieldList(() => [{ no: 1, name: "text", kind: "scalar", T: 9 }, { no: 2, name: "offset", kind: "scalar", T: 4 }, { no: 3, name: "type", kind: "enum", T: d.getEnumType(Et) }, { no: 4, name: "prefix", kind: "scalar", T: 9 }, { no: 5, name: "line", kind: "scalar", T: 4 }]);
})(), _q), gt = (_r = class extends w {
constructor(n) {
super();
this.source = 0;
this.completionParts = [];
d.util.initPartial(n, this);
}
static fromBinary(n, r) {
return new _r().fromBinary(n, r);
}
static fromJson(n, r) {
return new _r().fromJson(n, r);
}
static fromJsonString(n, r) {
return new _r().fromJsonString(n, r);
}
static equals(n, r) {
return d.util.equals(_r, n, r);
}
}, (() => {
_r.runtime = d;
})(), (() => {
_r.typeName = "exa.language_server_pb.CompletionItem";
})(), (() => {
_r.fields = d.util.newFieldList(() => [{ no: 1, name: "completion", kind: "message", T: ve }, { no: 5, name: "suffix", kind: "message", T: ht }, { no: 2, name: "range", kind: "message", T: pt }, { no: 3, name: "source", kind: "enum", T: d.getEnumType(Oe) }, { no: 8, name: "completion_parts", kind: "message", T: yt, repeated: true }]);
})(), _r);
var O = class e2 {
constructor(t, n) {
this.line = t, this.character = n, this.lineNumber = t + 1, this.column = n + 1;
}
static fromMonaco(t) {
return new e2(t.lineNumber - 1, t.column - 1);
}
static fromPosition(t) {
return new e2(t.line, t.character);
}
}, B = class e3 {
constructor(t, n) {
this.start = t, this.end = n, this.startLineNumber = t.line + 1, this.startColumn = t.character + 1, this.endLineNumber = n.line + 1, this.endColumn = n.character + 1;
}
static fromMonaco(t) {
return new e3(new O(t.startLineNumber - 1, t.startColumn - 1), new O(t.endLineNumber - 1, t.endColumn - 1));
}
static fromRange(t) {
return new e3(t.start, t.end);
}
};
var Ge = class {
constructor(t, n) {
this.text = t, this.range = n;
}
};
var Be = class {
constructor(t) {
this.model = t, this.uri = t.uri, this.languageId = t.getLanguageId();
}
get lineCount() {
return this.model.getLineCount();
}
lineAt(t) {
return typeof t != "number" && (t = t.line), new Ge(this.model.getLineContent(t + 1), new B(new O(t, 0), new O(t, this.model.getLineLength(t + 1))));
}
offsetAt(t) {
return this.model.getOffsetAt(O.fromPosition(t));
}
positionAt(t) {
return O.fromMonaco(this.model.getPositionAt(t));
}
getText(t) {
return t ? this.model.getValueInRange(B.fromRange(t)) : this.model.getValue();
}
};
var In = () => {
try {
return window.location.origin;
} catch {
return null;
}
}, Tn = () => "1.0.10";
function Sn(e4) {
return e4 < 128 ? 1 : e4 < 2048 ? 2 : e4 < 65536 ? 3 : 4;
}
function An(e4, t) {
if (t === 0)
return 0;
let n = 0, r = 0;
for (let o of e4)
if (r += o.length, n += Sn(o.codePointAt(0)), t !== void 0 && r >= t)
break;
return n;
}
function wt(e4, t) {
if (t === 0)
return 0;
let n = 0, r = 0;
for (let o of e4)
if (r += Sn(o.codePointAt(0)), n += o.length, t !== void 0 && r >= t)
break;
return n;
}
var Nn = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (e4) => {
let t = Math.random() * 16 | 0;
return (e4 === "x" ? t : t & 3 | 8).toString(16);
}), Le = (e4) => {
switch (e4.toLowerCase()) {
case "c":
return 1;
case "clojure":
return 2;
case "coffeescript":
return 3;
case "cpp":
return 4;
case "csharp":
return 5;
case "css":
return 6;
case "cudacpp":
return 7;
case "dockerfile":
return 8;
case "go":
return 9;
case "groovy":
return 10;
case "handlebars":
return 11;
case "haskell":
return 12;
case "hcl":
return 13;
case "html":
return 14;
case "ini":
return 15;
case "java":
return 16;
case "javascript":
return 17;
case "json":
return 18;
case "julia":
return 19;
case "kotlin":
return 20;
case "latex":
return 21;
case "less":
return 22;
case "lua":
return 23;
case "makefile":
return 24;
case "markdown":
return 25;
case "objectivec":
return 26;
case "objectivecpp":
return 27;
case "perl":
return 28;
case "php":
return 29;
case "plaintext":
return 30;
case "protobuf":
return 31;
case "pbtxt":
return 32;
case "python":
return 33;
case "r":
return 34;
case "ruby":
return 35;
case "rust":
return 36;
case "sass":
return 37;
case "scala":
return 38;
case "scss":
return 39;
case "shell":
return 40;
case "sql":
return 41;
case "starlark":
return 42;
case "swift":
return 43;
case "tsx":
return 44;
case "typescript":
return 45;
case "visualbasic":
return 46;
case "vue":
return 47;
case "xml":
return 48;
case "xsl":
return 49;
case "yaml":
return 50;
case "svelte":
return 51;
case "toml":
return 52;
case "dart":
return 53;
case "rst":
return 54;
case "ocaml":
return 55;
case "cmake":
return 56;
case "pascal":
return 57;
case "elixir":
return 58;
case "fsharp":
return 59;
case "lisp":
return 60;
case "matlab":
return 61;
case "powershell":
return 62;
case "solidity":
return 63;
case "ada":
return 64;
case "ocaml_interface":
return 65;
default:
return 0;
}
};
var xt = class {
constructor(t, n, r) {
this.insertText = t, this.text = t, this.range = n, this.command = { id: "codeium.acceptCompletion", title: "Accept Completion", arguments: [r, t] };
}
}, ur = "d49954eb-cfba-4992-980f-d8fb37f0e942", De = class {
constructor(t, n, r, o) {
this.setStatus = n;
this.setMessage = r;
this.apiKey = o;
this.otherDocuments = [];
this.sessionId = `react-editor-${Nn()}`, this.client = t;
}
getAuthHeader() {
let t = this.getMetadata();
return { Authorization: `Basic ${t.apiKey}-${t.sessionId}` };
}
getMetadata() {
var _a2, _b2;
return new G({ ideName: "web", ideVersion: (_a2 = In()) != null ? _a2 : "unknown", extensionName: "@codeium/react-code-editor", extensionVersion: Tn(), apiKey: (_b2 = this.apiKey) != null ? _b2 : ur, sessionId: this.sessionId });
}
async provideInlineCompletions(t, n, r) {
let o = new Be(t), i = O.fromMonaco(n);
r.onCancellationRequested(() => {
var _a2;
return (_a2 = r.cancellationCallback) == null ? void 0 : _a2.call(r);
});
let s = new AbortController();
r.onCancellationRequested(() => {
s.abort();
});
let a = s.signal;
this.setStatus("processing"), this.setMessage("Generating completions...");
let c = this.getDocumentInfo(o, i), l = { tabSize: BigInt(t.getOptions().tabSize), insertSpaces: t.getOptions().insertSpaces }, h = this.otherDocuments;
h.length > 10 && (h = h.slice(0, 10));
let y;
try {
y = await this.client.getCompletions({ metadata: this.getMetadata(), document: c, editorOptions: l, otherDocuments: h }, { signal: a, headers: this.getAuthHeader() });
} catch (b) {
b instanceof S && b.code === E.Canceled || (this.setStatus("error"), this.setMessage("Something went wrong; please try again."));
return;
}
if (!y.completionItems) {
let b = " No completions were generated";
this.setStatus("success"), this.setMessage(b);
return;
}
let p = y.completionItems.map((b) => this.createInlineCompletionItem(b, o)).filter((b) => !!b);
this.setStatus("success");
let g = `Generated ${p.length} completions`;
return p.length === 1 && (g = "Generated 1 completion"), this.setMessage(g), { items: p };
}
acceptedLastCompletion(t) {
new Promise((n, r) => {
this.client.acceptCompletion({ metadata: this.getMetadata(), completionId: t }, { headers: this.getAuthHeader() }).then(n).catch((o) => {
});
});
}
getDocumentInfo(t, n) {
let r = t.getText(), o = t.offsetAt(n), i = An(r, o), s = Le(t.languageId);
return new M({ text: r, editorLanguage: t.languageId, language: s, cursorOffset: BigInt(i), lineEnding: `
` });
}
createInlineCompletionItem(t, n) {
if (!t.completion || !t.range)
return;
let r = n.getText(), o = n.positionAt(wt(r, Number(t.range.startOffset))), i = n.positionAt(wt(r, Number(t.range.endOffset))), s = new B(o, i);
return new xt(t.completion.text, s, t.completion.completionId);
}
};
var Ve = class {
constructor(t, n, r, o, i, s) {
this.setCompletionCount = n;
this.getEditorDocuments = i;
this.numCompletionsProvided = 0, this.completionProvider = new De(t, r, o, s);
}
freeInlineCompletions() {
}
async provideInlineCompletions(t, n, r, o) {
this.updateOtherDocuments(this.getEditorDocuments(t));
let i = await this.completionProvider.provideInlineCompletions(t, n, o);
return i && (this.numCompletionsProvided += 1, this.setCompletionCount(this.numCompletionsProvided)), i;
}
acceptedLastCompletion(t) {
this.completionProvider.acceptedLastCompletion(t);
}
updateOtherDocuments(t) {
this.completionProvider.otherDocuments = t;
}
};
function Pn() {
try {
new Headers();
} catch {
throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.");
}
}
var ne = function(e4) {
return this instanceof ne ? (this.v = e4, this) : new ne(e4);
}, fr = function(e4, t, n) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var r = n.apply(e4, t || []), o, i = [];
return o = {}, s("next"), s("throw"), s("return"), o[Symbol.asyncIterator] = function() {
return this;
}, o;
function s(m) {
r[m] && (o[m] = function(p) {
return new Promise(function(g, b) {
i.push([m, p, g, b]) > 1 || a(m, p);
});
});
}
function a(m, p) {
try {
c(r[m](p));
} catch (g) {
y(i[0][3], g);
}
}
function c(m) {
m.value instanceof ne ? Promise.resolve(m.value.v).then(l, h) : y(i[0][2], m);
}
function l(m) {
a("next", m);
}
function h(m) {
a("throw", m);
}
function y(m, p) {
m(p), i.shift(), i.length && a(i[0][0], i[0][1]);
}
};
function It(e4) {
var t;
Pn();
let n = (t = e4.useBinaryFormat) !== null && t !== void 0 ? t : false;
return { async unary(r, o, i, s, a, c, l) {
var h;
let { serialize: y, parse: m } = we(o, n, e4.jsonOptions, e4.binaryOptions);
return s = s === void 0 ? e4.defaultTimeoutMs : s <= 0 ? void 0 : s, await ct({ interceptors: e4.interceptors, signal: i, timeoutMs: s, req: { stream: false, service: r, method: o, url: be(e4.baseUrl, r, o), init: { method: "POST", credentials: (h = e4.credentials) !== null && h !== void 0 ? h : "same-origin", redirect: "error", mode: "cors" }, header: Ne(o.kind, n, s, a), contextValues: l != null ? l : ge(), message: c }, next: async (p) => {
var g;
let b = e4.useHttpGet === true && o.idempotency === K.NoSideEffects, I = null;
b ? p = at(p, y(p.message), n) : I = y(p.message);
let T = await ((g = e4.fetch) !== null && g !== void 0 ? g : globalThis.fetch)(p.url, Object.assign(Object.assign({}, p.init), { headers: p.header, signal: p.signal, body: I })), { isUnaryError: k, unaryError: U } = Pe(o.kind, T.status, T.headers);
if (k)
throw Z(await T.json(), Ze(...Se(T.headers)), U);
let [C, re] = Se(T.headers);
return { stream: false, service: r, method: o, header: C, message: n ? m(new Uint8Array(await T.arrayBuffer())) : o.O.fromJson(await T.json(), Ee(e4.jsonOptions)), trailer: re };
} });
}, async stream(r, o, i, s, a, c, l) {
var h;
let { serialize: y, parse: m } = we(o, n, e4.jsonOptions, e4.binaryOptions);
function p(b, I) {
return fr(this, arguments, function* () {
let T = et(b).getReader(), k = false;
for (; ; ) {
let U = yield ne(T.read());
if (U.done)
break;
let { flags: C, data: re } = U.value;
if ((C & xe) === xe) {
k = true;
let qe = it(re);
if (qe.error)
throw qe.error;
qe.metadata.forEach((Cn, kn) => I.set(kn, Cn));
continue;
}
yield yield ne(m(re));
}
if (!k)
throw "missing EndStreamResponse";
});
}
async function g(b) {
if (o.kind != P.ServerStreaming)
throw "The fetch API does not support streaming request bodies";
let I = await b[Symbol.asyncIterator]().next();
if (I.done == true)
throw "missing request message";
return tt(0, y(I.value));
}
return s = s === void 0 ? e4.defaultTimeoutMs : s <= 0 ? void 0 : s, await lt({ interceptors: e4.interceptors, timeoutMs: s, signal: i, req: { stream: true, service: r, method: o, url: be(e4.baseUrl, r, o), init: { method: "POST", credentials: (h = e4.credentials) !== null && h !== void 0 ? h : "same-origin", redirect: "error", mode: "cors" }, header: Ne(o.kind, n, s, a), contextValues: l != null ? l : ge(), message: c }, next: async (b) => {
var I;
let T = await ((I = e4.fetch) !== null && I !== void 0 ? I : globalThis.fetch)(b.url, Object.assign(Object.assign({}, b.init), { headers: b.header, signal: b.signal, body: await g(b.message) }));
if (Pe(o.kind, T.status, T.headers), T.body === null)
throw "missing response body";
let k = new Headers();
return Object.assign(Object.assign({}, b), { header: T.headers, trailer: k, message: p(T.body, k) });
} });
} };
}
var vn = { typeName: "exa.language_server_pb.LanguageServerService", methods: { getCompletions: { name: "GetCompletions", I: Ue, O: Re, kind: P.Unary }, acceptCompletion: { name: "AcceptCompletion", I: Fe, O: _e, kind: P.Unary }, getAuthToken: { name: "GetAuthToken", I: Je, O: Me, kind: P.Unary } } };
var mr = (e4, { onAutocomplete: t, languageServer: n = "https://web-backend.codeium.com", apiKey: r, getEditors: o = () => [] } = {}) => {
let i = 1, s = 0, a = (T) => {
s = T;
}, c = "inactive", l = (T) => {
c = T;
}, h = "", y = (T) => {
h = T;
}, m = It({ baseUrl: n, useBinaryFormat: true }), p = nt(vn, m), g = new Ve(p, a, l, y, v, r), b = e4.languages.registerInlineCompletionsProvider({ pattern: "**" }, g), I = e4.editor.registerCommand("codeium.acceptCompletion", (T, k, U) => {
try {
typeof t == "function" && t(U), i = i + 1, g.acceptedLastCompletion(k);
} catch {
}
});
function v(T) {
let k = [];
return o().forEach((U) => {
let C = U.getModel();
!C || C === T || k.push(new M({ absolutePath: C.uri.path, relativePath: C.uri.path.startsWith("/") ? C.uri.path.slice(1) : C.uri.path, text: U.getValue(), editorLanguage: C.getLanguageId(), language: Le(C.getLanguageId()) }));
}), k;
}
return { getCompletionCount: () => s, getCodeiumStatus: () => c, getCodeiumStatusMessage: () => h, getAcceptedCompletionCount: () => i, dispose: () => {
b.dispose(), I.dispose();
} };
};
const _$1 = _unsafeWindow._;
const regTheme = async (theme2) => {
let themes = _unsafeWindow.codeThemes;
let themeItem = themes.find((i) => i.themeName === theme2);
if (themeItem.out)
return;
if (themeItem.loaded && themeItem.cache)
return;
let editor = _unsafeWindow.monaco.editor;
const response = await fetch(`${"https://baozoulolw.oss-cn-chengdu.aliyuncs.com/codeSet/data"}/theme/${themeItem.group}/${themeItem.path}`);
if (response.ok) {
const json2 = await response.json();
editor.defineTheme(theme2, json2);
themeItem.loaded = true;
themeItem.cache = json2;
}
};
const setFeature = (font = {}) => {
let dom = document.querySelector(
".view-lines.monaco-mouse-cursor-text"
);
if (!dom)
return;
dom.style["fontFamily"] = font.value;
};
const regTips = (language, monaco) => {
var _a2;
let allTips = _unsafeWindow.editorTips;
const tipsList = allTips.filter((i) => i.supportLanguage === language);
const completionItems = tipsList.map((tip) => {
let kind = completionItemKinds.find((i) => i.value === tip.kind).name;
let rule2 = tip.insertTextRules.map((i) => insertTextRules.find((fi) => fi.value === i).name);
let result;
for (let i = 0; i < rule2.length; i++) {
result |= monaco.languages.CompletionItemInsertTextRule[rule2];
}
return {
label: tip.label,
kind: monaco.languages.CompletionItemKind[kind],
insertText: tip.insertText,
documentation: tip.documentation,
detail: tip.detail,
insertTextRules: result,
sortText: tip.sortText
};
});
if (_$1.isEmpty(completionItems))
return;
let { [language]: disposable = {} } = (_a2 = _unsafeWindow.disposables) != null ? _a2 : {};
if (!_$1.isEmpty(disposable)) {
disposable.dispose();
}
disposable = monaco.languages.registerCompletionItemProvider(language, {
provideCompletionItems(model, position) {
return { suggestions: completionItems };
}
});
_unsafeWindow.disposables[language] = disposable;
};
const editorCreated = async (monaco) => {
await setDefaultSetting();
useDTS(monaco, "lodash");
useDTS(monaco, "Big");
_unsafeWindow.disposables = {};
let create = monaco.editor.create;
monaco.editor.create = (ref, options, ...params) => {
var _a2;
let settings = (_a2 = JSON.parse(_unsafeWindow.localStorage.getItem("codeSettings"))) != null ? _a2 : {};
let option = _$1.omit(options, ["theme", "fontFamily", "fontSize", "tabSize", "fontFeatureSettings"]);
let font = fontFamilys.find((i) => i.value === settings.fontFamily);
let editor = create(ref, {
...option,
theme: settings.theme,
fontFamily: settings.fontFamily,
fontSize: settings.fontSize,
tabSize: settings.tabSize,
cursorSmoothCaretAnimation: true,
roundedSelection: true,
fontLigatures: true,
formatOnType: true,
minimap: {
enabled: false
},
EditorAutoClosingEditStrategy: "auto",
autoClosingComments: true,
cursorBlinking: "smooth",
overviewRulerBorder: true
}, ...params);
setFeature(font);
setOther(option.language, editor, monaco);
regTips(option.language, monaco);
if (settings.aiCode) {
addCodeium(monaco);
}
return editor;
};
previewEditor(monaco);
monaco.editor.onWillDisposeModel(async function(editor) {
disposeAi();
});
};
const setOther = async (mode, editor, monaco) => {
await wire(mode, editor, monaco);
};
const defineTheme = async () => {
var _a2;
const { theme: theme2 = "vs" } = (_a2 = JSON.parse(_unsafeWindow.localStorage.getItem("codeSettings"))) != null ? _a2 : {};
await regTheme(theme2);
};
const setDefaultSetting = async () => {
let defaultSetting = {
fontSize: 13,
fontFamily: "Menlo, Monaco, Courier New, monospace",
theme: "vs",
tabSize: 2,
aiCode: false
};
let settings = _unsafeWindow.localStorage.getItem("codeSettings");
if (_$1.isEmpty(settings)) {
_unsafeWindow.localStorage.setItem("codeSettings", JSON.stringify(defaultSetting));
} else {
settings = JSON.parse(settings);
Object.keys(defaultSetting).forEach((key) => {
if (!_$1.has(settings, key)) {
settings[key] = defaultSetting[key];
}
});
_unsafeWindow.localStorage.setItem("codeSettings", JSON.stringify(settings));
defineTheme();
}
};
const initWork = () => {
_unsafeWindow.MonacoEnvironment = {
getWorkerUrl: function(workerId, label) {
var _a2, _b2;
let editorPath = ((_a2 = _unsafeWindow.$GLOBAL_CONFIG) == null ? void 0 : _a2.editorPath) ? _unsafeWindow.$GLOBAL_CONFIG.editorPath : `${((_b2 = _unsafeWindow.$GLOBAL_CONFIG) == null ? void 0 : _b2.resRoot) || ""}/fe_components/lowcode/third-party/monaco-editor/min`;
return `data:text/javascript;charset=utf-8,${encodeURIComponent(`
self.MonacoEnvironment = {
baseUrl: '${editorPath}'
};
importScripts('${editorPath}/vs/base/worker/workerMain.js');`)}`;
}
};
};
const previewEditor = async (monaco) => {
initWork();
let editor = monaco.editor.create(document.createElement("div"), {
language: "javascript",
regTip: false
});
editor.dispose();
};
const addCodeium = async (monaco) => {
_unsafeWindow.codeiumProvider = mr(
monaco,
{
languageServer: "https://web-backend.codeium.com",
apiKey: "d49954eb-cfba-4992-980f-d8fb37f0e942",
onAutocomplete: (acceptedText) => {
},
getEditors: () => {
return [];
}
}
);
};
const disposeAi = () => {
if (_$1.has(_unsafeWindow, "codeiumProvider")) {
_unsafeWindow.codeiumProvider.dispose();
delete _unsafeWindow.codeiumProvider;
}
};
const useDTS = async (monaco, type) => {
const response = await fetch(`${"https://baozoulolw.oss-cn-chengdu.aliyuncs.com/codeSet/data"}/type/${type}.d.ts`);
const text = await response.text();
const libUrl = `ts:fileName/${type}.d.ts`;
monaco.languages.typescript.javascriptDefaults.addExtraLib(text, libUrl);
monaco.editor.createModel(text, "typescript", monaco.Uri.parse(libUrl));
};
var render$1 = function() {
var _vm = this;
var _h2 = _vm.$createElement;
var _c2 = _vm._self._c || _h2;
return _c2("div", {
attrs: {
"id": "self_dialog"
}
}, [_c2("el-popover", {
attrs: {
"placement": "bottom",
"width": "250",
"trigger": "click"
}
}, [_c2("el-form", {
attrs: {
"label-width": "50px"
}
}, [_c2("el-form-item", {
attrs: {
"label": "\u5B57\u53F7"
}
}, [_c2("el-input-number", {
staticClass: "tw-w-full",
attrs: {
"controls-position": "right"
},
model: {
value: _vm.setting.fontSize,
callback: function($$v) {
_vm.$set(_vm.setting, "fontSize", $$v);
},
expression: "setting.fontSize"
}
})], 1), _c2("el-form-item", {
attrs: {
"label": "\u5B57\u4F53"
}
}, [_c2("el-select", {
staticClass: "tw-w-full",
model: {
value: _vm.setting.fontFamily,
callback: function($$v) {
_vm.$set(_vm.setting, "fontFamily", $$v);
},
expression: "setting.fontFamily"
}
}, _vm._l(_vm.fontFamilys, function(item) {
return _c2("el-option", {
key: item.value,
attrs: {
"label": item.label,
"value": item.value
}
});
}), 1)], 1), _c2("el-form-item", {
attrs: {
"label": "\u7F29\u8FDB"
}
}, [_c2("el-input-number", {
staticClass: "tw-w-full",
attrs: {
"controls-position": "right"
},
model: {
value: _vm.setting.tabSize,
callback: function($$v) {
_vm.$set(_vm.setting, "tabSize", $$v);
},
expression: "setting.tabSize"
}
})], 1), _c2("el-form-item", {
attrs: {
"label": "\u4E3B\u9898"
}
}, [_c2("el-select", {
staticClass: "tw-w-full",
attrs: {
"filterable": true
},
on: {
"change": _vm.themeChange
},
model: {
value: _vm.setting.theme,
callback: function($$v) {
_vm.$set(_vm.setting, "theme", $$v);
},
expression: "setting.theme"
}
}, _vm._l(_vm.themes, function(list, index) {
return _c2("el-option-group", {
key: index,
attrs: {
"label": list.group,
"divider": true
}
}, _vm._l(list.children, function(item) {
return _c2("el-option", {
key: item.themeName,
attrs: {
"value": item.themeName,
"label": item.name
}
});
}), 1);
}), 1)], 1), _c2("el-form-item", {
attrs: {
"label": "AI"
}
}, [_c2("el-switch", {
attrs: {
"active-color": "#13ce66",
"inactive-color": "#ff4949",
"inactive-text": "",
"active-text": _vm.setting.aiCode ? "\u5DF2\u5F00\u542F" : "\u5DF2\u5173\u95ED"
},
on: {
"change": _vm.aiCodeChange
},
model: {
value: _vm.setting.aiCode,
callback: function($$v) {
_vm.$set(_vm.setting, "aiCode", $$v);
},
expression: "setting.aiCode"
}
})], 1)], 1), _c2("el-button", {
staticStyle: {
"float": "right"
},
on: {
"click": _vm.regTips
}
}, [_vm._v("\u6CE8\u518C\u4EE3\u7801\u63D0\u793A")]), _c2("el-button", {
attrs: {
"slot": "reference",
"icon": "el-icon-setting"
},
on: {
"click": _vm.initData
},
slot: "reference"
}, [_vm._v("\u8BBE\u7F6E")])], 1), _c2("el-drawer", {
attrs: {
"title": "\u6CE8\u518C\u4EE3\u7801\u63D0\u793A",
"visible": _vm.drawer,
"size": 500,
"append-to-body": ""
},
on: {
"update:visible": function($event) {
_vm.drawer = $event;
}
}
}, [_c2("tips")], 1)], 1);
};
var staticRenderFns = [];
const _ = _unsafeWindow._;
const __vue2_script = {
props: {},
components: { Tips },
data() {
return {
setting: {},
themes: [],
fontFamilys: [],
drawer: false
};
},
watch: {
setting: {
handler: function(n, o) {
this.setData(n);
},
deep: true
}
},
methods: {
initData() {
let settings = _unsafeWindow.localStorage.getItem(
"codeSettings"
);
if (!_.isEmpty(settings)) {
let obj = JSON.parse(settings);
Object.keys(obj).forEach((key) => {
this.$set(this.setting, key, obj[key]);
});
}
},
themeChange(theme2) {
if (_.isEmpty(theme2))
return;
regTheme(theme2);
},
setData(val) {
_unsafeWindow.localStorage.setItem(
"codeSettings",
JSON.stringify(val)
);
},
initOptions() {
let obj = _.groupBy(codeThemeList, "group");
Object.keys(obj).forEach((key) => {
this.themes.push({
group: key === "undefined" ? "\u5176\u4ED6" : key,
children: obj[key]
});
});
},
regTips: function() {
this.drawer = true;
},
aiCodeChange(val) {
}
},
mounted() {
this.initData();
this.initOptions();
this.fontFamilys = fontFamilys;
}
};
const __cssModules = {};
var __component__ = /* @__PURE__ */ normalizeComponent(
__vue2_script,
render$1,
staticRenderFns,
false,
__vue2_injectStyles,
"93c5e0b4",
null,
null
);
function __vue2_injectStyles(context) {
for (let o in __cssModules) {
this[o] = __cssModules[o];
}
}
var App = /* @__PURE__ */ function() {
return __component__.exports;
}();
const Vue = _unsafeWindow.Vue;
window.Vue = Vue;
const render = (el) => {
new Vue({
render: (h) => h(App)
}).$mount("#self_dialog");
};
let renderHeader = async (dom) => {
dom.className = dom.className + " head-right";
const app = document.createElement("div");
app.setAttribute("id", "self_dialog");
dom.insertBefore(app, dom.firstChild);
render();
};
if (_unsafeWindow.location.hash.startsWith("#/widgetPage")) {
let selector = ".design-container .header-box>span:nth-child(2)";
let dom = document.querySelector(selector);
if (dom) {
await( renderHeader(dom));
} else {
waitForElementByClass("edit-page-design", async (e4) => {
if (!document.getElementById("self_dialog")) {
dom = document.querySelector(selector);
await renderHeader(dom);
}
});
}
await( initMonacoEditor());
_unsafeWindow.codeThemes = codeThemeList;
_unsafeWindow.editorTips = tips;
_unsafeWindow.require(["vs/editor/editor.main"], (monaco) => editorCreated(monaco));
}
})();