From e5cf7a7a7948cf40736753cd44a30f1a05b9e67c Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 10:03:46 +0900 Subject: [PATCH 1/8] refactor(molecule): support the latest mol grammar --- .eslintignore | 3 +- package.json | 1 + packages/molecule/package.json | 17 +- packages/molecule/src/codegen.ts | 56 +- packages/molecule/src/grammar/.eslintignore | 1 + packages/molecule/src/grammar/grammar.d.ts | 15 + packages/molecule/src/grammar/grammar.js | 1980 +++++++++++++++++ packages/molecule/src/grammar/grammar.peggy | 203 ++ packages/molecule/src/grammar/mol.d.ts | 5 - packages/molecule/src/grammar/mol.js | 541 ----- packages/molecule/src/grammar/mol.ne | 234 -- packages/molecule/src/nearley.ts | 11 +- .../simple.test.ts => codegen-simple.test.ts} | 19 +- packages/molecule/tests/codegen.test.ts | 18 +- .../molecule/tests/codegen/customization.ts | 5 - packages/molecule/tests/codegen/generated.ts | 572 +++-- .../tests/codegen/lumos-molecule-codegen.json | 3 +- packages/molecule/tests/codegen/types.mol | 3 + pnpm-lock.yaml | 108 +- 19 files changed, 2645 insertions(+), 1150 deletions(-) create mode 100644 packages/molecule/src/grammar/.eslintignore create mode 100644 packages/molecule/src/grammar/grammar.d.ts create mode 100644 packages/molecule/src/grammar/grammar.js create mode 100644 packages/molecule/src/grammar/grammar.peggy delete mode 100644 packages/molecule/src/grammar/mol.d.ts delete mode 100644 packages/molecule/src/grammar/mol.js delete mode 100644 packages/molecule/src/grammar/mol.ne rename packages/molecule/tests/{codegen/simple.test.ts => codegen-simple.test.ts} (82%) delete mode 100644 packages/molecule/tests/codegen/customization.ts diff --git a/.eslintignore b/.eslintignore index 09ae41b9e..fd0812785 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1 +1,2 @@ -docusaurus/* \ No newline at end of file +docusaurus/* +packages/molecule/src/grammar/* diff --git a/package.json b/package.json index ca093e6b6..11c7c2599 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "lint-staged": "^12.3.5", "npm-run-all": "^4.1.5", "prettier": "^2.8.8", + "prettier-plugin-pegjs": "^2.0.2", "shx": "^0.3.4", "sinon": "^15.0.4", "ts-node": "^10.9.1", diff --git a/packages/molecule/package.json b/packages/molecule/package.json index e2303aac1..cb4e153fc 100644 --- a/packages/molecule/package.json +++ b/packages/molecule/package.json @@ -44,24 +44,21 @@ "build": "pnpm run build:types && pnpm run build:js", "build:types": "tsc --declaration --emitDeclarationOnly", "build:js": "babel --root-mode upward src --out-dir lib --extensions .ts -s && pnpm run build:old", - "build:old": "shx mkdir -p lib/grammar && shx cp -r src/grammar/*.js lib/grammar ", - "clean": "rm -rf lib" + "build:old": "shx mkdir -p lib/grammar && shx cp -r src/grammar/*.js lib/grammar", + "clean": "rm -rf lib", + "generate:grammar": "peggy -o ./src/grammar/grammar.js ./src/grammar/grammar.peggy", + "generate:test-mol": "cd tests/codegen && node ../../lib/cli > generated.ts" }, "dependencies": { - "@ckb-lumos/bi": "0.24.0-next.1", "@ckb-lumos/codec": "0.24.0-next.1", - "@types/moo": "^0.5.9", - "@types/nearley": "^2.11.2", "glob": "^10.3.10", - "minimist": "^1.2.8", - "moo": "^0.5.1", - "nearley": "^2.20.1", "relative": "^3.0.2" }, "devDependencies": { "@ckb-lumos/base": "0.24.0-next.1", - "jsbi": "^4.1.0", + "@types/js-yaml": "^4.0.9", "js-yaml": "^4.1.0", - "@types/js-yaml": "^4.0.9" + "jsbi": "^4.1.0", + "peggy": "^4.0.3" } } diff --git a/packages/molecule/src/codegen.ts b/packages/molecule/src/codegen.ts index a23a5882e..de7693c84 100644 --- a/packages/molecule/src/codegen.ts +++ b/packages/molecule/src/codegen.ts @@ -1,9 +1,8 @@ import { MolType } from "./type"; -import { Grammar as NearleyGrammar, Parser as NearleyParser } from "nearley"; import { circularIterator } from "./circularIterator"; -import grammar from "./grammar/mol"; import path from "node:path"; import { topologySort } from "./topologySort"; +import grammar from "./grammar/grammar"; export type Options = { /** @@ -43,44 +42,10 @@ export type ResolveResult = { * resolve the import statement from a molecule schema and erase them for continuing codegen * @param inputCode */ -export function resolveAndEraseImports(inputCode: string): ResolveResult { - // https://github.com/nervosnetwork/molecule/blob/37748b1124181a3260a0668693c43c8d38c98723/docs/grammar/grammar.ebnf#L70 - const importRegex = /^import\s+([^;]+);/; - const imports: string[] = []; - const lines = inputCode.split("\n"); - const updatedLines: string[] = []; - let blockComment = false; - - // fill the imports and erase the import statements from the code - for (const line of lines) { - const trimmedLine = line.trim(); - - // https://github.com/nervosnetwork/molecule/blob/master/docs/schema_language.md#comments - if (trimmedLine.startsWith("/*")) { - blockComment = true; - } - - if (trimmedLine.endsWith("*/")) { - blockComment = false; - updatedLines.push(line); - continue; - } - - if (blockComment) { - updatedLines.push(line); - continue; - } +export function resolveImports(inputCode: string): ResolveResult { + const { imports } = grammar.parse(inputCode); - const match = trimmedLine.match(importRegex); - if (match) { - imports.push(match[1]); - } else { - updatedLines.push(line); - } - } - - const code = updatedLines.join("\n"); - return { code, importSchemas: imports }; + return { code: inputCode, importSchemas: imports }; } export type CodegenResult = { @@ -94,16 +59,9 @@ export type CodegenResult = { * @param options */ export function codegen(schema: string, options: Options = {}): CodegenResult { - const parser = new NearleyParser(NearleyGrammar.fromCompiled(grammar)); - parser.feed(schema); - - // the items that don't need to be generated + const { declares } = grammar.parse(schema); const importedModules: string[] = scanCustomizedTypes(options.prepend || ""); - - const molTypes = prepareMolTypes( - parser.results[0].filter(Boolean), - importedModules - ); + const molTypes = prepareMolTypes(declares, importedModules); const elements: string[] = []; @@ -240,7 +198,7 @@ export function codegenProject( const resolvedSchemas = schemas.map< ResolveResult & { path: string } & Options >(({ content, path, prepend, formatObjectKeys }) => ({ - ...resolveAndEraseImports(content), + ...resolveImports(content), path, prepend, formatObjectKeys, diff --git a/packages/molecule/src/grammar/.eslintignore b/packages/molecule/src/grammar/.eslintignore new file mode 100644 index 000000000..6ff1973ef --- /dev/null +++ b/packages/molecule/src/grammar/.eslintignore @@ -0,0 +1 @@ +grammar.js diff --git a/packages/molecule/src/grammar/grammar.d.ts b/packages/molecule/src/grammar/grammar.d.ts new file mode 100644 index 000000000..f1146bc14 --- /dev/null +++ b/packages/molecule/src/grammar/grammar.d.ts @@ -0,0 +1,15 @@ +import { MolType } from "../type"; + +type ParseResult = { + declares: MolType[]; + imports: string[]; + syntaxVersion: string | null; +}; + +type Grammar = { + parse(schema: string): ParseResult; +}; + +declare const grammar: Grammar; + +export default grammar; diff --git a/packages/molecule/src/grammar/grammar.js b/packages/molecule/src/grammar/grammar.js new file mode 100644 index 000000000..5c07f908b --- /dev/null +++ b/packages/molecule/src/grammar/grammar.js @@ -0,0 +1,1980 @@ +// @generated by Peggy 4.0.3. +// +// https://peggyjs.org/ + +"use strict"; + + +function peg$subclass(child, parent) { + function C() { this.constructor = child; } + C.prototype = parent.prototype; + child.prototype = new C(); +} + +function peg$SyntaxError(message, expected, found, location) { + var self = Error.call(this, message); + // istanbul ignore next Check is a necessary evil to support older environments + if (Object.setPrototypeOf) { + Object.setPrototypeOf(self, peg$SyntaxError.prototype); + } + self.expected = expected; + self.found = found; + self.location = location; + self.name = "SyntaxError"; + return self; +} + +peg$subclass(peg$SyntaxError, Error); + +function peg$padEnd(str, targetLength, padString) { + padString = padString || " "; + if (str.length > targetLength) { return str; } + targetLength -= str.length; + padString += padString.repeat(targetLength); + return str + padString.slice(0, targetLength); +} + +peg$SyntaxError.prototype.format = function(sources) { + var str = "Error: " + this.message; + if (this.location) { + var src = null; + var k; + for (k = 0; k < sources.length; k++) { + if (sources[k].source === this.location.source) { + src = sources[k].text.split(/\r\n|\n|\r/g); + break; + } + } + var s = this.location.start; + var offset_s = (this.location.source && (typeof this.location.source.offset === "function")) + ? this.location.source.offset(s) + : s; + var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column; + if (src) { + var e = this.location.end; + var filler = peg$padEnd("", offset_s.line.toString().length, ' '); + var line = src[s.line - 1]; + var last = s.line === e.line ? e.column : line.length + 1; + var hatLen = (last - s.column) || 1; + str += "\n --> " + loc + "\n" + + filler + " |\n" + + offset_s.line + " | " + line + "\n" + + filler + " | " + peg$padEnd("", s.column - 1, ' ') + + peg$padEnd("", hatLen, "^"); + } else { + str += "\n at " + loc; + } + } + return str; +}; + +peg$SyntaxError.buildMessage = function(expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + + class: function(expectation) { + var escapedParts = expectation.parts.map(function(part) { + return Array.isArray(part) + ? classEscape(part[0]) + "-" + classEscape(part[1]) + : classEscape(part); + }); + + return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]"; + }, + + any: function() { + return "any character"; + }, + + end: function() { + return "end of input"; + }, + + other: function(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s + .replace(/\\/g, "\\\\") + .replace(/"/g, "\\\"") + .replace(/\0/g, "\\0") + .replace(/\t/g, "\\t") + .replace(/\n/g, "\\n") + .replace(/\r/g, "\\r") + .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); }); + } + + function classEscape(s) { + return s + .replace(/\\/g, "\\\\") + .replace(/\]/g, "\\]") + .replace(/\^/g, "\\^") + .replace(/-/g, "\\-") + .replace(/\0/g, "\\0") + .replace(/\t/g, "\\t") + .replace(/\n/g, "\\n") + .replace(/\r/g, "\\r") + .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = expected.map(describeExpectation); + var i, j; + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + + ", or " + + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; +}; + +function peg$parse(input, options) { + options = options !== undefined ? options : {}; + + var peg$FAILED = {}; + var peg$source = options.grammarSource; + + var peg$startRuleFunctions = { grammar: peg$parsegrammar }; + var peg$startRuleFunction = peg$parsegrammar; + + var peg$c0 = "table"; + var peg$c1 = "{"; + var peg$c2 = "}"; + var peg$c3 = "vector"; + var peg$c4 = "<"; + var peg$c5 = ">"; + var peg$c6 = "struct"; + var peg$c7 = ":"; + var peg$c8 = "array"; + var peg$c9 = "["; + var peg$c10 = ";"; + var peg$c11 = "]"; + var peg$c12 = "union"; + var peg$c13 = "option"; + var peg$c14 = "("; + var peg$c15 = ")"; + var peg$c16 = "syntax"; + var peg$c17 = "="; + var peg$c18 = ","; + var peg$c19 = "import"; + var peg$c20 = "/"; + var peg$c21 = "../"; + var peg$c22 = "/*"; + var peg$c23 = "*/"; + var peg$c24 = "//"; + var peg$c25 = "#"; + var peg$c26 = "\n"; + var peg$c27 = "\r\n"; + var peg$c28 = "0"; + + var peg$r0 = /^[0-9A-Z_a-z]/; + var peg$r1 = /^[A-Za-z]/; + var peg$r2 = /^[A-Z]/; + var peg$r3 = /^[a-z]/; + var peg$r4 = /^[^*\/]/; + var peg$r5 = /^[^\n]/; + var peg$r6 = /^[^\r\n]/; + var peg$r7 = /^[\t ]/; + var peg$r8 = /^[0-9]/; + var peg$r9 = /^[1-9]/; + + var peg$e0 = peg$literalExpectation("table", false); + var peg$e1 = peg$literalExpectation("{", false); + var peg$e2 = peg$literalExpectation("}", false); + var peg$e3 = peg$literalExpectation("vector", false); + var peg$e4 = peg$literalExpectation("<", false); + var peg$e5 = peg$literalExpectation(">", false); + var peg$e6 = peg$literalExpectation("struct", false); + var peg$e7 = peg$literalExpectation(":", false); + var peg$e8 = peg$literalExpectation("array", false); + var peg$e9 = peg$literalExpectation("[", false); + var peg$e10 = peg$literalExpectation(";", false); + var peg$e11 = peg$literalExpectation("]", false); + var peg$e12 = peg$literalExpectation("union", false); + var peg$e13 = peg$literalExpectation("option", false); + var peg$e14 = peg$literalExpectation("(", false); + var peg$e15 = peg$literalExpectation(")", false); + var peg$e16 = peg$literalExpectation("syntax", false); + var peg$e17 = peg$literalExpectation("=", false); + var peg$e18 = peg$literalExpectation(",", false); + var peg$e19 = peg$literalExpectation("import", false); + var peg$e20 = peg$literalExpectation("/", false); + var peg$e21 = peg$literalExpectation("../", false); + var peg$e22 = peg$classExpectation([["0", "9"], ["A", "Z"], "_", ["a", "z"]], false, false); + var peg$e23 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false); + var peg$e24 = peg$classExpectation([["A", "Z"]], false, false); + var peg$e25 = peg$classExpectation([["a", "z"]], false, false); + var peg$e26 = peg$literalExpectation("/*", false); + var peg$e27 = peg$classExpectation(["*", "/"], true, false); + var peg$e28 = peg$literalExpectation("*/", false); + var peg$e29 = peg$literalExpectation("//", false); + var peg$e30 = peg$literalExpectation("#", false); + var peg$e31 = peg$classExpectation(["\n"], true, false); + var peg$e32 = peg$classExpectation(["\r", "\n"], true, false); + var peg$e33 = peg$classExpectation(["\t", " "], false, false); + var peg$e34 = peg$literalExpectation("\n", false); + var peg$e35 = peg$literalExpectation("\r\n", false); + var peg$e36 = peg$classExpectation([["0", "9"]], false, false); + var peg$e37 = peg$classExpectation([["1", "9"]], false, false); + var peg$e38 = peg$literalExpectation("0", false); + + var peg$f0 = function(version, imports, declares) { + return { + syntaxVersion: version, + imports, + declares, + }; + }; + var peg$f1 = function(declare) { return declare; }; + var peg$f2 = function(name, fields) { + return { + type: "table", + name, + fields, + }; + }; + var peg$f3 = function(name, item) { + return { + type: "vector", + name, + item, + }; + }; + var peg$f4 = function(name, fields) { + return { + type: "struct", + name, + fields, + }; + }; + var peg$f5 = function(name, type) { + return { name, type }; + }; + var peg$f6 = function(name, item, item_count) { + return { + type: "array", + name, + item, + item_count, + }; + }; + var peg$f7 = function(name, declares) { + return { + type: "union", + name, + items: declares, + }; + }; + var peg$f8 = function(name) { return name; }; + var peg$f9 = function(name, id) { + return [name, id]; + }; + var peg$f10 = function(head, tail) { return head + tail.join(""); }; + var peg$f11 = function(name, item) { + return { + type: "option", + name, + item, + }; + }; + var peg$f12 = function(version) { + return version.join(""); + }; + var peg$f13 = function(path) { return path; }; + var peg$f14 = function(head, middle, tail) { + return head.join("") + middle.flatMap((x) => x).join("") + tail; + }; + var peg$f15 = function(head, tail) { return head + tail.join(""); }; + var peg$currPos = options.peg$currPos | 0; + var peg$savedPos = peg$currPos; + var peg$posDetailsCache = [{ line: 1, column: 1 }]; + var peg$maxFailPos = peg$currPos; + var peg$maxFailExpected = options.peg$maxFailExpected || []; + var peg$silentFails = options.peg$silentFails | 0; + + var peg$result; + + if (options.startRule) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function text() { + return input.substring(peg$savedPos, peg$currPos); + } + + function offset() { + return peg$savedPos; + } + + function range() { + return { + source: peg$source, + start: peg$savedPos, + end: peg$currPos + }; + } + + function location() { + return peg$computeLocation(peg$savedPos, peg$currPos); + } + + function expected(description, location) { + location = location !== undefined + ? location + : peg$computeLocation(peg$savedPos, peg$currPos); + + throw peg$buildStructuredError( + [peg$otherExpectation(description)], + input.substring(peg$savedPos, peg$currPos), + location + ); + } + + function error(message, location) { + location = location !== undefined + ? location + : peg$computeLocation(peg$savedPos, peg$currPos); + + throw peg$buildSimpleError(message, location); + } + + function peg$literalExpectation(text, ignoreCase) { + return { type: "literal", text: text, ignoreCase: ignoreCase }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; + } + + function peg$anyExpectation() { + return { type: "any" }; + } + + function peg$endExpectation() { + return { type: "end" }; + } + + function peg$otherExpectation(description) { + return { type: "other", description: description }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos]; + var p; + + if (details) { + return details; + } else { + if (pos >= peg$posDetailsCache.length) { + p = peg$posDetailsCache.length - 1; + } else { + p = pos; + while (!peg$posDetailsCache[--p]) {} + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + + return details; + } + } + + function peg$computeLocation(startPos, endPos, offset) { + var startPosDetails = peg$computePosDetails(startPos); + var endPosDetails = peg$computePosDetails(endPos); + + var res = { + source: peg$source, + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + if (offset && peg$source && (typeof peg$source.offset === "function")) { + res.start = peg$source.offset(res.start); + res.end = peg$source.offset(res.end); + } + return res; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { return; } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildSimpleError(message, location) { + return new peg$SyntaxError(message, null, null, location); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError( + peg$SyntaxError.buildMessage(expected, found), + expected, + found, + location + ); + } + + function peg$parsegrammar() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parsebrk(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsebrk(); + } + s2 = peg$parsesyntax_version_stmt(); + if (s2 === peg$FAILED) { + s2 = null; + } + s3 = []; + s4 = peg$parsebrk(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parsebrk(); + } + s4 = []; + s5 = peg$parseimport_stmt(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseimport_stmt(); + } + s5 = []; + s6 = peg$parsebrk(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parsebrk(); + } + s6 = []; + s7 = peg$parsedecl_stmt(); + if (s7 !== peg$FAILED) { + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsedecl_stmt(); + } + } else { + s6 = peg$FAILED; + } + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f0(s2, s4, s6); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsedecl_stmt() { + var s0, s1, s2, s3, s4; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parsebrk(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsebrk(); + } + s2 = peg$parseoption_decl(); + if (s2 === peg$FAILED) { + s2 = peg$parseunion_decl(); + if (s2 === peg$FAILED) { + s2 = peg$parsearray_decl(); + if (s2 === peg$FAILED) { + s2 = peg$parsestruct_decl(); + if (s2 === peg$FAILED) { + s2 = peg$parsevector_decl(); + if (s2 === peg$FAILED) { + s2 = peg$parsetable_decl(); + } + } + } + } + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parsebrk(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parsebrk(); + } + peg$savedPos = s0; + s0 = peg$f1(s2); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsetable_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c0) { + s1 = peg$c0; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e0); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseidentifier(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 123) { + s5 = peg$c1; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e1); } + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = []; + s8 = peg$parsefield_decl(); + while (s8 !== peg$FAILED) { + s7.push(s8); + s8 = peg$parsefield_decl(); + } + if (input.charCodeAt(peg$currPos) === 125) { + s8 = peg$c2; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e2); } + } + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f2(s3, s7); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsevector_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c3) { + s1 = peg$c3; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e3); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseidentifier(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 60) { + s5 = peg$c4; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e4); } + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = peg$parseidentifier(); + if (s7 !== peg$FAILED) { + s8 = []; + s9 = peg$parsebrk(); + while (s9 !== peg$FAILED) { + s8.push(s9); + s9 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 62) { + s9 = peg$c5; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e5); } + } + if (s9 !== peg$FAILED) { + s10 = []; + s11 = peg$parsebrk(); + while (s11 !== peg$FAILED) { + s10.push(s11); + s11 = peg$parsebrk(); + } + s11 = peg$parsestmt_end(); + if (s11 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f3(s3, s7); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsestruct_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c6) { + s1 = peg$c6; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e6); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseidentifier(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 123) { + s5 = peg$c1; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e1); } + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = []; + s8 = peg$parsefield_decl(); + while (s8 !== peg$FAILED) { + s7.push(s8); + s8 = peg$parsefield_decl(); + } + if (input.charCodeAt(peg$currPos) === 125) { + s8 = peg$c2; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e2); } + } + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f4(s3, s7); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsefield_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; + + s0 = peg$currPos; + s1 = peg$parseidentifier(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 58) { + s3 = peg$c7; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e7); } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + s5 = peg$parseidentifier(); + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = peg$parsefield_end(); + if (s7 !== peg$FAILED) { + s8 = []; + s9 = peg$parsebrk(); + while (s9 !== peg$FAILED) { + s8.push(s9); + s9 = peg$parsebrk(); + } + peg$savedPos = s0; + s0 = peg$f5(s1, s5); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsearray_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c8) { + s1 = peg$c8; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e8); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseidentifier(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 91) { + s5 = peg$c9; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e9); } + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = peg$parseidentifier(); + if (s7 !== peg$FAILED) { + s8 = []; + s9 = peg$parsebrk(); + while (s9 !== peg$FAILED) { + s8.push(s9); + s9 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 59) { + s9 = peg$c10; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e10); } + } + if (s9 !== peg$FAILED) { + s10 = []; + s11 = peg$parsebrk(); + while (s11 !== peg$FAILED) { + s10.push(s11); + s11 = peg$parsebrk(); + } + s11 = peg$parsenumber_gt_zero(); + if (s11 !== peg$FAILED) { + s12 = []; + s13 = peg$parsebrk(); + while (s13 !== peg$FAILED) { + s12.push(s13); + s13 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 93) { + s13 = peg$c11; + peg$currPos++; + } else { + s13 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e11); } + } + if (s13 !== peg$FAILED) { + s14 = []; + s15 = peg$parsebrk(); + while (s15 !== peg$FAILED) { + s14.push(s15); + s15 = peg$parsebrk(); + } + s15 = peg$parsestmt_end(); + if (s15 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f6(s3, s7, s11); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseunion_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c12) { + s1 = peg$c12; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e12); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseidentifier(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 123) { + s5 = peg$c1; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e1); } + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = []; + s8 = peg$parseitem_decl(); + if (s8 === peg$FAILED) { + s8 = peg$parsecustom_union_item_decl(); + } + if (s8 !== peg$FAILED) { + while (s8 !== peg$FAILED) { + s7.push(s8); + s8 = peg$parseitem_decl(); + if (s8 === peg$FAILED) { + s8 = peg$parsecustom_union_item_decl(); + } + } + } else { + s7 = peg$FAILED; + } + if (s7 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s8 = peg$c2; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e2); } + } + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f7(s3, s7); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseitem_decl() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = peg$parseidentifier(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + s3 = peg$parseitem_end(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + peg$savedPos = s0; + s0 = peg$f8(s1); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsecustom_union_item_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; + + s0 = peg$currPos; + s1 = peg$parseidentifier(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 58) { + s3 = peg$c7; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e7); } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + s5 = peg$parsenumber_gte_zero(); + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = peg$parsefield_end(); + if (s7 !== peg$FAILED) { + s8 = []; + s9 = peg$parsebrk(); + while (s9 !== peg$FAILED) { + s8.push(s9); + s9 = peg$parsebrk(); + } + peg$savedPos = s0; + s0 = peg$f9(s1, s5); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsenumber_gte_zero() { + var s0; + + s0 = peg$parsezero(); + if (s0 === peg$FAILED) { + s0 = peg$parsenumber_gt_zero(); + } + + return s0; + } + + function peg$parsenumber_gt_zero() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parsenonzero(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsedigit(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsedigit(); + } + peg$savedPos = s0; + s0 = peg$f10(s1, s2); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseoption_decl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c13) { + s1 = peg$c13; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e13); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseidentifier(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 40) { + s5 = peg$c14; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e14); } + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = peg$parseidentifier(); + if (s7 !== peg$FAILED) { + s8 = []; + s9 = peg$parsebrk(); + while (s9 !== peg$FAILED) { + s8.push(s9); + s9 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 41) { + s9 = peg$c15; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e15); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parsestmt_end(); + if (s10 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f11(s3, s7); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsesyntax_version_stmt() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c16) { + s1 = peg$c16; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + if (input.charCodeAt(peg$currPos) === 61) { + s3 = peg$c17; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e17); } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + s5 = peg$parsesyntax_version(); + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + s7 = peg$parsestmt_end(); + if (s7 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f12(s5); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsesyntax_version() { + var s0, s1; + + s0 = []; + s1 = peg$parsedigit(); + if (s1 !== peg$FAILED) { + while (s1 !== peg$FAILED) { + s0.push(s1); + s1 = peg$parsedigit(); + } + } else { + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseitem_end() { + var s0; + + if (input.charCodeAt(peg$currPos) === 44) { + s0 = peg$c18; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e18); } + } + + return s0; + } + + function peg$parsefield_end() { + var s0; + + if (input.charCodeAt(peg$currPos) === 44) { + s0 = peg$c18; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e18); } + } + + return s0; + } + + function peg$parseimport_stmt() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c19) { + s1 = peg$c19; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e19); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsebrk(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsebrk(); + } + s3 = peg$parsepath(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsebrk(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsebrk(); + } + s5 = peg$parsestmt_end(); + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parsebrk(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parsebrk(); + } + peg$savedPos = s0; + s0 = peg$f13(s3); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsepath() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parsepath_super(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsepath_super(); + } + s2 = []; + s3 = peg$currPos; + s4 = peg$parseidentifier(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 47) { + s5 = peg$c20; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e20); } + } + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parseidentifier(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 47) { + s5 = peg$c20; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e20); } + } + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + s3 = peg$parseidentifier(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f14(s1, s2, s3); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsepath_super() { + var s0; + + if (input.substr(peg$currPos, 3) === peg$c21) { + s0 = peg$c21; + peg$currPos += 3; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e21); } + } + + return s0; + } + + function peg$parseidentifier() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parseletter(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = input.charAt(peg$currPos); + if (peg$r0.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e22); } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = input.charAt(peg$currPos); + if (peg$r0.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e22); } + } + } + peg$savedPos = s0; + s0 = peg$f15(s1, s2); + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseletter() { + var s0; + + s0 = input.charAt(peg$currPos); + if (peg$r1.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e23); } + } + + return s0; + } + + function peg$parseuppercase() { + var s0; + + s0 = input.charAt(peg$currPos); + if (peg$r2.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e24); } + } + + return s0; + } + + function peg$parselowercase() { + var s0; + + s0 = input.charAt(peg$currPos); + if (peg$r3.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e25); } + } + + return s0; + } + + function peg$parsestmt_end() { + var s0; + + if (input.charCodeAt(peg$currPos) === 59) { + s0 = peg$c10; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e10); } + } + + return s0; + } + + function peg$parsebrk() { + var s0; + + s0 = peg$parsewhitespace(); + if (s0 === peg$FAILED) { + s0 = peg$parsecomment(); + } + + return s0; + } + + function peg$parsecomment() { + var s0; + + s0 = peg$parseblock_comment(); + if (s0 === peg$FAILED) { + s0 = peg$parseline_comment(); + } + + return s0; + } + + function peg$parseblock_comment() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c22) { + s1 = peg$c22; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e26); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = input.charAt(peg$currPos); + if (peg$r4.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e27); } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = input.charAt(peg$currPos); + if (peg$r4.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e27); } + } + } + if (input.substr(peg$currPos, 2) === peg$c23) { + s3 = peg$c23; + peg$currPos += 2; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e28); } + } + if (s3 !== peg$FAILED) { + s1 = [s1, s2, s3]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseline_comment() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c24) { + s1 = peg$c24; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e29); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 35) { + s1 = peg$c25; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e30); } + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = input.charAt(peg$currPos); + if (peg$r5.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e31); } + } + if (s3 === peg$FAILED) { + s3 = input.charAt(peg$currPos); + if (peg$r6.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e32); } + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = input.charAt(peg$currPos); + if (peg$r5.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e31); } + } + if (s3 === peg$FAILED) { + s3 = input.charAt(peg$currPos); + if (peg$r6.test(s3)) { + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e32); } + } + } + } + s1 = [s1, s2]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsewhitespace() { + var s0; + + s0 = peg$parseifs(); + if (s0 === peg$FAILED) { + s0 = peg$parsenewline(); + } + + return s0; + } + + function peg$parseifs() { + var s0; + + s0 = input.charAt(peg$currPos); + if (peg$r7.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e33); } + } + + return s0; + } + + function peg$parsenewline() { + var s0; + + if (input.charCodeAt(peg$currPos) === 10) { + s0 = peg$c26; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e34); } + } + if (s0 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c27) { + s0 = peg$c27; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e35); } + } + } + + return s0; + } + + function peg$parsedigit() { + var s0; + + s0 = input.charAt(peg$currPos); + if (peg$r8.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e36); } + } + + return s0; + } + + function peg$parsenonzero() { + var s0; + + s0 = input.charAt(peg$currPos); + if (peg$r9.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e37); } + } + + return s0; + } + + function peg$parsezero() { + var s0; + + if (input.charCodeAt(peg$currPos) === 48) { + s0 = peg$c28; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e38); } + } + + return s0; + } + + peg$result = peg$startRuleFunction(); + + if (options.peg$library) { + return /** @type {any} */ ({ + peg$result, + peg$currPos, + peg$FAILED, + peg$maxFailExpected, + peg$maxFailPos + }); + } + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError( + peg$maxFailExpected, + peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, + peg$maxFailPos < input.length + ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) + : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) + ); + } +} + +module.exports = { + StartRules: ["grammar"], + SyntaxError: peg$SyntaxError, + parse: peg$parse +}; diff --git a/packages/molecule/src/grammar/grammar.peggy b/packages/molecule/src/grammar/grammar.peggy new file mode 100644 index 000000000..52c4a446f --- /dev/null +++ b/packages/molecule/src/grammar/grammar.peggy @@ -0,0 +1,203 @@ +grammar + = brk* + version:syntax_version_stmt? + brk* + imports:import_stmt* + brk* + declares:decl_stmt+ { + return { + syntaxVersion: version, + imports, + declares, + }; + } + +decl_stmt + = brk* + declare:( + option_decl + / union_decl + / array_decl + / struct_decl + / vector_decl + / table_decl + ) + brk* { return declare; } + +table_decl + = "table" brk+ name:identifier brk* "{" brk* fields:field_decl* "}" { + return { + type: "table", + name, + fields, + }; + } + +vector_decl + = "vector" + brk+ + name:identifier + brk* + "<" + brk* + item:identifier + brk* + ">" + brk* + stmt_end { + return { + type: "vector", + name, + item, + }; + } + +struct_decl + = "struct" brk+ name:identifier brk* "{" brk* fields:field_decl* "}" { + return { + type: "struct", + name, + fields, + }; + } + +field_decl + = name:identifier brk* ":" brk* type:identifier brk* field_end brk* { + return { name, type }; + } + +array_decl + = "array" + brk+ + name:identifier + brk* + "[" + brk* + item:identifier + brk* + ";" + brk* + item_count:number_gt_zero + brk* + "]" + brk* + stmt_end { + return { + type: "array", + name, + item, + item_count, + }; + } + +union_decl + = "union" + brk+ + name:identifier + brk* + "{" + brk* + declares:(item_decl / custom_union_item_decl)+ + "}" { + return { + type: "union", + name, + items: declares, + }; + } + +item_decl = name:identifier brk* item_end brk* { return name; } + +custom_union_item_decl + = name:identifier brk* ":" brk* id:number_gte_zero brk* field_end brk* { + return [name, id]; + } + +number_gte_zero + = zero + / number_gt_zero + +number_gt_zero = head:nonzero tail:digit* { return head + tail.join(""); } + +option_decl + = "option" + brk+ + name:identifier + brk* + "(" + brk* + item:identifier + brk* + ")" + stmt_end { + return { + type: "option", + name, + item, + }; + } + +syntax_version_stmt + = "syntax" brk* "=" brk* version:syntax_version brk* stmt_end { + return version.join(""); + } + +syntax_version = digit+ + +item_end = "," + +field_end = "," + +import_stmt = "import" brk* path:path brk* stmt_end brk* { return path; } + +path + = head:path_super* middle:(identifier "/")* tail:identifier { + return head.join("") + middle.flatMap((x) => x).join("") + tail; + } + +path_super = "../" + +identifier + = head:letter tail:(letter / digit / "_")* { return head + tail.join(""); } + +letter + = uppercase + / lowercase + +uppercase = [A-Z] + +lowercase = [a-z] + +stmt_end = ";" + +brk + = whitespace + / comment + +comment + = block_comment + / line_comment + +block_comment = "/*" [^*/]* "*/" + +line_comment = ("//" / "#") ([^\n] / [^\r\n])* + +whitespace + = ifs + / newline + +ifs + = " " + / "\t" + +newline + = "\n" + / "\r\n" + +digit + = zero + / nonzero + +nonzero = [1-9] + +zero = "0" diff --git a/packages/molecule/src/grammar/mol.d.ts b/packages/molecule/src/grammar/mol.d.ts deleted file mode 100644 index 62c179283..000000000 --- a/packages/molecule/src/grammar/mol.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { CompiledRules } from "nearley"; - -declare const grammer: CompiledRules; - -export default grammer; diff --git a/packages/molecule/src/grammar/mol.js b/packages/molecule/src/grammar/mol.js deleted file mode 100644 index a8799817c..000000000 --- a/packages/molecule/src/grammar/mol.js +++ /dev/null @@ -1,541 +0,0 @@ -/* eslint-disable */ -// Generated automatically by nearley, version 2.20.1 -// http://github.com/Hardmath123/nearley -(function () { - function id(x) { - return x[0]; - } - - const moo = require("moo"); - - const lexer = moo.compile({ - ws: /[ \t]+/, - nl: { match: "\n", lineBreaks: true }, - lparan: "(", - rparan: ")", - comma: ",", - lbracket: "[", - rbracket: "]", - lbrace: "{", - rbrace: "}", - labracket: "<", - rabracket: ">", - assignment: "=", - colon: ":", - semicolon: ";", - line_comment: { - match: /\/\/[^\n]*/, - value: (s) => s.substring(1), - }, - block_comment: { - match: /\/\*[\w\d\s\n\t\r]*\*\//, - value: (s) => s.substring(1), - }, - string_literal: { - match: /"(?:[^\n\\"]|\\["\\ntbfr])*"/, - value: (s) => JSON.parse(s), - }, - number_literal: { - match: /[0-9]+/, - value: (s) => Number(s), - }, - identifier: { - match: /[a-z_A-Z][a-z_A-Z_0-9]*/, - type: moo.keywords({ - array: "array", - vector: "vector", - struct: "struct", - tablle: "table", - }), - }, - }); - - function tokenStart(token) { - return { - line: token.line, - col: token.col - 1, - }; - } - - function tokenEnd(token) { - const lastNewLine = token.text.lastIndexOf("\n"); - if (lastNewLine !== -1) { - throw new Error("Unsupported case: token with line breaks"); - } - return { - line: token.line, - col: token.col + token.text.length - 1, - }; - } - - function convertToken(token) { - return { - type: token.type, - value: token.value, - start: tokenStart(token), - end: tokenEnd(token), - }; - } - - function convertTokenId(data) { - return convertToken(data[0]); - } - - var grammar = { - Lexer: lexer, - ParserRules: [ - { name: "input", symbols: ["top_level_statements"], postprocess: id }, - { - name: "top_level_statements", - symbols: ["_", "top_level_statement"], - postprocess: (d) => [d[1]], - }, - { - name: "top_level_statements", - symbols: [ - "_", - "top_level_statement", - "_", - { literal: "\n" }, - "_", - "top_level_statements", - ], - postprocess: (d) => [d[1], ...d[5]], - }, - { - name: "top_level_statements", - symbols: ["_", { literal: "\n" }, "top_level_statements"], - postprocess: (d) => d[2], - }, - { name: "top_level_statements", symbols: ["_"], postprocess: (d) => [] }, - { - name: "top_level_statement", - symbols: ["array_definition"], - postprocess: id, - }, - { - name: "top_level_statement", - symbols: ["vector_definition"], - postprocess: id, - }, - { - name: "top_level_statement", - symbols: ["option_definition"], - postprocess: id, - }, - { - name: "top_level_statement", - symbols: ["union_definition"], - postprocess: id, - }, - { - name: "top_level_statement", - symbols: ["struct_definition"], - postprocess: id, - }, - { - name: "top_level_statement", - symbols: ["table_definition"], - postprocess: id, - }, - { - name: "top_level_statement", - symbols: ["line_comment"], - postprocess: () => null, - }, - { - name: "top_level_statement", - symbols: ["block_comment"], - postprocess: () => null, - }, - { - name: "array_definition", - symbols: [ - { literal: "array" }, - "__", - "identifier", - "_", - "lbracket", - "_", - "identifier", - "_", - "semicolon", - "_", - "number", - "_", - "rbracket", - "_", - "semicolon", - "_", - "comment_opt", - ], - postprocess: function (data) { - return { - type: "array", - name: data[2].value, - item: data[6].value, - item_count: data[10].value, - }; - }, - }, - { - name: "vector_definition", - symbols: [ - { literal: "vector" }, - "__", - "identifier", - "_", - "labracket", - "_", - "identifier", - "_", - "rabracket", - "_", - "semicolon", - "_", - "comment_opt", - ], - postprocess: function (data) { - return { - type: "vector", - name: data[2].value, - item: data[6].value, - }; - }, - }, - { - name: "option_definition", - symbols: [ - { literal: "option" }, - "__", - "identifier", - "_", - "lparan", - "_", - "identifier", - "_", - "rparan", - "_", - "semicolon", - "_", - "comment_opt", - ], - postprocess: function (data) { - return { - type: "option", - name: data[2].value, - item: data[6].value, - }; - }, - }, - { - name: "union_item_decl", - symbols: ["identifier", "_", { literal: ":" }, "_", "number"], - postprocess: function (data) { - return [data[0].value, Number(data[4].value)]; - }, - }, - { - name: "union_item_decl", - symbols: ["identifier"], - postprocess: function (data) { - return data[0].value; - }, - }, - { - name: "union_definition$ebnf$1$subexpression$1", - symbols: [ - "multi_line_ws_char", - "_", - "union_item_decl", - "_", - "comma", - "_", - "comment_opt", - "_", - "multi_line_ws_char", - ], - }, - { - name: "union_definition$ebnf$1", - symbols: ["union_definition$ebnf$1$subexpression$1"], - }, - { - name: "union_definition$ebnf$1$subexpression$2", - symbols: [ - "multi_line_ws_char", - "_", - "union_item_decl", - "_", - "comma", - "_", - "comment_opt", - "_", - "multi_line_ws_char", - ], - }, - { - name: "union_definition$ebnf$1", - symbols: [ - "union_definition$ebnf$1", - "union_definition$ebnf$1$subexpression$2", - ], - postprocess: function arrpush(d) { - return d[0].concat([d[1]]); - }, - }, - { - name: "union_definition", - symbols: [ - { literal: "union" }, - "__", - "identifier", - "_", - "lbrace", - "_", - "union_definition$ebnf$1", - "_", - "rbrace", - ], - postprocess: function (data) { - return { - type: "union", - name: data[2].value, - items: data[6].map((d) => d[2]), - }; - }, - }, - { - name: "struct_definition", - symbols: [ - { literal: "struct" }, - "__", - "identifier", - "_", - "block_definition", - ], - postprocess: function (data) { - return { - type: "struct", - name: data[2].value, - fields: data[4][2].map((d) => ({ - name: d[2].value, - type: d[6].value, - })), - }; - }, - }, - { - name: "table_definition", - symbols: [ - { literal: "table" }, - "__", - "identifier", - "_", - "block_definition", - ], - postprocess: function (data) { - return { - type: "table", - name: data[2].value, - fields: data[4][2].map((d) => ({ - name: d[2].value, - type: d[6].value, - })), - }; - }, - }, - { - name: "block_definition$ebnf$1$subexpression$1", - symbols: [ - "multi_line_ws_char", - "_", - "identifier", - "_", - "colon", - "_", - "identifier", - "_", - "comma", - "_", - "comment_opt", - "_", - "multi_line_ws_char", - ], - }, - { - name: "block_definition$ebnf$1", - symbols: ["block_definition$ebnf$1$subexpression$1"], - }, - { - name: "block_definition$ebnf$1$subexpression$2", - symbols: [ - "multi_line_ws_char", - "_", - "identifier", - "_", - "colon", - "_", - "identifier", - "_", - "comma", - "_", - "comment_opt", - "_", - "multi_line_ws_char", - ], - }, - { - name: "block_definition$ebnf$1", - symbols: [ - "block_definition$ebnf$1", - "block_definition$ebnf$1$subexpression$2", - ], - postprocess: function arrpush(d) { - return d[0].concat([d[1]]); - }, - }, - { - name: "block_definition", - symbols: ["lbrace", "_", "block_definition$ebnf$1", "_", "rbrace"], - }, - { name: "comment_opt", symbols: ["line_comment"] }, - { name: "comment_opt", symbols: ["block_comment"] }, - { name: "comment_opt", symbols: [], postprocess: () => [] }, - { - name: "line_comment", - symbols: [ - lexer.has("line_comment") ? { type: "line_comment" } : line_comment, - ], - postprocess: id, - }, - { - name: "block_comment", - symbols: [ - lexer.has("block_comment") - ? { type: "block_comment" } - : block_comment, - ], - postprocess: id, - }, - { - name: "string_literal", - symbols: [ - lexer.has("string_literal") - ? { type: "string_literal" } - : string_literal, - ], - postprocess: convertTokenId, - }, - { - name: "number", - symbols: [ - lexer.has("number_literal") - ? { type: "number_literal" } - : number_literal, - ], - postprocess: convertTokenId, - }, - { - name: "lbracket", - symbols: [lexer.has("lbracket") ? { type: "lbracket" } : lbracket], - postprocess: convertTokenId, - }, - { - name: "rbracket", - symbols: [lexer.has("rbracket") ? { type: "rbracket" } : rbracket], - postprocess: convertTokenId, - }, - { - name: "labracket", - symbols: [lexer.has("labracket") ? { type: "labracket" } : labracket], - postprocess: convertTokenId, - }, - { - name: "rabracket", - symbols: [lexer.has("rabracket") ? { type: "rabracket" } : rabracket], - postprocess: convertTokenId, - }, - { - name: "lparan", - symbols: [lexer.has("lparan") ? { type: "lparan" } : lparan], - postprocess: convertTokenId, - }, - { - name: "rparan", - symbols: [lexer.has("rparan") ? { type: "rparan" } : rparan], - postprocess: convertTokenId, - }, - { - name: "lbrace", - symbols: [lexer.has("lbrace") ? { type: "lbrace" } : lbrace], - postprocess: convertTokenId, - }, - { - name: "rbrace", - symbols: [lexer.has("rbrace") ? { type: "rbrace" } : rbrace], - postprocess: convertTokenId, - }, - { - name: "comma", - symbols: [lexer.has("comma") ? { type: "comma" } : comma], - postprocess: convertTokenId, - }, - { - name: "colon", - symbols: [lexer.has("colon") ? { type: "colon" } : colon], - postprocess: convertTokenId, - }, - { - name: "semicolon", - symbols: [lexer.has("semicolon") ? { type: "semicolon" } : semicolon], - postprocess: convertTokenId, - }, - { - name: "identifier", - symbols: [ - lexer.has("identifier") ? { type: "identifier" } : identifier, - ], - postprocess: convertTokenId, - }, - { name: "_ml$ebnf$1", symbols: [] }, - { - name: "_ml$ebnf$1", - symbols: ["_ml$ebnf$1", "multi_line_ws_char"], - postprocess: function arrpush(d) { - return d[0].concat([d[1]]); - }, - }, - { name: "_ml", symbols: ["_ml$ebnf$1"] }, - { - name: "multi_line_ws_char", - symbols: [lexer.has("ws") ? { type: "ws" } : ws], - }, - { name: "multi_line_ws_char", symbols: [{ literal: "\n" }] }, - { name: "__$ebnf$1", symbols: [lexer.has("ws") ? { type: "ws" } : ws] }, - { - name: "__$ebnf$1", - symbols: ["__$ebnf$1", lexer.has("ws") ? { type: "ws" } : ws], - postprocess: function arrpush(d) { - return d[0].concat([d[1]]); - }, - }, - { name: "__", symbols: ["__$ebnf$1"] }, - { name: "_$ebnf$1", symbols: [] }, - { - name: "_$ebnf$1", - symbols: ["_$ebnf$1", lexer.has("ws") ? { type: "ws" } : ws], - postprocess: function arrpush(d) { - return d[0].concat([d[1]]); - }, - }, - { name: "_", symbols: ["_$ebnf$1"] }, - ], - ParserStart: "input", - }; - if (typeof module !== "undefined" && typeof module.exports !== "undefined") { - module.exports = grammar; - } else { - window.grammar = grammar; - } -})(); diff --git a/packages/molecule/src/grammar/mol.ne b/packages/molecule/src/grammar/mol.ne deleted file mode 100644 index 91751defc..000000000 --- a/packages/molecule/src/grammar/mol.ne +++ /dev/null @@ -1,234 +0,0 @@ - -# http://www.asciitable.com/ -@{% -const moo = require("moo"); - -const lexer = moo.compile({ - ws: /[ \t]+/, - nl: { match: "\n", lineBreaks: true }, - lparan: "(", - rparan: ")", - comma: ",", - lbracket: "[", - rbracket: "]", - lbrace: "{", - rbrace: "}", - labracket: "<", - rabracket: ">", - assignment: "=", - colon: ":", - semicolon: ";", - line_comment: { - match: /\/\/[^\n]*/, - value: s => s.substring(1) - }, - block_comment: { - match: /\/\*[\w\d\s\n\t\r]*\*\//, - value: s => (s.substring(1)) - }, - string_literal: { - match: /"(?:[^\n\\"]|\\["\\ntbfr])*"/, - value: s => JSON.parse(s) - }, - number_literal: { - match: /[0-9]+/, - value: s => Number(s) - }, - identifier: { - match: /[a-z_A-Z][a-z_A-Z_0-9]*/, - type: moo.keywords({ - array: "array", - vector: "vector", - struct: "struct", - tablle: "table", - }) - } -}); - - -function tokenStart(token) { - return { - line: token.line, - col: token.col - 1 - }; -} - -function tokenEnd(token) { - const lastNewLine = token.text.lastIndexOf("\n"); - if (lastNewLine !== -1) { - throw new Error("Unsupported case: token with line breaks"); - } - return { - line: token.line, - col: token.col + token.text.length - 1 - }; -} - -function convertToken(token) { - return { - type: token.type, - value: token.value, - start: tokenStart(token), - end: tokenEnd(token) - }; -} - -function convertTokenId(data) { - return convertToken(data[0]); -} - -%} - -@lexer lexer - -input -> top_level_statements {% id %} - -top_level_statements - -> _ top_level_statement - {% - d => [d[1]] - %} - | _ top_level_statement _ "\n" _ top_level_statements - {% - d => [ - d[1], - ...d[5] - ] - %} - # below 2 sub-rules handle blank lines - | _ "\n" top_level_statements - {% - d => d[2] - %} - | _ - {% - d => [] - %} - -top_level_statement - -> array_definition {% id %} - | vector_definition {% id %} - | option_definition {% id %} - | union_definition {% id %} - | struct_definition {% id %} - | table_definition {% id %} - | line_comment {% () => null %} - | block_comment {% () => null %} - -array_definition - -> "array" __ identifier _ lbracket _ identifier _ semicolon _ number _ rbracket _ semicolon _ comment_opt - {% - function(data) { - return { - type: "array", - name: data[2].value, - item: data[6].value, - item_count: data[10].value - }; - } - %} - -vector_definition - -> "vector" __ identifier _ labracket _ identifier _ rabracket _ semicolon _ comment_opt - {% - function(data) { - return { - type: "vector", - name: data[2].value, - item: data[6].value, - }; - } - %} - -option_definition - -> "option" __ identifier _ lparan _ identifier _ rparan _ semicolon _ comment_opt - {% - function(data) { - return { - type: "option", - name: data[2].value, - item: data[6].value, - }; - } - %} - -union_item_decl - -> identifier _ ":" _ number - {% - function (data) { - return [data[0].value, Number(data[4].value)] - } - %} - | identifier - {% - function (data) { - return data[0].value - } - %} - -union_definition - -> "union" __ identifier _ lbrace _ (multi_line_ws_char _ union_item_decl _ comma _ comment_opt _ multi_line_ws_char):+ _ rbrace - {% - function(data) { - return { - type: "union", - name: data[2].value, - items: data[6].map(d => d[2]), - }; - } - %} - -struct_definition - -> "struct" __ identifier _ block_definition - {% - function(data) { - return { - type: "struct", - name: data[2].value, - fields: data[4][2].map(d => ({name: d[2].value, type: d[6].value})), - }; - } - %} - -table_definition - -> "table" __ identifier _ block_definition - {% - function(data) { - return { - type: "table", - name: data[2].value, - fields: data[4][2].map(d => ({name: d[2].value, type: d[6].value})), - }; - } - %} - -block_definition - -> lbrace _ (multi_line_ws_char _ identifier _ colon _ identifier _ comma _ comment_opt _ multi_line_ws_char):+ _ rbrace - -comment_opt -> line_comment | block_comment | null {% () => ([]) %} -line_comment -> %line_comment {% id %} -block_comment -> %block_comment {% id %} -string_literal -> %string_literal {% convertTokenId %} -number -> %number_literal {% convertTokenId %} -lbracket -> %lbracket {% convertTokenId %} -rbracket -> %rbracket {% convertTokenId %} -labracket -> %labracket {% convertTokenId %} -rabracket -> %rabracket {% convertTokenId %} -lparan -> %lparan {% convertTokenId %} -rparan -> %rparan {% convertTokenId %} -lbrace -> %lbrace {% convertTokenId %} -rbrace -> %rbrace {% convertTokenId %} -comma -> %comma {% convertTokenId %} -colon -> %colon {% convertTokenId %} -semicolon -> %semicolon {% convertTokenId %} -identifier -> %identifier {% convertTokenId %} - -_ml -> multi_line_ws_char:* - -multi_line_ws_char - -> %ws - | "\n" - -__ -> %ws:+ - -_ -> %ws:* diff --git a/packages/molecule/src/nearley.ts b/packages/molecule/src/nearley.ts index b9704eba7..ea779f003 100644 --- a/packages/molecule/src/nearley.ts +++ b/packages/molecule/src/nearley.ts @@ -1,4 +1,3 @@ -import { Parser as NearleyParser, Grammar as NearleyGrammar } from "nearley"; import { createCodecMap } from "./codec"; import { Struct, @@ -14,9 +13,7 @@ import { } from "./type"; import { nonNull, toMolTypeMap } from "./utils"; import { Uint32 } from "@ckb-lumos/codec/lib/number"; - -// eslint-disable-next-line @typescript-eslint/no-var-requires -const grammar = require("./grammar/mol.js"); +import grammar from "./grammar/grammar"; export const createParser = (): Parser => { return { @@ -27,11 +24,7 @@ export const createParser = (): Parser => { skipDependenciesCheck: false, } ) => { - const parser = new NearleyParser(NearleyGrammar.fromCompiled(grammar)); - parser.feed(data); - const results = parser.results[0].filter( - (result: MolType | null) => !!result - ) as MolType[]; + const { declares: results } = grammar.parse(data); validateParserResults(results, option); return createCodecMap(results, option.refs); }, diff --git a/packages/molecule/tests/codegen/simple.test.ts b/packages/molecule/tests/codegen-simple.test.ts similarity index 82% rename from packages/molecule/tests/codegen/simple.test.ts rename to packages/molecule/tests/codegen-simple.test.ts index 06f7f477a..e934dc1b8 100644 --- a/packages/molecule/tests/codegen/simple.test.ts +++ b/packages/molecule/tests/codegen-simple.test.ts @@ -14,15 +14,15 @@ import test from "ava"; import path from "node:path"; import * as fs from "node:fs"; import { load } from "js-yaml"; -import * as generated from "./generated"; +import * as generated from "./codegen/generated"; import { AnyCodec, bytes } from "@ckb-lumos/codec"; -test("Test codegen examples", () => { +test("Test with simple.yaml molecule vector", (t) => { const yamlItems = load( - fs.readFileSync(path.join(__dirname, "tests/simple.yaml")).toString() + fs.readFileSync(path.join(__dirname, "codegen/simple.yaml")).toString() ) as any[]; - const x = yamlItems.map((testCase) => { + const cases = yamlItems.map((testCase) => { let data: object | string[] | undefined = undefined; if (Array.isArray(testCase.data)) { data = testCase.data.map((dataItem: any) => @@ -61,9 +61,14 @@ test("Test codegen examples", () => { }; }); - x.forEach(({ name, expected }) => { + cases.forEach(({ name, expected }) => { // eslint-disable-next-line import/namespace - const c = generated[name] as AnyCodec; - console.log(bytes.equal(c.pack(c.unpack(expected)), expected)); + const generatedCodec = generated[name] as AnyCodec; + t.true( + bytes.equal( + generatedCodec.pack(generatedCodec.unpack(expected)), + expected + ) + ); }); }); diff --git a/packages/molecule/tests/codegen.test.ts b/packages/molecule/tests/codegen.test.ts index 787a208bc..9a1de3dd4 100644 --- a/packages/molecule/tests/codegen.test.ts +++ b/packages/molecule/tests/codegen.test.ts @@ -3,7 +3,7 @@ import { codegen as originalCodegen, codegenProject, Options, - resolveAndEraseImports, + resolveImports, } from "../src/codegen"; const codegen = (schema: string, options?: Options) => { @@ -175,7 +175,7 @@ union Something { }); test("should erase if import statement exists", (t) => { - const { code, importSchemas } = resolveAndEraseImports(` + const inputCode = ` import a; import b; // import c; @@ -183,19 +183,11 @@ import a; struct X { value: byte, } -`); +`; + const { code, importSchemas } = resolveImports(inputCode); t.deepEqual(importSchemas, ["a", "b"]); - t.is( - code, - ` -// import c; - -struct X { - value: byte, -} -` - ); + t.is(code, inputCode); }); test("codegenProject", (t) => { diff --git a/packages/molecule/tests/codegen/customization.ts b/packages/molecule/tests/codegen/customization.ts deleted file mode 100644 index 31c30666c..000000000 --- a/packages/molecule/tests/codegen/customization.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { molecule } from "@ckb-lumos/codec"; - -// the compiler does not support empty block declaration -// so the Table0 is manually declared -export const Table0 = molecule.table({}, []); diff --git a/packages/molecule/tests/codegen/generated.ts b/packages/molecule/tests/codegen/generated.ts index 45a2d354a..5a0a3a332 100644 --- a/packages/molecule/tests/codegen/generated.ts +++ b/packages/molecule/tests/codegen/generated.ts @@ -1,11 +1,18 @@ // This file is generated by @ckb-lumos/molecule, please do not modify it manually. /* eslint-disable */ -import { bytes, createBytesCodec, createFixedBytesCodec, molecule } from "@ckb-lumos/codec"; -import { Table0 } from './customization' +import { + bytes, + createBytesCodec, + createFixedBytesCodec, + molecule, +} from "@ckb-lumos/codec"; const { array, vector, union, option, struct, table, byteVecOf } = molecule; -const fallbackBytesCodec = byteVecOf({ pack: bytes.bytify, unpack: bytes.hexify }); +const fallbackBytesCodec = byteVecOf({ + pack: bytes.bytify, + unpack: bytes.hexify, +}); function createFallbackFixedBytesCodec(byteLength: number) { return createFixedBytesCodec({ @@ -71,82 +78,118 @@ export const Byte7x3 = array(Byte7, 3); export const Byte9x3 = array(Byte9, 3); -export const StructA = struct({ - f1: byte, - f2: byte, - f3: Byte2, - f4: Byte2 -}, ['f1', 'f2', 'f3', 'f4']); - -export const StructB = struct({ - f1: byte, - f2: byte, - f3: Byte2, - f4: Byte3 -}, ['f1', 'f2', 'f3', 'f4']); - -export const StructC = struct({ - f1: byte, - f2: byte, - f3: Byte2, - f4: Byte4 -}, ['f1', 'f2', 'f3', 'f4']); - -export const StructD = struct({ - f1: byte, - f2: byte, - f3: Byte2, - f4: Byte5 -}, ['f1', 'f2', 'f3', 'f4']); - -export const StructE = struct({ - f1: byte, - f2: Byte2, - f3: byte, - f4: Byte2 -}, ['f1', 'f2', 'f3', 'f4']); - -export const StructF = struct({ - f1: byte, - f2: Byte3, - f3: byte -}, ['f1', 'f2', 'f3']); - -export const StructG = struct({ - f1: Byte3, - f2: byte, - f3: Byte2, - f4: Word2 -}, ['f1', 'f2', 'f3', 'f4']); - -export const StructH = struct({ - f1: Byte3, - f2: byte, - f3: Byte2, - f4: Byte4 -}, ['f1', 'f2', 'f3', 'f4']); - -export const StructI = struct({ - f1: Byte3, - f2: byte -}, ['f1', 'f2']); - -export const StructJ = struct({ - f1: Byte6, - f2: byte -}, ['f1', 'f2']); +export const StructA = struct( + { + f1: byte, + f2: byte, + f3: Byte2, + f4: Byte2, + }, + ["f1", "f2", "f3", "f4"] +); + +export const StructB = struct( + { + f1: byte, + f2: byte, + f3: Byte2, + f4: Byte3, + }, + ["f1", "f2", "f3", "f4"] +); + +export const StructC = struct( + { + f1: byte, + f2: byte, + f3: Byte2, + f4: Byte4, + }, + ["f1", "f2", "f3", "f4"] +); + +export const StructD = struct( + { + f1: byte, + f2: byte, + f3: Byte2, + f4: Byte5, + }, + ["f1", "f2", "f3", "f4"] +); + +export const StructE = struct( + { + f1: byte, + f2: Byte2, + f3: byte, + f4: Byte2, + }, + ["f1", "f2", "f3", "f4"] +); + +export const StructF = struct( + { + f1: byte, + f2: Byte3, + f3: byte, + }, + ["f1", "f2", "f3"] +); + +export const StructG = struct( + { + f1: Byte3, + f2: byte, + f3: Byte2, + f4: Word2, + }, + ["f1", "f2", "f3", "f4"] +); + +export const StructH = struct( + { + f1: Byte3, + f2: byte, + f3: Byte2, + f4: Byte4, + }, + ["f1", "f2", "f3", "f4"] +); + +export const StructI = struct( + { + f1: Byte3, + f2: byte, + }, + ["f1", "f2"] +); + +export const StructJ = struct( + { + f1: Byte6, + f2: byte, + }, + ["f1", "f2"] +); export const StructIx3 = array(StructI, 3); -export const StructO = struct({ - f1: StructIx3, - f2: byte -}, ['f1', 'f2']); - -export const StructP = struct({ - f1: StructJ, - f2: byte -}, ['f1', 'f2']); +export const StructO = struct( + { + f1: StructIx3, + f2: byte, + }, + ["f1", "f2"] +); + +export const StructP = struct( + { + f1: StructJ, + f2: byte, + }, + ["f1", "f2"] +); export const Bytes = fallbackBytesCodec; @@ -166,44 +209,64 @@ export const BytesVec = vector(Bytes); export const WordsVec = vector(Words); -export const Table1 = table({ - f1: byte -}, ['f1']); - -export const Table2 = table({ - f1: byte, - f2: Word2 -}, ['f1', 'f2']); - -export const Table3 = table({ - f1: byte, - f2: Word2, - f3: StructA -}, ['f1', 'f2', 'f3']); - -export const Table4 = table({ - f1: byte, - f2: Word2, - f3: StructA, - f4: Bytes -}, ['f1', 'f2', 'f3', 'f4']); - -export const Table5 = table({ - f1: byte, - f2: Word2, - f3: StructA, - f4: Bytes, - f5: BytesVec -}, ['f1', 'f2', 'f3', 'f4', 'f5']); - -export const Table6 = table({ - f1: byte, - f2: Word2, - f3: StructA, - f4: Bytes, - f5: BytesVec, - f6: Table5 -}, ['f1', 'f2', 'f3', 'f4', 'f5', 'f6']); +export const Table0 = table({}, []); + +export const Table1 = table( + { + f1: byte, + }, + ["f1"] +); + +export const Table2 = table( + { + f1: byte, + f2: Word2, + }, + ["f1", "f2"] +); + +export const Table3 = table( + { + f1: byte, + f2: Word2, + f3: StructA, + }, + ["f1", "f2", "f3"] +); + +export const Table4 = table( + { + f1: byte, + f2: Word2, + f3: StructA, + f4: Bytes, + }, + ["f1", "f2", "f3", "f4"] +); + +export const Table5 = table( + { + f1: byte, + f2: Word2, + f3: StructA, + f4: Bytes, + f5: BytesVec, + }, + ["f1", "f2", "f3", "f4", "f5"] +); + +export const Table6 = table( + { + f1: byte, + f2: Word2, + f3: StructA, + f4: Bytes, + f5: BytesVec, + f6: Table5, + }, + ["f1", "f2", "f3", "f4", "f5", "f6"] +); export const ByteOpt = option(byte); @@ -235,102 +298,185 @@ export const WordsOptVec = vector(WordsOpt); export const BytesOptVec = vector(BytesOpt); -export const UnionA = union({ - byte, - Word, - StructA, - Bytes, - Words, - Table0, - Table6, - Table6Opt -}, ['byte', 'Word', 'StructA', 'Bytes', 'Words', 'Table0', 'Table6', 'Table6Opt']); - -export const TableA = table({ - f1: Word2, - f2: StructA, - f3: Bytes, - f4: BytesVec, - f5: Table1, - f6: BytesOpt, - f7: UnionA, - f8: byte -}, ['f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8']); - -export const AllInOne = table({ - f0: byte, - f1: Byte2, - f2: Byte3, - f3: Byte4, - f4: Byte5, - f5: Byte6, - f6: Byte7, - f7: Byte8, - f8: Byte9, - f9: Byte10, - f10: Byte11, - f11: Byte12, - f12: Byte13, - f13: Byte14, - f14: Byte15, - f15: Byte16, - f16: Word, - f17: Word2, - f18: Word3, - f19: Word4, - f20: Word5, - f21: Word6, - f22: Word7, - f23: Word8, - f24: Byte3x3, - f25: Byte5x3, - f26: Byte7x3, - f27: Byte9x3, - f28: StructA, - f29: StructB, - f30: StructC, - f31: StructD, - f32: StructE, - f33: StructF, - f34: StructG, - f35: StructH, - f36: StructI, - f37: StructJ, - f38: StructIx3, - f39: StructO, - f40: StructP, - f41: Bytes, - f42: Words, - f43: Byte3Vec, - f44: Byte7Vec, - f45: StructIVec, - f46: StructJVec, - f47: StructPVec, - f48: BytesVec, - f49: WordsVec, - f50: Table0, - f51: Table1, - f52: Table2, - f53: Table3, - f54: Table4, - f55: Table5, - f56: Table6, - f57: ByteOpt, - f58: WordOpt, - f59: StructAOpt, - f60: StructPOpt, - f61: BytesOpt, - f62: WordsOpt, - f63: BytesVecOpt, - f64: WordsVecOpt, - f65: Table0Opt, - f66: Table6Opt, - f67: Table6OptOpt, - f68: ByteOptVec, - f69: WordOptVec, - f70: WordsOptVec, - f71: BytesOptVec, - f72: UnionA, - f73: TableA -}, ['f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f20', 'f21', 'f22', 'f23', 'f24', 'f25', 'f26', 'f27', 'f28', 'f29', 'f30', 'f31', 'f32', 'f33', 'f34', 'f35', 'f36', 'f37', 'f38', 'f39', 'f40', 'f41', 'f42', 'f43', 'f44', 'f45', 'f46', 'f47', 'f48', 'f49', 'f50', 'f51', 'f52', 'f53', 'f54', 'f55', 'f56', 'f57', 'f58', 'f59', 'f60', 'f61', 'f62', 'f63', 'f64', 'f65', 'f66', 'f67', 'f68', 'f69', 'f70', 'f71', 'f72', 'f73']); - +export const UnionA = union( + { + byte, + Word, + StructA, + Bytes, + Words, + Table0, + Table6, + Table6Opt, + }, + ["byte", "Word", "StructA", "Bytes", "Words", "Table0", "Table6", "Table6Opt"] +); + +export const TableA = table( + { + f1: Word2, + f2: StructA, + f3: Bytes, + f4: BytesVec, + f5: Table1, + f6: BytesOpt, + f7: UnionA, + f8: byte, + }, + ["f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8"] +); + +export const AllInOne = table( + { + f0: byte, + f1: Byte2, + f2: Byte3, + f3: Byte4, + f4: Byte5, + f5: Byte6, + f6: Byte7, + f7: Byte8, + f8: Byte9, + f9: Byte10, + f10: Byte11, + f11: Byte12, + f12: Byte13, + f13: Byte14, + f14: Byte15, + f15: Byte16, + f16: Word, + f17: Word2, + f18: Word3, + f19: Word4, + f20: Word5, + f21: Word6, + f22: Word7, + f23: Word8, + f24: Byte3x3, + f25: Byte5x3, + f26: Byte7x3, + f27: Byte9x3, + f28: StructA, + f29: StructB, + f30: StructC, + f31: StructD, + f32: StructE, + f33: StructF, + f34: StructG, + f35: StructH, + f36: StructI, + f37: StructJ, + f38: StructIx3, + f39: StructO, + f40: StructP, + f41: Bytes, + f42: Words, + f43: Byte3Vec, + f44: Byte7Vec, + f45: StructIVec, + f46: StructJVec, + f47: StructPVec, + f48: BytesVec, + f49: WordsVec, + f50: Table0, + f51: Table1, + f52: Table2, + f53: Table3, + f54: Table4, + f55: Table5, + f56: Table6, + f57: ByteOpt, + f58: WordOpt, + f59: StructAOpt, + f60: StructPOpt, + f61: BytesOpt, + f62: WordsOpt, + f63: BytesVecOpt, + f64: WordsVecOpt, + f65: Table0Opt, + f66: Table6Opt, + f67: Table6OptOpt, + f68: ByteOptVec, + f69: WordOptVec, + f70: WordsOptVec, + f71: BytesOptVec, + f72: UnionA, + f73: TableA, + }, + [ + "f0", + "f1", + "f2", + "f3", + "f4", + "f5", + "f6", + "f7", + "f8", + "f9", + "f10", + "f11", + "f12", + "f13", + "f14", + "f15", + "f16", + "f17", + "f18", + "f19", + "f20", + "f21", + "f22", + "f23", + "f24", + "f25", + "f26", + "f27", + "f28", + "f29", + "f30", + "f31", + "f32", + "f33", + "f34", + "f35", + "f36", + "f37", + "f38", + "f39", + "f40", + "f41", + "f42", + "f43", + "f44", + "f45", + "f46", + "f47", + "f48", + "f49", + "f50", + "f51", + "f52", + "f53", + "f54", + "f55", + "f56", + "f57", + "f58", + "f59", + "f60", + "f61", + "f62", + "f63", + "f64", + "f65", + "f66", + "f67", + "f68", + "f69", + "f70", + "f71", + "f72", + "f73", + ] +); diff --git a/packages/molecule/tests/codegen/lumos-molecule-codegen.json b/packages/molecule/tests/codegen/lumos-molecule-codegen.json index 7d7a01b54..7034f889b 100644 --- a/packages/molecule/tests/codegen/lumos-molecule-codegen.json +++ b/packages/molecule/tests/codegen/lumos-molecule-codegen.json @@ -1,4 +1,3 @@ { - "schemaFile": "types.mol", - "prepend": "import { Table0 } from './customization'" + "schemaFile": "types.mol" } diff --git a/packages/molecule/tests/codegen/types.mol b/packages/molecule/tests/codegen/types.mol index 9bd3cb587..f863e325f 100644 --- a/packages/molecule/tests/codegen/types.mol +++ b/packages/molecule/tests/codegen/types.mol @@ -107,6 +107,9 @@ vector StructPVec ; vector BytesVec ; vector WordsVec ; +table Table0 { +} + table Table1 { f1: byte, } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7214c40ed..1b567c158 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -89,6 +89,9 @@ importers: prettier: specifier: ^2.8.8 version: 2.8.8 + prettier-plugin-pegjs: + specifier: ^2.0.2 + version: 2.0.2 shx: specifier: ^0.3.4 version: 0.3.4 @@ -659,30 +662,12 @@ importers: packages/molecule: dependencies: - '@ckb-lumos/bi': - specifier: 0.24.0-next.1 - version: link:../bi '@ckb-lumos/codec': specifier: 0.24.0-next.1 version: link:../codec - '@types/moo': - specifier: ^0.5.9 - version: 0.5.9 - '@types/nearley': - specifier: ^2.11.2 - version: 2.11.5 glob: specifier: ^10.3.10 version: 10.3.12 - minimist: - specifier: ^1.2.8 - version: 1.2.8 - moo: - specifier: ^0.5.1 - version: 0.5.2 - nearley: - specifier: ^2.20.1 - version: 2.20.1 relative: specifier: ^3.0.2 version: 3.0.2 @@ -699,6 +684,9 @@ importers: jsbi: specifier: ^4.1.0 version: 4.3.0 + peggy: + specifier: ^4.0.3 + version: 4.0.3 packages/rpc: dependencies: @@ -4402,6 +4390,13 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + /@peggyjs/from-mem@1.3.0: + resolution: {integrity: sha512-kzGoIRJjkg3KuGI4bopz9UvF3KguzfxalHRDEIdqEZUe45xezsQ6cx30e0RKuxPUexojQRBfu89Okn7f4/QXsw==} + engines: {node: '>=18'} + dependencies: + semver: 7.6.0 + dev: true + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -5028,17 +5023,9 @@ packages: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true - /@types/moo@0.5.9: - resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} - dev: false - /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - /@types/nearley@2.11.5: - resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} - dev: false - /@types/nock@11.1.0: resolution: {integrity: sha512-jI/ewavBQ7X5178262JQR0ewicPAcJhXS/iFaNJl0VHLfyosZ/kwSrsa6VNQNSO8i9d8SqdRgOtZSOKJ/+iNMw==} deprecated: This is a stub types definition. nock provides its own type definitions, so you do not need this installed. @@ -6905,6 +6892,11 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + /commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + dev: true + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -8128,10 +8120,6 @@ packages: dependencies: path-type: 4.0.0 - /discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dev: false - /dns-packet@5.6.1: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} @@ -12694,10 +12682,6 @@ packages: engines: {node: '>= 8.0.0'} dev: true - /moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: false - /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -12739,16 +12723,6 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /nearley@2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true - dependencies: - commander: 2.20.3 - moo: 0.5.2 - railroad-diagrams: 1.0.0 - randexp: 0.4.6 - dev: false - /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -13362,6 +13336,16 @@ packages: sha.js: 2.4.11 dev: true + /peggy@4.0.3: + resolution: {integrity: sha512-v7/Pt6kGYsfXsCrfb52q7/yg5jaAwiVaUMAPLPvy4DJJU6Wwr72t6nDIqIDkGfzd1B4zeVuTnQT0RGeOhe/uSA==} + engines: {node: '>=18'} + hasBin: true + dependencies: + '@peggyjs/from-mem': 1.3.0 + commander: 12.1.0 + source-map-generator: 0.8.0 + dev: true + /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: false @@ -13857,12 +13841,26 @@ packages: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} + /prettier-plugin-pegjs@2.0.2: + resolution: {integrity: sha512-Be4LyuLM6CPxPDCTvcpi7R9zSLHPDijvmzk2bk2Wba8V3m3AThSuwtSaX6c8sug/v5PYSE+aVc8ZvQG7xr3Azg==} + engines: {node: '>= 16.0'} + dependencies: + '@types/node': 20.12.8 + prettier: 3.3.3 + dev: true + /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true dev: true + /prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + dev: true + /pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} dependencies: @@ -14056,18 +14054,6 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - /railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - dev: false - - /randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} - dependencies: - discontinuous-range: 1.0.0 - ret: 0.1.15 - dev: false - /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -14700,11 +14686,6 @@ packages: signal-exit: 3.0.7 dev: true - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: false - /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -15241,6 +15222,11 @@ packages: is-plain-obj: 1.1.0 dev: false + /source-map-generator@0.8.0: + resolution: {integrity: sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==} + engines: {node: '>= 10'} + dev: true + /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} From 3d758b424dd781fcb6833ed6664f55dc848c2bff Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 10:04:59 +0900 Subject: [PATCH 2/8] chore: update example dep --- examples/pnpm-lock.yaml | 1742 ++++++++++++++++++++++++++++++++------- 1 file changed, 1431 insertions(+), 311 deletions(-) diff --git a/examples/pnpm-lock.yaml b/examples/pnpm-lock.yaml index bcb593972..5a66a45de 100644 --- a/examples/pnpm-lock.yaml +++ b/examples/pnpm-lock.yaml @@ -45,13 +45,13 @@ importers: ../packages/base: dependencies: '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit '@types/blake2b': specifier: ^2.1.0 @@ -65,13 +65,13 @@ importers: js-xxhash: specifier: ^1.0.4 version: 1.0.4 - lodash.isequal: - specifier: ^4.5.0 - version: 4.5.0 devDependencies: jsbi: specifier: ^4.1.0 version: 4.3.0 + lodash.isequal: + specifier: ^4.5.0 + version: 4.5.0 ../packages/bi: dependencies: @@ -82,19 +82,19 @@ importers: ../packages/ckb-indexer: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit cross-fetch: specifier: ^3.1.5 @@ -104,10 +104,10 @@ importers: version: 3.3.0 devDependencies: '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto '@ckb-lumos/testkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../testkit '@types/lodash.uniqby': specifier: ^4.7.7 @@ -134,11 +134,11 @@ importers: ../packages/codec: dependencies: '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi devDependencies: '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto escape-string-regexp: specifier: ^4.0.0 @@ -150,28 +150,28 @@ importers: ../packages/common-scripts: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto '@ckb-lumos/helpers': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../helpers '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit bech32: specifier: ^2.0.0 @@ -184,11 +184,14 @@ importers: version: 4.3.6 devDependencies: '@ckb-lumos/debugger': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../debugger '@ckb-lumos/hd': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../hd + '@ethereumjs/util': + specifier: ^9.0.3 + version: 9.0.3 '@unisat/wallet-sdk': specifier: ^1.1.2 version: 1.6.2 @@ -199,16 +202,16 @@ importers: ../packages/config-manager: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@types/deep-freeze-strict': specifier: ^1.1.0 @@ -218,7 +221,7 @@ importers: version: 1.1.1 devDependencies: '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto ../packages/crypto: @@ -233,25 +236,25 @@ importers: ../packages/debugger: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto '@ckb-lumos/helpers': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../helpers '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@types/download': specifier: ^8.0.1 @@ -273,58 +276,58 @@ importers: version: 3.0.0 devDependencies: '@ckb-lumos/common-scripts': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../common-scripts '@ckb-lumos/experiment-tx-assembler': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../experiment-tx-assembler '@ckb-lumos/hd': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../hd ../packages/e2e-test: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/ckb-indexer': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../ckb-indexer '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/common-scripts': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../common-scripts '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto '@ckb-lumos/hd': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../hd '@ckb-lumos/helpers': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../helpers '@ckb-lumos/light-client': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../light-client '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@ckb-lumos/runner': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../runner '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit '@ckb-lumos/utils': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../utils '@types/kill-port': specifier: ^2.0.0 @@ -337,7 +340,7 @@ importers: version: 2.0.1 devDependencies: '@ckb-lumos/testkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../testkit '@types/request': specifier: ^2.48.8 @@ -358,38 +361,38 @@ importers: ../packages/experiment-tx-assembler: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/helpers': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../helpers '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit ../packages/hd: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto bn.js: - specifier: ^5.1.3 - version: 5.2.1 + specifier: ^4.12.0 + version: 4.12.0 elliptic: specifier: ^6.5.4 version: 6.5.5 @@ -410,25 +413,25 @@ importers: ../packages/hd-cache: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/ckb-indexer': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../ckb-indexer '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/hd': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../hd '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc immutable: specifier: ^4.3.0 @@ -444,19 +447,19 @@ importers: ../packages/helpers: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit bech32: specifier: ^2.0.0 @@ -466,35 +469,35 @@ importers: version: 4.3.6 devDependencies: '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto ../packages/joyid: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/common-scripts': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../common-scripts '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/helpers': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../helpers '@joyid/ckb': specifier: 0.0.6 version: 0.0.6 devDependencies: '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto sinon: specifier: ^15.0.4 @@ -503,13 +506,13 @@ importers: ../packages/light-client: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/ckb-indexer': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../ckb-indexer '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc cross-fetch: specifier: ^3.1.5 @@ -519,7 +522,7 @@ importers: version: 3.3.0 devDependencies: '@ckb-lumos/testkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../testkit '@types/request': specifier: ^2.48.8 @@ -537,52 +540,52 @@ importers: ../packages/lumos: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/ckb-indexer': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../ckb-indexer '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/common-scripts': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../common-scripts '@ckb-lumos/config-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../config-manager '@ckb-lumos/crypto': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../crypto '@ckb-lumos/hd': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../hd '@ckb-lumos/helpers': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../helpers '@ckb-lumos/light-client': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../light-client '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit '@ckb-lumos/transaction-manager': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../transaction-manager ../packages/molecule: dependencies: '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@types/moo': specifier: ^0.5.9 @@ -607,19 +610,28 @@ importers: version: 3.0.2 devDependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base + '@types/js-yaml': + specifier: ^4.0.9 + version: 4.0.9 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 jsbi: specifier: ^4.1.0 version: 4.3.0 + peggy: + specifier: ^4.0.3 + version: 4.0.3 ../packages/rpc: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi abort-controller: specifier: ^3.0.0 @@ -647,7 +659,7 @@ importers: ../packages/runner: dependencies: '@ckb-lumos/utils': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../utils '@ltd/j-toml': specifier: ^1.38.0 @@ -683,16 +695,16 @@ importers: ../packages/testkit: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@types/body-parser': specifier: ^1.19.1 @@ -729,7 +741,7 @@ importers: ../packages/toolkit: dependencies: '@ckb-lumos/bi': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../bi devDependencies: '@babel/plugin-proposal-export-namespace-from': @@ -742,19 +754,19 @@ importers: ../packages/transaction-manager: dependencies: '@ckb-lumos/base': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../base '@ckb-lumos/ckb-indexer': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../ckb-indexer '@ckb-lumos/codec': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../codec '@ckb-lumos/rpc': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../rpc '@ckb-lumos/toolkit': - specifier: 0.23.0 + specifier: 0.24.0-next.1 version: link:../toolkit immutable: specifier: ^4.3.0 @@ -819,7 +831,7 @@ importers: version: 18.3.1(react@18.3.1) react-scripts: specifier: 5.0.1 - version: 5.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(react@18.3.1)(typescript@5.0.4) + version: 5.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(react@18.3.1)(typescript@5.5.4) web-vitals: specifier: ^2.1.4 version: 2.1.4 @@ -1102,6 +1114,55 @@ importers: specifier: ^2.9.3 version: 2.12.0(typescript@5.0.4) + vite: + dependencies: + ckt-lumos-lumos: + specifier: 0.30.0 + version: 0.30.0 + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + devDependencies: + '@originjs/vite-plugin-commonjs': + specifier: ^1.0.3 + version: 1.0.3 + '@types/react': + specifier: ^18.2.66 + version: 18.3.3 + '@types/react-dom': + specifier: ^18.2.22 + version: 18.3.0 + '@typescript-eslint/eslint-plugin': + specifier: ^7.2.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': + specifier: ^7.2.0 + version: 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@vitejs/plugin-react': + specifier: ^4.2.1 + version: 4.3.1(vite@5.3.5) + eslint: + specifier: ^8.57.0 + version: 8.57.0 + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.2(eslint@8.57.0) + eslint-plugin-react-refresh: + specifier: ^0.4.6 + version: 0.4.9(eslint@8.57.0) + typescript: + specifier: ^5.2.2 + version: 5.5.4 + vite: + specifier: ^5.2.0 + version: 5.3.5 + vite-plugin-commonjs: + specifier: ^0.10.1 + version: 0.10.1 + packages: /@adobe/css-tools@4.4.0: @@ -2282,6 +2343,26 @@ packages: - supports-color dev: false + /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + dev: true + /@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7): resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} engines: {node: '>=6.9.0'} @@ -2817,6 +2898,222 @@ packages: resolution: {integrity: sha512-AHUGIQ4RBaaQiaz8+NeN7yEtu8PgKtIKp5j1cIivRFjyA0kKTxmDkrMuTBpMZqhADWrvUf6cnKw5Tzwqzg26MQ==} dev: false + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2825,12 +3122,10 @@ packages: dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - dev: false /@eslint-community/regexpp@4.10.1: resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: false /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} @@ -2847,12 +3142,10 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: false /@eslint/js@8.57.0: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false /@ethereumjs/rlp@4.0.1: resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} @@ -2860,6 +3153,12 @@ packages: hasBin: true dev: true + /@ethereumjs/rlp@5.0.2: + resolution: {integrity: sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==} + engines: {node: '>=18'} + hasBin: true + dev: true + /@ethereumjs/util@8.1.0: resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} engines: {node: '>=14'} @@ -2869,6 +3168,14 @@ packages: micro-ftch: 0.3.1 dev: true + /@ethereumjs/util@9.0.3: + resolution: {integrity: sha512-PmwzWDflky+7jlZIFqiGsBPap12tk9zK5SVH9YW2OEnDN7OEhCjUOMzbOqwuClrbkSIkM2ERivd7sXZ48Rh/vg==} + engines: {node: '>=18'} + dependencies: + '@ethereumjs/rlp': 5.0.2 + ethereum-cryptography: 2.2.0 + dev: true + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -2879,17 +3186,14 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: false /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: false /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - dev: false /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -3371,6 +3675,10 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + dev: true + /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: @@ -3761,12 +4069,10 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: false /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: false /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -3774,7 +4080,12 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - dev: false + + /@originjs/vite-plugin-commonjs@1.0.3: + resolution: {integrity: sha512-KuEXeGPptM2lyxdIEJ4R11+5ztipHoE7hy8ClZt3PYaOVQ/pyngd2alaSrPnwyFeOW1UagRBaQ752aA1dTMdOQ==} + dependencies: + esbuild: 0.14.54 + dev: true /@parcel/bundler-default@2.12.0(@parcel/core@2.12.0): resolution: {integrity: sha512-3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==} @@ -4637,6 +4948,13 @@ packages: nullthrows: 1.1.1 dev: true + /@peggyjs/from-mem@1.3.0: + resolution: {integrity: sha512-kzGoIRJjkg3KuGI4bopz9UvF3KguzfxalHRDEIdqEZUe45xezsQ6cx30e0RKuxPUexojQRBfu89Okn7f4/QXsw==} + engines: {node: '>=18'} + dependencies: + semver: 7.6.0 + dev: true + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -4738,25 +5056,153 @@ packages: rollup: 2.79.1 dev: false - /@rushstack/eslint-patch@1.10.3: - resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} - dev: false + /@rollup/rollup-android-arm-eabi@4.20.0: + resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true - /@scure/base@1.1.7: - resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} + /@rollup/rollup-android-arm64@4.20.0: + resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} + cpu: [arm64] + os: [android] + requiresBuild: true dev: true + optional: true - /@scure/bip32@1.4.0: - resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - dependencies: - '@noble/curves': 1.4.0 - '@noble/hashes': 1.4.0 - '@scure/base': 1.1.7 + /@rollup/rollup-darwin-arm64@4.20.0: + resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} + cpu: [arm64] + os: [darwin] + requiresBuild: true dev: true + optional: true - /@scure/bip39@1.3.0: - resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - dependencies: + /@rollup/rollup-darwin-x64@4.20.0: + resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.20.0: + resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.20.0: + resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.20.0: + resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.20.0: + resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.20.0: + resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.20.0: + resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.20.0: + resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.20.0: + resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.20.0: + resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.20.0: + resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.20.0: + resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.20.0: + resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rushstack/eslint-patch@1.10.3: + resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} + dev: false + + /@scure/base@1.1.7: + resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} + dev: true + + /@scure/bip32@1.4.0: + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + dependencies: + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.7 + dev: true + + /@scure/bip39@1.3.0: + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + dependencies: '@noble/hashes': 1.4.0 '@scure/base': 1.1.7 dev: true @@ -5280,7 +5726,6 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: false /@types/express-serve-static-core@4.19.3: resolution: {integrity: sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==} @@ -5357,6 +5802,10 @@ packages: resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} dev: false + /@types/js-yaml@4.0.9: + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + dev: true + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: false @@ -5589,7 +6038,7 @@ packages: dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5601,36 +6050,63 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) debug: 4.3.5 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare-lite: 1.4.0 semver: 7.6.2 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.1 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript dev: false - /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5642,14 +6118,35 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) debug: 4.3.5 eslint: 8.57.0 - typescript: 5.0.4 + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: false + /@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.5 + eslint: 8.57.0 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5658,7 +6155,15 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: false - /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/scope-manager@7.18.0: + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5668,22 +6173,47 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) debug: 4.3.5 eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: false + /@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.5 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.0.4): + /@typescript-eslint/types@7.18.0: + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5698,13 +6228,35 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.2 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.0.4): + /@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4): + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5715,7 +6267,7 @@ packages: '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.6.2 @@ -5724,6 +6276,22 @@ packages: - typescript dev: false + /@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4): + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5732,9 +6300,16 @@ packages: eslint-visitor-keys: 3.4.3 dev: false + /@typescript-eslint/visitor-keys@7.18.0: + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: false /@unisat/wallet-sdk@1.6.2: resolution: {integrity: sha512-WnBoaIMayQzCbj1hiTneWtPSxDWEBiDMf7PpxkElYO4YbR4GtAMGCRwTje84ioOPfrst7Rin4mqvPI3x4ygq9w==} @@ -5752,6 +6327,22 @@ packages: tiny-secp256k1: 2.2.1 dev: true + /@vitejs/plugin-react@4.3.1(vite@5.3.5): + resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.3.5 + transitivePeerDependencies: + - supports-color + dev: true + /@webassemblyjs/ast@1.12.1: resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: @@ -5914,7 +6505,6 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.3 - dev: false /acorn-walk@7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} @@ -5931,7 +6521,6 @@ packages: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - dev: false /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} @@ -6116,7 +6705,6 @@ packages: /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - dev: false /array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} @@ -6691,7 +7279,6 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: false /braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -7006,6 +7593,185 @@ packages: /cjs-module-lexer@1.3.1: resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + /ckt-lumos-base@0.30.0: + resolution: {integrity: sha512-9N0DKrn5eW+HoxhEPRCHTGmcXGVVBNxSyH0VKET3KaPlOlt6dwswW3Ad88MuF47b94iYx70bfsKJ/QaqqXtp3w==} + engines: {node: '>=12.0.0'} + dependencies: + '@types/blake2b': 2.1.3 + '@types/lodash.isequal': 4.5.8 + blake2b: 2.1.4 + ckt-lumos-bi: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-toolkit: 0.30.0 + js-xxhash: 1.0.4 + lodash.isequal: 4.5.0 + dev: false + + /ckt-lumos-bi@0.30.0: + resolution: {integrity: sha512-Paa8Nk+KfvW2Y+39aIX0CyBypDkAPOcMilwXvA5rCYmljNorihjrIBnx0WLeyNUAOdvd0dlnsff4LJfCU4QsVw==} + engines: {node: '>=12.0.0'} + dependencies: + jsbi: 4.3.0 + dev: false + + /ckt-lumos-ckb-indexer@0.30.0: + resolution: {integrity: sha512-g05gBE4Us6NkdibJLGTI5+4zNjqpzDQdfPPV6MKGklk7f/7ClkeNA+31tSBFaz4TrJAQS49darDguy5YFnQ+bw==} + engines: {node: '>=12.0.0'} + dependencies: + ckt-lumos-base: 0.30.0 + ckt-lumos-bi: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-rpc: 0.30.0 + ckt-lumos-toolkit: 0.30.0 + cross-fetch: 3.1.8 + events: 3.3.0 + transitivePeerDependencies: + - encoding + dev: false + + /ckt-lumos-codec@0.30.0: + resolution: {integrity: sha512-JemCKURIqUklkKvJMUqhn7R5jsrx8AXi0Tm6So4DqtwYxbLBU92yLgWecYClHX9I9AEcNSDDVKkI7tu1Ioa6WQ==} + engines: {node: '>=12.0.0'} + dependencies: + ckt-lumos-bi: 0.30.0 + dev: false + + /ckt-lumos-common-scripts@0.30.0: + resolution: {integrity: sha512-3ozU322h/pTf4hSQpyVO0rBCyjGH+VBDGi1rFNfffS5CZB6tWuf5Lzeq9cF4Fc9jVt8wpCHFlQPZhcwVQ+0xPw==} + engines: {node: '>=12.0.0'} + dependencies: + bech32: 2.0.0 + bs58: 5.0.0 + ckt-lumos-base: 0.30.0 + ckt-lumos-bi: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-config-manager: 0.30.0 + ckt-lumos-crypto: 0.30.0 + ckt-lumos-helpers: 0.30.0 + ckt-lumos-rpc: 0.30.0 + ckt-lumos-toolkit: 0.30.0 + immutable: 4.3.6 + transitivePeerDependencies: + - encoding + dev: false + + /ckt-lumos-config-manager@0.30.0: + resolution: {integrity: sha512-8yAqhFur88Fb9hgTy+T0vj+YSVWgODrBk6DkbAGMjqUtkus202a4aVs480d3a/8zmdfUd0rjH0GlUUZzJTtzyQ==} + engines: {node: '>=12.0.0'} + dependencies: + '@types/deep-freeze-strict': 1.1.2 + ckt-lumos-base: 0.30.0 + ckt-lumos-bi: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-rpc: 0.30.0 + deep-freeze-strict: 1.1.1 + transitivePeerDependencies: + - encoding + dev: false + + /ckt-lumos-crypto@0.30.0: + resolution: {integrity: sha512-R3tRKI4koD7xXDLfKanq+OYfAY1VPFIlmm6y014o+fEilhL5cCAofQXiyftuxxFwN8KneTFryJ4xwfI3xQPrqQ==} + engines: {node: '>=18.0.0'} + dependencies: + '@noble/ciphers': 0.5.3 + '@noble/hashes': 1.4.0 + dev: false + + /ckt-lumos-hd@0.30.0: + resolution: {integrity: sha512-ljdvxgLsgNix7uRUhq9FUzcPBHMXfgO+rSs48OgKUFbIhv6IQuR1fW7YI31Bb9r4AA1J5iqWP5Sq0bYapwbgAA==} + engines: {node: '>=12.0.0'} + dependencies: + bn.js: 5.2.1 + ckt-lumos-base: 0.30.0 + ckt-lumos-bi: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-crypto: 0.30.0 + elliptic: 6.5.5 + uuid: 8.3.2 + dev: false + + /ckt-lumos-helpers@0.30.0: + resolution: {integrity: sha512-JJuTHYgl3ZBm6qJOPP2bnwaEVz6ReTvcDV1fLc/U74+FCuyKOm029VUsqYSNwn4rjPXXlYf7tTAXNN83WZxMEQ==} + engines: {node: '>=12.0.0'} + dependencies: + bech32: 2.0.0 + ckt-lumos-base: 0.30.0 + ckt-lumos-bi: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-config-manager: 0.30.0 + ckt-lumos-toolkit: 0.30.0 + immutable: 4.3.6 + transitivePeerDependencies: + - encoding + dev: false + + /ckt-lumos-light-client@0.30.0: + resolution: {integrity: sha512-CNvlPZfUT4f0xJTHnS7HXTX27w1o/ILcMV/txuqz5GpudOkaRF32DjCaNi8zRwV38ckLjVjQmqEGkmeOX5JZTQ==} + engines: {node: '>=12.0.0'} + dependencies: + ckt-lumos-base: 0.30.0 + ckt-lumos-ckb-indexer: 0.30.0 + ckt-lumos-rpc: 0.30.0 + cross-fetch: 3.1.8 + events: 3.3.0 + transitivePeerDependencies: + - encoding + dev: false + + /ckt-lumos-lumos@0.30.0: + resolution: {integrity: sha512-+7N81sxtTjtsQtCCuj5IybLoJ7+PwGH5JUq6UQi4ONMJb5PC8xTCTcOCSbhTe77tEFcP8zLGA8y4aPoiIR6Fvw==} + engines: {node: '>=12.0.0'} + dependencies: + ckt-lumos-base: 0.30.0 + ckt-lumos-bi: 0.30.0 + ckt-lumos-ckb-indexer: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-common-scripts: 0.30.0 + ckt-lumos-config-manager: 0.30.0 + ckt-lumos-crypto: 0.30.0 + ckt-lumos-hd: 0.30.0 + ckt-lumos-helpers: 0.30.0 + ckt-lumos-light-client: 0.30.0 + ckt-lumos-rpc: 0.30.0 + ckt-lumos-toolkit: 0.30.0 + ckt-lumos-transaction-manager: 0.30.0 + transitivePeerDependencies: + - encoding + dev: false + + /ckt-lumos-rpc@0.30.0: + resolution: {integrity: sha512-/cCpy41qQpzl566Hz7kK1p2y2IVG0OgqNXMu7H/cLosSp+6JS6smqdRqhcHg+dUPouDy/7GdQRovLOSBblmu3g==} + engines: {node: '>=12.0.0'} + dependencies: + abort-controller: 3.0.0 + ckt-lumos-base: 0.30.0 + ckt-lumos-bi: 0.30.0 + cross-fetch: 3.1.8 + transitivePeerDependencies: + - encoding + dev: false + + /ckt-lumos-toolkit@0.30.0: + resolution: {integrity: sha512-K0oIT4j3W6IcSyqotC5Vk//rUqDmomjZ0jjgs73h7o13ZyjGmDLNh82BG4j6Ki5c7AO6YG8rYpzc3sGaT2DwWg==} + engines: {node: '>=12.0.0'} + dependencies: + ckt-lumos-bi: 0.30.0 + dev: false + + /ckt-lumos-transaction-manager@0.30.0: + resolution: {integrity: sha512-zw5XVjhXzszpCEY/LrZSTEj5TZrHdwMDuL3IPKReqD2819b+jrIBDJ8ZEbAmt0lYw2Dr8KQC8Idyqjdm5KJs7g==} + engines: {node: '>=12.0.0'} + dependencies: + ckt-lumos-base: 0.30.0 + ckt-lumos-ckb-indexer: 0.30.0 + ckt-lumos-codec: 0.30.0 + ckt-lumos-rpc: 0.30.0 + ckt-lumos-toolkit: 0.30.0 + immutable: 4.3.6 + transitivePeerDependencies: + - encoding + dev: false + /clean-css@5.3.3: resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} engines: {node: '>= 10.0'} @@ -7092,6 +7858,11 @@ packages: dependencies: delayed-stream: 1.0.0 + /commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + dev: true + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: false @@ -7748,7 +8519,6 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: false /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} @@ -7888,7 +8658,6 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 - dev: false /discontinuous-range@1.0.0: resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} @@ -7917,7 +8686,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: false /dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -8193,84 +8961,323 @@ packages: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: false - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: false + + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: false + + /es-module-lexer@1.5.3: + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: false + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: false + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.2 + dev: false + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + /esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - dev: false + /esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true - /es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.2 - dev: false + /esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true - /es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} - dev: false + /esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - dev: false + /esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - dev: false + /esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - dependencies: - hasown: 2.0.2 - dev: false + /esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: false + /esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + dev: true + + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + dev: true /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} @@ -8316,7 +9323,7 @@ packages: source-map: 0.6.1 dev: false - /eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(jest@27.5.1)(typescript@5.0.4): + /eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4): resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -8329,19 +9336,19 @@ packages: '@babel/core': 7.24.7 '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@8.57.0) '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.4) babel-preset-react-app: 10.0.1 confusing-browser-globals: 1.0.11 eslint: 8.57.0 eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.57.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.0.4) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.34.2(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) - eslint-plugin-testing-library: 5.11.1(eslint@8.57.0)(typescript@5.0.4) - typescript: 5.0.4 + eslint-plugin-testing-library: 5.11.1(eslint@8.57.0)(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' @@ -8382,7 +9389,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.4) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -8415,7 +9422,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.4) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -8440,7 +9447,7 @@ packages: - supports-color dev: false - /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.0.4): + /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4): resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -8453,8 +9460,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.0.4) - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 jest: 27.5.1 transitivePeerDependencies: @@ -8494,7 +9501,14 @@ packages: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.57.0 - dev: false + + /eslint-plugin-react-refresh@0.4.9(eslint@8.57.0): + resolution: {integrity: sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA==} + peerDependencies: + eslint: '>=7' + dependencies: + eslint: 8.57.0 + dev: true /eslint-plugin-react@7.34.2(eslint@8.57.0): resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} @@ -8523,13 +9537,13 @@ packages: string.prototype.matchall: 4.0.11 dev: false - /eslint-plugin-testing-library@5.11.1(eslint@8.57.0)(typescript@5.0.4): + /eslint-plugin-testing-library@5.11.1(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -8550,7 +9564,6 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: false /eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} @@ -8560,7 +9573,6 @@ packages: /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false /eslint-webpack-plugin@3.2.0(eslint@8.57.0)(webpack@5.92.0): resolution: {integrity: sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==} @@ -8623,7 +9635,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: false /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -8632,7 +9643,6 @@ packages: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - dev: false /esprima@1.2.2: resolution: {integrity: sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==} @@ -8650,14 +9660,12 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - dev: false /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - dev: false /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} @@ -8667,7 +9675,6 @@ packages: /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - dev: false /estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} @@ -8676,7 +9683,6 @@ packages: /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - dev: false /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} @@ -8834,14 +9840,12 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.7 - dev: false /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: false /fast-loops@1.1.3: resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==} @@ -8859,7 +9863,6 @@ packages: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 - dev: false /faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} @@ -8884,7 +9887,6 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 - dev: false /file-loader@6.2.0(webpack@5.92.0): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} @@ -9007,7 +10009,6 @@ packages: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: false /flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} @@ -9016,11 +10017,9 @@ packages: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - dev: false /flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - dev: false /follow-redirects@1.15.6: resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} @@ -9049,7 +10048,7 @@ packages: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.0.4)(webpack@5.92.0): + /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.0): resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -9077,7 +10076,7 @@ packages: schema-utils: 2.7.0 semver: 7.6.2 tapable: 1.1.3 - typescript: 5.0.4 + typescript: 5.5.4 webpack: 5.92.0 dev: false @@ -9259,14 +10258,12 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: false /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - dev: false /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -9339,7 +10336,6 @@ packages: ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 - dev: false /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -9376,7 +10372,6 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: false /gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} @@ -9759,7 +10754,6 @@ packages: /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - dev: false /immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} @@ -10011,7 +11005,6 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - dev: false /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} @@ -11262,7 +12255,6 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: false /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -11283,7 +12275,6 @@ packages: /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: false /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -11366,7 +12357,6 @@ packages: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 - dev: false /kill-port@2.0.1: resolution: {integrity: sha512-e0SVOV5jFo0mx8r7bS29maVWp17qGqLBZ5ricNSajON6//kmb7qqqNnml4twNE8Dtj97UQD+gNFOaipS/q1zzQ==} @@ -11426,7 +12416,6 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: false /lightningcss-darwin-arm64@1.25.1: resolution: {integrity: sha512-G4Dcvv85bs5NLENcu/s1f7ehzE3D5ThnlWSDwE190tWXRQCQaqwcuHe+MGSVI/slm0XrxnaayXY+cNl3cSricw==} @@ -11596,7 +12585,6 @@ packages: engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - dev: false /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} @@ -11608,7 +12596,6 @@ packages: /lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: false /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -11616,7 +12603,6 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: false /lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -11666,6 +12652,13 @@ packages: dependencies: yallist: 3.1.1 + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -11677,6 +12670,12 @@ packages: sourcemap-codec: 1.4.8 dev: false + /magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true + /make-dir@1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} engines: {node: '>=4'} @@ -11745,7 +12744,6 @@ packages: /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: false /methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -11833,7 +12831,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: false /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -11928,7 +12925,6 @@ packages: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: false /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -12281,7 +13277,6 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.5 - dev: false /ordered-binary@1.5.1: resolution: {integrity: sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==} @@ -12339,7 +13334,6 @@ packages: engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - dev: false /p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} @@ -12489,7 +13483,6 @@ packages: /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - dev: false /pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} @@ -12502,6 +13495,16 @@ packages: sha.js: 2.4.11 dev: true + /peggy@4.0.3: + resolution: {integrity: sha512-v7/Pt6kGYsfXsCrfb52q7/yg5jaAwiVaUMAPLPvy4DJJU6Wwr72t6nDIqIDkGfzd1B4zeVuTnQT0RGeOhe/uSA==} + engines: {node: '>=18'} + hasBin: true + dependencies: + '@peggyjs/from-mem': 1.3.0 + commander: 12.1.0 + source-map-generator: 0.8.0 + dev: true + /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: false @@ -13353,6 +14356,15 @@ packages: source-map-js: 1.2.0 dev: false + /postcss@8.4.40: + resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: true + /posthtml-parser@0.10.2: resolution: {integrity: sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==} engines: {node: '>=12'} @@ -13390,7 +14402,6 @@ packages: /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - dev: false /prepend-http@2.0.0: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} @@ -13544,7 +14555,6 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: false /raf@3.4.1: resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} @@ -13601,7 +14611,7 @@ packages: whatwg-fetch: 3.6.20 dev: false - /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.0.4)(webpack@5.92.0): + /react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.0): resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -13620,7 +14630,7 @@ packages: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.0.4)(webpack@5.92.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.0) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -13635,7 +14645,7 @@ packages: shell-quote: 1.8.1 strip-ansi: 6.0.1 text-table: 0.2.0 - typescript: 5.0.4 + typescript: 5.5.4 webpack: 5.92.0 transitivePeerDependencies: - eslint @@ -13687,12 +14697,17 @@ packages: engines: {node: '>=0.10.0'} dev: false + /react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + dev: true + /react-refresh@0.9.0: resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==} engines: {node: '>=0.10.0'} dev: true - /react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(react@18.3.1)(typescript@5.0.4): + /react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(react@18.3.1)(typescript@5.5.4): resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -13720,7 +14735,7 @@ packages: dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.57.0 - eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(jest@27.5.1)(typescript@5.0.4) + eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.24.7)(@babel/plugin-transform-react-jsx@7.24.7)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4) eslint-webpack-plugin: 3.2.0(eslint@8.57.0)(webpack@5.92.0) file-loader: 6.2.0(webpack@5.92.0) fs-extra: 10.1.0 @@ -13738,7 +14753,7 @@ packages: prompts: 2.4.2 react: 18.3.1 react-app-polyfill: 3.0.0 - react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.0.4)(webpack@5.92.0) + react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.0) react-refresh: 0.11.0 resolve: 1.22.8 resolve-url-loader: 4.0.0 @@ -13748,7 +14763,7 @@ packages: style-loader: 3.3.4(webpack@5.92.0) tailwindcss: 3.4.4 terser-webpack-plugin: 5.3.10(webpack@5.92.0) - typescript: 5.0.4 + typescript: 5.5.4 webpack: 5.92.0 webpack-dev-server: 4.15.2(webpack@5.92.0) webpack-manifest-plugin: 4.1.1(webpack@5.92.0) @@ -14106,7 +15121,6 @@ packages: /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: false /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -14163,6 +15177,32 @@ packages: fsevents: 2.3.3 dev: false + /rollup@4.20.0: + resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.20.0 + '@rollup/rollup-android-arm64': 4.20.0 + '@rollup/rollup-darwin-arm64': 4.20.0 + '@rollup/rollup-darwin-x64': 4.20.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 + '@rollup/rollup-linux-arm-musleabihf': 4.20.0 + '@rollup/rollup-linux-arm64-gnu': 4.20.0 + '@rollup/rollup-linux-arm64-musl': 4.20.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 + '@rollup/rollup-linux-riscv64-gnu': 4.20.0 + '@rollup/rollup-linux-s390x-gnu': 4.20.0 + '@rollup/rollup-linux-x64-gnu': 4.20.0 + '@rollup/rollup-linux-x64-musl': 4.20.0 + '@rollup/rollup-win32-arm64-msvc': 4.20.0 + '@rollup/rollup-win32-ia32-msvc': 4.20.0 + '@rollup/rollup-win32-x64-msvc': 4.20.0 + fsevents: 2.3.3 + dev: true + /rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: @@ -14173,7 +15213,6 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - dev: false /safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} @@ -14328,6 +15367,14 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /semver@7.6.2: resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} @@ -14539,10 +15586,14 @@ packages: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} dev: false + /source-map-generator@0.8.0: + resolution: {integrity: sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==} + engines: {node: '>= 10'} + dev: true + /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - dev: false /source-map-loader@3.0.2(webpack@5.92.0): resolution: {integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==} @@ -15127,7 +16178,6 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: false /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -15246,6 +16296,15 @@ packages: resolution: {integrity: sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==} dev: false + /ts-api-utils@1.3.0(typescript@5.5.4): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.5.4 + dev: true + /ts-easing@0.2.0: resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} dev: false @@ -15270,14 +16329,14 @@ packages: /tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.5.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.4 + typescript: 5.5.4 dev: false /tunnel-agent@0.6.0: @@ -15306,7 +16365,6 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - dev: false /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} @@ -15390,6 +16448,12 @@ packages: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} hasBin: true + dev: true + + /typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true /uint8array-tools@0.0.7: resolution: {integrity: sha512-vrrNZJiusLWoFWBqz5Y5KMCgP9W9hnjZHzZiZRT8oNAkq3d5Z5Oe76jAvVVSRh4U8GGR90N2X1dWtrhvx6L8UQ==} @@ -15593,6 +16657,59 @@ packages: extsprintf: 1.3.0 dev: true + /vite-plugin-commonjs@0.10.1: + resolution: {integrity: sha512-taP8R9kYGlCW5OzkVR0UIWRCnG6rSxeWWuA7tnU5b9t5MniibOnDY219NhisTeDhJAeGT8cEnrhVWZ9A5yD+vg==} + dependencies: + acorn: 8.11.3 + fast-glob: 3.3.2 + magic-string: 0.30.11 + vite-plugin-dynamic-import: 1.5.0 + dev: true + + /vite-plugin-dynamic-import@1.5.0: + resolution: {integrity: sha512-Qp85c+AVJmLa8MLni74U4BDiWpUeFNx7NJqbGZyR2XJOU7mgW0cb7nwlAMucFyM4arEd92Nfxp4j44xPi6Fu7g==} + dependencies: + acorn: 8.11.3 + es-module-lexer: 1.5.3 + fast-glob: 3.3.2 + magic-string: 0.30.11 + dev: true + + /vite@5.3.5: + resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.21.5 + postcss: 8.4.40 + rollup: 4.20.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. @@ -15911,7 +17028,6 @@ packages: /word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - dev: false /workbox-background-sync@6.6.0: resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==} @@ -16161,6 +17277,10 @@ packages: /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} From e9d1864913202d47536a0a826ab050b8a48a2908 Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 10:09:47 +0900 Subject: [PATCH 3/8] chore: changeset --- .changeset/breezy-steaks-hide.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/breezy-steaks-hide.md diff --git a/.changeset/breezy-steaks-hide.md b/.changeset/breezy-steaks-hide.md new file mode 100644 index 000000000..fe19b23ca --- /dev/null +++ b/.changeset/breezy-steaks-hide.md @@ -0,0 +1,5 @@ +--- +"@ckb-lumos/molecule": minor +--- + +feat: completely support the Molecule 0.8 syntax From 2ac2c70369100cc2a47d5902aec5ddc9e1367250 Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 10:11:25 +0900 Subject: [PATCH 4/8] fix(molecule): unresolved bi in test cases --- packages/molecule/package.json | 1 + pnpm-lock.yaml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/packages/molecule/package.json b/packages/molecule/package.json index cb4e153fc..6585e3057 100644 --- a/packages/molecule/package.json +++ b/packages/molecule/package.json @@ -56,6 +56,7 @@ }, "devDependencies": { "@ckb-lumos/base": "0.24.0-next.1", + "@ckb-lumos/bi": "0.24.0-next.1", "@types/js-yaml": "^4.0.9", "js-yaml": "^4.1.0", "jsbi": "^4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b567c158..a4ab4b672 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -675,6 +675,9 @@ importers: '@ckb-lumos/base': specifier: 0.24.0-next.1 version: link:../base + '@ckb-lumos/bi': + specifier: 0.24.0-next.1 + version: link:../bi '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 From 5cbcb7f1144d689a167da47760cf65a0e5a15964 Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 10:32:47 +0900 Subject: [PATCH 5/8] ci: ignore coverage on generated file --- .github/.codecov.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/.codecov.yml b/.github/.codecov.yml index a2ef07946..d90fdaec0 100644 --- a/.github/.codecov.yml +++ b/.github/.codecov.yml @@ -35,3 +35,4 @@ comment: ignore: - "packages/base/lib/core.js" - "**/blockchain.umd.js" + - "packages/molecule/src/grammar/grammar.js" From 46f337dc6a7f9d21944acb7641d7c05a0320c0c1 Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 12:28:44 +0900 Subject: [PATCH 6/8] refactor(molecule): codegen grammar when building to reduce repo size --- examples/pnpm-lock.yaml | 64 +- packages/molecule/package.json | 2 +- packages/molecule/src/grammar/.gitignore | 1 + packages/molecule/src/grammar/grammar.js | 1980 ---------------------- 4 files changed, 5 insertions(+), 2042 deletions(-) create mode 100644 packages/molecule/src/grammar/.gitignore delete mode 100644 packages/molecule/src/grammar/grammar.js diff --git a/examples/pnpm-lock.yaml b/examples/pnpm-lock.yaml index 5a66a45de..5eb8f0789 100644 --- a/examples/pnpm-lock.yaml +++ b/examples/pnpm-lock.yaml @@ -581,30 +581,12 @@ importers: ../packages/molecule: dependencies: - '@ckb-lumos/bi': - specifier: 0.24.0-next.1 - version: link:../bi '@ckb-lumos/codec': specifier: 0.24.0-next.1 version: link:../codec - '@types/moo': - specifier: ^0.5.9 - version: 0.5.9 - '@types/nearley': - specifier: ^2.11.2 - version: 2.11.5 glob: specifier: ^10.3.10 version: 10.4.1 - minimist: - specifier: ^1.2.8 - version: 1.2.8 - moo: - specifier: ^0.5.1 - version: 0.5.2 - nearley: - specifier: ^2.20.1 - version: 2.20.1 relative: specifier: ^3.0.2 version: 3.0.2 @@ -612,6 +594,9 @@ importers: '@ckb-lumos/base': specifier: 0.24.0-next.1 version: link:../base + '@ckb-lumos/bi': + specifier: 0.24.0-next.1 + version: link:../bi '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 @@ -5850,14 +5835,6 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/moo@0.5.9: - resolution: {integrity: sha512-ZsFVecFi66jGQ6L41TonEaBhsIVeVftTz6iQKWTctzacHhzYHWvv9S0IyAJi4BhN7vb9qCQ3+kpStP2vbZqmDg==} - dev: false - - /@types/nearley@2.11.5: - resolution: {integrity: sha512-dM7TrN0bVxGGXTYGx4YhGear8ysLO5SOuouAWM9oltjQ3m9oYa13qi8Z1DJp5zxVMPukvQdsrnZmgzpeuTSEQA==} - dev: false - /@types/nock@11.1.0: resolution: {integrity: sha512-jI/ewavBQ7X5178262JQR0ewicPAcJhXS/iFaNJl0VHLfyosZ/kwSrsa6VNQNSO8i9d8SqdRgOtZSOKJ/+iNMw==} deprecated: This is a stub types definition. nock provides its own type definitions, so you do not need this installed. @@ -8659,10 +8636,6 @@ packages: dependencies: path-type: 4.0.0 - /discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dev: false - /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: false @@ -12848,10 +12821,6 @@ packages: minimist: 1.2.8 dev: false - /moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - dev: false - /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -12933,16 +12902,6 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /nearley@2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true - dependencies: - commander: 2.20.3 - moo: 0.5.2 - railroad-diagrams: 1.0.0 - randexp: 0.4.6 - dev: false - /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -14562,18 +14521,6 @@ packages: performance-now: 2.1.0 dev: false - /railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} - dev: false - - /randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} - dependencies: - discontinuous-range: 1.0.0 - ret: 0.1.15 - dev: false - /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -15103,11 +15050,6 @@ packages: lowercase-keys: 1.0.1 dev: false - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: false - /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} diff --git a/packages/molecule/package.json b/packages/molecule/package.json index 6585e3057..c707f2280 100644 --- a/packages/molecule/package.json +++ b/packages/molecule/package.json @@ -43,7 +43,7 @@ "lint": "eslint -c ../../.eslintrc.js \"{src,tests,examples}/**/*.ts\"", "build": "pnpm run build:types && pnpm run build:js", "build:types": "tsc --declaration --emitDeclarationOnly", - "build:js": "babel --root-mode upward src --out-dir lib --extensions .ts -s && pnpm run build:old", + "build:js": "pnpm generate:grammar && babel --root-mode upward src --out-dir lib --extensions .ts -s && pnpm run build:old", "build:old": "shx mkdir -p lib/grammar && shx cp -r src/grammar/*.js lib/grammar", "clean": "rm -rf lib", "generate:grammar": "peggy -o ./src/grammar/grammar.js ./src/grammar/grammar.peggy", diff --git a/packages/molecule/src/grammar/.gitignore b/packages/molecule/src/grammar/.gitignore new file mode 100644 index 000000000..6ff1973ef --- /dev/null +++ b/packages/molecule/src/grammar/.gitignore @@ -0,0 +1 @@ +grammar.js diff --git a/packages/molecule/src/grammar/grammar.js b/packages/molecule/src/grammar/grammar.js deleted file mode 100644 index 5c07f908b..000000000 --- a/packages/molecule/src/grammar/grammar.js +++ /dev/null @@ -1,1980 +0,0 @@ -// @generated by Peggy 4.0.3. -// -// https://peggyjs.org/ - -"use strict"; - - -function peg$subclass(child, parent) { - function C() { this.constructor = child; } - C.prototype = parent.prototype; - child.prototype = new C(); -} - -function peg$SyntaxError(message, expected, found, location) { - var self = Error.call(this, message); - // istanbul ignore next Check is a necessary evil to support older environments - if (Object.setPrototypeOf) { - Object.setPrototypeOf(self, peg$SyntaxError.prototype); - } - self.expected = expected; - self.found = found; - self.location = location; - self.name = "SyntaxError"; - return self; -} - -peg$subclass(peg$SyntaxError, Error); - -function peg$padEnd(str, targetLength, padString) { - padString = padString || " "; - if (str.length > targetLength) { return str; } - targetLength -= str.length; - padString += padString.repeat(targetLength); - return str + padString.slice(0, targetLength); -} - -peg$SyntaxError.prototype.format = function(sources) { - var str = "Error: " + this.message; - if (this.location) { - var src = null; - var k; - for (k = 0; k < sources.length; k++) { - if (sources[k].source === this.location.source) { - src = sources[k].text.split(/\r\n|\n|\r/g); - break; - } - } - var s = this.location.start; - var offset_s = (this.location.source && (typeof this.location.source.offset === "function")) - ? this.location.source.offset(s) - : s; - var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column; - if (src) { - var e = this.location.end; - var filler = peg$padEnd("", offset_s.line.toString().length, ' '); - var line = src[s.line - 1]; - var last = s.line === e.line ? e.column : line.length + 1; - var hatLen = (last - s.column) || 1; - str += "\n --> " + loc + "\n" - + filler + " |\n" - + offset_s.line + " | " + line + "\n" - + filler + " | " + peg$padEnd("", s.column - 1, ' ') - + peg$padEnd("", hatLen, "^"); - } else { - str += "\n at " + loc; - } - } - return str; -}; - -peg$SyntaxError.buildMessage = function(expected, found) { - var DESCRIBE_EXPECTATION_FNS = { - literal: function(expectation) { - return "\"" + literalEscape(expectation.text) + "\""; - }, - - class: function(expectation) { - var escapedParts = expectation.parts.map(function(part) { - return Array.isArray(part) - ? classEscape(part[0]) + "-" + classEscape(part[1]) - : classEscape(part); - }); - - return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]"; - }, - - any: function() { - return "any character"; - }, - - end: function() { - return "end of input"; - }, - - other: function(expectation) { - return expectation.description; - } - }; - - function hex(ch) { - return ch.charCodeAt(0).toString(16).toUpperCase(); - } - - function literalEscape(s) { - return s - .replace(/\\/g, "\\\\") - .replace(/"/g, "\\\"") - .replace(/\0/g, "\\0") - .replace(/\t/g, "\\t") - .replace(/\n/g, "\\n") - .replace(/\r/g, "\\r") - .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); }) - .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); }); - } - - function classEscape(s) { - return s - .replace(/\\/g, "\\\\") - .replace(/\]/g, "\\]") - .replace(/\^/g, "\\^") - .replace(/-/g, "\\-") - .replace(/\0/g, "\\0") - .replace(/\t/g, "\\t") - .replace(/\n/g, "\\n") - .replace(/\r/g, "\\r") - .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); }) - .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); }); - } - - function describeExpectation(expectation) { - return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); - } - - function describeExpected(expected) { - var descriptions = expected.map(describeExpectation); - var i, j; - - descriptions.sort(); - - if (descriptions.length > 0) { - for (i = 1, j = 1; i < descriptions.length; i++) { - if (descriptions[i - 1] !== descriptions[i]) { - descriptions[j] = descriptions[i]; - j++; - } - } - descriptions.length = j; - } - - switch (descriptions.length) { - case 1: - return descriptions[0]; - - case 2: - return descriptions[0] + " or " + descriptions[1]; - - default: - return descriptions.slice(0, -1).join(", ") - + ", or " - + descriptions[descriptions.length - 1]; - } - } - - function describeFound(found) { - return found ? "\"" + literalEscape(found) + "\"" : "end of input"; - } - - return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; -}; - -function peg$parse(input, options) { - options = options !== undefined ? options : {}; - - var peg$FAILED = {}; - var peg$source = options.grammarSource; - - var peg$startRuleFunctions = { grammar: peg$parsegrammar }; - var peg$startRuleFunction = peg$parsegrammar; - - var peg$c0 = "table"; - var peg$c1 = "{"; - var peg$c2 = "}"; - var peg$c3 = "vector"; - var peg$c4 = "<"; - var peg$c5 = ">"; - var peg$c6 = "struct"; - var peg$c7 = ":"; - var peg$c8 = "array"; - var peg$c9 = "["; - var peg$c10 = ";"; - var peg$c11 = "]"; - var peg$c12 = "union"; - var peg$c13 = "option"; - var peg$c14 = "("; - var peg$c15 = ")"; - var peg$c16 = "syntax"; - var peg$c17 = "="; - var peg$c18 = ","; - var peg$c19 = "import"; - var peg$c20 = "/"; - var peg$c21 = "../"; - var peg$c22 = "/*"; - var peg$c23 = "*/"; - var peg$c24 = "//"; - var peg$c25 = "#"; - var peg$c26 = "\n"; - var peg$c27 = "\r\n"; - var peg$c28 = "0"; - - var peg$r0 = /^[0-9A-Z_a-z]/; - var peg$r1 = /^[A-Za-z]/; - var peg$r2 = /^[A-Z]/; - var peg$r3 = /^[a-z]/; - var peg$r4 = /^[^*\/]/; - var peg$r5 = /^[^\n]/; - var peg$r6 = /^[^\r\n]/; - var peg$r7 = /^[\t ]/; - var peg$r8 = /^[0-9]/; - var peg$r9 = /^[1-9]/; - - var peg$e0 = peg$literalExpectation("table", false); - var peg$e1 = peg$literalExpectation("{", false); - var peg$e2 = peg$literalExpectation("}", false); - var peg$e3 = peg$literalExpectation("vector", false); - var peg$e4 = peg$literalExpectation("<", false); - var peg$e5 = peg$literalExpectation(">", false); - var peg$e6 = peg$literalExpectation("struct", false); - var peg$e7 = peg$literalExpectation(":", false); - var peg$e8 = peg$literalExpectation("array", false); - var peg$e9 = peg$literalExpectation("[", false); - var peg$e10 = peg$literalExpectation(";", false); - var peg$e11 = peg$literalExpectation("]", false); - var peg$e12 = peg$literalExpectation("union", false); - var peg$e13 = peg$literalExpectation("option", false); - var peg$e14 = peg$literalExpectation("(", false); - var peg$e15 = peg$literalExpectation(")", false); - var peg$e16 = peg$literalExpectation("syntax", false); - var peg$e17 = peg$literalExpectation("=", false); - var peg$e18 = peg$literalExpectation(",", false); - var peg$e19 = peg$literalExpectation("import", false); - var peg$e20 = peg$literalExpectation("/", false); - var peg$e21 = peg$literalExpectation("../", false); - var peg$e22 = peg$classExpectation([["0", "9"], ["A", "Z"], "_", ["a", "z"]], false, false); - var peg$e23 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false); - var peg$e24 = peg$classExpectation([["A", "Z"]], false, false); - var peg$e25 = peg$classExpectation([["a", "z"]], false, false); - var peg$e26 = peg$literalExpectation("/*", false); - var peg$e27 = peg$classExpectation(["*", "/"], true, false); - var peg$e28 = peg$literalExpectation("*/", false); - var peg$e29 = peg$literalExpectation("//", false); - var peg$e30 = peg$literalExpectation("#", false); - var peg$e31 = peg$classExpectation(["\n"], true, false); - var peg$e32 = peg$classExpectation(["\r", "\n"], true, false); - var peg$e33 = peg$classExpectation(["\t", " "], false, false); - var peg$e34 = peg$literalExpectation("\n", false); - var peg$e35 = peg$literalExpectation("\r\n", false); - var peg$e36 = peg$classExpectation([["0", "9"]], false, false); - var peg$e37 = peg$classExpectation([["1", "9"]], false, false); - var peg$e38 = peg$literalExpectation("0", false); - - var peg$f0 = function(version, imports, declares) { - return { - syntaxVersion: version, - imports, - declares, - }; - }; - var peg$f1 = function(declare) { return declare; }; - var peg$f2 = function(name, fields) { - return { - type: "table", - name, - fields, - }; - }; - var peg$f3 = function(name, item) { - return { - type: "vector", - name, - item, - }; - }; - var peg$f4 = function(name, fields) { - return { - type: "struct", - name, - fields, - }; - }; - var peg$f5 = function(name, type) { - return { name, type }; - }; - var peg$f6 = function(name, item, item_count) { - return { - type: "array", - name, - item, - item_count, - }; - }; - var peg$f7 = function(name, declares) { - return { - type: "union", - name, - items: declares, - }; - }; - var peg$f8 = function(name) { return name; }; - var peg$f9 = function(name, id) { - return [name, id]; - }; - var peg$f10 = function(head, tail) { return head + tail.join(""); }; - var peg$f11 = function(name, item) { - return { - type: "option", - name, - item, - }; - }; - var peg$f12 = function(version) { - return version.join(""); - }; - var peg$f13 = function(path) { return path; }; - var peg$f14 = function(head, middle, tail) { - return head.join("") + middle.flatMap((x) => x).join("") + tail; - }; - var peg$f15 = function(head, tail) { return head + tail.join(""); }; - var peg$currPos = options.peg$currPos | 0; - var peg$savedPos = peg$currPos; - var peg$posDetailsCache = [{ line: 1, column: 1 }]; - var peg$maxFailPos = peg$currPos; - var peg$maxFailExpected = options.peg$maxFailExpected || []; - var peg$silentFails = options.peg$silentFails | 0; - - var peg$result; - - if (options.startRule) { - if (!(options.startRule in peg$startRuleFunctions)) { - throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); - } - - peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; - } - - function text() { - return input.substring(peg$savedPos, peg$currPos); - } - - function offset() { - return peg$savedPos; - } - - function range() { - return { - source: peg$source, - start: peg$savedPos, - end: peg$currPos - }; - } - - function location() { - return peg$computeLocation(peg$savedPos, peg$currPos); - } - - function expected(description, location) { - location = location !== undefined - ? location - : peg$computeLocation(peg$savedPos, peg$currPos); - - throw peg$buildStructuredError( - [peg$otherExpectation(description)], - input.substring(peg$savedPos, peg$currPos), - location - ); - } - - function error(message, location) { - location = location !== undefined - ? location - : peg$computeLocation(peg$savedPos, peg$currPos); - - throw peg$buildSimpleError(message, location); - } - - function peg$literalExpectation(text, ignoreCase) { - return { type: "literal", text: text, ignoreCase: ignoreCase }; - } - - function peg$classExpectation(parts, inverted, ignoreCase) { - return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; - } - - function peg$anyExpectation() { - return { type: "any" }; - } - - function peg$endExpectation() { - return { type: "end" }; - } - - function peg$otherExpectation(description) { - return { type: "other", description: description }; - } - - function peg$computePosDetails(pos) { - var details = peg$posDetailsCache[pos]; - var p; - - if (details) { - return details; - } else { - if (pos >= peg$posDetailsCache.length) { - p = peg$posDetailsCache.length - 1; - } else { - p = pos; - while (!peg$posDetailsCache[--p]) {} - } - - details = peg$posDetailsCache[p]; - details = { - line: details.line, - column: details.column - }; - - while (p < pos) { - if (input.charCodeAt(p) === 10) { - details.line++; - details.column = 1; - } else { - details.column++; - } - - p++; - } - - peg$posDetailsCache[pos] = details; - - return details; - } - } - - function peg$computeLocation(startPos, endPos, offset) { - var startPosDetails = peg$computePosDetails(startPos); - var endPosDetails = peg$computePosDetails(endPos); - - var res = { - source: peg$source, - start: { - offset: startPos, - line: startPosDetails.line, - column: startPosDetails.column - }, - end: { - offset: endPos, - line: endPosDetails.line, - column: endPosDetails.column - } - }; - if (offset && peg$source && (typeof peg$source.offset === "function")) { - res.start = peg$source.offset(res.start); - res.end = peg$source.offset(res.end); - } - return res; - } - - function peg$fail(expected) { - if (peg$currPos < peg$maxFailPos) { return; } - - if (peg$currPos > peg$maxFailPos) { - peg$maxFailPos = peg$currPos; - peg$maxFailExpected = []; - } - - peg$maxFailExpected.push(expected); - } - - function peg$buildSimpleError(message, location) { - return new peg$SyntaxError(message, null, null, location); - } - - function peg$buildStructuredError(expected, found, location) { - return new peg$SyntaxError( - peg$SyntaxError.buildMessage(expected, found), - expected, - found, - location - ); - } - - function peg$parsegrammar() { - var s0, s1, s2, s3, s4, s5, s6, s7; - - s0 = peg$currPos; - s1 = []; - s2 = peg$parsebrk(); - while (s2 !== peg$FAILED) { - s1.push(s2); - s2 = peg$parsebrk(); - } - s2 = peg$parsesyntax_version_stmt(); - if (s2 === peg$FAILED) { - s2 = null; - } - s3 = []; - s4 = peg$parsebrk(); - while (s4 !== peg$FAILED) { - s3.push(s4); - s4 = peg$parsebrk(); - } - s4 = []; - s5 = peg$parseimport_stmt(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parseimport_stmt(); - } - s5 = []; - s6 = peg$parsebrk(); - while (s6 !== peg$FAILED) { - s5.push(s6); - s6 = peg$parsebrk(); - } - s6 = []; - s7 = peg$parsedecl_stmt(); - if (s7 !== peg$FAILED) { - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsedecl_stmt(); - } - } else { - s6 = peg$FAILED; - } - if (s6 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f0(s2, s4, s6); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsedecl_stmt() { - var s0, s1, s2, s3, s4; - - s0 = peg$currPos; - s1 = []; - s2 = peg$parsebrk(); - while (s2 !== peg$FAILED) { - s1.push(s2); - s2 = peg$parsebrk(); - } - s2 = peg$parseoption_decl(); - if (s2 === peg$FAILED) { - s2 = peg$parseunion_decl(); - if (s2 === peg$FAILED) { - s2 = peg$parsearray_decl(); - if (s2 === peg$FAILED) { - s2 = peg$parsestruct_decl(); - if (s2 === peg$FAILED) { - s2 = peg$parsevector_decl(); - if (s2 === peg$FAILED) { - s2 = peg$parsetable_decl(); - } - } - } - } - } - if (s2 !== peg$FAILED) { - s3 = []; - s4 = peg$parsebrk(); - while (s4 !== peg$FAILED) { - s3.push(s4); - s4 = peg$parsebrk(); - } - peg$savedPos = s0; - s0 = peg$f1(s2); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsetable_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c0) { - s1 = peg$c0; - peg$currPos += 5; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e0); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - s3 = peg$parseidentifier(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 123) { - s5 = peg$c1; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e1); } - } - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = []; - s8 = peg$parsefield_decl(); - while (s8 !== peg$FAILED) { - s7.push(s8); - s8 = peg$parsefield_decl(); - } - if (input.charCodeAt(peg$currPos) === 125) { - s8 = peg$c2; - peg$currPos++; - } else { - s8 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e2); } - } - if (s8 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f2(s3, s7); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsevector_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c3) { - s1 = peg$c3; - peg$currPos += 6; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e3); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - s3 = peg$parseidentifier(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 60) { - s5 = peg$c4; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e4); } - } - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = peg$parseidentifier(); - if (s7 !== peg$FAILED) { - s8 = []; - s9 = peg$parsebrk(); - while (s9 !== peg$FAILED) { - s8.push(s9); - s9 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 62) { - s9 = peg$c5; - peg$currPos++; - } else { - s9 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e5); } - } - if (s9 !== peg$FAILED) { - s10 = []; - s11 = peg$parsebrk(); - while (s11 !== peg$FAILED) { - s10.push(s11); - s11 = peg$parsebrk(); - } - s11 = peg$parsestmt_end(); - if (s11 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f3(s3, s7); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsestruct_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c6) { - s1 = peg$c6; - peg$currPos += 6; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e6); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - s3 = peg$parseidentifier(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 123) { - s5 = peg$c1; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e1); } - } - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = []; - s8 = peg$parsefield_decl(); - while (s8 !== peg$FAILED) { - s7.push(s8); - s8 = peg$parsefield_decl(); - } - if (input.charCodeAt(peg$currPos) === 125) { - s8 = peg$c2; - peg$currPos++; - } else { - s8 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e2); } - } - if (s8 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f4(s3, s7); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsefield_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; - - s0 = peg$currPos; - s1 = peg$parseidentifier(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 58) { - s3 = peg$c7; - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e7); } - } - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - s5 = peg$parseidentifier(); - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = peg$parsefield_end(); - if (s7 !== peg$FAILED) { - s8 = []; - s9 = peg$parsebrk(); - while (s9 !== peg$FAILED) { - s8.push(s9); - s9 = peg$parsebrk(); - } - peg$savedPos = s0; - s0 = peg$f5(s1, s5); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsearray_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c8) { - s1 = peg$c8; - peg$currPos += 5; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e8); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - s3 = peg$parseidentifier(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 91) { - s5 = peg$c9; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e9); } - } - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = peg$parseidentifier(); - if (s7 !== peg$FAILED) { - s8 = []; - s9 = peg$parsebrk(); - while (s9 !== peg$FAILED) { - s8.push(s9); - s9 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 59) { - s9 = peg$c10; - peg$currPos++; - } else { - s9 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e10); } - } - if (s9 !== peg$FAILED) { - s10 = []; - s11 = peg$parsebrk(); - while (s11 !== peg$FAILED) { - s10.push(s11); - s11 = peg$parsebrk(); - } - s11 = peg$parsenumber_gt_zero(); - if (s11 !== peg$FAILED) { - s12 = []; - s13 = peg$parsebrk(); - while (s13 !== peg$FAILED) { - s12.push(s13); - s13 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 93) { - s13 = peg$c11; - peg$currPos++; - } else { - s13 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e11); } - } - if (s13 !== peg$FAILED) { - s14 = []; - s15 = peg$parsebrk(); - while (s15 !== peg$FAILED) { - s14.push(s15); - s15 = peg$parsebrk(); - } - s15 = peg$parsestmt_end(); - if (s15 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f6(s3, s7, s11); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parseunion_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c12) { - s1 = peg$c12; - peg$currPos += 5; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e12); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - s3 = peg$parseidentifier(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 123) { - s5 = peg$c1; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e1); } - } - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = []; - s8 = peg$parseitem_decl(); - if (s8 === peg$FAILED) { - s8 = peg$parsecustom_union_item_decl(); - } - if (s8 !== peg$FAILED) { - while (s8 !== peg$FAILED) { - s7.push(s8); - s8 = peg$parseitem_decl(); - if (s8 === peg$FAILED) { - s8 = peg$parsecustom_union_item_decl(); - } - } - } else { - s7 = peg$FAILED; - } - if (s7 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 125) { - s8 = peg$c2; - peg$currPos++; - } else { - s8 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e2); } - } - if (s8 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f7(s3, s7); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parseitem_decl() { - var s0, s1, s2, s3, s4, s5; - - s0 = peg$currPos; - s1 = peg$parseidentifier(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - s3 = peg$parseitem_end(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - peg$savedPos = s0; - s0 = peg$f8(s1); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsecustom_union_item_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; - - s0 = peg$currPos; - s1 = peg$parseidentifier(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 58) { - s3 = peg$c7; - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e7); } - } - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - s5 = peg$parsenumber_gte_zero(); - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = peg$parsefield_end(); - if (s7 !== peg$FAILED) { - s8 = []; - s9 = peg$parsebrk(); - while (s9 !== peg$FAILED) { - s8.push(s9); - s9 = peg$parsebrk(); - } - peg$savedPos = s0; - s0 = peg$f9(s1, s5); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsenumber_gte_zero() { - var s0; - - s0 = peg$parsezero(); - if (s0 === peg$FAILED) { - s0 = peg$parsenumber_gt_zero(); - } - - return s0; - } - - function peg$parsenumber_gt_zero() { - var s0, s1, s2, s3; - - s0 = peg$currPos; - s1 = peg$parsenonzero(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsedigit(); - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsedigit(); - } - peg$savedPos = s0; - s0 = peg$f10(s1, s2); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parseoption_decl() { - var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c13) { - s1 = peg$c13; - peg$currPos += 6; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e13); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - s3 = peg$parseidentifier(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 40) { - s5 = peg$c14; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e14); } - } - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = peg$parseidentifier(); - if (s7 !== peg$FAILED) { - s8 = []; - s9 = peg$parsebrk(); - while (s9 !== peg$FAILED) { - s8.push(s9); - s9 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 41) { - s9 = peg$c15; - peg$currPos++; - } else { - s9 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e15); } - } - if (s9 !== peg$FAILED) { - s10 = peg$parsestmt_end(); - if (s10 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f11(s3, s7); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsesyntax_version_stmt() { - var s0, s1, s2, s3, s4, s5, s6, s7; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c16) { - s1 = peg$c16; - peg$currPos += 6; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e16); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - if (input.charCodeAt(peg$currPos) === 61) { - s3 = peg$c17; - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e17); } - } - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - s5 = peg$parsesyntax_version(); - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - s7 = peg$parsestmt_end(); - if (s7 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f12(s5); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsesyntax_version() { - var s0, s1; - - s0 = []; - s1 = peg$parsedigit(); - if (s1 !== peg$FAILED) { - while (s1 !== peg$FAILED) { - s0.push(s1); - s1 = peg$parsedigit(); - } - } else { - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parseitem_end() { - var s0; - - if (input.charCodeAt(peg$currPos) === 44) { - s0 = peg$c18; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e18); } - } - - return s0; - } - - function peg$parsefield_end() { - var s0; - - if (input.charCodeAt(peg$currPos) === 44) { - s0 = peg$c18; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e18); } - } - - return s0; - } - - function peg$parseimport_stmt() { - var s0, s1, s2, s3, s4, s5, s6, s7; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c19) { - s1 = peg$c19; - peg$currPos += 6; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e19); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parsebrk(); - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parsebrk(); - } - s3 = peg$parsepath(); - if (s3 !== peg$FAILED) { - s4 = []; - s5 = peg$parsebrk(); - while (s5 !== peg$FAILED) { - s4.push(s5); - s5 = peg$parsebrk(); - } - s5 = peg$parsestmt_end(); - if (s5 !== peg$FAILED) { - s6 = []; - s7 = peg$parsebrk(); - while (s7 !== peg$FAILED) { - s6.push(s7); - s7 = peg$parsebrk(); - } - peg$savedPos = s0; - s0 = peg$f13(s3); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsepath() { - var s0, s1, s2, s3, s4, s5; - - s0 = peg$currPos; - s1 = []; - s2 = peg$parsepath_super(); - while (s2 !== peg$FAILED) { - s1.push(s2); - s2 = peg$parsepath_super(); - } - s2 = []; - s3 = peg$currPos; - s4 = peg$parseidentifier(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 47) { - s5 = peg$c20; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e20); } - } - if (s5 !== peg$FAILED) { - s4 = [s4, s5]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$currPos; - s4 = peg$parseidentifier(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 47) { - s5 = peg$c20; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e20); } - } - if (s5 !== peg$FAILED) { - s4 = [s4, s5]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - s3 = peg$parseidentifier(); - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s0 = peg$f14(s1, s2, s3); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsepath_super() { - var s0; - - if (input.substr(peg$currPos, 3) === peg$c21) { - s0 = peg$c21; - peg$currPos += 3; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e21); } - } - - return s0; - } - - function peg$parseidentifier() { - var s0, s1, s2, s3; - - s0 = peg$currPos; - s1 = peg$parseletter(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = input.charAt(peg$currPos); - if (peg$r0.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e22); } - } - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = input.charAt(peg$currPos); - if (peg$r0.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e22); } - } - } - peg$savedPos = s0; - s0 = peg$f15(s1, s2); - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parseletter() { - var s0; - - s0 = input.charAt(peg$currPos); - if (peg$r1.test(s0)) { - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e23); } - } - - return s0; - } - - function peg$parseuppercase() { - var s0; - - s0 = input.charAt(peg$currPos); - if (peg$r2.test(s0)) { - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e24); } - } - - return s0; - } - - function peg$parselowercase() { - var s0; - - s0 = input.charAt(peg$currPos); - if (peg$r3.test(s0)) { - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e25); } - } - - return s0; - } - - function peg$parsestmt_end() { - var s0; - - if (input.charCodeAt(peg$currPos) === 59) { - s0 = peg$c10; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e10); } - } - - return s0; - } - - function peg$parsebrk() { - var s0; - - s0 = peg$parsewhitespace(); - if (s0 === peg$FAILED) { - s0 = peg$parsecomment(); - } - - return s0; - } - - function peg$parsecomment() { - var s0; - - s0 = peg$parseblock_comment(); - if (s0 === peg$FAILED) { - s0 = peg$parseline_comment(); - } - - return s0; - } - - function peg$parseblock_comment() { - var s0, s1, s2, s3; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c22) { - s1 = peg$c22; - peg$currPos += 2; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e26); } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = input.charAt(peg$currPos); - if (peg$r4.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e27); } - } - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = input.charAt(peg$currPos); - if (peg$r4.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e27); } - } - } - if (input.substr(peg$currPos, 2) === peg$c23) { - s3 = peg$c23; - peg$currPos += 2; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e28); } - } - if (s3 !== peg$FAILED) { - s1 = [s1, s2, s3]; - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parseline_comment() { - var s0, s1, s2, s3; - - s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c24) { - s1 = peg$c24; - peg$currPos += 2; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e29); } - } - if (s1 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 35) { - s1 = peg$c25; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e30); } - } - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = input.charAt(peg$currPos); - if (peg$r5.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e31); } - } - if (s3 === peg$FAILED) { - s3 = input.charAt(peg$currPos); - if (peg$r6.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e32); } - } - } - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = input.charAt(peg$currPos); - if (peg$r5.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e31); } - } - if (s3 === peg$FAILED) { - s3 = input.charAt(peg$currPos); - if (peg$r6.test(s3)) { - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e32); } - } - } - } - s1 = [s1, s2]; - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - return s0; - } - - function peg$parsewhitespace() { - var s0; - - s0 = peg$parseifs(); - if (s0 === peg$FAILED) { - s0 = peg$parsenewline(); - } - - return s0; - } - - function peg$parseifs() { - var s0; - - s0 = input.charAt(peg$currPos); - if (peg$r7.test(s0)) { - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e33); } - } - - return s0; - } - - function peg$parsenewline() { - var s0; - - if (input.charCodeAt(peg$currPos) === 10) { - s0 = peg$c26; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e34); } - } - if (s0 === peg$FAILED) { - if (input.substr(peg$currPos, 2) === peg$c27) { - s0 = peg$c27; - peg$currPos += 2; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e35); } - } - } - - return s0; - } - - function peg$parsedigit() { - var s0; - - s0 = input.charAt(peg$currPos); - if (peg$r8.test(s0)) { - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e36); } - } - - return s0; - } - - function peg$parsenonzero() { - var s0; - - s0 = input.charAt(peg$currPos); - if (peg$r9.test(s0)) { - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e37); } - } - - return s0; - } - - function peg$parsezero() { - var s0; - - if (input.charCodeAt(peg$currPos) === 48) { - s0 = peg$c28; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e38); } - } - - return s0; - } - - peg$result = peg$startRuleFunction(); - - if (options.peg$library) { - return /** @type {any} */ ({ - peg$result, - peg$currPos, - peg$FAILED, - peg$maxFailExpected, - peg$maxFailPos - }); - } - if (peg$result !== peg$FAILED && peg$currPos === input.length) { - return peg$result; - } else { - if (peg$result !== peg$FAILED && peg$currPos < input.length) { - peg$fail(peg$endExpectation()); - } - - throw peg$buildStructuredError( - peg$maxFailExpected, - peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, - peg$maxFailPos < input.length - ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) - : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) - ); - } -} - -module.exports = { - StartRules: ["grammar"], - SyntaxError: peg$SyntaxError, - parse: peg$parse -}; From a8a66cc759ca08107be13d61556318f49b72a9b8 Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 13:03:08 +0900 Subject: [PATCH 7/8] feat(lumos): export missing codec from blockchain --- packages/lumos/src/codec/blockchain.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/lumos/src/codec/blockchain.ts b/packages/lumos/src/codec/blockchain.ts index 583e29629..260637631 100644 --- a/packages/lumos/src/codec/blockchain.ts +++ b/packages/lumos/src/codec/blockchain.ts @@ -37,4 +37,7 @@ export { BlockV1, CellbaseWitness, WitnessArgs, + HashType, + Byte32, + DepType, } from "@ckb-lumos/base/lib/blockchain"; From 324ca64b67a7cd59f55cab5a2c071efca5a927ab Mon Sep 17 00:00:00 2001 From: homura Date: Tue, 6 Aug 2024 13:05:06 +0900 Subject: [PATCH 8/8] chore: changeset for missing exports --- .changeset/rich-guests-serve.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rich-guests-serve.md diff --git a/.changeset/rich-guests-serve.md b/.changeset/rich-guests-serve.md new file mode 100644 index 000000000..0e286c105 --- /dev/null +++ b/.changeset/rich-guests-serve.md @@ -0,0 +1,5 @@ +--- +"@ckb-lumos/lumos": minor +--- + +feat: export missing `HashType`, `Byte32` and `DepType` for `blockchain`