UNPKG

@zubridge/electron

Version:

A streamlined state management library for Electron applications using Zustand.

1,378 lines (1,362 loc) 268 kB
import process2 from 'process'; import os from 'os'; import tty from 'tty'; import fs from 'fs'; import util2 from 'util'; import { EventEmitter } from 'events'; import { v4 } from 'uuid'; import { webContents, ipcMain } from 'electron'; import { dequal } from 'dequal'; // Node.js build with bundled dependencies var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. __defProp(target, "default", { value: mod, enumerable: true }) , mod )); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/tokens.js var require_tokens = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/tokens.js"(exports) { Object.defineProperty(exports, "__esModule", { value: true }); } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/types.js var require_types = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/types.js"(exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.types = void 0; (function(types2) { types2[types2["ROOT"] = 0] = "ROOT"; types2[types2["GROUP"] = 1] = "GROUP"; types2[types2["POSITION"] = 2] = "POSITION"; types2[types2["SET"] = 3] = "SET"; types2[types2["RANGE"] = 4] = "RANGE"; types2[types2["REPETITION"] = 5] = "REPETITION"; types2[types2["REFERENCE"] = 6] = "REFERENCE"; types2[types2["CHAR"] = 7] = "CHAR"; })(exports.types || (exports.types = {})); } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/set-lookup.js var require_set_lookup = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/set-lookup.js"(exports) { Object.defineProperty(exports, "__esModule", { value: true }); } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/index.js var require_types2 = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/types/index.js"(exports) { var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; Object.defineProperty(o2, k2, { enumerable: true, get: function() { return m2[k]; } }); }) : (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; })); var __exportStar = exports && exports.__exportStar || function(m2, exports2) { for (var p2 in m2) if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2)) __createBinding(exports2, m2, p2); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(require_tokens(), exports); __exportStar(require_types(), exports); __exportStar(require_set_lookup(), exports); } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/sets.js var require_sets = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/sets.js"(exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.anyChar = exports.notWhitespace = exports.whitespace = exports.notInts = exports.ints = exports.notWords = exports.words = void 0; var types_1 = require_types2(); var INTS = () => [{ type: types_1.types.RANGE, from: 48, to: 57 }]; var WORDS = () => [ { type: types_1.types.CHAR, value: 95 }, { type: types_1.types.RANGE, from: 97, to: 122 }, { type: types_1.types.RANGE, from: 65, to: 90 }, { type: types_1.types.RANGE, from: 48, to: 57 } ]; var WHITESPACE = () => [ { type: types_1.types.CHAR, value: 9 }, { type: types_1.types.CHAR, value: 10 }, { type: types_1.types.CHAR, value: 11 }, { type: types_1.types.CHAR, value: 12 }, { type: types_1.types.CHAR, value: 13 }, { type: types_1.types.CHAR, value: 32 }, { type: types_1.types.CHAR, value: 160 }, { type: types_1.types.CHAR, value: 5760 }, { type: types_1.types.RANGE, from: 8192, to: 8202 }, { type: types_1.types.CHAR, value: 8232 }, { type: types_1.types.CHAR, value: 8233 }, { type: types_1.types.CHAR, value: 8239 }, { type: types_1.types.CHAR, value: 8287 }, { type: types_1.types.CHAR, value: 12288 }, { type: types_1.types.CHAR, value: 65279 } ]; var NOTANYCHAR = () => [ { type: types_1.types.CHAR, value: 10 }, { type: types_1.types.CHAR, value: 13 }, { type: types_1.types.CHAR, value: 8232 }, { type: types_1.types.CHAR, value: 8233 } ]; exports.words = () => ({ type: types_1.types.SET, set: WORDS(), not: false }); exports.notWords = () => ({ type: types_1.types.SET, set: WORDS(), not: true }); exports.ints = () => ({ type: types_1.types.SET, set: INTS(), not: false }); exports.notInts = () => ({ type: types_1.types.SET, set: INTS(), not: true }); exports.whitespace = () => ({ type: types_1.types.SET, set: WHITESPACE(), not: false }); exports.notWhitespace = () => ({ type: types_1.types.SET, set: WHITESPACE(), not: true }); exports.anyChar = () => ({ type: types_1.types.SET, set: NOTANYCHAR(), not: true }); } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/util.js var require_util = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/util.js"(exports) { var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; Object.defineProperty(o2, k2, { enumerable: true, get: function() { return m2[k]; } }); }) : (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; })); var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o2, v) { Object.defineProperty(o2, "default", { enumerable: true, value: v }); }) : function(o2, v) { o2["default"] = v; }); var __importStar = exports && exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.tokenizeClass = exports.strToChars = void 0; var types_1 = require_types2(); var sets = __importStar(require_sets()); var CTRL = "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?"; exports.strToChars = (str) => { const charsRegex = /(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g; return str.replace(charsRegex, (s2, b, lbs, a16, b16, dctrl, eslsh) => { if (lbs) { return s2; } let code = b ? 8 : a16 ? parseInt(a16, 16) : b16 ? parseInt(b16, 16) : dctrl ? CTRL.indexOf(dctrl) : { 0: 0, t: 9, n: 10, v: 11, f: 12, r: 13 }[eslsh]; let c2 = String.fromCharCode(code); return /[[\]{}^$.|?*+()]/.test(c2) ? `\\${c2}` : c2; }); }; exports.tokenizeClass = (str, regexpStr) => { var _a, _b, _c, _d, _e, _f, _g; let tokens = [], rs, c2; const regexp = /\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g; while ((rs = regexp.exec(str)) !== null) { const p2 = (_g = (_f = (_e = (_d = (_c = (_b = (_a = rs[1] && sets.words()) !== null && _a !== void 0 ? _a : rs[2] && sets.ints()) !== null && _b !== void 0 ? _b : rs[3] && sets.whitespace()) !== null && _c !== void 0 ? _c : rs[4] && sets.notWords()) !== null && _d !== void 0 ? _d : rs[5] && sets.notInts()) !== null && _e !== void 0 ? _e : rs[6] && sets.notWhitespace()) !== null && _f !== void 0 ? _f : rs[7] && { type: types_1.types.RANGE, from: (rs[8] || rs[9]).charCodeAt(0), to: (c2 = rs[10]).charCodeAt(c2.length - 1) }) !== null && _g !== void 0 ? _g : (c2 = rs[16]) && { type: types_1.types.CHAR, value: c2.charCodeAt(0) }; if (p2) { tokens.push(p2); } else { return [tokens, regexp.lastIndex]; } } throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Unterminated character class`); }; } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/tokenizer.js var require_tokenizer = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/tokenizer.js"(exports) { var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; Object.defineProperty(o2, k2, { enumerable: true, get: function() { return m2[k]; } }); }) : (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; })); var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o2, v) { Object.defineProperty(o2, "default", { enumerable: true, value: v }); }) : function(o2, v) { o2["default"] = v; }); var __importStar = exports && exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.tokenizer = void 0; var util3 = __importStar(require_util()); var types_1 = require_types2(); var sets = __importStar(require_sets()); var captureGroupFirstChar = /^[a-zA-Z_$]$/i; var captureGroupChars = /^[a-zA-Z0-9_$]$/i; var digit = /\d/; exports.tokenizer = (regexpStr) => { let i2 = 0, c2; let start = { type: types_1.types.ROOT, stack: [] }; let lastGroup = start; let last = start.stack; let groupStack = []; let referenceQueue = []; let groupCount = 0; const repeatErr = (col) => { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Nothing to repeat at column ${col - 1}`); }; let str = util3.strToChars(regexpStr); while (i2 < str.length) { switch (c2 = str[i2++]) { // Handle escaped characters, inclues a few sets. case "\\": if (i2 === str.length) { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: \\ at end of pattern`); } switch (c2 = str[i2++]) { case "b": last.push({ type: types_1.types.POSITION, value: "b" }); break; case "B": last.push({ type: types_1.types.POSITION, value: "B" }); break; case "w": last.push(sets.words()); break; case "W": last.push(sets.notWords()); break; case "d": last.push(sets.ints()); break; case "D": last.push(sets.notInts()); break; case "s": last.push(sets.whitespace()); break; case "S": last.push(sets.notWhitespace()); break; default: if (digit.test(c2)) { let digits = c2; while (i2 < str.length && digit.test(str[i2])) { digits += str[i2++]; } let value = parseInt(digits, 10); const reference = { type: types_1.types.REFERENCE, value }; last.push(reference); referenceQueue.push({ reference, stack: last, index: last.length - 1 }); } else { last.push({ type: types_1.types.CHAR, value: c2.charCodeAt(0) }); } } break; // Positionals. case "^": last.push({ type: types_1.types.POSITION, value: "^" }); break; case "$": last.push({ type: types_1.types.POSITION, value: "$" }); break; // Handle custom sets. case "[": { let not; if (str[i2] === "^") { not = true; i2++; } else { not = false; } let classTokens = util3.tokenizeClass(str.slice(i2), regexpStr); i2 += classTokens[1]; last.push({ type: types_1.types.SET, set: classTokens[0], not }); break; } // Class of any character except \n. case ".": last.push(sets.anyChar()); break; // Push group onto stack. case "(": { let group = { type: types_1.types.GROUP, stack: [], remember: true }; if (str[i2] === "?") { c2 = str[i2 + 1]; i2 += 2; if (c2 === "=") { group.followedBy = true; group.remember = false; } else if (c2 === "!") { group.notFollowedBy = true; group.remember = false; } else if (c2 === "<") { let name = ""; if (captureGroupFirstChar.test(str[i2])) { name += str[i2]; i2++; } else { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Invalid capture group name, character '${str[i2]}' after '<' at column ${i2 + 1}`); } while (i2 < str.length && captureGroupChars.test(str[i2])) { name += str[i2]; i2++; } if (!name) { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Invalid capture group name, character '${str[i2]}' after '<' at column ${i2 + 1}`); } if (str[i2] !== ">") { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Unclosed capture group name, expected '>', found '${str[i2]}' at column ${i2 + 1}`); } group.name = name; i2++; } else if (c2 === ":") { group.remember = false; } else { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Invalid group, character '${c2}' after '?' at column ${i2 - 1}`); } } else { groupCount += 1; } last.push(group); groupStack.push(lastGroup); lastGroup = group; last = group.stack; break; } // Pop group out of stack. case ")": if (groupStack.length === 0) { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Unmatched ) at column ${i2 - 1}`); } lastGroup = groupStack.pop(); last = lastGroup.options ? lastGroup.options[lastGroup.options.length - 1] : lastGroup.stack; break; // Use pipe character to give more choices. case "|": { if (!lastGroup.options) { lastGroup.options = [lastGroup.stack]; delete lastGroup.stack; } let stack = []; lastGroup.options.push(stack); last = stack; break; } // Repetition. // For every repetition, remove last element from last stack // then insert back a RANGE object. // This design is chosen because there could be more than // one repetition symbols in a regex i.e. `a?+{2,3}`. case "{": { let rs = /^(\d+)(,(\d+)?)?\}/.exec(str.slice(i2)), min, max; if (rs !== null) { if (last.length === 0) { repeatErr(i2); } min = parseInt(rs[1], 10); max = rs[2] ? rs[3] ? parseInt(rs[3], 10) : Infinity : min; i2 += rs[0].length; last.push({ type: types_1.types.REPETITION, min, max, value: last.pop() }); } else { last.push({ type: types_1.types.CHAR, value: 123 }); } break; } case "?": if (last.length === 0) { repeatErr(i2); } last.push({ type: types_1.types.REPETITION, min: 0, max: 1, value: last.pop() }); break; case "+": if (last.length === 0) { repeatErr(i2); } last.push({ type: types_1.types.REPETITION, min: 1, max: Infinity, value: last.pop() }); break; case "*": if (last.length === 0) { repeatErr(i2); } last.push({ type: types_1.types.REPETITION, min: 0, max: Infinity, value: last.pop() }); break; // Default is a character that is not `\[](){}?+*^$`. default: last.push({ type: types_1.types.CHAR, value: c2.charCodeAt(0) }); } } if (groupStack.length !== 0) { throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Unterminated group`); } updateReferences(referenceQueue, groupCount); return start; }; function updateReferences(referenceQueue, groupCount) { for (const elem of referenceQueue.reverse()) { if (groupCount < elem.reference.value) { elem.reference.type = types_1.types.CHAR; const valueString = elem.reference.value.toString(); elem.reference.value = parseInt(valueString, 8); if (!/^[0-7]+$/.test(valueString)) { let i2 = 0; while (valueString[i2] !== "8" && valueString[i2] !== "9") { i2 += 1; } if (i2 === 0) { elem.reference.value = valueString.charCodeAt(0); i2 += 1; } else { elem.reference.value = parseInt(valueString.slice(0, i2), 8); } if (valueString.length > i2) { const tail = elem.stack.splice(elem.index + 1); for (const char of valueString.slice(i2)) { elem.stack.push({ type: types_1.types.CHAR, value: char.charCodeAt(0) }); } elem.stack.push(...tail); } } } } } } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/sets-lookup.js var require_sets_lookup = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/sets-lookup.js"(exports) { var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; Object.defineProperty(o2, k2, { enumerable: true, get: function() { return m2[k]; } }); }) : (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; })); var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o2, v) { Object.defineProperty(o2, "default", { enumerable: true, value: v }); }) : function(o2, v) { o2["default"] = v; }); var __importStar = exports && exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NOTANYCHAR = exports.WHITESPACE = exports.WORDS = exports.INTS = void 0; var Sets = __importStar(require_sets()); var types_1 = require_types2(); function setToLookup(tokens) { let lookup = {}; let len = 0; for (const token of tokens) { if (token.type === types_1.types.CHAR) { lookup[token.value] = true; } if (token.type === types_1.types.RANGE) { lookup[`${token.from}-${token.to}`] = true; } len += 1; } return { lookup: () => Object.assign({}, lookup), len }; } exports.INTS = setToLookup(Sets.ints().set); exports.WORDS = setToLookup(Sets.words().set); exports.WHITESPACE = setToLookup(Sets.whitespace().set); exports.NOTANYCHAR = setToLookup(Sets.anyChar().set); } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/write-set-tokens.js var require_write_set_tokens = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/write-set-tokens.js"(exports) { var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; Object.defineProperty(o2, k2, { enumerable: true, get: function() { return m2[k]; } }); }) : (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; })); var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o2, v) { Object.defineProperty(o2, "default", { enumerable: true, value: v }); }) : function(o2, v) { o2["default"] = v; }); var __importStar = exports && exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.writeSetTokens = exports.setChar = void 0; var types_1 = require_types2(); var sets = __importStar(require_sets_lookup()); function setChar(charCode) { return charCode === 94 ? "\\^" : charCode === 92 ? "\\\\" : charCode === 93 ? "\\]" : charCode === 45 ? "\\-" : String.fromCharCode(charCode); } exports.setChar = setChar; function isSameSet(set, { lookup, len }) { if (len !== set.length) { return false; } const map = lookup(); for (const elem of set) { if (elem.type === types_1.types.SET) { return false; } const key = elem.type === types_1.types.CHAR ? elem.value : `${elem.from}-${elem.to}`; if (map[key]) { map[key] = false; } else { return false; } } return true; } function writeSetTokens(set, isNested = false) { if (isSameSet(set.set, sets.INTS)) { return set.not ? "\\D" : "\\d"; } if (isSameSet(set.set, sets.WORDS)) { return set.not ? "\\W" : "\\w"; } if (set.not && isSameSet(set.set, sets.NOTANYCHAR)) { return "."; } if (isSameSet(set.set, sets.WHITESPACE)) { return set.not ? "\\S" : "\\s"; } let tokenString = ""; for (let i2 = 0; i2 < set.set.length; i2++) { const subset = set.set[i2]; tokenString += writeSetToken(subset); } const contents = `${set.not ? "^" : ""}${tokenString}`; return isNested ? contents : `[${contents}]`; } exports.writeSetTokens = writeSetTokens; function writeSetToken(set) { if (set.type === types_1.types.CHAR) { return setChar(set.value); } else if (set.type === types_1.types.RANGE) { return `${setChar(set.from)}-${setChar(set.to)}`; } return writeSetTokens(set, true); } } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/reconstruct.js var require_reconstruct = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/reconstruct.js"(exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.reconstruct = void 0; var types_1 = require_types2(); var write_set_tokens_1 = require_write_set_tokens(); var reduceStack = (stack) => stack.map(exports.reconstruct).join(""); var createAlternate = (token) => { if ("options" in token) { return token.options.map(reduceStack).join("|"); } else if ("stack" in token) { return reduceStack(token.stack); } else { throw new Error(`options or stack must be Root or Group token`); } }; exports.reconstruct = (token) => { switch (token.type) { case types_1.types.ROOT: return createAlternate(token); case types_1.types.CHAR: { const c2 = String.fromCharCode(token.value); return (/[[\\{}$^.|?*+()]/.test(c2) ? "\\" : "") + c2; } case types_1.types.POSITION: if (token.value === "^" || token.value === "$") { return token.value; } else { return `\\${token.value}`; } case types_1.types.REFERENCE: return `\\${token.value}`; case types_1.types.SET: return write_set_tokens_1.writeSetTokens(token); case types_1.types.GROUP: { const prefix2 = token.name ? `?<${token.name}>` : token.remember ? "" : token.followedBy ? "?=" : token.notFollowedBy ? "?!" : "?:"; return `(${prefix2}${createAlternate(token)})`; } case types_1.types.REPETITION: { const { min, max } = token; let endWith; if (min === 0 && max === 1) { endWith = "?"; } else if (min === 1 && max === Infinity) { endWith = "+"; } else if (min === 0 && max === Infinity) { endWith = "*"; } else if (max === Infinity) { endWith = `{${min},}`; } else if (min === max) { endWith = `{${min}}`; } else { endWith = `{${min},${max}}`; } return `${exports.reconstruct(token.value)}${endWith}`; } case types_1.types.RANGE: return `${write_set_tokens_1.setChar(token.from)}-${write_set_tokens_1.setChar(token.to)}`; default: throw new Error(`Invalid token type ${token}`); } }; } }); // ../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/index.js var require_dist = __commonJS({ "../../node_modules/.pnpm/ret@0.5.0/node_modules/ret/dist/index.js"(exports, module) { var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; Object.defineProperty(o2, k2, { enumerable: true, get: function() { return m2[k]; } }); }) : (function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; })); var __exportStar = exports && exports.__exportStar || function(m2, exports2) { for (var p2 in m2) if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2)) __createBinding(exports2, m2, p2); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.types = void 0; var types_1 = require_types2(); Object.defineProperty(exports, "types", { enumerable: true, get: function() { return types_1.types; } }); __exportStar(require_tokenizer(), exports); __exportStar(require_reconstruct(), exports); var tokenizer_1 = require_tokenizer(); var reconstruct_1 = require_reconstruct(); __exportStar(require_types2(), exports); exports.default = tokenizer_1.tokenizer; module.exports = tokenizer_1.tokenizer; module.exports.types = types_1.types; module.exports.reconstruct = reconstruct_1.reconstruct; } }); // ../../node_modules/.pnpm/safe-regex2@5.0.0/node_modules/safe-regex2/index.js var require_safe_regex2 = __commonJS({ "../../node_modules/.pnpm/safe-regex2@5.0.0/node_modules/safe-regex2/index.js"(exports, module) { var parse = require_dist(); var types = parse.types; function safeRegex(re, opts) { if (!opts) opts = {}; const replimit = opts.limit === void 0 ? 25 : opts.limit; if (isRegExp(re)) re = re.source; else if (typeof re !== "string") re = String(re); try { re = parse(re); } catch { return false; } let reps = 0; return (function walk(node, starHeight) { let i2; let ok; let len; if (node.type === types.REPETITION) { starHeight++; reps++; if (starHeight > 1) return false; if (reps > replimit) return false; } if (node.options) { for (i2 = 0, len = node.options.length; i2 < len; i2++) { ok = walk({ stack: node.options[i2] }, starHeight); if (!ok) return false; } } const stack = node.stack || node.value?.stack; if (!stack) return true; for (i2 = 0; i2 < stack.length; i2++) { ok = walk(stack[i2], starHeight); if (!ok) return false; } return true; })(re, 0); } function isRegExp(x) { return {}.toString.call(x) === "[object RegExp]"; } module.exports = safeRegex; module.exports.default = safeRegex; module.exports.safeRegex = safeRegex; } }); // ../../node_modules/.pnpm/loglevel@1.9.2/node_modules/loglevel/lib/loglevel.js var require_loglevel = __commonJS({ "../../node_modules/.pnpm/loglevel@1.9.2/node_modules/loglevel/lib/loglevel.js"(exports, module) { (function(root, definition) { if (typeof define === "function" && define.amd) { define(definition); } else if (typeof module === "object" && module.exports) { module.exports = definition(); } else { root.log = definition(); } })(exports, function() { var noop = function() { }; var undefinedType = "undefined"; var isIE = typeof window !== undefinedType && typeof window.navigator !== undefinedType && /Trident\/|MSIE /.test(window.navigator.userAgent); var logMethods = [ "trace", "debug", "info", "warn", "error" ]; var _loggersByName = {}; var defaultLogger = null; function bindMethod(obj, methodName) { var method = obj[methodName]; if (typeof method.bind === "function") { return method.bind(obj); } else { try { return Function.prototype.bind.call(method, obj); } catch (e2) { return function() { return Function.prototype.apply.apply(method, [obj, arguments]); }; } } } function traceForIE() { if (console.log) { if (console.log.apply) { console.log.apply(console, arguments); } else { Function.prototype.apply.apply(console.log, [console, arguments]); } } if (console.trace) console.trace(); } function realMethod(methodName) { if (methodName === "debug") { methodName = "log"; } if (typeof console === undefinedType) { return false; } else if (methodName === "trace" && isIE) { return traceForIE; } else if (console[methodName] !== void 0) { return bindMethod(console, methodName); } else if (console.log !== void 0) { return bindMethod(console, "log"); } else { return noop; } } function replaceLoggingMethods() { var level = this.getLevel(); for (var i2 = 0; i2 < logMethods.length; i2++) { var methodName = logMethods[i2]; this[methodName] = i2 < level ? noop : this.methodFactory(methodName, level, this.name); } this.log = this.debug; if (typeof console === undefinedType && level < this.levels.SILENT) { return "No console available for logging"; } } function enableLoggingWhenConsoleArrives(methodName) { return function() { if (typeof console !== undefinedType) { replaceLoggingMethods.call(this); this[methodName].apply(this, arguments); } }; } function defaultMethodFactory(methodName, _level, _loggerName) { return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments); } function Logger(name, factory) { var self = this; var inheritedLevel; var defaultLevel; var userLevel; var storageKey = "loglevel"; if (typeof name === "string") { storageKey += ":" + name; } else if (typeof name === "symbol") { storageKey = void 0; } function persistLevelIfPossible(levelNum) { var levelName = (logMethods[levelNum] || "silent").toUpperCase(); if (typeof window === undefinedType || !storageKey) return; try { window.localStorage[storageKey] = levelName; return; } catch (ignore) { } try { window.document.cookie = encodeURIComponent(storageKey) + "=" + levelName + ";"; } catch (ignore) { } } function getPersistedLevel() { var storedLevel; if (typeof window === undefinedType || !storageKey) return; try { storedLevel = window.localStorage[storageKey]; } catch (ignore) { } if (typeof storedLevel === undefinedType) { try { var cookie = window.document.cookie; var cookieName = encodeURIComponent(storageKey); var location = cookie.indexOf(cookieName + "="); if (location !== -1) { storedLevel = /^([^;]+)/.exec( cookie.slice(location + cookieName.length + 1) )[1]; } } catch (ignore) { } } if (self.levels[storedLevel] === void 0) { storedLevel = void 0; } return storedLevel; } function clearPersistedLevel() { if (typeof window === undefinedType || !storageKey) return; try { window.localStorage.removeItem(storageKey); } catch (ignore) { } try { window.document.cookie = encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC"; } catch (ignore) { } } function normalizeLevel(input) { var level = input; if (typeof level === "string" && self.levels[level.toUpperCase()] !== void 0) { level = self.levels[level.toUpperCase()]; } if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) { return level; } else { throw new TypeError("log.setLevel() called with invalid level: " + input); } } self.name = name; self.levels = { "TRACE": 0, "DEBUG": 1, "INFO": 2, "WARN": 3, "ERROR": 4, "SILENT": 5 }; self.methodFactory = factory || defaultMethodFactory; self.getLevel = function() { if (userLevel != null) { return userLevel; } else if (defaultLevel != null) { return defaultLevel; } else { return inheritedLevel; } }; self.setLevel = function(level, persist) { userLevel = normalizeLevel(level); if (persist !== false) { persistLevelIfPossible(userLevel); } return replaceLoggingMethods.call(self); }; self.setDefaultLevel = function(level) { defaultLevel = normalizeLevel(level); if (!getPersistedLevel()) { self.setLevel(level, false); } }; self.resetLevel = function() { userLevel = null; clearPersistedLevel(); replaceLoggingMethods.call(self); }; self.enableAll = function(persist) { self.setLevel(self.levels.TRACE, persist); }; self.disableAll = function(persist) { self.setLevel(self.levels.SILENT, persist); }; self.rebuild = function() { if (defaultLogger !== self) { inheritedLevel = normalizeLevel(defaultLogger.getLevel()); } replaceLoggingMethods.call(self); if (defaultLogger === self) { for (var childName in _loggersByName) { _loggersByName[childName].rebuild(); } } }; inheritedLevel = normalizeLevel( defaultLogger ? defaultLogger.getLevel() : "WARN" ); var initialLevel = getPersistedLevel(); if (initialLevel != null) { userLevel = normalizeLevel(initialLevel); } replaceLoggingMethods.call(self); } defaultLogger = new Logger(); defaultLogger.getLogger = function getLogger2(name) { if (typeof name !== "symbol" && typeof name !== "string" || name === "") { throw new TypeError("You must supply a name when creating a logger."); } var logger2 = _loggersByName[name]; if (!logger2) { logger2 = _loggersByName[name] = new Logger( name, defaultLogger.methodFactory ); } return logger2; }; var _log = typeof window !== undefinedType ? window.log : void 0; defaultLogger.noConflict = function() { if (typeof window !== undefinedType && window.log === defaultLogger) { window.log = _log; } return defaultLogger; }; defaultLogger.getLoggers = function getLoggers() { return _loggersByName; }; defaultLogger["default"] = defaultLogger; return defaultLogger; }); } }); // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js function assembleStyles() { const codes = /* @__PURE__ */ new Map(); for (const [groupName, group] of Object.entries(styles)) { for (const [styleName, style] of Object.entries(group)) { styles[styleName] = { open: `\x1B[${style[0]}m`, close: `\x1B[${style[1]}m` }; group[styleName] = styles[styleName]; codes.set(style[0], style[1]); } Object.defineProperty(styles, groupName, { value: group, enumerable: false }); } Object.defineProperty(styles, "codes", { value: codes, enumerable: false }); styles.color.close = "\x1B[39m"; styles.bgColor.close = "\x1B[49m"; styles.color.ansi = wrapAnsi16(); styles.color.ansi256 = wrapAnsi256(); styles.color.ansi16m = wrapAnsi16m(); styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET); styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET); styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET); Object.defineProperties(styles, { rgbToAnsi256: { value(red, green, blue) { if (red === green && green === blue) { if (red < 8) { return 16; } if (red > 248) { return 231; } return Math.round((red - 8) / 247 * 24) + 232; } return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5); }, enumerable: false }, hexToRgb: { value(hex) { const matches2 = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16)); if (!matches2) { return [0, 0, 0]; } let [colorString] = matches2; if (colorString.length === 3) { colorString = [...colorString].map((character) => character + character).join(""); } const integer = Number.parseInt(colorString, 16); return [ /* eslint-disable no-bitwise */ integer >> 16 & 255, integer >> 8 & 255, integer & 255 /* eslint-enable no-bitwise */ ]; }, enumerable: false }, hexToAnsi256: { value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), enumerable: false }, ansi256ToAnsi: { value(code) { if (code < 8) { return 30 + code; } if (code < 16) { return 90 + (code - 8); } let red; let green; let blue; if (code >= 232) { red = ((code - 232) * 10 + 8) / 255; green = red; blue = red; } else { code -= 16; const remainder = code % 36; red = Math.floor(code / 36) / 5; green = Math.floor(remainder / 6) / 5; blue = remainder % 6 / 5; } const value = Math.max(red, green, blue) * 2; if (value === 0) { return 30; } let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red)); if (value === 2) { result += 60; } return result; }, enumerable: false }, rgbToAnsi: { value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), enumerable: false }, hexToAnsi: { value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), enumerable: false } }); return styles; } var ANSI_BACKGROUND_OFFSET, wrapAnsi16, wrapAnsi256, wrapAnsi16m, styles, foregroundColorNames, backgroundColorNames, ansiStyles, ansi_styles_default; var init_ansi_styles = __esm({ "../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js"() { ANSI_BACKGROUND_OFFSET = 10; wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`; wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`; wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`; styles = { modifier: { reset: [0, 0], // 21 isn't widely supported and 22 does the same thing bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], overline: [53, 55], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], // Bright color blackBright: [90, 39], gray: [90, 39], // Alias of `blackBright` grey: [90, 39], // Alias of `blackBright` redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], // Bright color bgBlackBright: [100, 49], bgGray: [100, 49], // Alias of `bgBlackBright` bgGrey: [100, 49], // Alias of `bgBlackBright` bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; Object.keys(styles.modifier); foregroundColorNames = Object.keys(styles.color); backgroundColorNames = Object.keys(styles.bgColor); [...foregroundColorNames, ...backgroundColorNames]; ansiStyles = assembleStyles(); ansi_styles_default = ansiStyles; } }); function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) { const prefix2 = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; const position = argv.indexOf(prefix2 + flag); const terminatorPosition = argv.indexOf("--"); return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); } function envForceColor() { if ("FORCE_COLOR" in env) { if (env.FORCE_COLOR === "true") { return 1; } if (env.FORCE_COLOR === "false") { return 0; } return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); } } function translateLevel(level) { if (level === 0) { return false; } return { level, hasBasic: true, has256: level >= 2, has16m: level >= 3 }; } function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { const noFlagForceColor = envForceColor(); if (noFlagForceColor !== void 0) { flagForceColor = noFlagForceColor; } const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; if (forceColor === 0) { return 0; } if (sniffFlags) { if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { return 3; } if (hasFlag("color=256")) { return 2; } } if ("TF_BUILD" in env && "AGENT_NAME" in env) { return 1; } if (haveStream && !streamIsTTY && forceColor === void 0) { return 0; } const min = forceColor || 0; if (env.TERM === "dumb") { return min; } if (process2.platform === "win32") { const osRelease = os.release().split("."); if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { return Number(osRelease[2]) >= 14931 ? 3 : 2; } return 1; } if ("CI" in env) { if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => key in env)) { return 3; } if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { return 1; } return min; } if ("TEAMCITY_VERSION" in env) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } if (env.COLORTERM === "truecolor") { return 3; } if (env.TERM === "xterm-kitty") { return 3; } if (env.TERM === "xterm-ghostty") { return 3; } if (env.TERM === "wezterm") { return 3; } if ("TERM_PROGRAM" in env) { const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); switch (env.TERM_PROGRAM) { case "iTerm.app": { return version >= 3 ? 3 : 2; } case "Apple_Terminal": { return 2; } } } if (/-256(color)?$/i.test(env.TERM)) { return 2; } if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { return 1; } if ("COLORTERM" in env) { return 1; } return min; } function createSupportsColor(stream, options = {}) { const level = _supportsColor(stream, { streamIsTTY: stream && stream.isTTY, ...options }); return translateLevel(level); } var env, flagForceColor, supportsColor, supports_color_default; var init_supports_color = __esm({ "../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js"() { ({ env } = process2); if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { flagForceColor = 0; } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { flagForceColor = 1; } supportsColor = { stdout: createSupportsColor({ isTTY: tty.isatty(1) }), stderr: createSupportsColor({ isTTY: tty.isatty(2) }) }; supports_color_default = supportsColor; } }); // ../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js function stringReplaceAll(string, substring, replacer) { let index = string.indexOf