@unified-latex/unified-latex-cli 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../libs/unified-latex.ts", "../libs/unified-args/index.ts", "../libs/unified-args/options.ts", "../libs/lints/index.ts", "../libs/unified-args/schema.ts", "../libs/macros/parse-macro-expansion.ts", "../libs/stats/index.ts", "../libs/stats/enclosing-position.ts", "../libs/macros/expand-macros-plugin.ts", "../libs/macros/attach-macro-args-plugin.ts", "../libs/html/format.ts", "../libs/macros/expand-document-macros-plugin.ts", "../index.ts"],
4
4
  "sourcesContent": ["import { unified } from \"unified\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n unifiedLatexAstComplier,\n unifiedLatexFromString,\n} from \"@unified-latex/unified-latex-util-parse\";\nimport {\n unifiedLatexStringCompiler,\n PluginOptions as StringCompilerPluginOptions,\n} from \"@unified-latex/unified-latex-util-to-string\";\n/**\n * Use `unified()` to a string to an `Ast.Ast` and then pretty-print it.\n */\nexport const processLatexViaUnified = (\n options?: StringCompilerPluginOptions\n) => {\n return unified()\n .use(\n unifiedLatexFromString,\n Object.assign({ environments: {}, macros: {} }, options)\n )\n .use(\n unifiedLatexStringCompiler,\n Object.assign({ pretty: true, forceNewlineEnding: true }, options)\n );\n};\n\n/**\n * Use `unified()` to a string to an `Ast.Ast` and then return it. This function\n * will not print/pretty-print the `Ast.Ast` back to a string.\n */\nexport const processLatexToAstViaUnified = () => {\n return unified().use(unifiedLatexFromString).use(unifiedLatexAstComplier);\n};\n", "// Modified from unified-args https://github.com/unifiedjs/unified-args/blob/main/lib/index.js\n// MIT License\n\nimport process from \"node:process\";\nimport stream from \"node:stream\";\nimport chalk from \"chalk\";\nimport chokidar, { FSWatcher } from \"chokidar\";\nimport {\n engine,\n Callback as EngineCallback,\n Context as EngineContext,\n} from \"unified-engine\";\nimport { unifiedLatexToHast } from \"@unified-latex/unified-latex-to-hast\";\nimport { options, Options } from \"./options\";\nimport { availableLints } from \"../lints\";\nimport { statsJsonPlugin, statsPlugin } from \"../stats\";\nimport { expandMacrosPlugin } from \"../macros/expand-macros-plugin\";\nimport { attachMacroArgsPlugin } from \"../macros/attach-macro-args-plugin\";\nimport { prettyPrintHtmlPlugin } from \"../html/format\";\nimport { expandDocumentMacrosPlugin } from \"../macros/expand-document-macros-plugin\";\nimport { PluginOptions } from \"@unified-latex/unified-latex-util-parse\";\n\n// Fake TTY stream.\nconst ttyStream = Object.assign(new stream.Readable(), { isTTY: true });\n\n// Exit, lazily, with the correct exit status code.\nlet exitStatus = 0;\n\nprocess.on(\"exit\", onexit);\n\n// Handle uncaught errors, such as from unexpected async behavior.\nprocess.on(\"uncaughtException\", fail);\n\n/**\n * Start the CLI.\n *\n * @param {Options} cliConfig\n */\nexport function unifiedArgs(cliConfig: Options) {\n let config: ReturnType<typeof options>;\n let watcher: FSWatcher | undefined;\n let output: boolean | string | undefined;\n\n try {\n config = options(process.argv.slice(2), cliConfig);\n } catch (error) {\n const exception = error as Error;\n return fail(exception, true);\n }\n\n // We want to pass extra options to the processor. Because of that,\n // we remove it and replace it with one that passes in options.\n const processorOptions: PluginOptions = { macros: {}, environments: {} };\n const originalProcessor = config.processor as any;\n config.processor = () => originalProcessor(processorOptions);\n\n if (config.help) {\n process.stdout.write(\n [\n \"Usage: \" + cliConfig.name + \" [options] [path | glob ...]\",\n \"\",\n \" \" + cliConfig.description,\n \"\",\n \"Options:\",\n \"\",\n config.helpMessage,\n \"\",\n ].join(\"\\n\"),\n noop\n );\n\n return;\n }\n\n if (config.version) {\n process.stdout.write(cliConfig.version + \"\\n\", noop);\n\n return;\n }\n\n // Modify `config` for watching.\n if (config.watch) {\n output = config.output;\n\n // Do not read from stdin(4).\n config.streamIn = ttyStream;\n\n // Do not write to stdout(4).\n config.out = false;\n\n process.stderr.write(\n chalk.bold(\"Watching...\") + \" (press CTRL+C to exit)\\n\",\n noop\n );\n\n // Prevent infinite loop if set to regeneration.\n if (output === true) {\n config.output = false;\n\n process.stderr.write(\n chalk.yellow(\"Note\") + \": Ignoring `--output` until exit.\\n\",\n noop\n );\n }\n }\n\n if (config.lints) {\n for (const [lintName, lintArgs] of Object.entries(config.lints)) {\n const lint = availableLints[lintName];\n if (!lint) {\n throw new Error(\n `Could not find lint named \"${lintName}\"; available lints are ${Object.keys(\n availableLints\n ).join(\", \")}`\n );\n }\n config.plugins.push([lint, lintArgs]);\n }\n }\n\n if (config.stats) {\n config.plugins.push([statsPlugin]);\n }\n\n if (config.macro.length > 0) {\n config.plugins.push([attachMacroArgsPlugin, { macros: config.macro }]);\n }\n\n if (config.expandMacro.length > 0) {\n // We want to add parsing of these macros directly into the processor.\n // That way, if there is a name-clash with a builtin macro, the command-line\n // specified macro will take precedence.\n processorOptions.macros = Object.assign(\n processorOptions.macros || {},\n Object.fromEntries(\n config.expandMacro.map((m) => [\n m.name,\n { signature: m.signature },\n ])\n )\n );\n config.plugins.push([\n expandMacrosPlugin,\n { macros: config.expandMacro },\n ]);\n }\n\n if (config.expandDocumentMacro.length > 0) {\n config.plugins.push([\n expandDocumentMacrosPlugin,\n { macros: config.expandDocumentMacro },\n ]);\n }\n\n if (config.statsJson) {\n config.plugins.push([statsJsonPlugin]);\n }\n\n if (config.html) {\n config.plugins.push([unifiedLatexToHast]);\n config.plugins.push([prettyPrintHtmlPlugin]);\n }\n\n /**\n * Handle complete run.\n *\n * @type {EngineCallback}\n */\n const done: EngineCallback = function done(error, code, context) {\n if (error) {\n clean();\n fail(error);\n } else {\n exitStatus = code || 0;\n\n if (config.watch && !watcher && context) {\n subscribe(context);\n }\n }\n };\n\n // Clean the watcher.\n function clean() {\n if (watcher) {\n watcher.close();\n watcher = undefined;\n }\n }\n\n /**\n * Subscribe a chokidar watcher to all processed files.\n */\n function subscribe(context: EngineContext) {\n watcher = chokidar\n .watch(context.fileSet?.origins || [], {\n cwd: config.cwd != null ? \"\" + config.cwd : config.cwd,\n ignoreInitial: true,\n })\n .on(\"error\", done)\n .on(\"change\", (filePath) => {\n config.files = [filePath];\n engine(config, done);\n });\n\n process.on(\"SIGINT\", onsigint);\n\n /**\n * Handle a SIGINT.\n */\n function onsigint() {\n // Hide the `^C` in terminal.\n process.stderr.write(\"\\n\", noop);\n\n clean();\n\n // Do another process if `output` specified regeneration.\n if (output === true) {\n config.output = output;\n config.watch = false;\n engine(config, done);\n }\n }\n }\n\n // Initial run.\n engine(config, done);\n}\n\n/**\n * Print an error, optionally with stack.\n *\n * @param {Error} error\n * @param {boolean} [pretty=false]\n */\nfunction fail(error: Error, pretty?: boolean) {\n const message = String((pretty ? error : error.stack) || error);\n\n exitStatus = 1;\n\n process.stderr.write(message.trim() + \"\\n\", noop);\n}\n\nfunction onexit() {\n process.exit(exitStatus);\n}\n\nfunction noop() {}\n", "// Modified from unified-args https://github.com/unifiedjs/unified-args/blob/main/lib/index.js\n// MIT License\n\nimport table from \"text-table\";\nimport camelcase from \"camelcase\";\nimport minimist from \"minimist\";\nimport json5 from \"json5\";\nimport { fault } from \"fault\";\nimport { schema } from \"./schema\";\nimport type { Options as EngineOptions } from \"unified-engine\";\nimport type { Option } from \"./schema\";\nimport { PluggableList } from \"unified\";\nimport { availableLints } from \"../lints\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport { parseMacroExpansion } from \"../macros/parse-macro-expansion\";\n\ntype RequiredEngineOptions = Required<\n Pick<\n EngineOptions,\n | \"extensions\"\n | \"ignoreName\"\n | \"packageField\"\n | \"pluginPrefix\"\n | \"processor\"\n | \"rcName\"\n >\n>;\n\ntype ArgsOptionsFields = {\n /**\n * Name of executable\n */\n name: string;\n /**\n * description of executable\n */\n description: string;\n /**\n * Version (semver) of executable\n */\n version: string;\n};\n\nexport type Options = RequiredEngineOptions &\n Pick<EngineOptions, \"cwd\"> &\n ArgsOptionsFields;\n\nconst own = {}.hasOwnProperty;\n\n/**\n * Schema for `minimist`.\n */\nconst minischema = {\n unknown: handleUnknownArgument,\n default: {} as Record<string, string | boolean | null>,\n alias: {} as Record<string, string>,\n string: [] as string[],\n boolean: [] as string[],\n};\n\nlet index = -1;\nwhile (++index < schema.length) {\n addEach(schema[index]);\n}\n\n/**\n * Parse CLI options.\n */\nexport function options(flags: string[], configuration: Options) {\n const extension = configuration.extensions[0];\n const name = configuration.name;\n const config = toCamelCase(minimist(flags, minischema));\n let index = -1;\n\n while (++index < schema.length) {\n const option = schema[index];\n if (option.type === \"string\" && config[option.long] === \"\") {\n throw fault(\"Missing value:%s\", inspect(option).join(\" \"));\n }\n }\n\n const ext = commaSeparated(config.ext as string | string[]);\n const report = reporter(config.report as string | string[]);\n const help = [\n inspectAll(schema),\n \"\",\n \"Examples:\",\n \"\",\n \" # Process `input.\" + extension + \"`\",\n \" $ \" + name + \" input.\" + extension + \" -o output.\" + extension,\n \"\",\n \" # Pipe\",\n \" $ \" + name + \" < input.\" + extension + \" > output.\" + extension,\n \"\",\n \" # Rewrite all applicable files\",\n \" $ \" + name + \" . -o\",\n \"\",\n \" # Lint files and display the lint output (but not the processed file)\",\n \" $ \" + name + \" . --lint-all --no-stdout\",\n ].join(\"\\n\");\n\n const settings = parseSettings(config.setting as string);\n\n if (config.html && config.statsJson) {\n throw new Error(\n \"Both --html and --stats-json were specified; only one may be used at a time.\"\n );\n }\n\n return {\n helpMessage: help,\n cwd: configuration.cwd,\n processor: configuration.processor,\n help: config.help,\n version: config.version,\n // XXX I have no idea why `minimist` is not assigning unknown arguments to \"_\"\n // but it appears unknown arguments are being assigned to \"\" instead...\n files: config._ || config[\"\"],\n filePath: config.filePath,\n watch: config.watch,\n extensions: ext.length === 0 ? configuration.extensions : ext,\n output: config.output,\n out: config.stdout,\n tree: config.tree,\n treeIn: config.treeIn,\n treeOut: config.treeOut,\n inspect: config.inspect,\n rcName: configuration.rcName,\n packageField: configuration.packageField,\n rcPath: config.rcPath,\n detectConfig: config.config,\n settings,\n ignoreName: configuration.ignoreName,\n ignorePath: config.ignorePath,\n ignorePathResolveFrom: config.ignorePathResolveFrom,\n ignorePatterns: commaSeparated(config.ignorePattern as string),\n silentlyIgnore: config.silentlyIgnore,\n detectIgnore: config.ignore,\n pluginPrefix: configuration.pluginPrefix,\n plugins: [],\n lints: normalizeLints(config.lint as string | string[], config),\n reporter: report[0],\n reporterOptions: report[1],\n color: config.color,\n silent: config.silent,\n quiet: config.quiet,\n frail: config.frail,\n stats: config.stats,\n statsJson: config.statsJson,\n expandMacro: normalizeToArray(config.expandMacro as string).map(\n parseMacroExpansion\n ),\n expandDocumentMacro: normalizeToArray(\n config.expandDocumentMacro as string\n ),\n macro: normalizeToArray(config.macro as string).map(\n parseMacroExpansion\n ),\n html: config.html,\n } as EngineOptions & {\n help: boolean;\n helpMessage: string;\n watch: boolean;\n version: boolean;\n lints: Record<string, Record<string, unknown> | undefined>;\n plugins: PluggableList;\n stats: boolean;\n statsJson: boolean;\n expandMacro: { name: string; signature: string; body: Ast.Node[] }[];\n expandDocumentMacro: string[];\n macro: { name: string; signature: string }[];\n html: boolean;\n };\n}\n\nfunction addEach(option: Option) {\n const value = option.default;\n\n minischema.default[option.long] = value === undefined ? null : value;\n\n if (option.type && option.type in minischema) {\n minischema[option.type].push(option.long);\n }\n\n if (option.short) {\n minischema.alias[option.short] = option.long;\n }\n}\n\n/**\n * Parse `extensions`.\n */\nfunction commaSeparated(value: string[] | string | null | undefined): string[] {\n return normalizeToArray(value).flatMap((d) => splitOnComma(d));\n}\n\n/**\n * Parse `plugins`.\n */\nfunction plugins(value: string[] | string | null | undefined) {\n const normalized = normalizeToArray(value).map(splitOnEquals);\n let index = -1;\n const result: Record<string, Record<string, unknown> | undefined> = {};\n\n while (++index < normalized.length) {\n const value = normalized[index];\n result[value[0]] = value[1] ? parseConfig(value[1], {}) : undefined;\n }\n\n return result;\n}\n\n/**\n * Normalize the specified lints\n */\nfunction normalizeLints(\n value: string[] | string | null | undefined,\n config: Record<\"lintAll\" | \"fixAll\", unknown>\n) {\n const normalized = normalizeToArray(value).map(splitOnEquals);\n validateLintNames(normalized);\n if (config.lintAll) {\n normalized.push(...Object.keys(availableLints).map((v) => [v]));\n }\n\n const result: Record<string, Record<string, unknown> | undefined> =\n Object.fromEntries(\n normalized.map((value) => {\n let params = value[1] ? parseConfig(value[1], {}) : undefined;\n if (config.fixAll) {\n if (params) {\n Object.assign(params, { fix: true });\n } else {\n params = { fix: true };\n }\n }\n return [value[0], params];\n })\n );\n\n return result;\n}\n\n/**\n * Parse `reporter`: only one is accepted.\n */\nfunction reporter(value: string[] | string | null | undefined) {\n const all = normalizeToArray(value)\n .map(splitOnEquals)\n .map((value) => [\n value[0],\n value[1] ? parseConfig(value[1], {}) : undefined,\n ]);\n\n return all[all.length - 1] || [];\n}\n\n/**\n * Parse `settings`.\n */\nfunction parseSettings(\n value: string[] | string | null | undefined\n): Record<string, unknown> {\n const normalized = normalizeToArray(value);\n const cache: Record<string, unknown> = {};\n\n for (const value of normalized) {\n parseConfig(value, cache);\n }\n\n return cache;\n}\n\n/**\n * Parse configuration.\n */\nfunction parseConfig(\n value: string,\n cache: Record<string, unknown>\n): Record<string, unknown> {\n let flags: Record<string, unknown>;\n let flag: string;\n\n try {\n flags = toCamelCase(parseJSON(value));\n } catch (error) {\n const exception = error as Error;\n throw fault(\n \"Cannot parse `%s` as JSON: %s\",\n value,\n // Fix position\n exception.message.replace(/at(?= position)/, \"around\")\n );\n }\n\n for (flag in flags) {\n if (own.call(flags, flag)) {\n cache[flag] = flags[flag];\n }\n }\n\n return cache;\n}\n/**\n * Handle an unknown flag.\n */\nfunction validateLintNames(lints: string[][]): boolean {\n for (const lint of lints) {\n const name = lint[0];\n if (!availableLints[name]) {\n const known = Object.keys(availableLints);\n throw fault(\n \"Unknown lint rule `%s`, available rules are:\\n%s\",\n name,\n \"\\t\" + known.join(\"\\n\\t\")\n );\n }\n }\n\n return true;\n}\n\n/**\n * Handle an unknown flag.\n */\nfunction handleUnknownArgument(flag: string): boolean {\n // Not a glob.\n if (flag.charAt(0) === \"-\") {\n // Long options, always unknown.\n if (flag.charAt(1) === \"-\") {\n throw fault(\n \"Unknown option `%s`, expected:\\n%s\",\n flag,\n inspectAll(schema)\n );\n }\n\n // Short options, can be grouped.\n const found = flag.slice(1).split(\"\");\n const known = schema.filter((d) => d.short);\n const knownKeys = new Set(known.map((d) => d.short));\n let index = -1;\n\n while (++index < found.length) {\n const key = found[index];\n if (!knownKeys.has(key)) {\n throw fault(\n \"Unknown short option `-%s`, expected:\\n%s\",\n key,\n inspectAll(known)\n );\n }\n }\n }\n\n return true;\n}\n\n/**\n * Inspect all `options`.\n */\nfunction inspectAll(options: Option[]): string {\n return table(options.map((d) => inspect(d)));\n}\n\n/**\n * Inspect one `option`.\n */\nfunction inspect(option: Option): string[] {\n let description = option.description;\n let long = option.long;\n\n if (option.default === true || option.truelike) {\n description += \" (on by default)\";\n long = \"[no-]\" + long;\n }\n\n return [\n \"\",\n option.short ? \"-\" + option.short : \"\",\n \"--\" + long + (option.value ? \" \" + option.value : \"\"),\n description,\n ];\n}\n\n/**\n * Normalize `value`.\n */\nfunction normalizeToArray(\n value: string | string[] | null | undefined\n): string[] {\n if (!value) {\n return [];\n }\n\n if (typeof value === \"string\") {\n return [value];\n }\n\n return value;\n}\n\nfunction splitOnEquals(value: string) {\n return value.split(\"=\");\n}\n\nfunction splitOnComma(value: string) {\n return value.split(\",\");\n}\n\n/**\n * Transform the keys on an object to camel-case, recursively.\n */\nfunction toCamelCase(object: Record<string, unknown>): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n let key: string;\n\n for (key in object) {\n if (own.call(object, key)) {\n let value = object[key];\n\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n // @ts-expect-error: looks like an object.\n value = toCamelCase(value);\n }\n\n result[camelcase(key)] = value;\n }\n }\n\n return result;\n}\n\n/**\n * Parse a (lazy?) JSON config.\n */\nfunction parseJSON(value: string): Record<string, unknown> {\n return json5.parse(\"{\" + value + \"}\");\n}\n", "import { lints } from \"@unified-latex/unified-latex-lint\";\n\nexport const availableLints = Object.fromEntries(\n Object.values(lints).map((lint) => [\n lint.name.replace(/^unified-latex-lint:/, \"\"),\n lint,\n ])\n);\n", "// Modified from unified-args https://github.com/unifiedjs/unified-args/blob/main/lib/index.js\n// MIT License\n\nimport { availableLints } from \"../lints\";\n\nexport type Option = {\n long: string;\n description: string;\n value?: string;\n short?: string;\n default?: string | boolean;\n truelike?: boolean;\n type?: \"boolean\" | \"string\";\n};\n\nexport const schema: Option[] = [\n {\n long: \"help\",\n description: \"Output usage information\",\n short: \"h\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"version\",\n description: \"Output version number\",\n short: \"v\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"output\",\n description: \"Specify output location\",\n short: \"o\",\n value: \"[path]\",\n },\n {\n long: \"rc-path\",\n description: \"Specify configuration file\",\n short: \"r\",\n type: \"string\",\n value: \"<path>\",\n },\n {\n long: \"ignore-path\",\n description: \"Specify ignore file\",\n short: \"i\",\n type: \"string\",\n value: \"<path>\",\n },\n {\n long: \"ext\",\n description: \"Specify extensions\",\n type: \"string\",\n value: \"<extensions>\",\n },\n {\n long: \"lint\",\n description: `Lint rules to apply. Use multiple times to specify multiple lints. Available rules: ${Object.keys(\n availableLints\n ).join(\", \")}`,\n short: \"l\",\n type: \"string\",\n value: \"<rule>\",\n },\n {\n long: \"lint-all\",\n description: `Apply all available lint rules`,\n type: \"boolean\",\n default: false,\n },\n {\n long: \"fix-all\",\n description: \"Apply fixes for all applied lints\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"watch\",\n description: \"Watch for changes and reprocess\",\n short: \"w\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"macro\",\n description:\n \"Attach arguments of the specified macro (by default, unrecognized macros are parsed as having no arguments). Accepts a string of the form `\\\\newcommand{<name>}[<num args>]{<body>}` or a JSON string `{name: <name>, signature: <xparse argument signature>, body: <macro body>}`\",\n short: \"m\",\n type: \"string\",\n value: \"<rule>\",\n },\n {\n long: \"expand-macro\",\n description:\n \"Expand the specified macro. Accepts a string of the form `\\\\newcommand{<name>}[<num args>]{<body>}` or a JSON string `{name: <name>, signature: <xparse argument signature>, body: <macro body>}`\",\n short: \"e\",\n type: \"string\",\n value: \"<rule>\",\n },\n {\n long: \"expand-document-macro\",\n description:\n \"Expand the specified macro which is defined in the document. You can use --stats to list all macros defined in the document.\",\n short: \"d\",\n type: \"string\",\n value: \"<name>\"\n },\n {\n long: \"frail\",\n description: \"Exit with 1 on warnings\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"tree\",\n description: \"Specify input and output as syntax tree\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"report\",\n description: \"Specify reporter\",\n type: \"string\",\n value: \"<reporter>\",\n },\n {\n long: \"file-path\",\n description: \"Specify path to process as\",\n type: \"string\",\n value: \"<path>\",\n },\n {\n long: \"ignore-path-resolve-from\",\n description:\n \"Resolve patterns in `ignore-path` from its directory or cwd\",\n type: \"string\",\n value: \"dir|cwd\",\n default: \"dir\",\n },\n {\n long: \"ignore-pattern\",\n description: \"Specify ignore patterns\",\n type: \"string\",\n value: \"<globs>\",\n },\n {\n long: \"silently-ignore\",\n description: \"Do not fail when given ignored files\",\n type: \"boolean\",\n },\n {\n long: \"tree-in\",\n description: \"Specify input as syntax tree\",\n type: \"boolean\",\n },\n {\n long: \"tree-out\",\n description: \"Output syntax tree\",\n type: \"boolean\",\n },\n {\n long: \"inspect\",\n description: \"Output formatted syntax tree\",\n type: \"boolean\",\n },\n {\n long: \"stats\",\n description: \"Show information about the processed file\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"stats-json\",\n description:\n \"Show information about the processed file and output the information as JSON\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"html\",\n description:\n \"Convert the output to HTML. Note, for math to render properly, you will need to add a library like MathJax or KaTeX to your HTMl source; you should also expand/replace any macros not recognized by the converter\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"stdout\",\n description: \"[Don't] write the processed file's contents to stdout\",\n type: \"boolean\",\n truelike: true,\n },\n {\n long: \"color\",\n description: \"Specify color in report\",\n type: \"boolean\",\n default: true,\n },\n {\n long: \"config\",\n description: \"Search for configuration files\",\n type: \"boolean\",\n default: true,\n },\n {\n long: \"ignore\",\n description: \"Search for ignore files\",\n type: \"boolean\",\n default: true,\n },\n];\n", "import json5 from \"json5\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n newcommandMacroToName,\n newcommandMacroToSpec,\n newcommandMacroToSubstitutionAst,\n} from \"@unified-latex/unified-latex-util-macros\";\nimport { parse } from \"@unified-latex/unified-latex-util-parse\";\n\n/**\n * Parse a macro specification given on the command line as either a \"\\newcommand\" string\n * or a JSON object specifying `name`, `signature`, and `body`.\n */\nexport function parseMacroExpansion(def: string): {\n name: string;\n signature: string;\n body: Ast.Node[];\n} {\n if (def.startsWith(\"\\\\\")) {\n const macro = parse(def).content[0] as Ast.Macro;\n const name = newcommandMacroToName(macro);\n if (!name) {\n // If there was no name specified, it must not have been a `\\newcommand` or other recognized macro\n throw new Error(\n `Could extract macro definition from \"${def}\"; expected the macro to be defined via \\\\newcommand or similar syntax`\n );\n }\n const signature = newcommandMacroToSpec(macro);\n const body = newcommandMacroToSubstitutionAst(macro);\n\n return { name, signature, body };\n }\n // If it wasn't specified via a `\\newcommand` macro, assume it's specified as JSON\n const parsedSpec = json5.parse(def);\n if (parsedSpec.name == null || parsedSpec.body == null) {\n throw new Error(\n `Expected a \"name\" field and a \"body\" field to be defined on ${def}`\n );\n }\n parsedSpec.signature = parsedSpec.signature || \"\";\n\n return {\n name: parsedSpec.name,\n signature: parsedSpec.signature,\n body: parse(parsedSpec.body).content,\n };\n}\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport { listPackages } from \"@unified-latex/unified-latex-util-packages\";\nimport { listNewcommands } from \"@unified-latex/unified-latex-util-macros\";\nimport { printRaw } from \"@unified-latex/unified-latex-util-print-raw\";\nimport { Plugin } from \"unified\";\nimport { enclosingPosition } from \"./enclosing-position\";\n\n/**\n * Plugin that reports statistics on the contents of LaTeX files.\n */\nexport const statsPlugin: Plugin<void[], Ast.Root, Ast.Root> = function () {\n return (tree, file) => {\n const packages = listPackages(tree);\n const packageNames = packages.map((s) => printRaw(s));\n if (packages.length > 0) {\n file.info(\n `Found ${\n packages.length\n } imported packages: ${packageNames.join(\", \")}`\n );\n }\n\n const newcommands = listNewcommands(tree);\n if (newcommands.length > 0) {\n file.info(\n `Found ${newcommands.length} defined commands: ${newcommands\n .map((c) => `\\\\${c.name}`)\n .join(\", \")}`,\n enclosingPosition(newcommands.map((c) => c.definition))\n );\n }\n };\n};\n\n/**\n * Plugin that reports statistics on the contents of LaTeX files and replaces the file output with a JSON\n * representation of the statistics.\n */\nexport const statsJsonPlugin: Plugin<void[], Ast.Root, string> = function () {\n this.Compiler = (tree, file) => {\n file.extname = \".json\";\n file.basename += \"-stats\";\n\n const packages = listPackages(tree).map((s) => printRaw(s));\n const newcommands = listNewcommands(tree).map((c) => ({\n name: c.name,\n signature: c.signature,\n body: printRaw(c.body),\n definition: printRaw(c.definition),\n }));\n\n return JSON.stringify({ packages, newcommands }, null, 4) + \"\\n\";\n };\n};\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\n\ntype Position = { line: number; column: number; offset: number };\n\n/**\n * Find the smallest `position` object that contains all `nodes`.\n */\nexport function enclosingPosition(nodes: Ast.Node[]): {\n start: Position;\n end: Position;\n} {\n let start: Position = { line: 1, column: 1, offset: 0 };\n let end: Position = { line: 1, column: 1, offset: 0 };\n\n for (const node of nodes) {\n if (Number(node.position?.start.offset) < Number(start.offset)) {\n start = node.position?.start as Position;\n }\n if (Number(node.position?.end.offset) > Number(end.offset)) {\n end = node.position?.end as Position;\n }\n }\n\n return { start, end };\n}\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n expandMacros,\n expandMacrosExcludingDefinitions,\n} from \"@unified-latex/unified-latex-util-macros\";\nimport { Plugin } from \"unified\";\nimport { attachMacroArgs } from \"@unified-latex/unified-latex-util-arguments\";\n\ntype PluginOptions = {\n macros: { name: string; signature: string; body: Ast.Node[] }[];\n};\n\n/**\n * Plugin that expands the specified macros.\n */\nexport const expandMacrosPlugin: Plugin<PluginOptions[], Ast.Root, Ast.Root> =\n function (options) {\n const { macros = [] } = options || {};\n const macroInfo = Object.fromEntries(\n macros.map((m) => [m.name, { signature: m.signature }])\n );\n return (tree) => {\n // We need to attach the arguments to each macro before we process it!\n attachMacroArgs(tree, macroInfo);\n expandMacros(tree, macros);\n };\n };\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport { Plugin } from \"unified\";\nimport { attachMacroArgs } from \"@unified-latex/unified-latex-util-arguments\";\n\ntype PluginOptions = {\n macros: { name: string; signature: string }[];\n};\n\n/**\n * Plugin that attaches the arguments of the specified macros.\n */\nexport const attachMacroArgsPlugin: Plugin<\n PluginOptions[],\n Ast.Root,\n Ast.Root\n> = function (options) {\n const { macros = [] } = options || {};\n const macroInfo = Object.fromEntries(\n macros.map((m) => [m.name, { signature: m.signature }])\n );\n return (tree) => {\n // We need to attach the arguments to each macro before we process it!\n attachMacroArgs(tree, macroInfo);\n };\n};\n", "import { Root } from \"hastscript/lib/core\";\nimport rehypeStringify from \"rehype-stringify\";\nimport Prettier from \"prettier\";\nimport { Plugin, unified } from \"unified\";\n\n/**\n * Plugin that pretty-prints HTML.\n */\nexport const prettyPrintHtmlPlugin: Plugin<void[], Root, string> = function () {\n const processor = unified().use(rehypeStringify);\n this.Compiler = (tree, file) => {\n file.extname = \".html\";\n\n const html = processor.stringify(tree, file);\n try {\n return Prettier.format(html, { parser: \"html\", useTabs: true });\n } catch {}\n return html;\n };\n};\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n expandMacros,\n expandMacrosExcludingDefinitions,\n listNewcommands,\n} from \"@unified-latex/unified-latex-util-macros\";\nimport { Plugin } from \"unified\";\nimport { attachMacroArgs } from \"@unified-latex/unified-latex-util-arguments\";\n\ntype PluginOptions = {\n macros?: string[];\n};\n\n/**\n * Plugin that expands the specified macros by name. These macros must be defined in the document via\n * `\\newcommand...` or equivalent.\n */\nexport const expandDocumentMacrosPlugin: Plugin<\n PluginOptions[],\n Ast.Root,\n Ast.Root\n> = function (options) {\n const { macros = [] } = options || {};\n const macrosSet = new Set(macros);\n\n return (tree) => {\n const newcommands = listNewcommands(tree);\n const macros = newcommands.filter((s) => macrosSet.has(s.name));\n\n const macroInfo = Object.fromEntries(\n macros.map((m) => [m.name, { signature: m.signature }])\n );\n // We need to attach the arguments to each macro before we process it!\n attachMacroArgs(tree, macroInfo);\n expandMacrosExcludingDefinitions(tree, macros);\n };\n};\n", "import { processLatexViaUnified } from \"./libs/unified-latex\";\nimport { unifiedArgs } from \"./libs/unified-args\";\nimport fs from \"node:fs\";\n\nlet version = \"unknown (could not read version from package.json)\";\ntry {\n // Read the version dynamically on startup\n type PackageJson = { version: string };\n const packageJson: PackageJson = JSON.parse(\n fs.readFileSync(new URL(\"./package.json\", import.meta.url), {\n encoding: \"utf8\",\n })\n );\n version = packageJson.version;\n} catch {}\n\nunifiedArgs({\n processor: processLatexViaUnified,\n name: \"unified-latex\",\n description: \"LaTeX processor powered by unified-latex\",\n version,\n extensions: [\"tex\"],\n ignoreName: \".unifiedlatexignore\",\n packageField: \"unifiedLatexConfig\",\n rcName: \".unifiedlatexrc\",\n pluginPrefix: \"@unified-latex/\",\n});\n\n// NOTE: The docstring comment must be the last item in the index.ts file!\n/**\n * ## What is this?\n *\n * Command line interface to common `unified-latex` functions.\n *\n * ## When should I use this?\n *\n * If you want to reformat, process, or gather statistic on LaTeX files from the command line.\n *\n * ## Examples\n *\n * Reformat and pretty-print a file\n *\n * ```bash\n * unified-latex input.tex -o output.tex\n * ```\n *\n * List all commands defined via `\\newcommand` and friends (and hide the file output).\n *\n * ```bash\n * unified-latex input.tex --no-stdout --stats\n * ```\n *\n * Expand the definition of the macro `\\foo{...}`, which takes one argument.\n *\n * ```bash\n * unified-latex input.tex -e \"\\\\newcommand{foo}[1]{FOO(#1)}\"\n * ```\n *\n * View the parsed AST.\n *\n * ```bash\n * unified-latex input.tex --inspect\n * ```\n *\n * Convert the file to HTML. (Note, you will need to include and configure a library like _MathJax_ or _KaTeX_ to render\n * any math in the resulting HTML. Warnings are provided for macros that aren't recognized by the converter.)\n *\n * ```bash\n * unified-latex input.tex -o output.html --html\n * ```\n *\n * Lint all tex files in the current directory and watch for changes.\n *\n * ```bash\n * unified-latex . --no-stdout --lint-all --watch\n * ```\n */\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["options", "json5", "index", "value", "lints", "index", "options", "json5", "options", "attachMacroArgs", "options", "unified", "expandMacrosExcludingDefinitions", "listNewcommands", "attachMacroArgs", "options", "macros", "done"]
7
7
  }
