ocx 1.0.16 → 1.0.18

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/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/error.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/argument.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/help.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/option.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/suggestSimilar.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/command.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/index.js", "../../../node_modules/.bun/cli-spinners@2.9.2/node_modules/cli-spinners/index.js", "../../../node_modules/.bun/fuzzysort@3.1.0/node_modules/fuzzysort/fuzzysort.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/esm.mjs", "../src/commands/add.ts", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/ZodError.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.js", "../src/schemas/registry.ts", "../src/utils/errors.ts", "../src/registry/fetcher.ts", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/lazyDataLastImpl-DtF3cihj.js", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/purry-GjwKKIlp.js", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/isPlainObject.js", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/mergeDeep.js", "../src/registry/merge.ts", "../src/registry/resolver.ts", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/string-intern.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/format.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/parser.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/edit.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/main.js", "../src/schemas/config.ts", "../src/updaters/update-opencode-config.ts", "../src/utils/content.ts", "../src/utils/env.ts", "../../../node_modules/.bun/kleur@4.1.5/node_modules/kleur/index.mjs", "../src/utils/logger.ts", "../src/utils/handle-error.ts", "../src/utils/json-output.ts", "../../../node_modules/.bun/ora@8.2.0/node_modules/ora/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/utilities.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/index.js", "../../../node_modules/.bun/cli-cursor@5.0.0/node_modules/cli-cursor/index.js", "../../../node_modules/.bun/restore-cursor@5.1.0/node_modules/restore-cursor/index.js", "../../../node_modules/.bun/mimic-function@5.0.1/node_modules/mimic-function/index.js", "../../../node_modules/.bun/onetime@7.0.0/node_modules/onetime/index.js", "../../../node_modules/.bun/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/signals.js", "../../../node_modules/.bun/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/index.js", "../../../node_modules/.bun/is-unicode-supported@1.3.0/node_modules/is-unicode-supported/index.js", "../../../node_modules/.bun/log-symbols@6.0.0/node_modules/log-symbols/index.js", "../../../node_modules/.bun/ansi-regex@6.2.2/node_modules/ansi-regex/index.js", "../../../node_modules/.bun/strip-ansi@7.1.2/node_modules/strip-ansi/index.js", "../../../node_modules/.bun/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/lookup.js", "../../../node_modules/.bun/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/index.js", "../../../node_modules/.bun/emoji-regex@10.6.0/node_modules/emoji-regex/index.mjs", "../../../node_modules/.bun/string-width@7.2.0/node_modules/string-width/index.js", "../../../node_modules/.bun/is-interactive@2.0.0/node_modules/is-interactive/index.js", "../../../node_modules/.bun/is-unicode-supported@2.1.0/node_modules/is-unicode-supported/index.js", "../../../node_modules/.bun/stdin-discarder@0.2.2/node_modules/stdin-discarder/index.js", "../src/utils/spinner.ts", "../src/commands/build.ts", "../src/lib/build-registry.ts", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/base.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/character.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/util/string.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/word.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/line.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/sentence.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/css.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/json.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/array.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/patch/create.js", "../src/commands/diff.ts", "../src/commands/init.ts", "../src/constants.ts", "../src/commands/registry.ts", "../src/commands/search.ts", "../src/commands/update.ts", "../src/index.ts"],
3
+ "sources": ["../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/error.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/argument.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/help.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/option.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/suggestSimilar.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/lib/command.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/index.js", "../../../node_modules/.bun/cli-spinners@2.9.2/node_modules/cli-spinners/index.js", "../../../node_modules/.bun/fuzzysort@3.1.0/node_modules/fuzzysort/fuzzysort.js", "../../../node_modules/.bun/commander@14.0.2/node_modules/commander/esm.mjs", "../src/commands/add.ts", "../src/constants.ts", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/ZodError.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.js", "../src/schemas/registry.ts", "../src/utils/errors.ts", "../src/registry/fetcher.ts", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/lazyDataLastImpl-DtF3cihj.js", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/purry-GjwKKIlp.js", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/isPlainObject.js", "../../../node_modules/.bun/remeda@2.33.0/node_modules/remeda/dist/mergeDeep.js", "../src/registry/merge.ts", "../src/registry/resolver.ts", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/string-intern.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/format.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/parser.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/edit.js", "../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/main.js", "../src/schemas/config.ts", "../src/updaters/update-opencode-config.ts", "../src/utils/content.ts", "../src/utils/env.ts", "../../../node_modules/.bun/kleur@4.1.5/node_modules/kleur/index.mjs", "../src/utils/logger.ts", "../src/utils/handle-error.ts", "../src/utils/json-output.ts", "../../../node_modules/.bun/ora@8.2.0/node_modules/ora/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/utilities.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/index.js", "../../../node_modules/.bun/cli-cursor@5.0.0/node_modules/cli-cursor/index.js", "../../../node_modules/.bun/restore-cursor@5.1.0/node_modules/restore-cursor/index.js", "../../../node_modules/.bun/mimic-function@5.0.1/node_modules/mimic-function/index.js", "../../../node_modules/.bun/onetime@7.0.0/node_modules/onetime/index.js", "../../../node_modules/.bun/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/signals.js", "../../../node_modules/.bun/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/index.js", "../../../node_modules/.bun/is-unicode-supported@1.3.0/node_modules/is-unicode-supported/index.js", "../../../node_modules/.bun/log-symbols@6.0.0/node_modules/log-symbols/index.js", "../../../node_modules/.bun/ansi-regex@6.2.2/node_modules/ansi-regex/index.js", "../../../node_modules/.bun/strip-ansi@7.1.2/node_modules/strip-ansi/index.js", "../../../node_modules/.bun/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/lookup.js", "../../../node_modules/.bun/get-east-asian-width@1.4.0/node_modules/get-east-asian-width/index.js", "../../../node_modules/.bun/emoji-regex@10.6.0/node_modules/emoji-regex/index.mjs", "../../../node_modules/.bun/string-width@7.2.0/node_modules/string-width/index.js", "../../../node_modules/.bun/is-interactive@2.0.0/node_modules/is-interactive/index.js", "../../../node_modules/.bun/is-unicode-supported@2.1.0/node_modules/is-unicode-supported/index.js", "../../../node_modules/.bun/stdin-discarder@0.2.2/node_modules/stdin-discarder/index.js", "../src/utils/spinner.ts", "../src/utils/version-compat.ts", "../src/commands/build.ts", "../src/lib/build-registry.ts", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/base.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/character.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/util/string.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/word.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/line.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/sentence.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/css.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/json.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/diff/array.js", "../../../node_modules/.bun/diff@8.0.2/node_modules/diff/libesm/patch/create.js", "../src/commands/diff.ts", "../src/commands/init.ts", "../src/commands/registry.ts", "../src/commands/search.ts", "../src/commands/update.ts", "../src/index.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * CommanderError class\n */\nclass CommanderError extends Error {\n /**\n * Constructs the CommanderError class\n * @param {number} exitCode suggested exit code which could be used with process.exit\n * @param {string} code an id string representing the error\n * @param {string} message human-readable description of the error\n */\n constructor(exitCode, code, message) {\n super(message);\n // properly capture stack trace in Node.js\n Error.captureStackTrace(this, this.constructor);\n this.name = this.constructor.name;\n this.code = code;\n this.exitCode = exitCode;\n this.nestedError = undefined;\n }\n}\n\n/**\n * InvalidArgumentError class\n */\nclass InvalidArgumentError extends CommanderError {\n /**\n * Constructs the InvalidArgumentError class\n * @param {string} [message] explanation of why argument is invalid\n */\n constructor(message) {\n super(1, 'commander.invalidArgument', message);\n // properly capture stack trace in Node.js\n Error.captureStackTrace(this, this.constructor);\n this.name = this.constructor.name;\n }\n}\n\nexports.CommanderError = CommanderError;\nexports.InvalidArgumentError = InvalidArgumentError;\n",
6
6
  "const { InvalidArgumentError } = require('./error.js');\n\nclass Argument {\n /**\n * Initialize a new command argument with the given name and description.\n * The default is that the argument is required, and you can explicitly\n * indicate this with <> around the name. Put [] around the name for an optional argument.\n *\n * @param {string} name\n * @param {string} [description]\n */\n\n constructor(name, description) {\n this.description = description || '';\n this.variadic = false;\n this.parseArg = undefined;\n this.defaultValue = undefined;\n this.defaultValueDescription = undefined;\n this.argChoices = undefined;\n\n switch (name[0]) {\n case '<': // e.g. <required>\n this.required = true;\n this._name = name.slice(1, -1);\n break;\n case '[': // e.g. [optional]\n this.required = false;\n this._name = name.slice(1, -1);\n break;\n default:\n this.required = true;\n this._name = name;\n break;\n }\n\n if (this._name.endsWith('...')) {\n this.variadic = true;\n this._name = this._name.slice(0, -3);\n }\n }\n\n /**\n * Return argument name.\n *\n * @return {string}\n */\n\n name() {\n return this._name;\n }\n\n /**\n * @package\n */\n\n _collectValue(value, previous) {\n if (previous === this.defaultValue || !Array.isArray(previous)) {\n return [value];\n }\n\n previous.push(value);\n return previous;\n }\n\n /**\n * Set the default value, and optionally supply the description to be displayed in the help.\n *\n * @param {*} value\n * @param {string} [description]\n * @return {Argument}\n */\n\n default(value, description) {\n this.defaultValue = value;\n this.defaultValueDescription = description;\n return this;\n }\n\n /**\n * Set the custom handler for processing CLI command arguments into argument values.\n *\n * @param {Function} [fn]\n * @return {Argument}\n */\n\n argParser(fn) {\n this.parseArg = fn;\n return this;\n }\n\n /**\n * Only allow argument value to be one of choices.\n *\n * @param {string[]} values\n * @return {Argument}\n */\n\n choices(values) {\n this.argChoices = values.slice();\n this.parseArg = (arg, previous) => {\n if (!this.argChoices.includes(arg)) {\n throw new InvalidArgumentError(\n `Allowed choices are ${this.argChoices.join(', ')}.`,\n );\n }\n if (this.variadic) {\n return this._collectValue(arg, previous);\n }\n return arg;\n };\n return this;\n }\n\n /**\n * Make argument required.\n *\n * @returns {Argument}\n */\n argRequired() {\n this.required = true;\n return this;\n }\n\n /**\n * Make argument optional.\n *\n * @returns {Argument}\n */\n argOptional() {\n this.required = false;\n return this;\n }\n}\n\n/**\n * Takes an argument and returns its human readable equivalent for help usage.\n *\n * @param {Argument} arg\n * @return {string}\n * @private\n */\n\nfunction humanReadableArgName(arg) {\n const nameOutput = arg.name() + (arg.variadic === true ? '...' : '');\n\n return arg.required ? '<' + nameOutput + '>' : '[' + nameOutput + ']';\n}\n\nexports.Argument = Argument;\nexports.humanReadableArgName = humanReadableArgName;\n",
@@ -12,7 +12,8 @@
12
12
  "'use strict';\n\nconst spinners = Object.assign({}, require('./spinners.json')); // eslint-disable-line import/extensions\n\nconst spinnersList = Object.keys(spinners);\n\nObject.defineProperty(spinners, 'random', {\n\tget() {\n\t\tconst randomIndex = Math.floor(Math.random() * spinnersList.length);\n\t\tconst spinnerName = spinnersList[randomIndex];\n\t\treturn spinners[spinnerName];\n\t}\n});\n\nmodule.exports = spinners;\n",
13
13
  "// https://github.com/farzher/fuzzysort v3.0.2\r\n\r\n// UMD (Universal Module Definition) for fuzzysort\r\n;((root, UMD) => {\r\n if(typeof define === 'function' && define.amd) define([], UMD)\r\n else if(typeof module === 'object' && module.exports) module.exports = UMD()\r\n else root['fuzzysort'] = UMD()\r\n})(this, _ => {\r\n 'use strict'\r\n\r\n var single = (search, target) => {\r\n if(!search || !target) return NULL\r\n\r\n var preparedSearch = getPreparedSearch(search)\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n var searchBitflags = preparedSearch.bitflags\r\n if((searchBitflags & target._bitflags) !== searchBitflags) return NULL\r\n\r\n return algorithm(preparedSearch, target)\r\n }\r\n\r\n var go = (search, targets, options) => {\r\n if(!search) return options?.all ? all(targets, options) : noResults\r\n\r\n var preparedSearch = getPreparedSearch(search)\r\n var searchBitflags = preparedSearch.bitflags\r\n var containsSpace = preparedSearch.containsSpace\r\n\r\n var threshold = denormalizeScore( options?.threshold || 0 )\r\n var limit = options?.limit || INFINITY\r\n\r\n var resultsLen = 0; var limitedCount = 0\r\n var targetsLen = targets.length\r\n\r\n function push_result(result) {\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result._score > q.peek()._score) q.replaceTop(result)\r\n }\r\n }\r\n\r\n // This code is copy/pasted 3 times for performance reasons [options.key, options.keys, no keys]\r\n\r\n // options.key\r\n if(options?.key) {\r\n var key = options.key\r\n for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]\r\n var target = getValue(obj, key)\r\n if(!target) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n if((searchBitflags & target._bitflags) !== searchBitflags) continue\r\n var result = algorithm(preparedSearch, target)\r\n if(result === NULL) continue\r\n if(result._score < threshold) continue\r\n\r\n result.obj = obj\r\n push_result(result)\r\n }\r\n\r\n // options.keys\r\n } else if(options?.keys) {\r\n var keys = options.keys\r\n var keysLen = keys.length\r\n\r\n outer: for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]\r\n\r\n { // early out based on bitflags\r\n var keysBitflags = 0\r\n for (var keyI = 0; keyI < keysLen; ++keyI) {\r\n var key = keys[keyI]\r\n var target = getValue(obj, key)\r\n if(!target) { tmpTargets[keyI] = noTarget; continue }\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n tmpTargets[keyI] = target\r\n\r\n keysBitflags |= target._bitflags\r\n }\r\n\r\n if((searchBitflags & keysBitflags) !== searchBitflags) continue\r\n }\r\n\r\n if(containsSpace) for(let i=0; i<preparedSearch.spaceSearches.length; i++) keysSpacesBestScores[i] = NEGATIVE_INFINITY\r\n\r\n for (var keyI = 0; keyI < keysLen; ++keyI) {\r\n target = tmpTargets[keyI]\r\n if(target === noTarget) { tmpResults[keyI] = noTarget; continue }\r\n\r\n tmpResults[keyI] = algorithm(preparedSearch, target, /*allowSpaces=*/false, /*allowPartialMatch=*/containsSpace)\r\n if(tmpResults[keyI] === NULL) { tmpResults[keyI] = noTarget; continue }\r\n\r\n // todo: this seems weird and wrong. like what if our first match wasn't good. this should just replace it instead of averaging with it\r\n // if our second match isn't good we ignore it instead of averaging with it\r\n if(containsSpace) for(let i=0; i<preparedSearch.spaceSearches.length; i++) {\r\n if(allowPartialMatchScores[i] > -1000) {\r\n if(keysSpacesBestScores[i] > NEGATIVE_INFINITY) {\r\n var tmp = (keysSpacesBestScores[i] + allowPartialMatchScores[i]) / 4/*bonus score for having multiple matches*/\r\n if(tmp > keysSpacesBestScores[i]) keysSpacesBestScores[i] = tmp\r\n }\r\n }\r\n if(allowPartialMatchScores[i] > keysSpacesBestScores[i]) keysSpacesBestScores[i] = allowPartialMatchScores[i]\r\n }\r\n }\r\n\r\n if(containsSpace) {\r\n for(let i=0; i<preparedSearch.spaceSearches.length; i++) { if(keysSpacesBestScores[i] === NEGATIVE_INFINITY) continue outer }\r\n } else {\r\n var hasAtLeast1Match = false\r\n for(let i=0; i < keysLen; i++) { if(tmpResults[i]._score !== NEGATIVE_INFINITY) { hasAtLeast1Match = true; break } }\r\n if(!hasAtLeast1Match) continue\r\n }\r\n\r\n var objResults = new KeysResult(keysLen)\r\n for(let i=0; i < keysLen; i++) { objResults[i] = tmpResults[i] }\r\n\r\n if(containsSpace) {\r\n var score = 0\r\n for(let i=0; i<preparedSearch.spaceSearches.length; i++) score += keysSpacesBestScores[i]\r\n } else {\r\n // todo could rewrite this scoring to be more similar to when there's spaces\r\n // if we match multiple keys give us bonus points\r\n var score = NEGATIVE_INFINITY\r\n for(let i=0; i<keysLen; i++) {\r\n var result = objResults[i]\r\n if(result._score > -1000) {\r\n if(score > NEGATIVE_INFINITY) {\r\n var tmp = (score + result._score) / 4/*bonus score for having multiple matches*/\r\n if(tmp > score) score = tmp\r\n }\r\n }\r\n if(result._score > score) score = result._score\r\n }\r\n }\r\n\r\n objResults.obj = obj\r\n objResults._score = score\r\n if(options?.scoreFn) {\r\n score = options.scoreFn(objResults)\r\n if(!score) continue\r\n score = denormalizeScore(score)\r\n objResults._score = score\r\n }\r\n\r\n if(score < threshold) continue\r\n push_result(objResults)\r\n }\r\n\r\n // no keys\r\n } else {\r\n for(var i = 0; i < targetsLen; ++i) { var target = targets[i]\r\n if(!target) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n if((searchBitflags & target._bitflags) !== searchBitflags) continue\r\n var result = algorithm(preparedSearch, target)\r\n if(result === NULL) continue\r\n if(result._score < threshold) continue\r\n\r\n push_result(result)\r\n }\r\n }\r\n\r\n if(resultsLen === 0) return noResults\r\n var results = new Array(resultsLen)\r\n for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll()\r\n results.total = resultsLen + limitedCount\r\n return results\r\n }\r\n\r\n\r\n // this is written as 1 function instead of 2 for minification. perf seems fine ...\r\n // except when minified. the perf is very slow\r\n var highlight = (result, open='<b>', close='</b>') => {\r\n var callback = typeof open === 'function' ? open : undefined\r\n\r\n var target = result.target\r\n var targetLen = target.length\r\n var indexes = result.indexes\r\n var highlighted = ''\r\n var matchI = 0\r\n var indexesI = 0\r\n var opened = false\r\n var parts = []\r\n\r\n for(var i = 0; i < targetLen; ++i) { var char = target[i]\r\n if(indexes[indexesI] === i) {\r\n ++indexesI\r\n if(!opened) { opened = true\r\n if(callback) {\r\n parts.push(highlighted); highlighted = ''\r\n } else {\r\n highlighted += open\r\n }\r\n }\r\n\r\n if(indexesI === indexes.length) {\r\n if(callback) {\r\n highlighted += char\r\n parts.push(callback(highlighted, matchI++)); highlighted = ''\r\n parts.push(target.substr(i+1))\r\n } else {\r\n highlighted += char + close + target.substr(i+1)\r\n }\r\n break\r\n }\r\n } else {\r\n if(opened) { opened = false\r\n if(callback) {\r\n parts.push(callback(highlighted, matchI++)); highlighted = ''\r\n } else {\r\n highlighted += close\r\n }\r\n }\r\n }\r\n highlighted += char\r\n }\r\n\r\n return callback ? parts : highlighted\r\n }\r\n\r\n\r\n var prepare = (target) => {\r\n if(typeof target === 'number') target = ''+target\r\n else if(typeof target !== 'string') target = ''\r\n var info = prepareLowerInfo(target)\r\n return new_result(target, {_targetLower:info._lower, _targetLowerCodes:info.lowerCodes, _bitflags:info.bitflags})\r\n }\r\n\r\n var cleanup = () => { preparedCache.clear(); preparedSearchCache.clear() }\r\n\r\n\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n\r\n\r\n class Result {\r\n get ['indexes']() { return this._indexes.slice(0, this._indexes.len).sort((a,b)=>a-b) }\r\n set ['indexes'](indexes) { return this._indexes = indexes }\r\n ['highlight'](open, close) { return highlight(this, open, close) }\r\n get ['score']() { return normalizeScore(this._score) }\r\n set ['score'](score) { this._score = denormalizeScore(score) }\r\n }\r\n\r\n class KeysResult extends Array {\r\n get ['score']() { return normalizeScore(this._score) }\r\n set ['score'](score) { this._score = denormalizeScore(score) }\r\n }\r\n\r\n var new_result = (target, options) => {\r\n const result = new Result()\r\n result['target'] = target\r\n result['obj'] = options.obj ?? NULL\r\n result._score = options._score ?? NEGATIVE_INFINITY\r\n result._indexes = options._indexes ?? []\r\n result._targetLower = options._targetLower ?? ''\r\n result._targetLowerCodes = options._targetLowerCodes ?? NULL\r\n result._nextBeginningIndexes = options._nextBeginningIndexes ?? NULL\r\n result._bitflags = options._bitflags ?? 0\r\n return result\r\n }\r\n\r\n\r\n var normalizeScore = score => {\r\n if(score === NEGATIVE_INFINITY) return 0\r\n if(score > 1) return score\r\n return Math.E ** ( ((-score + 1)**.04307 - 1) * -2)\r\n }\r\n var denormalizeScore = normalizedScore => {\r\n if(normalizedScore === 0) return NEGATIVE_INFINITY\r\n if(normalizedScore > 1) return normalizedScore\r\n return 1 - Math.pow((Math.log(normalizedScore) / -2 + 1), 1 / 0.04307)\r\n }\r\n\r\n\r\n var prepareSearch = (search) => {\r\n if(typeof search === 'number') search = ''+search\r\n else if(typeof search !== 'string') search = ''\r\n search = search.trim()\r\n var info = prepareLowerInfo(search)\r\n\r\n var spaceSearches = []\r\n if(info.containsSpace) {\r\n var searches = search.split(/\\s+/)\r\n searches = [...new Set(searches)] // distinct\r\n for(var i=0; i<searches.length; i++) {\r\n if(searches[i] === '') continue\r\n var _info = prepareLowerInfo(searches[i])\r\n spaceSearches.push({lowerCodes:_info.lowerCodes, _lower:searches[i].toLowerCase(), containsSpace:false})\r\n }\r\n }\r\n\r\n return {lowerCodes: info.lowerCodes, _lower: info._lower, containsSpace: info.containsSpace, bitflags: info.bitflags, spaceSearches: spaceSearches}\r\n }\r\n\r\n\r\n\r\n var getPrepared = (target) => {\r\n if(target.length > 999) return prepare(target) // don't cache huge targets\r\n var targetPrepared = preparedCache.get(target)\r\n if(targetPrepared !== undefined) return targetPrepared\r\n targetPrepared = prepare(target)\r\n preparedCache.set(target, targetPrepared)\r\n return targetPrepared\r\n }\r\n var getPreparedSearch = (search) => {\r\n if(search.length > 999) return prepareSearch(search) // don't cache huge searches\r\n var searchPrepared = preparedSearchCache.get(search)\r\n if(searchPrepared !== undefined) return searchPrepared\r\n searchPrepared = prepareSearch(search)\r\n preparedSearchCache.set(search, searchPrepared)\r\n return searchPrepared\r\n }\r\n\r\n\r\n var all = (targets, options) => {\r\n var results = []; results.total = targets.length // this total can be wrong if some targets are skipped\r\n\r\n var limit = options?.limit || INFINITY\r\n\r\n if(options?.key) {\r\n for(var i=0;i<targets.length;i++) { var obj = targets[i]\r\n var target = getValue(obj, options.key)\r\n if(target == NULL) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n var result = new_result(target.target, {_score: target._score, obj: obj})\r\n results.push(result); if(results.length >= limit) return results\r\n }\r\n } else if(options?.keys) {\r\n for(var i=0;i<targets.length;i++) { var obj = targets[i]\r\n var objResults = new KeysResult(options.keys.length)\r\n for (var keyI = options.keys.length - 1; keyI >= 0; --keyI) {\r\n var target = getValue(obj, options.keys[keyI])\r\n if(!target) { objResults[keyI] = noTarget; continue }\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n target._score = NEGATIVE_INFINITY\r\n target._indexes.len = 0\r\n objResults[keyI] = target\r\n }\r\n objResults.obj = obj\r\n objResults._score = NEGATIVE_INFINITY\r\n results.push(objResults); if(results.length >= limit) return results\r\n }\r\n } else {\r\n for(var i=0;i<targets.length;i++) { var target = targets[i]\r\n if(target == NULL) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n target._score = NEGATIVE_INFINITY\r\n target._indexes.len = 0\r\n results.push(target); if(results.length >= limit) return results\r\n }\r\n }\r\n\r\n return results\r\n }\r\n\r\n\r\n var algorithm = (preparedSearch, prepared, allowSpaces=false, allowPartialMatch=false) => {\r\n if(allowSpaces===false && preparedSearch.containsSpace) return algorithmSpaces(preparedSearch, prepared, allowPartialMatch)\r\n\r\n var searchLower = preparedSearch._lower\r\n var searchLowerCodes = preparedSearch.lowerCodes\r\n var searchLowerCode = searchLowerCodes[0]\r\n var targetLowerCodes = prepared._targetLowerCodes\r\n var searchLen = searchLowerCodes.length\r\n var targetLen = targetLowerCodes.length\r\n var searchI = 0 // where we at\r\n var targetI = 0 // where you at\r\n var matchesSimpleLen = 0\r\n\r\n // very basic fuzzy match; to remove non-matching targets ASAP!\r\n // walk through target. find sequential matches.\r\n // if all chars aren't found then exit\r\n for(;;) {\r\n var isMatch = searchLowerCode === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesSimple[matchesSimpleLen++] = targetI\r\n ++searchI; if(searchI === searchLen) break\r\n searchLowerCode = searchLowerCodes[searchI]\r\n }\r\n ++targetI; if(targetI >= targetLen) return NULL // Failed to find searchI\r\n }\r\n\r\n var searchI = 0\r\n var successStrict = false\r\n var matchesStrictLen = 0\r\n\r\n var nextBeginningIndexes = prepared._nextBeginningIndexes\r\n if(nextBeginningIndexes === NULL) nextBeginningIndexes = prepared._nextBeginningIndexes = prepareNextBeginningIndexes(prepared.target)\r\n targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1]\r\n\r\n // Our target string successfully matched all characters in sequence!\r\n // Let's try a more advanced and strict test to improve the score\r\n // only count it as a match if it's consecutive or a beginning character!\r\n var backtrackCount = 0\r\n if(targetI !== targetLen) for(;;) {\r\n if(targetI >= targetLen) {\r\n // We failed to find a good spot for this search char, go back to the previous search char and force it forward\r\n if(searchI <= 0) break // We failed to push chars forward for a better match\r\n\r\n ++backtrackCount; if(backtrackCount > 200) break // exponential backtracking is taking too long, just give up and return a bad match\r\n\r\n --searchI\r\n var lastMatch = matchesStrict[--matchesStrictLen]\r\n targetI = nextBeginningIndexes[lastMatch]\r\n\r\n } else {\r\n var isMatch = searchLowerCodes[searchI] === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesStrict[matchesStrictLen++] = targetI\r\n ++searchI; if(searchI === searchLen) { successStrict = true; break }\r\n ++targetI\r\n } else {\r\n targetI = nextBeginningIndexes[targetI]\r\n }\r\n }\r\n }\r\n\r\n // check if it's a substring match\r\n var substringIndex = searchLen <= 1 ? -1 : prepared._targetLower.indexOf(searchLower, matchesSimple[0]) // perf: this is slow\r\n var isSubstring = !!~substringIndex\r\n var isSubstringBeginning = !isSubstring ? false : substringIndex===0 || prepared._nextBeginningIndexes[substringIndex-1] === substringIndex\r\n\r\n // if it's a substring match but not at a beginning index, let's try to find a substring starting at a beginning index for a better score\r\n if(isSubstring && !isSubstringBeginning) {\r\n for(var i=0; i<nextBeginningIndexes.length; i=nextBeginningIndexes[i]) {\r\n if(i <= substringIndex) continue\r\n\r\n for(var s=0; s<searchLen; s++) if(searchLowerCodes[s] !== prepared._targetLowerCodes[i+s]) break\r\n if(s === searchLen) { substringIndex = i; isSubstringBeginning = true; break }\r\n }\r\n }\r\n\r\n // tally up the score & keep track of matches for highlighting later\r\n // if it's a simple match, we'll switch to a substring match if a substring exists\r\n // if it's a strict match, we'll switch to a substring match only if that's a better score\r\n\r\n var calculateScore = matches => {\r\n var score = 0\r\n\r\n var extraMatchGroupCount = 0\r\n for(var i = 1; i < searchLen; ++i) {\r\n if(matches[i] - matches[i-1] !== 1) {score -= matches[i]; ++extraMatchGroupCount}\r\n }\r\n var unmatchedDistance = matches[searchLen-1] - matches[0] - (searchLen-1)\r\n\r\n score -= (12+unmatchedDistance) * extraMatchGroupCount // penality for more groups\r\n\r\n if(matches[0] !== 0) score -= matches[0]*matches[0]*.2 // penality for not starting near the beginning\r\n\r\n if(!successStrict) {\r\n score *= 1000\r\n } else {\r\n // successStrict on a target with too many beginning indexes loses points for being a bad target\r\n var uniqueBeginningIndexes = 1\r\n for(var i = nextBeginningIndexes[0]; i < targetLen; i=nextBeginningIndexes[i]) ++uniqueBeginningIndexes\r\n\r\n if(uniqueBeginningIndexes > 24) score *= (uniqueBeginningIndexes-24)*10 // quite arbitrary numbers here ...\r\n }\r\n\r\n score -= (targetLen - searchLen)/2 // penality for longer targets\r\n\r\n if(isSubstring) score /= 1+searchLen*searchLen*1 // bonus for being a full substring\r\n if(isSubstringBeginning) score /= 1+searchLen*searchLen*1 // bonus for substring starting on a beginningIndex\r\n\r\n score -= (targetLen - searchLen)/2 // penality for longer targets\r\n\r\n return score\r\n }\r\n\r\n if(!successStrict) {\r\n if(isSubstring) for(var i=0; i<searchLen; ++i) matchesSimple[i] = substringIndex+i // at this point it's safe to overwrite matchehsSimple with substr matches\r\n var matchesBest = matchesSimple\r\n var score = calculateScore(matchesBest)\r\n } else {\r\n if(isSubstringBeginning) {\r\n for(var i=0; i<searchLen; ++i) matchesSimple[i] = substringIndex+i // at this point it's safe to overwrite matchehsSimple with substr matches\r\n var matchesBest = matchesSimple\r\n var score = calculateScore(matchesSimple)\r\n } else {\r\n var matchesBest = matchesStrict\r\n var score = calculateScore(matchesStrict)\r\n }\r\n }\r\n\r\n prepared._score = score\r\n\r\n for(var i = 0; i < searchLen; ++i) prepared._indexes[i] = matchesBest[i]\r\n prepared._indexes.len = searchLen\r\n\r\n const result = new Result()\r\n result.target = prepared.target\r\n result._score = prepared._score\r\n result._indexes = prepared._indexes\r\n return result\r\n }\r\n var algorithmSpaces = (preparedSearch, target, allowPartialMatch) => {\r\n var seen_indexes = new Set()\r\n var score = 0\r\n var result = NULL\r\n\r\n var first_seen_index_last_search = 0\r\n var searches = preparedSearch.spaceSearches\r\n var searchesLen = searches.length\r\n var changeslen = 0\r\n\r\n // Return _nextBeginningIndexes back to its normal state\r\n var resetNextBeginningIndexes = () => {\r\n for(let i=changeslen-1; i>=0; i--) target._nextBeginningIndexes[nextBeginningIndexesChanges[i*2 + 0]] = nextBeginningIndexesChanges[i*2 + 1]\r\n }\r\n\r\n var hasAtLeast1Match = false\r\n for(var i=0; i<searchesLen; ++i) {\r\n allowPartialMatchScores[i] = NEGATIVE_INFINITY\r\n var search = searches[i]\r\n\r\n result = algorithm(search, target)\r\n if(allowPartialMatch) {\r\n if(result === NULL) continue\r\n hasAtLeast1Match = true\r\n } else {\r\n if(result === NULL) {resetNextBeginningIndexes(); return NULL}\r\n }\r\n\r\n // if not the last search, we need to mutate _nextBeginningIndexes for the next search\r\n var isTheLastSearch = i === searchesLen - 1\r\n if(!isTheLastSearch) {\r\n var indexes = result._indexes\r\n\r\n var indexesIsConsecutiveSubstring = true\r\n for(let i=0; i<indexes.len-1; i++) {\r\n if(indexes[i+1] - indexes[i] !== 1) {\r\n indexesIsConsecutiveSubstring = false; break;\r\n }\r\n }\r\n\r\n if(indexesIsConsecutiveSubstring) {\r\n var newBeginningIndex = indexes[indexes.len-1] + 1\r\n var toReplace = target._nextBeginningIndexes[newBeginningIndex-1]\r\n for(let i=newBeginningIndex-1; i>=0; i--) {\r\n if(toReplace !== target._nextBeginningIndexes[i]) break\r\n target._nextBeginningIndexes[i] = newBeginningIndex\r\n nextBeginningIndexesChanges[changeslen*2 + 0] = i\r\n nextBeginningIndexesChanges[changeslen*2 + 1] = toReplace\r\n changeslen++\r\n }\r\n }\r\n }\r\n\r\n score += result._score / searchesLen\r\n allowPartialMatchScores[i] = result._score / searchesLen\r\n\r\n // dock points based on order otherwise \"c man\" returns Manifest.cpp instead of CheatManager.h\r\n if(result._indexes[0] < first_seen_index_last_search) {\r\n score -= (first_seen_index_last_search - result._indexes[0]) * 2\r\n }\r\n first_seen_index_last_search = result._indexes[0]\r\n\r\n for(var j=0; j<result._indexes.len; ++j) seen_indexes.add(result._indexes[j])\r\n }\r\n\r\n if(allowPartialMatch && !hasAtLeast1Match) return NULL\r\n\r\n resetNextBeginningIndexes()\r\n\r\n // allows a search with spaces that's an exact substring to score well\r\n var allowSpacesResult = algorithm(preparedSearch, target, /*allowSpaces=*/true)\r\n if(allowSpacesResult !== NULL && allowSpacesResult._score > score) {\r\n if(allowPartialMatch) {\r\n for(var i=0; i<searchesLen; ++i) {\r\n allowPartialMatchScores[i] = allowSpacesResult._score / searchesLen\r\n }\r\n }\r\n return allowSpacesResult\r\n }\r\n\r\n if(allowPartialMatch) result = target\r\n result._score = score\r\n\r\n var i = 0\r\n for (let index of seen_indexes) result._indexes[i++] = index\r\n result._indexes.len = i\r\n\r\n return result\r\n }\r\n\r\n // we use this instead of just .normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') because that screws with japanese characters\r\n var remove_accents = (str) => str.replace(/\\p{Script=Latin}+/gu, match => match.normalize('NFD')).replace(/[\\u0300-\\u036f]/g, '')\r\n\r\n var prepareLowerInfo = (str) => {\r\n str = remove_accents(str)\r\n var strLen = str.length\r\n var lower = str.toLowerCase()\r\n var lowerCodes = [] // new Array(strLen) sparse array is too slow\r\n var bitflags = 0\r\n var containsSpace = false // space isn't stored in bitflags because of how searching with a space works\r\n\r\n for(var i = 0; i < strLen; ++i) {\r\n var lowerCode = lowerCodes[i] = lower.charCodeAt(i)\r\n\r\n if(lowerCode === 32) {\r\n containsSpace = true\r\n continue // it's important that we don't set any bitflags for space\r\n }\r\n\r\n var bit = lowerCode>=97&&lowerCode<=122 ? lowerCode-97 // alphabet\r\n : lowerCode>=48&&lowerCode<=57 ? 26 // numbers\r\n // 3 bits available\r\n : lowerCode<=127 ? 30 // other ascii\r\n : 31 // other utf8\r\n bitflags |= 1<<bit\r\n }\r\n\r\n return {lowerCodes:lowerCodes, bitflags:bitflags, containsSpace:containsSpace, _lower:lower}\r\n }\r\n var prepareBeginningIndexes = (target) => {\r\n var targetLen = target.length\r\n var beginningIndexes = []; var beginningIndexesLen = 0\r\n var wasUpper = false\r\n var wasAlphanum = false\r\n for(var i = 0; i < targetLen; ++i) {\r\n var targetCode = target.charCodeAt(i)\r\n var isUpper = targetCode>=65&&targetCode<=90\r\n var isAlphanum = isUpper || targetCode>=97&&targetCode<=122 || targetCode>=48&&targetCode<=57\r\n var isBeginning = isUpper && !wasUpper || !wasAlphanum || !isAlphanum\r\n wasUpper = isUpper\r\n wasAlphanum = isAlphanum\r\n if(isBeginning) beginningIndexes[beginningIndexesLen++] = i\r\n }\r\n return beginningIndexes\r\n }\r\n var prepareNextBeginningIndexes = (target) => {\r\n target = remove_accents(target)\r\n var targetLen = target.length\r\n var beginningIndexes = prepareBeginningIndexes(target)\r\n var nextBeginningIndexes = [] // new Array(targetLen) sparse array is too slow\r\n var lastIsBeginning = beginningIndexes[0]\r\n var lastIsBeginningI = 0\r\n for(var i = 0; i < targetLen; ++i) {\r\n if(lastIsBeginning > i) {\r\n nextBeginningIndexes[i] = lastIsBeginning\r\n } else {\r\n lastIsBeginning = beginningIndexes[++lastIsBeginningI]\r\n nextBeginningIndexes[i] = lastIsBeginning===undefined ? targetLen : lastIsBeginning\r\n }\r\n }\r\n return nextBeginningIndexes\r\n }\r\n\r\n var preparedCache = new Map()\r\n var preparedSearchCache = new Map()\r\n\r\n // the theory behind these being globals is to reduce garbage collection by not making new arrays\r\n var matchesSimple = []; var matchesStrict = []\r\n var nextBeginningIndexesChanges = [] // allows straw berry to match strawberry well, by modifying the end of a substring to be considered a beginning index for the rest of the search\r\n var keysSpacesBestScores = []; var allowPartialMatchScores = []\r\n var tmpTargets = []; var tmpResults = []\r\n\r\n // prop = 'key' 2.5ms optimized for this case, seems to be about as fast as direct obj[prop]\r\n // prop = 'key1.key2' 10ms\r\n // prop = ['key1', 'key2'] 27ms\r\n // prop = obj => obj.tags.join() ??ms\r\n var getValue = (obj, prop) => {\r\n var tmp = obj[prop]; if(tmp !== undefined) return tmp\r\n if(typeof prop === 'function') return prop(obj) // this should run first. but that makes string props slower\r\n var segs = prop\r\n if(!Array.isArray(prop)) segs = prop.split('.')\r\n var len = segs.length\r\n var i = -1\r\n while (obj && (++i < len)) obj = obj[segs[i]]\r\n return obj\r\n }\r\n\r\n var isPrepared = (x) => { return typeof x === 'object' && typeof x._bitflags === 'number' }\r\n var INFINITY = Infinity; var NEGATIVE_INFINITY = -INFINITY\r\n var noResults = []; noResults.total = 0\r\n var NULL = null\r\n\r\n var noTarget = prepare('')\r\n\r\n // Hacked version of https://github.com/lemire/FastPriorityQueue.js\r\n var fastpriorityqueue=r=>{var e=[],o=0,a={},v=r=>{for(var a=0,v=e[a],c=1;c<o;){var s=c+1;a=c,s<o&&e[s]._score<e[c]._score&&(a=s),e[a-1>>1]=e[a],c=1+(a<<1)}for(var f=a-1>>1;a>0&&v._score<e[f]._score;f=(a=f)-1>>1)e[a]=e[f];e[a]=v};return a.add=(r=>{var a=o;e[o++]=r;for(var v=a-1>>1;a>0&&r._score<e[v]._score;v=(a=v)-1>>1)e[a]=e[v];e[a]=r}),a.poll=(r=>{if(0!==o){var a=e[0];return e[0]=e[--o],v(),a}}),a.peek=(r=>{if(0!==o)return e[0]}),a.replaceTop=(r=>{e[0]=r,v()}),a}\r\n var q = fastpriorityqueue() // reuse this\r\n\r\n // fuzzysort is written this way for minification. all names are mangeled unless quoted\r\n return {'single':single, 'go':go, 'prepare':prepare, 'cleanup':cleanup}\r\n}) // UMD\r\n",
14
14
  "import commander from './index.js';\n\n// wrapper to provide named exports for ESM.\nexport const {\n program,\n createCommand,\n createArgument,\n createOption,\n CommanderError,\n InvalidArgumentError,\n InvalidOptionArgumentError, // deprecated old name\n Command,\n Argument,\n Option,\n Help,\n} = commander;\n",
15
- "/**\n * OCX CLI - add command\n * Install components from registries\n */\n\nimport { createHash } from \"node:crypto\"\nimport { existsSync } from \"node:fs\"\nimport { mkdir, writeFile } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\n\nimport type { Command } from \"commander\"\nimport { fetchFileContent, fetchRegistryIndex } from \"../registry/fetcher.js\"\nimport type { ResolvedComponent } from \"../registry/resolver.js\"\nimport { type ResolvedDependencies, resolveDependencies } from \"../registry/resolver.js\"\nimport { type OcxLock, readOcxConfig, readOcxLock } from \"../schemas/config.js\"\nimport type { ComponentFileObject } from \"../schemas/registry.js\"\nimport { updateOpencodeJsonConfig } from \"../updaters/update-opencode-config.js\"\nimport { isContentIdentical } from \"../utils/content.js\"\nimport { ConfigError, ConflictError, IntegrityError, ValidationError } from \"../utils/errors.js\"\nimport { createSpinner, handleError, logger } from \"../utils/index.js\"\n\ninterface AddOptions {\n\tyes?: boolean\n\tdryRun?: boolean\n\tcwd?: string\n\tquiet?: boolean\n\tverbose?: boolean\n\tjson?: boolean\n}\n\nexport function registerAddCommand(program: Command): void {\n\tprogram\n\t\t.command(\"add\")\n\t\t.description(\"Add components to your project\")\n\t\t.argument(\"<components...>\", \"Components to install\")\n\t\t.option(\"-y, --yes\", \"Skip prompts\")\n\t\t.option(\"--dry-run\", \"Show what would be installed without making changes\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"-q, --quiet\", \"Suppress output\")\n\t\t.option(\"-v, --verbose\", \"Verbose output\")\n\t\t.option(\"--json\", \"Output as JSON\")\n\t\t.action(async (components: string[], options: AddOptions) => {\n\t\t\ttry {\n\t\t\t\tawait runAdd(components, options)\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error, { json: options.json })\n\t\t\t}\n\t\t})\n}\n\nasync function runAdd(componentNames: string[], options: AddOptions): Promise<void> {\n\tconst cwd = options.cwd ?? process.cwd()\n\tconst lockPath = join(cwd, \"ocx.lock\")\n\n\t// Load config\n\tconst config = await readOcxConfig(cwd)\n\tif (!config) {\n\t\tthrow new ConfigError(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t}\n\n\t// Load or create lock\n\tlet lock: OcxLock = { lockVersion: 1, installed: {} }\n\tconst existingLock = await readOcxLock(cwd)\n\tif (existingLock) {\n\t\tlock = existingLock\n\t}\n\n\tconst spin = options.quiet ? null : createSpinner({ text: \"Resolving dependencies...\" })\n\tspin?.start()\n\n\ttry {\n\t\t// Resolve all dependencies across all configured registries\n\t\tconst resolved = await resolveDependencies(config.registries, componentNames)\n\n\t\tspin?.succeed(`Resolved ${resolved.components.length} components`)\n\n\t\tif (options.verbose) {\n\t\t\tlogger.info(\"Install order:\")\n\t\t\tfor (const name of resolved.installOrder) {\n\t\t\t\tlogger.info(` - ${name}`)\n\t\t\t}\n\t\t}\n\n\t\tif (options.dryRun) {\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.info(\"Dry run - no changes made\")\n\t\t\tlogResolved(resolved)\n\t\t\treturn\n\t\t}\n\n\t\t// Phase 1: Fetch all files and perform pre-flight checks (Law 4: Fail Fast)\n\t\t// We check ALL conflicts BEFORE writing ANY files to ensure atomic behavior\n\t\tconst fetchSpin = options.quiet ? null : createSpinner({ text: \"Fetching components...\" })\n\t\tfetchSpin?.start()\n\n\t\tconst componentBundles: {\n\t\t\tcomponent: ResolvedComponent\n\t\t\tfiles: { path: string; content: Buffer }[]\n\t\t\tcomputedHash: string\n\t\t}[] = []\n\n\t\tfor (const component of resolved.components) {\n\t\t\t// Fetch component files and compute bundle hash\n\t\t\tconst files: { path: string; content: Buffer }[] = []\n\t\t\tfor (const file of component.files) {\n\t\t\t\tconst content = await fetchFileContent(component.baseUrl, component.name, file.path)\n\t\t\t\tfiles.push({ path: file.path, content: Buffer.from(content) })\n\t\t\t}\n\n\t\t\tconst computedHash = await hashBundle(files)\n\n\t\t\t// Verify integrity if already in lock (use qualifiedName as key)\n\t\t\tconst existingEntry = lock.installed[component.qualifiedName]\n\t\t\tif (existingEntry && existingEntry.hash !== computedHash) {\n\t\t\t\tfetchSpin?.fail(\"Integrity check failed\")\n\t\t\t\tthrow new IntegrityError(component.qualifiedName, existingEntry.hash, computedHash)\n\t\t\t}\n\n\t\t\t// Check for file conflicts with components from other namespaces\n\t\t\tfor (const file of component.files) {\n\t\t\t\tconst targetPath = join(cwd, file.target)\n\t\t\t\tif (existsSync(targetPath)) {\n\t\t\t\t\t// File exists - check if it's from the same component (re-install) or different (conflict)\n\t\t\t\t\tconst conflictingComponent = findComponentByFile(lock, file.target)\n\t\t\t\t\tif (conflictingComponent && conflictingComponent !== component.qualifiedName) {\n\t\t\t\t\t\tfetchSpin?.fail(\"File conflict detected\")\n\t\t\t\t\t\tthrow new ConflictError(\n\t\t\t\t\t\t\t`File conflict: ${file.target} already exists (installed by '${conflictingComponent}').\\n\\n` +\n\t\t\t\t\t\t\t\t`To resolve:\\n` +\n\t\t\t\t\t\t\t\t` 1. Remove existing: rm ${file.target}\\n` +\n\t\t\t\t\t\t\t\t` 2. Or rename it manually and update references\\n` +\n\t\t\t\t\t\t\t\t` 3. Then run: ocx add ${component.qualifiedName}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcomponentBundles.push({ component, files, computedHash })\n\t\t}\n\n\t\tfetchSpin?.succeed(`Fetched ${resolved.components.length} components`)\n\n\t\t// Phase 2: Pre-flight conflict detection (check ALL files before writing ANY)\n\t\t// This ensures atomic behavior: either all files install or none do\n\t\tconst allConflicts: string[] = []\n\n\t\tfor (const { component, files } of componentBundles) {\n\t\t\tfor (const file of files) {\n\t\t\t\tconst componentFile = component.files.find((f: ComponentFileObject) => f.path === file.path)\n\t\t\t\tif (!componentFile) continue\n\n\t\t\t\tconst targetPath = join(cwd, componentFile.target)\n\t\t\t\tif (existsSync(targetPath)) {\n\t\t\t\t\tconst existingContent = await Bun.file(targetPath).text()\n\t\t\t\t\tconst incomingContent = file.content.toString(\"utf-8\")\n\n\t\t\t\t\tif (!isContentIdentical(existingContent, incomingContent) && !options.yes) {\n\t\t\t\t\t\tallConflicts.push(componentFile.target)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fail fast on conflicts BEFORE any writes (Law 4)\n\t\tif (allConflicts.length > 0) {\n\t\t\tlogger.error(\"\")\n\t\t\tlogger.error(\"File conflicts detected:\")\n\t\t\tfor (const conflict of allConflicts) {\n\t\t\t\tlogger.error(` ✗ ${conflict}`)\n\t\t\t}\n\t\t\tlogger.error(\"\")\n\t\t\tlogger.error(\"These files have been modified since installation.\")\n\t\t\tlogger.error(\"Use --yes to overwrite, or review the changes first.\")\n\t\t\tthrow new ConflictError(\n\t\t\t\t`${allConflicts.length} file(s) have conflicts. Use --yes to overwrite.`,\n\t\t\t)\n\t\t}\n\n\t\t// Phase 3: Install all components (no conflicts possible at this point)\n\t\tconst installSpin = options.quiet ? null : createSpinner({ text: \"Installing components...\" })\n\t\tinstallSpin?.start()\n\n\t\tfor (const { component, files, computedHash } of componentBundles) {\n\t\t\t// Install component\n\t\t\tconst installResult = await installComponent(component, files, cwd, {\n\t\t\t\tyes: options.yes,\n\t\t\t\tverbose: options.verbose,\n\t\t\t})\n\n\t\t\t// Log results in verbose mode\n\t\t\tif (options.verbose) {\n\t\t\t\tfor (const f of installResult.skipped) {\n\t\t\t\t\tlogger.info(` ○ Skipped ${f} (unchanged)`)\n\t\t\t\t}\n\t\t\t\tfor (const f of installResult.overwritten) {\n\t\t\t\t\tlogger.info(` ✓ Overwrote ${f}`)\n\t\t\t\t}\n\t\t\t\tfor (const f of installResult.written) {\n\t\t\t\t\tlogger.info(` ✓ Wrote ${f}`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Fetch registry index to get version for lockfile\n\t\t\tconst index = await fetchRegistryIndex(component.baseUrl)\n\n\t\t\t// Update lock with qualifiedName as key (namespace/component format)\n\t\t\tlock.installed[component.qualifiedName] = {\n\t\t\t\tregistry: component.registryName,\n\t\t\t\tversion: index.version,\n\t\t\t\thash: computedHash,\n\t\t\t\tfiles: component.files.map((f) => f.target),\n\t\t\t\tinstalledAt: new Date().toISOString(),\n\t\t\t}\n\t\t}\n\n\t\tinstallSpin?.succeed(`Installed ${resolved.components.length} components`)\n\n\t\t// Apply opencode.json changes (ShadCN-style: component wins, user uses git)\n\t\tif (resolved.opencode && Object.keys(resolved.opencode).length > 0) {\n\t\t\tconst result = await updateOpencodeJsonConfig(cwd, resolved.opencode)\n\n\t\t\tif (!options.quiet && result.changed) {\n\t\t\t\tif (result.created) {\n\t\t\t\t\tlogger.info(\"Created opencode.jsonc\")\n\t\t\t\t} else {\n\t\t\t\t\tlogger.info(\"Updated opencode.jsonc\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update .opencode/package.json with npm dependencies\n\t\tconst hasNpmDeps = resolved.npmDependencies.length > 0\n\t\tconst hasNpmDevDeps = resolved.npmDevDependencies.length > 0\n\n\t\tif (hasNpmDeps || hasNpmDevDeps) {\n\t\t\tconst npmSpin = options.quiet\n\t\t\t\t? null\n\t\t\t\t: createSpinner({ text: \"Updating .opencode/package.json...\" })\n\t\t\tnpmSpin?.start()\n\n\t\t\ttry {\n\t\t\t\tawait updateOpencodeDevDependencies(\n\t\t\t\t\tcwd,\n\t\t\t\t\tresolved.npmDependencies,\n\t\t\t\t\tresolved.npmDevDependencies,\n\t\t\t\t)\n\t\t\t\tconst totalDeps = resolved.npmDependencies.length + resolved.npmDevDependencies.length\n\t\t\t\tnpmSpin?.succeed(`Added ${totalDeps} dependencies to .opencode/package.json`)\n\t\t\t} catch (error) {\n\t\t\t\tnpmSpin?.fail(\"Failed to update .opencode/package.json\")\n\t\t\t\tthrow error\n\t\t\t}\n\t\t}\n\n\t\t// Save lock file\n\t\tawait writeFile(lockPath, JSON.stringify(lock, null, 2), \"utf-8\")\n\n\t\tif (options.json) {\n\t\t\tconsole.log(\n\t\t\t\tJSON.stringify(\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tinstalled: resolved.installOrder,\n\t\t\t\t\t\topencode: !!resolved.opencode,\n\t\t\t\t\t},\n\t\t\t\t\tnull,\n\t\t\t\t\t2,\n\t\t\t\t),\n\t\t\t)\n\t\t} else if (!options.quiet) {\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.success(`Done! Installed ${resolved.components.length} components.`)\n\t\t}\n\t} catch (error) {\n\t\t// Only fail the resolve spinner if it's still running (error during resolution)\n\t\t// Other spinners handle their own failures\n\t\tif (spin && !spin.isSpinning) {\n\t\t\t// Spinner already stopped - error happened after resolution\n\t\t} else {\n\t\t\tspin?.fail(\"Failed to add components\")\n\t\t}\n\t\tthrow error\n\t}\n}\n\n/**\n * Writes component files to disk.\n * Pre-flight conflict detection happens before this function is called,\n * so we can safely write all files without additional conflict checks.\n */\nasync function installComponent(\n\tcomponent: ResolvedComponent,\n\tfiles: { path: string; content: Buffer }[],\n\tcwd: string,\n\t_options: { yes?: boolean; verbose?: boolean },\n): Promise<{ written: string[]; skipped: string[]; overwritten: string[] }> {\n\tconst result = {\n\t\twritten: [] as string[],\n\t\tskipped: [] as string[],\n\t\toverwritten: [] as string[],\n\t}\n\n\tfor (const file of files) {\n\t\tconst componentFile = component.files.find((f: ComponentFileObject) => f.path === file.path)\n\t\tif (!componentFile) continue\n\n\t\tconst targetPath = join(cwd, componentFile.target)\n\t\tconst targetDir = dirname(targetPath)\n\n\t\t// Check if file exists\n\t\tif (existsSync(targetPath)) {\n\t\t\t// Read existing content and compare\n\t\t\tconst existingContent = await Bun.file(targetPath).text()\n\t\t\tconst incomingContent = file.content.toString(\"utf-8\")\n\n\t\t\tif (isContentIdentical(existingContent, incomingContent)) {\n\t\t\t\t// Content is identical - skip silently\n\t\t\t\tresult.skipped.push(componentFile.target)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Content differs - overwrite (conflicts already checked in pre-flight)\n\t\t\tresult.overwritten.push(componentFile.target)\n\t\t} else {\n\t\t\tresult.written.push(componentFile.target)\n\t\t}\n\n\t\t// Create directory if needed\n\t\tif (!existsSync(targetDir)) {\n\t\t\tawait mkdir(targetDir, { recursive: true })\n\t\t}\n\n\t\tawait writeFile(targetPath, file.content)\n\t}\n\n\treturn result\n}\n\nasync function hashContent(content: string | Buffer): Promise<string> {\n\treturn createHash(\"sha256\").update(content).digest(\"hex\")\n}\n\nasync function hashBundle(files: { path: string; content: Buffer }[]): Promise<string> {\n\t// Sort files for deterministic hashing\n\tconst sorted = [...files].sort((a, b) => a.path.localeCompare(b.path))\n\n\t// Create a manifest of file hashes\n\tconst manifestParts: string[] = []\n\tfor (const file of sorted) {\n\t\tconst hash = await hashContent(file.content)\n\t\tmanifestParts.push(`${file.path}:${hash}`)\n\t}\n\n\t// Hash the manifest itself\n\treturn hashContent(manifestParts.join(\"\\n\"))\n}\n\nfunction logResolved(resolved: ResolvedDependencies): void {\n\tlogger.info(\"\")\n\tlogger.info(\"Would install:\")\n\tfor (const component of resolved.components) {\n\t\tlogger.info(` ${component.name} (${component.type}) from ${component.registryName}`)\n\t}\n\n\tif (resolved.opencode && Object.keys(resolved.opencode).length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would update opencode.json with:\")\n\t\tfor (const key of Object.keys(resolved.opencode)) {\n\t\t\tlogger.info(` ${key}`)\n\t\t}\n\t}\n\n\tif (resolved.npmDependencies.length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would install npm dependencies:\")\n\t\tfor (const dep of resolved.npmDependencies) {\n\t\t\tlogger.info(` ${dep}`)\n\t\t}\n\t}\n\n\tif (resolved.npmDevDependencies.length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would install npm dev dependencies:\")\n\t\tfor (const dep of resolved.npmDevDependencies) {\n\t\t\tlogger.info(` ${dep}`)\n\t\t}\n\t}\n}\n\n// ============================================================================\n// NPM Dependency Management\n// ============================================================================\n\ninterface NpmDependency {\n\tname: string\n\tversion: string\n}\n\ninterface OpencodePackageJson {\n\tname?: string\n\tprivate?: boolean\n\ttype?: string\n\tdependencies?: Record<string, string>\n\tdevDependencies?: Record<string, string>\n}\n\nconst DEFAULT_PACKAGE_JSON: OpencodePackageJson = {\n\tname: \"opencode-plugins\",\n\tprivate: true,\n\ttype: \"module\",\n}\n\n/**\n * Parses an npm dependency spec into name and version.\n * Handles: \"lodash\", \"lodash@4.0.0\", \"@types/node\", \"@types/node@1.0.0\"\n */\nfunction parseNpmDependency(spec: string): NpmDependency {\n\t// Guard: invalid input\n\tif (!spec?.trim()) {\n\t\tthrow new ValidationError(`Invalid npm dependency: expected non-empty string, got \"${spec}\"`)\n\t}\n\n\tconst trimmed = spec.trim()\n\tconst lastAt = trimmed.lastIndexOf(\"@\")\n\n\t// Has version: \"lodash@4.0.0\" or \"@types/node@1.0.0\"\n\tif (lastAt > 0) {\n\t\tconst name = trimmed.slice(0, lastAt)\n\t\tconst version = trimmed.slice(lastAt + 1)\n\t\tif (!version) {\n\t\t\tthrow new ValidationError(`Invalid npm dependency: missing version after @ in \"${spec}\"`)\n\t\t}\n\t\treturn { name, version }\n\t}\n\n\t// No version: \"lodash\" or \"@types/node\" → use \"*\"\n\treturn { name: trimmed, version: \"*\" }\n}\n\n/**\n * Merges new dependencies into existing package.json structure.\n * Pure function: same inputs always produce same output.\n */\nfunction mergeDevDependencies(\n\texisting: OpencodePackageJson,\n\tnewDeps: NpmDependency[],\n): OpencodePackageJson {\n\tconst merged: Record<string, string> = { ...existing.devDependencies }\n\tfor (const dep of newDeps) {\n\t\tmerged[dep.name] = dep.version\n\t}\n\treturn { ...existing, devDependencies: merged }\n}\n\n/**\n * Reads .opencode/package.json or returns default structure if missing.\n */\nasync function readOpencodePackageJson(opencodeDir: string): Promise<OpencodePackageJson> {\n\tconst pkgPath = join(opencodeDir, \"package.json\")\n\n\t// Guard: file doesn't exist - return default\n\tif (!existsSync(pkgPath)) {\n\t\treturn { ...DEFAULT_PACKAGE_JSON }\n\t}\n\n\t// Try to parse, fail fast on invalid JSON\n\ttry {\n\t\tconst content = await Bun.file(pkgPath).text()\n\t\treturn JSON.parse(content) as OpencodePackageJson\n\t} catch (e) {\n\t\tconst message = e instanceof Error ? e.message : String(e)\n\t\tthrow new ConfigError(`Invalid .opencode/package.json: ${message}`)\n\t}\n}\n\n/**\n * Modifies .opencode/.gitignore to ensure package.json and bun.lock are tracked.\n * Creates the file with sensible defaults if missing.\n */\nasync function ensureManifestFilesAreTracked(opencodeDir: string): Promise<void> {\n\tconst gitignorePath = join(opencodeDir, \".gitignore\")\n\tconst filesToTrack = new Set([\"package.json\", \"bun.lock\"])\n\tconst requiredIgnores = [\"node_modules\"]\n\n\t// Read existing lines or start fresh\n\tlet lines: string[] = []\n\tif (existsSync(gitignorePath)) {\n\t\tconst content = await Bun.file(gitignorePath).text()\n\t\tlines = content\n\t\t\t.split(\"\\n\")\n\t\t\t.map((l) => l.trim())\n\t\t\t.filter(Boolean)\n\t}\n\n\t// Remove entries that should be tracked (not ignored)\n\tlines = lines.filter((line) => !filesToTrack.has(line))\n\n\t// Ensure required ignores are present\n\tfor (const ignore of requiredIgnores) {\n\t\tif (!lines.includes(ignore)) {\n\t\t\tlines.push(ignore)\n\t\t}\n\t}\n\n\tawait Bun.write(gitignorePath, `${lines.join(\"\\n\")}\\n`)\n}\n\n/**\n * Updates .opencode/package.json with new devDependencies and ensures\n * manifest files are tracked by git.\n */\nasync function updateOpencodeDevDependencies(\n\tcwd: string,\n\tnpmDeps: string[],\n\tnpmDevDeps: string[],\n): Promise<void> {\n\t// Guard: no deps to process\n\tconst allDepSpecs = [...npmDeps, ...npmDevDeps]\n\tif (allDepSpecs.length === 0) return\n\n\tconst opencodeDir = join(cwd, \".opencode\")\n\n\t// Ensure directory exists\n\tawait mkdir(opencodeDir, { recursive: true })\n\n\t// Parse all deps - fails fast on invalid\n\tconst parsedDeps = allDepSpecs.map(parseNpmDependency)\n\n\t// Read → merge → write\n\tconst existing = await readOpencodePackageJson(opencodeDir)\n\tconst updated = mergeDevDependencies(existing, parsedDeps)\n\tawait Bun.write(join(opencodeDir, \"package.json\"), `${JSON.stringify(updated, null, 2)}\\n`)\n\n\t// Ensure manifest files are tracked by git\n\tawait ensureManifestFilesAreTracked(opencodeDir)\n}\n\n/**\n * Find which component installed a given file path\n */\nfunction findComponentByFile(lock: OcxLock, filePath: string): string | null {\n\tfor (const [qualifiedName, entry] of Object.entries(lock.installed)) {\n\t\tif (entry.files.includes(filePath)) {\n\t\t\treturn qualifiedName\n\t\t}\n\t}\n\treturn null\n}\n",
15
+ "/**\n * OCX CLI - add command\n * Install components from registries\n */\n\nimport { createHash } from \"node:crypto\"\nimport { existsSync } from \"node:fs\"\nimport { mkdir, writeFile } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\n\nimport type { Command } from \"commander\"\nimport { CLI_VERSION, GITHUB_REPO } from \"../constants.js\"\nimport { fetchFileContent, fetchRegistryIndex } from \"../registry/fetcher.js\"\nimport type { ResolvedComponent } from \"../registry/resolver.js\"\nimport { type ResolvedDependencies, resolveDependencies } from \"../registry/resolver.js\"\nimport { type OcxLock, readOcxConfig, readOcxLock } from \"../schemas/config.js\"\nimport type { ComponentFileObject, RegistryIndex } from \"../schemas/registry.js\"\nimport { updateOpencodeJsonConfig } from \"../updaters/update-opencode-config.js\"\nimport { isContentIdentical } from \"../utils/content.js\"\nimport { ConfigError, ConflictError, IntegrityError, ValidationError } from \"../utils/errors.js\"\nimport {\n\tcollectCompatIssues,\n\tcreateSpinner,\n\thandleError,\n\tlogger,\n\twarnCompatIssues,\n} from \"../utils/index.js\"\n\ninterface AddOptions {\n\tyes?: boolean\n\tdryRun?: boolean\n\tcwd?: string\n\tquiet?: boolean\n\tverbose?: boolean\n\tjson?: boolean\n\tskipCompatCheck?: boolean\n}\n\nexport function registerAddCommand(program: Command): void {\n\tprogram\n\t\t.command(\"add\")\n\t\t.description(\"Add components to your project\")\n\t\t.argument(\"<components...>\", \"Components to install\")\n\t\t.option(\"-y, --yes\", \"Skip prompts\")\n\t\t.option(\"--dry-run\", \"Show what would be installed without making changes\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"-q, --quiet\", \"Suppress output\")\n\t\t.option(\"-v, --verbose\", \"Verbose output\")\n\t\t.option(\"--json\", \"Output as JSON\")\n\t\t.option(\"--skip-compat-check\", \"Skip version compatibility checks\")\n\t\t.action(async (components: string[], options: AddOptions) => {\n\t\t\ttry {\n\t\t\t\tawait runAdd(components, options)\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error, { json: options.json })\n\t\t\t}\n\t\t})\n}\n\nasync function runAdd(componentNames: string[], options: AddOptions): Promise<void> {\n\tconst cwd = options.cwd ?? process.cwd()\n\tconst lockPath = join(cwd, \"ocx.lock\")\n\n\t// Load config\n\tconst config = await readOcxConfig(cwd)\n\tif (!config) {\n\t\tthrow new ConfigError(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t}\n\n\t// Load or create lock\n\tlet lock: OcxLock = { lockVersion: 1, installed: {} }\n\tconst existingLock = await readOcxLock(cwd)\n\tif (existingLock) {\n\t\tlock = existingLock\n\t}\n\n\tconst spin = options.quiet ? null : createSpinner({ text: \"Resolving dependencies...\" })\n\tspin?.start()\n\n\ttry {\n\t\t// Resolve all dependencies across all configured registries\n\t\tconst resolved = await resolveDependencies(config.registries, componentNames)\n\n\t\tif (options.verbose) {\n\t\t\tlogger.info(\"Install order:\")\n\t\t\tfor (const name of resolved.installOrder) {\n\t\t\t\tlogger.info(` - ${name}`)\n\t\t\t}\n\t\t}\n\n\t\t// Fetch registry indexes once (Law 2: Parse at boundary)\n\t\tconst registryIndexes = new Map<string, RegistryIndex>()\n\t\tconst uniqueBaseUrls = new Map<string, string>() // namespace -> baseUrl\n\n\t\tfor (const component of resolved.components) {\n\t\t\tif (!uniqueBaseUrls.has(component.registryName)) {\n\t\t\t\tuniqueBaseUrls.set(component.registryName, component.baseUrl)\n\t\t\t}\n\t\t}\n\n\t\tfor (const [namespace, baseUrl] of uniqueBaseUrls) {\n\t\t\tconst index = await fetchRegistryIndex(baseUrl)\n\t\t\tregistryIndexes.set(namespace, index)\n\t\t}\n\n\t\tspin?.succeed(\n\t\t\t`Resolved ${resolved.components.length} components from ${registryIndexes.size} registries`,\n\t\t)\n\n\t\t// Version compatibility check (skip if disabled via flag or config)\n\t\tconst skipCompat = options.skipCompatCheck || config.skipCompatCheck\n\t\tif (!skipCompat) {\n\t\t\tfor (const [namespace, index] of registryIndexes) {\n\t\t\t\tconst issues = collectCompatIssues({\n\t\t\t\t\tregistry: { opencode: index.opencode, ocx: index.ocx },\n\t\t\t\t\tocxVersion: CLI_VERSION,\n\t\t\t\t})\n\t\t\t\twarnCompatIssues(namespace, issues)\n\t\t\t}\n\t\t}\n\n\t\tif (options.dryRun) {\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.info(\"Dry run - no changes made\")\n\t\t\tlogResolved(resolved)\n\t\t\treturn\n\t\t}\n\n\t\t// Phase 1: Fetch all files and perform pre-flight checks (Law 4: Fail Fast)\n\t\t// We check ALL conflicts BEFORE writing ANY files to ensure atomic behavior\n\t\tconst fetchSpin = options.quiet ? null : createSpinner({ text: \"Fetching components...\" })\n\t\tfetchSpin?.start()\n\n\t\tconst componentBundles: {\n\t\t\tcomponent: ResolvedComponent\n\t\t\tfiles: { path: string; content: Buffer }[]\n\t\t\tcomputedHash: string\n\t\t}[] = []\n\n\t\tfor (const component of resolved.components) {\n\t\t\t// Fetch component files and compute bundle hash\n\t\t\tconst files: { path: string; content: Buffer }[] = []\n\t\t\tfor (const file of component.files) {\n\t\t\t\tconst content = await fetchFileContent(component.baseUrl, component.name, file.path)\n\t\t\t\tfiles.push({ path: file.path, content: Buffer.from(content) })\n\t\t\t}\n\n\t\t\tconst computedHash = await hashBundle(files)\n\n\t\t\t// Verify integrity if already in lock (use qualifiedName as key)\n\t\t\tconst existingEntry = lock.installed[component.qualifiedName]\n\t\t\tif (existingEntry && existingEntry.hash !== computedHash) {\n\t\t\t\tfetchSpin?.fail(\"Integrity check failed\")\n\t\t\t\tthrow new IntegrityError(component.qualifiedName, existingEntry.hash, computedHash)\n\t\t\t}\n\n\t\t\t// Check for file conflicts with components from other namespaces\n\t\t\tfor (const file of component.files) {\n\t\t\t\tconst targetPath = join(cwd, file.target)\n\t\t\t\tif (existsSync(targetPath)) {\n\t\t\t\t\t// File exists - check if it's from the same component (re-install) or different (conflict)\n\t\t\t\t\tconst conflictingComponent = findComponentByFile(lock, file.target)\n\t\t\t\t\tif (conflictingComponent && conflictingComponent !== component.qualifiedName) {\n\t\t\t\t\t\tfetchSpin?.fail(\"File conflict detected\")\n\t\t\t\t\t\tthrow new ConflictError(\n\t\t\t\t\t\t\t`File conflict: ${file.target} already exists (installed by '${conflictingComponent}').\\n\\n` +\n\t\t\t\t\t\t\t\t`To resolve:\\n` +\n\t\t\t\t\t\t\t\t` 1. Remove existing: rm ${file.target}\\n` +\n\t\t\t\t\t\t\t\t` 2. Or rename it manually and update references\\n` +\n\t\t\t\t\t\t\t\t` 3. Then run: ocx add ${component.qualifiedName}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcomponentBundles.push({ component, files, computedHash })\n\t\t}\n\n\t\tfetchSpin?.succeed(`Fetched ${resolved.components.length} components`)\n\n\t\t// Phase 2: Pre-flight conflict detection (check ALL files before writing ANY)\n\t\t// This ensures atomic behavior: either all files install or none do\n\t\tconst allConflicts: string[] = []\n\n\t\tfor (const { component, files } of componentBundles) {\n\t\t\tfor (const file of files) {\n\t\t\t\tconst componentFile = component.files.find((f: ComponentFileObject) => f.path === file.path)\n\t\t\t\tif (!componentFile) continue\n\n\t\t\t\tconst targetPath = join(cwd, componentFile.target)\n\t\t\t\tif (existsSync(targetPath)) {\n\t\t\t\t\tconst existingContent = await Bun.file(targetPath).text()\n\t\t\t\t\tconst incomingContent = file.content.toString(\"utf-8\")\n\n\t\t\t\t\tif (!isContentIdentical(existingContent, incomingContent) && !options.yes) {\n\t\t\t\t\t\tallConflicts.push(componentFile.target)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fail fast on conflicts BEFORE any writes (Law 4)\n\t\tif (allConflicts.length > 0) {\n\t\t\tlogger.error(\"\")\n\t\t\tlogger.error(\"File conflicts detected:\")\n\t\t\tfor (const conflict of allConflicts) {\n\t\t\t\tlogger.error(` ✗ ${conflict}`)\n\t\t\t}\n\t\t\tlogger.error(\"\")\n\t\t\tlogger.error(\"These files have been modified since installation.\")\n\t\t\tlogger.error(\"Use --yes to overwrite, or review the changes first.\")\n\t\t\tthrow new ConflictError(\n\t\t\t\t`${allConflicts.length} file(s) have conflicts. Use --yes to overwrite.`,\n\t\t\t)\n\t\t}\n\n\t\t// Phase 3: Install all components (no conflicts possible at this point)\n\t\tconst installSpin = options.quiet ? null : createSpinner({ text: \"Installing components...\" })\n\t\tinstallSpin?.start()\n\n\t\tfor (const { component, files, computedHash } of componentBundles) {\n\t\t\t// Install component\n\t\t\tconst installResult = await installComponent(component, files, cwd, {\n\t\t\t\tyes: options.yes,\n\t\t\t\tverbose: options.verbose,\n\t\t\t})\n\n\t\t\t// Log results in verbose mode\n\t\t\tif (options.verbose) {\n\t\t\t\tfor (const f of installResult.skipped) {\n\t\t\t\t\tlogger.info(` ○ Skipped ${f} (unchanged)`)\n\t\t\t\t}\n\t\t\t\tfor (const f of installResult.overwritten) {\n\t\t\t\t\tlogger.info(` ✓ Overwrote ${f}`)\n\t\t\t\t}\n\t\t\t\tfor (const f of installResult.written) {\n\t\t\t\t\tlogger.info(` ✓ Wrote ${f}`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Use cached registry index for lockfile version\n\t\t\tconst index = registryIndexes.get(component.registryName)\n\t\t\tif (!index) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`Registry index not found for \"${component.registryName}\". ` +\n\t\t\t\t\t\t`This is an internal error - please report it at https://github.com/${GITHUB_REPO}/issues`,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t// Update lock with qualifiedName as key (namespace/component format)\n\t\t\tlock.installed[component.qualifiedName] = {\n\t\t\t\tregistry: component.registryName,\n\t\t\t\tversion: index.version,\n\t\t\t\thash: computedHash,\n\t\t\t\tfiles: component.files.map((f) => f.target),\n\t\t\t\tinstalledAt: new Date().toISOString(),\n\t\t\t}\n\t\t}\n\n\t\tinstallSpin?.succeed(`Installed ${resolved.components.length} components`)\n\n\t\t// Apply opencode.json changes (ShadCN-style: component wins, user uses git)\n\t\tif (resolved.opencode && Object.keys(resolved.opencode).length > 0) {\n\t\t\tconst result = await updateOpencodeJsonConfig(cwd, resolved.opencode)\n\n\t\t\tif (!options.quiet && result.changed) {\n\t\t\t\tif (result.created) {\n\t\t\t\t\tlogger.info(\"Created opencode.jsonc\")\n\t\t\t\t} else {\n\t\t\t\t\tlogger.info(\"Updated opencode.jsonc\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update .opencode/package.json with npm dependencies\n\t\tconst hasNpmDeps = resolved.npmDependencies.length > 0\n\t\tconst hasNpmDevDeps = resolved.npmDevDependencies.length > 0\n\n\t\tif (hasNpmDeps || hasNpmDevDeps) {\n\t\t\tconst npmSpin = options.quiet\n\t\t\t\t? null\n\t\t\t\t: createSpinner({ text: \"Updating .opencode/package.json...\" })\n\t\t\tnpmSpin?.start()\n\n\t\t\ttry {\n\t\t\t\tawait updateOpencodeDevDependencies(\n\t\t\t\t\tcwd,\n\t\t\t\t\tresolved.npmDependencies,\n\t\t\t\t\tresolved.npmDevDependencies,\n\t\t\t\t)\n\t\t\t\tconst totalDeps = resolved.npmDependencies.length + resolved.npmDevDependencies.length\n\t\t\t\tnpmSpin?.succeed(`Added ${totalDeps} dependencies to .opencode/package.json`)\n\t\t\t} catch (error) {\n\t\t\t\tnpmSpin?.fail(\"Failed to update .opencode/package.json\")\n\t\t\t\tthrow error\n\t\t\t}\n\t\t}\n\n\t\t// Save lock file\n\t\tawait writeFile(lockPath, JSON.stringify(lock, null, 2), \"utf-8\")\n\n\t\tif (options.json) {\n\t\t\tconsole.log(\n\t\t\t\tJSON.stringify(\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tinstalled: resolved.installOrder,\n\t\t\t\t\t\topencode: !!resolved.opencode,\n\t\t\t\t\t},\n\t\t\t\t\tnull,\n\t\t\t\t\t2,\n\t\t\t\t),\n\t\t\t)\n\t\t} else if (!options.quiet) {\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.success(`Done! Installed ${resolved.components.length} components.`)\n\t\t}\n\t} catch (error) {\n\t\t// Only fail the resolve spinner if it's still running (error during resolution)\n\t\t// Other spinners handle their own failures\n\t\tif (spin && !spin.isSpinning) {\n\t\t\t// Spinner already stopped - error happened after resolution\n\t\t} else {\n\t\t\tspin?.fail(\"Failed to add components\")\n\t\t}\n\t\tthrow error\n\t}\n}\n\n/**\n * Writes component files to disk.\n * Pre-flight conflict detection happens before this function is called,\n * so we can safely write all files without additional conflict checks.\n */\nasync function installComponent(\n\tcomponent: ResolvedComponent,\n\tfiles: { path: string; content: Buffer }[],\n\tcwd: string,\n\t_options: { yes?: boolean; verbose?: boolean },\n): Promise<{ written: string[]; skipped: string[]; overwritten: string[] }> {\n\tconst result = {\n\t\twritten: [] as string[],\n\t\tskipped: [] as string[],\n\t\toverwritten: [] as string[],\n\t}\n\n\tfor (const file of files) {\n\t\tconst componentFile = component.files.find((f: ComponentFileObject) => f.path === file.path)\n\t\tif (!componentFile) continue\n\n\t\tconst targetPath = join(cwd, componentFile.target)\n\t\tconst targetDir = dirname(targetPath)\n\n\t\t// Check if file exists\n\t\tif (existsSync(targetPath)) {\n\t\t\t// Read existing content and compare\n\t\t\tconst existingContent = await Bun.file(targetPath).text()\n\t\t\tconst incomingContent = file.content.toString(\"utf-8\")\n\n\t\t\tif (isContentIdentical(existingContent, incomingContent)) {\n\t\t\t\t// Content is identical - skip silently\n\t\t\t\tresult.skipped.push(componentFile.target)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Content differs - overwrite (conflicts already checked in pre-flight)\n\t\t\tresult.overwritten.push(componentFile.target)\n\t\t} else {\n\t\t\tresult.written.push(componentFile.target)\n\t\t}\n\n\t\t// Create directory if needed\n\t\tif (!existsSync(targetDir)) {\n\t\t\tawait mkdir(targetDir, { recursive: true })\n\t\t}\n\n\t\tawait writeFile(targetPath, file.content)\n\t}\n\n\treturn result\n}\n\nasync function hashContent(content: string | Buffer): Promise<string> {\n\treturn createHash(\"sha256\").update(content).digest(\"hex\")\n}\n\nasync function hashBundle(files: { path: string; content: Buffer }[]): Promise<string> {\n\t// Sort files for deterministic hashing\n\tconst sorted = [...files].sort((a, b) => a.path.localeCompare(b.path))\n\n\t// Create a manifest of file hashes\n\tconst manifestParts: string[] = []\n\tfor (const file of sorted) {\n\t\tconst hash = await hashContent(file.content)\n\t\tmanifestParts.push(`${file.path}:${hash}`)\n\t}\n\n\t// Hash the manifest itself\n\treturn hashContent(manifestParts.join(\"\\n\"))\n}\n\nfunction logResolved(resolved: ResolvedDependencies): void {\n\tlogger.info(\"\")\n\tlogger.info(\"Would install:\")\n\tfor (const component of resolved.components) {\n\t\tlogger.info(` ${component.name} (${component.type}) from ${component.registryName}`)\n\t}\n\n\tif (resolved.opencode && Object.keys(resolved.opencode).length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would update opencode.json with:\")\n\t\tfor (const key of Object.keys(resolved.opencode)) {\n\t\t\tlogger.info(` ${key}`)\n\t\t}\n\t}\n\n\tif (resolved.npmDependencies.length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would install npm dependencies:\")\n\t\tfor (const dep of resolved.npmDependencies) {\n\t\t\tlogger.info(` ${dep}`)\n\t\t}\n\t}\n\n\tif (resolved.npmDevDependencies.length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would install npm dev dependencies:\")\n\t\tfor (const dep of resolved.npmDevDependencies) {\n\t\t\tlogger.info(` ${dep}`)\n\t\t}\n\t}\n}\n\n// ============================================================================\n// NPM Dependency Management\n// ============================================================================\n\ninterface NpmDependency {\n\tname: string\n\tversion: string\n}\n\ninterface OpencodePackageJson {\n\tname?: string\n\tprivate?: boolean\n\ttype?: string\n\tdependencies?: Record<string, string>\n\tdevDependencies?: Record<string, string>\n}\n\nconst DEFAULT_PACKAGE_JSON: OpencodePackageJson = {\n\tname: \"opencode-plugins\",\n\tprivate: true,\n\ttype: \"module\",\n}\n\n/**\n * Parses an npm dependency spec into name and version.\n * Handles: \"lodash\", \"lodash@4.0.0\", \"@types/node\", \"@types/node@1.0.0\"\n */\nfunction parseNpmDependency(spec: string): NpmDependency {\n\t// Guard: invalid input\n\tif (!spec?.trim()) {\n\t\tthrow new ValidationError(`Invalid npm dependency: expected non-empty string, got \"${spec}\"`)\n\t}\n\n\tconst trimmed = spec.trim()\n\tconst lastAt = trimmed.lastIndexOf(\"@\")\n\n\t// Has version: \"lodash@4.0.0\" or \"@types/node@1.0.0\"\n\tif (lastAt > 0) {\n\t\tconst name = trimmed.slice(0, lastAt)\n\t\tconst version = trimmed.slice(lastAt + 1)\n\t\tif (!version) {\n\t\t\tthrow new ValidationError(`Invalid npm dependency: missing version after @ in \"${spec}\"`)\n\t\t}\n\t\treturn { name, version }\n\t}\n\n\t// No version: \"lodash\" or \"@types/node\" → use \"*\"\n\treturn { name: trimmed, version: \"*\" }\n}\n\n/**\n * Merges new dependencies into existing package.json structure.\n * Pure function: same inputs always produce same output.\n */\nfunction mergeDevDependencies(\n\texisting: OpencodePackageJson,\n\tnewDeps: NpmDependency[],\n): OpencodePackageJson {\n\tconst merged: Record<string, string> = { ...existing.devDependencies }\n\tfor (const dep of newDeps) {\n\t\tmerged[dep.name] = dep.version\n\t}\n\treturn { ...existing, devDependencies: merged }\n}\n\n/**\n * Reads .opencode/package.json or returns default structure if missing.\n */\nasync function readOpencodePackageJson(opencodeDir: string): Promise<OpencodePackageJson> {\n\tconst pkgPath = join(opencodeDir, \"package.json\")\n\n\t// Guard: file doesn't exist - return default\n\tif (!existsSync(pkgPath)) {\n\t\treturn { ...DEFAULT_PACKAGE_JSON }\n\t}\n\n\t// Try to parse, fail fast on invalid JSON\n\ttry {\n\t\tconst content = await Bun.file(pkgPath).text()\n\t\treturn JSON.parse(content) as OpencodePackageJson\n\t} catch (e) {\n\t\tconst message = e instanceof Error ? e.message : String(e)\n\t\tthrow new ConfigError(`Invalid .opencode/package.json: ${message}`)\n\t}\n}\n\n/**\n * Modifies .opencode/.gitignore to ensure package.json and bun.lock are tracked.\n * Creates the file with sensible defaults if missing.\n */\nasync function ensureManifestFilesAreTracked(opencodeDir: string): Promise<void> {\n\tconst gitignorePath = join(opencodeDir, \".gitignore\")\n\tconst filesToTrack = new Set([\"package.json\", \"bun.lock\"])\n\tconst requiredIgnores = [\"node_modules\"]\n\n\t// Read existing lines or start fresh\n\tlet lines: string[] = []\n\tif (existsSync(gitignorePath)) {\n\t\tconst content = await Bun.file(gitignorePath).text()\n\t\tlines = content\n\t\t\t.split(\"\\n\")\n\t\t\t.map((l) => l.trim())\n\t\t\t.filter(Boolean)\n\t}\n\n\t// Remove entries that should be tracked (not ignored)\n\tlines = lines.filter((line) => !filesToTrack.has(line))\n\n\t// Ensure required ignores are present\n\tfor (const ignore of requiredIgnores) {\n\t\tif (!lines.includes(ignore)) {\n\t\t\tlines.push(ignore)\n\t\t}\n\t}\n\n\tawait Bun.write(gitignorePath, `${lines.join(\"\\n\")}\\n`)\n}\n\n/**\n * Updates .opencode/package.json with new devDependencies and ensures\n * manifest files are tracked by git.\n */\nasync function updateOpencodeDevDependencies(\n\tcwd: string,\n\tnpmDeps: string[],\n\tnpmDevDeps: string[],\n): Promise<void> {\n\t// Guard: no deps to process\n\tconst allDepSpecs = [...npmDeps, ...npmDevDeps]\n\tif (allDepSpecs.length === 0) return\n\n\tconst opencodeDir = join(cwd, \".opencode\")\n\n\t// Ensure directory exists\n\tawait mkdir(opencodeDir, { recursive: true })\n\n\t// Parse all deps - fails fast on invalid\n\tconst parsedDeps = allDepSpecs.map(parseNpmDependency)\n\n\t// Read → merge → write\n\tconst existing = await readOpencodePackageJson(opencodeDir)\n\tconst updated = mergeDevDependencies(existing, parsedDeps)\n\tawait Bun.write(join(opencodeDir, \"package.json\"), `${JSON.stringify(updated, null, 2)}\\n`)\n\n\t// Ensure manifest files are tracked by git\n\tawait ensureManifestFilesAreTracked(opencodeDir)\n}\n\n/**\n * Find which component installed a given file path\n */\nfunction findComponentByFile(lock: OcxLock, filePath: string): string | null {\n\tfor (const [qualifiedName, entry] of Object.entries(lock.installed)) {\n\t\tif (entry.files.includes(filePath)) {\n\t\t\treturn qualifiedName\n\t\t}\n\t}\n\treturn null\n}\n",
16
+ "/**\n * OCX URL Constants\n *\n * Centralized URL definitions to avoid hardcoding throughout the codebase.\n */\n\nimport pkg from \"../package.json\" with { type: \"json\" }\n\n// Base domains\nexport const OCX_DOMAIN = \"ocx.kdco.dev\"\nexport const GITHUB_REPO = \"kdcokenny/ocx\"\n\n// OCX URLs\nexport const OCX_SCHEMA_URL = `https://${OCX_DOMAIN}/schema.json`\n\n// CLI Version (single source of truth from package.json)\nexport const CLI_VERSION: string = pkg.version\n",
16
17
  "export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n",
17
18
  "import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n",
18
19
  "import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n",
@@ -20,7 +21,7 @@
20
21
  "import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n",
21
22
  "export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n",
22
23
  "import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n",
23
- "/**\n * Registry & Component Schemas\n *\n * Zod schemas with fail-fast validation following the 5 Laws of Elegant Defense.\n * Uses Cargo-style union types: string for simple defaults, object for full control.\n */\n\nimport { z } from \"zod\"\n\n// =============================================================================\n// OPENCODE NAMING CONSTRAINTS (from OpenCode docs)\n// =============================================================================\n\n/**\n * OpenCode name schema following official constraints:\n * - 1-64 characters\n * - Lowercase alphanumeric with single hyphen separators\n * - Cannot start or end with hyphen\n * - Cannot contain consecutive hyphens\n *\n * Regex: ^[a-z0-9]+(-[a-z0-9]+)*$\n */\nexport const openCodeNameSchema = z\n\t.string()\n\t.min(1, \"Name cannot be empty\")\n\t.max(64, \"Name cannot exceed 64 characters\")\n\t.regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, {\n\t\tmessage:\n\t\t\t\"Must be lowercase alphanumeric with single hyphen separators (e.g., 'my-component', 'my-plugin'). Cannot start/end with hyphen or have consecutive hyphens.\",\n\t})\n\n/**\n * Namespace schema - valid identifier for registry namespace\n * Same rules as openCodeNameSchema\n */\nexport const namespaceSchema = openCodeNameSchema\n\n/**\n * Qualified component reference: namespace/component\n * Used in CLI commands and lockfile keys\n */\nexport const qualifiedComponentSchema = z\n\t.string()\n\t.regex(/^[a-z0-9]+(-[a-z0-9]+)*\\/[a-z0-9]+(-[a-z0-9]+)*$/, {\n\t\tmessage:\n\t\t\t'Must be in format \"namespace/component\" (e.g., \"kdco/researcher\"). Both parts must be lowercase alphanumeric with hyphens.',\n\t})\n\n/**\n * Parse a qualified component reference into namespace and component.\n * Throws Error if format is invalid (Law 4: Fail Fast, Fail Loud).\n */\nexport function parseQualifiedComponent(ref: string): { namespace: string; component: string } {\n\tif (!ref.includes(\"/\")) {\n\t\tthrow new Error(`Invalid component reference: \"${ref}\". Use format: namespace/component`)\n\t}\n\tconst [namespace, component] = ref.split(\"/\")\n\tif (!namespace || !component) {\n\t\tthrow new Error(\n\t\t\t`Invalid component reference: \"${ref}\". Both namespace and component are required.`,\n\t\t)\n\t}\n\treturn { namespace, component }\n}\n\n/**\n * Create a qualified component reference from namespace and component\n */\nexport function createQualifiedComponent(namespace: string, component: string): string {\n\treturn `${namespace}/${component}`\n}\n\n/**\n * Dependency reference schema (Cargo-style):\n * - Bare string: \"utils\" -> same namespace (implicit)\n * - Qualified: \"acme/utils\" -> cross-namespace (explicit)\n */\nexport const dependencyRefSchema = z.string().refine(\n\t(dep) => {\n\t\t// Either a bare component name or a qualified namespace/component\n\t\tconst barePattern = /^[a-z0-9]+(-[a-z0-9]+)*$/\n\t\tconst qualifiedPattern = /^[a-z0-9]+(-[a-z0-9]+)*\\/[a-z0-9]+(-[a-z0-9]+)*$/\n\t\treturn barePattern.test(dep) || qualifiedPattern.test(dep)\n\t},\n\t{\n\t\tmessage:\n\t\t\t'Dependency must be either a bare name (e.g., \"utils\") or qualified (e.g., \"acme/utils\")',\n\t},\n)\n\n// =============================================================================\n// FILE TARGET SCHEMAS\n// =============================================================================\n\nexport const componentTypeSchema = z.enum([\n\t\"ocx:agent\",\n\t\"ocx:skill\",\n\t\"ocx:plugin\",\n\t\"ocx:command\",\n\t\"ocx:tool\",\n\t\"ocx:bundle\",\n])\n\nexport type ComponentType = z.infer<typeof componentTypeSchema>\n\n/**\n * Target path must be inside .opencode/ with valid subdirectory\n */\nexport const targetPathSchema = z\n\t.string()\n\t.refine((path) => path.startsWith(\".opencode/\"), {\n\t\tmessage: 'Target path must start with \".opencode/\"',\n\t})\n\t.refine(\n\t\t(path) => {\n\t\t\tconst parts = path.split(\"/\")\n\t\t\tconst dir = parts[1]\n\t\t\tif (!dir) return false\n\t\t\treturn [\"agent\", \"skill\", \"plugin\", \"command\", \"tool\", \"philosophy\"].includes(dir)\n\t\t},\n\t\t{\n\t\t\tmessage:\n\t\t\t\t'Target must be in a valid directory: \".opencode/{agent|skill|plugin|command|tool|philosophy}/...\"',\n\t\t},\n\t)\n\n// =============================================================================\n// MCP SERVER SCHEMA (Cargo-style: string URL or full object)\n// =============================================================================\n\n/**\n * OAuth configuration for MCP servers.\n * Supports advanced OAuth flows with custom client configuration.\n */\nexport const oauthConfigSchema = z.object({\n\t/** OAuth client ID */\n\tclientId: z.string().optional(),\n\t/** OAuth scopes to request */\n\tscopes: z.array(z.string()).optional(),\n\t/** OAuth authorization URL */\n\tauthUrl: z.string().optional(),\n\t/** OAuth token URL */\n\ttokenUrl: z.string().optional(),\n})\n\nexport type OAuthConfig = z.infer<typeof oauthConfigSchema>\n\n/**\n * Full MCP server configuration object\n */\nexport const mcpServerObjectSchema = z\n\t.object({\n\t\ttype: z.enum([\"remote\", \"local\"]),\n\t\t/** Server URL (relaxed validation - allows non-URL strings) */\n\t\turl: z.string().optional(),\n\t\t/**\n\t\t * Command to run for local servers.\n\t\t * Can be a single string (e.g., \"npx foo\") or array (e.g., [\"npx\", \"foo\"])\n\t\t */\n\t\tcommand: z.union([z.string(), z.array(z.string())]).optional(),\n\t\tenvironment: z.record(z.string()).optional(),\n\t\theaders: z.record(z.string()).optional(),\n\t\t/**\n\t\t * OAuth configuration.\n\t\t * - true: Enable OAuth with defaults\n\t\t * - object: Enable OAuth with custom configuration\n\t\t */\n\t\toauth: z.union([z.boolean(), oauthConfigSchema]).optional(),\n\t\tenabled: z.boolean().default(true),\n\t})\n\t.refine(\n\t\t(data) => {\n\t\t\tif (data.type === \"remote\" && !data.url) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (data.type === \"local\" && !data.command) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\t{\n\t\t\tmessage: \"Remote MCP servers require 'url', local servers require 'command'\",\n\t\t},\n\t)\n\nexport type McpServer = z.infer<typeof mcpServerObjectSchema>\n\n/**\n * Cargo-style MCP server reference:\n * - String: URL shorthand for remote server (e.g., \"https://mcp.example.com\")\n * - Object: Full configuration\n */\nexport const mcpServerRefSchema = z.union([z.string(), mcpServerObjectSchema])\n\nexport type McpServerRef = z.infer<typeof mcpServerRefSchema>\n\n// =============================================================================\n// COMPONENT FILE SCHEMA (Cargo-style: string path or full object)\n// =============================================================================\n\n/**\n * Full file configuration object\n */\nexport const componentFileObjectSchema = z.object({\n\t/** Source path in registry */\n\tpath: z.string().min(1, \"File path cannot be empty\"),\n\t/** Target path in .opencode/ */\n\ttarget: targetPathSchema,\n})\n\nexport type ComponentFileObject = z.infer<typeof componentFileObjectSchema>\n\n/**\n * Cargo-style file schema:\n * - String: Path shorthand, target auto-inferred (e.g., \"plugin/foo.ts\" -> \".opencode/plugin/foo.ts\")\n * - Object: Full configuration with explicit target\n */\nexport const componentFileSchema = z.union([\n\tz.string().min(1, \"File path cannot be empty\"),\n\tcomponentFileObjectSchema,\n])\n\nexport type ComponentFile = z.infer<typeof componentFileSchema>\n\n// =============================================================================\n// OPENCODE CONFIG BLOCK SCHEMA\n// =============================================================================\n\n// -----------------------------------------------------------------------------\n// Provider Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * Provider configuration for AI model providers.\n * Supports custom API endpoints, headers, and environment variables.\n */\nexport const providerConfigSchema = z\n\t.object({\n\t\t/** API base URL */\n\t\tapi: z.string().optional(),\n\t\t/** Custom headers */\n\t\theaders: z.record(z.string()).optional(),\n\t\t/** Environment variables for API keys */\n\t\tenv: z.record(z.string()).optional(),\n\t\t/** Whether provider is enabled */\n\t\tenabled: z.boolean().optional(),\n\t})\n\t.passthrough()\n\nexport type ProviderConfig = z.infer<typeof providerConfigSchema>\n\n// -----------------------------------------------------------------------------\n// LSP, Formatter, Command Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * Language Server Protocol configuration.\n * Defines how to start and configure LSP servers.\n */\nexport const lspConfigSchema = z\n\t.object({\n\t\t/** Command to run (string or array of args) */\n\t\tcommand: z.union([z.string(), z.array(z.string())]).optional(),\n\t\t/** Whether LSP is enabled */\n\t\tenabled: z.boolean().optional(),\n\t})\n\t.passthrough()\n\nexport type LspConfig = z.infer<typeof lspConfigSchema>\n\n/**\n * Formatter configuration for code formatting.\n * Defines the command and file patterns to format.\n */\nexport const formatterConfigSchema = z\n\t.object({\n\t\t/** Command to run (string or array of args) */\n\t\tcommand: z.union([z.string(), z.array(z.string())]).optional(),\n\t\t/** Glob pattern for files to format */\n\t\tglob: z.string().optional(),\n\t})\n\t.passthrough()\n\nexport type FormatterConfig = z.infer<typeof formatterConfigSchema>\n\n/**\n * Custom command configuration.\n * Defines executable commands with descriptions.\n */\nexport const commandConfigSchema = z\n\t.object({\n\t\t/** Command description */\n\t\tdescription: z.string().optional(),\n\t\t/** The command to run */\n\t\trun: z.string().optional(),\n\t})\n\t.passthrough()\n\nexport type CommandConfig = z.infer<typeof commandConfigSchema>\n\n// -----------------------------------------------------------------------------\n// TUI, Server, Keybind, Watcher Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * TUI (Terminal User Interface) configuration.\n */\nexport const tuiConfigSchema = z\n\t.object({\n\t\t/** Disable TUI features */\n\t\tdisabled: z.boolean().optional(),\n\t})\n\t.passthrough()\n\nexport type TuiConfig = z.infer<typeof tuiConfigSchema>\n\n/**\n * Server configuration for OpenCode server mode.\n */\nexport const serverConfigSchema = z\n\t.object({\n\t\t/** Server host */\n\t\thost: z.string().optional(),\n\t\t/** Server port */\n\t\tport: z.number().optional(),\n\t})\n\t.passthrough()\n\nexport type ServerConfig = z.infer<typeof serverConfigSchema>\n\n/**\n * Keybind configuration - maps action names to key combinations.\n */\nexport const keybindConfigSchema = z.record(z.string())\n\nexport type KeybindConfig = z.infer<typeof keybindConfigSchema>\n\n/**\n * File watcher configuration for automatic reloads.\n */\nexport const watcherConfigSchema = z\n\t.object({\n\t\t/** Patterns to include */\n\t\tinclude: z.array(z.string()).optional(),\n\t\t/** Patterns to exclude */\n\t\texclude: z.array(z.string()).optional(),\n\t})\n\t.passthrough()\n\nexport type WatcherConfig = z.infer<typeof watcherConfigSchema>\n\n// -----------------------------------------------------------------------------\n// Agent Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * Agent configuration options (matches opencode.json agent schema)\n */\nexport const agentConfigSchema = z.object({\n\t/** Per-agent model override */\n\tmodel: z.string().optional(),\n\n\t/** Agent description for self-documentation */\n\tdescription: z.string().optional(),\n\n\t/** Maximum iterations/steps for the agent (must be positive integer) */\n\tsteps: z.number().int().positive().optional(),\n\n\t/** @deprecated Use `steps` instead (must be positive integer) */\n\tmaxSteps: z.number().int().positive().optional(),\n\n\t/** Agent mode */\n\tmode: z.enum([\"primary\", \"subagent\", \"all\"]).optional(),\n\n\t/** Tool enable/disable patterns */\n\ttools: z.record(z.boolean()).optional(),\n\n\t/** Sampling temperature (provider-specific limits) */\n\ttemperature: z.number().optional(),\n\n\t/** Nucleus sampling parameter */\n\ttop_p: z.number().optional(),\n\n\t/** Additional prompt text */\n\tprompt: z.string().optional(),\n\n\t/**\n\t * Permission matrix for agent operations.\n\t * Use `{ \"*\": \"deny\" }` for bash to enable read-only agent detection.\n\t */\n\tpermission: z\n\t\t.record(z.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))]))\n\t\t.optional(),\n\n\t/** UI color for the agent */\n\tcolor: z.string().optional(),\n\n\t/** Whether the agent is disabled */\n\tdisable: z.boolean().optional(),\n\n\t/** Custom options for the agent */\n\toptions: z.record(z.any()).optional(),\n})\n\nexport type AgentConfig = z.infer<typeof agentConfigSchema>\n\n/**\n * Permission configuration schema (matches opencode.json permission schema)\n * Supports both simple values and per-path patterns\n */\nexport const permissionConfigSchema = z\n\t.object({\n\t\t/**\n\t\t * Bash command permissions.\n\t\t * - Use `\"allow\"` for full bash access\n\t\t * - Use `{ \"*\": \"deny\" }` to deny all bash (required for read-only agent detection)\n\t\t * - Use patterns like `{ \"git *\": \"allow\", \"*\": \"deny\" }` for partial access\n\t\t */\n\t\tbash: z\n\t\t\t.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))])\n\t\t\t.optional(),\n\t\t/** File edit permissions */\n\t\tedit: z\n\t\t\t.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))])\n\t\t\t.optional(),\n\t\t/** MCP server permissions */\n\t\tmcp: z.record(z.enum([\"ask\", \"allow\", \"deny\"])).optional(),\n\t})\n\t.catchall(z.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))]))\n\nexport type PermissionConfig = z.infer<typeof permissionConfigSchema>\n\n/**\n * OpenCode configuration block\n * Mirrors opencode.json structure exactly for 1:1 mapping\n */\nexport const opencodeConfigSchema = z.object({\n\t/** JSON Schema URL for IDE support */\n\t$schema: z.string().optional(),\n\n\t/** UI theme name */\n\ttheme: z.string().optional(),\n\n\t/** Logging level */\n\tlogLevel: z.string().optional(),\n\n\t/** Username for display */\n\tusername: z.string().optional(),\n\n\t/** Default model to use */\n\tmodel: z.string().optional(),\n\n\t/** Small/fast model for simple tasks */\n\tsmall_model: z.string().optional(),\n\n\t/** Default agent to use */\n\tdefault_agent: z.string().optional(),\n\n\t/** MCP servers (matches opencode.json 'mcp' field) */\n\tmcp: z.record(mcpServerRefSchema).optional(),\n\n\t/** NPM plugin packages to add to opencode.json 'plugin' array */\n\tplugin: z.array(z.string()).optional(),\n\n\t/** Tool enable/disable patterns */\n\ttools: z.record(z.boolean()).optional(),\n\n\t/** Per-agent configuration */\n\tagent: z.record(agentConfigSchema).optional(),\n\n\t/** Global instructions to append */\n\tinstructions: z.array(z.string()).optional(),\n\n\t/** Permission configuration */\n\tpermission: permissionConfigSchema.optional(),\n\n\t/** Provider configurations */\n\tprovider: z.record(providerConfigSchema).optional(),\n\n\t/** LSP configurations */\n\tlsp: z.record(lspConfigSchema).optional(),\n\n\t/** Formatter configurations */\n\tformatter: z.record(formatterConfigSchema).optional(),\n\n\t/** Custom command configurations */\n\tcommand: z.record(commandConfigSchema).optional(),\n\n\t/** TUI configuration */\n\ttui: tuiConfigSchema.optional(),\n\n\t/** Server configuration */\n\tserver: serverConfigSchema.optional(),\n\n\t/** Keybind configuration */\n\tkeybind: keybindConfigSchema.optional(),\n\n\t/** File watcher configuration */\n\twatcher: watcherConfigSchema.optional(),\n\n\t/** Enable auto-updates */\n\tauto_update: z.boolean().optional(),\n\n\t/** Enable auto-compaction */\n\tauto_compact: z.boolean().optional(),\n\n\t/** Share configuration (boolean or URL string) */\n\tshare: z.union([z.boolean(), z.string()]).optional(),\n})\n\nexport type OpencodeConfig = z.infer<typeof opencodeConfigSchema>\n\n// =============================================================================\n// COMPONENT MANIFEST SCHEMA\n// =============================================================================\n\nexport const componentManifestSchema = z.object({\n\t/** Component name (clean, no namespace prefix) */\n\tname: openCodeNameSchema,\n\n\t/** Component type */\n\ttype: componentTypeSchema,\n\n\t/** Human-readable description */\n\tdescription: z.string().min(1).max(1024),\n\n\t/**\n\t * Files to install (Cargo-style)\n\t * - String: \"plugin/foo.ts\" -> auto-infers target as \".opencode/plugin/foo.ts\"\n\t * - Object: { path: \"...\", target: \"...\" } for explicit control\n\t */\n\tfiles: z.array(componentFileSchema),\n\n\t/**\n\t * Dependencies on other components (Cargo-style)\n\t * - Bare string: \"utils\" -> same namespace (implicit)\n\t * - Qualified: \"acme/utils\" -> cross-namespace (explicit)\n\t */\n\tdependencies: z.array(dependencyRefSchema).default([]),\n\n\t/** NPM dependencies to install (supports pkg@version syntax) */\n\tnpmDependencies: z.array(z.string()).optional(),\n\n\t/** NPM dev dependencies to install (supports pkg@version syntax) */\n\tnpmDevDependencies: z.array(z.string()).optional(),\n\n\t/**\n\t * OpenCode configuration to merge into opencode.json\n\t * Use this for: mcp servers, plugins, tools, agent config, instructions, permissions\n\t */\n\topencode: opencodeConfigSchema.optional(),\n})\n\nexport type ComponentManifest = z.infer<typeof componentManifestSchema>\n\n// =============================================================================\n// NORMALIZER FUNCTIONS (Parse, Don't Validate - Law 2)\n// =============================================================================\n\n/**\n * Infer target path from source path\n * e.g., \"plugin/foo.ts\" -> \".opencode/plugin/foo.ts\"\n */\nexport function inferTargetPath(sourcePath: string): string {\n\treturn `.opencode/${sourcePath}`\n}\n\n/**\n * Normalize a file entry from string shorthand to full object\n */\nexport function normalizeFile(file: ComponentFile): ComponentFileObject {\n\tif (typeof file === \"string\") {\n\t\treturn {\n\t\t\tpath: file,\n\t\t\ttarget: inferTargetPath(file),\n\t\t}\n\t}\n\treturn file\n}\n\n/**\n * Normalize an MCP server entry from URL shorthand to full object\n */\nexport function normalizeMcpServer(server: McpServerRef): McpServer {\n\tif (typeof server === \"string\") {\n\t\treturn {\n\t\t\ttype: \"remote\",\n\t\t\turl: server,\n\t\t\tenabled: true,\n\t\t}\n\t}\n\treturn server\n}\n\n/**\n * Normalized opencode config with MCP servers expanded\n */\nexport interface NormalizedOpencodeConfig extends Omit<OpencodeConfig, \"mcp\"> {\n\tmcp?: Record<string, McpServer>\n}\n\n/**\n * Normalized component manifest with all shorthands expanded\n */\nexport interface NormalizedComponentManifest extends Omit<ComponentManifest, \"files\" | \"opencode\"> {\n\tfiles: ComponentFileObject[]\n\topencode?: NormalizedOpencodeConfig\n}\n\n/**\n * Normalize all Cargo-style shorthands in a component manifest\n * Call this at the parse boundary to get fully-typed objects\n */\nexport function normalizeComponentManifest(\n\tmanifest: ComponentManifest,\n): NormalizedComponentManifest {\n\t// Normalize MCP servers inside opencode block\n\tlet normalizedOpencode: NormalizedOpencodeConfig | undefined\n\tif (manifest.opencode) {\n\t\t// Destructure to exclude mcp from spread (Law 2: Parse, Don't Validate)\n\t\t// Only include mcp if present - avoid setting undefined (which would overwrite during mergeDeep)\n\t\tconst { mcp, ...rest } = manifest.opencode\n\t\tnormalizedOpencode = {\n\t\t\t...rest,\n\t\t\t...(mcp && {\n\t\t\t\tmcp: Object.fromEntries(\n\t\t\t\t\tObject.entries(mcp).map(([name, server]) => [name, normalizeMcpServer(server)]),\n\t\t\t\t),\n\t\t\t}),\n\t\t}\n\t}\n\n\treturn {\n\t\t...manifest,\n\t\tfiles: manifest.files.map(normalizeFile),\n\t\topencode: normalizedOpencode,\n\t}\n}\n\n// =============================================================================\n// REGISTRY SCHEMA\n// =============================================================================\n\n/**\n * Semver regex for version validation\n */\nconst semverRegex = /^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$/\n\nexport const registrySchema = z\n\t.object({\n\t\t/** Registry name */\n\t\tname: z.string().min(1, \"Registry name cannot be empty\"),\n\n\t\t/** Registry namespace - used in qualified component references (e.g., kdco/researcher) */\n\t\tnamespace: namespaceSchema,\n\n\t\t/** Registry version (semver) */\n\t\tversion: z.string().regex(semverRegex, {\n\t\t\tmessage: \"Version must be valid semver (e.g., '1.0.0', '2.1.0-beta.1')\",\n\t\t}),\n\n\t\t/** Registry author */\n\t\tauthor: z.string().min(1, \"Author cannot be empty\"),\n\n\t\t/** Components in this registry */\n\t\tcomponents: z.array(componentManifestSchema),\n\t})\n\t.refine(\n\t\t(data) => {\n\t\t\t// All dependencies must either:\n\t\t\t// 1. Be a bare name that exists in this registry\n\t\t\t// 2. Be a qualified cross-namespace reference (validated at install time)\n\t\t\tconst componentNames = new Set(data.components.map((c) => c.name))\n\t\t\tfor (const component of data.components) {\n\t\t\t\tfor (const dep of component.dependencies) {\n\t\t\t\t\t// Only validate bare (same-namespace) dependencies\n\t\t\t\t\tif (!dep.includes(\"/\") && !componentNames.has(dep)) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\t{\n\t\t\tmessage:\n\t\t\t\t\"Bare dependencies must reference components that exist in the registry. Use qualified references (e.g., 'other-registry/component') for cross-namespace dependencies.\",\n\t\t},\n\t)\n\nexport type Registry = z.infer<typeof registrySchema>\n\n// =============================================================================\n// PACKUMENT SCHEMA (npm-style versioned component)\n// =============================================================================\n\nexport const packumentSchema = z.object({\n\t/** Component name */\n\tname: openCodeNameSchema,\n\n\t/** Latest version */\n\t\"dist-tags\": z.object({\n\t\tlatest: z.string(),\n\t}),\n\n\t/** All versions */\n\tversions: z.record(componentManifestSchema),\n})\n\nexport type Packument = z.infer<typeof packumentSchema>\n\n// =============================================================================\n// REGISTRY INDEX SCHEMA\n// =============================================================================\n\nexport const registryIndexSchema = z.object({\n\t/** Registry metadata */\n\tname: z.string(),\n\tnamespace: namespaceSchema,\n\tversion: z.string(),\n\tauthor: z.string(),\n\n\t/** Component summaries for search */\n\tcomponents: z.array(\n\t\tz.object({\n\t\t\tname: openCodeNameSchema,\n\t\t\ttype: componentTypeSchema,\n\t\t\tdescription: z.string(),\n\t\t}),\n\t),\n})\n\nexport type RegistryIndex = z.infer<typeof registryIndexSchema>\n",
24
+ "/**\n * Registry & Component Schemas\n *\n * Zod schemas with fail-fast validation following the 5 Laws of Elegant Defense.\n * Uses Cargo-style union types: string for simple defaults, object for full control.\n */\n\nimport { z } from \"zod\"\n\n// =============================================================================\n// OPENCODE NAMING CONSTRAINTS (from OpenCode docs)\n// =============================================================================\n\n/**\n * OpenCode name schema following official constraints:\n * - 1-64 characters\n * - Lowercase alphanumeric with single hyphen separators\n * - Cannot start or end with hyphen\n * - Cannot contain consecutive hyphens\n *\n * Regex: ^[a-z0-9]+(-[a-z0-9]+)*$\n */\nexport const openCodeNameSchema = z\n\t.string()\n\t.min(1, \"Name cannot be empty\")\n\t.max(64, \"Name cannot exceed 64 characters\")\n\t.regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, {\n\t\tmessage:\n\t\t\t\"Must be lowercase alphanumeric with single hyphen separators (e.g., 'my-component', 'my-plugin'). Cannot start/end with hyphen or have consecutive hyphens.\",\n\t})\n\n/**\n * Namespace schema - valid identifier for registry namespace\n * Same rules as openCodeNameSchema\n */\nexport const namespaceSchema = openCodeNameSchema\n\n/**\n * Qualified component reference: namespace/component\n * Used in CLI commands and lockfile keys\n */\nexport const qualifiedComponentSchema = z\n\t.string()\n\t.regex(/^[a-z0-9]+(-[a-z0-9]+)*\\/[a-z0-9]+(-[a-z0-9]+)*$/, {\n\t\tmessage:\n\t\t\t'Must be in format \"namespace/component\" (e.g., \"kdco/researcher\"). Both parts must be lowercase alphanumeric with hyphens.',\n\t})\n\n/**\n * Parse a qualified component reference into namespace and component.\n * Throws Error if format is invalid (Law 4: Fail Fast, Fail Loud).\n */\nexport function parseQualifiedComponent(ref: string): { namespace: string; component: string } {\n\tif (!ref.includes(\"/\")) {\n\t\tthrow new Error(`Invalid component reference: \"${ref}\". Use format: namespace/component`)\n\t}\n\tconst [namespace, component] = ref.split(\"/\")\n\tif (!namespace || !component) {\n\t\tthrow new Error(\n\t\t\t`Invalid component reference: \"${ref}\". Both namespace and component are required.`,\n\t\t)\n\t}\n\treturn { namespace, component }\n}\n\n/**\n * Create a qualified component reference from namespace and component\n */\nexport function createQualifiedComponent(namespace: string, component: string): string {\n\treturn `${namespace}/${component}`\n}\n\n/**\n * Dependency reference schema (Cargo-style):\n * - Bare string: \"utils\" -> same namespace (implicit)\n * - Qualified: \"acme/utils\" -> cross-namespace (explicit)\n */\nexport const dependencyRefSchema = z.string().refine(\n\t(dep) => {\n\t\t// Either a bare component name or a qualified namespace/component\n\t\tconst barePattern = /^[a-z0-9]+(-[a-z0-9]+)*$/\n\t\tconst qualifiedPattern = /^[a-z0-9]+(-[a-z0-9]+)*\\/[a-z0-9]+(-[a-z0-9]+)*$/\n\t\treturn barePattern.test(dep) || qualifiedPattern.test(dep)\n\t},\n\t{\n\t\tmessage:\n\t\t\t'Dependency must be either a bare name (e.g., \"utils\") or qualified (e.g., \"acme/utils\")',\n\t},\n)\n\n// =============================================================================\n// FILE TARGET SCHEMAS\n// =============================================================================\n\nexport const componentTypeSchema = z.enum([\n\t\"ocx:agent\",\n\t\"ocx:skill\",\n\t\"ocx:plugin\",\n\t\"ocx:command\",\n\t\"ocx:tool\",\n\t\"ocx:bundle\",\n])\n\nexport type ComponentType = z.infer<typeof componentTypeSchema>\n\n/**\n * Target path must be inside .opencode/ with valid subdirectory\n */\nexport const targetPathSchema = z\n\t.string()\n\t.refine((path) => path.startsWith(\".opencode/\"), {\n\t\tmessage: 'Target path must start with \".opencode/\"',\n\t})\n\t.refine(\n\t\t(path) => {\n\t\t\tconst parts = path.split(\"/\")\n\t\t\tconst dir = parts[1]\n\t\t\tif (!dir) return false\n\t\t\treturn [\"agent\", \"skill\", \"plugin\", \"command\", \"tool\", \"philosophy\"].includes(dir)\n\t\t},\n\t\t{\n\t\t\tmessage:\n\t\t\t\t'Target must be in a valid directory: \".opencode/{agent|skill|plugin|command|tool|philosophy}/...\"',\n\t\t},\n\t)\n\n// =============================================================================\n// MCP SERVER SCHEMA (Cargo-style: string URL or full object)\n// =============================================================================\n\n/**\n * OAuth configuration for MCP servers.\n * Supports advanced OAuth flows with custom client configuration.\n */\nexport const oauthConfigSchema = z.object({\n\t/** OAuth client ID */\n\tclientId: z.string().optional(),\n\t/** OAuth scopes to request */\n\tscopes: z.array(z.string()).optional(),\n\t/** OAuth authorization URL */\n\tauthUrl: z.string().optional(),\n\t/** OAuth token URL */\n\ttokenUrl: z.string().optional(),\n})\n\nexport type OAuthConfig = z.infer<typeof oauthConfigSchema>\n\n/**\n * Full MCP server configuration object\n */\nexport const mcpServerObjectSchema = z\n\t.object({\n\t\ttype: z.enum([\"remote\", \"local\"]),\n\t\t/** Server URL (relaxed validation - allows non-URL strings) */\n\t\turl: z.string().optional(),\n\t\t/**\n\t\t * Command to run for local servers.\n\t\t * Can be a single string (e.g., \"npx foo\") or array (e.g., [\"npx\", \"foo\"])\n\t\t */\n\t\tcommand: z.union([z.string(), z.array(z.string())]).optional(),\n\t\tenvironment: z.record(z.string()).optional(),\n\t\theaders: z.record(z.string()).optional(),\n\t\t/**\n\t\t * OAuth configuration.\n\t\t * - true: Enable OAuth with defaults\n\t\t * - object: Enable OAuth with custom configuration\n\t\t */\n\t\toauth: z.union([z.boolean(), oauthConfigSchema]).optional(),\n\t\tenabled: z.boolean().default(true),\n\t})\n\t.refine(\n\t\t(data) => {\n\t\t\tif (data.type === \"remote\" && !data.url) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (data.type === \"local\" && !data.command) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\t{\n\t\t\tmessage: \"Remote MCP servers require 'url', local servers require 'command'\",\n\t\t},\n\t)\n\nexport type McpServer = z.infer<typeof mcpServerObjectSchema>\n\n/**\n * Cargo-style MCP server reference:\n * - String: URL shorthand for remote server (e.g., \"https://mcp.example.com\")\n * - Object: Full configuration\n */\nexport const mcpServerRefSchema = z.union([z.string(), mcpServerObjectSchema])\n\nexport type McpServerRef = z.infer<typeof mcpServerRefSchema>\n\n// =============================================================================\n// COMPONENT FILE SCHEMA (Cargo-style: string path or full object)\n// =============================================================================\n\n/**\n * Full file configuration object\n */\nexport const componentFileObjectSchema = z.object({\n\t/** Source path in registry */\n\tpath: z.string().min(1, \"File path cannot be empty\"),\n\t/** Target path in .opencode/ */\n\ttarget: targetPathSchema,\n})\n\nexport type ComponentFileObject = z.infer<typeof componentFileObjectSchema>\n\n/**\n * Cargo-style file schema:\n * - String: Path shorthand, target auto-inferred (e.g., \"plugin/foo.ts\" -> \".opencode/plugin/foo.ts\")\n * - Object: Full configuration with explicit target\n */\nexport const componentFileSchema = z.union([\n\tz.string().min(1, \"File path cannot be empty\"),\n\tcomponentFileObjectSchema,\n])\n\nexport type ComponentFile = z.infer<typeof componentFileSchema>\n\n// =============================================================================\n// OPENCODE CONFIG BLOCK SCHEMA\n// =============================================================================\n\n// -----------------------------------------------------------------------------\n// Provider Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * Provider configuration for AI model providers.\n * Supports custom API endpoints, headers, and environment variables.\n */\nexport const providerConfigSchema = z\n\t.object({\n\t\t/** API base URL */\n\t\tapi: z.string().optional(),\n\t\t/** Custom headers */\n\t\theaders: z.record(z.string()).optional(),\n\t\t/** Environment variables for API keys */\n\t\tenv: z.record(z.string()).optional(),\n\t\t/** Whether provider is enabled */\n\t\tenabled: z.boolean().optional(),\n\t})\n\t.passthrough()\n\nexport type ProviderConfig = z.infer<typeof providerConfigSchema>\n\n// -----------------------------------------------------------------------------\n// LSP, Formatter, Command Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * Language Server Protocol configuration.\n * Defines how to start and configure LSP servers.\n */\nexport const lspConfigSchema = z\n\t.object({\n\t\t/** Command to run (string or array of args) */\n\t\tcommand: z.union([z.string(), z.array(z.string())]).optional(),\n\t\t/** Whether LSP is enabled */\n\t\tenabled: z.boolean().optional(),\n\t})\n\t.passthrough()\n\nexport type LspConfig = z.infer<typeof lspConfigSchema>\n\n/**\n * Formatter configuration for code formatting.\n * Defines the command and file patterns to format.\n */\nexport const formatterConfigSchema = z\n\t.object({\n\t\t/** Command to run (string or array of args) */\n\t\tcommand: z.union([z.string(), z.array(z.string())]).optional(),\n\t\t/** Glob pattern for files to format */\n\t\tglob: z.string().optional(),\n\t})\n\t.passthrough()\n\nexport type FormatterConfig = z.infer<typeof formatterConfigSchema>\n\n/**\n * Custom command configuration.\n * Defines executable commands with descriptions.\n */\nexport const commandConfigSchema = z\n\t.object({\n\t\t/** Command description */\n\t\tdescription: z.string().optional(),\n\t\t/** The command to run */\n\t\trun: z.string().optional(),\n\t})\n\t.passthrough()\n\nexport type CommandConfig = z.infer<typeof commandConfigSchema>\n\n// -----------------------------------------------------------------------------\n// TUI, Server, Keybind, Watcher Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * TUI (Terminal User Interface) configuration.\n */\nexport const tuiConfigSchema = z\n\t.object({\n\t\t/** Disable TUI features */\n\t\tdisabled: z.boolean().optional(),\n\t})\n\t.passthrough()\n\nexport type TuiConfig = z.infer<typeof tuiConfigSchema>\n\n/**\n * Server configuration for OpenCode server mode.\n */\nexport const serverConfigSchema = z\n\t.object({\n\t\t/** Server host */\n\t\thost: z.string().optional(),\n\t\t/** Server port */\n\t\tport: z.number().optional(),\n\t})\n\t.passthrough()\n\nexport type ServerConfig = z.infer<typeof serverConfigSchema>\n\n/**\n * Keybind configuration - maps action names to key combinations.\n */\nexport const keybindConfigSchema = z.record(z.string())\n\nexport type KeybindConfig = z.infer<typeof keybindConfigSchema>\n\n/**\n * File watcher configuration for automatic reloads.\n */\nexport const watcherConfigSchema = z\n\t.object({\n\t\t/** Patterns to include */\n\t\tinclude: z.array(z.string()).optional(),\n\t\t/** Patterns to exclude */\n\t\texclude: z.array(z.string()).optional(),\n\t})\n\t.passthrough()\n\nexport type WatcherConfig = z.infer<typeof watcherConfigSchema>\n\n// -----------------------------------------------------------------------------\n// Agent Configuration\n// -----------------------------------------------------------------------------\n\n/**\n * Agent configuration options (matches opencode.json agent schema)\n */\nexport const agentConfigSchema = z.object({\n\t/** Per-agent model override */\n\tmodel: z.string().optional(),\n\n\t/** Agent description for self-documentation */\n\tdescription: z.string().optional(),\n\n\t/** Maximum iterations/steps for the agent (must be positive integer) */\n\tsteps: z.number().int().positive().optional(),\n\n\t/** @deprecated Use `steps` instead (must be positive integer) */\n\tmaxSteps: z.number().int().positive().optional(),\n\n\t/** Agent mode */\n\tmode: z.enum([\"primary\", \"subagent\", \"all\"]).optional(),\n\n\t/** Tool enable/disable patterns */\n\ttools: z.record(z.boolean()).optional(),\n\n\t/** Sampling temperature (provider-specific limits) */\n\ttemperature: z.number().optional(),\n\n\t/** Nucleus sampling parameter */\n\ttop_p: z.number().optional(),\n\n\t/** Additional prompt text */\n\tprompt: z.string().optional(),\n\n\t/**\n\t * Permission matrix for agent operations.\n\t * Use `{ \"*\": \"deny\" }` for bash to enable read-only agent detection.\n\t */\n\tpermission: z\n\t\t.record(z.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))]))\n\t\t.optional(),\n\n\t/** UI color for the agent */\n\tcolor: z.string().optional(),\n\n\t/** Whether the agent is disabled */\n\tdisable: z.boolean().optional(),\n\n\t/** Custom options for the agent */\n\toptions: z.record(z.any()).optional(),\n})\n\nexport type AgentConfig = z.infer<typeof agentConfigSchema>\n\n/**\n * Permission configuration schema (matches opencode.json permission schema)\n * Supports both simple values and per-path patterns\n */\nexport const permissionConfigSchema = z\n\t.object({\n\t\t/**\n\t\t * Bash command permissions.\n\t\t * - Use `\"allow\"` for full bash access\n\t\t * - Use `{ \"*\": \"deny\" }` to deny all bash (required for read-only agent detection)\n\t\t * - Use patterns like `{ \"git *\": \"allow\", \"*\": \"deny\" }` for partial access\n\t\t */\n\t\tbash: z\n\t\t\t.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))])\n\t\t\t.optional(),\n\t\t/** File edit permissions */\n\t\tedit: z\n\t\t\t.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))])\n\t\t\t.optional(),\n\t\t/** MCP server permissions */\n\t\tmcp: z.record(z.enum([\"ask\", \"allow\", \"deny\"])).optional(),\n\t})\n\t.catchall(z.union([z.enum([\"ask\", \"allow\", \"deny\"]), z.record(z.enum([\"ask\", \"allow\", \"deny\"]))]))\n\nexport type PermissionConfig = z.infer<typeof permissionConfigSchema>\n\n/**\n * OpenCode configuration block\n * Mirrors opencode.json structure exactly for 1:1 mapping\n */\nexport const opencodeConfigSchema = z.object({\n\t/** JSON Schema URL for IDE support */\n\t$schema: z.string().optional(),\n\n\t/** UI theme name */\n\ttheme: z.string().optional(),\n\n\t/** Logging level */\n\tlogLevel: z.string().optional(),\n\n\t/** Username for display */\n\tusername: z.string().optional(),\n\n\t/** Default model to use */\n\tmodel: z.string().optional(),\n\n\t/** Small/fast model for simple tasks */\n\tsmall_model: z.string().optional(),\n\n\t/** Default agent to use */\n\tdefault_agent: z.string().optional(),\n\n\t/** MCP servers (matches opencode.json 'mcp' field) */\n\tmcp: z.record(mcpServerRefSchema).optional(),\n\n\t/** NPM plugin packages to add to opencode.json 'plugin' array */\n\tplugin: z.array(z.string()).optional(),\n\n\t/** Tool enable/disable patterns */\n\ttools: z.record(z.boolean()).optional(),\n\n\t/** Per-agent configuration */\n\tagent: z.record(agentConfigSchema).optional(),\n\n\t/** Global instructions to append */\n\tinstructions: z.array(z.string()).optional(),\n\n\t/** Permission configuration */\n\tpermission: permissionConfigSchema.optional(),\n\n\t/** Provider configurations */\n\tprovider: z.record(providerConfigSchema).optional(),\n\n\t/** LSP configurations */\n\tlsp: z.record(lspConfigSchema).optional(),\n\n\t/** Formatter configurations */\n\tformatter: z.record(formatterConfigSchema).optional(),\n\n\t/** Custom command configurations */\n\tcommand: z.record(commandConfigSchema).optional(),\n\n\t/** TUI configuration */\n\ttui: tuiConfigSchema.optional(),\n\n\t/** Server configuration */\n\tserver: serverConfigSchema.optional(),\n\n\t/** Keybind configuration */\n\tkeybind: keybindConfigSchema.optional(),\n\n\t/** File watcher configuration */\n\twatcher: watcherConfigSchema.optional(),\n\n\t/** Enable auto-updates */\n\tauto_update: z.boolean().optional(),\n\n\t/** Enable auto-compaction */\n\tauto_compact: z.boolean().optional(),\n\n\t/** Share configuration (boolean or URL string) */\n\tshare: z.union([z.boolean(), z.string()]).optional(),\n})\n\nexport type OpencodeConfig = z.infer<typeof opencodeConfigSchema>\n\n// =============================================================================\n// COMPONENT MANIFEST SCHEMA\n// =============================================================================\n\nexport const componentManifestSchema = z.object({\n\t/** Component name (clean, no namespace prefix) */\n\tname: openCodeNameSchema,\n\n\t/** Component type */\n\ttype: componentTypeSchema,\n\n\t/** Human-readable description */\n\tdescription: z.string().min(1).max(1024),\n\n\t/**\n\t * Files to install (Cargo-style)\n\t * - String: \"plugin/foo.ts\" -> auto-infers target as \".opencode/plugin/foo.ts\"\n\t * - Object: { path: \"...\", target: \"...\" } for explicit control\n\t */\n\tfiles: z.array(componentFileSchema),\n\n\t/**\n\t * Dependencies on other components (Cargo-style)\n\t * - Bare string: \"utils\" -> same namespace (implicit)\n\t * - Qualified: \"acme/utils\" -> cross-namespace (explicit)\n\t */\n\tdependencies: z.array(dependencyRefSchema).default([]),\n\n\t/** NPM dependencies to install (supports pkg@version syntax) */\n\tnpmDependencies: z.array(z.string()).optional(),\n\n\t/** NPM dev dependencies to install (supports pkg@version syntax) */\n\tnpmDevDependencies: z.array(z.string()).optional(),\n\n\t/**\n\t * OpenCode configuration to merge into opencode.json\n\t * Use this for: mcp servers, plugins, tools, agent config, instructions, permissions\n\t */\n\topencode: opencodeConfigSchema.optional(),\n})\n\nexport type ComponentManifest = z.infer<typeof componentManifestSchema>\n\n// =============================================================================\n// NORMALIZER FUNCTIONS (Parse, Don't Validate - Law 2)\n// =============================================================================\n\n/**\n * Infer target path from source path\n * e.g., \"plugin/foo.ts\" -> \".opencode/plugin/foo.ts\"\n */\nexport function inferTargetPath(sourcePath: string): string {\n\treturn `.opencode/${sourcePath}`\n}\n\n/**\n * Normalize a file entry from string shorthand to full object\n */\nexport function normalizeFile(file: ComponentFile): ComponentFileObject {\n\tif (typeof file === \"string\") {\n\t\treturn {\n\t\t\tpath: file,\n\t\t\ttarget: inferTargetPath(file),\n\t\t}\n\t}\n\treturn file\n}\n\n/**\n * Normalize an MCP server entry from URL shorthand to full object\n */\nexport function normalizeMcpServer(server: McpServerRef): McpServer {\n\tif (typeof server === \"string\") {\n\t\treturn {\n\t\t\ttype: \"remote\",\n\t\t\turl: server,\n\t\t\tenabled: true,\n\t\t}\n\t}\n\treturn server\n}\n\n/**\n * Normalized opencode config with MCP servers expanded\n */\nexport interface NormalizedOpencodeConfig extends Omit<OpencodeConfig, \"mcp\"> {\n\tmcp?: Record<string, McpServer>\n}\n\n/**\n * Normalized component manifest with all shorthands expanded\n */\nexport interface NormalizedComponentManifest extends Omit<ComponentManifest, \"files\" | \"opencode\"> {\n\tfiles: ComponentFileObject[]\n\topencode?: NormalizedOpencodeConfig\n}\n\n/**\n * Normalize all Cargo-style shorthands in a component manifest\n * Call this at the parse boundary to get fully-typed objects\n */\nexport function normalizeComponentManifest(\n\tmanifest: ComponentManifest,\n): NormalizedComponentManifest {\n\t// Normalize MCP servers inside opencode block\n\tlet normalizedOpencode: NormalizedOpencodeConfig | undefined\n\tif (manifest.opencode) {\n\t\t// Destructure to exclude mcp from spread (Law 2: Parse, Don't Validate)\n\t\t// Only include mcp if present - avoid setting undefined (which would overwrite during mergeDeep)\n\t\tconst { mcp, ...rest } = manifest.opencode\n\t\tnormalizedOpencode = {\n\t\t\t...rest,\n\t\t\t...(mcp && {\n\t\t\t\tmcp: Object.fromEntries(\n\t\t\t\t\tObject.entries(mcp).map(([name, server]) => [name, normalizeMcpServer(server)]),\n\t\t\t\t),\n\t\t\t}),\n\t\t}\n\t}\n\n\treturn {\n\t\t...manifest,\n\t\tfiles: manifest.files.map(normalizeFile),\n\t\topencode: normalizedOpencode,\n\t}\n}\n\n// =============================================================================\n// REGISTRY SCHEMA\n// =============================================================================\n\n/**\n * Semver regex for version validation\n */\nconst semverRegex = /^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$/\n\nexport const registrySchema = z\n\t.object({\n\t\t/** Registry name */\n\t\tname: z.string().min(1, \"Registry name cannot be empty\"),\n\n\t\t/** Registry namespace - used in qualified component references (e.g., kdco/researcher) */\n\t\tnamespace: namespaceSchema,\n\n\t\t/** Registry version (semver) */\n\t\tversion: z.string().regex(semverRegex, {\n\t\t\tmessage: \"Version must be valid semver (e.g., '1.0.0', '2.1.0-beta.1')\",\n\t\t}),\n\n\t\t/** Registry author */\n\t\tauthor: z.string().min(1, \"Author cannot be empty\"),\n\n\t\t/** Minimum OpenCode version required (semver, e.g., \"1.0.0\") */\n\t\topencode: z\n\t\t\t.string()\n\t\t\t.regex(semverRegex, {\n\t\t\t\tmessage: \"OpenCode version must be valid semver\",\n\t\t\t})\n\t\t\t.optional(),\n\n\t\t/** Minimum OCX CLI version required (semver, e.g., \"1.0.0\") */\n\t\tocx: z\n\t\t\t.string()\n\t\t\t.regex(semverRegex, {\n\t\t\t\tmessage: \"OCX version must be valid semver\",\n\t\t\t})\n\t\t\t.optional(),\n\n\t\t/** Components in this registry */\n\t\tcomponents: z.array(componentManifestSchema),\n\t})\n\t.refine(\n\t\t(data) => {\n\t\t\t// All dependencies must either:\n\t\t\t// 1. Be a bare name that exists in this registry\n\t\t\t// 2. Be a qualified cross-namespace reference (validated at install time)\n\t\t\tconst componentNames = new Set(data.components.map((c) => c.name))\n\t\t\tfor (const component of data.components) {\n\t\t\t\tfor (const dep of component.dependencies) {\n\t\t\t\t\t// Only validate bare (same-namespace) dependencies\n\t\t\t\t\tif (!dep.includes(\"/\") && !componentNames.has(dep)) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\t{\n\t\t\tmessage:\n\t\t\t\t\"Bare dependencies must reference components that exist in the registry. Use qualified references (e.g., 'other-registry/component') for cross-namespace dependencies.\",\n\t\t},\n\t)\n\nexport type Registry = z.infer<typeof registrySchema>\n\n// =============================================================================\n// PACKUMENT SCHEMA (npm-style versioned component)\n// =============================================================================\n\nexport const packumentSchema = z.object({\n\t/** Component name */\n\tname: openCodeNameSchema,\n\n\t/** Latest version */\n\t\"dist-tags\": z.object({\n\t\tlatest: z.string(),\n\t}),\n\n\t/** All versions */\n\tversions: z.record(componentManifestSchema),\n})\n\nexport type Packument = z.infer<typeof packumentSchema>\n\n// =============================================================================\n// REGISTRY INDEX SCHEMA\n// =============================================================================\n\nexport const registryIndexSchema = z.object({\n\t/** Registry metadata */\n\tname: z.string(),\n\tnamespace: namespaceSchema,\n\tversion: z.string(),\n\tauthor: z.string(),\n\n\t/** Minimum OpenCode version required */\n\topencode: z\n\t\t.string()\n\t\t.regex(semverRegex, {\n\t\t\tmessage: \"OpenCode version must be valid semver\",\n\t\t})\n\t\t.optional(),\n\n\t/** Minimum OCX CLI version required */\n\tocx: z\n\t\t.string()\n\t\t.regex(semverRegex, {\n\t\t\tmessage: \"OCX version must be valid semver\",\n\t\t})\n\t\t.optional(),\n\n\t/** Component summaries for search */\n\tcomponents: z.array(\n\t\tz.object({\n\t\t\tname: openCodeNameSchema,\n\t\t\ttype: componentTypeSchema,\n\t\t\tdescription: z.string(),\n\t\t}),\n\t),\n})\n\nexport type RegistryIndex = z.infer<typeof registryIndexSchema>\n",
24
25
  "/**\n * Custom error classes with error codes\n * Following fail-fast philosophy - clear, actionable errors\n */\n\nexport type ErrorCode =\n\t| \"NOT_FOUND\"\n\t| \"NETWORK_ERROR\"\n\t| \"CONFIG_ERROR\"\n\t| \"VALIDATION_ERROR\"\n\t| \"CONFLICT\"\n\t| \"PERMISSION_ERROR\"\n\t| \"INTEGRITY_ERROR\"\n\nexport const EXIT_CODES = {\n\tSUCCESS: 0,\n\tGENERAL: 1,\n\tNOT_FOUND: 66,\n\tNETWORK: 69,\n\tCONFIG: 78,\n\tINTEGRITY: 1, // Exit code for integrity failures\n} as const\n\nexport class OCXError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly code: ErrorCode,\n\t\tpublic readonly exitCode: number = EXIT_CODES.GENERAL,\n\t) {\n\t\tsuper(message)\n\t\tthis.name = \"OCXError\"\n\t}\n}\n\nexport class NotFoundError extends OCXError {\n\tconstructor(message: string) {\n\t\tsuper(message, \"NOT_FOUND\", EXIT_CODES.NOT_FOUND)\n\t\tthis.name = \"NotFoundError\"\n\t}\n}\n\nexport class NetworkError extends OCXError {\n\tconstructor(message: string) {\n\t\tsuper(message, \"NETWORK_ERROR\", EXIT_CODES.NETWORK)\n\t\tthis.name = \"NetworkError\"\n\t}\n}\n\nexport class ConfigError extends OCXError {\n\tconstructor(message: string) {\n\t\tsuper(message, \"CONFIG_ERROR\", EXIT_CODES.CONFIG)\n\t\tthis.name = \"ConfigError\"\n\t}\n}\n\nexport class ValidationError extends OCXError {\n\tconstructor(message: string) {\n\t\tsuper(message, \"VALIDATION_ERROR\", EXIT_CODES.GENERAL)\n\t\tthis.name = \"ValidationError\"\n\t}\n}\n\nexport class ConflictError extends OCXError {\n\tconstructor(message: string) {\n\t\tsuper(message, \"CONFLICT\", EXIT_CODES.GENERAL)\n\t\tthis.name = \"ConflictError\"\n\t}\n}\n\nexport class IntegrityError extends OCXError {\n\tconstructor(component: string, expected: string, found: string) {\n\t\tconst message =\n\t\t\t`Integrity verification failed for \"${component}\"\\n` +\n\t\t\t` Expected: ${expected}\\n` +\n\t\t\t` Found: ${found}\\n\\n` +\n\t\t\t`The registry content has changed since this component was locked.\\n` +\n\t\t\t`Use 'ocx update ${component}' to intentionally update this component.`\n\t\tsuper(message, \"INTEGRITY_ERROR\", EXIT_CODES.INTEGRITY)\n\t\tthis.name = \"IntegrityError\"\n\t}\n}\n",
25
26
  "/**\n * Registry Fetcher with in-memory caching\n * Based on: https://github.com/shadcn-ui/ui/blob/main/packages/shadcn/src/registry/fetcher.ts\n */\n\nimport type { ComponentManifest, McpServer, RegistryIndex } from \"../schemas/registry.js\"\nimport {\n\tcomponentManifestSchema,\n\tpackumentSchema,\n\tregistryIndexSchema,\n} from \"../schemas/registry.js\"\nimport { NetworkError, NotFoundError, ValidationError } from \"../utils/errors.js\"\n\n// In-memory cache for deduplication\nconst cache = new Map<string, Promise<unknown>>()\n\n/**\n * Fetch with caching - deduplicates concurrent requests\n */\nasync function fetchWithCache<T>(url: string, parse: (data: unknown) => T): Promise<T> {\n\tconst cached = cache.get(url)\n\tif (cached) {\n\t\treturn cached as Promise<T>\n\t}\n\n\tconst promise = (async () => {\n\t\tconst response = await fetch(url)\n\n\t\tif (!response.ok) {\n\t\t\tif (response.status === 404) {\n\t\t\t\tthrow new NotFoundError(`Not found: ${url}`)\n\t\t\t}\n\t\t\tthrow new NetworkError(`Failed to fetch ${url}: ${response.status} ${response.statusText}`)\n\t\t}\n\n\t\tconst data = await response.json()\n\t\treturn parse(data)\n\t})()\n\n\tcache.set(url, promise)\n\n\t// Clean up cache on error\n\tpromise.catch(() => cache.delete(url))\n\n\treturn promise\n}\n\n/**\n * Fetch registry index\n */\nexport async function fetchRegistryIndex(baseUrl: string): Promise<RegistryIndex> {\n\tconst url = `${baseUrl.replace(/\\/$/, \"\")}/index.json`\n\n\treturn fetchWithCache(url, (data) => {\n\t\tconst result = registryIndexSchema.safeParse(data)\n\t\tif (!result.success) {\n\t\t\tthrow new ValidationError(`Invalid registry format at ${url}: ${result.error.message}`)\n\t\t}\n\t\treturn result.data\n\t})\n}\n\n/**\n * Fetch a component from registry and return the latest manifest\n */\nexport async function fetchComponent(baseUrl: string, name: string): Promise<ComponentManifest> {\n\tconst result = await fetchComponentVersion(baseUrl, name)\n\treturn result.manifest\n}\n\n/**\n * Fetch a component from registry with specific or latest version.\n * Returns both the manifest and the resolved version.\n */\nexport async function fetchComponentVersion(\n\tbaseUrl: string,\n\tname: string,\n\tversion?: string,\n): Promise<{ manifest: ComponentManifest; version: string }> {\n\tconst url = `${baseUrl.replace(/\\/$/, \"\")}/components/${name}.json`\n\n\treturn fetchWithCache(`${url}#v=${version ?? \"latest\"}`, (data) => {\n\t\t// 1. Parse as packument\n\t\tconst packumentResult = packumentSchema.safeParse(data)\n\t\tif (!packumentResult.success) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`Invalid packument format for \"${name}\": ${packumentResult.error.message}`,\n\t\t\t)\n\t\t}\n\n\t\tconst packument = packumentResult.data\n\n\t\t// 2. Resolve version (specific or latest)\n\t\tconst resolvedVersion = version ?? packument[\"dist-tags\"].latest\n\t\tconst manifest = packument.versions[resolvedVersion]\n\n\t\tif (!manifest) {\n\t\t\tif (version) {\n\t\t\t\tconst availableVersions = Object.keys(packument.versions).join(\", \")\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`Component \"${name}\" has no version \"${version}\". Available: ${availableVersions}`,\n\t\t\t\t)\n\t\t\t}\n\t\t\tthrow new ValidationError(\n\t\t\t\t`Component \"${name}\" has no manifest for latest version ${resolvedVersion}`,\n\t\t\t)\n\t\t}\n\n\t\t// 3. Validate manifest\n\t\tconst manifestResult = componentManifestSchema.safeParse(manifest)\n\t\tif (!manifestResult.success) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`Invalid component manifest for \"${name}@${resolvedVersion}\": ${manifestResult.error.message}`,\n\t\t\t)\n\t\t}\n\n\t\treturn { manifest: manifestResult.data, version: resolvedVersion }\n\t})\n}\n\n/**\n * Fetch actual file content from registry\n */\nexport async function fetchFileContent(\n\tbaseUrl: string,\n\tcomponentName: string,\n\tfilePath: string,\n): Promise<string> {\n\tconst url = `${baseUrl.replace(/\\/$/, \"\")}/components/${componentName}/${filePath}`\n\n\tconst response = await fetch(url)\n\tif (!response.ok) {\n\t\tthrow new NetworkError(\n\t\t\t`Failed to fetch file ${filePath} for ${componentName}: ${response.status} ${response.statusText}`,\n\t\t)\n\t}\n\n\treturn response.text()\n}\n\n// Re-export types for convenience\nexport type { ComponentManifest, RegistryIndex, McpServer }\n",
26
27
  "function e(e,t,n){let r=n=>e(n,...t);return n===void 0?r:Object.assign(r,{lazy:n,lazyArgs:t})}export{e as t};\n//# sourceMappingURL=lazyDataLastImpl-DtF3cihj.js.map",
@@ -35,7 +36,7 @@
35
36
  "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\nimport { createScanner } from './scanner';\nvar ParseOptions;\n(function (ParseOptions) {\n ParseOptions.DEFAULT = {\n allowTrailingComma: false\n };\n})(ParseOptions || (ParseOptions = {}));\n/**\n * For a given offset, evaluate the location in the JSON document. Each segment in the location path is either a property name or an array index.\n */\nexport function getLocation(text, position) {\n const segments = []; // strings or numbers\n const earlyReturnException = new Object();\n let previousNode = undefined;\n const previousNodeInst = {\n value: {},\n offset: 0,\n length: 0,\n type: 'object',\n parent: undefined\n };\n let isAtPropertyKey = false;\n function setPreviousNode(value, offset, length, type) {\n previousNodeInst.value = value;\n previousNodeInst.offset = offset;\n previousNodeInst.length = length;\n previousNodeInst.type = type;\n previousNodeInst.colonOffset = undefined;\n previousNode = previousNodeInst;\n }\n try {\n visit(text, {\n onObjectBegin: (offset, length) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n isAtPropertyKey = position > offset;\n segments.push(''); // push a placeholder (will be replaced)\n },\n onObjectProperty: (name, offset, length) => {\n if (position < offset) {\n throw earlyReturnException;\n }\n setPreviousNode(name, offset, length, 'property');\n segments[segments.length - 1] = name;\n if (position <= offset + length) {\n throw earlyReturnException;\n }\n },\n onObjectEnd: (offset, length) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n segments.pop();\n },\n onArrayBegin: (offset, length) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n segments.push(0);\n },\n onArrayEnd: (offset, length) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n previousNode = undefined;\n segments.pop();\n },\n onLiteralValue: (value, offset, length) => {\n if (position < offset) {\n throw earlyReturnException;\n }\n setPreviousNode(value, offset, length, getNodeType(value));\n if (position <= offset + length) {\n throw earlyReturnException;\n }\n },\n onSeparator: (sep, offset, length) => {\n if (position <= offset) {\n throw earlyReturnException;\n }\n if (sep === ':' && previousNode && previousNode.type === 'property') {\n previousNode.colonOffset = offset;\n isAtPropertyKey = false;\n previousNode = undefined;\n }\n else if (sep === ',') {\n const last = segments[segments.length - 1];\n if (typeof last === 'number') {\n segments[segments.length - 1] = last + 1;\n }\n else {\n isAtPropertyKey = true;\n segments[segments.length - 1] = '';\n }\n previousNode = undefined;\n }\n }\n });\n }\n catch (e) {\n if (e !== earlyReturnException) {\n throw e;\n }\n }\n return {\n path: segments,\n previousNode,\n isAtPropertyKey,\n matches: (pattern) => {\n let k = 0;\n for (let i = 0; k < pattern.length && i < segments.length; i++) {\n if (pattern[k] === segments[i] || pattern[k] === '*') {\n k++;\n }\n else if (pattern[k] !== '**') {\n return false;\n }\n }\n return k === pattern.length;\n }\n };\n}\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore always check the errors list to find out if the input was valid.\n */\nexport function parse(text, errors = [], options = ParseOptions.DEFAULT) {\n let currentProperty = null;\n let currentParent = [];\n const previousParents = [];\n function onValue(value) {\n if (Array.isArray(currentParent)) {\n currentParent.push(value);\n }\n else if (currentProperty !== null) {\n currentParent[currentProperty] = value;\n }\n }\n const visitor = {\n onObjectBegin: () => {\n const object = {};\n onValue(object);\n previousParents.push(currentParent);\n currentParent = object;\n currentProperty = null;\n },\n onObjectProperty: (name) => {\n currentProperty = name;\n },\n onObjectEnd: () => {\n currentParent = previousParents.pop();\n },\n onArrayBegin: () => {\n const array = [];\n onValue(array);\n previousParents.push(currentParent);\n currentParent = array;\n currentProperty = null;\n },\n onArrayEnd: () => {\n currentParent = previousParents.pop();\n },\n onLiteralValue: onValue,\n onError: (error, offset, length) => {\n errors.push({ error, offset, length });\n }\n };\n visit(text, visitor, options);\n return currentParent[0];\n}\n/**\n * Parses the given text and returns a tree representation the JSON content. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n */\nexport function parseTree(text, errors = [], options = ParseOptions.DEFAULT) {\n let currentParent = { type: 'array', offset: -1, length: -1, children: [], parent: undefined }; // artificial root\n function ensurePropertyComplete(endOffset) {\n if (currentParent.type === 'property') {\n currentParent.length = endOffset - currentParent.offset;\n currentParent = currentParent.parent;\n }\n }\n function onValue(valueNode) {\n currentParent.children.push(valueNode);\n return valueNode;\n }\n const visitor = {\n onObjectBegin: (offset) => {\n currentParent = onValue({ type: 'object', offset, length: -1, parent: currentParent, children: [] });\n },\n onObjectProperty: (name, offset, length) => {\n currentParent = onValue({ type: 'property', offset, length: -1, parent: currentParent, children: [] });\n currentParent.children.push({ type: 'string', value: name, offset, length, parent: currentParent });\n },\n onObjectEnd: (offset, length) => {\n ensurePropertyComplete(offset + length); // in case of a missing value for a property: make sure property is complete\n currentParent.length = offset + length - currentParent.offset;\n currentParent = currentParent.parent;\n ensurePropertyComplete(offset + length);\n },\n onArrayBegin: (offset, length) => {\n currentParent = onValue({ type: 'array', offset, length: -1, parent: currentParent, children: [] });\n },\n onArrayEnd: (offset, length) => {\n currentParent.length = offset + length - currentParent.offset;\n currentParent = currentParent.parent;\n ensurePropertyComplete(offset + length);\n },\n onLiteralValue: (value, offset, length) => {\n onValue({ type: getNodeType(value), offset, length, parent: currentParent, value });\n ensurePropertyComplete(offset + length);\n },\n onSeparator: (sep, offset, length) => {\n if (currentParent.type === 'property') {\n if (sep === ':') {\n currentParent.colonOffset = offset;\n }\n else if (sep === ',') {\n ensurePropertyComplete(offset);\n }\n }\n },\n onError: (error, offset, length) => {\n errors.push({ error, offset, length });\n }\n };\n visit(text, visitor, options);\n const result = currentParent.children[0];\n if (result) {\n delete result.parent;\n }\n return result;\n}\n/**\n * Finds the node at the given path in a JSON DOM.\n */\nexport function findNodeAtLocation(root, path) {\n if (!root) {\n return undefined;\n }\n let node = root;\n for (let segment of path) {\n if (typeof segment === 'string') {\n if (node.type !== 'object' || !Array.isArray(node.children)) {\n return undefined;\n }\n let found = false;\n for (const propertyNode of node.children) {\n if (Array.isArray(propertyNode.children) && propertyNode.children[0].value === segment && propertyNode.children.length === 2) {\n node = propertyNode.children[1];\n found = true;\n break;\n }\n }\n if (!found) {\n return undefined;\n }\n }\n else {\n const index = segment;\n if (node.type !== 'array' || index < 0 || !Array.isArray(node.children) || index >= node.children.length) {\n return undefined;\n }\n node = node.children[index];\n }\n }\n return node;\n}\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nexport function getNodePath(node) {\n if (!node.parent || !node.parent.children) {\n return [];\n }\n const path = getNodePath(node.parent);\n if (node.parent.type === 'property') {\n const key = node.parent.children[0].value;\n path.push(key);\n }\n else if (node.parent.type === 'array') {\n const index = node.parent.children.indexOf(node);\n if (index !== -1) {\n path.push(index);\n }\n }\n return path;\n}\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nexport function getNodeValue(node) {\n switch (node.type) {\n case 'array':\n return node.children.map(getNodeValue);\n case 'object':\n const obj = Object.create(null);\n for (let prop of node.children) {\n const valueNode = prop.children[1];\n if (valueNode) {\n obj[prop.children[0].value] = getNodeValue(valueNode);\n }\n }\n return obj;\n case 'null':\n case 'string':\n case 'number':\n case 'boolean':\n return node.value;\n default:\n return undefined;\n }\n}\nexport function contains(node, offset, includeRightBound = false) {\n return (offset >= node.offset && offset < (node.offset + node.length)) || includeRightBound && (offset === (node.offset + node.length));\n}\n/**\n * Finds the most inner node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nexport function findNodeAtOffset(node, offset, includeRightBound = false) {\n if (contains(node, offset, includeRightBound)) {\n const children = node.children;\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length && children[i].offset <= offset; i++) {\n const item = findNodeAtOffset(children[i], offset, includeRightBound);\n if (item) {\n return item;\n }\n }\n }\n return node;\n }\n return undefined;\n}\n/**\n * Parses the given text and invokes the visitor functions for each object, array and literal reached.\n */\nexport function visit(text, visitor, options = ParseOptions.DEFAULT) {\n const _scanner = createScanner(text, false);\n // Important: Only pass copies of this to visitor functions to prevent accidental modification, and\n // to not affect visitor functions which stored a reference to a previous JSONPath\n const _jsonPath = [];\n // Depth of onXXXBegin() callbacks suppressed. onXXXEnd() decrements this if it isn't 0 already.\n // Callbacks are only called when this value is 0.\n let suppressedCallbacks = 0;\n function toNoArgVisit(visitFunction) {\n return visitFunction ? () => suppressedCallbacks === 0 && visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toOneArgVisit(visitFunction) {\n return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n }\n function toOneArgVisitWithPath(visitFunction) {\n return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n }\n function toBeginVisit(visitFunction) {\n return visitFunction ?\n () => {\n if (suppressedCallbacks > 0) {\n suppressedCallbacks++;\n }\n else {\n let cbReturn = visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice());\n if (cbReturn === false) {\n suppressedCallbacks = 1;\n }\n }\n }\n : () => true;\n }\n function toEndVisit(visitFunction) {\n return visitFunction ?\n () => {\n if (suppressedCallbacks > 0) {\n suppressedCallbacks--;\n }\n if (suppressedCallbacks === 0) {\n visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter());\n }\n }\n : () => true;\n }\n const onObjectBegin = toBeginVisit(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toEndVisit(visitor.onObjectEnd), onArrayBegin = toBeginVisit(visitor.onArrayBegin), onArrayEnd = toEndVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError);\n const disallowComments = options && options.disallowComments;\n const allowTrailingComma = options && options.allowTrailingComma;\n function scanNext() {\n while (true) {\n const token = _scanner.scan();\n switch (_scanner.getTokenError()) {\n case 4 /* ScanError.InvalidUnicode */:\n handleError(14 /* ParseErrorCode.InvalidUnicode */);\n break;\n case 5 /* ScanError.InvalidEscapeCharacter */:\n handleError(15 /* ParseErrorCode.InvalidEscapeCharacter */);\n break;\n case 3 /* ScanError.UnexpectedEndOfNumber */:\n handleError(13 /* ParseErrorCode.UnexpectedEndOfNumber */);\n break;\n case 1 /* ScanError.UnexpectedEndOfComment */:\n if (!disallowComments) {\n handleError(11 /* ParseErrorCode.UnexpectedEndOfComment */);\n }\n break;\n case 2 /* ScanError.UnexpectedEndOfString */:\n handleError(12 /* ParseErrorCode.UnexpectedEndOfString */);\n break;\n case 6 /* ScanError.InvalidCharacter */:\n handleError(16 /* ParseErrorCode.InvalidCharacter */);\n break;\n }\n switch (token) {\n case 12 /* SyntaxKind.LineCommentTrivia */:\n case 13 /* SyntaxKind.BlockCommentTrivia */:\n if (disallowComments) {\n handleError(10 /* ParseErrorCode.InvalidCommentToken */);\n }\n else {\n onComment();\n }\n break;\n case 16 /* SyntaxKind.Unknown */:\n handleError(1 /* ParseErrorCode.InvalidSymbol */);\n break;\n case 15 /* SyntaxKind.Trivia */:\n case 14 /* SyntaxKind.LineBreakTrivia */:\n break;\n default:\n return token;\n }\n }\n }\n function handleError(error, skipUntilAfter = [], skipUntil = []) {\n onError(error);\n if (skipUntilAfter.length + skipUntil.length > 0) {\n let token = _scanner.getToken();\n while (token !== 17 /* SyntaxKind.EOF */) {\n if (skipUntilAfter.indexOf(token) !== -1) {\n scanNext();\n break;\n }\n else if (skipUntil.indexOf(token) !== -1) {\n break;\n }\n token = scanNext();\n }\n }\n }\n function parseString(isValue) {\n const value = _scanner.getTokenValue();\n if (isValue) {\n onLiteralValue(value);\n }\n else {\n onObjectProperty(value);\n // add property name afterwards\n _jsonPath.push(value);\n }\n scanNext();\n return true;\n }\n function parseLiteral() {\n switch (_scanner.getToken()) {\n case 11 /* SyntaxKind.NumericLiteral */:\n const tokenValue = _scanner.getTokenValue();\n let value = Number(tokenValue);\n if (isNaN(value)) {\n handleError(2 /* ParseErrorCode.InvalidNumberFormat */);\n value = 0;\n }\n onLiteralValue(value);\n break;\n case 7 /* SyntaxKind.NullKeyword */:\n onLiteralValue(null);\n break;\n case 8 /* SyntaxKind.TrueKeyword */:\n onLiteralValue(true);\n break;\n case 9 /* SyntaxKind.FalseKeyword */:\n onLiteralValue(false);\n break;\n default:\n return false;\n }\n scanNext();\n return true;\n }\n function parseProperty() {\n if (_scanner.getToken() !== 10 /* SyntaxKind.StringLiteral */) {\n handleError(3 /* ParseErrorCode.PropertyNameExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n return false;\n }\n parseString(false);\n if (_scanner.getToken() === 6 /* SyntaxKind.ColonToken */) {\n onSeparator(':');\n scanNext(); // consume colon\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n }\n else {\n handleError(5 /* ParseErrorCode.ColonExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n _jsonPath.pop(); // remove processed property name\n return true;\n }\n function parseObject() {\n onObjectBegin();\n scanNext(); // consume open brace\n let needsComma = false;\n while (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 2 /* SyntaxKind.CloseBraceToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (!parseProperty()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onObjectEnd();\n if (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */) {\n handleError(7 /* ParseErrorCode.CloseBraceExpected */, [2 /* SyntaxKind.CloseBraceToken */], []);\n }\n else {\n scanNext(); // consume close brace\n }\n return true;\n }\n function parseArray() {\n onArrayBegin();\n scanNext(); // consume open bracket\n let isFirstElement = true;\n let needsComma = false;\n while (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) {\n if (!needsComma) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n }\n onSeparator(',');\n scanNext(); // consume comma\n if (_scanner.getToken() === 4 /* SyntaxKind.CloseBracketToken */ && allowTrailingComma) {\n break;\n }\n }\n else if (needsComma) {\n handleError(6 /* ParseErrorCode.CommaExpected */, [], []);\n }\n if (isFirstElement) {\n _jsonPath.push(0);\n isFirstElement = false;\n }\n else {\n _jsonPath[_jsonPath.length - 1]++;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], [4 /* SyntaxKind.CloseBracketToken */, 5 /* SyntaxKind.CommaToken */]);\n }\n needsComma = true;\n }\n onArrayEnd();\n if (!isFirstElement) {\n _jsonPath.pop(); // remove array index\n }\n if (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */) {\n handleError(8 /* ParseErrorCode.CloseBracketExpected */, [4 /* SyntaxKind.CloseBracketToken */], []);\n }\n else {\n scanNext(); // consume close bracket\n }\n return true;\n }\n function parseValue() {\n switch (_scanner.getToken()) {\n case 3 /* SyntaxKind.OpenBracketToken */:\n return parseArray();\n case 1 /* SyntaxKind.OpenBraceToken */:\n return parseObject();\n case 10 /* SyntaxKind.StringLiteral */:\n return parseString(true);\n default:\n return parseLiteral();\n }\n }\n scanNext();\n if (_scanner.getToken() === 17 /* SyntaxKind.EOF */) {\n if (options.allowEmptyContent) {\n return true;\n }\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (!parseValue()) {\n handleError(4 /* ParseErrorCode.ValueExpected */, [], []);\n return false;\n }\n if (_scanner.getToken() !== 17 /* SyntaxKind.EOF */) {\n handleError(9 /* ParseErrorCode.EndOfFileExpected */, [], []);\n }\n return true;\n}\n/**\n * Takes JSON with JavaScript-style comments and remove\n * them. Optionally replaces every none-newline character\n * of comments with a replaceCharacter\n */\nexport function stripComments(text, replaceCh) {\n let _scanner = createScanner(text), parts = [], kind, offset = 0, pos;\n do {\n pos = _scanner.getPosition();\n kind = _scanner.scan();\n switch (kind) {\n case 12 /* SyntaxKind.LineCommentTrivia */:\n case 13 /* SyntaxKind.BlockCommentTrivia */:\n case 17 /* SyntaxKind.EOF */:\n if (offset !== pos) {\n parts.push(text.substring(offset, pos));\n }\n if (replaceCh !== undefined) {\n parts.push(_scanner.getTokenValue().replace(/[^\\r\\n]/g, replaceCh));\n }\n offset = _scanner.getPosition();\n break;\n }\n } while (kind !== 17 /* SyntaxKind.EOF */);\n return parts.join('');\n}\nexport function getNodeType(value) {\n switch (typeof value) {\n case 'boolean': return 'boolean';\n case 'number': return 'number';\n case 'string': return 'string';\n case 'object': {\n if (!value) {\n return 'null';\n }\n else if (Array.isArray(value)) {\n return 'array';\n }\n return 'object';\n }\n default: return 'null';\n }\n}\n",
36
37
  "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\nimport { format, isEOL } from './format';\nimport { parseTree, findNodeAtLocation } from './parser';\nexport function removeProperty(text, path, options) {\n return setProperty(text, path, void 0, options);\n}\nexport function setProperty(text, originalPath, value, options) {\n const path = originalPath.slice();\n const errors = [];\n const root = parseTree(text, errors);\n let parent = void 0;\n let lastSegment = void 0;\n while (path.length > 0) {\n lastSegment = path.pop();\n parent = findNodeAtLocation(root, path);\n if (parent === void 0 && value !== void 0) {\n if (typeof lastSegment === 'string') {\n value = { [lastSegment]: value };\n }\n else {\n value = [value];\n }\n }\n else {\n break;\n }\n }\n if (!parent) {\n // empty document\n if (value === void 0) { // delete\n throw new Error('Can not delete in empty document');\n }\n return withFormatting(text, { offset: root ? root.offset : 0, length: root ? root.length : 0, content: JSON.stringify(value) }, options);\n }\n else if (parent.type === 'object' && typeof lastSegment === 'string' && Array.isArray(parent.children)) {\n const existing = findNodeAtLocation(parent, [lastSegment]);\n if (existing !== void 0) {\n if (value === void 0) { // delete\n if (!existing.parent) {\n throw new Error('Malformed AST');\n }\n const propertyIndex = parent.children.indexOf(existing.parent);\n let removeBegin;\n let removeEnd = existing.parent.offset + existing.parent.length;\n if (propertyIndex > 0) {\n // remove the comma of the previous node\n let previous = parent.children[propertyIndex - 1];\n removeBegin = previous.offset + previous.length;\n }\n else {\n removeBegin = parent.offset + 1;\n if (parent.children.length > 1) {\n // remove the comma of the next node\n let next = parent.children[1];\n removeEnd = next.offset;\n }\n }\n return withFormatting(text, { offset: removeBegin, length: removeEnd - removeBegin, content: '' }, options);\n }\n else {\n // set value of existing property\n return withFormatting(text, { offset: existing.offset, length: existing.length, content: JSON.stringify(value) }, options);\n }\n }\n else {\n if (value === void 0) { // delete\n return []; // property does not exist, nothing to do\n }\n const newProperty = `${JSON.stringify(lastSegment)}: ${JSON.stringify(value)}`;\n const index = options.getInsertionIndex ? options.getInsertionIndex(parent.children.map(p => p.children[0].value)) : parent.children.length;\n let edit;\n if (index > 0) {\n let previous = parent.children[index - 1];\n edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };\n }\n else if (parent.children.length === 0) {\n edit = { offset: parent.offset + 1, length: 0, content: newProperty };\n }\n else {\n edit = { offset: parent.offset + 1, length: 0, content: newProperty + ',' };\n }\n return withFormatting(text, edit, options);\n }\n }\n else if (parent.type === 'array' && typeof lastSegment === 'number' && Array.isArray(parent.children)) {\n const insertIndex = lastSegment;\n if (insertIndex === -1) {\n // Insert\n const newProperty = `${JSON.stringify(value)}`;\n let edit;\n if (parent.children.length === 0) {\n edit = { offset: parent.offset + 1, length: 0, content: newProperty };\n }\n else {\n const previous = parent.children[parent.children.length - 1];\n edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };\n }\n return withFormatting(text, edit, options);\n }\n else if (value === void 0 && parent.children.length >= 0) {\n // Removal\n const removalIndex = lastSegment;\n const toRemove = parent.children[removalIndex];\n let edit;\n if (parent.children.length === 1) {\n // only item\n edit = { offset: parent.offset + 1, length: parent.length - 2, content: '' };\n }\n else if (parent.children.length - 1 === removalIndex) {\n // last item\n let previous = parent.children[removalIndex - 1];\n let offset = previous.offset + previous.length;\n let parentEndOffset = parent.offset + parent.length;\n edit = { offset, length: parentEndOffset - 2 - offset, content: '' };\n }\n else {\n edit = { offset: toRemove.offset, length: parent.children[removalIndex + 1].offset - toRemove.offset, content: '' };\n }\n return withFormatting(text, edit, options);\n }\n else if (value !== void 0) {\n let edit;\n const newProperty = `${JSON.stringify(value)}`;\n if (!options.isArrayInsertion && parent.children.length > lastSegment) {\n const toModify = parent.children[lastSegment];\n edit = { offset: toModify.offset, length: toModify.length, content: newProperty };\n }\n else if (parent.children.length === 0 || lastSegment === 0) {\n edit = { offset: parent.offset + 1, length: 0, content: parent.children.length === 0 ? newProperty : newProperty + ',' };\n }\n else {\n const index = lastSegment > parent.children.length ? parent.children.length : lastSegment;\n const previous = parent.children[index - 1];\n edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };\n }\n return withFormatting(text, edit, options);\n }\n else {\n throw new Error(`Can not ${value === void 0 ? 'remove' : (options.isArrayInsertion ? 'insert' : 'modify')} Array index ${insertIndex} as length is not sufficient`);\n }\n }\n else {\n throw new Error(`Can not add ${typeof lastSegment !== 'number' ? 'index' : 'property'} to parent of type ${parent.type}`);\n }\n}\nfunction withFormatting(text, edit, options) {\n if (!options.formattingOptions) {\n return [edit];\n }\n // apply the edit\n let newText = applyEdit(text, edit);\n // format the new text\n let begin = edit.offset;\n let end = edit.offset + edit.content.length;\n if (edit.length === 0 || edit.content.length === 0) { // insert or remove\n while (begin > 0 && !isEOL(newText, begin - 1)) {\n begin--;\n }\n while (end < newText.length && !isEOL(newText, end)) {\n end++;\n }\n }\n const edits = format(newText, { offset: begin, length: end - begin }, { ...options.formattingOptions, keepLines: false });\n // apply the formatting edits and track the begin and end offsets of the changes\n for (let i = edits.length - 1; i >= 0; i--) {\n const edit = edits[i];\n newText = applyEdit(newText, edit);\n begin = Math.min(begin, edit.offset);\n end = Math.max(end, edit.offset + edit.length);\n end += edit.content.length - edit.length;\n }\n // create a single edit with all changes\n const editLength = text.length - (newText.length - end) - begin;\n return [{ offset: begin, length: editLength, content: newText.substring(begin, end) }];\n}\nexport function applyEdit(text, edit) {\n return text.substring(0, edit.offset) + edit.content + text.substring(edit.offset + edit.length);\n}\nexport function isWS(text, offset) {\n return '\\r\\n \\t'.indexOf(text.charAt(offset)) !== -1;\n}\n",
37
38
  "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\nimport * as formatter from './impl/format';\nimport * as edit from './impl/edit';\nimport * as scanner from './impl/scanner';\nimport * as parser from './impl/parser';\n/**\n * Creates a JSON scanner on the given text.\n * If ignoreTrivia is set, whitespaces or comments are ignored.\n */\nexport const createScanner = scanner.createScanner;\nexport var ScanError;\n(function (ScanError) {\n ScanError[ScanError[\"None\"] = 0] = \"None\";\n ScanError[ScanError[\"UnexpectedEndOfComment\"] = 1] = \"UnexpectedEndOfComment\";\n ScanError[ScanError[\"UnexpectedEndOfString\"] = 2] = \"UnexpectedEndOfString\";\n ScanError[ScanError[\"UnexpectedEndOfNumber\"] = 3] = \"UnexpectedEndOfNumber\";\n ScanError[ScanError[\"InvalidUnicode\"] = 4] = \"InvalidUnicode\";\n ScanError[ScanError[\"InvalidEscapeCharacter\"] = 5] = \"InvalidEscapeCharacter\";\n ScanError[ScanError[\"InvalidCharacter\"] = 6] = \"InvalidCharacter\";\n})(ScanError || (ScanError = {}));\nexport var SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"OpenBraceToken\"] = 1] = \"OpenBraceToken\";\n SyntaxKind[SyntaxKind[\"CloseBraceToken\"] = 2] = \"CloseBraceToken\";\n SyntaxKind[SyntaxKind[\"OpenBracketToken\"] = 3] = \"OpenBracketToken\";\n SyntaxKind[SyntaxKind[\"CloseBracketToken\"] = 4] = \"CloseBracketToken\";\n SyntaxKind[SyntaxKind[\"CommaToken\"] = 5] = \"CommaToken\";\n SyntaxKind[SyntaxKind[\"ColonToken\"] = 6] = \"ColonToken\";\n SyntaxKind[SyntaxKind[\"NullKeyword\"] = 7] = \"NullKeyword\";\n SyntaxKind[SyntaxKind[\"TrueKeyword\"] = 8] = \"TrueKeyword\";\n SyntaxKind[SyntaxKind[\"FalseKeyword\"] = 9] = \"FalseKeyword\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 10] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 11] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"LineCommentTrivia\"] = 12] = \"LineCommentTrivia\";\n SyntaxKind[SyntaxKind[\"BlockCommentTrivia\"] = 13] = \"BlockCommentTrivia\";\n SyntaxKind[SyntaxKind[\"LineBreakTrivia\"] = 14] = \"LineBreakTrivia\";\n SyntaxKind[SyntaxKind[\"Trivia\"] = 15] = \"Trivia\";\n SyntaxKind[SyntaxKind[\"Unknown\"] = 16] = \"Unknown\";\n SyntaxKind[SyntaxKind[\"EOF\"] = 17] = \"EOF\";\n})(SyntaxKind || (SyntaxKind = {}));\n/**\n * For a given offset, evaluate the location in the JSON document. Each segment in the location path is either a property name or an array index.\n */\nexport const getLocation = parser.getLocation;\n/**\n * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n * Therefore, always check the errors list to find out if the input was valid.\n */\nexport const parse = parser.parse;\n/**\n * Parses the given text and returns a tree representation the JSON content. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.\n */\nexport const parseTree = parser.parseTree;\n/**\n * Finds the node at the given path in a JSON DOM.\n */\nexport const findNodeAtLocation = parser.findNodeAtLocation;\n/**\n * Finds the innermost node at the given offset. If includeRightBound is set, also finds nodes that end at the given offset.\n */\nexport const findNodeAtOffset = parser.findNodeAtOffset;\n/**\n * Gets the JSON path of the given JSON DOM node\n */\nexport const getNodePath = parser.getNodePath;\n/**\n * Evaluates the JavaScript object of the given JSON DOM node\n */\nexport const getNodeValue = parser.getNodeValue;\n/**\n * Parses the given text and invokes the visitor functions for each object, array and literal reached.\n */\nexport const visit = parser.visit;\n/**\n * Takes JSON with JavaScript-style comments and remove\n * them. Optionally replaces every none-newline character\n * of comments with a replaceCharacter\n */\nexport const stripComments = parser.stripComments;\nexport var ParseErrorCode;\n(function (ParseErrorCode) {\n ParseErrorCode[ParseErrorCode[\"InvalidSymbol\"] = 1] = \"InvalidSymbol\";\n ParseErrorCode[ParseErrorCode[\"InvalidNumberFormat\"] = 2] = \"InvalidNumberFormat\";\n ParseErrorCode[ParseErrorCode[\"PropertyNameExpected\"] = 3] = \"PropertyNameExpected\";\n ParseErrorCode[ParseErrorCode[\"ValueExpected\"] = 4] = \"ValueExpected\";\n ParseErrorCode[ParseErrorCode[\"ColonExpected\"] = 5] = \"ColonExpected\";\n ParseErrorCode[ParseErrorCode[\"CommaExpected\"] = 6] = \"CommaExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBraceExpected\"] = 7] = \"CloseBraceExpected\";\n ParseErrorCode[ParseErrorCode[\"CloseBracketExpected\"] = 8] = \"CloseBracketExpected\";\n ParseErrorCode[ParseErrorCode[\"EndOfFileExpected\"] = 9] = \"EndOfFileExpected\";\n ParseErrorCode[ParseErrorCode[\"InvalidCommentToken\"] = 10] = \"InvalidCommentToken\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfComment\"] = 11] = \"UnexpectedEndOfComment\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfString\"] = 12] = \"UnexpectedEndOfString\";\n ParseErrorCode[ParseErrorCode[\"UnexpectedEndOfNumber\"] = 13] = \"UnexpectedEndOfNumber\";\n ParseErrorCode[ParseErrorCode[\"InvalidUnicode\"] = 14] = \"InvalidUnicode\";\n ParseErrorCode[ParseErrorCode[\"InvalidEscapeCharacter\"] = 15] = \"InvalidEscapeCharacter\";\n ParseErrorCode[ParseErrorCode[\"InvalidCharacter\"] = 16] = \"InvalidCharacter\";\n})(ParseErrorCode || (ParseErrorCode = {}));\nexport function printParseErrorCode(code) {\n switch (code) {\n case 1 /* ParseErrorCode.InvalidSymbol */: return 'InvalidSymbol';\n case 2 /* ParseErrorCode.InvalidNumberFormat */: return 'InvalidNumberFormat';\n case 3 /* ParseErrorCode.PropertyNameExpected */: return 'PropertyNameExpected';\n case 4 /* ParseErrorCode.ValueExpected */: return 'ValueExpected';\n case 5 /* ParseErrorCode.ColonExpected */: return 'ColonExpected';\n case 6 /* ParseErrorCode.CommaExpected */: return 'CommaExpected';\n case 7 /* ParseErrorCode.CloseBraceExpected */: return 'CloseBraceExpected';\n case 8 /* ParseErrorCode.CloseBracketExpected */: return 'CloseBracketExpected';\n case 9 /* ParseErrorCode.EndOfFileExpected */: return 'EndOfFileExpected';\n case 10 /* ParseErrorCode.InvalidCommentToken */: return 'InvalidCommentToken';\n case 11 /* ParseErrorCode.UnexpectedEndOfComment */: return 'UnexpectedEndOfComment';\n case 12 /* ParseErrorCode.UnexpectedEndOfString */: return 'UnexpectedEndOfString';\n case 13 /* ParseErrorCode.UnexpectedEndOfNumber */: return 'UnexpectedEndOfNumber';\n case 14 /* ParseErrorCode.InvalidUnicode */: return 'InvalidUnicode';\n case 15 /* ParseErrorCode.InvalidEscapeCharacter */: return 'InvalidEscapeCharacter';\n case 16 /* ParseErrorCode.InvalidCharacter */: return 'InvalidCharacter';\n }\n return '<unknown ParseErrorCode>';\n}\n/**\n * Computes the edit operations needed to format a JSON document.\n *\n * @param documentText The input text\n * @param range The range to format or `undefined` to format the full content\n * @param options The formatting options\n * @returns The edit operations describing the formatting changes to the original document following the format described in {@linkcode EditResult}.\n * To apply the edit operations to the input, use {@linkcode applyEdits}.\n */\nexport function format(documentText, range, options) {\n return formatter.format(documentText, range, options);\n}\n/**\n * Computes the edit operations needed to modify a value in the JSON document.\n *\n * @param documentText The input text\n * @param path The path of the value to change. The path represents either to the document root, a property or an array item.\n * If the path points to an non-existing property or item, it will be created.\n * @param value The new value for the specified property or item. If the value is undefined,\n * the property or item will be removed.\n * @param options Options\n * @returns The edit operations describing the changes to the original document, following the format described in {@linkcode EditResult}.\n * To apply the edit operations to the input, use {@linkcode applyEdits}.\n */\nexport function modify(text, path, value, options) {\n return edit.setProperty(text, path, value, options);\n}\n/**\n * Applies edits to an input string.\n * @param text The input text\n * @param edits Edit operations following the format described in {@linkcode EditResult}.\n * @returns The text with the applied edits.\n * @throws An error if the edit operations are not well-formed as described in {@linkcode EditResult}.\n */\nexport function applyEdits(text, edits) {\n let sortedEdits = edits.slice(0).sort((a, b) => {\n const diff = a.offset - b.offset;\n if (diff === 0) {\n return a.length - b.length;\n }\n return diff;\n });\n let lastModifiedOffset = text.length;\n for (let i = sortedEdits.length - 1; i >= 0; i--) {\n let e = sortedEdits[i];\n if (e.offset + e.length <= lastModifiedOffset) {\n text = edit.applyEdit(text, e);\n }\n else {\n throw new Error('Overlapping edit');\n }\n lastModifiedOffset = e.offset;\n }\n return text;\n}\n",
38
- "/**\n * Config & Lockfile Schemas\n *\n * Schemas for ocx.jsonc (user config) and ocx.lock (auto-generated lockfile).\n * Includes Bun-specific I/O helpers.\n */\n\nimport { parse as parseJsonc } from \"jsonc-parser\"\nimport { z } from \"zod\"\nimport { qualifiedComponentSchema } from \"./registry.js\"\n\n// =============================================================================\n// OCX CONFIG SCHEMA (ocx.jsonc)\n// =============================================================================\n\n/**\n * Registry configuration in ocx.jsonc\n */\nexport const registryConfigSchema = z.object({\n\t/** Registry URL */\n\turl: z.string().url(\"Registry URL must be a valid URL\"),\n\n\t/** Optional version pin */\n\tversion: z.string().optional(),\n\n\t/** Optional auth headers (supports ${ENV_VAR} expansion) */\n\theaders: z.record(z.string()).optional(),\n})\n\nexport type RegistryConfig = z.infer<typeof registryConfigSchema>\n\n/**\n * Main OCX config schema (ocx.jsonc)\n */\nexport const ocxConfigSchema = z.object({\n\t/** Schema URL for IDE support */\n\t$schema: z.string().optional(),\n\n\t/** Configured registries */\n\tregistries: z.record(registryConfigSchema).default({}),\n\n\t/** Lock registries - prevent adding/removing (enterprise feature) */\n\tlockRegistries: z.boolean().default(false),\n})\n\nexport type OcxConfig = z.infer<typeof ocxConfigSchema>\n\n// =============================================================================\n// OCX LOCKFILE SCHEMA (ocx.lock)\n// =============================================================================\n\n/**\n * Installed component entry in lockfile\n * Key format: \"namespace/component\" (e.g., \"kdco/researcher\")\n */\nexport const installedComponentSchema = z.object({\n\t/** Registry namespace this was installed from */\n\tregistry: z.string(),\n\n\t/** Version at time of install */\n\tversion: z.string(),\n\n\t/** SHA-256 hash of installed files for integrity */\n\thash: z.string(),\n\n\t/** Target files where installed (clean paths, no namespace prefix) */\n\tfiles: z.array(z.string()),\n\n\t/** ISO timestamp of installation */\n\tinstalledAt: z.string(),\n\n\t/** ISO timestamp of last update (optional, only set after update) */\n\tupdatedAt: z.string().optional(),\n})\n\nexport type InstalledComponent = z.infer<typeof installedComponentSchema>\n\n/**\n * OCX lockfile schema (ocx.lock)\n * Keys are qualified component refs: \"namespace/component\"\n */\nexport const ocxLockSchema = z.object({\n\t/** Lockfile format version */\n\tlockVersion: z.literal(1),\n\n\t/** Installed components, keyed by \"namespace/component\" */\n\tinstalled: z.record(qualifiedComponentSchema, installedComponentSchema).default({}),\n})\n\nexport type OcxLock = z.infer<typeof ocxLockSchema>\n\n// =============================================================================\n// CONFIG FILE HELPERS (Bun-specific I/O)\n// =============================================================================\n\nconst CONFIG_FILE = \"ocx.jsonc\"\nconst LOCK_FILE = \"ocx.lock\"\n\n/**\n * Read ocx.jsonc config file\n */\nexport async function readOcxConfig(cwd: string): Promise<OcxConfig | null> {\n\tconst configPath = `${cwd}/${CONFIG_FILE}`\n\tconst file = Bun.file(configPath)\n\n\tif (!(await file.exists())) {\n\t\treturn null\n\t}\n\n\tconst content = await file.text()\n\ttry {\n\t\tconst json = parseJsonc(content, [], { allowTrailingComma: true })\n\t\treturn ocxConfigSchema.parse(json)\n\t} catch (error) {\n\t\t// If parsing fails, we want to know why\n\t\tconsole.error(`Error parsing ${configPath}:`, error)\n\t\tthrow error\n\t}\n}\n\n/**\n * Write ocx.jsonc config file\n */\nexport async function writeOcxConfig(cwd: string, config: OcxConfig): Promise<void> {\n\tconst configPath = `${cwd}/${CONFIG_FILE}`\n\tconst content = JSON.stringify(config, null, 2)\n\tawait Bun.write(configPath, content)\n}\n\n/**\n * Read ocx.lock lockfile\n */\nexport async function readOcxLock(cwd: string): Promise<OcxLock | null> {\n\tconst lockPath = `${cwd}/${LOCK_FILE}`\n\tconst file = Bun.file(lockPath)\n\n\tif (!(await file.exists())) {\n\t\treturn null\n\t}\n\n\tconst content = await file.text()\n\tconst json = parseJsonc(content, [], { allowTrailingComma: true })\n\treturn ocxLockSchema.parse(json)\n}\n\n/**\n * Write ocx.lock lockfile\n */\nexport async function writeOcxLock(cwd: string, lock: OcxLock): Promise<void> {\n\tconst lockPath = `${cwd}/${LOCK_FILE}`\n\tconst content = JSON.stringify(lock, null, 2)\n\tawait Bun.write(lockPath, content)\n}\n",
39
+ "/**\n * Config & Lockfile Schemas\n *\n * Schemas for ocx.jsonc (user config) and ocx.lock (auto-generated lockfile).\n * Includes Bun-specific I/O helpers.\n */\n\nimport { parse as parseJsonc } from \"jsonc-parser\"\nimport { z } from \"zod\"\nimport { qualifiedComponentSchema } from \"./registry.js\"\n\n// =============================================================================\n// OCX CONFIG SCHEMA (ocx.jsonc)\n// =============================================================================\n\n/**\n * Registry configuration in ocx.jsonc\n */\nexport const registryConfigSchema = z.object({\n\t/** Registry URL */\n\turl: z.string().url(\"Registry URL must be a valid URL\"),\n\n\t/** Optional version pin */\n\tversion: z.string().optional(),\n\n\t/** Optional auth headers (supports ${ENV_VAR} expansion) */\n\theaders: z.record(z.string()).optional(),\n})\n\nexport type RegistryConfig = z.infer<typeof registryConfigSchema>\n\n/**\n * Main OCX config schema (ocx.jsonc)\n */\nexport const ocxConfigSchema = z.object({\n\t/** Schema URL for IDE support */\n\t$schema: z.string().optional(),\n\n\t/** Configured registries */\n\tregistries: z.record(registryConfigSchema).default({}),\n\n\t/** Lock registries - prevent adding/removing (enterprise feature) */\n\tlockRegistries: z.boolean().default(false),\n\n\t/** Skip version compatibility checks */\n\tskipCompatCheck: z.boolean().default(false),\n})\n\nexport type OcxConfig = z.infer<typeof ocxConfigSchema>\n\n// =============================================================================\n// OCX LOCKFILE SCHEMA (ocx.lock)\n// =============================================================================\n\n/**\n * Installed component entry in lockfile\n * Key format: \"namespace/component\" (e.g., \"kdco/researcher\")\n */\nexport const installedComponentSchema = z.object({\n\t/** Registry namespace this was installed from */\n\tregistry: z.string(),\n\n\t/** Version at time of install */\n\tversion: z.string(),\n\n\t/** SHA-256 hash of installed files for integrity */\n\thash: z.string(),\n\n\t/** Target files where installed (clean paths, no namespace prefix) */\n\tfiles: z.array(z.string()),\n\n\t/** ISO timestamp of installation */\n\tinstalledAt: z.string(),\n\n\t/** ISO timestamp of last update (optional, only set after update) */\n\tupdatedAt: z.string().optional(),\n})\n\nexport type InstalledComponent = z.infer<typeof installedComponentSchema>\n\n/**\n * OCX lockfile schema (ocx.lock)\n * Keys are qualified component refs: \"namespace/component\"\n */\nexport const ocxLockSchema = z.object({\n\t/** Lockfile format version */\n\tlockVersion: z.literal(1),\n\n\t/** Installed components, keyed by \"namespace/component\" */\n\tinstalled: z.record(qualifiedComponentSchema, installedComponentSchema).default({}),\n})\n\nexport type OcxLock = z.infer<typeof ocxLockSchema>\n\n// =============================================================================\n// CONFIG FILE HELPERS (Bun-specific I/O)\n// =============================================================================\n\nconst CONFIG_FILE = \"ocx.jsonc\"\nconst LOCK_FILE = \"ocx.lock\"\n\n/**\n * Read ocx.jsonc config file\n */\nexport async function readOcxConfig(cwd: string): Promise<OcxConfig | null> {\n\tconst configPath = `${cwd}/${CONFIG_FILE}`\n\tconst file = Bun.file(configPath)\n\n\tif (!(await file.exists())) {\n\t\treturn null\n\t}\n\n\tconst content = await file.text()\n\ttry {\n\t\tconst json = parseJsonc(content, [], { allowTrailingComma: true })\n\t\treturn ocxConfigSchema.parse(json)\n\t} catch (error) {\n\t\t// If parsing fails, we want to know why\n\t\tconsole.error(`Error parsing ${configPath}:`, error)\n\t\tthrow error\n\t}\n}\n\n/**\n * Write ocx.jsonc config file\n */\nexport async function writeOcxConfig(cwd: string, config: OcxConfig): Promise<void> {\n\tconst configPath = `${cwd}/${CONFIG_FILE}`\n\tconst content = JSON.stringify(config, null, 2)\n\tawait Bun.write(configPath, content)\n}\n\n/**\n * Read ocx.lock lockfile\n */\nexport async function readOcxLock(cwd: string): Promise<OcxLock | null> {\n\tconst lockPath = `${cwd}/${LOCK_FILE}`\n\tconst file = Bun.file(lockPath)\n\n\tif (!(await file.exists())) {\n\t\treturn null\n\t}\n\n\tconst content = await file.text()\n\tconst json = parseJsonc(content, [], { allowTrailingComma: true })\n\treturn ocxLockSchema.parse(json)\n}\n\n/**\n * Write ocx.lock lockfile\n */\nexport async function writeOcxLock(cwd: string, lock: OcxLock): Promise<void> {\n\tconst lockPath = `${cwd}/${LOCK_FILE}`\n\tconst content = JSON.stringify(lock, null, 2)\n\tawait Bun.write(lockPath, content)\n}\n",
39
40
  "/**\n * OpenCode Config Updater\n *\n * ShadCN-style updater for opencode.json configuration.\n * Component takes precedence - just deep merge, user uses git to review/revert.\n *\n * Key features:\n * - Preserves JSONC comments using jsonc-parser's modify/applyEdits\n * - Direct passthrough of component's opencode block\n * - No \"smart\" merging - component wins, git is your safety net\n */\n\nimport { applyEdits, type ModificationOptions, modify, parse as parseJsonc } from \"jsonc-parser\"\nimport type { OpencodeConfig } from \"../schemas/registry.js\"\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * The structure of opencode.json file.\n * Mirrors OpencodeConfig from registry.ts exactly.\n */\nexport interface OpencodeJsonConfig {\n\t$schema?: string\n\tmcp?: Record<string, unknown>\n\ttools?: Record<string, boolean>\n\tagent?: Record<string, unknown>\n\tplugin?: string[]\n\tinstructions?: string[]\n\tpermission?: unknown\n\t[key: string]: unknown\n}\n\nexport interface UpdateOpencodeJsonConfigResult {\n\t/** Path to the config file */\n\tpath: string\n\t/** Whether the file was created (vs updated) */\n\tcreated: boolean\n\t/** Whether any changes were made */\n\tchanged: boolean\n}\n\n// =============================================================================\n// JSONC MODIFICATION OPTIONS\n// =============================================================================\n\nconst JSONC_OPTIONS: ModificationOptions = {\n\tformattingOptions: {\n\t\ttabSize: 2,\n\t\tinsertSpaces: false,\n\t\teol: \"\\n\",\n\t},\n}\n\n// =============================================================================\n// FILE OPERATIONS\n// =============================================================================\n\n/**\n * Read opencode.json or opencode.jsonc from a directory\n * Returns both parsed config and raw content (for comment preservation)\n */\nexport async function readOpencodeJsonConfig(cwd: string): Promise<{\n\tconfig: OpencodeJsonConfig\n\tcontent: string\n\tpath: string\n} | null> {\n\tconst jsonPath = `${cwd}/opencode.json`\n\tconst jsoncPath = `${cwd}/opencode.jsonc`\n\n\tfor (const configPath of [jsoncPath, jsonPath]) {\n\t\tconst file = Bun.file(configPath)\n\t\tif (await file.exists()) {\n\t\t\tconst content = await file.text()\n\t\t\treturn {\n\t\t\t\tconfig: parseJsonc(content, [], { allowTrailingComma: true }) as OpencodeJsonConfig,\n\t\t\t\tcontent,\n\t\t\t\tpath: configPath,\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null\n}\n\n/**\n * Write config content to file\n */\nasync function writeOpencodeJsonConfig(path: string, content: string): Promise<void> {\n\tawait Bun.write(path, content)\n}\n\n// =============================================================================\n// DEEP MERGE HELPER\n// =============================================================================\n\n/**\n * Get the value at a JSON path from content\n */\nfunction getValueAtPath(content: string, path: (string | number)[]): unknown {\n\tconst parsed = parseJsonc(content, [], { allowTrailingComma: true })\n\tlet current: unknown = parsed\n\tfor (const segment of path) {\n\t\tif (current === null || current === undefined) return undefined\n\t\tif (typeof current !== \"object\") return undefined\n\t\tcurrent = (current as Record<string | number, unknown>)[segment]\n\t}\n\treturn current\n}\n\n/**\n * Apply a value at a JSON path using jsonc-parser (preserves comments).\n * Recursively handles objects and arrays.\n */\nfunction applyValueAtPath(content: string, path: (string | number)[], value: unknown): string {\n\tif (value === null || value === undefined) {\n\t\treturn content\n\t}\n\n\t// For objects, check if we can recursively merge or need to replace entirely\n\tif (typeof value === \"object\" && !Array.isArray(value)) {\n\t\tconst existingValue = getValueAtPath(content, path)\n\n\t\t// If existing value is a primitive (string, number, boolean) but new value is an object,\n\t\t// we must replace the entire value - can't add properties to a primitive\n\t\tif (\n\t\t\texistingValue !== undefined &&\n\t\t\t(existingValue === null || typeof existingValue !== \"object\")\n\t\t) {\n\t\t\tconst edits = modify(content, path, value, JSONC_OPTIONS)\n\t\t\treturn applyEdits(content, edits)\n\t\t}\n\n\t\t// Safe to recursively apply each key\n\t\tlet updatedContent = content\n\t\tfor (const [key, val] of Object.entries(value as Record<string, unknown>)) {\n\t\t\tupdatedContent = applyValueAtPath(updatedContent, [...path, key], val)\n\t\t}\n\t\treturn updatedContent\n\t}\n\n\t// For arrays, set the entire array (component wins)\n\tif (Array.isArray(value)) {\n\t\tconst edits = modify(content, path, value, JSONC_OPTIONS)\n\t\treturn applyEdits(content, edits)\n\t}\n\n\t// For primitives, set directly\n\tconst edits = modify(content, path, value, JSONC_OPTIONS)\n\treturn applyEdits(content, edits)\n}\n\n// =============================================================================\n// MAIN UPDATER\n// =============================================================================\n\n/**\n * Update opencode.json with component's opencode configuration.\n *\n * ShadCN-style: Component takes precedence.\n * - Deep merges the component's opencode block into existing config\n * - Component values win on conflicts\n * - User uses git to review/revert changes\n */\nexport async function updateOpencodeJsonConfig(\n\tcwd: string,\n\topencode: OpencodeConfig,\n): Promise<UpdateOpencodeJsonConfigResult> {\n\tconst existing = await readOpencodeJsonConfig(cwd)\n\n\tlet content: string\n\tlet configPath: string\n\tlet created = false\n\n\tif (existing) {\n\t\tcontent = existing.content\n\t\tconfigPath = existing.path\n\t} else {\n\t\t// Create new config with schema\n\t\tconst config: OpencodeJsonConfig = { $schema: \"https://opencode.ai/config.json\" }\n\t\tcontent = JSON.stringify(config, null, \"\\t\")\n\t\tconfigPath = `${cwd}/opencode.jsonc`\n\t\tcreated = true\n\t}\n\n\tconst originalContent = content\n\n\t// Deep merge each field from the component's opencode block\n\tcontent = applyValueAtPath(content, [], opencode)\n\n\tconst changed = content !== originalContent\n\n\t// Only write if there were changes\n\tif (changed) {\n\t\tawait writeOpencodeJsonConfig(configPath, content)\n\t}\n\n\treturn {\n\t\tpath: configPath,\n\t\tcreated,\n\t\tchanged,\n\t}\n}\n",
40
41
  "/**\n * Content comparison utilities for file overwrite detection.\n */\n\n/**\n * Normalize content for comparison by standardizing line endings and trimming.\n */\nfunction normalizeContent(content: string): string {\n\treturn content.replace(/\\r\\n/g, \"\\n\").trim()\n}\n\n/**\n * Compare file content, normalizing line endings.\n * Returns true if content is identical after normalization.\n */\nexport function isContentIdentical(existing: string, incoming: string): boolean {\n\treturn normalizeContent(existing) === normalizeContent(incoming)\n}\n",
41
42
  "/**\n * Environment detection utilities\n * Detects CI, TTY, color support for proper output handling\n */\n\n/** Running in CI environment */\nexport const isCI = Boolean(\n\tprocess.env.CI ||\n\t\tprocess.env.GITHUB_ACTIONS ||\n\t\tprocess.env.GITLAB_CI ||\n\t\tprocess.env.CIRCLECI ||\n\t\tprocess.env.JENKINS_URL ||\n\t\tprocess.env.BUILDKITE,\n)\n\n/** Running in interactive terminal */\nexport const isTTY = Boolean(process.stdout.isTTY && !isCI)\n\n/** Terminal supports colors */\nexport const supportsColor = Boolean(\n\tisTTY && process.env.FORCE_COLOR !== \"0\" && process.env.NO_COLOR === undefined,\n)\n",
@@ -66,8 +67,9 @@
66
67
  "import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tconst {env} = process;\n\tconst {TERM, TERM_PROGRAM} = env;\n\n\tif (process.platform !== 'win32') {\n\t\treturn TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| TERM_PROGRAM === 'vscode'\n\t\t|| TERM === 'xterm-256color'\n\t\t|| TERM === 'alacritty'\n\t\t|| TERM === 'rxvt-unicode'\n\t\t|| TERM === 'rxvt-unicode-256color'\n\t\t|| env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n",
67
68
  "import process from 'node:process';\n\nconst ASCII_ETX_CODE = 0x03; // Ctrl+C emits this code\n\nclass StdinDiscarder {\n\t#activeCount = 0;\n\n\tstart() {\n\t\tthis.#activeCount++;\n\n\t\tif (this.#activeCount === 1) {\n\t\t\tthis.#realStart();\n\t\t}\n\t}\n\n\tstop() {\n\t\tif (this.#activeCount <= 0) {\n\t\t\tthrow new Error('`stop` called more times than `start`');\n\t\t}\n\n\t\tthis.#activeCount--;\n\n\t\tif (this.#activeCount === 0) {\n\t\t\tthis.#realStop();\n\t\t}\n\t}\n\n\t#realStart() {\n\t\t// No known way to make it work reliably on Windows.\n\t\tif (process.platform === 'win32' || !process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.setRawMode(true);\n\t\tprocess.stdin.on('data', this.#handleInput);\n\t\tprocess.stdin.resume();\n\t}\n\n\t#realStop() {\n\t\tif (!process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.off('data', this.#handleInput);\n\t\tprocess.stdin.pause();\n\t\tprocess.stdin.setRawMode(false);\n\t}\n\n\t#handleInput(chunk) {\n\t\t// Allow Ctrl+C to gracefully exit.\n\t\tif (chunk[0] === ASCII_ETX_CODE) {\n\t\t\tprocess.emit('SIGINT');\n\t\t}\n\t}\n}\n\nconst stdinDiscarder = new StdinDiscarder();\n\nexport default stdinDiscarder;\n",
68
69
  "/**\n * Spinner utility for async operations\n * Uses ora, disabled in CI/non-TTY environments\n */\n\nimport ora, { type Ora } from \"ora\"\nimport { isTTY } from \"./env\"\n\nexport interface SpinnerOptions {\n\ttext: string\n\tquiet?: boolean\n}\n\n/**\n * Create a spinner that works in TTY, falls back gracefully in CI\n */\nexport function createSpinner(options: SpinnerOptions): Ora {\n\tconst shouldSpin = isTTY && !options.quiet\n\n\tconst spinner = ora({\n\t\ttext: options.text,\n\t\tisSilent: !shouldSpin,\n\t})\n\n\treturn spinner\n}\n\n/**\n * Run an async function with a spinner\n */\nexport async function withSpinner<T>(\n\toptions: SpinnerOptions,\n\tfn: (spinner: Ora) => Promise<T>,\n): Promise<T> {\n\tconst spinner = createSpinner(options)\n\tspinner.start()\n\n\ttry {\n\t\tconst result = await fn(spinner)\n\t\tspinner.succeed()\n\t\treturn result\n\t} catch (error) {\n\t\tspinner.fail()\n\t\tthrow error\n\t}\n}\n",
70
+ "/**\n * Version Compatibility Utilities\n *\n * Pure functions for checking version compatibility following the 5 Laws:\n * - Law 1 (Early Exit): Check at top of fetch flow\n * - Law 2 (Parse, Don't Validate): Work with typed results\n * - Law 3 (Atomic Predictability): Pure functions, same input = same output\n * - Law 4 (Fail Fast, Fail Loud): Clear warning messages\n * - Law 5 (Intentional Naming): Self-documenting function names\n */\n\nimport kleur from \"kleur\"\nimport { logger } from \"./logger.js\"\n\n/**\n * Result of a version compatibility check\n */\nexport type CompatResult =\n\t| { compatible: true }\n\t| { compatible: false; required: string; installed: string; type: \"opencode\" | \"ocx\" }\n\n/** Incompatible result from version check */\nexport type IncompatibleResult = Extract<CompatResult, { compatible: false }>\n\n/**\n * Options for collecting compatibility issues\n */\nexport interface CompatCheckOptions {\n\tregistry: { opencode?: string; ocx?: string }\n\tocxVersion: string\n\topencodeVersion?: string\n}\n\n/**\n * Parse a semver string into components.\n * Returns null if invalid (Law 4: explicit failure state).\n *\n * @param v - Version string (e.g., \"1.2.3\" or \"1.2.3-beta.1\")\n * @returns Parsed version or null if invalid\n */\nfunction parseVersion(v: string): { major: number; minor: number; patch: number } | null {\n\tconst [main = \"\"] = v.split(\"-\") // Ignore prerelease for comparison\n\tconst parts = main.split(\".\")\n\tconst major = parseInt(parts[0] ?? \"\", 10)\n\tconst minor = parseInt(parts[1] ?? \"\", 10)\n\tconst patch = parseInt(parts[2] ?? \"\", 10)\n\n\t// Early exit: invalid version components\n\tif (Number.isNaN(major) || Number.isNaN(minor) || Number.isNaN(patch)) {\n\t\treturn null\n\t}\n\n\treturn { major, minor, patch }\n}\n\n/**\n * Compare two semver versions.\n * Returns null if either version is invalid (cannot compare).\n *\n * @param a - First version string (e.g., \"1.2.3\")\n * @param b - Second version string (e.g., \"1.0.0\")\n * @returns Negative if a < b, 0 if equal, positive if a > b, null if invalid\n */\nfunction compareSemver(a: string, b: string): number | null {\n\tconst vA = parseVersion(a)\n\tconst vB = parseVersion(b)\n\n\t// Early exit: can't compare invalid versions\n\tif (!vA || !vB) {\n\t\treturn null\n\t}\n\n\tif (vA.major !== vB.major) return vA.major - vB.major\n\tif (vA.minor !== vB.minor) return vA.minor - vB.minor\n\treturn vA.patch - vB.patch\n}\n\n/**\n * Check if installed version meets minimum requirement.\n * Pure function: same input = same output.\n */\nexport function checkCompatibility(\n\trequiredVersion: string | undefined,\n\tinstalledVersion: string,\n\ttype: \"opencode\" | \"ocx\",\n): CompatResult {\n\t// Early exit: no requirement means compatible\n\tif (!requiredVersion) {\n\t\treturn { compatible: true }\n\t}\n\n\t// Compare versions\n\tconst cmp = compareSemver(installedVersion, requiredVersion)\n\n\t// Early exit: can't compare invalid versions, assume compatible (permissive)\n\tif (cmp === null) {\n\t\treturn { compatible: true }\n\t}\n\n\tif (cmp >= 0) {\n\t\treturn { compatible: true }\n\t}\n\n\treturn {\n\t\tcompatible: false,\n\t\trequired: requiredVersion,\n\t\tinstalled: installedVersion,\n\t\ttype,\n\t}\n}\n\n/**\n * Format a compatibility warning message (pnpm-inspired).\n * WHAT happened, WHY, IMPACT, HOW TO FIX.\n */\nexport function formatCompatWarning(\n\tregistryName: string,\n\tresult: Extract<CompatResult, { compatible: false }>,\n): string {\n\tconst typeLabel = result.type === \"opencode\" ? \"OpenCode\" : \"OCX CLI\"\n\tconst updateCmd =\n\t\tresult.type === \"opencode\" ? \"Update OpenCode to the latest version\" : \"bun update -g ocx\"\n\n\treturn `\n${kleur.yellow().bold(\"⚠ WARN\")} ${kleur.yellow(\"Version compatibility notice\")}\n\n Registry ${kleur.cyan(`\"${registryName}\"`)} requires ${typeLabel} ${kleur.green(result.required)}\n You are running ${typeLabel} ${kleur.red(result.installed)}\n\n This may work fine, but if you encounter issues,\n consider updating: ${kleur.dim(updateCmd)}\n\n To silence: ${kleur.dim(\"--skip-compat-check\")} or set ${kleur.dim('\"skipCompatCheck\": true')} in ocx.jsonc\n`\n}\n\n/**\n * Collect compatibility issues for a registry (PURE).\n * Returns array of incompatible results - empty array means all compatible.\n *\n * @param options - Check options with registry requirements and installed versions\n * @returns Array of incompatible results (empty if all compatible)\n */\nexport function collectCompatIssues(options: CompatCheckOptions): IncompatibleResult[] {\n\tconst { registry, ocxVersion, opencodeVersion } = options\n\tconst issues: IncompatibleResult[] = []\n\n\t// Check OCX CLI version\n\tconst ocxResult = checkCompatibility(registry.ocx, ocxVersion, \"ocx\")\n\tif (!ocxResult.compatible) {\n\t\tissues.push(ocxResult)\n\t}\n\n\t// Check OpenCode version (only if we know it)\n\tif (opencodeVersion) {\n\t\tconst opencodeResult = checkCompatibility(registry.opencode, opencodeVersion, \"opencode\")\n\t\tif (!opencodeResult.compatible) {\n\t\t\tissues.push(opencodeResult)\n\t\t}\n\t}\n\n\treturn issues\n}\n\n/**\n * Print compatibility warnings for collected issues (IMPURE - side effect).\n * Separated from pure collectCompatIssues() following Law 3.\n *\n * @param registryName - Name of the registry for display\n * @param issues - Array of compatibility issues to warn about\n */\nexport function warnCompatIssues(registryName: string, issues: IncompatibleResult[]): void {\n\tfor (const issue of issues) {\n\t\tlogger.log(formatCompatWarning(registryName, issue))\n\t}\n}\n",
69
71
  "/**\n * Build Command (for Registry Authors)\n *\n * CLI wrapper around the buildRegistry library function.\n */\n\nimport { join, relative } from \"node:path\"\nimport type { Command } from \"commander\"\nimport kleur from \"kleur\"\nimport { BuildRegistryError, buildRegistry } from \"../lib/build-registry.js\"\nimport { createSpinner, handleError, logger, outputJson } from \"../utils/index.js\"\n\ninterface BuildOptions {\n\tcwd: string\n\tout: string\n\tjson: boolean\n\tquiet: boolean\n}\n\nexport function registerBuildCommand(program: Command): void {\n\tprogram\n\t\t.command(\"build\")\n\t\t.description(\"Build a registry from source (for registry authors)\")\n\t\t.argument(\"[path]\", \"Registry source directory\", \".\")\n\t\t.option(\"--out <dir>\", \"Output directory\", \"./dist\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"--json\", \"Output as JSON\", false)\n\t\t.option(\"-q, --quiet\", \"Suppress output\", false)\n\t\t.action(async (path: string, options: BuildOptions) => {\n\t\t\ttry {\n\t\t\t\tconst sourcePath = join(options.cwd, path)\n\t\t\t\tconst outPath = join(options.cwd, options.out)\n\n\t\t\t\tconst spinner = createSpinner({\n\t\t\t\t\ttext: \"Building registry...\",\n\t\t\t\t\tquiet: options.quiet || options.json,\n\t\t\t\t})\n\t\t\t\tif (!options.json) spinner.start()\n\n\t\t\t\tconst result = await buildRegistry({\n\t\t\t\t\tsource: sourcePath,\n\t\t\t\t\tout: outPath,\n\t\t\t\t})\n\n\t\t\t\tif (!options.json) {\n\t\t\t\t\tconst msg = `Built ${result.componentsCount} components to ${relative(options.cwd, outPath)}`\n\t\t\t\t\tspinner.succeed(msg)\n\t\t\t\t\tif (process.env.NODE_ENV === \"test\" || !process.stdout.isTTY) {\n\t\t\t\t\t\tlogger.success(`Built ${result.componentsCount} components`)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (options.json) {\n\t\t\t\t\toutputJson({\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tname: result.name,\n\t\t\t\t\t\t\tversion: result.version,\n\t\t\t\t\t\t\tcomponents: result.componentsCount,\n\t\t\t\t\t\t\toutput: result.outputPath,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof BuildRegistryError) {\n\t\t\t\t\tif (!options.json) {\n\t\t\t\t\t\tlogger.error(error.message)\n\t\t\t\t\t\tfor (const err of error.errors) {\n\t\t\t\t\t\t\tconsole.log(kleur.red(` ${err}`))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tprocess.exit(1)\n\t\t\t\t}\n\t\t\t\thandleError(error, { json: options.json })\n\t\t\t}\n\t\t})\n}\n",
70
- "/**\n * Build Registry Library Function\n *\n * Pure function to build a registry from source.\n * No CLI concerns - just input/output.\n */\n\nimport { mkdir } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\nimport { normalizeFile, registrySchema } from \"../schemas/registry.js\"\n\nexport interface BuildRegistryOptions {\n\t/** Source directory containing registry.json and files/ */\n\tsource: string\n\t/** Output directory for built registry */\n\tout: string\n}\n\nexport interface BuildRegistryResult {\n\t/** Name of the registry */\n\tname: string\n\t/** Namespace of the registry */\n\tnamespace: string\n\t/** Version of the registry */\n\tversion: string\n\t/** Number of components built */\n\tcomponentsCount: number\n\t/** Absolute path to output directory */\n\toutputPath: string\n}\n\nexport class BuildRegistryError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly errors: string[] = [],\n\t) {\n\t\tsuper(message)\n\t\tthis.name = \"BuildRegistryError\"\n\t}\n}\n\n/**\n * Build a registry from source.\n *\n * @param options - Build options\n * @returns Build result with metadata\n * @throws {BuildRegistryError} If validation fails or files are missing\n */\nexport async function buildRegistry(options: BuildRegistryOptions): Promise<BuildRegistryResult> {\n\tconst { source: sourcePath, out: outPath } = options\n\n\t// Read registry.json from source\n\tconst registryFile = Bun.file(join(sourcePath, \"registry.json\"))\n\tif (!(await registryFile.exists())) {\n\t\tthrow new BuildRegistryError(\"No registry.json found in source directory\")\n\t}\n\n\tconst registryData = await registryFile.json()\n\n\t// Validate registry schema\n\tconst parseResult = registrySchema.safeParse(registryData)\n\tif (!parseResult.success) {\n\t\tconst errors = parseResult.error.errors.map((e) => `${e.path.join(\".\")}: ${e.message}`)\n\t\tthrow new BuildRegistryError(\"Registry validation failed\", errors)\n\t}\n\n\tconst registry = parseResult.data\n\tconst validationErrors: string[] = []\n\n\t// Create output directory structure\n\tconst componentsDir = join(outPath, \"components\")\n\tawait mkdir(componentsDir, { recursive: true })\n\n\t// Generate packument and copy files for each component\n\tfor (const component of registry.components) {\n\t\tconst packument = {\n\t\t\tname: component.name,\n\t\t\tversions: {\n\t\t\t\t[registry.version]: component,\n\t\t\t},\n\t\t\t\"dist-tags\": {\n\t\t\t\tlatest: registry.version,\n\t\t\t},\n\t\t}\n\n\t\t// Write manifest to components/[name].json\n\t\tconst packumentPath = join(componentsDir, `${component.name}.json`)\n\t\tawait Bun.write(packumentPath, JSON.stringify(packument, null, 2))\n\n\t\t// Copy files to components/[name]/[path]\n\t\tfor (const rawFile of component.files) {\n\t\t\tconst file = normalizeFile(rawFile)\n\t\t\tconst sourceFilePath = join(sourcePath, \"files\", file.path)\n\t\t\tconst destFilePath = join(componentsDir, component.name, file.path)\n\t\t\tconst destFileDir = dirname(destFilePath)\n\n\t\t\tif (!(await Bun.file(sourceFilePath).exists())) {\n\t\t\t\tvalidationErrors.push(`${component.name}: Source file not found at ${sourceFilePath}`)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tawait mkdir(destFileDir, { recursive: true })\n\t\t\tconst sourceFile = Bun.file(sourceFilePath)\n\t\t\tawait Bun.write(destFilePath, sourceFile)\n\t\t}\n\t}\n\n\t// Fail fast if source files were missing during copy\n\tif (validationErrors.length > 0) {\n\t\tthrow new BuildRegistryError(\n\t\t\t`Build failed with ${validationErrors.length} errors`,\n\t\t\tvalidationErrors,\n\t\t)\n\t}\n\n\t// Generate index.json at the root\n\tconst index = {\n\t\tname: registry.name,\n\t\tnamespace: registry.namespace,\n\t\tversion: registry.version,\n\t\tauthor: registry.author,\n\t\tcomponents: registry.components.map((c) => ({\n\t\t\tname: c.name,\n\t\t\ttype: c.type,\n\t\t\tdescription: c.description,\n\t\t})),\n\t}\n\n\tawait Bun.write(join(outPath, \"index.json\"), JSON.stringify(index, null, 2))\n\n\t// Generate .well-known/ocx.json for registry discovery\n\tconst wellKnownDir = join(outPath, \".well-known\")\n\tawait mkdir(wellKnownDir, { recursive: true })\n\tconst discovery = { registry: \"/index.json\" }\n\tawait Bun.write(join(wellKnownDir, \"ocx.json\"), JSON.stringify(discovery, null, 2))\n\n\treturn {\n\t\tname: registry.name,\n\t\tnamespace: registry.namespace,\n\t\tversion: registry.version,\n\t\tcomponentsCount: registry.components.length,\n\t\toutputPath: outPath,\n\t}\n}\n",
72
+ "/**\n * Build Registry Library Function\n *\n * Pure function to build a registry from source.\n * No CLI concerns - just input/output.\n */\n\nimport { mkdir } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\nimport { normalizeFile, registrySchema } from \"../schemas/registry.js\"\n\nexport interface BuildRegistryOptions {\n\t/** Source directory containing registry.json and files/ */\n\tsource: string\n\t/** Output directory for built registry */\n\tout: string\n}\n\nexport interface BuildRegistryResult {\n\t/** Name of the registry */\n\tname: string\n\t/** Namespace of the registry */\n\tnamespace: string\n\t/** Version of the registry */\n\tversion: string\n\t/** Number of components built */\n\tcomponentsCount: number\n\t/** Absolute path to output directory */\n\toutputPath: string\n}\n\nexport class BuildRegistryError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic readonly errors: string[] = [],\n\t) {\n\t\tsuper(message)\n\t\tthis.name = \"BuildRegistryError\"\n\t}\n}\n\n/**\n * Build a registry from source.\n *\n * @param options - Build options\n * @returns Build result with metadata\n * @throws {BuildRegistryError} If validation fails or files are missing\n */\nexport async function buildRegistry(options: BuildRegistryOptions): Promise<BuildRegistryResult> {\n\tconst { source: sourcePath, out: outPath } = options\n\n\t// Read registry.json from source\n\tconst registryFile = Bun.file(join(sourcePath, \"registry.json\"))\n\tif (!(await registryFile.exists())) {\n\t\tthrow new BuildRegistryError(\"No registry.json found in source directory\")\n\t}\n\n\tconst registryData = await registryFile.json()\n\n\t// Validate registry schema\n\tconst parseResult = registrySchema.safeParse(registryData)\n\tif (!parseResult.success) {\n\t\tconst errors = parseResult.error.errors.map((e) => `${e.path.join(\".\")}: ${e.message}`)\n\t\tthrow new BuildRegistryError(\"Registry validation failed\", errors)\n\t}\n\n\tconst registry = parseResult.data\n\tconst validationErrors: string[] = []\n\n\t// Create output directory structure\n\tconst componentsDir = join(outPath, \"components\")\n\tawait mkdir(componentsDir, { recursive: true })\n\n\t// Generate packument and copy files for each component\n\tfor (const component of registry.components) {\n\t\tconst packument = {\n\t\t\tname: component.name,\n\t\t\tversions: {\n\t\t\t\t[registry.version]: component,\n\t\t\t},\n\t\t\t\"dist-tags\": {\n\t\t\t\tlatest: registry.version,\n\t\t\t},\n\t\t}\n\n\t\t// Write manifest to components/[name].json\n\t\tconst packumentPath = join(componentsDir, `${component.name}.json`)\n\t\tawait Bun.write(packumentPath, JSON.stringify(packument, null, 2))\n\n\t\t// Copy files to components/[name]/[path]\n\t\tfor (const rawFile of component.files) {\n\t\t\tconst file = normalizeFile(rawFile)\n\t\t\tconst sourceFilePath = join(sourcePath, \"files\", file.path)\n\t\t\tconst destFilePath = join(componentsDir, component.name, file.path)\n\t\t\tconst destFileDir = dirname(destFilePath)\n\n\t\t\tif (!(await Bun.file(sourceFilePath).exists())) {\n\t\t\t\tvalidationErrors.push(`${component.name}: Source file not found at ${sourceFilePath}`)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tawait mkdir(destFileDir, { recursive: true })\n\t\t\tconst sourceFile = Bun.file(sourceFilePath)\n\t\t\tawait Bun.write(destFilePath, sourceFile)\n\t\t}\n\t}\n\n\t// Fail fast if source files were missing during copy\n\tif (validationErrors.length > 0) {\n\t\tthrow new BuildRegistryError(\n\t\t\t`Build failed with ${validationErrors.length} errors`,\n\t\t\tvalidationErrors,\n\t\t)\n\t}\n\n\t// Generate index.json at the root\n\tconst index = {\n\t\tname: registry.name,\n\t\tnamespace: registry.namespace,\n\t\tversion: registry.version,\n\t\tauthor: registry.author,\n\t\t// Include version requirements for compatibility checking\n\t\t...(registry.opencode && { opencode: registry.opencode }),\n\t\t...(registry.ocx && { ocx: registry.ocx }),\n\t\tcomponents: registry.components.map((c) => ({\n\t\t\tname: c.name,\n\t\t\ttype: c.type,\n\t\t\tdescription: c.description,\n\t\t})),\n\t}\n\n\tawait Bun.write(join(outPath, \"index.json\"), JSON.stringify(index, null, 2))\n\n\t// Generate .well-known/ocx.json for registry discovery\n\tconst wellKnownDir = join(outPath, \".well-known\")\n\tawait mkdir(wellKnownDir, { recursive: true })\n\tconst discovery = { registry: \"/index.json\" }\n\tawait Bun.write(join(wellKnownDir, \"ocx.json\"), JSON.stringify(discovery, null, 2))\n\n\treturn {\n\t\tname: registry.name,\n\t\tnamespace: registry.namespace,\n\t\tversion: registry.version,\n\t\tcomponentsCount: registry.components.length,\n\t\toutputPath: outPath,\n\t}\n}\n",
71
73
  "export default class Diff {\n diff(oldStr, newStr, \n // Type below is not accurate/complete - see above for full possibilities - but it compiles\n options = {}) {\n let callback;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n else if ('callback' in options) {\n callback = options.callback;\n }\n // Allow subclasses to massage the input prior to running\n const oldString = this.castInput(oldStr, options);\n const newString = this.castInput(newStr, options);\n const oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n const newTokens = this.removeEmpty(this.tokenize(newString, options));\n return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n }\n diffWithOptionsObj(oldTokens, newTokens, options, callback) {\n var _a;\n const done = (value) => {\n value = this.postProcess(value, options);\n if (callback) {\n setTimeout(function () { callback(value); }, 0);\n return undefined;\n }\n else {\n return value;\n }\n };\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let editLength = 1;\n let maxEditLength = newLen + oldLen;\n if (options.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n const abortAfterTimestamp = Date.now() + maxExecutionTime;\n const bestPath = [{ oldPos: -1, lastComponent: undefined }];\n // Seed editLength = 0, i.e. the content starts with the same values\n let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // Identity per the equality and tokenizer\n return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n }\n // Once we hit the right edge of the edit graph on some diagonal k, we can\n // definitely reach the end of the edit graph in no more than k edits, so\n // there's no point in considering any moves to diagonal k+1 any more (from\n // which we're guaranteed to need at least k+1 more edits).\n // Similarly, once we've reached the bottom of the edit graph, there's no\n // point considering moves to lower diagonals.\n // We record this fact by setting minDiagonalToConsider and\n // maxDiagonalToConsider to some finite value once we've hit the edge of\n // the edit graph.\n // This optimization is not faithful to the original algorithm presented in\n // Myers's paper, which instead pointlessly extends D-paths off the end of\n // the edit graph - see page 7 of Myers's paper which notes this point\n // explicitly and illustrates it with a diagram. This has major performance\n // implications for some common scenarios. For instance, to compute a diff\n // where the new text simply appends d characters on the end of the\n // original text of length n, the true Myers algorithm will take O(n+d^2)\n // time while this optimization needs only O(n+d) time.\n let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n // Main worker method. checks all permutations of a given edit length for acceptance.\n const execEditLength = () => {\n for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n let basePath;\n const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n // No one else is going to attempt to use this value, clear it\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath - 1] = undefined;\n }\n let canAdd = false;\n if (addPath) {\n // what newPos will be after we do an insertion:\n const addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n const canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath] = undefined;\n continue;\n }\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the old string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n basePath = this.addToPath(addPath, true, false, 0, options);\n }\n else {\n basePath = this.addToPath(removePath, false, true, 1, options);\n }\n newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // If we have hit the end of both strings, then we are done\n return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n }\n else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n };\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback(undefined);\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n }());\n }\n else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n const ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n }\n addToPath(path, added, removed, oldPosInc, options) {\n const last = path.lastComponent;\n if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n };\n }\n else {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n };\n }\n }\n extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options.oneChangePerToken) {\n basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n }\n if (commonCount && !options.oneChangePerToken) {\n basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n basePath.oldPos = oldPos;\n return newPos;\n }\n equals(left, right, options) {\n if (options.comparator) {\n return options.comparator(left, right);\n }\n else {\n return left === right\n || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n }\n }\n removeEmpty(array) {\n const ret = [];\n for (let i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n castInput(value, options) {\n return value;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tokenize(value, options) {\n return Array.from(value);\n }\n join(chars) {\n // Assumes ValueT is string, which is the case for most subclasses.\n // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n // assume tokens and values are strings, but not completely - is weird and janky.\n return chars.join('');\n }\n postProcess(changeObjects, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n options) {\n return changeObjects;\n }\n get useLongestToken() {\n return false;\n }\n buildValues(lastComponent, newTokens, oldTokens) {\n // First we convert our linked list of components in reverse order to an\n // array in the right order:\n const components = [];\n let nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n const componentLen = components.length;\n let componentPos = 0, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n const component = components[componentPos];\n if (!component.removed) {\n if (!component.added && this.useLongestToken) {\n let value = newTokens.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n const oldValue = oldTokens[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = this.join(value);\n }\n else {\n component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n // Common case\n if (!component.added) {\n oldPos += component.count;\n }\n }\n else {\n component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n }\n}\n",
72
74
  "import Diff from './base.js';\nclass CharacterDiff extends Diff {\n}\nexport const characterDiff = new CharacterDiff();\nexport function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n}\n",
73
75
  "export function longestCommonPrefix(str1, str2) {\n let i;\n for (i = 0; i < str1.length && i < str2.length; i++) {\n if (str1[i] != str2[i]) {\n return str1.slice(0, i);\n }\n }\n return str1.slice(0, i);\n}\nexport function longestCommonSuffix(str1, str2) {\n let i;\n // Unlike longestCommonPrefix, we need a special case to handle all scenarios\n // where we return the empty string since str1.slice(-0) will return the\n // entire string.\n if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) {\n return '';\n }\n for (i = 0; i < str1.length && i < str2.length; i++) {\n if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) {\n return str1.slice(-i);\n }\n }\n return str1.slice(-i);\n}\nexport function replacePrefix(string, oldPrefix, newPrefix) {\n if (string.slice(0, oldPrefix.length) != oldPrefix) {\n throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);\n }\n return newPrefix + string.slice(oldPrefix.length);\n}\nexport function replaceSuffix(string, oldSuffix, newSuffix) {\n if (!oldSuffix) {\n return string + newSuffix;\n }\n if (string.slice(-oldSuffix.length) != oldSuffix) {\n throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);\n }\n return string.slice(0, -oldSuffix.length) + newSuffix;\n}\nexport function removePrefix(string, oldPrefix) {\n return replacePrefix(string, oldPrefix, '');\n}\nexport function removeSuffix(string, oldSuffix) {\n return replaceSuffix(string, oldSuffix, '');\n}\nexport function maximumOverlap(string1, string2) {\n return string2.slice(0, overlapCount(string1, string2));\n}\n// Nicked from https://stackoverflow.com/a/60422853/1709587\nfunction overlapCount(a, b) {\n // Deal with cases where the strings differ in length\n let startA = 0;\n if (a.length > b.length) {\n startA = a.length - b.length;\n }\n let endB = b.length;\n if (a.length < b.length) {\n endB = a.length;\n }\n // Create a back-reference for each index\n // that should be followed in case of a mismatch.\n // We only need B to make these references:\n const map = Array(endB);\n let k = 0; // Index that lags behind j\n map[0] = 0;\n for (let j = 1; j < endB; j++) {\n if (b[j] == b[k]) {\n map[j] = map[k]; // skip over the same character (optional optimisation)\n }\n else {\n map[j] = k;\n }\n while (k > 0 && b[j] != b[k]) {\n k = map[k];\n }\n if (b[j] == b[k]) {\n k++;\n }\n }\n // Phase 2: use these references while iterating over A\n k = 0;\n for (let i = startA; i < a.length; i++) {\n while (k > 0 && a[i] != b[k]) {\n k = map[k];\n }\n if (a[i] == b[k]) {\n k++;\n }\n }\n return k;\n}\n/**\n * Returns true if the string consistently uses Windows line endings.\n */\nexport function hasOnlyWinLineEndings(string) {\n return string.includes('\\r\\n') && !string.startsWith('\\n') && !string.match(/[^\\r]\\n/);\n}\n/**\n * Returns true if the string consistently uses Unix line endings.\n */\nexport function hasOnlyUnixLineEndings(string) {\n return !string.includes('\\r\\n') && string.includes('\\n');\n}\nexport function trailingWs(string) {\n // Yes, this looks overcomplicated and dumb - why not replace the whole function with\n // return string match(/\\s*$/)[0]\n // you ask? Because:\n // 1. the trap described at https://markamery.com/blog/quadratic-time-regexes/ would mean doing\n // this would cause this function to take O(n²) time in the worst case (specifically when\n // there is a massive run of NON-TRAILING whitespace in `string`), and\n // 2. the fix proposed in the same blog post, of using a negative lookbehind, is incompatible\n // with old Safari versions that we'd like to not break if possible (see\n // https://github.com/kpdecker/jsdiff/pull/550)\n // It feels absurd to do this with an explicit loop instead of a regex, but I really can't see a\n // better way that doesn't result in broken behaviour.\n let i;\n for (i = string.length - 1; i >= 0; i--) {\n if (!string[i].match(/\\s/)) {\n break;\n }\n }\n return string.substring(i + 1);\n}\nexport function leadingWs(string) {\n // Thankfully the annoying considerations described in trailingWs don't apply here:\n const match = string.match(/^\\s*/);\n return match ? match[0] : '';\n}\n",
@@ -80,13 +82,12 @@
80
82
  "import { diffLines } from '../diff/line.js';\nexport function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n let optionsObj;\n if (!options) {\n optionsObj = {};\n }\n else if (typeof options === 'function') {\n optionsObj = { callback: options };\n }\n else {\n optionsObj = options;\n }\n if (typeof optionsObj.context === 'undefined') {\n optionsObj.context = 4;\n }\n // We copy this into its own variable to placate TypeScript, which thinks\n // optionsObj.context might be undefined in the callbacks below.\n const context = optionsObj.context;\n // @ts-expect-error (runtime check for something that is correctly a static type error)\n if (optionsObj.newlineIsToken) {\n throw new Error('newlineIsToken may not be used with patch-generation functions, only with diffing functions');\n }\n if (!optionsObj.callback) {\n return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));\n }\n else {\n const { callback } = optionsObj;\n diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => {\n const patch = diffLinesResultToPatch(diff);\n // TypeScript is unhappy without the cast because it does not understand that `patch` may\n // be undefined here only if `callback` is StructuredPatchCallbackAbortable:\n callback(patch);\n } }));\n }\n function diffLinesResultToPatch(diff) {\n // STEP 1: Build up the patch with no \"\\" lines and with the arrays\n // of lines containing trailing newline characters. We'll tidy up later...\n if (!diff) {\n return;\n }\n diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\n function contextLines(lines) {\n return lines.map(function (entry) { return ' ' + entry; });\n }\n const hunks = [];\n let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;\n for (let i = 0; i < diff.length; i++) {\n const current = diff[i], lines = current.lines || splitLines(current.value);\n current.lines = lines;\n if (current.added || current.removed) {\n // If we have previous context, start with that\n if (!oldRangeStart) {\n const prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n if (prev) {\n curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n }\n // Output our changes\n for (const line of lines) {\n curRange.push((current.added ? '+' : '-') + line);\n }\n // Track the updated file position\n if (current.added) {\n newLine += lines.length;\n }\n else {\n oldLine += lines.length;\n }\n }\n else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= context * 2 && i < diff.length - 2) {\n // Overlapping\n for (const line of contextLines(lines)) {\n curRange.push(line);\n }\n }\n else {\n // end the range and output\n const contextSize = Math.min(lines.length, context);\n for (const line of contextLines(lines.slice(0, contextSize))) {\n curRange.push(line);\n }\n const hunk = {\n oldStart: oldRangeStart,\n oldLines: (oldLine - oldRangeStart + contextSize),\n newStart: newRangeStart,\n newLines: (newLine - newRangeStart + contextSize),\n lines: curRange\n };\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n oldLine += lines.length;\n newLine += lines.length;\n }\n }\n // Step 2: eliminate the trailing `\\n` from each line of each hunk, and, where needed, add\n // \"\\".\n for (const hunk of hunks) {\n for (let i = 0; i < hunk.lines.length; i++) {\n if (hunk.lines[i].endsWith('\\n')) {\n hunk.lines[i] = hunk.lines[i].slice(0, -1);\n }\n else {\n hunk.lines.splice(i + 1, 0, '\\\');\n i++; // Skip the line we just added, then continue iterating\n }\n }\n }\n return {\n oldFileName: oldFileName, newFileName: newFileName,\n oldHeader: oldHeader, newHeader: newHeader,\n hunks: hunks\n };\n }\n}\n/**\n * creates a unified diff patch.\n * @param patch either a single structured patch object (as returned by `structuredPatch`) or an array of them (as returned by `parsePatch`)\n */\nexport function formatPatch(patch) {\n if (Array.isArray(patch)) {\n return patch.map(formatPatch).join('\\n');\n }\n const ret = [];\n if (patch.oldFileName == patch.newFileName) {\n ret.push('Index: ' + patch.oldFileName);\n }\n ret.push('===================================================================');\n ret.push('--- ' + patch.oldFileName + (typeof patch.oldHeader === 'undefined' ? '' : '\\t' + patch.oldHeader));\n ret.push('+++ ' + patch.newFileName + (typeof patch.newHeader === 'undefined' ? '' : '\\t' + patch.newHeader));\n for (let i = 0; i < patch.hunks.length; i++) {\n const hunk = patch.hunks[i];\n // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines\n + ' +' + hunk.newStart + ',' + hunk.newLines\n + ' @@');\n for (const line of hunk.lines) {\n ret.push(line);\n }\n }\n return ret.join('\\n') + '\\n';\n}\nexport function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (typeof options === 'function') {\n options = { callback: options };\n }\n if (!(options === null || options === void 0 ? void 0 : options.callback)) {\n const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n if (!patchObj) {\n return;\n }\n return formatPatch(patchObj);\n }\n else {\n const { callback } = options;\n structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: patchObj => {\n if (!patchObj) {\n callback(undefined);\n }\n else {\n callback(formatPatch(patchObj));\n }\n } }));\n }\n}\nexport function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n/**\n * Split `text` into an array of lines, including the trailing newline character (where present)\n */\nfunction splitLines(text) {\n const hasTrailingNl = text.endsWith('\\n');\n const result = text.split('\\n').map(line => line + '\\n');\n if (hasTrailingNl) {\n result.pop();\n }\n else {\n result.push(result.pop().slice(0, -1));\n }\n return result;\n}\n",
81
83
  "/**\n * Diff Command\n *\n * Compare installed components with upstream registry versions.\n */\n\nimport type { Command } from \"commander\"\nimport * as Diff from \"diff\"\nimport kleur from \"kleur\"\nimport { fetchComponent, fetchFileContent } from \"../registry/fetcher.js\"\nimport { readOcxConfig, readOcxLock } from \"../schemas/config.js\"\nimport { normalizeFile, parseQualifiedComponent } from \"../schemas/registry.js\"\nimport { handleError, logger, outputJson } from \"../utils/index.js\"\n\ninterface DiffOptions {\n\tcwd: string\n\tjson: boolean\n\tquiet: boolean\n}\n\nexport function registerDiffCommand(program: Command): void {\n\tprogram\n\t\t.command(\"diff\")\n\t\t.description(\"Compare installed components with upstream\")\n\t\t.argument(\"[component]\", \"Component to diff (optional, diffs all if omitted)\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"--json\", \"Output as JSON\", false)\n\t\t.option(\"-q, --quiet\", \"Suppress output\", false)\n\t\t.action(async (component: string | undefined, options: DiffOptions) => {\n\t\t\ttry {\n\t\t\t\tconst lock = await readOcxLock(options.cwd)\n\t\t\t\tif (!lock) {\n\t\t\t\t\tif (options.json) {\n\t\t\t\t\t\toutputJson({\n\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\terror: { code: \"NOT_FOUND\", message: \"No ocx.lock found\" },\n\t\t\t\t\t\t})\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.warn(\"No ocx.lock found. Run 'ocx add' first.\")\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst config = await readOcxConfig(options.cwd)\n\t\t\t\tif (!config) {\n\t\t\t\t\tif (options.json) {\n\t\t\t\t\t\toutputJson({\n\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\terror: { code: \"NOT_FOUND\", message: \"No ocx.jsonc found\" },\n\t\t\t\t\t\t})\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.warn(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst componentNames = component ? [component] : Object.keys(lock.installed)\n\n\t\t\t\tif (componentNames.length === 0) {\n\t\t\t\t\tif (options.json) {\n\t\t\t\t\t\toutputJson({ success: true, data: { diffs: [] } })\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.info(\"No components installed.\")\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst results: Array<{ name: string; hasChanges: boolean; diff?: string }> = []\n\n\t\t\t\tfor (const name of componentNames) {\n\t\t\t\t\tconst installed = lock.installed[name]\n\t\t\t\t\tif (!installed) {\n\t\t\t\t\t\tif (component) {\n\t\t\t\t\t\t\tlogger.warn(`Component '${name}' not found in lockfile.`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\t// Guard: check if files array exists and has items\n\t\t\t\t\tif (!installed.files || installed.files.length === 0) {\n\t\t\t\t\t\tlogger.warn(`No files recorded for component '${name}'`)\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\t// Read local file (use first file from the files array)\n\t\t\t\t\tconst localPath = `${options.cwd}/${installed.files[0]}`\n\t\t\t\t\tconst localFile = Bun.file(localPath)\n\t\t\t\t\tif (!(await localFile.exists())) {\n\t\t\t\t\t\tresults.push({ name, hasChanges: true, diff: \"Local file missing\" })\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tconst localContent = await localFile.text()\n\n\t\t\t\t\t// Fetch upstream\n\t\t\t\t\tconst registryConfig = config.registries[installed.registry]\n\t\t\t\t\tif (!registryConfig) {\n\t\t\t\t\t\tlogger.warn(`Registry '${installed.registry}' not configured for component '${name}'.`)\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Parse qualified name to get just the component name for fetching\n\t\t\t\t\t\tconst parsed = parseQualifiedComponent(name)\n\t\t\t\t\t\tconst componentName = parsed.component\n\t\t\t\t\t\tconst upstream = await fetchComponent(registryConfig.url, componentName)\n\n\t\t\t\t\t\t// Assume first file for simplicity in this MVP\n\t\t\t\t\t\t// In a full implementation we'd diff all files in the component\n\t\t\t\t\t\tconst rawUpstreamFile = upstream.files[0]\n\t\t\t\t\t\tif (!rawUpstreamFile) {\n\t\t\t\t\t\t\tresults.push({ name, hasChanges: false })\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst upstreamFile = normalizeFile(rawUpstreamFile)\n\n\t\t\t\t\t\t// Fetch actual content from registry\n\t\t\t\t\t\tconst upstreamContent = await fetchFileContent(\n\t\t\t\t\t\t\tregistryConfig.url,\n\t\t\t\t\t\t\tcomponentName,\n\t\t\t\t\t\t\tupstreamFile.path,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (localContent === upstreamContent) {\n\t\t\t\t\t\t\tresults.push({ name, hasChanges: false })\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst patch = Diff.createPatch(name, upstreamContent, localContent)\n\t\t\t\t\t\t\tresults.push({ name, hasChanges: true, diff: patch })\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tlogger.warn(`Could not fetch upstream for ${name}: ${String(err)}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (options.json) {\n\t\t\t\t\toutputJson({ success: true, data: { diffs: results } })\n\t\t\t\t} else {\n\t\t\t\t\tfor (const res of results) {\n\t\t\t\t\t\tif (res.hasChanges) {\n\t\t\t\t\t\t\tconsole.log(kleur.yellow(`\\nDiff for ${res.name}:`))\n\t\t\t\t\t\t\tconsole.log(res.diff || \"Changes detected (no diff available)\")\n\t\t\t\t\t\t} else if (!options.quiet) {\n\t\t\t\t\t\t\tlogger.success(`${res.name}: No changes`)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error, { json: options.json })\n\t\t\t}\n\t\t})\n}\n",
82
84
  "/**\n * OCX CLI - init command\n * Initialize OCX configuration in a project or scaffold a new registry\n */\n\nimport { existsSync } from \"node:fs\"\nimport { cp, mkdir, readdir, readFile, rm, writeFile } from \"node:fs/promises\"\nimport { join } from \"node:path\"\nimport type { Command } from \"commander\"\nimport { OCX_SCHEMA_URL } from \"../constants.js\"\nimport { ocxConfigSchema } from \"../schemas/config.js\"\nimport { ConflictError, NetworkError, ValidationError } from \"../utils/errors.js\"\nimport { createSpinner, handleError, logger } from \"../utils/index.js\"\n\nconst TEMPLATE_REPO = \"kdcokenny/ocx\"\nconst TEMPLATE_PATH = \"examples/registry-starter\"\n\ninterface InitOptions {\n\tyes?: boolean\n\tcwd?: string\n\tquiet?: boolean\n\tverbose?: boolean\n\tjson?: boolean\n\tregistry?: boolean\n\tnamespace?: string\n\tauthor?: string\n\tcanary?: boolean\n\tlocal?: string\n}\n\nexport function registerInitCommand(program: Command): void {\n\tprogram\n\t\t.command(\"init [directory]\")\n\t\t.description(\"Initialize OCX configuration in your project\")\n\t\t.option(\"-y, --yes\", \"Skip prompts and use defaults\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"-q, --quiet\", \"Suppress output\")\n\t\t.option(\"-v, --verbose\", \"Verbose output\")\n\t\t.option(\"--json\", \"Output as JSON\")\n\t\t.option(\"--registry\", \"Scaffold a new OCX registry project\")\n\t\t.option(\"--namespace <name>\", \"Registry namespace (e.g., my-org)\")\n\t\t.option(\"--author <name>\", \"Author name for the registry\")\n\t\t.option(\"--canary\", \"Use canary (main branch) instead of latest release\")\n\t\t.option(\"--local <path>\", \"Use local template directory instead of fetching\")\n\t\t.action(async (directory: string | undefined, options: InitOptions) => {\n\t\t\ttry {\n\t\t\t\tif (options.registry) {\n\t\t\t\t\tawait runInitRegistry(directory, options)\n\t\t\t\t} else {\n\t\t\t\t\tawait runInit(options)\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error, { json: options.json })\n\t\t\t}\n\t\t})\n}\n\nasync function runInit(options: InitOptions): Promise<void> {\n\tconst cwd = options.cwd ?? process.cwd()\n\tconst configPath = join(cwd, \"ocx.jsonc\")\n\n\t// Check for existing config\n\tif (existsSync(configPath)) {\n\t\tif (!options.yes) {\n\t\t\tlogger.warn(\"ocx.jsonc already exists\")\n\t\t\tlogger.info(\"Use --yes to overwrite\")\n\t\t\treturn\n\t\t}\n\t\tlogger.info(\"Overwriting existing ocx.jsonc\")\n\t}\n\n\tconst spin = options.quiet ? null : createSpinner({ text: \"Initializing OCX...\" })\n\tspin?.start()\n\n\ttry {\n\t\t// Create minimal config - schema will apply defaults\n\t\tconst rawConfig = {\n\t\t\t$schema: OCX_SCHEMA_URL,\n\t\t\tregistries: {},\n\t\t}\n\n\t\t// Validate with schema (applies defaults)\n\t\tconst config = ocxConfigSchema.parse(rawConfig)\n\n\t\t// Write config file\n\t\tconst content = JSON.stringify(config, null, 2)\n\t\tawait writeFile(configPath, content, \"utf-8\")\n\n\t\tif (!options.quiet && !options.json) {\n\t\t\tlogger.success(\"Initialized OCX configuration\")\n\t\t}\n\n\t\tspin?.succeed(\"Initialized OCX configuration\")\n\n\t\tif (options.json) {\n\t\t\tconsole.log(JSON.stringify({ success: true, path: configPath }))\n\t\t} else if (!options.quiet) {\n\t\t\tlogger.info(`Created ${configPath}`)\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.info(\"Next steps:\")\n\t\t\tlogger.info(\" 1. Add a registry: ocx registry add <url>\")\n\t\t\tlogger.info(\" 2. Install components: ocx add <component>\")\n\t\t}\n\t} catch (error) {\n\t\tspin?.fail(\"Failed to initialize\")\n\t\tthrow error\n\t}\n}\n\nasync function runInitRegistry(directory: string | undefined, options: InitOptions): Promise<void> {\n\tconst cwd = directory ?? options.cwd ?? process.cwd()\n\tconst namespace = options.namespace ?? \"my-registry\"\n\tconst author = options.author ?? \"Your Name\"\n\n\t// Validate namespace format (Early Exit)\n\tif (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(namespace)) {\n\t\tthrow new ValidationError(\n\t\t\t\"Invalid namespace format: must start with letter/number, use hyphens only between segments (e.g., 'my-registry')\",\n\t\t)\n\t}\n\n\t// Check if directory is empty (Early Exit)\n\tconst existingFiles = await readdir(cwd).catch(() => [])\n\tconst hasVisibleFiles = existingFiles.some((f) => !f.startsWith(\".\"))\n\n\tif (hasVisibleFiles && !options.yes) {\n\t\tthrow new ConflictError(\"Directory is not empty. Use --yes to overwrite existing files.\")\n\t}\n\n\tconst spin = options.quiet ? null : createSpinner({ text: \"Scaffolding registry...\" })\n\tspin?.start()\n\n\ttry {\n\t\t// Fetch and extract template (or copy from local)\n\t\tif (spin) spin.text = options.local ? \"Copying template...\" : \"Fetching template...\"\n\n\t\tif (options.local) {\n\t\t\t// Use local template directory\n\t\t\tawait mkdir(cwd, { recursive: true })\n\t\t\tawait copyDir(options.local, cwd)\n\t\t} else {\n\t\t\t// Fetch from GitHub\n\t\t\tconst version = options.canary ? \"main\" : await getLatestVersion()\n\t\t\tawait fetchAndExtractTemplate(cwd, version, options.verbose)\n\t\t}\n\n\t\t// Replace placeholders\n\t\tif (spin) spin.text = \"Configuring project...\"\n\t\tawait replacePlaceholders(cwd, { namespace, author })\n\n\t\tspin?.succeed(`Created registry: ${namespace}`)\n\n\t\tif (options.json) {\n\t\t\tconsole.log(JSON.stringify({ success: true, namespace, path: cwd }))\n\t\t} else if (!options.quiet) {\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.info(\"Next steps:\")\n\t\t\tlogger.info(\" 1. bun install\")\n\t\t\tlogger.info(\" 2. Edit registry.json with your components\")\n\t\t\tlogger.info(\" 3. bun run build\")\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.info(\"Deploy to:\")\n\t\t\tlogger.info(\" Cloudflare: bunx wrangler deploy\")\n\t\t\tlogger.info(\" Vercel: vercel\")\n\t\t\tlogger.info(\" Netlify: netlify deploy\")\n\t\t}\n\t} catch (error) {\n\t\tspin?.fail(\"Failed to scaffold registry\")\n\t\tthrow error\n\t}\n}\n\n/** Copy directory recursively */\nasync function copyDir(src: string, dest: string): Promise<void> {\n\tawait cp(src, dest, { recursive: true })\n}\n\nasync function getLatestVersion(): Promise<string> {\n\tconst pkgPath = new URL(\"../../package.json\", import.meta.url)\n\tconst pkgContent = await readFile(pkgPath)\n\tconst pkg = JSON.parse(pkgContent.toString())\n\treturn `v${pkg.version}`\n}\n\nasync function fetchAndExtractTemplate(\n\tdestDir: string,\n\tversion: string,\n\tverbose?: boolean,\n): Promise<void> {\n\tconst ref = version === \"main\" ? \"heads/main\" : `tags/${version}`\n\tconst tarballUrl = `https://github.com/${TEMPLATE_REPO}/archive/refs/${ref}.tar.gz`\n\n\tif (verbose) {\n\t\tlogger.info(`Fetching ${tarballUrl}`)\n\t}\n\n\tconst response = await fetch(tarballUrl)\n\tif (!response.ok || !response.body) {\n\t\tthrow new NetworkError(`Failed to fetch template from ${tarballUrl}: ${response.statusText}`)\n\t}\n\n\t// Create temp directory for extraction\n\tconst tempDir = join(destDir, \".ocx-temp\")\n\tawait mkdir(tempDir, { recursive: true })\n\n\ttry {\n\t\t// Download tarball\n\t\tconst tarPath = join(tempDir, \"template.tar.gz\")\n\t\tconst arrayBuffer = await response.arrayBuffer()\n\t\tawait writeFile(tarPath, Buffer.from(arrayBuffer))\n\n\t\t// Extract using tar command (available on all platforms with Bun)\n\t\tconst proc = Bun.spawn([\"tar\", \"-xzf\", tarPath, \"-C\", tempDir], {\n\t\t\tstdout: \"ignore\",\n\t\t\tstderr: \"pipe\",\n\t\t})\n\t\tconst exitCode = await proc.exited\n\t\tif (exitCode !== 0) {\n\t\t\tconst stderr = await new Response(proc.stderr).text()\n\t\t\tthrow new Error(`Failed to extract template: ${stderr}`)\n\t\t}\n\n\t\t// Find the extracted directory (format: ocx-{version}/)\n\t\tconst extractedDirs = await readdir(tempDir)\n\t\tconst extractedDir = extractedDirs.find((d) => d.startsWith(\"ocx-\"))\n\t\tif (!extractedDir) {\n\t\t\tthrow new Error(\"Failed to find extracted template directory\")\n\t\t}\n\n\t\t// Copy template files to destination\n\t\tconst templateDir = join(tempDir, extractedDir, TEMPLATE_PATH)\n\t\tawait copyDir(templateDir, destDir)\n\t} finally {\n\t\t// Cleanup temp directory\n\t\tawait rm(tempDir, { recursive: true, force: true })\n\t}\n}\n\nasync function replacePlaceholders(\n\tdir: string,\n\tvalues: { namespace: string; author: string },\n): Promise<void> {\n\tconst filesToProcess = [\n\t\t\"registry.json\",\n\t\t\"package.json\",\n\t\t\"wrangler.jsonc\",\n\t\t\"README.md\",\n\t\t\"AGENTS.md\",\n\t]\n\n\tfor (const file of filesToProcess) {\n\t\tconst filePath = join(dir, file)\n\t\tif (!existsSync(filePath)) continue\n\n\t\tlet content = await readFile(filePath).then((b) => b.toString())\n\n\t\t// Replace placeholders\n\t\tcontent = content.replace(/my-registry/g, values.namespace)\n\t\tcontent = content.replace(/Your Name/g, values.author)\n\n\t\tawait writeFile(filePath, content)\n\t}\n}\n",
83
- "/**\n * OCX URL Constants\n *\n * Centralized URL definitions to avoid hardcoding throughout the codebase.\n */\n\n// Base domains\nexport const OCX_DOMAIN = \"ocx.kdco.dev\"\nexport const GITHUB_REPO = \"kdcokenny/ocx\"\n\n// OCX URLs\nexport const OCX_SCHEMA_URL = `https://${OCX_DOMAIN}/schema.json`\n",
84
85
  "/**\n * Registry Command\n *\n * Manage configured registries.\n */\n\nimport type { Command } from \"commander\"\nimport kleur from \"kleur\"\nimport { readOcxConfig, writeOcxConfig } from \"../schemas/config.js\"\nimport { handleError, logger, outputJson } from \"../utils/index.js\"\n\ninterface RegistryOptions {\n\tcwd: string\n\tjson: boolean\n\tquiet: boolean\n}\n\nexport function registerRegistryCommand(program: Command): void {\n\tconst registry = program.command(\"registry\").description(\"Manage registries\")\n\n\t// registry add\n\tregistry\n\t\t.command(\"add\")\n\t\t.description(\"Add a registry\")\n\t\t.argument(\"<url>\", \"Registry URL\")\n\t\t.option(\"--name <name>\", \"Registry alias (defaults to hostname)\")\n\t\t.option(\"--version <version>\", \"Pin to specific version\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"--json\", \"Output as JSON\", false)\n\t\t.option(\"-q, --quiet\", \"Suppress output\", false)\n\t\t.action(async (url: string, options: RegistryOptions & { name?: string; version?: string }) => {\n\t\t\ttry {\n\t\t\t\tconst config = await readOcxConfig(options.cwd)\n\t\t\t\tif (!config) {\n\t\t\t\t\tlogger.error(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t\t\t\t\tprocess.exit(1)\n\t\t\t\t}\n\n\t\t\t\tif (config.lockRegistries) {\n\t\t\t\t\tlogger.error(\"Registries are locked. Cannot add.\")\n\t\t\t\t\tprocess.exit(1)\n\t\t\t\t}\n\n\t\t\t\t// Derive name from URL if not provided\n\t\t\t\tconst name = options.name || new URL(url).hostname.replace(/\\./g, \"-\")\n\n\t\t\t\tif (config.registries[name]) {\n\t\t\t\t\tlogger.warn(`Registry '${name}' already exists. Use a different name.`)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconfig.registries[name] = {\n\t\t\t\t\turl,\n\t\t\t\t\tversion: options.version,\n\t\t\t\t}\n\n\t\t\t\tawait writeOcxConfig(options.cwd, config)\n\n\t\t\t\tif (options.json) {\n\t\t\t\t\toutputJson({ success: true, data: { name, url } })\n\t\t\t\t} else {\n\t\t\t\t\tlogger.success(`Added registry: ${name} -> ${url}`)\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error)\n\t\t\t}\n\t\t})\n\n\t// registry remove\n\tregistry\n\t\t.command(\"remove\")\n\t\t.description(\"Remove a registry\")\n\t\t.argument(\"<name>\", \"Registry name\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"--json\", \"Output as JSON\", false)\n\t\t.option(\"-q, --quiet\", \"Suppress output\", false)\n\t\t.action(async (name: string, options: RegistryOptions) => {\n\t\t\ttry {\n\t\t\t\tconst config = await readOcxConfig(options.cwd)\n\t\t\t\tif (!config) {\n\t\t\t\t\tlogger.error(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t\t\t\t\tprocess.exit(1)\n\t\t\t\t}\n\n\t\t\t\tif (config.lockRegistries) {\n\t\t\t\t\tlogger.error(\"Registries are locked. Cannot remove.\")\n\t\t\t\t\tprocess.exit(1)\n\t\t\t\t}\n\n\t\t\t\tif (!config.registries[name]) {\n\t\t\t\t\tlogger.warn(`Registry '${name}' not found.`)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tdelete config.registries[name]\n\t\t\t\tawait writeOcxConfig(options.cwd, config)\n\n\t\t\t\tif (options.json) {\n\t\t\t\t\toutputJson({ success: true, data: { removed: name } })\n\t\t\t\t} else {\n\t\t\t\t\tlogger.success(`Removed registry: ${name}`)\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error)\n\t\t\t}\n\t\t})\n\n\t// registry list\n\tregistry\n\t\t.command(\"list\")\n\t\t.description(\"List configured registries\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"--json\", \"Output as JSON\", false)\n\t\t.option(\"-q, --quiet\", \"Suppress output\", false)\n\t\t.action(async (options: RegistryOptions) => {\n\t\t\ttry {\n\t\t\t\tconst config = await readOcxConfig(options.cwd)\n\t\t\t\tif (!config) {\n\t\t\t\t\tlogger.warn(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst registries = Object.entries(config.registries).map(([name, cfg]) => ({\n\t\t\t\t\tname,\n\t\t\t\t\turl: cfg.url,\n\t\t\t\t\tversion: cfg.version || \"latest\",\n\t\t\t\t}))\n\n\t\t\t\tif (options.json) {\n\t\t\t\t\toutputJson({\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tregistries,\n\t\t\t\t\t\t\tlocked: config.lockRegistries,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tif (registries.length === 0) {\n\t\t\t\t\t\tlogger.info(\"No registries configured.\")\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t`Configured registries${config.lockRegistries ? kleur.yellow(\" (locked)\") : \"\"}:`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tfor (const reg of registries) {\n\t\t\t\t\t\t\tconsole.log(` ${kleur.cyan(reg.name)}: ${reg.url} ${kleur.dim(`(${reg.version})`)}`)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error)\n\t\t\t}\n\t\t})\n}\n",
85
86
  "/**\n * Search/List Command\n *\n * Search for components across registries or list installed.\n */\n\nimport type { Command } from \"commander\"\nimport fuzzysort from \"fuzzysort\"\nimport kleur from \"kleur\"\nimport { fetchRegistryIndex } from \"../registry/fetcher.js\"\nimport { readOcxConfig, readOcxLock } from \"../schemas/config.js\"\nimport { createSpinner, handleError, logger, outputJson } from \"../utils/index.js\"\n\ninterface SearchOptions {\n\tcwd: string\n\tjson: boolean\n\tquiet: boolean\n\tverbose: boolean\n\tinstalled: boolean\n\tlimit: number\n}\n\nexport function registerSearchCommand(program: Command): void {\n\tprogram\n\t\t.command(\"search\")\n\t\t.alias(\"list\")\n\t\t.description(\"Search for components across registries or list installed\")\n\t\t.argument(\"[query]\", \"Search query\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"--json\", \"Output as JSON\", false)\n\t\t.option(\"-q, --quiet\", \"Suppress output\", false)\n\t\t.option(\"-v, --verbose\", \"Verbose output\", false)\n\t\t.option(\"-i, --installed\", \"List installed components only\", false)\n\t\t.option(\"-l, --limit <n>\", \"Limit results\", \"20\")\n\t\t.action(async (query: string | undefined, options: SearchOptions) => {\n\t\t\ttry {\n\t\t\t\tconst limit = parseInt(String(options.limit), 10)\n\n\t\t\t\t// List installed only\n\t\t\t\tif (options.installed) {\n\t\t\t\t\tconst lock = await readOcxLock(options.cwd)\n\t\t\t\t\tif (!lock) {\n\t\t\t\t\t\tif (options.json) {\n\t\t\t\t\t\t\toutputJson({ success: true, data: { components: [] } })\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlogger.info(\"No components installed.\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\tconst installed = Object.entries(lock.installed).map(([name, info]) => ({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tregistry: info.registry,\n\t\t\t\t\t\tversion: info.version,\n\t\t\t\t\t\tinstalledAt: info.installedAt,\n\t\t\t\t\t}))\n\n\t\t\t\t\tif (options.json) {\n\t\t\t\t\t\toutputJson({ success: true, data: { components: installed } })\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.info(`Installed components (${installed.length}):`)\n\t\t\t\t\t\tfor (const comp of installed) {\n\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t` ${kleur.cyan(comp.name)} ${kleur.dim(`v${comp.version}`)} from ${comp.registry}`,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// Search across registries\n\t\t\t\tconst config = await readOcxConfig(options.cwd)\n\t\t\t\tif (!config) {\n\t\t\t\t\tlogger.warn(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (options.verbose) {\n\t\t\t\t\tlogger.info(`Searching in ${Object.keys(config.registries).length} registries...`)\n\t\t\t\t}\n\n\t\t\t\tconst allComponents: Array<{\n\t\t\t\t\tname: string\n\t\t\t\t\tdescription: string\n\t\t\t\t\ttype: string\n\t\t\t\t\tregistry: string\n\t\t\t\t}> = []\n\n\t\t\t\tconst spinner = createSpinner({\n\t\t\t\t\ttext: \"Searching registries...\",\n\t\t\t\t\tquiet: options.quiet || options.verbose,\n\t\t\t\t})\n\n\t\t\t\tif (!options.json && !options.verbose) {\n\t\t\t\t\tspinner.start()\n\t\t\t\t}\n\n\t\t\t\tfor (const [registryName, registryConfig] of Object.entries(config.registries)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (options.verbose) {\n\t\t\t\t\t\t\tlogger.info(`Fetching index from ${registryName} (${registryConfig.url})...`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst index = await fetchRegistryIndex(registryConfig.url)\n\t\t\t\t\t\tif (options.verbose) {\n\t\t\t\t\t\t\tlogger.info(`Found ${index.components.length} components in ${registryName}`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const comp of index.components) {\n\t\t\t\t\t\t\tallComponents.push({\n\t\t\t\t\t\t\t\tname: `${index.namespace}/${comp.name}`,\n\t\t\t\t\t\t\t\tdescription: comp.description,\n\t\t\t\t\t\t\t\ttype: comp.type,\n\t\t\t\t\t\t\t\tregistry: registryName,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (options.verbose) {\n\t\t\t\t\t\t\tlogger.warn(\n\t\t\t\t\t\t\t\t`Failed to fetch registry ${registryName}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Skip failed registries\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!options.json && !options.verbose) {\n\t\t\t\t\tspinner.stop()\n\t\t\t\t}\n\n\t\t\t\t// Filter by query if provided\n\t\t\t\tlet results = allComponents\n\t\t\t\tif (query) {\n\t\t\t\t\tconst fuzzyResults = fuzzysort.go(query, allComponents, {\n\t\t\t\t\t\tkeys: [\"name\", \"description\"],\n\t\t\t\t\t\tlimit,\n\t\t\t\t\t})\n\t\t\t\t\tresults = fuzzyResults.map((r) => r.obj)\n\t\t\t\t} else {\n\t\t\t\t\tresults = results.slice(0, limit)\n\t\t\t\t}\n\n\t\t\t\tif (options.json) {\n\t\t\t\t\toutputJson({ success: true, data: { components: results } })\n\t\t\t\t} else {\n\t\t\t\t\tif (results.length === 0) {\n\t\t\t\t\t\tlogger.info(\"No components found.\")\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.info(`Found ${results.length} components:`)\n\t\t\t\t\t\tfor (const comp of results) {\n\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t` ${kleur.cyan(comp.name)} ${kleur.dim(`(${comp.type})`)} - ${comp.description}`,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error, { json: options.json })\n\t\t\t}\n\t\t})\n}\n",
86
87
  "/**\n * OCX CLI - update command\n * Update installed components from registries\n */\n\nimport { createHash } from \"node:crypto\"\nimport { existsSync } from \"node:fs\"\nimport { mkdir, writeFile } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\n\nimport type { Command } from \"commander\"\nimport { fetchComponentVersion, fetchFileContent } from \"../registry/fetcher.js\"\nimport type { OcxLock } from \"../schemas/config.js\"\nimport { readOcxConfig, readOcxLock } from \"../schemas/config.js\"\nimport {\n\ttype ComponentFileObject,\n\tnormalizeComponentManifest,\n\tparseQualifiedComponent,\n} from \"../schemas/registry.js\"\nimport { ConfigError, NotFoundError, ValidationError } from \"../utils/errors.js\"\nimport { createSpinner, handleError, logger } from \"../utils/index.js\"\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\ninterface UpdateOptions {\n\tall?: boolean\n\tregistry?: string\n\tdryRun?: boolean\n\tcwd?: string\n\tquiet?: boolean\n\tverbose?: boolean\n\tjson?: boolean\n}\n\ninterface ComponentSpec {\n\tcomponent: string\n\tversion?: string\n}\n\ninterface UpdateResult {\n\tqualifiedName: string\n\toldVersion: string\n\tnewVersion: string\n\tstatus: \"updated\" | \"up-to-date\" | \"would-update\"\n}\n\n// =============================================================================\n// COMMAND REGISTRATION\n// =============================================================================\n\nexport function registerUpdateCommand(program: Command): void {\n\tprogram\n\t\t.command(\"update [components...]\")\n\t\t.description(\n\t\t\t\"Update installed components (use @version suffix to pin, e.g., kdco/agents@1.2.0)\",\n\t\t)\n\t\t.option(\"--all\", \"Update all installed components\")\n\t\t.option(\"--registry <name>\", \"Update all components from a specific registry\")\n\t\t.option(\"--dry-run\", \"Preview changes without applying\")\n\t\t.option(\"--cwd <path>\", \"Working directory\", process.cwd())\n\t\t.option(\"-q, --quiet\", \"Suppress output\")\n\t\t.option(\"-v, --verbose\", \"Verbose output\")\n\t\t.option(\"--json\", \"Output as JSON\")\n\t\t.action(async (components: string[], options: UpdateOptions) => {\n\t\t\ttry {\n\t\t\t\tawait runUpdate(components, options)\n\t\t\t} catch (error) {\n\t\t\t\thandleError(error, { json: options.json })\n\t\t\t}\n\t\t})\n}\n\n// =============================================================================\n// MAIN UPDATE LOGIC\n// =============================================================================\n\nasync function runUpdate(componentNames: string[], options: UpdateOptions): Promise<void> {\n\tconst cwd = options.cwd ?? process.cwd()\n\tconst lockPath = join(cwd, \"ocx.lock\")\n\n\t// -------------------------------------------------------------------------\n\t// Guard clauses (Law 1: Early Exit)\n\t// -------------------------------------------------------------------------\n\n\t// Guard: No config file\n\tconst config = await readOcxConfig(cwd)\n\tif (!config) {\n\t\tthrow new ConfigError(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t}\n\n\t// Guard: No lock file (nothing installed yet)\n\tconst lock = await readOcxLock(cwd)\n\tif (!lock || Object.keys(lock.installed).length === 0) {\n\t\tthrow new ConfigError(\"Nothing installed yet. Run 'ocx add <component>' first.\")\n\t}\n\n\t// Guard: No args and no flags\n\tconst hasComponents = componentNames.length > 0\n\tconst hasAll = options.all === true\n\tconst hasRegistry = options.registry !== undefined\n\tif (!hasComponents && !hasAll && !hasRegistry) {\n\t\tthrow new ValidationError(\n\t\t\t\"Specify components, use --all, or use --registry <name>.\\n\\n\" +\n\t\t\t\t\"Examples:\\n\" +\n\t\t\t\t\" ocx update kdco/agents # Update specific component\\n\" +\n\t\t\t\t\" ocx update --all # Update all installed components\\n\" +\n\t\t\t\t\" ocx update --registry kdco # Update all from a registry\",\n\t\t)\n\t}\n\n\t// Guard: --all with components\n\tif (hasAll && hasComponents) {\n\t\tthrow new ValidationError(\n\t\t\t\"Cannot specify components with --all.\\n\" +\n\t\t\t\t\"Use either 'ocx update --all' or 'ocx update <components>'.\",\n\t\t)\n\t}\n\n\t// Guard: --registry with components\n\tif (hasRegistry && hasComponents) {\n\t\tthrow new ValidationError(\n\t\t\t\"Cannot specify components with --registry.\\n\" +\n\t\t\t\t\"Use either 'ocx update --registry <name>' or 'ocx update <components>'.\",\n\t\t)\n\t}\n\n\t// Guard: --all with --registry\n\tif (hasAll && hasRegistry) {\n\t\tthrow new ValidationError(\n\t\t\t\"Cannot use --all with --registry.\\n\" +\n\t\t\t\t\"Use either 'ocx update --all' or 'ocx update --registry <name>'.\",\n\t\t)\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Parse component specs and validate versions\n\t// -------------------------------------------------------------------------\n\n\tconst parsedComponents = componentNames.map(parseComponentSpec)\n\n\t// Guard: Invalid version specifier (e.g., kdco/agents@ or kdco/agents@@1.2.0)\n\tfor (const spec of parsedComponents) {\n\t\tif (spec.version !== undefined && spec.version === \"\") {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`Invalid version specifier in '${spec.component}@'.` +\n\t\t\t\t\t\"\\nVersion cannot be empty. Use 'kdco/agents@1.2.0' or omit the version for latest.\",\n\t\t\t)\n\t\t}\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Determine which components to update\n\t// -------------------------------------------------------------------------\n\n\tconst componentsToUpdate = resolveComponentsToUpdate(lock, parsedComponents, options)\n\n\t// Guard: No matching components\n\tif (componentsToUpdate.length === 0) {\n\t\tif (hasRegistry) {\n\t\t\tthrow new NotFoundError(`No installed components from registry '${options.registry}'.`)\n\t\t}\n\t\tthrow new NotFoundError(\"No matching components found to update.\")\n\t}\n\n\t// -------------------------------------------------------------------------\n\t// Fetch and compare\n\t// -------------------------------------------------------------------------\n\n\tconst spin = options.quiet ? null : createSpinner({ text: \"Checking for updates...\" })\n\tspin?.start()\n\n\tconst results: UpdateResult[] = []\n\tconst updates: {\n\t\tqualifiedName: string\n\t\tcomponent: ReturnType<typeof normalizeComponentManifest>\n\t\tfiles: { path: string; content: Buffer }[]\n\t\tnewHash: string\n\t\tnewVersion: string\n\t\tbaseUrl: string\n\t}[] = []\n\n\ttry {\n\t\tfor (const spec of componentsToUpdate) {\n\t\t\tconst qualifiedName = spec.component\n\t\t\tconst lockEntry = lock.installed[qualifiedName]\n\t\t\t// Guard: component must exist in lock (already validated in resolveComponentsToUpdate)\n\t\t\tif (!lockEntry) {\n\t\t\t\tthrow new NotFoundError(`Component '${qualifiedName}' not found in lock file.`)\n\t\t\t}\n\n\t\t\tconst { namespace, component: componentName } = parseQualifiedComponent(qualifiedName)\n\n\t\t\t// Get registry config\n\t\t\tconst regConfig = config.registries[namespace]\n\t\t\tif (!regConfig) {\n\t\t\t\tthrow new ConfigError(\n\t\t\t\t\t`Registry '${namespace}' not configured. Component '${qualifiedName}' cannot be updated.`,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t// Fetch component (specific version or latest)\n\t\t\tconst fetchResult = await fetchComponentVersion(regConfig.url, componentName, spec.version)\n\t\t\tconst manifest = fetchResult.manifest\n\t\t\tconst version = fetchResult.version\n\n\t\t\tconst normalizedManifest = normalizeComponentManifest(manifest)\n\n\t\t\t// Fetch all files and compute hash\n\t\t\tconst files: { path: string; content: Buffer }[] = []\n\t\t\tfor (const file of normalizedManifest.files) {\n\t\t\t\tconst content = await fetchFileContent(regConfig.url, componentName, file.path)\n\t\t\t\tfiles.push({ path: file.path, content: Buffer.from(content) })\n\t\t\t}\n\n\t\t\tconst newHash = await hashBundle(files)\n\n\t\t\t// Compare hashes\n\t\t\tif (newHash === lockEntry.hash) {\n\t\t\t\tresults.push({\n\t\t\t\t\tqualifiedName,\n\t\t\t\t\toldVersion: lockEntry.version,\n\t\t\t\t\tnewVersion: version,\n\t\t\t\t\tstatus: \"up-to-date\",\n\t\t\t\t})\n\t\t\t} else if (options.dryRun) {\n\t\t\t\tresults.push({\n\t\t\t\t\tqualifiedName,\n\t\t\t\t\toldVersion: lockEntry.version,\n\t\t\t\t\tnewVersion: version,\n\t\t\t\t\tstatus: \"would-update\",\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tresults.push({\n\t\t\t\t\tqualifiedName,\n\t\t\t\t\toldVersion: lockEntry.version,\n\t\t\t\t\tnewVersion: version,\n\t\t\t\t\tstatus: \"updated\",\n\t\t\t\t})\n\t\t\t\tupdates.push({\n\t\t\t\t\tqualifiedName,\n\t\t\t\t\tcomponent: normalizedManifest,\n\t\t\t\t\tfiles,\n\t\t\t\t\tnewHash,\n\t\t\t\t\tnewVersion: version,\n\t\t\t\t\tbaseUrl: regConfig.url,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tspin?.succeed(`Checked ${componentsToUpdate.length} component(s)`)\n\n\t\t// -------------------------------------------------------------------------\n\t\t// Dry-run output\n\t\t// -------------------------------------------------------------------------\n\n\t\tif (options.dryRun) {\n\t\t\toutputDryRun(results, options)\n\t\t\treturn\n\t\t}\n\n\t\t// -------------------------------------------------------------------------\n\t\t// Apply updates\n\t\t// -------------------------------------------------------------------------\n\n\t\tif (updates.length === 0) {\n\t\t\tif (!options.quiet && !options.json) {\n\t\t\t\tlogger.info(\"\")\n\t\t\t\tlogger.success(\"All components are up to date.\")\n\t\t\t}\n\t\t\tif (options.json) {\n\t\t\t\tconsole.log(JSON.stringify({ success: true, updated: [], upToDate: results }, null, 2))\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst installSpin = options.quiet ? null : createSpinner({ text: \"Updating components...\" })\n\t\tinstallSpin?.start()\n\n\t\tfor (const update of updates) {\n\t\t\t// Write files\n\t\t\tfor (const file of update.files) {\n\t\t\t\tconst fileObj = update.component.files.find(\n\t\t\t\t\t(f: ComponentFileObject) => f.path === file.path,\n\t\t\t\t)\n\t\t\t\tif (!fileObj) continue\n\n\t\t\t\tconst targetPath = join(cwd, fileObj.target)\n\t\t\t\tconst targetDir = dirname(targetPath)\n\n\t\t\t\tif (!existsSync(targetDir)) {\n\t\t\t\t\tawait mkdir(targetDir, { recursive: true })\n\t\t\t\t}\n\n\t\t\t\tawait writeFile(targetPath, file.content)\n\n\t\t\t\tif (options.verbose) {\n\t\t\t\t\tlogger.info(` ✓ Updated ${fileObj.target}`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Update lock entry - we know it exists because we validated in resolveComponentsToUpdate\n\t\t\tconst existingEntry = lock.installed[update.qualifiedName]\n\t\t\tif (!existingEntry) {\n\t\t\t\tthrow new NotFoundError(`Component '${update.qualifiedName}' not found in lock file.`)\n\t\t\t}\n\t\t\tlock.installed[update.qualifiedName] = {\n\t\t\t\tregistry: existingEntry.registry,\n\t\t\t\tversion: update.newVersion,\n\t\t\t\thash: update.newHash,\n\t\t\t\tfiles: existingEntry.files,\n\t\t\t\tinstalledAt: existingEntry.installedAt,\n\t\t\t\tupdatedAt: new Date().toISOString(),\n\t\t\t}\n\t\t}\n\n\t\tinstallSpin?.succeed(`Updated ${updates.length} component(s)`)\n\n\t\t// Save lock file\n\t\tawait writeFile(lockPath, JSON.stringify(lock, null, 2), \"utf-8\")\n\n\t\t// -------------------------------------------------------------------------\n\t\t// Output results\n\t\t// -------------------------------------------------------------------------\n\n\t\tif (options.json) {\n\t\t\tconsole.log(\n\t\t\t\tJSON.stringify(\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tupdated: results.filter((r) => r.status === \"updated\"),\n\t\t\t\t\t\tupToDate: results.filter((r) => r.status === \"up-to-date\"),\n\t\t\t\t\t},\n\t\t\t\t\tnull,\n\t\t\t\t\t2,\n\t\t\t\t),\n\t\t\t)\n\t\t} else if (!options.quiet) {\n\t\t\tlogger.info(\"\")\n\t\t\tfor (const result of results) {\n\t\t\t\tif (result.status === \"updated\") {\n\t\t\t\t\tlogger.info(` ✓ ${result.qualifiedName} (${result.oldVersion} → ${result.newVersion})`)\n\t\t\t\t} else if (result.status === \"up-to-date\" && options.verbose) {\n\t\t\t\t\tlogger.info(` ○ ${result.qualifiedName} (already up to date)`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.success(`Done! Updated ${updates.length} component(s).`)\n\t\t}\n\t} catch (error) {\n\t\tspin?.fail(\"Failed to check for updates\")\n\t\tthrow error\n\t}\n}\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Parse a component specifier into component name and optional version.\n * Uses lastIndexOf to handle edge cases like kdco@agents@1.2.0.\n * Law 2: Parse at boundary, trust internally.\n *\n * @example\n * parseComponentSpec(\"kdco/agents@1.2.0\") // { component: \"kdco/agents\", version: \"1.2.0\" }\n * parseComponentSpec(\"kdco/agents\") // { component: \"kdco/agents\" }\n */\nfunction parseComponentSpec(spec: string): ComponentSpec {\n\tconst atIndex = spec.lastIndexOf(\"@\")\n\t// @ at start or not found means no version\n\tif (atIndex <= 0) {\n\t\treturn { component: spec }\n\t}\n\treturn {\n\t\tcomponent: spec.slice(0, atIndex),\n\t\tversion: spec.slice(atIndex + 1),\n\t}\n}\n\n/**\n * Resolve which components to update based on args and flags.\n * Law 4: Fail fast if component not found in lock.\n */\nfunction resolveComponentsToUpdate(\n\tlock: OcxLock,\n\tparsedComponents: ComponentSpec[],\n\toptions: UpdateOptions,\n): ComponentSpec[] {\n\tconst installedComponents = Object.keys(lock.installed)\n\n\t// --all: update all installed components (no version override)\n\tif (options.all) {\n\t\treturn installedComponents.map((c) => ({ component: c }))\n\t}\n\n\t// --registry: filter by registry namespace (no version override)\n\tif (options.registry) {\n\t\treturn installedComponents\n\t\t\t.filter((name) => {\n\t\t\t\tconst entry = lock.installed[name]\n\t\t\t\treturn entry?.registry === options.registry\n\t\t\t})\n\t\t\t.map((c) => ({ component: c }))\n\t}\n\n\t// Specific components: validate they exist\n\tconst result: ComponentSpec[] = []\n\tfor (const spec of parsedComponents) {\n\t\tconst name = spec.component\n\t\t// Validate format (must be qualified)\n\t\tif (!name.includes(\"/\")) {\n\t\t\tconst suggestions = installedComponents.filter((installed) => installed.endsWith(`/${name}`))\n\t\t\tif (suggestions.length === 1) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`Ambiguous component '${name}'. Did you mean '${suggestions[0]}'?`,\n\t\t\t\t)\n\t\t\t}\n\t\t\tif (suggestions.length > 1) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`Ambiguous component '${name}'. Found in multiple registries:\\n` +\n\t\t\t\t\t\tsuggestions.map((s) => ` - ${s}`).join(\"\\n\") +\n\t\t\t\t\t\t\"\\n\\nPlease use a fully qualified name (registry/component).\",\n\t\t\t\t)\n\t\t\t}\n\t\t\tthrow new ValidationError(\n\t\t\t\t`Component '${name}' must include a registry prefix (e.g., 'kdco/${name}').`,\n\t\t\t)\n\t\t}\n\n\t\t// Check if installed\n\t\tif (!lock.installed[name]) {\n\t\t\tthrow new NotFoundError(\n\t\t\t\t`Component '${name}' is not installed.\\nRun 'ocx add ${name}' to install it first.`,\n\t\t\t)\n\t\t}\n\n\t\tresult.push(spec)\n\t}\n\n\treturn result\n}\n\n/**\n * Output dry-run results.\n */\nfunction outputDryRun(results: UpdateResult[], options: UpdateOptions): void {\n\tconst wouldUpdate = results.filter((r) => r.status === \"would-update\")\n\tconst upToDate = results.filter((r) => r.status === \"up-to-date\")\n\n\tif (options.json) {\n\t\tconsole.log(JSON.stringify({ dryRun: true, wouldUpdate, upToDate }, null, 2))\n\t\treturn\n\t}\n\n\tif (!options.quiet) {\n\t\tlogger.info(\"\")\n\n\t\tif (wouldUpdate.length > 0) {\n\t\t\tlogger.info(\"Would update:\")\n\t\t\tfor (const result of wouldUpdate) {\n\t\t\t\tlogger.info(` ${result.qualifiedName} (${result.oldVersion} → ${result.newVersion})`)\n\t\t\t}\n\t\t}\n\n\t\tif (upToDate.length > 0 && options.verbose) {\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.info(\"Already up to date:\")\n\t\t\tfor (const result of upToDate) {\n\t\t\t\tlogger.info(` ${result.qualifiedName}`)\n\t\t\t}\n\t\t}\n\n\t\tif (wouldUpdate.length > 0) {\n\t\t\tlogger.info(\"\")\n\t\t\tlogger.info(\"Run without --dry-run to apply changes.\")\n\t\t} else {\n\t\t\tlogger.info(\"All components are up to date.\")\n\t\t}\n\t}\n}\n\n/**\n * Compute SHA-256 hash of file content.\n */\nasync function hashContent(content: string | Buffer): Promise<string> {\n\treturn createHash(\"sha256\").update(content).digest(\"hex\")\n}\n\n/**\n * Compute deterministic hash for a bundle of files.\n * Files are sorted by path for consistent hashing.\n */\nasync function hashBundle(files: { path: string; content: Buffer }[]): Promise<string> {\n\tconst sorted = [...files].sort((a, b) => a.path.localeCompare(b.path))\n\n\tconst manifestParts: string[] = []\n\tfor (const file of sorted) {\n\t\tconst hash = await hashContent(file.content)\n\t\tmanifestParts.push(`${file.path}:${hash}`)\n\t}\n\n\treturn hashContent(manifestParts.join(\"\\n\"))\n}\n",
87
88
  "#!/usr/bin/env bun\n/**\n * OCX CLI - OpenCode Extensions\n *\n * A ShadCN-style CLI for installing agents, skills, plugins, and commands\n * into OpenCode projects.\n */\n\nimport { Command } from \"commander\"\nimport { registerAddCommand } from \"./commands/add.js\"\nimport { registerBuildCommand } from \"./commands/build.js\"\nimport { registerDiffCommand } from \"./commands/diff.js\"\nimport { registerInitCommand } from \"./commands/init.js\"\nimport { registerRegistryCommand } from \"./commands/registry.js\"\nimport { registerSearchCommand } from \"./commands/search.js\"\nimport { registerUpdateCommand } from \"./commands/update.js\"\nimport { handleError } from \"./utils/index.js\"\n\n// Version injected at build time\ndeclare const __VERSION__: string\nconst version = typeof __VERSION__ !== \"undefined\" ? __VERSION__ : \"0.0.0-dev\"\n\nasync function main() {\n\tconst program = new Command()\n\t\t.name(\"ocx\")\n\t\t.description(\"OpenCode Extensions - Install agents, skills, plugins, and commands\")\n\t\t.version(version)\n\n\t// Register all commands using the registration pattern\n\tregisterInitCommand(program)\n\tregisterAddCommand(program)\n\tregisterUpdateCommand(program)\n\tregisterDiffCommand(program)\n\tregisterSearchCommand(program)\n\tregisterRegistryCommand(program)\n\tregisterBuildCommand(program)\n\n\t// Parse and handle errors\n\tawait program.parseAsync(process.argv)\n}\n\n// Only run CLI when executed directly, not when imported as a library\nif (import.meta.main) {\n\tmain().catch((err) => {\n\t\thandleError(err)\n\t})\n}\n\n// Library exports - for programmatic use\nexport { type BuildRegistryOptions, type BuildRegistryResult, buildRegistry } from \"./lib/index.js\"\n\n// Schema exports - for validation\nexport {\n\ttype ComponentManifest,\n\tcomponentManifestSchema,\n\ttype OcxConfig,\n\ttype OcxLock,\n\t// Config schemas\n\tocxConfigSchema,\n\tocxLockSchema,\n\ttype Packument,\n\tpackumentSchema,\n\ttype Registry,\n\t// Registry schemas\n\tregistrySchema,\n} from \"./schemas/index.js\"\n"
88
89
  ],
89
- "mappings": "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gBAAe,gBAAe,WAAW,MAAM;AAAA,EAC/C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,QAAQ,MAAM;AAAA,EAC5C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,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",
90
- "debugId": "2706150244B1090964756E2164756E21",
90
+ "mappings": "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gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,OAAO;AAAA,EAC5C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,OAAO,MAAM;AAAA,EAC3C,gBAAe,gBAAe,cAAc,MAAM;AAAA,EAClD,gBAAe,gBAAe,eAAe,MAAM;AAAA,EACnD,gBAAe,gBAAe,gBAAgB,OAAO;AAAA,EACrD,gBAAe,gBAAe,kBAAkB,MAAM;AAAA,EACtD,gBAAe,gBAAe,WAAW,MAAM;AAAA,EAC/C,gBAAe,gBAAe,WAAW,MAAM;AAAA,EAC/C,gBAAe,gBAAe,SAAS,MAAM;AAAA,EAC7C,gBAAe,gBAAe,iBAAiB,MAAM;AAAA,EACrD,gBAAe,gBAAe,WAAW,MAAM;AAAA,EAC/C,gBAAe,gBAAe,eAAe,OAAO;AAAA,EACpD,gBAAe,gBAAe,iBAAiB,MAAM;AAAA,EACrD,gBAAe,gBAAe,UAAU,MAAM;AAAA,EAC9C,gBAAe,gBAAe,WAAW,MAAM;AAAA,EAC/C,gBAAe,gBAAe,cAAc,MAAM;AAAA,EAClD,gBAAe,gBAAe,SAAS,KAAK;AAAA,GAC7C,mBAAmB,iBAAiB,CAAC,EAAE;;;AC1bnC,IAAM,eAAe,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU;AAAA,EAChE,OAAO,IAAI,OAAO,KAAK;AAAA,CAC1B;AACD,IAAM,kBAAkB;AACjB,IAAM,6BAA6B;AAAA,EACtC,KAAK;AAAA,IACD,MAAM,IAAI,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU;AAAA,MACvD,OAAO;AAAA,IAAO,IAAI,OAAO,KAAK;AAAA,KACjC;AAAA,IACD,MAAM,IAAI,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU;AAAA,MACvD,OAAO,OAAO,IAAI,OAAO,KAAK;AAAA,KACjC;AAAA,IACD,QAAQ,IAAI,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU;AAAA,MACzD,OAAO;AAAA,IAAS,IAAI,OAAO,KAAK;AAAA,KACnC;AAAA,EACL;AAAA,EACA,MAAM;AAAA,IACF,MAAM,IAAI,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU;AAAA,MACvD,OAAO;AAAA,IAAO,KAAK,OAAO,KAAK;AAAA,KAClC;AAAA,IACD,MAAM,IAAI,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU;AAAA,MACvD,OAAO,OAAO,KAAK,OAAO,KAAK;AAAA,KAClC;AAAA,IACD,QAAQ,IAAI,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU;AAAA,MACzD,OAAO;AAAA,IAAS,KAAK,OAAO,KAAK;AAAA,KACpC;AAAA,EACL;AACJ;AACO,IAAM,gBAAgB,CAAC;AAAA,GAAM,MAAM;AAAA,CAAM;;;ACrBzC,SAAS,MAAM,CAAC,cAAc,OAAO,SAAS;AAAA,EACjD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,OAAO;AAAA,IACP,aAAa,MAAM;AAAA,IACnB,WAAW,aAAa,MAAM;AAAA,IAC9B,kBAAkB;AAAA,IAClB,OAAO,kBAAkB,KAAK,CAAC,MAAM,cAAc,kBAAkB,CAAC,GAAG;AAAA,MACrE;AAAA,IACJ;AAAA,IACA,IAAI,YAAY;AAAA,IAChB,OAAO,YAAY,aAAa,UAAU,CAAC,MAAM,cAAc,SAAS,GAAG;AAAA,MACvE;AAAA,IACJ;AAAA,IACA,aAAa,aAAa,UAAU,iBAAiB,SAAS;AAAA,IAC9D,qBAAqB,mBAAmB,YAAY,OAAO;AAAA,EAC/D,EACK;AAAA,IACD,aAAa;AAAA,IACb,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,WAAW,aAAa;AAAA;AAAA,EAE5B,MAAM,MAAM,OAAO,SAAS,YAAY;AAAA,EACxC,MAAM,uBAAuB,cAAc,SAAS,GAAG;AAAA,EACvD,IAAI,mBAAmB;AAAA,EACvB,IAAI,cAAc;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI,QAAQ,cAAc;AAAA,IACtB,cAAc,aAAa,QAAQ,WAAW,MAAM,OAAO,aAAa,IAAI,QAAQ,WAAW,CAAC;AAAA,EACpG,EACK;AAAA,IACD,cAAc;AAAA;AAAA,EAElB,MAAM,aAAa,gBAAgB,OAAO,OAAO;AAAA,EACjD,IAAI,UAAU,cAAc,YAAY,KAAK;AAAA,EAC7C,IAAI,WAAW;AAAA,EACf,SAAS,iBAAiB,GAAG;AAAA,IACzB,IAAI,mBAAmB,GAAG;AAAA,MACtB,OAAO,OAAO,KAAK,gBAAgB,IAAI,OAAO,aAAa,qBAAqB,WAAW;AAAA,IAC/F;AAAA,IACA,MAAM,iBAAiB,YAAY,UAAU,qBAAqB;AAAA,IAClE,IAAI,CAAC,wBAAwB,iBAAiB,2BAA2B,YAAY,KAAK,QAAQ;AAAA,MAC9F,OAAO,MAAM,OAAO,aAAa,qBAAqB,WAAW;AAAA,IACrE;AAAA,IACA,IAAI,kBAAkB,GAAG;AAAA,MACrB,OAAO;AAAA,IACX;AAAA,IACA,OAAO,2BAA2B,YAAY,KAAK;AAAA;AAAA,EAEvD,SAAS,QAAQ,GAAG;AAAA,IAChB,IAAI,QAAQ,QAAQ,KAAK;AAAA,IACzB,mBAAmB;AAAA,IACnB,OAAO,UAAU,MAA8B,UAAU,IAAqC;AAAA,MAC1F,IAAI,UAAU,MAAuC,QAAQ,WAAW;AAAA,QACpE,oBAAoB;AAAA,MACxB,EACK,SAAI,UAAU,IAAqC;AAAA,QACpD,mBAAmB;AAAA,MACvB;AAAA,MACA,QAAQ,QAAQ,KAAK;AAAA,IACzB;AAAA,IACA,WAAW,UAAU,MAA+B,QAAQ,cAAc,MAAM;AAAA,IAChF,OAAO;AAAA;AAAA,EAEX,MAAM,iBAAiB,CAAC;AAAA,EACxB,SAAS,OAAO,CAAC,MAAM,aAAa,WAAW;AAAA,IAC3C,IAAI,CAAC,aAAa,CAAC,SAAU,cAAc,YAAY,YAAY,eAAgB,aAAa,UAAU,aAAa,SAAS,MAAM,MAAM;AAAA,MACxI,eAAe,KAAK,EAAE,QAAQ,aAAa,QAAQ,YAAY,aAAa,SAAS,KAAK,CAAC;AAAA,IAC/F;AAAA;AAAA,EAEJ,IAAI,aAAa,SAAS;AAAA,EAC1B,IAAI,QAAQ,aAAa,mBAAmB,GAAG;AAAA,IAC3C,QAAQ,OAAO,KAAK,gBAAgB,GAAG,GAAG,CAAC;AAAA,EAC/C;AAAA,EACA,IAAI,eAAe,IAAyB;AAAA,IACxC,IAAI,kBAAkB,QAAQ,eAAe,IAAI;AAAA,IACjD,IAAI,gBAAiB,YAAY,SAAS,qBAAqB,MAAO,QAAQ,eACxE,aAAa,YAAY,SAAS,sBAClC,OAAO,aAAa,kBAAkB;AAAA,IAC5C,QAAQ,eAAe,iBAAiB,eAAe;AAAA,EAC3D;AAAA,EACA,OAAO,eAAe,IAAyB;AAAA,IAC3C,IAAI,gBAAgB,QAAQ,eAAe,IAAI,QAAQ,eAAe,IAAI;AAAA,IAC1E,IAAI,cAAc,SAAS;AAAA,IAC3B,IAAI,iBAAiB;AAAA,IACrB,IAAI,iBAAiB;AAAA,IACrB,OAAO,qBAAqB,MAAM,gBAAgB,MAAyC,gBAAgB,KAAyC;AAAA,MAChJ,IAAI,oBAAoB,QAAQ,eAAe,IAAI;AAAA,MACnD,QAAQ,aAAa,IAAI,eAAe,iBAAiB;AAAA,MACzD,gBAAgB,QAAQ,eAAe,IAAI,QAAQ,eAAe,IAAI;AAAA,MACtE,iBAAiB,gBAAgB;AAAA,MACjC,iBAAiB,iBAAiB,kBAAkB,IAAI;AAAA,MACxD,cAAc,SAAS;AAAA,IAC3B;AAAA,IACA,IAAI,gBAAgB,GAAoC;AAAA,MACpD,IAAI,eAAe,GAAmC;AAAA,QAClD;AAAA,MACJ;AAAA,MAEA,IAAI,QAAQ,aAAa,mBAAmB,KAAK,CAAC,QAAQ,aAAa,eAAe,GAAmC;AAAA,QACrH,iBAAiB,kBAAkB;AAAA,MACvC,EACK,SAAI,QAAQ,WAAW;AAAA,QACxB,iBAAiB,aAAa;AAAA,MAClC;AAAA,IACJ,EACK,SAAI,gBAAgB,GAAsC;AAAA,MAC3D,IAAI,eAAe,GAAqC;AAAA,QACpD;AAAA,MACJ;AAAA,MAEA,IAAI,QAAQ,aAAa,mBAAmB,KAAK,CAAC,QAAQ,aAAa,eAAe,GAAqC;AAAA,QACvH,iBAAiB,kBAAkB;AAAA,MACvC,EACK,SAAI,QAAQ,WAAW;AAAA,QACxB,iBAAiB,aAAa;AAAA,MAClC;AAAA,IACJ,EACK;AAAA,MACD,QAAQ;AAAA,aACC;AAAA,aACA;AAAA,UACD;AAAA,UACA,IAAI,QAAQ,aAAa,mBAAmB,KAAK,CAAC,QAAQ,WAAW;AAAA,YACjE,iBAAiB,kBAAkB;AAAA,UACvC,EACK;AAAA,YACD,iBAAiB,aAAa;AAAA;AAAA,UAElC;AAAA,aACC;AAAA,UACD,IAAI,QAAQ,aAAa,mBAAmB,KAAK,CAAC,QAAQ,WAAW;AAAA,YACjE,iBAAiB,kBAAkB;AAAA,UACvC,EACK;AAAA,YACD,iBAAiB,aAAa;AAAA;AAAA,UAElC;AAAA,aACC;AAAA,UACD,iBAAiB,kBAAkB;AAAA,UACnC;AAAA,aACC;AAAA,UACD,IAAI,mBAAmB,GAAG;AAAA,YACtB,iBAAiB,kBAAkB;AAAA,UACvC,EACK,SAAI,CAAC,gBAAgB;AAAA,YACtB,iBAAiB,aAAa;AAAA,UAClC;AAAA,UACA;AAAA,aACC;AAAA,UACD,IAAI,QAAQ,aAAa,mBAAmB,GAAG;AAAA,YAC3C,iBAAiB,kBAAkB;AAAA,UACvC,EACK,SAAI,CAAC,gBAAgB;AAAA,YACtB,iBAAiB,aAAa;AAAA,UAClC;AAAA,UACA;AAAA,aACC;AAAA,UACD,IAAI,QAAQ,aAAa,mBAAmB,GAAG;AAAA,YAC3C,iBAAiB,kBAAkB;AAAA,UACvC,EACK,SAAI,gBAAgB,KAAiC,CAAC,gBAAgB;AAAA,YACvE,iBAAiB;AAAA,UACrB;AAAA,UACA;AAAA,aACC;AAAA,aACA;AAAA,aACA;AAAA,aACA;AAAA,aACA;AAAA,aACA;AAAA,UACD,IAAI,QAAQ,aAAa,mBAAmB,GAAG;AAAA,YAC3C,iBAAiB,kBAAkB;AAAA,UACvC,EACK;AAAA,YACD,KAAK,gBAAgB,MAAyC,gBAAgB,OAA2C,CAAC,gBAAgB;AAAA,cACtI,iBAAiB,aAAa;AAAA,YAClC,EACK,SAAI,gBAAgB,KAAiC,gBAAgB,IAAyB;AAAA,cAC/F,WAAW;AAAA,YACf;AAAA;AAAA,UAEJ;AAAA,aACC;AAAA,UACD,WAAW;AAAA,UACX;AAAA;AAAA,MAER,IAAI,mBAAmB,MAAM,gBAAgB,MAAyC,gBAAgB,KAAyC;AAAA,QAC3I,iBAAiB,kBAAkB;AAAA,MACvC;AAAA;AAAA,IAEJ,IAAI,gBAAgB,IAAyB;AAAA,MACzC,IAAI,QAAQ,aAAa,mBAAmB,GAAG;AAAA,QAC3C,iBAAiB,kBAAkB;AAAA,MACvC,EACK;AAAA,QACD,iBAAiB,QAAQ,qBAAqB,MAAM;AAAA;AAAA,IAE5D;AAAA,IACA,MAAM,mBAAmB,QAAQ,eAAe,IAAI;AAAA,IACpD,QAAQ,gBAAgB,eAAe,gBAAgB;AAAA,IACvD,aAAa;AAAA,EACjB;AAAA,EACA,OAAO;AAAA;AAEX,SAAS,MAAM,CAAC,GAAG,OAAO;AAAA,EACtB,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC5B,UAAU;AAAA,EACd;AAAA,EACA,OAAO;AAAA;AAEX,SAAS,kBAAkB,CAAC,SAAS,SAAS;AAAA,EAC1C,IAAI,IAAI;AAAA,EACR,IAAI,SAAS;AAAA,EACb,MAAM,UAAU,QAAQ,WAAW;AAAA,EACnC,OAAO,IAAI,QAAQ,QAAQ;AAAA,IACvB,IAAI,KAAK,QAAQ,OAAO,CAAC;AAAA,IACzB,IAAI,OAAO,aAAa,IAAI;AAAA,MACxB;AAAA,IACJ,EACK,SAAI,OAAO,MAAM;AAAA,MAClB,UAAU;AAAA,IACd,EACK;AAAA,MACD;AAAA;AAAA,IAEJ;AAAA,EACJ;AAAA,EACA,OAAO,KAAK,MAAM,SAAS,OAAO;AAAA;AAEtC,SAAS,MAAM,CAAC,SAAS,MAAM;AAAA,EAC3B,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,IAClC,MAAM,KAAK,KAAK,OAAO,CAAC;AAAA,IACxB,IAAI,OAAO,MAAM;AAAA,MACb,IAAI,IAAI,IAAI,KAAK,UAAU,KAAK,OAAO,IAAI,CAAC,MAAM;AAAA,GAAM;AAAA,QACpD,OAAO;AAAA;AAAA,MACX;AAAA,MACA,OAAO;AAAA,IACX,EACK,SAAI,OAAO;AAAA,GAAM;AAAA,MAClB,OAAO;AAAA;AAAA,IACX;AAAA,EACJ;AAAA,EACA,OAAQ,WAAW,QAAQ,OAAQ;AAAA;AAAA;AAEhC,SAAS,KAAK,CAAC,MAAM,QAAQ;AAAA,EAChC,OAAO;AAAA,EAAO,QAAQ,KAAK,OAAO,MAAM,CAAC,MAAM;AAAA;;;AC7PnD,IAAI;AAAA,CACH,QAAS,CAAC,eAAc;AAAA,EACrB,cAAa,UAAU;AAAA,IACnB,oBAAoB;AAAA,EACxB;AAAA,GACD,iBAAiB,eAAe,CAAC,EAAE;AA4H/B,SAAS,KAAK,CAAC,MAAM,UAAS,CAAC,GAAG,UAAU,aAAa,SAAS;AAAA,EACrE,IAAI,kBAAkB;AAAA,EACtB,IAAI,gBAAgB,CAAC;AAAA,EACrB,MAAM,kBAAkB,CAAC;AAAA,EACzB,SAAS,OAAO,CAAC,OAAO;AAAA,IACpB,IAAI,MAAM,QAAQ,aAAa,GAAG;AAAA,MAC9B,cAAc,KAAK,KAAK;AAAA,IAC5B,EACK,SAAI,oBAAoB,MAAM;AAAA,MAC/B,cAAc,mBAAmB;AAAA,IACrC;AAAA;AAAA,EAEJ,MAAM,UAAU;AAAA,IACZ,eAAe,MAAM;AAAA,MACjB,MAAM,SAAS,CAAC;AAAA,MAChB,QAAQ,MAAM;AAAA,MACd,gBAAgB,KAAK,aAAa;AAAA,MAClC,gBAAgB;AAAA,MAChB,kBAAkB;AAAA;AAAA,IAEtB,kBAAkB,CAAC,SAAS;AAAA,MACxB,kBAAkB;AAAA;AAAA,IAEtB,aAAa,MAAM;AAAA,MACf,gBAAgB,gBAAgB,IAAI;AAAA;AAAA,IAExC,cAAc,MAAM;AAAA,MAChB,MAAM,QAAQ,CAAC;AAAA,MACf,QAAQ,KAAK;AAAA,MACb,gBAAgB,KAAK,aAAa;AAAA,MAClC,gBAAgB;AAAA,MAChB,kBAAkB;AAAA;AAAA,IAEtB,YAAY,MAAM;AAAA,MACd,gBAAgB,gBAAgB,IAAI;AAAA;AAAA,IAExC,gBAAgB;AAAA,IAChB,SAAS,CAAC,OAAO,QAAQ,WAAW;AAAA,MAChC,QAAO,KAAK,EAAE,OAAO,QAAQ,OAAO,CAAC;AAAA;AAAA,EAE7C;AAAA,EACA,MAAM,MAAM,SAAS,OAAO;AAAA,EAC5B,OAAO,cAAc;AAAA;AAKlB,SAAS,SAAS,CAAC,MAAM,UAAS,CAAC,GAAG,UAAU,aAAa,SAAS;AAAA,EACzE,IAAI,gBAAgB,EAAE,MAAM,SAAS,QAAQ,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,QAAQ,UAAU;AAAA,EAC7F,SAAS,sBAAsB,CAAC,WAAW;AAAA,IACvC,IAAI,cAAc,SAAS,YAAY;AAAA,MACnC,cAAc,SAAS,YAAY,cAAc;AAAA,MACjD,gBAAgB,cAAc;AAAA,IAClC;AAAA;AAAA,EAEJ,SAAS,OAAO,CAAC,WAAW;AAAA,IACxB,cAAc,SAAS,KAAK,SAAS;AAAA,IACrC,OAAO;AAAA;AAAA,EAEX,MAAM,UAAU;AAAA,IACZ,eAAe,CAAC,WAAW;AAAA,MACvB,gBAAgB,QAAQ,EAAE,MAAM,UAAU,QAAQ,QAAQ,IAAI,QAAQ,eAAe,UAAU,CAAC,EAAE,CAAC;AAAA;AAAA,IAEvG,kBAAkB,CAAC,MAAM,QAAQ,WAAW;AAAA,MACxC,gBAAgB,QAAQ,EAAE,MAAM,YAAY,QAAQ,QAAQ,IAAI,QAAQ,eAAe,UAAU,CAAC,EAAE,CAAC;AAAA,MACrG,cAAc,SAAS,KAAK,EAAE,MAAM,UAAU,OAAO,MAAM,QAAQ,QAAQ,QAAQ,cAAc,CAAC;AAAA;AAAA,IAEtG,aAAa,CAAC,QAAQ,WAAW;AAAA,MAC7B,uBAAuB,SAAS,MAAM;AAAA,MACtC,cAAc,SAAS,SAAS,SAAS,cAAc;AAAA,MACvD,gBAAgB,cAAc;AAAA,MAC9B,uBAAuB,SAAS,MAAM;AAAA;AAAA,IAE1C,cAAc,CAAC,QAAQ,WAAW;AAAA,MAC9B,gBAAgB,QAAQ,EAAE,MAAM,SAAS,QAAQ,QAAQ,IAAI,QAAQ,eAAe,UAAU,CAAC,EAAE,CAAC;AAAA;AAAA,IAEtG,YAAY,CAAC,QAAQ,WAAW;AAAA,MAC5B,cAAc,SAAS,SAAS,SAAS,cAAc;AAAA,MACvD,gBAAgB,cAAc;AAAA,MAC9B,uBAAuB,SAAS,MAAM;AAAA;AAAA,IAE1C,gBAAgB,CAAC,OAAO,QAAQ,WAAW;AAAA,MACvC,QAAQ,EAAE,MAAM,YAAY,KAAK,GAAG,QAAQ,QAAQ,QAAQ,eAAe,MAAM,CAAC;AAAA,MAClF,uBAAuB,SAAS,MAAM;AAAA;AAAA,IAE1C,aAAa,CAAC,KAAK,QAAQ,WAAW;AAAA,MAClC,IAAI,cAAc,SAAS,YAAY;AAAA,QACnC,IAAI,QAAQ,KAAK;AAAA,UACb,cAAc,cAAc;AAAA,QAChC,EACK,SAAI,QAAQ,KAAK;AAAA,UAClB,uBAAuB,MAAM;AAAA,QACjC;AAAA,MACJ;AAAA;AAAA,IAEJ,SAAS,CAAC,OAAO,QAAQ,WAAW;AAAA,MAChC,QAAO,KAAK,EAAE,OAAO,QAAQ,OAAO,CAAC;AAAA;AAAA,EAE7C;AAAA,EACA,MAAM,MAAM,SAAS,OAAO;AAAA,EAC5B,MAAM,SAAS,cAAc,SAAS;AAAA,EACtC,IAAI,QAAQ;AAAA,IACR,OAAO,OAAO;AAAA,EAClB;AAAA,EACA,OAAO;AAAA;AAKJ,SAAS,kBAAkB,CAAC,MAAM,MAAM;AAAA,EAC3C,IAAI,CAAC,MAAM;AAAA,IACP;AAAA,EACJ;AAAA,EACA,IAAI,OAAO;AAAA,EACX,SAAS,WAAW,MAAM;AAAA,IACtB,IAAI,OAAO,YAAY,UAAU;AAAA,MAC7B,IAAI,KAAK,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK,QAAQ,GAAG;AAAA,QACzD;AAAA,MACJ;AAAA,MACA,IAAI,QAAQ;AAAA,MACZ,WAAW,gBAAgB,KAAK,UAAU;AAAA,QACtC,IAAI,MAAM,QAAQ,aAAa,QAAQ,KAAK,aAAa,SAAS,GAAG,UAAU,WAAW,aAAa,SAAS,WAAW,GAAG;AAAA,UAC1H,OAAO,aAAa,SAAS;AAAA,UAC7B,QAAQ;AAAA,UACR;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,IAAI,CAAC,OAAO;AAAA,QACR;AAAA,MACJ;AAAA,IACJ,EACK;AAAA,MACD,MAAM,QAAQ;AAAA,MACd,IAAI,KAAK,SAAS,WAAW,QAAQ,KAAK,CAAC,MAAM,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,QAAQ;AAAA,QACtG;AAAA,MACJ;AAAA,MACA,OAAO,KAAK,SAAS;AAAA;AAAA,EAE7B;AAAA,EACA,OAAO;AAAA;AAuEJ,SAAS,KAAK,CAAC,MAAM,SAAS,UAAU,aAAa,SAAS;AAAA,EACjE,MAAM,WAAW,cAAc,MAAM,KAAK;AAAA,EAG1C,MAAM,YAAY,CAAC;AAAA,EAGnB,IAAI,sBAAsB;AAAA,EAC1B,SAAS,YAAY,CAAC,eAAe;AAAA,IACjC,OAAO,gBAAgB,MAAM,wBAAwB,KAAK,cAAc,SAAS,eAAe,GAAG,SAAS,eAAe,GAAG,SAAS,kBAAkB,GAAG,SAAS,uBAAuB,CAAC,IAAI,MAAM;AAAA;AAAA,EAE3M,SAAS,aAAa,CAAC,eAAe;AAAA,IAClC,OAAO,gBAAgB,CAAC,QAAQ,wBAAwB,KAAK,cAAc,KAAK,SAAS,eAAe,GAAG,SAAS,eAAe,GAAG,SAAS,kBAAkB,GAAG,SAAS,uBAAuB,CAAC,IAAI,MAAM;AAAA;AAAA,EAEnN,SAAS,qBAAqB,CAAC,eAAe;AAAA,IAC1C,OAAO,gBAAgB,CAAC,QAAQ,wBAAwB,KAAK,cAAc,KAAK,SAAS,eAAe,GAAG,SAAS,eAAe,GAAG,SAAS,kBAAkB,GAAG,SAAS,uBAAuB,GAAG,MAAM,UAAU,MAAM,CAAC,IAAI,MAAM;AAAA;AAAA,EAE5O,SAAS,YAAY,CAAC,eAAe;AAAA,IACjC,OAAO,gBACH,MAAM;AAAA,MACF,IAAI,sBAAsB,GAAG;AAAA,QACzB;AAAA,MACJ,EACK;AAAA,QACD,IAAI,WAAW,cAAc,SAAS,eAAe,GAAG,SAAS,eAAe,GAAG,SAAS,kBAAkB,GAAG,SAAS,uBAAuB,GAAG,MAAM,UAAU,MAAM,CAAC;AAAA,QAC3K,IAAI,aAAa,OAAO;AAAA,UACpB,sBAAsB;AAAA,QAC1B;AAAA;AAAA,QAGN,MAAM;AAAA;AAAA,EAEhB,SAAS,UAAU,CAAC,eAAe;AAAA,IAC/B,OAAO,gBACH,MAAM;AAAA,MACF,IAAI,sBAAsB,GAAG;AAAA,QACzB;AAAA,MACJ;AAAA,MACA,IAAI,wBAAwB,GAAG;AAAA,QAC3B,cAAc,SAAS,eAAe,GAAG,SAAS,eAAe,GAAG,SAAS,kBAAkB,GAAG,SAAS,uBAAuB,CAAC;AAAA,MACvI;AAAA,QAEF,MAAM;AAAA;AAAA,EAEhB,MAAM,gBAAgB,aAAa,QAAQ,aAAa,GAAG,mBAAmB,sBAAsB,QAAQ,gBAAgB,GAAG,cAAc,WAAW,QAAQ,WAAW,GAAG,eAAe,aAAa,QAAQ,YAAY,GAAG,aAAa,WAAW,QAAQ,UAAU,GAAG,iBAAiB,sBAAsB,QAAQ,cAAc,GAAG,cAAc,cAAc,QAAQ,WAAW,GAAG,YAAY,aAAa,QAAQ,SAAS,GAAG,UAAU,cAAc,QAAQ,OAAO;AAAA,EACpd,MAAM,mBAAmB,WAAW,QAAQ;AAAA,EAC5C,MAAM,qBAAqB,WAAW,QAAQ;AAAA,EAC9C,SAAS,QAAQ,GAAG;AAAA,IAChB,OAAO,MAAM;AAAA,MACT,MAAM,QAAQ,SAAS,KAAK;AAAA,MAC5B,QAAQ,SAAS,cAAc;AAAA,aACtB;AAAA,UACD,YAAY,EAAsC;AAAA,UAClD;AAAA,aACC;AAAA,UACD,YAAY,EAA8C;AAAA,UAC1D;AAAA,aACC;AAAA,UACD,YAAY,EAA6C;AAAA,UACzD;AAAA,aACC;AAAA,UACD,IAAI,CAAC,kBAAkB;AAAA,YACnB,YAAY,EAA8C;AAAA,UAC9D;AAAA,UACA;AAAA,aACC;AAAA,UACD,YAAY,EAA6C;AAAA,UACzD;AAAA,aACC;AAAA,UACD,YAAY,EAAwC;AAAA,UACpD;AAAA;AAAA,MAER,QAAQ;AAAA,aACC;AAAA,aACA;AAAA,UACD,IAAI,kBAAkB;AAAA,YAClB,YAAY,EAA2C;AAAA,UAC3D,EACK;AAAA,YACD,UAAU;AAAA;AAAA,UAEd;AAAA,aACC;AAAA,UACD,YAAY,CAAoC;AAAA,UAChD;AAAA,aACC;AAAA,aACA;AAAA,UACD;AAAA;AAAA,UAEA,OAAO;AAAA;AAAA,IAEnB;AAAA;AAAA,EAEJ,SAAS,WAAW,CAAC,OAAO,iBAAiB,CAAC,GAAG,YAAY,CAAC,GAAG;AAAA,IAC7D,QAAQ,KAAK;AAAA,IACb,IAAI,eAAe,SAAS,UAAU,SAAS,GAAG;AAAA,MAC9C,IAAI,QAAQ,SAAS,SAAS;AAAA,MAC9B,OAAO,UAAU,IAAyB;AAAA,QACtC,IAAI,eAAe,QAAQ,KAAK,MAAM,IAAI;AAAA,UACtC,SAAS;AAAA,UACT;AAAA,QACJ,EACK,SAAI,UAAU,QAAQ,KAAK,MAAM,IAAI;AAAA,UACtC;AAAA,QACJ;AAAA,QACA,QAAQ,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA,EAEJ,SAAS,WAAW,CAAC,SAAS;AAAA,IAC1B,MAAM,QAAQ,SAAS,cAAc;AAAA,IACrC,IAAI,SAAS;AAAA,MACT,eAAe,KAAK;AAAA,IACxB,EACK;AAAA,MACD,iBAAiB,KAAK;AAAA,MAEtB,UAAU,KAAK,KAAK;AAAA;AAAA,IAExB,SAAS;AAAA,IACT,OAAO;AAAA;AAAA,EAEX,SAAS,YAAY,GAAG;AAAA,IACpB,QAAQ,SAAS,SAAS;AAAA,WACjB;AAAA,QACD,MAAM,aAAa,SAAS,cAAc;AAAA,QAC1C,IAAI,QAAQ,OAAO,UAAU;AAAA,QAC7B,IAAI,MAAM,KAAK,GAAG;AAAA,UACd,YAAY,CAA0C;AAAA,UACtD,QAAQ;AAAA,QACZ;AAAA,QACA,eAAe,KAAK;AAAA,QACpB;AAAA,WACC;AAAA,QACD,eAAe,IAAI;AAAA,QACnB;AAAA,WACC;AAAA,QACD,eAAe,IAAI;AAAA,QACnB;AAAA,WACC;AAAA,QACD,eAAe,KAAK;AAAA,QACpB;AAAA;AAAA,QAEA,OAAO;AAAA;AAAA,IAEf,SAAS;AAAA,IACT,OAAO;AAAA;AAAA,EAEX,SAAS,aAAa,GAAG;AAAA,IACrB,IAAI,SAAS,SAAS,MAAM,IAAmC;AAAA,MAC3D,YAAY,GAA6C,CAAC,GAAG,CAAC,GAAoC,CAA6B,CAAC;AAAA,MAChI,OAAO;AAAA,IACX;AAAA,IACA,YAAY,KAAK;AAAA,IACjB,IAAI,SAAS,SAAS,MAAM,GAA+B;AAAA,MACvD,YAAY,GAAG;AAAA,MACf,SAAS;AAAA,MACT,IAAI,CAAC,WAAW,GAAG;AAAA,QACf,YAAY,GAAsC,CAAC,GAAG,CAAC,GAAoC,CAA6B,CAAC;AAAA,MAC7H;AAAA,IACJ,EACK;AAAA,MACD,YAAY,GAAsC,CAAC,GAAG,CAAC,GAAoC,CAA6B,CAAC;AAAA;AAAA,IAE7H,UAAU,IAAI;AAAA,IACd,OAAO;AAAA;AAAA,EAEX,SAAS,WAAW,GAAG;AAAA,IACnB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,IAAI,aAAa;AAAA,IACjB,OAAO,SAAS,SAAS,MAAM,KAAsC,SAAS,SAAS,MAAM,IAAyB;AAAA,MAClH,IAAI,SAAS,SAAS,MAAM,GAA+B;AAAA,QACvD,IAAI,CAAC,YAAY;AAAA,UACb,YAAY,GAAsC,CAAC,GAAG,CAAC,CAAC;AAAA,QAC5D;AAAA,QACA,YAAY,GAAG;AAAA,QACf,SAAS;AAAA,QACT,IAAI,SAAS,SAAS,MAAM,KAAsC,oBAAoB;AAAA,UAClF;AAAA,QACJ;AAAA,MACJ,EACK,SAAI,YAAY;AAAA,QACjB,YAAY,GAAsC,CAAC,GAAG,CAAC,CAAC;AAAA,MAC5D;AAAA,MACA,IAAI,CAAC,cAAc,GAAG;AAAA,QAClB,YAAY,GAAsC,CAAC,GAAG,CAAC,GAAoC,CAA6B,CAAC;AAAA,MAC7H;AAAA,MACA,aAAa;AAAA,IACjB;AAAA,IACA,YAAY;AAAA,IACZ,IAAI,SAAS,SAAS,MAAM,GAAoC;AAAA,MAC5D,YAAY,GAA2C,CAAC,CAAkC,GAAG,CAAC,CAAC;AAAA,IACnG,EACK;AAAA,MACD,SAAS;AAAA;AAAA,IAEb,OAAO;AAAA;AAAA,EAEX,SAAS,UAAU,GAAG;AAAA,IAClB,aAAa;AAAA,IACb,SAAS;AAAA,IACT,IAAI,iBAAiB;AAAA,IACrB,IAAI,aAAa;AAAA,IACjB,OAAO,SAAS,SAAS,MAAM,KAAwC,SAAS,SAAS,MAAM,IAAyB;AAAA,MACpH,IAAI,SAAS,SAAS,MAAM,GAA+B;AAAA,QACvD,IAAI,CAAC,YAAY;AAAA,UACb,YAAY,GAAsC,CAAC,GAAG,CAAC,CAAC;AAAA,QAC5D;AAAA,QACA,YAAY,GAAG;AAAA,QACf,SAAS;AAAA,QACT,IAAI,SAAS,SAAS,MAAM,KAAwC,oBAAoB;AAAA,UACpF;AAAA,QACJ;AAAA,MACJ,EACK,SAAI,YAAY;AAAA,QACjB,YAAY,GAAsC,CAAC,GAAG,CAAC,CAAC;AAAA,MAC5D;AAAA,MACA,IAAI,gBAAgB;AAAA,QAChB,UAAU,KAAK,CAAC;AAAA,QAChB,iBAAiB;AAAA,MACrB,EACK;AAAA,QACD,UAAU,UAAU,SAAS;AAAA;AAAA,MAEjC,IAAI,CAAC,WAAW,GAAG;AAAA,QACf,YAAY,GAAsC,CAAC,GAAG,CAAC,GAAsC,CAA6B,CAAC;AAAA,MAC/H;AAAA,MACA,aAAa;AAAA,IACjB;AAAA,IACA,WAAW;AAAA,IACX,IAAI,CAAC,gBAAgB;AAAA,MACjB,UAAU,IAAI;AAAA,IAClB;AAAA,IACA,IAAI,SAAS,SAAS,MAAM,GAAsC;AAAA,MAC9D,YAAY,GAA6C,CAAC,CAAoC,GAAG,CAAC,CAAC;AAAA,IACvG,EACK;AAAA,MACD,SAAS;AAAA;AAAA,IAEb,OAAO;AAAA;AAAA,EAEX,SAAS,UAAU,GAAG;AAAA,IAClB,QAAQ,SAAS,SAAS;AAAA,WACjB;AAAA,QACD,OAAO,WAAW;AAAA,WACjB;AAAA,QACD,OAAO,YAAY;AAAA,WAClB;AAAA,QACD,OAAO,YAAY,IAAI;AAAA;AAAA,QAEvB,OAAO,aAAa;AAAA;AAAA;AAAA,EAGhC,SAAS;AAAA,EACT,IAAI,SAAS,SAAS,MAAM,IAAyB;AAAA,IACjD,IAAI,QAAQ,mBAAmB;AAAA,MAC3B,OAAO;AAAA,IACX;AAAA,IACA,YAAY,GAAsC,CAAC,GAAG,CAAC,CAAC;AAAA,IACxD,OAAO;AAAA,EACX;AAAA,EACA,IAAI,CAAC,WAAW,GAAG;AAAA,IACf,YAAY,GAAsC,CAAC,GAAG,CAAC,CAAC;AAAA,IACxD,OAAO;AAAA,EACX;AAAA,EACA,IAAI,SAAS,SAAS,MAAM,IAAyB;AAAA,IACjD,YAAY,GAA0C,CAAC,GAAG,CAAC,CAAC;AAAA,EAChE;AAAA,EACA,OAAO;AAAA;AA4BJ,SAAS,WAAW,CAAC,OAAO;AAAA,EAC/B,QAAQ,OAAO;AAAA,SACN;AAAA,MAAW,OAAO;AAAA,SAClB;AAAA,MAAU,OAAO;AAAA,SACjB;AAAA,MAAU,OAAO;AAAA,SACjB,UAAU;AAAA,MACX,IAAI,CAAC,OAAO;AAAA,QACR,OAAO;AAAA,MACX,EACK,SAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,QAC3B,OAAO;AAAA,MACX;AAAA,MACA,OAAO;AAAA,IACX;AAAA;AAAA,MACS,OAAO;AAAA;AAAA;;;ACtoBjB,SAAS,WAAW,CAAC,MAAM,cAAc,OAAO,SAAS;AAAA,EAC5D,MAAM,OAAO,aAAa,MAAM;AAAA,EAChC,MAAM,UAAS,CAAC;AAAA,EAChB,MAAM,OAAO,UAAU,MAAM,OAAM;AAAA,EACnC,IAAI,SAAc;AAAA,EAClB,IAAI,cAAmB;AAAA,EACvB,OAAO,KAAK,SAAS,GAAG;AAAA,IACpB,cAAc,KAAK,IAAI;AAAA,IACvB,SAAS,mBAAmB,MAAM,IAAI;AAAA,IACtC,IAAI,WAAgB,aAAK,UAAe,WAAG;AAAA,MACvC,IAAI,OAAO,gBAAgB,UAAU;AAAA,QACjC,QAAQ,GAAG,cAAc,MAAM;AAAA,MACnC,EACK;AAAA,QACD,QAAQ,CAAC,KAAK;AAAA;AAAA,IAEtB,EACK;AAAA,MACD;AAAA;AAAA,EAER;AAAA,EACA,IAAI,CAAC,QAAQ;AAAA,IAET,IAAI,UAAe,WAAG;AAAA,MAClB,MAAM,IAAI,MAAM,kCAAkC;AAAA,IACtD;AAAA,IACA,OAAO,eAAe,MAAM,EAAE,QAAQ,OAAO,KAAK,SAAS,GAAG,QAAQ,OAAO,KAAK,SAAS,GAAG,SAAS,KAAK,UAAU,KAAK,EAAE,GAAG,OAAO;AAAA,EAC3I,EACK,SAAI,OAAO,SAAS,YAAY,OAAO,gBAAgB,YAAY,MAAM,QAAQ,OAAO,QAAQ,GAAG;AAAA,IACpG,MAAM,WAAW,mBAAmB,QAAQ,CAAC,WAAW,CAAC;AAAA,IACzD,IAAI,aAAkB,WAAG;AAAA,MACrB,IAAI,UAAe,WAAG;AAAA,QAClB,IAAI,CAAC,SAAS,QAAQ;AAAA,UAClB,MAAM,IAAI,MAAM,eAAe;AAAA,QACnC;AAAA,QACA,MAAM,gBAAgB,OAAO,SAAS,QAAQ,SAAS,MAAM;AAAA,QAC7D,IAAI;AAAA,QACJ,IAAI,YAAY,SAAS,OAAO,SAAS,SAAS,OAAO;AAAA,QACzD,IAAI,gBAAgB,GAAG;AAAA,UAEnB,IAAI,WAAW,OAAO,SAAS,gBAAgB;AAAA,UAC/C,cAAc,SAAS,SAAS,SAAS;AAAA,QAC7C,EACK;AAAA,UACD,cAAc,OAAO,SAAS;AAAA,UAC9B,IAAI,OAAO,SAAS,SAAS,GAAG;AAAA,YAE5B,IAAI,OAAO,OAAO,SAAS;AAAA,YAC3B,YAAY,KAAK;AAAA,UACrB;AAAA;AAAA,QAEJ,OAAO,eAAe,MAAM,EAAE,QAAQ,aAAa,QAAQ,YAAY,aAAa,SAAS,GAAG,GAAG,OAAO;AAAA,MAC9G,EACK;AAAA,QAED,OAAO,eAAe,MAAM,EAAE,QAAQ,SAAS,QAAQ,QAAQ,SAAS,QAAQ,SAAS,KAAK,UAAU,KAAK,EAAE,GAAG,OAAO;AAAA;AAAA,IAEjI,EACK;AAAA,MACD,IAAI,UAAe,WAAG;AAAA,QAClB,OAAO,CAAC;AAAA,MACZ;AAAA,MACA,MAAM,cAAc,GAAG,KAAK,UAAU,WAAW,MAAM,KAAK,UAAU,KAAK;AAAA,MAC3E,MAAM,QAAQ,QAAQ,oBAAoB,QAAQ,kBAAkB,OAAO,SAAS,IAAI,OAAK,EAAE,SAAS,GAAG,KAAK,CAAC,IAAI,OAAO,SAAS;AAAA,MACrI,IAAI;AAAA,MACJ,IAAI,QAAQ,GAAG;AAAA,QACX,IAAI,WAAW,OAAO,SAAS,QAAQ;AAAA,QACvC,OAAO,EAAE,QAAQ,SAAS,SAAS,SAAS,QAAQ,QAAQ,GAAG,SAAS,MAAM,YAAY;AAAA,MAC9F,EACK,SAAI,OAAO,SAAS,WAAW,GAAG;AAAA,QACnC,OAAO,EAAE,QAAQ,OAAO,SAAS,GAAG,QAAQ,GAAG,SAAS,YAAY;AAAA,MACxE,EACK;AAAA,QACD,OAAO,EAAE,QAAQ,OAAO,SAAS,GAAG,QAAQ,GAAG,SAAS,cAAc,IAAI;AAAA;AAAA,MAE9E,OAAO,eAAe,MAAM,MAAM,OAAO;AAAA;AAAA,EAEjD,EACK,SAAI,OAAO,SAAS,WAAW,OAAO,gBAAgB,YAAY,MAAM,QAAQ,OAAO,QAAQ,GAAG;AAAA,IACnG,MAAM,cAAc;AAAA,IACpB,IAAI,gBAAgB,IAAI;AAAA,MAEpB,MAAM,cAAc,GAAG,KAAK,UAAU,KAAK;AAAA,MAC3C,IAAI;AAAA,MACJ,IAAI,OAAO,SAAS,WAAW,GAAG;AAAA,QAC9B,OAAO,EAAE,QAAQ,OAAO,SAAS,GAAG,QAAQ,GAAG,SAAS,YAAY;AAAA,MACxE,EACK;AAAA,QACD,MAAM,WAAW,OAAO,SAAS,OAAO,SAAS,SAAS;AAAA,QAC1D,OAAO,EAAE,QAAQ,SAAS,SAAS,SAAS,QAAQ,QAAQ,GAAG,SAAS,MAAM,YAAY;AAAA;AAAA,MAE9F,OAAO,eAAe,MAAM,MAAM,OAAO;AAAA,IAC7C,EACK,SAAI,UAAe,aAAK,OAAO,SAAS,UAAU,GAAG;AAAA,MAEtD,MAAM,eAAe;AAAA,MACrB,MAAM,WAAW,OAAO,SAAS;AAAA,MACjC,IAAI;AAAA,MACJ,IAAI,OAAO,SAAS,WAAW,GAAG;AAAA,QAE9B,OAAO,EAAE,QAAQ,OAAO,SAAS,GAAG,QAAQ,OAAO,SAAS,GAAG,SAAS,GAAG;AAAA,MAC/E,EACK,SAAI,OAAO,SAAS,SAAS,MAAM,cAAc;AAAA,QAElD,IAAI,WAAW,OAAO,SAAS,eAAe;AAAA,QAC9C,IAAI,SAAS,SAAS,SAAS,SAAS;AAAA,QACxC,IAAI,kBAAkB,OAAO,SAAS,OAAO;AAAA,QAC7C,OAAO,EAAE,QAAQ,QAAQ,kBAAkB,IAAI,QAAQ,SAAS,GAAG;AAAA,MACvE,EACK;AAAA,QACD,OAAO,EAAE,QAAQ,SAAS,QAAQ,QAAQ,OAAO,SAAS,eAAe,GAAG,SAAS,SAAS,QAAQ,SAAS,GAAG;AAAA;AAAA,MAEtH,OAAO,eAAe,MAAM,MAAM,OAAO;AAAA,IAC7C,EACK,SAAI,UAAe,WAAG;AAAA,MACvB,IAAI;AAAA,MACJ,MAAM,cAAc,GAAG,KAAK,UAAU,KAAK;AAAA,MAC3C,IAAI,CAAC,QAAQ,oBAAoB,OAAO,SAAS,SAAS,aAAa;AAAA,QACnE,MAAM,WAAW,OAAO,SAAS;AAAA,QACjC,OAAO,EAAE,QAAQ,SAAS,QAAQ,QAAQ,SAAS,QAAQ,SAAS,YAAY;AAAA,MACpF,EACK,SAAI,OAAO,SAAS,WAAW,KAAK,gBAAgB,GAAG;AAAA,QACxD,OAAO,EAAE,QAAQ,OAAO,SAAS,GAAG,QAAQ,GAAG,SAAS,OAAO,SAAS,WAAW,IAAI,cAAc,cAAc,IAAI;AAAA,MAC3H,EACK;AAAA,QACD,MAAM,QAAQ,cAAc,OAAO,SAAS,SAAS,OAAO,SAAS,SAAS;AAAA,QAC9E,MAAM,WAAW,OAAO,SAAS,QAAQ;AAAA,QACzC,OAAO,EAAE,QAAQ,SAAS,SAAS,SAAS,QAAQ,QAAQ,GAAG,SAAS,MAAM,YAAY;AAAA;AAAA,MAE9F,OAAO,eAAe,MAAM,MAAM,OAAO;AAAA,IAC7C,EACK;AAAA,MACD,MAAM,IAAI,MAAM,WAAW,UAAe,YAAI,WAAY,QAAQ,mBAAmB,WAAW,wBAAyB,yCAAyC;AAAA;AAAA,EAE1K,EACK;AAAA,IACD,MAAM,IAAI,MAAM,eAAe,OAAO,gBAAgB,WAAW,UAAU,gCAAgC,OAAO,MAAM;AAAA;AAAA;AAGhI,SAAS,cAAc,CAAC,MAAM,MAAM,SAAS;AAAA,EACzC,IAAI,CAAC,QAAQ,mBAAmB;AAAA,IAC5B,OAAO,CAAC,IAAI;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU,UAAU,MAAM,IAAI;AAAA,EAElC,IAAI,QAAQ,KAAK;AAAA,EACjB,IAAI,MAAM,KAAK,SAAS,KAAK,QAAQ;AAAA,EACrC,IAAI,KAAK,WAAW,KAAK,KAAK,QAAQ,WAAW,GAAG;AAAA,IAChD,OAAO,QAAQ,KAAK,CAAC,MAAM,SAAS,QAAQ,CAAC,GAAG;AAAA,MAC5C;AAAA,IACJ;AAAA,IACA,OAAO,MAAM,QAAQ,UAAU,CAAC,MAAM,SAAS,GAAG,GAAG;AAAA,MACjD;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,MAAM,QAAQ,OAAO,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,MAAM,GAAG,KAAK,QAAQ,mBAAmB,WAAW,MAAM,CAAC;AAAA,EAExH,SAAS,IAAI,MAAM,SAAS,EAAG,KAAK,GAAG,KAAK;AAAA,IACxC,MAAM,QAAO,MAAM;AAAA,IACnB,UAAU,UAAU,SAAS,KAAI;AAAA,IACjC,QAAQ,KAAK,IAAI,OAAO,MAAK,MAAM;AAAA,IACnC,MAAM,KAAK,IAAI,KAAK,MAAK,SAAS,MAAK,MAAM;AAAA,IAC7C,OAAO,MAAK,QAAQ,SAAS,MAAK;AAAA,EACtC;AAAA,EAEA,MAAM,aAAa,KAAK,UAAU,QAAQ,SAAS,OAAO;AAAA,EAC1D,OAAO,CAAC,EAAE,QAAQ,OAAO,QAAQ,YAAY,SAAS,QAAQ,UAAU,OAAO,GAAG,EAAE,CAAC;AAAA;AAElF,SAAS,SAAS,CAAC,MAAM,MAAM;AAAA,EAClC,OAAO,KAAK,UAAU,GAAG,KAAK,MAAM,IAAI,KAAK,UAAU,KAAK,UAAU,KAAK,SAAS,KAAK,MAAM;AAAA;;;ACtK5F,IAAI;AAAA,CACV,QAAS,CAAC,YAAW;AAAA,EAClB,WAAU,WAAU,UAAU,KAAK;AAAA,EACnC,WAAU,WAAU,4BAA4B,KAAK;AAAA,EACrD,WAAU,WAAU,2BAA2B,KAAK;AAAA,EACpD,WAAU,WAAU,2BAA2B,KAAK;AAAA,EACpD,WAAU,WAAU,oBAAoB,KAAK;AAAA,EAC7C,WAAU,WAAU,4BAA4B,KAAK;AAAA,EACrD,WAAU,WAAU,sBAAsB,KAAK;AAAA,GAChD,cAAc,YAAY,CAAC,EAAE;AACzB,IAAI;AAAA,CACV,QAAS,CAAC,aAAY;AAAA,EACnB,YAAW,YAAW,oBAAoB,KAAK;AAAA,EAC/C,YAAW,YAAW,qBAAqB,KAAK;AAAA,EAChD,YAAW,YAAW,sBAAsB,KAAK;AAAA,EACjD,YAAW,YAAW,uBAAuB,KAAK;AAAA,EAClD,YAAW,YAAW,gBAAgB,KAAK;AAAA,EAC3C,YAAW,YAAW,gBAAgB,KAAK;AAAA,EAC3C,YAAW,YAAW,iBAAiB,KAAK;AAAA,EAC5C,YAAW,YAAW,iBAAiB,KAAK;AAAA,EAC5C,YAAW,YAAW,kBAAkB,KAAK;AAAA,EAC7C,YAAW,YAAW,mBAAmB,MAAM;AAAA,EAC/C,YAAW,YAAW,oBAAoB,MAAM;AAAA,EAChD,YAAW,YAAW,uBAAuB,MAAM;AAAA,EACnD,YAAW,YAAW,wBAAwB,MAAM;AAAA,EACpD,YAAW,YAAW,qBAAqB,MAAM;AAAA,EACjD,YAAW,YAAW,YAAY,MAAM;AAAA,EACxC,YAAW,YAAW,aAAa,MAAM;AAAA,EACzC,YAAW,YAAW,SAAS,MAAM;AAAA,GACtC,eAAe,aAAa,CAAC,EAAE;AAS3B,IAAM,SAAe;AA+BrB,IAAI;AAAA,CACV,QAAS,CAAC,iBAAgB;AAAA,EACvB,gBAAe,gBAAe,mBAAmB,KAAK;AAAA,EACtD,gBAAe,gBAAe,yBAAyB,KAAK;AAAA,EAC5D,gBAAe,gBAAe,0BAA0B,KAAK;AAAA,EAC7D,gBAAe,gBAAe,mBAAmB,KAAK;AAAA,EACtD,gBAAe,gBAAe,mBAAmB,KAAK;AAAA,EACtD,gBAAe,gBAAe,mBAAmB,KAAK;AAAA,EACtD,gBAAe,gBAAe,wBAAwB,KAAK;AAAA,EAC3D,gBAAe,gBAAe,0BAA0B,KAAK;AAAA,EAC7D,gBAAe,gBAAe,uBAAuB,KAAK;AAAA,EAC1D,gBAAe,gBAAe,yBAAyB,MAAM;AAAA,EAC7D,gBAAe,gBAAe,4BAA4B,MAAM;AAAA,EAChE,gBAAe,gBAAe,2BAA2B,MAAM;AAAA,EAC/D,gBAAe,gBAAe,2BAA2B,MAAM;AAAA,EAC/D,gBAAe,gBAAe,oBAAoB,MAAM;AAAA,EACxD,gBAAe,gBAAe,4BAA4B,MAAM;AAAA,EAChE,gBAAe,gBAAe,sBAAsB,MAAM;AAAA,GAC3D,mBAAmB,iBAAiB,CAAC,EAAE;AA8CnC,SAAS,MAAM,CAAC,MAAM,MAAM,OAAO,SAAS;AAAA,EAC/C,OAAY,YAAY,MAAM,MAAM,OAAO,OAAO;AAAA;AAS/C,SAAS,UAAU,CAAC,MAAM,OAAO;AAAA,EACpC,IAAI,cAAc,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM;AAAA,IAC5C,MAAM,OAAO,EAAE,SAAS,EAAE;AAAA,IAC1B,IAAI,SAAS,GAAG;AAAA,MACZ,OAAO,EAAE,SAAS,EAAE;AAAA,IACxB;AAAA,IACA,OAAO;AAAA,GACV;AAAA,EACD,IAAI,qBAAqB,KAAK;AAAA,EAC9B,SAAS,IAAI,YAAY,SAAS,EAAG,KAAK,GAAG,KAAK;AAAA,IAC9C,IAAI,KAAI,YAAY;AAAA,IACpB,IAAI,GAAE,SAAS,GAAE,UAAU,oBAAoB;AAAA,MAC3C,OAAY,UAAU,MAAM,EAAC;AAAA,IACjC,EACK;AAAA,MACD,MAAM,IAAI,MAAM,kBAAkB;AAAA;AAAA,IAEtC,qBAAqB,GAAE;AAAA,EAC3B;AAAA,EACA,OAAO;AAAA;;;AC9JJ,IAAM,uBAAuB,iBAAE,OAAO;AAAA,EAE5C,KAAK,iBAAE,OAAO,EAAE,IAAI,kCAAkC;AAAA,EAGtD,SAAS,iBAAE,OAAO,EAAE,SAAS;AAAA,EAG7B,SAAS,iBAAE,OAAO,iBAAE,OAAO,CAAC,EAAE,SAAS;AACxC,CAAC;AAOM,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EAEvC,SAAS,iBAAE,OAAO,EAAE,SAAS;AAAA,EAG7B,YAAY,iBAAE,OAAO,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAGrD,gBAAgB,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAGzC,iBAAiB,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAC3C,CAAC;AAYM,IAAM,2BAA2B,iBAAE,OAAO;AAAA,EAEhD,UAAU,iBAAE,OAAO;AAAA,EAGnB,SAAS,iBAAE,OAAO;AAAA,EAGlB,MAAM,iBAAE,OAAO;AAAA,EAGf,OAAO,iBAAE,MAAM,iBAAE,OAAO,CAAC;AAAA,EAGzB,aAAa,iBAAE,OAAO;AAAA,EAGtB,WAAW,iBAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAQM,IAAM,gBAAgB,iBAAE,OAAO;AAAA,EAErC,aAAa,iBAAE,QAAQ,CAAC;AAAA,EAGxB,WAAW,iBAAE,OAAO,0BAA0B,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AACnF,CAAC;AAQD,IAAM,cAAc;AACpB,IAAM,YAAY;AAKlB,eAAsB,aAAa,CAAC,KAAwC;AAAA,EAC3E,MAAM,aAAa,GAAG,OAAO;AAAA,EAC7B,MAAM,OAAO,IAAI,KAAK,UAAU;AAAA,EAEhC,IAAI,CAAE,MAAM,KAAK,OAAO,GAAI;AAAA,IAC3B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,UAAU,MAAM,KAAK,KAAK;AAAA,EAChC,IAAI;AAAA,IACH,MAAM,OAAO,OAAW,SAAS,CAAC,GAAG,EAAE,oBAAoB,KAAK,CAAC;AAAA,IACjE,OAAO,gBAAgB,MAAM,IAAI;AAAA,IAChC,OAAO,OAAO;AAAA,IAEf,QAAQ,MAAM,iBAAiB,eAAe,KAAK;AAAA,IACnD,MAAM;AAAA;AAAA;AAOR,eAAsB,cAAc,CAAC,KAAa,QAAkC;AAAA,EACnF,MAAM,aAAa,GAAG,OAAO;AAAA,EAC7B,MAAM,UAAU,KAAK,UAAU,QAAQ,MAAM,CAAC;AAAA,EAC9C,MAAM,IAAI,MAAM,YAAY,OAAO;AAAA;AAMpC,eAAsB,WAAW,CAAC,KAAsC;AAAA,EACvE,MAAM,WAAW,GAAG,OAAO;AAAA,EAC3B,MAAM,OAAO,IAAI,KAAK,QAAQ;AAAA,EAE9B,IAAI,CAAE,MAAM,KAAK,OAAO,GAAI;AAAA,IAC3B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,UAAU,MAAM,KAAK,KAAK;AAAA,EAChC,MAAM,OAAO,OAAW,SAAS,CAAC,GAAG,EAAE,oBAAoB,KAAK,CAAC;AAAA,EACjE,OAAO,cAAc,MAAM,IAAI;AAAA;;;AClGhC,IAAM,gBAAqC;AAAA,EAC1C,mBAAmB;AAAA,IAClB,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA;AAAA,EACN;AACD;AAUA,eAAsB,sBAAsB,CAAC,KAInC;AAAA,EACT,MAAM,WAAW,GAAG;AAAA,EACpB,MAAM,YAAY,GAAG;AAAA,EAErB,WAAW,cAAc,CAAC,WAAW,QAAQ,GAAG;AAAA,IAC/C,MAAM,OAAO,IAAI,KAAK,UAAU;AAAA,IAChC,IAAI,MAAM,KAAK,OAAO,GAAG;AAAA,MACxB,MAAM,UAAU,MAAM,KAAK,KAAK;AAAA,MAChC,OAAO;AAAA,QACN,QAAQ,OAAW,SAAS,CAAC,GAAG,EAAE,oBAAoB,KAAK,CAAC;AAAA,QAC5D;AAAA,QACA,MAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;AAMR,eAAe,uBAAuB,CAAC,MAAc,SAAgC;AAAA,EACpF,MAAM,IAAI,MAAM,MAAM,OAAO;AAAA;AAU9B,SAAS,cAAc,CAAC,SAAiB,MAAoC;AAAA,EAC5E,MAAM,SAAS,OAAW,SAAS,CAAC,GAAG,EAAE,oBAAoB,KAAK,CAAC;AAAA,EACnE,IAAI,UAAmB;AAAA,EACvB,WAAW,WAAW,MAAM;AAAA,IAC3B,IAAI,YAAY,QAAQ,YAAY;AAAA,MAAW;AAAA,IAC/C,IAAI,OAAO,YAAY;AAAA,MAAU;AAAA,IACjC,UAAW,QAA6C;AAAA,EACzD;AAAA,EACA,OAAO;AAAA;AAOR,SAAS,gBAAgB,CAAC,SAAiB,MAA2B,OAAwB;AAAA,EAC7F,IAAI,UAAU,QAAQ,UAAU,WAAW;AAAA,IAC1C,OAAO;AAAA,EACR;AAAA,EAGA,IAAI,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAG;AAAA,IACvD,MAAM,gBAAgB,eAAe,SAAS,IAAI;AAAA,IAIlD,IACC,kBAAkB,cACjB,kBAAkB,QAAQ,OAAO,kBAAkB,WACnD;AAAA,MACD,MAAM,SAAQ,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,MACxD,OAAO,WAAW,SAAS,MAAK;AAAA,IACjC;AAAA,IAGA,IAAI,iBAAiB;AAAA,IACrB,YAAY,KAAK,QAAQ,OAAO,QAAQ,KAAgC,GAAG;AAAA,MAC1E,iBAAiB,iBAAiB,gBAAgB,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG;AAAA,IACtE;AAAA,IACA,OAAO;AAAA,EACR;AAAA,EAGA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACzB,MAAM,SAAQ,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,IACxD,OAAO,WAAW,SAAS,MAAK;AAAA,EACjC;AAAA,EAGA,MAAM,QAAQ,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,EACxD,OAAO,WAAW,SAAS,KAAK;AAAA;AAejC,eAAsB,wBAAwB,CAC7C,KACA,UAC0C;AAAA,EAC1C,MAAM,WAAW,MAAM,uBAAuB,GAAG;AAAA,EAEjD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,UAAU;AAAA,EAEd,IAAI,UAAU;AAAA,IACb,UAAU,SAAS;AAAA,IACnB,aAAa,SAAS;AAAA,EACvB,EAAO;AAAA,IAEN,MAAM,SAA6B,EAAE,SAAS,kCAAkC;AAAA,IAChF,UAAU,KAAK,UAAU,QAAQ,MAAM,IAAI;AAAA,IAC3C,aAAa,GAAG;AAAA,IAChB,UAAU;AAAA;AAAA,EAGX,MAAM,kBAAkB;AAAA,EAGxB,UAAU,iBAAiB,SAAS,CAAC,GAAG,QAAQ;AAAA,EAEhD,MAAM,UAAU,YAAY;AAAA,EAG5B,IAAI,SAAS;AAAA,IACZ,MAAM,wBAAwB,YAAY,OAAO;AAAA,EAClD;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACD;AAAA;;;ACnMD,SAAS,gBAAgB,CAAC,SAAyB;AAAA,EAClD,OAAO,QAAQ,QAAQ,SAAS;AAAA,CAAI,EAAE,KAAK;AAAA;AAOrC,SAAS,kBAAkB,CAAC,UAAkB,UAA2B;AAAA,EAC/E,OAAO,iBAAiB,QAAQ,MAAM,iBAAiB,QAAQ;AAAA;;ACVzD,IAAM,OAAO,QACnB,QAAQ,IAAI,MACX,QAAQ,IAAI,kBACZ,QAAQ,IAAI,aACZ,QAAQ,IAAI,YACZ,QAAQ,IAAI,eACZ,QAAQ,IAAI,SACd;AAGO,IAAM,QAAQ,QAAQ,QAAQ,OAAO,SAAS,CAAC,IAAI;AAGnD,IAAM,gBAAgB,QAC5B,SAAS,QAAQ,IAAI,gBAAgB,OAAO,QAAQ,IAAI,aAAa,SACtE;;ACnBA,IAAI;AAAJ,IAAiB;AAAjB,IAAsC;AAAtC,IAAgD;AAAhD,IAAsD,SAAM;AAC5D,IAAI,OAAO,YAAY,aAAa;AAAA,GAClC,EAAE,aAAa,qBAAqB,UAAU,KAAK,IAAI,QAAQ,OAAO,CAAC;AAAA,EACxE,SAAQ,QAAQ,UAAU,QAAQ,OAAO;AAC1C;AAEA,IAAM,IAAI;AAAA,EACT,SAAS,CAAC,uBAAuB,YAAY,QAAQ,SAAS,WAC7D,eAAe,QAAQ,gBAAgB,OAAO;AAAA,EAI/C,OAAO,KAAK,GAAG,CAAC;AAAA,EAChB,MAAM,KAAK,GAAG,EAAE;AAAA,EAChB,KAAK,KAAK,GAAG,EAAE;AAAA,EACf,QAAQ,KAAK,GAAG,EAAE;AAAA,EAClB,WAAW,KAAK,GAAG,EAAE;AAAA,EACrB,SAAS,KAAK,GAAG,EAAE;AAAA,EACnB,QAAQ,KAAK,GAAG,EAAE;AAAA,EAClB,eAAe,KAAK,GAAG,EAAE;AAAA,EAGzB,OAAO,KAAK,IAAI,EAAE;AAAA,EAClB,KAAK,KAAK,IAAI,EAAE;AAAA,EAChB,OAAO,KAAK,IAAI,EAAE;AAAA,EAClB,QAAQ,KAAK,IAAI,EAAE;AAAA,EACnB,MAAM,KAAK,IAAI,EAAE;AAAA,EACjB,SAAS,KAAK,IAAI,EAAE;AAAA,EACpB,MAAM,KAAK,IAAI,EAAE;AAAA,EACjB,OAAO,KAAK,IAAI,EAAE;AAAA,EAClB,MAAM,KAAK,IAAI,EAAE;AAAA,EACjB,MAAM,KAAK,IAAI,EAAE;AAAA,EAGjB,SAAS,KAAK,IAAI,EAAE;AAAA,EACpB,OAAO,KAAK,IAAI,EAAE;AAAA,EAClB,SAAS,KAAK,IAAI,EAAE;AAAA,EACpB,UAAU,KAAK,IAAI,EAAE;AAAA,EACrB,QAAQ,KAAK,IAAI,EAAE;AAAA,EACnB,WAAW,KAAK,IAAI,EAAE;AAAA,EACtB,QAAQ,KAAK,IAAI,EAAE;AAAA,EACnB,SAAS,KAAK,IAAI,EAAE;AACrB;AAEA,SAAS,GAAG,CAAC,KAAK,KAAK;AAAA,EACtB,IAAI,IAAE,GAAG,KAAK,MAAI,IAAI,MAAI;AAAA,EAC1B,MAAO,IAAI,IAAI,QAAQ,KAAK;AAAA,IAC3B,MAAM,IAAI;AAAA,IACV,OAAO,IAAI;AAAA,IACX,OAAO,IAAI;AAAA,IACX,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,KAAK,GAAG;AAAA,MAC9B,MAAM,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,IAAI;AAAA,IAChD;AAAA,EACD;AAAA,EACA,OAAO,MAAM,MAAM;AAAA;AAGpB,SAAS,KAAK,CAAC,KAAK,MAAM;AAAA,EACzB,IAAI,MAAM,EAAE,KAAK,KAAK;AAAA,EAEtB,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG;AAAA,EAC5B,IAAI,OAAO,EAAE,KAAK,KAAK,GAAG;AAAA,EAC1B,IAAI,MAAM,EAAE,IAAI,KAAK,GAAG;AAAA,EACxB,IAAI,SAAS,EAAE,OAAO,KAAK,GAAG;AAAA,EAC9B,IAAI,YAAY,EAAE,UAAU,KAAK,GAAG;AAAA,EACpC,IAAI,UAAU,EAAE,QAAQ,KAAK,GAAG;AAAA,EAChC,IAAI,SAAS,EAAE,OAAO,KAAK,GAAG;AAAA,EAC9B,IAAI,gBAAgB,EAAE,cAAc,KAAK,GAAG;AAAA,EAE5C,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG;AAAA,EAC5B,IAAI,MAAM,EAAE,IAAI,KAAK,GAAG;AAAA,EACxB,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG;AAAA,EAC5B,IAAI,SAAS,EAAE,OAAO,KAAK,GAAG;AAAA,EAC9B,IAAI,OAAO,EAAE,KAAK,KAAK,GAAG;AAAA,EAC1B,IAAI,UAAU,EAAE,QAAQ,KAAK,GAAG;AAAA,EAChC,IAAI,OAAO,EAAE,KAAK,KAAK,GAAG;AAAA,EAC1B,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG;AAAA,EAC5B,IAAI,OAAO,EAAE,KAAK,KAAK,GAAG;AAAA,EAC1B,IAAI,OAAO,EAAE,KAAK,KAAK,GAAG;AAAA,EAE1B,IAAI,UAAU,EAAE,QAAQ,KAAK,GAAG;AAAA,EAChC,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG;AAAA,EAC5B,IAAI,UAAU,EAAE,QAAQ,KAAK,GAAG;AAAA,EAChC,IAAI,WAAW,EAAE,SAAS,KAAK,GAAG;AAAA,EAClC,IAAI,SAAS,EAAE,OAAO,KAAK,GAAG;AAAA,EAC9B,IAAI,YAAY,EAAE,UAAU,KAAK,GAAG;AAAA,EACpC,IAAI,SAAS,EAAE,OAAO,KAAK,GAAG;AAAA,EAC9B,IAAI,UAAU,EAAE,QAAQ,KAAK,GAAG;AAAA,EAEhC,OAAO;AAAA;AAGR,SAAS,IAAI,CAAC,MAAM,OAAO;AAAA,EAC1B,IAAI,MAAM;AAAA,IACT,MAAM,QAAQ;AAAA,IACd,OAAO,QAAQ;AAAA,IACf,KAAK,IAAI,OAAO,WAAW,UAAU,GAAG;AAAA,EACzC;AAAA,EACA,OAAO,QAAS,CAAC,KAAK;AAAA,IACrB,IAAI,SAAc,aAAK,KAAK,QAAa,WAAG;AAAA,MAC3C,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,IAAI,MAAM,KAAK,IAAI,KAAK,IAAI,GAAE,KAAK,KAAK,KAAK,GAAG;AAAA,MACpE,OAAO,QAAa,YAAI,OAAO,EAAE,UAAU,IAAI,KAAK,MAAM,MAAI,EAAE,IAAI,MAAI;AAAA,IACzE;AAAA,IACA,OAAO,QAAa,YAAI,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,GAAG,GAAG,MAAI,EAAE,IAAI,MAAI;AAAA;AAAA;AAItF,IAAe;;;ACpGf,IAAI,CAAC,eAAe;AAAA,EACnB,cAAM,UAAU;AACjB;AAOA,IAAI,UAAyB,CAAC;AAMvB,IAAM,SAAS;AAAA,EACrB,IAAI,IAAI,MAAuB;AAAA,IAC9B,IAAI,QAAQ;AAAA,MAAO;AAAA,IACnB,QAAQ,IAAI,cAAM,KAAK,MAAM,GAAG,GAAG,IAAI;AAAA;AAAA,EAGxC,OAAO,IAAI,MAAuB;AAAA,IACjC,IAAI,QAAQ;AAAA,MAAO;AAAA,IACnB,QAAQ,IAAI,cAAM,MAAM,QAAE,GAAG,GAAG,IAAI;AAAA;AAAA,EAGrC,IAAI,IAAI,MAAuB;AAAA,IAC9B,IAAI,QAAQ;AAAA,MAAO;AAAA,IACnB,QAAQ,KAAK,cAAM,OAAO,MAAM,GAAG,GAAG,IAAI;AAAA;AAAA,EAG3C,KAAK,IAAI,MAAuB;AAAA,IAE/B,QAAQ,MAAM,cAAM,IAAI,OAAO,GAAG,GAAG,IAAI;AAAA;AAAA,EAG1C,KAAK,IAAI,MAAuB;AAAA,IAC/B,IAAI,CAAC,QAAQ;AAAA,MAAS;AAAA,IACtB,QAAQ,IAAI,cAAM,KAAK,OAAO,GAAG,GAAG,IAAI;AAAA;AAAA,EAGzC,GAAG,IAAI,MAAuB;AAAA,IAC7B,IAAI,QAAQ;AAAA,MAAO;AAAA,IACnB,QAAQ,IAAI,GAAG,IAAI;AAAA;AAAA,EAIpB,KAAK,GAAS;AAAA,IACb,IAAI,QAAQ;AAAA,MAAO;AAAA,IACnB,QAAQ,IAAI,EAAE;AAAA;AAEhB;;;AC1CO,SAAS,WAAW,CAAC,OAAgB,WAA8B,CAAC,GAAU;AAAA,EAEpF,IAAI,SAAQ,MAAM;AAAA,IACjB,MAAM,SAAS,kBAAkB,KAAK;AAAA,IACtC,QAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC3C,QAAQ,KAAK,OAAO,QAAQ;AAAA,EAC7B;AAAA,EAGA,IAAI,iBAAiB,UAAU;AAAA,IAC9B,OAAO,MAAM,MAAM,OAAO;AAAA,IAC1B,QAAQ,KAAK,MAAM,QAAQ;AAAA,EAC5B;AAAA,EAGA,IAAI,iBAAiB,UAAU;AAAA,IAC9B,OAAO,MAAM,oBAAoB;AAAA,IACjC,WAAW,SAAS,MAAM,QAAQ;AAAA,MACjC,MAAM,OAAO,MAAM,KAAK,KAAK,GAAG;AAAA,MAChC,OAAO,MAAM,KAAK,SAAS,MAAM,SAAS;AAAA,IAC3C;AAAA,IACA,QAAQ,KAAK,WAAW,MAAM;AAAA,EAC/B;AAAA,EAGA,IAAI,iBAAiB,OAAO;AAAA,IAC3B,OAAO,MAAM,MAAM,OAAO;AAAA,IAC1B,IAAI,QAAQ,IAAI,OAAO;AAAA,MACtB,QAAQ,MAAM,MAAM,KAAK;AAAA,IAC1B;AAAA,EACD,EAAO;AAAA,IACN,OAAO,MAAM,2BAA2B;AAAA;AAAA,EAGzC,QAAQ,KAAK,WAAW,OAAO;AAAA;AAehC,SAAS,iBAAiB,CAAC,OAAiC;AAAA,EAC3D,IAAI,iBAAiB,UAAU;AAAA,IAC9B,OAAO;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,QACN,MAAM,MAAM;AAAA,QACZ,SAAS,MAAM;AAAA,MAChB;AAAA,MACA,UAAU,MAAM;AAAA,MAChB,MAAM;AAAA,QACL,WAAW,IAAI,KAAK,EAAE,YAAY;AAAA,MACnC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,iBAAiB,UAAU;AAAA,IAC9B,OAAO;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,MAAM,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI;AAAA,MAChF;AAAA,MACA,UAAU,WAAW;AAAA,MACrB,MAAM;AAAA,QACL,WAAW,IAAI,KAAK,EAAE,YAAY;AAAA,MACnC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IACnD;AAAA,IACA,UAAU,WAAW;AAAA,IACrB,MAAM;AAAA,MACL,WAAW,IAAI,KAAK,EAAE,YAAY;AAAA,IACnC;AAAA,EACD;AAAA;;AClFM,SAAS,UAAU,CAAC,MAAqB;AAAA,EAC/C,QAAQ,IAAI,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;AAAA;;ACzB1C;;;ACAA,IAAM,yBAAyB;AAE/B,IAAM,aAAa,CAAC,SAAS,MAAM,UAAQ,QAAU,OAAO;AAE5D,IAAM,cAAc,CAAC,SAAS,MAAM,UAAQ,QAAU,KAAK,YAAY;AAEvE,IAAM,cAAc,CAAC,SAAS,MAAM,CAAC,KAAK,OAAO,SAAS,QAAU,KAAK,YAAY,OAAO,SAAS;AAErG,IAAM,SAAS;AAAA,EACd,UAAU;AAAA,IACT,OAAO,CAAC,GAAG,CAAC;AAAA,IAEZ,MAAM,CAAC,GAAG,EAAE;AAAA,IACZ,KAAK,CAAC,GAAG,EAAE;AAAA,IACX,QAAQ,CAAC,GAAG,EAAE;AAAA,IACd,WAAW,CAAC,GAAG,EAAE;AAAA,IACjB,UAAU,CAAC,IAAI,EAAE;AAAA,IACjB,SAAS,CAAC,GAAG,EAAE;AAAA,IACf,QAAQ,CAAC,GAAG,EAAE;AAAA,IACd,eAAe,CAAC,GAAG,EAAE;AAAA,EACtB;AAAA,EACA,OAAO;AAAA,IACN,OAAO,CAAC,IAAI,EAAE;AAAA,IACd,KAAK,CAAC,IAAI,EAAE;AAAA,IACZ,OAAO,CAAC,IAAI,EAAE;AAAA,IACd,QAAQ,CAAC,IAAI,EAAE;AAAA,IACf,MAAM,CAAC,IAAI,EAAE;AAAA,IACb,SAAS,CAAC,IAAI,EAAE;AAAA,IAChB,MAAM,CAAC,IAAI,EAAE;AAAA,IACb,OAAO,CAAC,IAAI,EAAE;AAAA,IAGd,aAAa,CAAC,IAAI,EAAE;AAAA,IACpB,MAAM,CAAC,IAAI,EAAE;AAAA,IACb,MAAM,CAAC,IAAI,EAAE;AAAA,IACb,WAAW,CAAC,IAAI,EAAE;AAAA,IAClB,aAAa,CAAC,IAAI,EAAE;AAAA,IACpB,cAAc,CAAC,IAAI,EAAE;AAAA,IACrB,YAAY,CAAC,IAAI,EAAE;AAAA,IACnB,eAAe,CAAC,IAAI,EAAE;AAAA,IACtB,YAAY,CAAC,IAAI,EAAE;AAAA,IACnB,aAAa,CAAC,IAAI,EAAE;AAAA,EACrB;AAAA,EACA,SAAS;AAAA,IACR,SAAS,CAAC,IAAI,EAAE;AAAA,IAChB,OAAO,CAAC,IAAI,EAAE;AAAA,IACd,SAAS,CAAC,IAAI,EAAE;AAAA,IAChB,UAAU,CAAC,IAAI,EAAE;AAAA,IACjB,QAAQ,CAAC,IAAI,EAAE;AAAA,IACf,WAAW,CAAC,IAAI,EAAE;AAAA,IAClB,QAAQ,CAAC,IAAI,EAAE;AAAA,IACf,SAAS,CAAC,IAAI,EAAE;AAAA,IAGhB,eAAe,CAAC,KAAK,EAAE;AAAA,IACvB,QAAQ,CAAC,KAAK,EAAE;AAAA,IAChB,QAAQ,CAAC,KAAK,EAAE;AAAA,IAChB,aAAa,CAAC,KAAK,EAAE;AAAA,IACrB,eAAe,CAAC,KAAK,EAAE;AAAA,IACvB,gBAAgB,CAAC,KAAK,EAAE;AAAA,IACxB,cAAc,CAAC,KAAK,EAAE;AAAA,IACtB,iBAAiB,CAAC,KAAK,EAAE;AAAA,IACzB,cAAc,CAAC,KAAK,EAAE;AAAA,IACtB,eAAe,CAAC,KAAK,EAAE;AAAA,EACxB;AACD;AAEO,IAAM,gBAAgB,OAAO,KAAK,OAAO,QAAQ;AACjD,IAAM,uBAAuB,OAAO,KAAK,OAAO,KAAK;AACrD,IAAM,uBAAuB,OAAO,KAAK,OAAO,OAAO;AACvD,IAAM,aAAa,CAAC,GAAG,sBAAsB,GAAG,oBAAoB;AAE3E,SAAS,cAAc,GAAG;AAAA,EACzB,MAAM,QAAQ,IAAI;AAAA,EAElB,YAAY,WAAW,UAAU,OAAO,QAAQ,MAAM,GAAG;AAAA,IACxD,YAAY,WAAW,UAAU,OAAO,QAAQ,KAAK,GAAG;AAAA,MACvD,OAAO,aAAa;AAAA,QACnB,MAAM,QAAU,MAAM;AAAA,QACtB,OAAO,QAAU,MAAM;AAAA,MACxB;AAAA,MAEA,MAAM,aAAa,OAAO;AAAA,MAE1B,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE;AAAA,IAC7B;AAAA,IAEA,OAAO,eAAe,QAAQ,WAAW;AAAA,MACxC,OAAO;AAAA,MACP,YAAY;AAAA,IACb,CAAC;AAAA,EACF;AAAA,EAEA,OAAO,eAAe,QAAQ,SAAS;AAAA,IACtC,OAAO;AAAA,IACP,YAAY;AAAA,EACb,CAAC;AAAA,EAED,OAAO,MAAM,QAAQ;AAAA,EACrB,OAAO,QAAQ,QAAQ;AAAA,EAEvB,OAAO,MAAM,OAAO,WAAW;AAAA,EAC/B,OAAO,MAAM,UAAU,YAAY;AAAA,EACnC,OAAO,MAAM,UAAU,YAAY;AAAA,EACnC,OAAO,QAAQ,OAAO,WAAW,sBAAsB;AAAA,EACvD,OAAO,QAAQ,UAAU,YAAY,sBAAsB;AAAA,EAC3D,OAAO,QAAQ,UAAU,YAAY,sBAAsB;AAAA,EAG3D,OAAO,iBAAiB,QAAQ;AAAA,IAC/B,cAAc;AAAA,MACb,KAAK,CAAC,KAAK,OAAO,MAAM;AAAA,QAGvB,IAAI,QAAQ,SAAS,UAAU,MAAM;AAAA,UACpC,IAAI,MAAM,GAAG;AAAA,YACZ,OAAO;AAAA,UACR;AAAA,UAEA,IAAI,MAAM,KAAK;AAAA,YACd,OAAO;AAAA,UACR;AAAA,UAEA,OAAO,KAAK,OAAQ,MAAM,KAAK,MAAO,EAAE,IAAI;AAAA,QAC7C;AAAA,QAEA,OAAO,KACH,KAAK,KAAK,MAAM,MAAM,MAAM,CAAC,IAC7B,IAAI,KAAK,MAAM,QAAQ,MAAM,CAAC,IAC/B,KAAK,MAAM,OAAO,MAAM,CAAC;AAAA;AAAA,MAE7B,YAAY;AAAA,IACb;AAAA,IACA,UAAU;AAAA,MACT,KAAK,CAAC,KAAK;AAAA,QACV,MAAM,UAAU,yBAAyB,KAAK,IAAI,SAAS,EAAE,CAAC;AAAA,QAC9D,IAAI,CAAC,SAAS;AAAA,UACb,OAAO,CAAC,GAAG,GAAG,CAAC;AAAA,QAChB;AAAA,QAEA,KAAK,eAAe;AAAA,QAEpB,IAAI,YAAY,WAAW,GAAG;AAAA,UAC7B,cAAc,CAAC,GAAG,WAAW,EAAE,IAAI,eAAa,YAAY,SAAS,EAAE,KAAK,EAAE;AAAA,QAC/E;AAAA,QAEA,MAAM,UAAU,OAAO,SAAS,aAAa,EAAE;AAAA,QAE/C,OAAO;AAAA,UAEL,WAAW,KAAM;AAAA,UACjB,WAAW,IAAK;AAAA,UACjB,UAAU;AAAA,QAEX;AAAA;AAAA,MAED,YAAY;AAAA,IACb;AAAA,IACA,cAAc;AAAA,MACb,OAAO,SAAO,OAAO,aAAa,GAAG,OAAO,SAAS,GAAG,CAAC;AAAA,MACzD,YAAY;AAAA,IACb;AAAA,IACA,eAAe;AAAA,MACd,KAAK,CAAC,MAAM;AAAA,QACX,IAAI,OAAO,GAAG;AAAA,UACb,OAAO,KAAK;AAAA,QACb;AAAA,QAEA,IAAI,OAAO,IAAI;AAAA,UACd,OAAO,MAAM,OAAO;AAAA,QACrB;AAAA,QAEA,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QAEJ,IAAI,QAAQ,KAAK;AAAA,UAChB,QAAS,OAAO,OAAO,KAAM,KAAK;AAAA,UAClC,QAAQ;AAAA,UACR,OAAO;AAAA,QACR,EAAO;AAAA,UACN,QAAQ;AAAA,UAER,MAAM,YAAY,OAAO;AAAA,UAEzB,MAAM,KAAK,MAAM,OAAO,EAAE,IAAI;AAAA,UAC9B,QAAQ,KAAK,MAAM,YAAY,CAAC,IAAI;AAAA,UACpC,OAAQ,YAAY,IAAK;AAAA;AAAA,QAG1B,MAAM,QAAQ,KAAK,IAAI,KAAK,OAAO,IAAI,IAAI;AAAA,QAE3C,IAAI,UAAU,GAAG;AAAA,UAChB,OAAO;AAAA,QACR;AAAA,QAGA,IAAI,SAAS,MAAO,KAAK,MAAM,IAAI,KAAK,IAAM,KAAK,MAAM,KAAK,KAAK,IAAK,KAAK,MAAM,GAAG;AAAA,QAEtF,IAAI,UAAU,GAAG;AAAA,UAChB,UAAU;AAAA,QACX;AAAA,QAEA,OAAO;AAAA;AAAA,MAER,YAAY;AAAA,IACb;AAAA,IACA,WAAW;AAAA,MACV,OAAO,CAAC,KAAK,OAAO,SAAS,OAAO,cAAc,OAAO,aAAa,KAAK,OAAO,IAAI,CAAC;AAAA,MACvF,YAAY;AAAA,IACb;AAAA,IACA,WAAW;AAAA,MACV,OAAO,SAAO,OAAO,cAAc,OAAO,aAAa,GAAG,CAAC;AAAA,MAC3D,YAAY;AAAA,IACb;AAAA,EACD,CAAC;AAAA,EAED,OAAO;AAAA;AAGR,IAAM,aAAa,eAAe;AAElC,IAAe;;;AC9Nf;AACA;AACA;AAIA,SAAS,OAAO,CAAC,MAAM,OAAO,WAAW,OAAO,WAAW,KAAK,OAAO,SAAQ,MAAM;AAAA,EACpF,MAAM,SAAS,KAAK,WAAW,GAAG,IAAI,KAAM,KAAK,WAAW,IAAI,MAAM;AAAA,EACtE,MAAM,WAAW,KAAK,QAAQ,SAAS,IAAI;AAAA,EAC3C,MAAM,qBAAqB,KAAK,QAAQ,IAAI;AAAA,EAC5C,OAAO,aAAa,OAAO,uBAAuB,MAAM,WAAW;AAAA;AAGpE,MAAO,QAAO;AAEd,IAAI;AACJ,IACC,QAAQ,UAAU,KACf,QAAQ,WAAW,KACnB,QAAQ,aAAa,KACrB,QAAQ,aAAa,GACvB;AAAA,EACD,iBAAiB;AAClB,EAAO,SACN,QAAQ,OAAO,KACZ,QAAQ,QAAQ,KAChB,QAAQ,YAAY,KACpB,QAAQ,cAAc,GACxB;AAAA,EACD,iBAAiB;AAClB;AAEA,SAAS,aAAa,GAAG;AAAA,EACxB,IAAI,iBAAiB,KAAK;AAAA,IACzB,IAAI,IAAI,gBAAgB,QAAQ;AAAA,MAC/B,OAAO;AAAA,IACR;AAAA,IAEA,IAAI,IAAI,gBAAgB,SAAS;AAAA,MAChC,OAAO;AAAA,IACR;AAAA,IAEA,OAAO,IAAI,YAAY,WAAW,IAAI,IAAI,KAAK,IAAI,OAAO,SAAS,IAAI,aAAa,EAAE,GAAG,CAAC;AAAA,EAC3F;AAAA;AAGD,SAAS,cAAc,CAAC,OAAO;AAAA,EAC9B,IAAI,UAAU,GAAG;AAAA,IAChB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,EAClB;AAAA;AAGD,SAAS,cAAc,CAAC,cAAa,aAAa,aAAa,SAAQ,CAAC,GAAG;AAAA,EAC1E,MAAM,mBAAmB,cAAc;AAAA,EACvC,IAAI,qBAAqB,WAAW;AAAA,IACnC,iBAAiB;AAAA,EAClB;AAAA,EAEA,MAAM,aAAa,aAAa,iBAAiB;AAAA,EAEjD,IAAI,eAAe,GAAG;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,YAAY;AAAA,IACf,IAAI,QAAQ,WAAW,KACnB,QAAQ,YAAY,KACpB,QAAQ,iBAAiB,GAAG;AAAA,MAC/B,OAAO;AAAA,IACR;AAAA,IAEA,IAAI,QAAQ,WAAW,GAAG;AAAA,MACzB,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAIA,IAAI,cAAc,OAAO,gBAAgB,KAAK;AAAA,IAC7C,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,cAAc,CAAC,eAAe,eAAe,WAAW;AAAA,IAC3D,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,MAAM,cAAc;AAAA,EAE1B,IAAI,IAAI,SAAS,QAAQ;AAAA,IACxB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,SAAQ,aAAa,SAAS;AAAA,IAGjC,MAAM,YAAY,GAAG,QAAQ,EAAE,MAAM,GAAG;AAAA,IACxC,IACC,OAAO,UAAU,EAAE,KAAK,MACrB,OAAO,UAAU,EAAE,KAAK,OAC1B;AAAA,MACD,OAAO,OAAO,UAAU,EAAE,KAAK,QAAS,IAAI;AAAA,IAC7C;AAAA,IAEA,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,QAAQ,KAAK;AAAA,IAChB,IAAI,CAAC,kBAAkB,iBAAiB,UAAU,EAAE,KAAK,UAAO,OAAO,IAAG,GAAG;AAAA,MAC5E,OAAO;AAAA,IACR;AAAA,IAEA,IAAI,CAAC,UAAU,YAAY,aAAa,aAAa,OAAO,EAAE,KAAK,WAAQ,QAAQ,IAAG,KAAK,IAAI,YAAY,YAAY;AAAA,MACtH,OAAO;AAAA,IACR;AAAA,IAEA,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,sBAAsB,KAAK;AAAA,IAC9B,OAAO,gCAAgC,KAAK,IAAI,gBAAgB,IAAI,IAAI;AAAA,EACzE;AAAA,EAEA,IAAI,IAAI,cAAc,aAAa;AAAA,IAClC,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,IAAI,SAAS,eAAe;AAAA,IAC/B,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,IAAI,SAAS,iBAAiB;AAAA,IACjC,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,IAAI,SAAS,WAAW;AAAA,IAC3B,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,kBAAkB,KAAK;AAAA,IAC1B,MAAM,UAAU,OAAO,UAAU,IAAI,wBAAwB,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE;AAAA,IAElF,QAAQ,IAAI;AAAA,WACN,aAAa;AAAA,QACjB,OAAO,WAAW,IAAI,IAAI;AAAA,MAC3B;AAAA,WAEK,kBAAkB;AAAA,QACtB,OAAO;AAAA,MACR;AAAA;AAAA,EAGF;AAAA,EAEA,IAAI,iBAAiB,KAAK,IAAI,IAAI,GAAG;AAAA,IACpC,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,8DAA8D,KAAK,IAAI,IAAI,GAAG;AAAA,IACjF,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,eAAe,KAAK;AAAA,IACvB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;AAGD,SAAS,mBAAmB,CAAC,QAAQ,WAAU,CAAC,GAAG;AAAA,EACzD,MAAM,QAAQ,eAAe,QAAQ;AAAA,IACpC,aAAa,UAAU,OAAO;AAAA,OAC3B;AAAA,EACJ,CAAC;AAAA,EAED,OAAO,eAAe,KAAK;AAAA;AAG5B,IAAM,iBAAgB;AAAA,EACrB,QAAQ,oBAAoB,EAAC,OAAO,IAAI,OAAO,CAAC,EAAC,CAAC;AAAA,EAClD,QAAQ,oBAAoB,EAAC,OAAO,IAAI,OAAO,CAAC,EAAC,CAAC;AACnD;AAEA,IAAe;;;AC5LR,SAAS,gBAAgB,CAAC,QAAQ,WAAW,UAAU;AAAA,EAC7D,IAAI,QAAQ,OAAO,QAAQ,SAAS;AAAA,EACpC,IAAI,UAAU,IAAI;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBAAkB,UAAU;AAAA,EAClC,IAAI,WAAW;AAAA,EACf,IAAI,cAAc;AAAA,EAClB,GAAG;AAAA,IACF,eAAe,OAAO,MAAM,UAAU,KAAK,IAAI,YAAY;AAAA,IAC3D,WAAW,QAAQ;AAAA,IACnB,QAAQ,OAAO,QAAQ,WAAW,QAAQ;AAAA,EAC3C,SAAS,UAAU;AAAA,EAEnB,eAAe,OAAO,MAAM,QAAQ;AAAA,EACpC,OAAO;AAAA;AAGD,SAAS,8BAA8B,CAAC,QAAQ,QAAQ,SAAS,OAAO;AAAA,EAC9E,IAAI,WAAW;AAAA,EACf,IAAI,cAAc;AAAA,EAClB,GAAG;AAAA,IACF,MAAM,QAAQ,OAAO,QAAQ,OAAO;AAAA,IACpC,eAAe,OAAO,MAAM,UAAW,QAAQ,QAAQ,IAAI,KAAM,IAAI,UAAU,QAAQ;AAAA,IAAS;AAAA,KAAQ;AAAA,IACxG,WAAW,QAAQ;AAAA,IACnB,QAAQ,OAAO,QAAQ;AAAA,GAAM,QAAQ;AAAA,EACtC,SAAS,UAAU;AAAA,EAEnB,eAAe,OAAO,MAAM,QAAQ;AAAA,EACpC,OAAO;AAAA;;;ACxBR,MAAO,QAAQ,aAAa,QAAQ,gBAAe;AAEnD,IAAM,YAAY,OAAO,WAAW;AACpC,IAAM,SAAS,OAAO,QAAQ;AAC9B,IAAM,WAAW,OAAO,UAAU;AAGlC,IAAM,eAAe;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,IAAM,UAAS,OAAO,OAAO,IAAI;AAEjC,IAAM,eAAe,CAAC,QAAQ,WAAU,CAAC,MAAM;AAAA,EAC9C,IAAI,SAAQ,SAAS,EAAE,OAAO,UAAU,SAAQ,KAAK,KAAK,SAAQ,SAAS,KAAK,SAAQ,SAAS,IAAI;AAAA,IACpG,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAAA,EAGA,MAAM,aAAa,cAAc,YAAY,QAAQ;AAAA,EACrD,OAAO,QAAQ,SAAQ,UAAU,YAAY,aAAa,SAAQ;AAAA;AAUnE,IAAM,eAAe,cAAW;AAAA,EAC/B,MAAM,QAAQ,IAAI,YAAY,QAAQ,KAAK,GAAG;AAAA,EAC9C,aAAa,OAAO,QAAO;AAAA,EAE3B,OAAO,eAAe,OAAO,YAAY,SAAS;AAAA,EAElD,OAAO;AAAA;AAGR,SAAS,WAAW,CAAC,UAAS;AAAA,EAC7B,OAAO,aAAa,QAAO;AAAA;AAG5B,OAAO,eAAe,YAAY,WAAW,SAAS,SAAS;AAE/D,YAAY,WAAW,UAAU,OAAO,QAAQ,mBAAU,GAAG;AAAA,EAC5D,QAAO,aAAa;AAAA,IACnB,GAAG,GAAG;AAAA,MACL,MAAM,UAAU,cAAc,MAAM,aAAa,MAAM,MAAM,MAAM,OAAO,KAAK,OAAO,GAAG,KAAK,SAAS;AAAA,MACvG,OAAO,eAAe,MAAM,WAAW,EAAC,OAAO,QAAO,CAAC;AAAA,MACvD,OAAO;AAAA;AAAA,EAET;AACD;AAEA,QAAO,UAAU;AAAA,EAChB,GAAG,GAAG;AAAA,IACL,MAAM,UAAU,cAAc,MAAM,KAAK,SAAS,IAAI;AAAA,IACtD,OAAO,eAAe,MAAM,WAAW,EAAC,OAAO,QAAO,CAAC;AAAA,IACvD,OAAO;AAAA;AAET;AAEA,IAAM,eAAe,CAAC,OAAO,OAAO,SAAS,eAAe;AAAA,EAC3D,IAAI,UAAU,OAAO;AAAA,IACpB,IAAI,UAAU,WAAW;AAAA,MACxB,OAAO,oBAAW,MAAM,QAAQ,GAAG,UAAU;AAAA,IAC9C;AAAA,IAEA,IAAI,UAAU,WAAW;AAAA,MACxB,OAAO,oBAAW,MAAM,QAAQ,oBAAW,aAAa,GAAG,UAAU,CAAC;AAAA,IACvE;AAAA,IAEA,OAAO,oBAAW,MAAM,KAAK,oBAAW,UAAU,GAAG,UAAU,CAAC;AAAA,EACjE;AAAA,EAEA,IAAI,UAAU,OAAO;AAAA,IACpB,OAAO,aAAa,OAAO,OAAO,MAAM,GAAG,oBAAW,SAAS,GAAG,UAAU,CAAC;AAAA,EAC9E;AAAA,EAEA,OAAO,oBAAW,MAAM,OAAO,GAAG,UAAU;AAAA;AAG7C,IAAM,aAAa,CAAC,OAAO,OAAO,SAAS;AAE3C,WAAW,SAAS,YAAY;AAAA,EAC/B,QAAO,SAAS;AAAA,IACf,GAAG,GAAG;AAAA,MACL,QAAO,UAAS;AAAA,MAChB,OAAO,QAAS,IAAI,YAAY;AAAA,QAC/B,MAAM,SAAS,aAAa,aAAa,OAAO,aAAa,QAAQ,SAAS,GAAG,UAAU,GAAG,oBAAW,MAAM,OAAO,KAAK,OAAO;AAAA,QAClI,OAAO,cAAc,MAAM,QAAQ,KAAK,SAAS;AAAA;AAAA;AAAA,EAGpD;AAAA,EAEA,MAAM,UAAU,OAAO,MAAM,GAAG,YAAY,IAAI,MAAM,MAAM,CAAC;AAAA,EAC7D,QAAO,WAAW;AAAA,IACjB,GAAG,GAAG;AAAA,MACL,QAAO,UAAS;AAAA,MAChB,OAAO,QAAS,IAAI,YAAY;AAAA,QAC/B,MAAM,SAAS,aAAa,aAAa,OAAO,aAAa,QAAQ,WAAW,GAAG,UAAU,GAAG,oBAAW,QAAQ,OAAO,KAAK,OAAO;AAAA,QACtI,OAAO,cAAc,MAAM,QAAQ,KAAK,SAAS;AAAA;AAAA;AAAA,EAGpD;AACD;AAEA,IAAM,QAAQ,OAAO,iBAAiB,MAAM,IAAI;AAAA,KAC5C;AAAA,EACH,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,GAAG,GAAG;AAAA,MACL,OAAO,KAAK,WAAW;AAAA;AAAA,IAExB,GAAG,CAAC,OAAO;AAAA,MACV,KAAK,WAAW,QAAQ;AAAA;AAAA,EAE1B;AACD,CAAC;AAED,IAAM,eAAe,CAAC,MAAM,OAAO,WAAW;AAAA,EAC7C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,WAAW,WAAW;AAAA,IACzB,UAAU;AAAA,IACV,WAAW;AAAA,EACZ,EAAO;AAAA,IACN,UAAU,OAAO,UAAU;AAAA,IAC3B,WAAW,QAAQ,OAAO;AAAA;AAAA,EAG3B,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAGD,IAAM,gBAAgB,CAAC,MAAM,SAAS,aAAa;AAAA,EAGlD,MAAM,UAAU,IAAI,eAAe,WAAW,SAAU,WAAW,WAAW,IAAM,KAAK,WAAW,KAAM,WAAW,KAAK,GAAG,CAAC;AAAA,EAI9H,OAAO,eAAe,SAAS,KAAK;AAAA,EAEpC,QAAQ,aAAa;AAAA,EACrB,QAAQ,UAAU;AAAA,EAClB,QAAQ,YAAY;AAAA,EAEpB,OAAO;AAAA;AAGR,IAAM,aAAa,CAAC,MAAM,WAAW;AAAA,EACpC,IAAI,KAAK,SAAS,KAAK,CAAC,QAAQ;AAAA,IAC/B,OAAO,KAAK,YAAY,KAAK;AAAA,EAC9B;AAAA,EAEA,IAAI,SAAS,KAAK;AAAA,EAElB,IAAI,WAAW,WAAW;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAEA,QAAO,SAAS,aAAY;AAAA,EAC5B,IAAI,OAAO,SAAS,MAAQ,GAAG;AAAA,IAC9B,OAAO,WAAW,WAAW;AAAA,MAI5B,SAAS,iBAAiB,QAAQ,OAAO,OAAO,OAAO,IAAI;AAAA,MAE3D,SAAS,OAAO;AAAA,IACjB;AAAA,EACD;AAAA,EAKA,MAAM,UAAU,OAAO,QAAQ;AAAA,CAAI;AAAA,EACnC,IAAI,YAAY,IAAI;AAAA,IACnB,SAAS,+BAA+B,QAAQ,UAAU,SAAS,OAAO;AAAA,EAC3E;AAAA,EAEA,OAAO,UAAU,SAAS;AAAA;AAG3B,OAAO,iBAAiB,YAAY,WAAW,OAAM;AAErD,IAAM,QAAQ,YAAY;AACnB,IAAM,cAAc,YAAY,EAAC,OAAO,cAAc,YAAY,QAAQ,EAAC,CAAC;AAoBnF,IAAe;;;AChOf;;;ACAA;;;ACAA,IAAM,eAAe,CAAC,IAAI,MAAM,UAAU,0BAA0B;AAAA,EAGnE,IAAI,aAAa,YAAY,aAAa,aAAa;AAAA,IACtD;AAAA,EACD;AAAA,EAGA,IAAI,aAAa,eAAe,aAAa,UAAU;AAAA,IACtD;AAAA,EACD;AAAA,EAEA,MAAM,eAAe,OAAO,yBAAyB,IAAI,QAAQ;AAAA,EACjE,MAAM,iBAAiB,OAAO,yBAAyB,MAAM,QAAQ;AAAA,EAErE,IAAI,CAAC,gBAAgB,cAAc,cAAc,KAAK,uBAAuB;AAAA,IAC5E;AAAA,EACD;AAAA,EAEA,OAAO,eAAe,IAAI,UAAU,cAAc;AAAA;AAMnD,IAAM,kBAAkB,QAAS,CAAC,cAAc,gBAAgB;AAAA,EAC/D,OAAO,iBAAiB,aAAa,aAAa,gBACjD,aAAa,aAAa,eAAe,YACtC,aAAa,eAAe,eAAe,cAC3C,aAAa,iBAAiB,eAAe,iBAC5C,aAAa,YAAY,aAAa,UAAU,eAAe;AAAA;AAIrE,IAAM,kBAAkB,CAAC,IAAI,SAAS;AAAA,EACrC,MAAM,gBAAgB,OAAO,eAAe,IAAI;AAAA,EAChD,IAAI,kBAAkB,OAAO,eAAe,EAAE,GAAG;AAAA,IAChD;AAAA,EACD;AAAA,EAEA,OAAO,eAAe,IAAI,aAAa;AAAA;AAGxC,IAAM,kBAAkB,CAAC,UAAU,aAAa,cAAc;AAAA,EAAe;AAE7E,IAAM,qBAAqB,OAAO,yBAAyB,SAAS,WAAW,UAAU;AACzF,IAAM,eAAe,OAAO,yBAAyB,SAAS,UAAU,UAAU,MAAM;AAKxF,IAAM,iBAAiB,CAAC,IAAI,MAAM,SAAS;AAAA,EAC1C,MAAM,WAAW,SAAS,KAAK,KAAK,QAAQ,KAAK,KAAK;AAAA,EACtD,MAAM,cAAc,gBAAgB,KAAK,MAAM,UAAU,KAAK,SAAS,CAAC;AAAA,EAExE,OAAO,eAAe,aAAa,QAAQ,YAAY;AAAA,EACvD,QAAO,UAAU,YAAY,iBAAgB;AAAA,EAC7C,OAAO,eAAe,IAAI,YAAY,EAAC,OAAO,aAAa,UAAU,YAAY,aAAY,CAAC;AAAA;AAG/F,SAAwB,aAAa,CAAC,IAAI,QAAO,wBAAwB,UAAS,CAAC,GAAG;AAAA,EACrF,QAAO,SAAQ;AAAA,EAEf,WAAW,YAAY,QAAQ,QAAQ,IAAI,GAAG;AAAA,IAC7C,aAAa,IAAI,MAAM,UAAU,qBAAqB;AAAA,EACvD;AAAA,EAEA,gBAAgB,IAAI,IAAI;AAAA,EACxB,eAAe,IAAI,MAAM,IAAI;AAAA,EAE7B,OAAO;AAAA;;;ACpER,IAAM,kBAAkB,IAAI;AAE5B,IAAM,UAAU,CAAC,WAAW,WAAU,CAAC,MAAM;AAAA,EAC5C,IAAI,OAAO,cAAc,YAAY;AAAA,IACpC,MAAM,IAAI,UAAU,qBAAqB;AAAA,EAC1C;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI,YAAY;AAAA,EAChB,MAAM,eAAe,UAAU,eAAe,UAAU,QAAQ;AAAA,EAEhE,MAAM,WAAU,QAAS,IAAI,YAAY;AAAA,IACxC,gBAAgB,IAAI,UAAS,EAAE,SAAS;AAAA,IAExC,IAAI,cAAc,GAAG;AAAA,MACpB,cAAc,UAAU,MAAM,MAAM,UAAU;AAAA,MAC9C,YAAY;AAAA,IACb,EAAO,SAAI,SAAQ,UAAU,MAAM;AAAA,MAClC,MAAM,IAAI,MAAM,cAAc,wCAAwC;AAAA,IACvE;AAAA,IAEA,OAAO;AAAA;AAAA,EAGR,cAAc,UAAS,SAAS;AAAA,EAChC,gBAAgB,IAAI,UAAS,SAAS;AAAA,EAEtC,OAAO;AAAA;AAGR,QAAQ,YAAY,eAAa;AAAA,EAChC,IAAI,CAAC,gBAAgB,IAAI,SAAS,GAAG;AAAA,IACpC,MAAM,IAAI,MAAM,wBAAwB,UAAU,kDAAkD;AAAA,EACrG;AAAA,EAEA,OAAO,gBAAgB,IAAI,SAAS;AAAA;AAGrC,IAAe;;;ACdR,IAAM,UAAU,CAAC;AACxB,QAAQ,KAAK,UAAU,UAAU,SAAS;AAC1C,IAAI,QAAQ,aAAa,SAAS;AAAA,EAC9B,QAAQ,KAAK,WAAW,WAAW,aAAa,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,QAIjH;AACJ;AACA,IAAI,QAAQ,aAAa,SAAS;AAAA,EAC9B,QAAQ,KAAK,SAAS,WAAW,UAAU,WAAW;AAC1D;;;AC/BA,IAAM,YAAY,CAAC,aAAY,CAAC,CAAC,YAC7B,OAAO,aAAY,YACnB,OAAO,SAAQ,mBAAmB,cAClC,OAAO,SAAQ,SAAS,cACxB,OAAO,SAAQ,eAAe,cAC9B,OAAO,SAAQ,cAAc,cAC7B,OAAO,SAAQ,SAAS,cACxB,OAAO,SAAQ,QAAQ,YACvB,OAAO,SAAQ,OAAO;AAC1B,IAAM,eAAe,OAAO,IAAI,qBAAqB;AACrD,IAAM,SAAS;AACf,IAAM,uBAAuB,OAAO,eAAe,KAAK,MAAM;AAAA;AAE9D,MAAM,QAAQ;AAAA,EACV,UAAU;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACR,WAAW,CAAC;AAAA,IACZ,MAAM,CAAC;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,EACR,KAAK,KAAK,OAAO;AAAA,EACjB,WAAW,GAAG;AAAA,IACV,IAAI,OAAO,eAAe;AAAA,MACtB,OAAO,OAAO;AAAA,IAClB;AAAA,IACA,qBAAqB,QAAQ,cAAc;AAAA,MACvC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,cAAc;AAAA,IAClB,CAAC;AAAA;AAAA,EAEL,EAAE,CAAC,IAAI,IAAI;AAAA,IACP,KAAK,UAAU,IAAI,KAAK,EAAE;AAAA;AAAA,EAE9B,cAAc,CAAC,IAAI,IAAI;AAAA,IACnB,MAAM,OAAO,KAAK,UAAU;AAAA,IAC5B,MAAM,IAAI,KAAK,QAAQ,EAAE;AAAA,IAEzB,IAAI,MAAM,IAAI;AAAA,MACV;AAAA,IACJ;AAAA,IAEA,IAAI,MAAM,KAAK,KAAK,WAAW,GAAG;AAAA,MAC9B,KAAK,SAAS;AAAA,IAClB,EACK;AAAA,MACD,KAAK,OAAO,GAAG,CAAC;AAAA;AAAA;AAAA,EAGxB,IAAI,CAAC,IAAI,MAAM,QAAQ;AAAA,IACnB,IAAI,KAAK,QAAQ,KAAK;AAAA,MAClB,OAAO;AAAA,IACX;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IACnB,IAAI,MAAM;AAAA,IACV,WAAW,MAAM,KAAK,UAAU,KAAK;AAAA,MACjC,MAAM,GAAG,MAAM,MAAM,MAAM,QAAQ;AAAA,IACvC;AAAA,IACA,IAAI,OAAO,QAAQ;AAAA,MACf,MAAM,KAAK,KAAK,aAAa,MAAM,MAAM,KAAK;AAAA,IAClD;AAAA,IACA,OAAO;AAAA;AAEf;AAAA;AACA,MAAM,eAAe;AACrB;AACA,IAAM,iBAAiB,CAAC,YAAY;AAAA,EAChC,OAAO;AAAA,IACH,MAAM,CAAC,IAAI,MAAM;AAAA,MACb,OAAO,QAAQ,OAAO,IAAI,IAAI;AAAA;AAAA,IAElC,IAAI,GAAG;AAAA,MACH,OAAO,QAAQ,KAAK;AAAA;AAAA,IAExB,MAAM,GAAG;AAAA,MACL,OAAO,QAAQ,OAAO;AAAA;AAAA,EAE9B;AAAA;AAAA;AAEJ,MAAM,2BAA2B,eAAe;AAAA,EAC5C,MAAM,GAAG;AAAA,IACL,OAAO,MAAM;AAAA;AAAA,EAEjB,IAAI,GAAG;AAAA,EACP,MAAM,GAAG;AACb;AAAA;AACA,MAAM,mBAAmB,eAAe;AAAA,EAIpC,UAAU,SAAQ,aAAa,UAAU,WAAW;AAAA,EAEpD,WAAW,IAAI;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,CAAC;AAAA,EACjB,UAAU;AAAA,EACV,WAAW,CAAC,UAAS;AAAA,IACjB,MAAM;AAAA,IACN,KAAK,WAAW;AAAA,IAEhB,KAAK,gBAAgB,CAAC;AAAA,IACtB,WAAW,OAAO,SAAS;AAAA,MACvB,KAAK,cAAc,OAAO,MAAM;AAAA,QAK5B,MAAM,YAAY,KAAK,SAAS,UAAU,GAAG;AAAA,QAC7C,MAAM,UAAU,KAAK;AAAA,QAQrB,MAAM,IAAI;AAAA,QACV,IAAI,OAAO,EAAE,4BAA4B,YACrC,OAAO,EAAE,wBAAwB,UAAU,UAAU;AAAA,UACrD,SAAS,EAAE,wBAAwB;AAAA,QACvC;AAAA,QAEA,IAAI,UAAU,WAAW,OAAO;AAAA,UAC5B,KAAK,OAAO;AAAA,UACZ,MAAM,MAAM,KAAK,SAAS,KAAK,QAAQ,MAAM,GAAG;AAAA,UAEhD,MAAM,IAAI,QAAQ,WAAW,KAAK,UAAU;AAAA,UAC5C,IAAI,CAAC;AAAA,YACD,SAAQ,KAAK,SAAQ,KAAK,CAAC;AAAA,QAEnC;AAAA;AAAA,IAER;AAAA,IACA,KAAK,6BAA6B,SAAQ;AAAA,IAC1C,KAAK,uBAAuB,SAAQ;AAAA;AAAA,EAExC,MAAM,CAAC,IAAI,MAAM;AAAA,IAEb,IAAI,CAAC,UAAU,KAAK,QAAQ,GAAG;AAAA,MAC3B,OAAO,MAAM;AAAA,IACjB;AAAA,IAEA,IAAI,KAAK,YAAY,OAAO;AAAA,MACxB,KAAK,KAAK;AAAA,IACd;AAAA,IACA,MAAM,KAAK,MAAM,aAAa,cAAc;AAAA,IAC5C,KAAK,SAAS,GAAG,IAAI,EAAE;AAAA,IACvB,OAAO,MAAM;AAAA,MACT,KAAK,SAAS,eAAe,IAAI,EAAE;AAAA,MACnC,IAAI,KAAK,SAAS,UAAU,QAAQ,WAAW,KAC3C,KAAK,SAAS,UAAU,aAAa,WAAW,GAAG;AAAA,QACnD,KAAK,OAAO;AAAA,MAChB;AAAA;AAAA;AAAA,EAGR,IAAI,GAAG;AAAA,IACH,IAAI,KAAK,SAAS;AAAA,MACd;AAAA,IACJ;AAAA,IACA,KAAK,UAAU;AAAA,IAKf,KAAK,SAAS,SAAS;AAAA,IACvB,WAAW,OAAO,SAAS;AAAA,MACvB,IAAI;AAAA,QACA,MAAM,KAAK,KAAK,cAAc;AAAA,QAC9B,IAAI;AAAA,UACA,KAAK,SAAS,GAAG,KAAK,EAAE;AAAA,QAEhC,OAAO,GAAG;AAAA,IACd;AAAA,IACA,KAAK,SAAS,OAAO,CAAC,OAAO,MAAM;AAAA,MAC/B,OAAO,KAAK,aAAa,IAAI,GAAG,CAAC;AAAA;AAAA,IAErC,KAAK,SAAS,aAAa,CAAC,SAAS;AAAA,MACjC,OAAO,KAAK,mBAAmB,IAAI;AAAA;AAAA;AAAA,EAG3C,MAAM,GAAG;AAAA,IACL,IAAI,CAAC,KAAK,SAAS;AAAA,MACf;AAAA,IACJ;AAAA,IACA,KAAK,UAAU;AAAA,IACf,QAAQ,QAAQ,SAAO;AAAA,MACnB,MAAM,WAAW,KAAK,cAAc;AAAA,MAEpC,IAAI,CAAC,UAAU;AAAA,QACX,MAAM,IAAI,MAAM,sCAAsC,GAAG;AAAA,MAC7D;AAAA,MAEA,IAAI;AAAA,QACA,KAAK,SAAS,eAAe,KAAK,QAAQ;AAAA,QAG9C,OAAO,GAAG;AAAA,KAEb;AAAA,IACD,KAAK,SAAS,OAAO,KAAK;AAAA,IAC1B,KAAK,SAAS,aAAa,KAAK;AAAA,IAChC,KAAK,SAAS,SAAS;AAAA;AAAA,EAE3B,kBAAkB,CAAC,MAAM;AAAA,IAErB,IAAI,CAAC,UAAU,KAAK,QAAQ,GAAG;AAAA,MAC3B,OAAO;AAAA,IACX;AAAA,IACA,KAAK,SAAS,WAAW,QAAQ;AAAA,IAEjC,KAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,UAAU,IAAI;AAAA,IACvD,OAAO,KAAK,2BAA2B,KAAK,KAAK,UAAU,KAAK,SAAS,QAAQ;AAAA;AAAA,EAErF,YAAY,CAAC,OAAO,MAAM;AAAA,IACtB,MAAM,KAAK,KAAK;AAAA,IAChB,IAAI,OAAO,UAAU,UAAU,KAAK,QAAQ,GAAG;AAAA,MAC3C,IAAI,OAAO,KAAK,OAAO,UAAU;AAAA,QAC7B,KAAK,SAAS,WAAW,KAAK;AAAA,MAElC;AAAA,MAEA,MAAM,MAAM,GAAG,KAAK,KAAK,UAAU,IAAI,GAAG,IAAI;AAAA,MAE9C,KAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,UAAU,IAAI;AAAA,MAEvD,OAAO;AAAA,IACX,EACK;AAAA,MACD,OAAO,GAAG,KAAK,KAAK,UAAU,IAAI,GAAG,IAAI;AAAA;AAAA;AAGrD;AACA,IAAM,WAAU,WAAW;AAGpB;AAAA,EAUP;AAAA,EAQA;AAAA,EAQA;AAAA,IAAY,eAAe,UAAU,QAAO,IAAI,IAAI,WAAW,QAAO,IAAI,IAAI,kBAAoB;;;AJ7QlG,IAAM,WAAW,SAAQ,OAAO,QAC7B,SAAQ,SACP,SAAQ,OAAO,QAAQ,SAAQ,SAAS;AAE5C,IAAM,gBAAgB,WAAW,gBAAQ,MAAM;AAAA,EAC9C,OAAO,MAAM;AAAA,IACZ,SAAS,MAAM,WAAa;AAAA,KAC1B,EAAC,YAAY,KAAI,CAAC;AAAA,CACrB,IAAI,MAAM;AAEX,IAAe;;;ADXf,IAAI,WAAW;AAEf,IAAM,YAAY,CAAC;AAEnB,UAAU,OAAO,CAAC,iBAAiB,SAAQ,WAAW;AAAA,EACrD,IAAI,CAAC,eAAe,OAAO;AAAA,IAC1B;AAAA,EACD;AAAA,EAEA,WAAW;AAAA,EACX,eAAe,MAAM,WAAa;AAAA;AAGnC,UAAU,OAAO,CAAC,iBAAiB,SAAQ,WAAW;AAAA,EACrD,IAAI,CAAC,eAAe,OAAO;AAAA,IAC1B;AAAA,EACD;AAAA,EAEA,uBAAc;AAAA,EACd,WAAW;AAAA,EACX,eAAe,MAAM,WAAa;AAAA;AAGnC,UAAU,SAAS,CAAC,OAAO,mBAAmB;AAAA,EAC7C,IAAI,UAAU,WAAW;AAAA,IACxB,WAAW;AAAA,EACZ;AAAA,EAEA,IAAI,UAAU;AAAA,IACb,UAAU,KAAK,cAAc;AAAA,EAC9B,EAAO;AAAA,IACN,UAAU,KAAK,cAAc;AAAA;AAAA;AAI/B,IAAe;;;ALnCf;;;AWHA;AAEA,SAAwB,kBAAkB,GAAG;AAAA,EAC5C,IAAI,SAAQ,aAAa,SAAS;AAAA,IACjC,OAAO,SAAQ,IAAI,SAAS;AAAA,EAC7B;AAAA,EAEA,OAAO,QAAQ,SAAQ,IAAI,EAAE,KACzB,QAAQ,SAAQ,IAAI,UAAU,KAC9B,QAAQ,SAAQ,IAAI,gBAAgB,KACpC,SAAQ,IAAI,eAAe,kBAC3B,SAAQ,IAAI,iBAAiB,sBAC7B,SAAQ,IAAI,iBAAiB,YAC7B,SAAQ,IAAI,SAAS,oBACrB,SAAQ,IAAI,SAAS,eACrB,SAAQ,IAAI,sBAAsB;AAAA;;;ACZvC,IAAM,OAAO;AAAA,EACZ,MAAM,eAAM,KAAK,QAAE;AAAA,EACnB,SAAS,eAAM,MAAM,QAAE;AAAA,EACvB,SAAS,eAAM,OAAO,QAAE;AAAA,EACxB,OAAO,eAAM,IAAI,QAAE;AACpB;AAEA,IAAM,WAAW;AAAA,EAChB,MAAM,eAAM,KAAK,GAAG;AAAA,EACpB,SAAS,eAAM,MAAM,QAAE;AAAA,EACvB,SAAS,eAAM,OAAO,QAAE;AAAA,EACxB,OAAO,eAAM,IAAI,MAAE;AACpB;AAEA,IAAM,aAAa,mBAAmB,IAAI,OAAO;AAEjD,IAAe;;;ACnBf,SAAwB,SAAS,GAAE,YAAY,UAAS,CAAC,GAAG;AAAA,EAE3D,MAAM,KAAK;AAAA,EAGX,MAAM,MAAM,0BAA0B;AAAA,EAGtC,MAAM,MAAM;AAAA,EAEZ,MAAM,UAAU,GAAG,OAAO;AAAA,EAE1B,OAAO,IAAI,OAAO,SAAS,YAAY,YAAY,GAAG;AAAA;;;ACVvD,IAAM,QAAQ,UAAU;AAExB,SAAwB,SAAS,CAAC,QAAQ;AAAA,EACzC,IAAI,OAAO,WAAW,UAAU;AAAA,IAC/B,MAAM,IAAI,UAAU,gCAAgC,OAAO,UAAU;AAAA,EACtE;AAAA,EAKA,OAAO,OAAO,QAAQ,OAAO,EAAE;AAAA;;;ACVhC,SAAS,WAAW,CAAC,GAAG;AAAA,EACvB,OAAO,MAAM,OACT,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,KAAK,OAAQ,KAAK,OAClB,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,MAAM,QACN,KAAK,QAAS,KAAK,QACnB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,WACrB,KAAK,WAAY,KAAK;AAAA;AAG3B,SAAS,WAAW,CAAC,GAAG;AAAA,EACvB,OAAO,MAAM,SACT,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK;AAAA;AAGzB,SAAS,MAAM,CAAC,GAAG;AAAA,EAClB,OAAO,KAAK,QAAU,KAAK,QACvB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAW,KAAK,SACrB,KAAK,SAAW,KAAK,SACrB,KAAK,SAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,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",
91
+ "debugId": "EB704B787D95653F64756E2164756E21",
91
92
  "names": []
92
93
  }