@@ -1,28 +1,28 @@
1
1
  export declare const availableLints: {
2
- [k: string]: import("unified").Plugin<void[] | [import("unified-lint-rule").Severity | import("unified-lint-rule").Label | {
2
+ [k: string]: import("unified").Plugin<void[] | [{
3
3
  fix?: boolean | undefined;
4
- } | undefined] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, {
4
+ } | [boolean | import("unified-lint-rule/lib").Label | import("unified-lint-rule/lib").Severity, ({
5
5
  fix?: boolean | undefined;
6
- } | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [import("unified-lint-rule").Severity | import("unified-lint-rule").Label | {
6
+ } | undefined)?] | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [{
7
7
  fix?: boolean | undefined;
8
- } | undefined] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, {
8
+ } | [boolean | import("unified-lint-rule/lib").Label | import("unified-lint-rule/lib").Severity, ({
9
9
  fix?: boolean | undefined;
10
- } | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [import("unified-lint-rule").Severity | import("unified-lint-rule").Label | {
10
+ } | undefined)?] | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [{
11
11
  preferredStyle: "tex" | "latex";
12
- } | undefined] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, {
12
+ } | [boolean | import("unified-lint-rule/lib").Label | import("unified-lint-rule/lib").Severity, ({
13
13
  preferredStyle: "tex" | "latex";
14
- } | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [import("unified-lint-rule").Severity | import("unified-lint-rule").Label | undefined] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [import("unified-lint-rule").Severity | import("unified-lint-rule").Label | {
14
+ } | undefined)?] | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [[boolean | import("unified-lint-rule/lib").Label | import("unified-lint-rule/lib").Severity, undefined?] | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [{
15
15
  fix?: boolean | undefined;
16
- } | undefined] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, {
16
+ } | [boolean | import("unified-lint-rule/lib").Label | import("unified-lint-rule/lib").Severity, ({
17
17
  fix?: boolean | undefined;
18
- } | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [import("unified-lint-rule").Severity | import("unified-lint-rule").Label | {
18
+ } | undefined)?] | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [{
19
19
  fix?: boolean | undefined;
20
- } | undefined] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, {
20
+ } | [boolean | import("unified-lint-rule/lib").Label | import("unified-lint-rule/lib").Severity, ({
21
21
  fix?: boolean | undefined;
22
- } | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [unknown] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, unknown], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [import("unified-lint-rule").Severity | import("unified-lint-rule").Label | {
22
+ } | undefined)?] | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [unknown], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root> | import("unified").Plugin<void[] | [{
23
23
  fix?: boolean | undefined;
24
- } | undefined] | [boolean | import("unified-lint-rule").Severity | import("unified-lint-rule").Label, {
24
+ } | [boolean | import("unified-lint-rule/lib").Label | import("unified-lint-rule/lib").Severity, ({
25
25
  fix?: boolean | undefined;
26
- } | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root>;
26
+ } | undefined)?] | undefined], import("@unified-latex/unified-latex-types/dist").Root, import("@unified-latex/unified-latex-types/dist").Root>;
27
27
  };
28
28
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unified-latex/unified-latex-cli",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "Command line interface to common unified-latex options",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -8,15 +8,15 @@
8
8
  "unified-latex": "./unified-latex-cli.mjs"
9
9
  },
10
10
  "dependencies": {
11
- "@unified-latex/unified-latex-lint": "^1.4.0",
12
- "@unified-latex/unified-latex-to-hast": "^1.4.0",
13
- "@unified-latex/unified-latex-types": "^1.3.1",
14
- "@unified-latex/unified-latex-util-arguments": "^1.4.0",
15
- "@unified-latex/unified-latex-util-macros": "^1.4.0",
16
- "@unified-latex/unified-latex-util-packages": "^1.4.0",
17
- "@unified-latex/unified-latex-util-parse": "^1.4.0",
18
- "@unified-latex/unified-latex-util-print-raw": "^1.4.0",
19
- "@unified-latex/unified-latex-util-to-string": "^1.4.0",
11
+ "@unified-latex/unified-latex-lint": "^1.4.2",
12
+ "@unified-latex/unified-latex-to-hast": "^1.4.2",
13
+ "@unified-latex/unified-latex-types": "^1.4.2",
14
+ "@unified-latex/unified-latex-util-arguments": "^1.4.2",
15
+ "@unified-latex/unified-latex-util-macros": "^1.4.2",
16
+ "@unified-latex/unified-latex-util-packages": "^1.4.2",
17
+ "@unified-latex/unified-latex-util-parse": "^1.4.2",
18
+ "@unified-latex/unified-latex-util-print-raw": "^1.4.2",
19
+ "@unified-latex/unified-latex-util-to-string": "^1.4.2",
20
20
  "camelcase": "^7.0.1",
21
21
  "chalk": "^5.2.0",
22
22
  "chokidar": "^3.5.3",
@@ -24,8 +24,8 @@
24
24
  "hastscript": "^7.2.0",
25
25
  "json5": "^2.2.3",
26
26
  "minimist": "^1.2.7",
27
- "prettier": "^2.8.3",
28
- "rehype-stringify": "^9.0.3",
27
+ "prettier": "^2.8.8",
28
+ "rehype-stringify": "^9.0.4",
29
29
  "text-table": "^0.2.0",
30
30
  "unified": "^10.1.2",
31
31
  "unified-engine": "^10.1.0"
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../libs/unified-latex.ts", "../libs/unified-args/index.ts", "../libs/unified-args/options.ts", "../libs/lints/index.ts", "../libs/unified-args/schema.ts", "../libs/macros/parse-macro-expansion.ts", "../libs/stats/index.ts", "../libs/stats/enclosing-position.ts", "../libs/macros/expand-macros-plugin.ts", "../libs/macros/attach-macro-args-plugin.ts", "../libs/html/format.ts", "../libs/macros/expand-document-macros-plugin.ts", "../index.ts"],
4
4
  "sourcesContent": ["import { unified } from \"unified\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n unifiedLatexAstComplier,\n unifiedLatexFromString,\n} from \"@unified-latex/unified-latex-util-parse\";\nimport {\n unifiedLatexStringCompiler,\n PluginOptions as StringCompilerPluginOptions,\n} from \"@unified-latex/unified-latex-util-to-string\";\n/**\n * Use `unified()` to a string to an `Ast.Ast` and then pretty-print it.\n */\nexport const processLatexViaUnified = (\n options?: StringCompilerPluginOptions\n) => {\n return unified()\n .use(\n unifiedLatexFromString,\n Object.assign({ environments: {}, macros: {} }, options)\n )\n .use(\n unifiedLatexStringCompiler,\n Object.assign({ pretty: true, forceNewlineEnding: true }, options)\n );\n};\n\n/**\n * Use `unified()` to a string to an `Ast.Ast` and then return it. This function\n * will not print/pretty-print the `Ast.Ast` back to a string.\n */\nexport const processLatexToAstViaUnified = () => {\n return unified().use(unifiedLatexFromString).use(unifiedLatexAstComplier);\n};\n", "// Modified from unified-args https://github.com/unifiedjs/unified-args/blob/main/lib/index.js\n// MIT License\n\nimport process from \"node:process\";\nimport stream from \"node:stream\";\nimport chalk from \"chalk\";\nimport chokidar, { FSWatcher } from \"chokidar\";\nimport {\n engine,\n Callback as EngineCallback,\n Context as EngineContext,\n} from \"unified-engine\";\nimport { unifiedLatexToHast } from \"@unified-latex/unified-latex-to-hast\";\nimport { options, Options } from \"./options\";\nimport { availableLints } from \"../lints\";\nimport { statsJsonPlugin, statsPlugin } from \"../stats\";\nimport { expandMacrosPlugin } from \"../macros/expand-macros-plugin\";\nimport { attachMacroArgsPlugin } from \"../macros/attach-macro-args-plugin\";\nimport { prettyPrintHtmlPlugin } from \"../html/format\";\nimport { expandDocumentMacrosPlugin } from \"../macros/expand-document-macros-plugin\";\nimport { PluginOptions } from \"@unified-latex/unified-latex-util-parse\";\n\n// Fake TTY stream.\nconst ttyStream = Object.assign(new stream.Readable(), { isTTY: true });\n\n// Exit, lazily, with the correct exit status code.\nlet exitStatus = 0;\n\nprocess.on(\"exit\", onexit);\n\n// Handle uncaught errors, such as from unexpected async behavior.\nprocess.on(\"uncaughtException\", fail);\n\n/**\n * Start the CLI.\n *\n * @param {Options} cliConfig\n */\nexport function unifiedArgs(cliConfig: Options) {\n let config: ReturnType<typeof options>;\n let watcher: FSWatcher | undefined;\n let output: boolean | string | undefined;\n\n try {\n config = options(process.argv.slice(2), cliConfig);\n } catch (error) {\n const exception = error as Error;\n return fail(exception, true);\n }\n\n // We want to pass extra options to the processor. Because of that,\n // we remove it and replace it with one that passes in options.\n const processorOptions: PluginOptions = { macros: {}, environments: {} };\n const originalProcessor = config.processor as any;\n config.processor = () => originalProcessor(processorOptions);\n\n if (config.help) {\n process.stdout.write(\n [\n \"Usage: \" + cliConfig.name + \" [options] [path | glob ...]\",\n \"\",\n \" \" + cliConfig.description,\n \"\",\n \"Options:\",\n \"\",\n config.helpMessage,\n \"\",\n ].join(\"\\n\"),\n noop\n );\n\n return;\n }\n\n if (config.version) {\n process.stdout.write(cliConfig.version + \"\\n\", noop);\n\n return;\n }\n\n // Modify `config` for watching.\n if (config.watch) {\n output = config.output;\n\n // Do not read from stdin(4).\n config.streamIn = ttyStream;\n\n // Do not write to stdout(4).\n config.out = false;\n\n process.stderr.write(\n chalk.bold(\"Watching...\") + \" (press CTRL+C to exit)\\n\",\n noop\n );\n\n // Prevent infinite loop if set to regeneration.\n if (output === true) {\n config.output = false;\n\n process.stderr.write(\n chalk.yellow(\"Note\") + \": Ignoring `--output` until exit.\\n\",\n noop\n );\n }\n }\n\n if (config.lints) {\n for (const [lintName, lintArgs] of Object.entries(config.lints)) {\n const lint = availableLints[lintName];\n if (!lint) {\n throw new Error(\n `Could not find lint named \"${lintName}\"; available lints are ${Object.keys(\n availableLints\n ).join(\", \")}`\n );\n }\n config.plugins.push([lint, lintArgs]);\n }\n }\n\n if (config.stats) {\n config.plugins.push([statsPlugin]);\n }\n\n if (config.macro.length > 0) {\n config.plugins.push([attachMacroArgsPlugin, { macros: config.macro }]);\n }\n\n if (config.expandMacro.length > 0) {\n // We want to add parsing of these macros directly into the processor.\n // That way, if there is a name-clash with a builtin macro, the command-line\n // specified macro will take precedence.\n processorOptions.macros = Object.assign(\n processorOptions.macros || {},\n Object.fromEntries(\n config.expandMacro.map((m) => [\n m.name,\n { signature: m.signature },\n ])\n )\n );\n config.plugins.push([\n expandMacrosPlugin,\n { macros: config.expandMacro },\n ]);\n }\n\n if (config.expandDocumentMacro.length > 0) {\n config.plugins.push([\n expandDocumentMacrosPlugin,\n { macros: config.expandDocumentMacro },\n ]);\n }\n\n if (config.statsJson) {\n config.plugins.push([statsJsonPlugin]);\n }\n\n if (config.html) {\n config.plugins.push([unifiedLatexToHast]);\n config.plugins.push([prettyPrintHtmlPlugin]);\n }\n\n /**\n * Handle complete run.\n *\n * @type {EngineCallback}\n */\n const done: EngineCallback = function done(error, code, context) {\n if (error) {\n clean();\n fail(error);\n } else {\n exitStatus = code || 0;\n\n if (config.watch && !watcher && context) {\n subscribe(context);\n }\n }\n };\n\n // Clean the watcher.\n function clean() {\n if (watcher) {\n watcher.close();\n watcher = undefined;\n }\n }\n\n /**\n * Subscribe a chokidar watcher to all processed files.\n */\n function subscribe(context: EngineContext) {\n watcher = chokidar\n .watch(context.fileSet?.origins || [], {\n cwd: config.cwd != null ? \"\" + config.cwd : config.cwd,\n ignoreInitial: true,\n })\n .on(\"error\", done)\n .on(\"change\", (filePath) => {\n config.files = [filePath];\n engine(config, done);\n });\n\n process.on(\"SIGINT\", onsigint);\n\n /**\n * Handle a SIGINT.\n */\n function onsigint() {\n // Hide the `^C` in terminal.\n process.stderr.write(\"\\n\", noop);\n\n clean();\n\n // Do another process if `output` specified regeneration.\n if (output === true) {\n config.output = output;\n config.watch = false;\n engine(config, done);\n }\n }\n }\n\n // Initial run.\n engine(config, done);\n}\n\n/**\n * Print an error, optionally with stack.\n *\n * @param {Error} error\n * @param {boolean} [pretty=false]\n */\nfunction fail(error: Error, pretty?: boolean) {\n const message = String((pretty ? error : error.stack) || error);\n\n exitStatus = 1;\n\n process.stderr.write(message.trim() + \"\\n\", noop);\n}\n\nfunction onexit() {\n process.exit(exitStatus);\n}\n\nfunction noop() {}\n", "// Modified from unified-args https://github.com/unifiedjs/unified-args/blob/main/lib/index.js\n// MIT License\n\nimport table from \"text-table\";\nimport camelcase from \"camelcase\";\nimport minimist from \"minimist\";\nimport json5 from \"json5\";\nimport { fault } from \"fault\";\nimport { schema } from \"./schema\";\nimport type { Options as EngineOptions } from \"unified-engine\";\nimport type { Option } from \"./schema\";\nimport { PluggableList } from \"unified\";\nimport { availableLints } from \"../lints\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport { parseMacroExpansion } from \"../macros/parse-macro-expansion\";\n\ntype RequiredEngineOptions = Required<\n Pick<\n EngineOptions,\n | \"extensions\"\n | \"ignoreName\"\n | \"packageField\"\n | \"pluginPrefix\"\n | \"processor\"\n | \"rcName\"\n >\n>;\n\ntype ArgsOptionsFields = {\n /**\n * Name of executable\n */\n name: string;\n /**\n * description of executable\n */\n description: string;\n /**\n * Version (semver) of executable\n */\n version: string;\n};\n\nexport type Options = RequiredEngineOptions &\n Pick<EngineOptions, \"cwd\"> &\n ArgsOptionsFields;\n\nconst own = {}.hasOwnProperty;\n\n/**\n * Schema for `minimist`.\n */\nconst minischema = {\n unknown: handleUnknownArgument,\n default: {} as Record<string, string | boolean | null>,\n alias: {} as Record<string, string>,\n string: [] as string[],\n boolean: [] as string[],\n};\n\nlet index = -1;\nwhile (++index < schema.length) {\n addEach(schema[index]);\n}\n\n/**\n * Parse CLI options.\n */\nexport function options(flags: string[], configuration: Options) {\n const extension = configuration.extensions[0];\n const name = configuration.name;\n const config = toCamelCase(minimist(flags, minischema));\n let index = -1;\n\n while (++index < schema.length) {\n const option = schema[index];\n if (option.type === \"string\" && config[option.long] === \"\") {\n throw fault(\"Missing value:%s\", inspect(option).join(\" \"));\n }\n }\n\n const ext = commaSeparated(config.ext as string | string[]);\n const report = reporter(config.report as string | string[]);\n const help = [\n inspectAll(schema),\n \"\",\n \"Examples:\",\n \"\",\n \" # Process `input.\" + extension + \"`\",\n \" $ \" + name + \" input.\" + extension + \" -o output.\" + extension,\n \"\",\n \" # Pipe\",\n \" $ \" + name + \" < input.\" + extension + \" > output.\" + extension,\n \"\",\n \" # Rewrite all applicable files\",\n \" $ \" + name + \" . -o\",\n \"\",\n \" # Lint files and display the lint output (but not the processed file)\",\n \" $ \" + name + \" . --lint-all --no-stdout\",\n ].join(\"\\n\");\n\n const settings = parseSettings(config.setting as string);\n\n if (config.html && config.statsJson) {\n throw new Error(\n \"Both --html and --stats-json were specified; only one may be used at a time.\"\n );\n }\n\n return {\n helpMessage: help,\n cwd: configuration.cwd,\n processor: configuration.processor,\n help: config.help,\n version: config.version,\n // XXX I have no idea why `minimist` is not assigning unknown arguments to \"_\"\n // but it appears unknown arguments are being assigned to \"\" instead...\n files: config._ || config[\"\"],\n filePath: config.filePath,\n watch: config.watch,\n extensions: ext.length === 0 ? configuration.extensions : ext,\n output: config.output,\n out: config.stdout,\n tree: config.tree,\n treeIn: config.treeIn,\n treeOut: config.treeOut,\n inspect: config.inspect,\n rcName: configuration.rcName,\n packageField: configuration.packageField,\n rcPath: config.rcPath,\n detectConfig: config.config,\n settings,\n ignoreName: configuration.ignoreName,\n ignorePath: config.ignorePath,\n ignorePathResolveFrom: config.ignorePathResolveFrom,\n ignorePatterns: commaSeparated(config.ignorePattern as string),\n silentlyIgnore: config.silentlyIgnore,\n detectIgnore: config.ignore,\n pluginPrefix: configuration.pluginPrefix,\n plugins: [],\n lints: normalizeLints(config.lint as string | string[], config),\n reporter: report[0],\n reporterOptions: report[1],\n color: config.color,\n silent: config.silent,\n quiet: config.quiet,\n frail: config.frail,\n stats: config.stats,\n statsJson: config.statsJson,\n expandMacro: normalizeToArray(config.expandMacro as string).map(\n parseMacroExpansion\n ),\n expandDocumentMacro: normalizeToArray(\n config.expandDocumentMacro as string\n ),\n macro: normalizeToArray(config.macro as string).map(\n parseMacroExpansion\n ),\n html: config.html,\n } as EngineOptions & {\n help: boolean;\n helpMessage: string;\n watch: boolean;\n version: boolean;\n lints: Record<string, Record<string, unknown> | undefined>;\n plugins: PluggableList;\n stats: boolean;\n statsJson: boolean;\n expandMacro: { name: string; signature: string; body: Ast.Node[] }[];\n expandDocumentMacro: string[];\n macro: { name: string; signature: string }[];\n html: boolean;\n };\n}\n\nfunction addEach(option: Option) {\n const value = option.default;\n\n minischema.default[option.long] = value === undefined ? null : value;\n\n if (option.type && option.type in minischema) {\n minischema[option.type].push(option.long);\n }\n\n if (option.short) {\n minischema.alias[option.short] = option.long;\n }\n}\n\n/**\n * Parse `extensions`.\n */\nfunction commaSeparated(value: string[] | string | null | undefined): string[] {\n return normalizeToArray(value).flatMap((d) => splitOnComma(d));\n}\n\n/**\n * Parse `plugins`.\n */\nfunction plugins(value: string[] | string | null | undefined) {\n const normalized = normalizeToArray(value).map(splitOnEquals);\n let index = -1;\n const result: Record<string, Record<string, unknown> | undefined> = {};\n\n while (++index < normalized.length) {\n const value = normalized[index];\n result[value[0]] = value[1] ? parseConfig(value[1], {}) : undefined;\n }\n\n return result;\n}\n\n/**\n * Normalize the specified lints\n */\nfunction normalizeLints(\n value: string[] | string | null | undefined,\n config: Record<\"lintAll\" | \"fixAll\", unknown>\n) {\n const normalized = normalizeToArray(value).map(splitOnEquals);\n validateLintNames(normalized);\n if (config.lintAll) {\n normalized.push(...Object.keys(availableLints).map((v) => [v]));\n }\n\n const result: Record<string, Record<string, unknown> | undefined> =\n Object.fromEntries(\n normalized.map((value) => {\n let params = value[1] ? parseConfig(value[1], {}) : undefined;\n if (config.fixAll) {\n if (params) {\n Object.assign(params, { fix: true });\n } else {\n params = { fix: true };\n }\n }\n return [value[0], params];\n })\n );\n\n return result;\n}\n\n/**\n * Parse `reporter`: only one is accepted.\n */\nfunction reporter(value: string[] | string | null | undefined) {\n const all = normalizeToArray(value)\n .map(splitOnEquals)\n .map((value) => [\n value[0],\n value[1] ? parseConfig(value[1], {}) : undefined,\n ]);\n\n return all[all.length - 1] || [];\n}\n\n/**\n * Parse `settings`.\n */\nfunction parseSettings(\n value: string[] | string | null | undefined\n): Record<string, unknown> {\n const normalized = normalizeToArray(value);\n const cache: Record<string, unknown> = {};\n\n for (const value of normalized) {\n parseConfig(value, cache);\n }\n\n return cache;\n}\n\n/**\n * Parse configuration.\n */\nfunction parseConfig(\n value: string,\n cache: Record<string, unknown>\n): Record<string, unknown> {\n let flags: Record<string, unknown>;\n let flag: string;\n\n try {\n flags = toCamelCase(parseJSON(value));\n } catch (error) {\n const exception = error as Error;\n throw fault(\n \"Cannot parse `%s` as JSON: %s\",\n value,\n // Fix position\n exception.message.replace(/at(?= position)/, \"around\")\n );\n }\n\n for (flag in flags) {\n if (own.call(flags, flag)) {\n cache[flag] = flags[flag];\n }\n }\n\n return cache;\n}\n/**\n * Handle an unknown flag.\n */\nfunction validateLintNames(lints: string[][]): boolean {\n for (const lint of lints) {\n const name = lint[0];\n if (!availableLints[name]) {\n const known = Object.keys(availableLints);\n throw fault(\n \"Unknown lint rule `%s`, available rules are:\\n%s\",\n name,\n \"\\t\" + known.join(\"\\n\\t\")\n );\n }\n }\n\n return true;\n}\n\n/**\n * Handle an unknown flag.\n */\nfunction handleUnknownArgument(flag: string): boolean {\n // Not a glob.\n if (flag.charAt(0) === \"-\") {\n // Long options, always unknown.\n if (flag.charAt(1) === \"-\") {\n throw fault(\n \"Unknown option `%s`, expected:\\n%s\",\n flag,\n inspectAll(schema)\n );\n }\n\n // Short options, can be grouped.\n const found = flag.slice(1).split(\"\");\n const known = schema.filter((d) => d.short);\n const knownKeys = new Set(known.map((d) => d.short));\n let index = -1;\n\n while (++index < found.length) {\n const key = found[index];\n if (!knownKeys.has(key)) {\n throw fault(\n \"Unknown short option `-%s`, expected:\\n%s\",\n key,\n inspectAll(known)\n );\n }\n }\n }\n\n return true;\n}\n\n/**\n * Inspect all `options`.\n */\nfunction inspectAll(options: Option[]): string {\n return table(options.map((d) => inspect(d)));\n}\n\n/**\n * Inspect one `option`.\n */\nfunction inspect(option: Option): string[] {\n let description = option.description;\n let long = option.long;\n\n if (option.default === true || option.truelike) {\n description += \" (on by default)\";\n long = \"[no-]\" + long;\n }\n\n return [\n \"\",\n option.short ? \"-\" + option.short : \"\",\n \"--\" + long + (option.value ? \" \" + option.value : \"\"),\n description,\n ];\n}\n\n/**\n * Normalize `value`.\n */\nfunction normalizeToArray(\n value: string | string[] | null | undefined\n): string[] {\n if (!value) {\n return [];\n }\n\n if (typeof value === \"string\") {\n return [value];\n }\n\n return value;\n}\n\nfunction splitOnEquals(value: string) {\n return value.split(\"=\");\n}\n\nfunction splitOnComma(value: string) {\n return value.split(\",\");\n}\n\n/**\n * Transform the keys on an object to camel-case, recursively.\n */\nfunction toCamelCase(object: Record<string, unknown>): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n let key: string;\n\n for (key in object) {\n if (own.call(object, key)) {\n let value = object[key];\n\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n // @ts-expect-error: looks like an object.\n value = toCamelCase(value);\n }\n\n result[camelcase(key)] = value;\n }\n }\n\n return result;\n}\n\n/**\n * Parse a (lazy?) JSON config.\n */\nfunction parseJSON(value: string): Record<string, unknown> {\n return json5.parse(\"{\" + value + \"}\");\n}\n", "import { lints } from \"@unified-latex/unified-latex-lint\";\n\nexport const availableLints = Object.fromEntries(\n Object.values(lints).map((lint) => [\n lint.name.replace(/^unified-latex-lint:/, \"\"),\n lint,\n ])\n);\n", "// Modified from unified-args https://github.com/unifiedjs/unified-args/blob/main/lib/index.js\n// MIT License\n\nimport { availableLints } from \"../lints\";\n\nexport type Option = {\n long: string;\n description: string;\n value?: string;\n short?: string;\n default?: string | boolean;\n truelike?: boolean;\n type?: \"boolean\" | \"string\";\n};\n\nexport const schema: Option[] = [\n {\n long: \"help\",\n description: \"Output usage information\",\n short: \"h\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"version\",\n description: \"Output version number\",\n short: \"v\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"output\",\n description: \"Specify output location\",\n short: \"o\",\n value: \"[path]\",\n },\n {\n long: \"rc-path\",\n description: \"Specify configuration file\",\n short: \"r\",\n type: \"string\",\n value: \"<path>\",\n },\n {\n long: \"ignore-path\",\n description: \"Specify ignore file\",\n short: \"i\",\n type: \"string\",\n value: \"<path>\",\n },\n {\n long: \"ext\",\n description: \"Specify extensions\",\n type: \"string\",\n value: \"<extensions>\",\n },\n {\n long: \"lint\",\n description: `Lint rules to apply. Use multiple times to specify multiple lints. Available rules: ${Object.keys(\n availableLints\n ).join(\", \")}`,\n short: \"l\",\n type: \"string\",\n value: \"<rule>\",\n },\n {\n long: \"lint-all\",\n description: `Apply all available lint rules`,\n type: \"boolean\",\n default: false,\n },\n {\n long: \"fix-all\",\n description: \"Apply fixes for all applied lints\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"watch\",\n description: \"Watch for changes and reprocess\",\n short: \"w\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"macro\",\n description:\n \"Attach arguments of the specified macro (by default, unrecognized macros are parsed as having no arguments). Accepts a string of the form `\\\\newcommand{<name>}[<num args>]{<body>}` or a JSON string `{name: <name>, signature: <xparse argument signature>, body: <macro body>}`\",\n short: \"m\",\n type: \"string\",\n value: \"<rule>\",\n },\n {\n long: \"expand-macro\",\n description:\n \"Expand the specified macro. Accepts a string of the form `\\\\newcommand{<name>}[<num args>]{<body>}` or a JSON string `{name: <name>, signature: <xparse argument signature>, body: <macro body>}`\",\n short: \"e\",\n type: \"string\",\n value: \"<rule>\",\n },\n {\n long: \"expand-document-macro\",\n description:\n \"Expand the specified macro which is defined in the document. You can use --stats to list all macros defined in the document.\",\n short: \"d\",\n type: \"string\",\n value: \"<name>\"\n },\n {\n long: \"frail\",\n description: \"Exit with 1 on warnings\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"tree\",\n description: \"Specify input and output as syntax tree\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"report\",\n description: \"Specify reporter\",\n type: \"string\",\n value: \"<reporter>\",\n },\n {\n long: \"file-path\",\n description: \"Specify path to process as\",\n type: \"string\",\n value: \"<path>\",\n },\n {\n long: \"ignore-path-resolve-from\",\n description:\n \"Resolve patterns in `ignore-path` from its directory or cwd\",\n type: \"string\",\n value: \"dir|cwd\",\n default: \"dir\",\n },\n {\n long: \"ignore-pattern\",\n description: \"Specify ignore patterns\",\n type: \"string\",\n value: \"<globs>\",\n },\n {\n long: \"silently-ignore\",\n description: \"Do not fail when given ignored files\",\n type: \"boolean\",\n },\n {\n long: \"tree-in\",\n description: \"Specify input as syntax tree\",\n type: \"boolean\",\n },\n {\n long: \"tree-out\",\n description: \"Output syntax tree\",\n type: \"boolean\",\n },\n {\n long: \"inspect\",\n description: \"Output formatted syntax tree\",\n type: \"boolean\",\n },\n {\n long: \"stats\",\n description: \"Show information about the processed file\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"stats-json\",\n description:\n \"Show information about the processed file and output the information as JSON\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"html\",\n description:\n \"Convert the output to HTML. Note, for math to render properly, you will need to add a library like MathJax or KaTeX to your HTMl source; you should also expand/replace any macros not recognized by the converter\",\n type: \"boolean\",\n default: false,\n },\n {\n long: \"stdout\",\n description: \"[Don't] write the processed file's contents to stdout\",\n type: \"boolean\",\n truelike: true,\n },\n {\n long: \"color\",\n description: \"Specify color in report\",\n type: \"boolean\",\n default: true,\n },\n {\n long: \"config\",\n description: \"Search for configuration files\",\n type: \"boolean\",\n default: true,\n },\n {\n long: \"ignore\",\n description: \"Search for ignore files\",\n type: \"boolean\",\n default: true,\n },\n];\n", "import json5 from \"json5\";\nimport * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n newcommandMacroToName,\n newcommandMacroToSpec,\n newcommandMacroToSubstitutionAst,\n} from \"@unified-latex/unified-latex-util-macros\";\nimport { parse } from \"@unified-latex/unified-latex-util-parse\";\n\n/**\n * Parse a macro specification given on the command line as either a \"\\newcommand\" string\n * or a JSON object specifying `name`, `signature`, and `body`.\n */\nexport function parseMacroExpansion(def: string): {\n name: string;\n signature: string;\n body: Ast.Node[];\n} {\n if (def.startsWith(\"\\\\\")) {\n const macro = parse(def).content[0] as Ast.Macro;\n const name = newcommandMacroToName(macro);\n if (!name) {\n // If there was no name specified, it must not have been a `\\newcommand` or other recognized macro\n throw new Error(\n `Could extract macro definition from \"${def}\"; expected the macro to be defined via \\\\newcommand or similar syntax`\n );\n }\n const signature = newcommandMacroToSpec(macro);\n const body = newcommandMacroToSubstitutionAst(macro);\n\n return { name, signature, body };\n }\n // If it wasn't specified via a `\\newcommand` macro, assume it's specified as JSON\n const parsedSpec = json5.parse(def);\n if (parsedSpec.name == null || parsedSpec.body == null) {\n throw new Error(\n `Expected a \"name\" field and a \"body\" field to be defined on ${def}`\n );\n }\n parsedSpec.signature = parsedSpec.signature || \"\";\n\n return {\n name: parsedSpec.name,\n signature: parsedSpec.signature,\n body: parse(parsedSpec.body).content,\n };\n}\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport { listPackages } from \"@unified-latex/unified-latex-util-packages\";\nimport { listNewcommands } from \"@unified-latex/unified-latex-util-macros\";\nimport { printRaw } from \"@unified-latex/unified-latex-util-print-raw\";\nimport { Plugin } from \"unified\";\nimport { enclosingPosition } from \"./enclosing-position\";\n\n/**\n * Plugin that reports statistics on the contents of LaTeX files.\n */\nexport const statsPlugin: Plugin<void[], Ast.Root, Ast.Root> = function () {\n return (tree, file) => {\n const packages = listPackages(tree);\n const packageNames = packages.map((s) => printRaw(s));\n if (packages.length > 0) {\n file.info(\n `Found ${\n packages.length\n } imported packages: ${packageNames.join(\", \")}`\n );\n }\n\n const newcommands = listNewcommands(tree);\n if (newcommands.length > 0) {\n file.info(\n `Found ${newcommands.length} defined commands: ${newcommands\n .map((c) => `\\\\${c.name}`)\n .join(\", \")}`,\n enclosingPosition(newcommands.map((c) => c.definition))\n );\n }\n };\n};\n\n/**\n * Plugin that reports statistics on the contents of LaTeX files and replaces the file output with a JSON\n * representation of the statistics.\n */\nexport const statsJsonPlugin: Plugin<void[], Ast.Root, string> = function () {\n this.Compiler = (tree, file) => {\n file.extname = \".json\";\n file.basename += \"-stats\";\n\n const packages = listPackages(tree).map((s) => printRaw(s));\n const newcommands = listNewcommands(tree).map((c) => ({\n name: c.name,\n signature: c.signature,\n body: printRaw(c.body),\n definition: printRaw(c.definition),\n }));\n\n return JSON.stringify({ packages, newcommands }, null, 4) + \"\\n\";\n };\n};\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\n\ntype Position = { line: number; column: number; offset: number };\n\n/**\n * Find the smallest `position` object that contains all `nodes`.\n */\nexport function enclosingPosition(nodes: Ast.Node[]): {\n start: Position;\n end: Position;\n} {\n let start: Position = { line: 1, column: 1, offset: 0 };\n let end: Position = { line: 1, column: 1, offset: 0 };\n\n for (const node of nodes) {\n if (Number(node.position?.start.offset) < Number(start.offset)) {\n start = node.position?.start as Position;\n }\n if (Number(node.position?.end.offset) > Number(end.offset)) {\n end = node.position?.end as Position;\n }\n }\n\n return { start, end };\n}\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n expandMacros,\n expandMacrosExcludingDefinitions,\n} from \"@unified-latex/unified-latex-util-macros\";\nimport { Plugin } from \"unified\";\nimport { attachMacroArgs } from \"@unified-latex/unified-latex-util-arguments\";\n\ntype PluginOptions = {\n macros: { name: string; signature: string; body: Ast.Node[] }[];\n};\n\n/**\n * Plugin that expands the specified macros.\n */\nexport const expandMacrosPlugin: Plugin<PluginOptions[], Ast.Root, Ast.Root> =\n function (options) {\n const { macros = [] } = options || {};\n const macroInfo = Object.fromEntries(\n macros.map((m) => [m.name, { signature: m.signature }])\n );\n return (tree) => {\n // We need to attach the arguments to each macro before we process it!\n attachMacroArgs(tree, macroInfo);\n expandMacros(tree, macros);\n };\n };\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport { Plugin } from \"unified\";\nimport { attachMacroArgs } from \"@unified-latex/unified-latex-util-arguments\";\n\ntype PluginOptions = {\n macros: { name: string; signature: string }[];\n};\n\n/**\n * Plugin that attaches the arguments of the specified macros.\n */\nexport const attachMacroArgsPlugin: Plugin<\n PluginOptions[],\n Ast.Root,\n Ast.Root\n> = function (options) {\n const { macros = [] } = options || {};\n const macroInfo = Object.fromEntries(\n macros.map((m) => [m.name, { signature: m.signature }])\n );\n return (tree) => {\n // We need to attach the arguments to each macro before we process it!\n attachMacroArgs(tree, macroInfo);\n };\n};\n", "import { Root } from \"hastscript/lib/core\";\nimport rehypeStringify from \"rehype-stringify\";\nimport Prettier from \"prettier\";\nimport { Plugin, unified } from \"unified\";\n\n/**\n * Plugin that pretty-prints HTML.\n */\nexport const prettyPrintHtmlPlugin: Plugin<void[], Root, string> = function () {\n const processor = unified().use(rehypeStringify);\n this.Compiler = (tree, file) => {\n file.extname = \".html\";\n\n const html = processor.stringify(tree, file);\n try {\n return Prettier.format(html, { parser: \"html\", useTabs: true });\n } catch {}\n return html;\n };\n};\n", "import * as Ast from \"@unified-latex/unified-latex-types\";\nimport {\n expandMacros,\n expandMacrosExcludingDefinitions,\n listNewcommands,\n} from \"@unified-latex/unified-latex-util-macros\";\nimport { Plugin } from \"unified\";\nimport { attachMacroArgs } from \"@unified-latex/unified-latex-util-arguments\";\n\ntype PluginOptions = {\n macros?: string[];\n};\n\n/**\n * Plugin that expands the specified macros by name. These macros must be defined in the document via\n * `\\newcommand...` or equivalent.\n */\nexport const expandDocumentMacrosPlugin: Plugin<\n PluginOptions[],\n Ast.Root,\n Ast.Root\n> = function (options) {\n const { macros = [] } = options || {};\n const macrosSet = new Set(macros);\n\n return (tree) => {\n const newcommands = listNewcommands(tree);\n const macros = newcommands.filter((s) => macrosSet.has(s.name));\n\n const macroInfo = Object.fromEntries(\n macros.map((m) => [m.name, { signature: m.signature }])\n );\n // We need to attach the arguments to each macro before we process it!\n attachMacroArgs(tree, macroInfo);\n expandMacrosExcludingDefinitions(tree, macros);\n };\n};\n", "import { processLatexViaUnified } from \"./libs/unified-latex\";\nimport { unifiedArgs } from \"./libs/unified-args\";\nimport fs from \"node:fs\";\n\nlet version = \"unknown (could not read version from package.json)\";\ntry {\n // Read the version dynamically on startup\n type PackageJson = { version: string };\n const packageJson: PackageJson = JSON.parse(\n fs.readFileSync(new URL(\"./package.json\", import.meta.url), {\n encoding: \"utf8\",\n })\n );\n version = packageJson.version;\n} catch {}\n\nunifiedArgs({\n processor: processLatexViaUnified,\n name: \"unified-latex\",\n description: \"LaTeX processor powered by unified-latex\",\n version,\n extensions: [\"tex\"],\n ignoreName: \".unifiedlatexignore\",\n packageField: \"unifiedLatexConfig\",\n rcName: \".unifiedlatexrc\",\n pluginPrefix: \"@unified-latex/\",\n});\n\n// NOTE: The docstring comment must be the last item in the index.ts file!\n/**\n * ## What is this?\n *\n * Command line interface to common `unified-latex` functions.\n *\n * ## When should I use this?\n *\n * If you want to reformat, process, or gather statistic on LaTeX files from the command line.\n *\n * ## Examples\n *\n * Reformat and pretty-print a file\n *\n * ```bash\n * unified-latex input.tex -o output.tex\n * ```\n *\n * List all commands defined via `\\newcommand` and friends (and hide the file output).\n *\n * ```bash\n * unified-latex input.tex --no-stdout --stats\n * ```\n *\n * Expand the definition of the macro `\\foo{...}`, which takes one argument.\n *\n * ```bash\n * unified-latex input.tex -e \"\\\\newcommand{foo}[1]{FOO(#1)}\"\n * ```\n *\n * View the parsed AST.\n *\n * ```bash\n * unified-latex input.tex --inspect\n * ```\n *\n * Convert the file to HTML. (Note, you will need to include and configure a library like _MathJax_ or _KaTeX_ to render\n * any math in the resulting HTML. Warnings are provided for macros that aren't recognized by the converter.)\n *\n * ```bash\n * unified-latex input.tex -o output.html --html\n * ```\n *\n * Lint all tex files in the current directory and watch for changes.\n *\n * ```bash\n * unified-latex . --no-stdout --lint-all --watch\n * ```\n */\n"],
5
- "mappings": "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",
5
+ "mappings": ";;;;AAAA,SAAS,eAAe;AAExB;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,OAEG;AAIA,IAAM,yBAAyB,CAClCA,aACC;AACD,SAAO,QAAQ,EACV;AAAA,IACG;AAAA,IACA,OAAO,OAAO,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAGA,QAAO;AAAA,EAC3D,EACC;AAAA,IACG;AAAA,IACA,OAAO,OAAO,EAAE,QAAQ,MAAM,oBAAoB,KAAK,GAAGA,QAAO;AAAA,EACrE;AACR;;;ACtBA,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,WAAW;AAClB,OAAO,cAA6B;AACpC;AAAA,EACI;AAAA,OAGG;AACP,SAAS,0BAA0B;;;ACTnC,OAAO,WAAW;AAClB,OAAO,eAAe;AACtB,OAAO,cAAc;AACrB,OAAOC,YAAW;AAClB,SAAS,aAAa;;;ACPtB,SAAS,aAAa;AAEf,IAAM,iBAAiB,OAAO;AAAA,EACjC,OAAO,OAAO,KAAK,EAAE,IAAI,CAAC,SAAS;AAAA,IAC/B,KAAK,KAAK,QAAQ,wBAAwB,EAAE;AAAA,IAC5C;AAAA,EACJ,CAAC;AACL;;;ACQO,IAAM,SAAmB;AAAA,EAC5B;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa,uFAAuF,OAAO;AAAA,MACvG;AAAA,IACJ,EAAE,KAAK,IAAI,CAAC;AAAA,IACZ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aACI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aACI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aACI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aACI;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aACI;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aACI;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;;;AClNA,OAAO,WAAW;AAElB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,aAAa;AAMf,SAAS,oBAAoB,KAIlC;AACE,MAAI,IAAI,WAAW,IAAI,GAAG;AACtB,UAAM,QAAQ,MAAM,GAAG,EAAE,QAAQ,CAAC;AAClC,UAAM,OAAO,sBAAsB,KAAK;AACxC,QAAI,CAAC,MAAM;AAEP,YAAM,IAAI;AAAA,QACN,wCAAwC,GAAG;AAAA,MAC/C;AAAA,IACJ;AACA,UAAM,YAAY,sBAAsB,KAAK;AAC7C,UAAM,OAAO,iCAAiC,KAAK;AAEnD,WAAO,EAAE,MAAM,WAAW,KAAK;AAAA,EACnC;AAEA,QAAM,aAAa,MAAM,MAAM,GAAG;AAClC,MAAI,WAAW,QAAQ,QAAQ,WAAW,QAAQ,MAAM;AACpD,UAAM,IAAI;AAAA,MACN,+DAA+D,GAAG;AAAA,IACtE;AAAA,EACJ;AACA,aAAW,YAAY,WAAW,aAAa;AAE/C,SAAO;AAAA,IACH,MAAM,WAAW;AAAA,IACjB,WAAW,WAAW;AAAA,IACtB,MAAM,MAAM,WAAW,IAAI,EAAE;AAAA,EACjC;AACJ;;;AHCA,IAAM,MAAM,CAAC,EAAE;AAKf,IAAM,aAAa;AAAA,EACf,SAAS;AAAA,EACT,SAAS,CAAC;AAAA,EACV,OAAO,CAAC;AAAA,EACR,QAAQ,CAAC;AAAA,EACT,SAAS,CAAC;AACd;AAEA,IAAI,QAAQ;AACZ,OAAO,EAAE,QAAQ,OAAO,QAAQ;AAC5B,UAAQ,OAAO,KAAK,CAAC;AACzB;AAKO,SAAS,QAAQ,OAAiB,eAAwB;AAC7D,QAAM,YAAY,cAAc,WAAW,CAAC;AAC5C,QAAM,OAAO,cAAc;AAC3B,QAAM,SAAS,YAAY,SAAS,OAAO,UAAU,CAAC;AACtD,MAAIC,SAAQ;AAEZ,SAAO,EAAEA,SAAQ,OAAO,QAAQ;AAC5B,UAAM,SAAS,OAAOA,MAAK;AAC3B,QAAI,OAAO,SAAS,YAAY,OAAO,OAAO,IAAI,MAAM,IAAI;AACxD,YAAM,MAAM,oBAAoB,QAAQ,MAAM,EAAE,KAAK,GAAG,CAAC;AAAA,IAC7D;AAAA,EACJ;AAEA,QAAM,MAAM,eAAe,OAAO,GAAwB;AAC1D,QAAM,SAAS,SAAS,OAAO,MAA2B;AAC1D,QAAM,OAAO;AAAA,IACT,WAAW,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB,YAAY;AAAA,IACpC,SAAS,OAAO,YAAY,YAAY,gBAAgB;AAAA,IACxD;AAAA,IACA;AAAA,IACA,SAAS,OAAO,cAAc,YAAY,eAAe;AAAA,IACzD;AAAA,IACA;AAAA,IACA,SAAS,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA,SAAS,OAAO;AAAA,EACpB,EAAE,KAAK,IAAI;AAEX,QAAM,WAAW,cAAc,OAAO,OAAiB;AAEvD,MAAI,OAAO,QAAQ,OAAO,WAAW;AACjC,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,aAAa;AAAA,IACb,KAAK,cAAc;AAAA,IACnB,WAAW,cAAc;AAAA,IACzB,MAAM,OAAO;AAAA,IACb,SAAS,OAAO;AAAA;AAAA;AAAA,IAGhB,OAAO,OAAO,KAAK,OAAO,EAAE;AAAA,IAC5B,UAAU,OAAO;AAAA,IACjB,OAAO,OAAO;AAAA,IACd,YAAY,IAAI,WAAW,IAAI,cAAc,aAAa;AAAA,IAC1D,QAAQ,OAAO;AAAA,IACf,KAAK,OAAO;AAAA,IACZ,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO;AAAA,IACf,SAAS,OAAO;AAAA,IAChB,SAAS,OAAO;AAAA,IAChB,QAAQ,cAAc;AAAA,IACtB,cAAc,cAAc;AAAA,IAC5B,QAAQ,OAAO;AAAA,IACf,cAAc,OAAO;AAAA,IACrB;AAAA,IACA,YAAY,cAAc;AAAA,IAC1B,YAAY,OAAO;AAAA,IACnB,uBAAuB,OAAO;AAAA,IAC9B,gBAAgB,eAAe,OAAO,aAAuB;AAAA,IAC7D,gBAAgB,OAAO;AAAA,IACvB,cAAc,OAAO;AAAA,IACrB,cAAc,cAAc;AAAA,IAC5B,SAAS,CAAC;AAAA,IACV,OAAO,eAAe,OAAO,MAA2B,MAAM;AAAA,IAC9D,UAAU,OAAO,CAAC;AAAA,IAClB,iBAAiB,OAAO,CAAC;AAAA,IACzB,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,IACf,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,IAClB,aAAa,iBAAiB,OAAO,WAAqB,EAAE;AAAA,MACxD;AAAA,IACJ;AAAA,IACA,qBAAqB;AAAA,MACjB,OAAO;AAAA,IACX;AAAA,IACA,OAAO,iBAAiB,OAAO,KAAe,EAAE;AAAA,MAC5C;AAAA,IACJ;AAAA,IACA,MAAM,OAAO;AAAA,EACjB;AAcJ;AAEA,SAAS,QAAQ,QAAgB;AAC7B,QAAM,QAAQ,OAAO;AAErB,aAAW,QAAQ,OAAO,IAAI,IAAI,UAAU,SAAY,OAAO;AAE/D,MAAI,OAAO,QAAQ,OAAO,QAAQ,YAAY;AAC1C,eAAW,OAAO,IAAI,EAAE,KAAK,OAAO,IAAI;AAAA,EAC5C;AAEA,MAAI,OAAO,OAAO;AACd,eAAW,MAAM,OAAO,KAAK,IAAI,OAAO;AAAA,EAC5C;AACJ;AAKA,SAAS,eAAe,OAAuD;AAC3E,SAAO,iBAAiB,KAAK,EAAE,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;AACjE;AAqBA,SAAS,eACL,OACA,QACF;AACE,QAAM,aAAa,iBAAiB,KAAK,EAAE,IAAI,aAAa;AAC5D,oBAAkB,UAAU;AAC5B,MAAI,OAAO,SAAS;AAChB,eAAW,KAAK,GAAG,OAAO,KAAK,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAAA,EAClE;AAEA,QAAM,SACF,OAAO;AAAA,IACH,WAAW,IAAI,CAACC,WAAU;AACtB,UAAI,SAASA,OAAM,CAAC,IAAI,YAAYA,OAAM,CAAC,GAAG,CAAC,CAAC,IAAI;AACpD,UAAI,OAAO,QAAQ;AACf,YAAI,QAAQ;AACR,iBAAO,OAAO,QAAQ,EAAE,KAAK,KAAK,CAAC;AAAA,QACvC,OAAO;AACH,mBAAS,EAAE,KAAK,KAAK;AAAA,QACzB;AAAA,MACJ;AACA,aAAO,CAACA,OAAM,CAAC,GAAG,MAAM;AAAA,IAC5B,CAAC;AAAA,EACL;AAEJ,SAAO;AACX;AAKA,SAAS,SAAS,OAA6C;AAC3D,QAAM,MAAM,iBAAiB,KAAK,EAC7B,IAAI,aAAa,EACjB,IAAI,CAACA,WAAU;AAAA,IACZA,OAAM,CAAC;AAAA,IACPA,OAAM,CAAC,IAAI,YAAYA,OAAM,CAAC,GAAG,CAAC,CAAC,IAAI;AAAA,EAC3C,CAAC;AAEL,SAAO,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC;AACnC;AAKA,SAAS,cACL,OACuB;AACvB,QAAM,aAAa,iBAAiB,KAAK;AACzC,QAAM,QAAiC,CAAC;AAExC,aAAWA,UAAS,YAAY;AAC5B,gBAAYA,QAAO,KAAK;AAAA,EAC5B;AAEA,SAAO;AACX;AAKA,SAAS,YACL,OACA,OACuB;AACvB,MAAI;AACJ,MAAI;AAEJ,MAAI;AACA,YAAQ,YAAY,UAAU,KAAK,CAAC;AAAA,EACxC,SAAS,OAAO;AACZ,UAAM,YAAY;AAClB,UAAM;AAAA,MACF;AAAA,MACA;AAAA;AAAA,MAEA,UAAU,QAAQ,QAAQ,mBAAmB,QAAQ;AAAA,IACzD;AAAA,EACJ;AAEA,OAAK,QAAQ,OAAO;AAChB,QAAI,IAAI,KAAK,OAAO,IAAI,GAAG;AACvB,YAAM,IAAI,IAAI,MAAM,IAAI;AAAA,IAC5B;AAAA,EACJ;AAEA,SAAO;AACX;AAIA,SAAS,kBAAkBC,QAA4B;AACnD,aAAW,QAAQA,QAAO;AACtB,UAAM,OAAO,KAAK,CAAC;AACnB,QAAI,CAAC,eAAe,IAAI,GAAG;AACvB,YAAM,QAAQ,OAAO,KAAK,cAAc;AACxC,YAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA,MAAO,MAAM,KAAK,KAAM;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;AAKA,SAAS,sBAAsB,MAAuB;AAElD,MAAI,KAAK,OAAO,CAAC,MAAM,KAAK;AAExB,QAAI,KAAK,OAAO,CAAC,MAAM,KAAK;AACxB,YAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA,WAAW,MAAM;AAAA,MACrB;AAAA,IACJ;AAGA,UAAM,QAAQ,KAAK,MAAM,CAAC,EAAE,MAAM,EAAE;AACpC,UAAM,QAAQ,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK;AAC1C,UAAM,YAAY,IAAI,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AACnD,QAAIC,SAAQ;AAEZ,WAAO,EAAEA,SAAQ,MAAM,QAAQ;AAC3B,YAAM,MAAM,MAAMA,MAAK;AACvB,UAAI,CAAC,UAAU,IAAI,GAAG,GAAG;AACrB,cAAM;AAAA,UACF;AAAA,UACA;AAAA,UACA,WAAW,KAAK;AAAA,QACpB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;AAKA,SAAS,WAAWC,UAA2B;AAC3C,SAAO,MAAMA,SAAQ,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC;AAC/C;AAKA,SAAS,QAAQ,QAA0B;AACvC,MAAI,cAAc,OAAO;AACzB,MAAI,OAAO,OAAO;AAElB,MAAI,OAAO,YAAY,QAAQ,OAAO,UAAU;AAC5C,mBAAe;AACf,WAAO,UAAU;AAAA,EACrB;AAEA,SAAO;AAAA,IACH;AAAA,IACA,OAAO,QAAQ,MAAM,OAAO,QAAQ;AAAA,IACpC,OAAO,QAAQ,OAAO,QAAQ,MAAM,OAAO,QAAQ;AAAA,IACnD;AAAA,EACJ;AACJ;AAKA,SAAS,iBACL,OACQ;AACR,MAAI,CAAC,OAAO;AACR,WAAO,CAAC;AAAA,EACZ;AAEA,MAAI,OAAO,UAAU,UAAU;AAC3B,WAAO,CAAC,KAAK;AAAA,EACjB;AAEA,SAAO;AACX;AAEA,SAAS,cAAc,OAAe;AAClC,SAAO,MAAM,MAAM,GAAG;AAC1B;AAEA,SAAS,aAAa,OAAe;AACjC,SAAO,MAAM,MAAM,GAAG;AAC1B;AAKA,SAAS,YAAY,QAA0D;AAC3E,QAAM,SAAkC,CAAC;AACzC,MAAI;AAEJ,OAAK,OAAO,QAAQ;AAChB,QAAI,IAAI,KAAK,QAAQ,GAAG,GAAG;AACvB,UAAI,QAAQ,OAAO,GAAG;AAEtB,UAAI,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAG;AAE7D,gBAAQ,YAAY,KAAK;AAAA,MAC7B;AAEA,aAAO,UAAU,GAAG,CAAC,IAAI;AAAA,IAC7B;AAAA,EACJ;AAEA,SAAO;AACX;AAKA,SAAS,UAAU,OAAwC;AACvD,SAAOC,OAAM,MAAM,MAAM,QAAQ,GAAG;AACxC;;;AIrbA,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,SAAS,gBAAgB;;;ACIlB,SAAS,kBAAkB,OAGhC;AAVF;AAWI,MAAI,QAAkB,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE;AACtD,MAAI,MAAgB,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAEpD,aAAW,QAAQ,OAAO;AACtB,QAAI,QAAO,UAAK,aAAL,mBAAe,MAAM,MAAM,IAAI,OAAO,MAAM,MAAM,GAAG;AAC5D,eAAQ,UAAK,aAAL,mBAAe;AAAA,IAC3B;AACA,QAAI,QAAO,UAAK,aAAL,mBAAe,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,GAAG;AACxD,aAAM,UAAK,aAAL,mBAAe;AAAA,IACzB;AAAA,EACJ;AAEA,SAAO,EAAE,OAAO,IAAI;AACxB;;;ADdO,IAAM,cAAkD,WAAY;AACvE,SAAO,CAAC,MAAM,SAAS;AACnB,UAAM,WAAW,aAAa,IAAI;AAClC,UAAM,eAAe,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AACpD,QAAI,SAAS,SAAS,GAAG;AACrB,WAAK;AAAA,QACD,SACI,SAAS,MACb,uBAAuB,aAAa,KAAK,IAAI,CAAC;AAAA,MAClD;AAAA,IACJ;AAEA,UAAM,cAAc,gBAAgB,IAAI;AACxC,QAAI,YAAY,SAAS,GAAG;AACxB,WAAK;AAAA,QACD,SAAS,YAAY,MAAM,sBAAsB,YAC5C,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,EAAE,EACxB,KAAK,IAAI,CAAC;AAAA,QACf,kBAAkB,YAAY,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;AAAA,MAC1D;AAAA,IACJ;AAAA,EACJ;AACJ;AAMO,IAAM,kBAAoD,WAAY;AACzE,OAAK,WAAW,CAAC,MAAM,SAAS;AAC5B,SAAK,UAAU;AACf,SAAK,YAAY;AAEjB,UAAM,WAAW,aAAa,IAAI,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AAC1D,UAAM,cAAc,gBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO;AAAA,MAClD,MAAM,EAAE;AAAA,MACR,WAAW,EAAE;AAAA,MACb,MAAM,SAAS,EAAE,IAAI;AAAA,MACrB,YAAY,SAAS,EAAE,UAAU;AAAA,IACrC,EAAE;AAEF,WAAO,KAAK,UAAU,EAAE,UAAU,YAAY,GAAG,MAAM,CAAC,IAAI;AAAA,EAChE;AACJ;;;AEpDA;AAAA,EACI;AAAA,OAEG;AAEP,SAAS,uBAAuB;AASzB,IAAM,qBACT,SAAUC,UAAS;AACf,QAAM,EAAE,SAAS,CAAC,EAAE,IAAIA,YAAW,CAAC;AACpC,QAAM,YAAY,OAAO;AAAA,IACrB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAAA,EAC1D;AACA,SAAO,CAAC,SAAS;AAEb,oBAAgB,MAAM,SAAS;AAC/B,iBAAa,MAAM,MAAM;AAAA,EAC7B;AACJ;;;ACxBJ,SAAS,mBAAAC,wBAAuB;AASzB,IAAM,wBAIT,SAAUC,UAAS;AACnB,QAAM,EAAE,SAAS,CAAC,EAAE,IAAIA,YAAW,CAAC;AACpC,QAAM,YAAY,OAAO;AAAA,IACrB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAAA,EAC1D;AACA,SAAO,CAAC,SAAS;AAEb,IAAAD,iBAAgB,MAAM,SAAS;AAAA,EACnC;AACJ;;;ACvBA,OAAO,qBAAqB;AAC5B,OAAO,cAAc;AACrB,SAAiB,WAAAE,gBAAe;AAKzB,IAAM,wBAAsD,WAAY;AAC3E,QAAM,YAAYA,SAAQ,EAAE,IAAI,eAAe;AAC/C,OAAK,WAAW,CAAC,MAAM,SAAS;AAC5B,SAAK,UAAU;AAEf,UAAM,OAAO,UAAU,UAAU,MAAM,IAAI;AAC3C,QAAI;AACA,aAAO,SAAS,OAAO,MAAM,EAAE,QAAQ,QAAQ,SAAS,KAAK,CAAC;AAAA,IAClE,QAAQ;AAAA,IAAC;AACT,WAAO;AAAA,EACX;AACJ;;;AClBA;AAAA,EAEI,oCAAAC;AAAA,EACA,mBAAAC;AAAA,OACG;AAEP,SAAS,mBAAAC,wBAAuB;AAUzB,IAAM,6BAIT,SAAUC,UAAS;AACnB,QAAM,EAAE,SAAS,CAAC,EAAE,IAAIA,YAAW,CAAC;AACpC,QAAM,YAAY,IAAI,IAAI,MAAM;AAEhC,SAAO,CAAC,SAAS;AACb,UAAM,cAAcF,iBAAgB,IAAI;AACxC,UAAMG,UAAS,YAAY,OAAO,CAAC,MAAM,UAAU,IAAI,EAAE,IAAI,CAAC;AAE9D,UAAM,YAAY,OAAO;AAAA,MACrBA,QAAO,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAAA,IAC1D;AAEA,IAAAF,iBAAgB,MAAM,SAAS;AAC/B,IAAAF,kCAAiC,MAAMI,OAAM;AAAA,EACjD;AACJ;;;AVbA,IAAM,YAAY,OAAO,OAAO,IAAI,OAAO,SAAS,GAAG,EAAE,OAAO,KAAK,CAAC;AAGtE,IAAI,aAAa;AAEjB,QAAQ,GAAG,QAAQ,MAAM;AAGzB,QAAQ,GAAG,qBAAqB,IAAI;AAO7B,SAAS,YAAY,WAAoB;AAC5C,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI;AACA,aAAS,QAAQ,QAAQ,KAAK,MAAM,CAAC,GAAG,SAAS;AAAA,EACrD,SAAS,OAAO;AACZ,UAAM,YAAY;AAClB,WAAO,KAAK,WAAW,IAAI;AAAA,EAC/B;AAIA,QAAM,mBAAkC,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,EAAE;AACvE,QAAM,oBAAoB,OAAO;AACjC,SAAO,YAAY,MAAM,kBAAkB,gBAAgB;AAE3D,MAAI,OAAO,MAAM;AACb,YAAQ,OAAO;AAAA,MACX;AAAA,QACI,YAAY,UAAU,OAAO;AAAA,QAC7B;AAAA,QACA,OAAO,UAAU;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP;AAAA,MACJ,EAAE,KAAK,IAAI;AAAA,MACX;AAAA,IACJ;AAEA;AAAA,EACJ;AAEA,MAAI,OAAO,SAAS;AAChB,YAAQ,OAAO,MAAM,UAAU,UAAU,MAAM,IAAI;AAEnD;AAAA,EACJ;AAGA,MAAI,OAAO,OAAO;AACd,aAAS,OAAO;AAGhB,WAAO,WAAW;AAGlB,WAAO,MAAM;AAEb,YAAQ,OAAO;AAAA,MACX,MAAM,KAAK,aAAa,IAAI;AAAA,MAC5B;AAAA,IACJ;AAGA,QAAI,WAAW,MAAM;AACjB,aAAO,SAAS;AAEhB,cAAQ,OAAO;AAAA,QACX,MAAM,OAAO,MAAM,IAAI;AAAA,QACvB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAAO,OAAO;AACd,eAAW,CAAC,UAAU,QAAQ,KAAK,OAAO,QAAQ,OAAO,KAAK,GAAG;AAC7D,YAAM,OAAO,eAAe,QAAQ;AACpC,UAAI,CAAC,MAAM;AACP,cAAM,IAAI;AAAA,UACN,8BAA8B,QAAQ,0BAA0B,OAAO;AAAA,YACnE;AAAA,UACJ,EAAE,KAAK,IAAI,CAAC;AAAA,QAChB;AAAA,MACJ;AACA,aAAO,QAAQ,KAAK,CAAC,MAAM,QAAQ,CAAC;AAAA,IACxC;AAAA,EACJ;AAEA,MAAI,OAAO,OAAO;AACd,WAAO,QAAQ,KAAK,CAAC,WAAW,CAAC;AAAA,EACrC;AAEA,MAAI,OAAO,MAAM,SAAS,GAAG;AACzB,WAAO,QAAQ,KAAK,CAAC,uBAAuB,EAAE,QAAQ,OAAO,MAAM,CAAC,CAAC;AAAA,EACzE;AAEA,MAAI,OAAO,YAAY,SAAS,GAAG;AAI/B,qBAAiB,SAAS,OAAO;AAAA,MAC7B,iBAAiB,UAAU,CAAC;AAAA,MAC5B,OAAO;AAAA,QACH,OAAO,YAAY,IAAI,CAAC,MAAM;AAAA,UAC1B,EAAE;AAAA,UACF,EAAE,WAAW,EAAE,UAAU;AAAA,QAC7B,CAAC;AAAA,MACL;AAAA,IACJ;AACA,WAAO,QAAQ,KAAK;AAAA,MAChB;AAAA,MACA,EAAE,QAAQ,OAAO,YAAY;AAAA,IACjC,CAAC;AAAA,EACL;AAEA,MAAI,OAAO,oBAAoB,SAAS,GAAG;AACvC,WAAO,QAAQ,KAAK;AAAA,MAChB;AAAA,MACA,EAAE,QAAQ,OAAO,oBAAoB;AAAA,IACzC,CAAC;AAAA,EACL;AAEA,MAAI,OAAO,WAAW;AAClB,WAAO,QAAQ,KAAK,CAAC,eAAe,CAAC;AAAA,EACzC;AAEA,MAAI,OAAO,MAAM;AACb,WAAO,QAAQ,KAAK,CAAC,kBAAkB,CAAC;AACxC,WAAO,QAAQ,KAAK,CAAC,qBAAqB,CAAC;AAAA,EAC/C;AAOA,QAAM,OAAuB,SAASC,MAAK,OAAO,MAAM,SAAS;AAC7D,QAAI,OAAO;AACP,YAAM;AACN,WAAK,KAAK;AAAA,IACd,OAAO;AACH,mBAAa,QAAQ;AAErB,UAAI,OAAO,SAAS,CAAC,WAAW,SAAS;AACrC,kBAAU,OAAO;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ;AAGA,WAAS,QAAQ;AACb,QAAI,SAAS;AACT,cAAQ,MAAM;AACd,gBAAU;AAAA,IACd;AAAA,EACJ;AAKA,WAAS,UAAU,SAAwB;AAhM/C;AAiMQ,cAAU,SACL,QAAM,aAAQ,YAAR,mBAAiB,YAAW,CAAC,GAAG;AAAA,MACnC,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,MAAM,OAAO;AAAA,MACnD,eAAe;AAAA,IACnB,CAAC,EACA,GAAG,SAAS,IAAI,EAChB,GAAG,UAAU,CAAC,aAAa;AACxB,aAAO,QAAQ,CAAC,QAAQ;AACxB,aAAO,QAAQ,IAAI;AAAA,IACvB,CAAC;AAEL,YAAQ,GAAG,UAAU,QAAQ;AAK7B,aAAS,WAAW;AAEhB,cAAQ,OAAO,MAAM,MAAM,IAAI;AAE/B,YAAM;AAGN,UAAI,WAAW,MAAM;AACjB,eAAO,SAAS;AAChB,eAAO,QAAQ;AACf,eAAO,QAAQ,IAAI;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ;AAGA,SAAO,QAAQ,IAAI;AACvB;AAQA,SAAS,KAAK,OAAc,QAAkB;AAC1C,QAAM,UAAU,QAAQ,SAAS,QAAQ,MAAM,UAAU,KAAK;AAE9D,eAAa;AAEb,UAAQ,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI;AACpD;AAEA,SAAS,SAAS;AACd,UAAQ,KAAK,UAAU;AAC3B;AAEA,SAAS,OAAO;AAAC;;;AWpPjB,OAAO,QAAQ;AAEf,IAAI,UAAU;AACd,IAAI;AAGA,QAAM,cAA2B,KAAK;AAAA,IAClC,GAAG,aAAa,IAAI,IAAI,kBAAkB,YAAY,GAAG,GAAG;AAAA,MACxD,UAAU;AAAA,IACd,CAAC;AAAA,EACL;AACA,YAAU,YAAY;AAC1B,QAAQ;AAAC;AAET,YAAY;AAAA,EACR,WAAW;AAAA,EACX,MAAM;AAAA,EACN,aAAa;AAAA,EACb;AAAA,EACA,YAAY,CAAC,KAAK;AAAA,EAClB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,cAAc;AAClB,CAAC;",
6
6
  "names": ["options", "json5", "index", "value", "lints", "index", "options", "json5", "options", "attachMacroArgs", "options", "unified", "expandMacrosExcludingDefinitions", "listNewcommands", "attachMacroArgs", "options", "macros", "done"]
7
7
  }