ocx 0.1.1 → 1.0.0
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 +1903 -1900
- package/dist/index.js.map +20 -20
- package/package.json +60 -27
- package/dist/bin/ocx-darwin-arm64 +0 -0
- package/scripts/build-binary.ts +0 -96
- package/scripts/build.ts +0 -17
- package/scripts/install.sh +0 -65
- package/src/commands/add.ts +0 -229
- package/src/commands/build.ts +0 -150
- package/src/commands/diff.ts +0 -139
- package/src/commands/init.ts +0 -90
- package/src/commands/registry.ts +0 -153
- package/src/commands/search.ts +0 -159
- package/src/constants.ts +0 -18
- package/src/index.ts +0 -42
- package/src/registry/fetcher.ts +0 -168
- package/src/registry/index.ts +0 -2
- package/src/registry/opencode-config.ts +0 -182
- package/src/registry/resolver.ts +0 -127
- package/src/schemas/config.ts +0 -207
- package/src/schemas/index.ts +0 -6
- package/src/schemas/registry.ts +0 -268
- package/src/utils/env.ts +0 -27
- package/src/utils/errors.ts +0 -81
- package/src/utils/handle-error.ts +0 -108
- package/src/utils/index.ts +0 -10
- package/src/utils/json-output.ts +0 -107
- package/src/utils/logger.ts +0 -72
- package/src/utils/spinner.ts +0 -46
- package/tests/add.test.ts +0 -102
- package/tests/build.test.ts +0 -136
- package/tests/diff.test.ts +0 -47
- package/tests/helpers.ts +0 -68
- package/tests/init.test.ts +0 -52
- package/tests/mock-registry.ts +0 -105
- package/tests/registry.test.ts +0 -78
- package/tests/search.test.ts +0 -64
- package/tsconfig.json +0 -15
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/
|
|
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", "../src/registry/opencode-config.ts", "../src/registry/resolver.ts", "../src/schemas/config.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", "../../../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/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,8 +12,7 @@
|
|
|
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 -
|
|
16
|
-
"/**\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`\nexport const OCX_LOCK_SCHEMA_URL = `https://${OCX_DOMAIN}/lock.schema.json`\nexport const OCX_INSTALL_URL = `https://${OCX_DOMAIN}/install.sh`\n\n// GitHub URLs\nexport const GITHUB_RELEASES_URL = `https://github.com/${GITHUB_REPO}/releases`\nexport const GITHUB_RAW_URL = `https://raw.githubusercontent.com/${GITHUB_REPO}/main`\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, readFile, writeFile } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\nimport type { Command } from \"commander\"\nimport { fetchFileContent, fetchRegistryIndex } from \"../registry/fetcher.js\"\nimport { updateOpencodeConfig } from \"../registry/opencode-config.js\"\nimport { type ResolvedDependencies, resolveDependencies } from \"../registry/resolver.js\"\nimport { type OcxLock, ocxConfigSchema, ocxLockSchema } from \"../schemas/config.js\"\nimport type { ComponentManifest } from \"../schemas/registry.js\"\nimport { ConfigError, IntegrityError } 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 configPath = join(cwd, \"ocx.jsonc\")\n\tconst lockPath = join(cwd, \"ocx.lock\")\n\n\t// Load config\n\tif (!existsSync(configPath)) {\n\t\tthrow new ConfigError(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t}\n\n\tconst configContent = await readFile(configPath, \"utf-8\")\n\tconst config = ocxConfigSchema.parse(JSON.parse(configContent))\n\n\t// Load or create lock\n\tlet lock: OcxLock = { lockVersion: 1, installed: {} }\n\tif (existsSync(lockPath)) {\n\t\tconst lockContent = await readFile(lockPath, \"utf-8\")\n\t\tlock = ocxLockSchema.parse(JSON.parse(lockContent))\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// Install components\n\t\tconst installSpin = options.quiet ? null : createSpinner({ text: \"Installing components...\" })\n\t\tinstallSpin?.start()\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\n\t\t\tconst existingEntry = lock.installed[component.name]\n\t\t\tif (existingEntry && existingEntry.hash !== computedHash) {\n\t\t\t\tthrow new IntegrityError(component.name, existingEntry.hash, computedHash)\n\t\t\t}\n\n\t\t\t// Install components\n\t\t\tawait installComponent(component, files, cwd)\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\n\t\t\tlock.installed[component.name] = {\n\t\t\t\tregistry: component.registryName,\n\t\t\t\tversion: index.version,\n\t\t\t\thash: computedHash,\n\t\t\t\ttarget: getTargetPath(component),\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\n\t\tif (Object.keys(resolved.mcpServers).length > 0) {\n\t\t\tconst result = await updateOpencodeConfig(cwd, {\n\t\t\t\tmcpServers: resolved.mcpServers,\n\t\t\t})\n\n\t\t\tif (result.mcpSkipped.length > 0 && !options.quiet) {\n\t\t\t\tfor (const name of result.mcpSkipped) {\n\t\t\t\t\tlogger.warn(`MCP server \"${name}\" already configured, skipped`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!options.quiet && result.mcpAdded.length > 0) {\n\t\t\t\tlogger.info(`Configured ${result.mcpAdded.length} MCP servers`)\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\tmcpServers: Object.keys(resolved.mcpServers),\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\tspin?.fail(\"Failed to resolve dependencies\")\n\t\tthrow error\n\t}\n}\n\nasync function installComponent(\n\tcomponent: ComponentManifest,\n\tfiles: { path: string; content: Buffer }[],\n\tcwd: string,\n): Promise<void> {\n\tfor (const file of files) {\n\t\tconst componentFile = component.files.find((f) => 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// 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\nfunction getTargetPath(component: ComponentManifest): string {\n\treturn component.files[0]?.target ?? `.opencode/${component.type}/${component.name}`\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 (Object.keys(resolved.mcpServers).length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would configure MCP servers:\")\n\t\tfor (const name of Object.keys(resolved.mcpServers)) {\n\t\t\tlogger.info(` ${name}`)\n\t\t}\n\t}\n}\n",
|
|
17
16
|
"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",
|
|
18
17
|
"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",
|
|
19
18
|
"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",
|
|
@@ -21,12 +20,17 @@
|
|
|
21
20
|
"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",
|
|
22
21
|
"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",
|
|
23
22
|
"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",
|
|
24
|
-
"/**\n * Registry & Component Schemas\n *\n * Zod schemas with fail-fast validation following the 5 Laws of Elegant Defense.\n * All validation errors include clear messages with examples of valid input.\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', 'kdco-plan'). Cannot start/end with hyphen or have consecutive hyphens.\",\n\t})\n\n/**\n * Creates a component name schema that enforces registry prefix.\n * All components in a registry must start with the registry's prefix.\n */\nexport const createComponentNameSchema = (prefix: string) =>\n\topenCodeNameSchema.refine((name) => name.startsWith(`${prefix}-`), {\n\t\tmessage: `Component name must start with registry prefix \"${prefix}-\" (e.g., \"${prefix}-my-component\")`,\n\t})\n\n// =============================================================================\n// FILE TARGET SCHEMAS\n// =============================================================================\n\n/**\n * Valid component types and their target directories\n */\nexport const COMPONENT_TYPE_DIRS = {\n\t\"ocx:agent\": \"agent\",\n\t\"ocx:skill\": \"skill\",\n\t\"ocx:plugin\": \"plugin\",\n\t\"ocx:command\": \"command\",\n\t\"ocx:tool\": \"tool\",\n\t\"ocx:bundle\": null, // Bundles don't have a target directory\n} as const\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\
|
|
25
|
-
"/**\n * Config & Lockfile Schemas\n * \n * Schemas for ocx.jsonc (user config) and ocx.lock (auto-generated lockfile).\n */\n\nimport { z } from \"zod\"\nimport { mcpServerSchema } 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\t\n\t/** Optional version pin */\n\tversion: z.string().optional(),\n\t\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\t\n\t/** Configured registries */\n\tregistries: z.record(registryConfigSchema).default({}),\n\t\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 */\nexport const installedComponentSchema = z.object({\n\t/** Registry this was installed from */\n\tregistry: z.string(),\n\t\n\t/** Version at time of install */\n\tversion: z.string(),\n\t\n\t/** SHA-256 hash of installed files for integrity */\n\thash: z.string(),\n\t\n\t/** Target path where installed */\n\ttarget: z.string(),\n\t\n\t/** ISO timestamp of installation */\n\tinstalledAt: z.string(),\n})\n\nexport type InstalledComponent = z.infer<typeof installedComponentSchema>\n\n/**\n * OCX lockfile schema (ocx.lock)\n */\nexport const ocxLockSchema = z.object({\n\t/** Lockfile format version */\n\tlockVersion: z.literal(1),\n\t\n\t/** Installed components */\n\tinstalled: z.record(installedComponentSchema).default({}),\n})\n\nexport type OcxLock = z.infer<typeof ocxLockSchema>\n\n// =============================================================================\n// OPENCODE.JSON MODIFICATION SCHEMAS\n// =============================================================================\n\n/**\n * MCP server config for opencode.json\n */\nexport const opencodeMcpSchema = z.record(mcpServerSchema)\n\n/**\n * Agent config for opencode.json\n */\nexport const opencodeAgentSchema = z.object({\n\tdisable: z.boolean().optional(),\n\ttools: z.record(z.boolean()).optional(),\n})\n\n/**\n * Partial opencode.json schema (what OCX modifies)\n */\nexport const opencodeConfigPatchSchema = z.object({\n\t/** Default agent */\n\tdefault_agent: z.string().optional(),\n\t\n\t/** MCP servers */\n\tmcp: opencodeMcpSchema.optional(),\n\t\n\t/** Tool configuration */\n\ttools: z.record(z.boolean()).optional(),\n\t\n\t/** Agent configuration */\n\tagent: z.record(opencodeAgentSchema).optional(),\n})\n\nexport type OpencodeConfigPatch = z.infer<typeof opencodeConfigPatchSchema>\n\n// =============================================================================\n// SCHEMA INDEX\n// =============================================================================\n\nexport const schemas = {\n\tconfig: ocxConfigSchema,\n\tlock: ocxLockSchema,\n\tregistryConfig: registryConfigSchema,\n\tinstalledComponent: installedComponentSchema,\n\topencodeConfigPatch: opencodeConfigPatchSchema,\n} as const\n\n// =============================================================================\n// CONFIG FILE HELPERS\n// =============================================================================\n\nconst CONFIG_FILE = \"ocx.jsonc\"\nconst LOCK_FILE = \"ocx.lock\"\n\n/**\n * Strip JSONC comments for parsing.\n * Robust version that respects strings (avoids breaking URLs).\n */\nexport function stripJsonComments(content: string): string {\n // Regex that matches either a string, a block comment, or a line comment\n // We use this to correctly skip slashes inside strings\n return content.replace(/(\"(?:[^\"\\\\]|\\\\.)*\")|(\\/\\*[\\s\\S]*?\\*\\/)|(\\/\\/.*)$/gm, (match, string, block, line) => {\n if (string) return string; // Return string as is\n return \"\"; // Remove comment\n });\n}\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\t\n\tif (!(await file.exists())) {\n\t\treturn null\n\t}\n\t\n\tconst content = await file.text()\n\ttry {\n\t const json = JSON.parse(stripJsonComments(content))\n\t return ocxConfigSchema.parse(json)\n\t} catch (error) {\n\t // If parsing fails, we want to know why\n\t console.error(`Error parsing ${configPath}:`, error)\n\t throw 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\t\n\tif (!(await file.exists())) {\n\t\treturn null\n\t}\n\t\n\tconst content = await file.text()\n\tconst json = JSON.parse(stripJsonComments(content))\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",
|
|
26
|
-
"/**\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\n/** Get terminal width, default to 80 */\nexport function getTerminalWidth(): number {\n\treturn process.stdout.columns || 80\n}\n",
|
|
23
|
+
"/**\n * Registry & Component Schemas\n *\n * Zod schemas with fail-fast validation following the 5 Laws of Elegant Defense.\n * All validation errors include clear messages with examples of valid input.\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', 'kdco-plan'). Cannot start/end with hyphen or have consecutive hyphens.\",\n\t})\n\n/**\n * Creates a component name schema that enforces registry prefix.\n * All components in a registry must start with the registry's prefix.\n */\nexport const createComponentNameSchema = (prefix: string) =>\n\topenCodeNameSchema.refine((name) => name.startsWith(`${prefix}-`), {\n\t\tmessage: `Component name must start with registry prefix \"${prefix}-\" (e.g., \"${prefix}-my-component\")`,\n\t})\n\n// =============================================================================\n// FILE TARGET SCHEMAS\n// =============================================================================\n\n/**\n * Valid component types and their target directories\n */\nexport const COMPONENT_TYPE_DIRS = {\n\t\"ocx:agent\": \"agent\",\n\t\"ocx:skill\": \"skill\",\n\t\"ocx:plugin\": \"plugin\",\n\t\"ocx:command\": \"command\",\n\t\"ocx:tool\": \"tool\",\n\t\"ocx:bundle\": null, // Bundles don't have a target directory\n} as const\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 * Skill-specific target validation.\n * Skills must be in: .opencode/skill/<name>/SKILL.md\n */\nexport const skillTargetSchema = z\n\t.string()\n\t.regex(/^\\.opencode\\/skill\\/[a-z0-9]+(-[a-z0-9]+)*\\/SKILL\\.md$/, {\n\t\tmessage:\n\t\t\t'Skill target must match pattern \".opencode/skill/<name>/SKILL.md\" where name follows OpenCode naming rules',\n\t})\n\n// =============================================================================\n// MCP SERVER SCHEMA\n// =============================================================================\n\nexport const mcpServerSchema = z\n\t.object({\n\t\ttype: z.enum([\"remote\", \"local\"]),\n\t\turl: z.string().url().optional(),\n\t\tcommand: z.array(z.string()).optional(),\n\t\theaders: z.record(z.string()).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 mcpServerSchema>\n\n// =============================================================================\n// COMPONENT FILE SCHEMA\n// =============================================================================\n\nexport const componentFileSchema = 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 ComponentFile = z.infer<typeof componentFileSchema>\n\n// =============================================================================\n// COMPONENT MANIFEST SCHEMA\n// =============================================================================\n\nexport const componentManifestSchema = z.object({\n\t/** Component name (must include registry 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/** Files to install */\n\tfiles: z.array(componentFileSchema),\n\n\t/** Dependencies on other components */\n\tdependencies: z.array(openCodeNameSchema).default([]),\n\n\t/** MCP servers this component needs */\n\tmcpServers: z.record(mcpServerSchema).optional(),\n\n\t/** Scope MCP servers to this agent only? Default: \"agent\" */\n\tmcpScope: z.enum([\"agent\", \"global\"]).default(\"agent\"),\n})\n\nexport type ComponentManifest = z.infer<typeof componentManifestSchema>\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 prefix - REQUIRED, all components must use this */\n\t\tprefix: openCodeNameSchema,\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 component names must start with the registry prefix\n\t\t\treturn data.components.every((c) => c.name.startsWith(`${data.prefix}-`))\n\t\t},\n\t\t{\n\t\t\tmessage: \"All component names must start with the registry prefix\",\n\t\t},\n\t)\n\t.refine(\n\t\t(data) => {\n\t\t\t// All dependencies must exist within the registry\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\tif (!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: \"All dependencies must reference components that exist in the registry\",\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\tprefix: openCodeNameSchema,\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",
|
|
27
24
|
"/**\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`This could indicate tampering or an unauthorized update.`\n\t\tsuper(message, \"INTEGRITY_ERROR\", EXIT_CODES.INTEGRITY)\n\t\tthis.name = \"IntegrityError\"\n\t}\n}\n",
|
|
25
|
+
"/**\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 * Clear the fetch cache\n */\nexport function clearCache(): void {\n\tcache.clear()\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 url = `${baseUrl.replace(/\\/$/, \"\")}/components/${name}.json`\n\n\treturn fetchWithCache(url, (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\t\tconst latestVersion = packument[\"dist-tags\"].latest\n\t\tconst manifest = packument.versions[latestVersion]\n\n\t\tif (!manifest) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`Component \"${name}\" has no manifest for latest version ${latestVersion}`,\n\t\t\t)\n\t\t}\n\n\t\t// 2. 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}@${latestVersion}\": ${manifestResult.error.message}`,\n\t\t\t)\n\t\t}\n\n\t\treturn manifestResult.data\n\t})\n}\n\n/**\n * Fetch multiple components in parallel\n */\nexport async function fetchComponents(\n\tbaseUrl: string,\n\tnames: string[],\n): Promise<ComponentManifest[]> {\n\tconst results = await Promise.allSettled(names.map((name) => fetchComponent(baseUrl, name)))\n\n\tconst components: ComponentManifest[] = []\n\tconst errors: string[] = []\n\n\tfor (const [i, result] of results.entries()) {\n\t\tif (result.status === \"fulfilled\") {\n\t\t\tcomponents.push(result.value)\n\t\t} else {\n\t\t\tconst name = names[i] ?? \"unknown\"\n\t\t\terrors.push(`${name}: ${result.reason.message}`)\n\t\t}\n\t}\n\n\tif (errors.length > 0) {\n\t\tthrow new NetworkError(`Failed to fetch components:\\n${errors.join(\"\\n\")}`)\n\t}\n\n\treturn components\n}\n\n/**\n * Check if a component exists in registry\n */\nexport async function componentExists(baseUrl: string, name: string): Promise<boolean> {\n\ttry {\n\t\tawait fetchComponent(baseUrl, name)\n\t\treturn true\n\t} catch {\n\t\treturn false\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
|
+
"/**\n * OpenCode.json Modifier\n * Handles reading, merging, and writing opencode.json configuration\n *\n * Key responsibilities:\n * - Add MCP server definitions\n * - Deep merge without clobbering user config\n */\n\nimport type { McpServer } from \"../schemas/registry.js\"\n\nexport interface OpencodeConfig {\n\t$schema?: string\n\tmcp?: Record<string, McpServerConfig>\n\ttools?: Record<string, boolean>\n\tagent?: Record<string, AgentConfig>\n\tdefault_agent?: string\n\t[key: string]: unknown\n}\n\nexport interface McpServerConfig {\n\ttype: \"remote\" | \"local\"\n\turl?: string\n\tcommand?: string[]\n\theaders?: Record<string, string>\n\tenabled?: boolean\n}\n\nexport interface AgentConfig {\n\tdisable?: boolean\n\ttools?: Record<string, boolean>\n\t[key: string]: unknown\n}\n\n/**\n * Read opencode.json or opencode.jsonc from a directory\n */\nexport async function readOpencodeConfig(cwd: string): Promise<{\n\tconfig: OpencodeConfig\n\tpath: string\n} | null> {\n\tconst jsonPath = `${cwd}/opencode.json`\n\tconst jsoncPath = `${cwd}/opencode.jsonc`\n\n\t// Try opencode.jsonc first, then opencode.json\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\t// Strip comments for JSONC\n\t\t\tconst stripped = configPath.endsWith(\".jsonc\") ? stripJsonComments(content) : content\n\t\t\treturn {\n\t\t\t\tconfig: JSON.parse(stripped) as OpencodeConfig,\n\t\t\t\tpath: configPath,\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null\n}\n\n/**\n * Write opencode.json config\n */\nexport async function writeOpencodeConfig(path: string, config: OpencodeConfig): Promise<void> {\n\tconst content = JSON.stringify(config, null, 2)\n\tawait Bun.write(path, content)\n}\n\n/**\n * Apply MCP servers to opencode config\n * Non-destructive: only adds new servers, doesn't overwrite existing\n */\nexport function applyMcpServers(\n\tconfig: OpencodeConfig,\n\tmcpServers: Record<string, McpServer>,\n): { config: OpencodeConfig; added: string[]; skipped: string[] } {\n\tconst added: string[] = []\n\tconst skipped: string[] = []\n\n\tif (!config.mcp) {\n\t\tconfig.mcp = {}\n\t}\n\n\tfor (const [name, server] of Object.entries(mcpServers)) {\n\t\tif (config.mcp[name]) {\n\t\t\t// Already exists, skip\n\t\t\tskipped.push(name)\n\t\t} else {\n\t\t\t// Add new server\n\t\t\tconst serverConfig: McpServerConfig = {\n\t\t\t\ttype: server.type,\n\t\t\t\tenabled: server.enabled,\n\t\t\t}\n\n\t\t\tif (server.type === \"remote\" && server.url) {\n\t\t\t\tserverConfig.url = server.url\n\t\t\t}\n\t\t\tif (server.type === \"local\" && server.command) {\n\t\t\t\tserverConfig.command = server.command\n\t\t\t}\n\t\t\tif (server.headers) {\n\t\t\t\tserverConfig.headers = server.headers\n\t\t\t}\n\n\t\t\tconfig.mcp[name] = serverConfig\n\t\t\tadded.push(name)\n\t\t}\n\t}\n\n\treturn { config, added, skipped }\n}\n\n/**\n * Strip JSON comments (simple implementation)\n */\nfunction stripJsonComments(content: string): string {\n\t// Remove single-line comments\n\tlet result = content.replace(/\\/\\/.*$/gm, \"\")\n\t// Remove multi-line comments\n\tresult = result.replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\")\n\treturn result\n}\n\n/**\n * Create or update opencode.json with required configuration\n */\nexport async function updateOpencodeConfig(\n\tcwd: string,\n\toptions: {\n\t\tmcpServers?: Record<string, McpServer>\n\t\tdefaultAgent?: string\n\t},\n): Promise<{\n\tpath: string\n\tcreated: boolean\n\tmcpAdded: string[]\n\tmcpSkipped: string[]\n}> {\n\tconst existing = await readOpencodeConfig(cwd)\n\tlet config: OpencodeConfig\n\tlet configPath: string\n\tlet created = false\n\n\tif (existing) {\n\t\tconfig = existing.config\n\t\tconfigPath = existing.path\n\t} else {\n\t\t// Create new config\n\t\tconfig = {\n\t\t\t$schema: \"https://opencode.ai/config.json\",\n\t\t}\n\t\tconfigPath = `${cwd}/opencode.json`\n\t\tcreated = true\n\t}\n\n\tlet mcpAdded: string[] = []\n\tlet mcpSkipped: string[] = []\n\n\t// Apply MCP servers\n\tif (options.mcpServers && Object.keys(options.mcpServers).length > 0) {\n\t\tconst result = applyMcpServers(config, options.mcpServers)\n\t\tconfig = result.config\n\t\tmcpAdded = result.added\n\t\tmcpSkipped = result.skipped\n\t}\n\n\t// Set default agent if provided and not already set\n\tif (options.defaultAgent && !config.default_agent) {\n\t\tconfig.default_agent = options.defaultAgent\n\t}\n\n\t// Write config\n\tawait writeOpencodeConfig(configPath, config)\n\n\treturn {\n\t\tpath: configPath,\n\t\tcreated,\n\t\tmcpAdded,\n\t\tmcpSkipped,\n\t}\n}\n",
|
|
27
|
+
"/**\n * Dependency Resolver with topological sort\n * Based on: https://github.com/shadcn-ui/ui/blob/main/packages/shadcn/src/registry/resolver.ts\n */\n\nimport type { RegistryConfig } from \"../schemas/config.js\"\nimport type { ComponentManifest, McpServer } from \"../schemas/registry.js\"\nimport { OCXError, ValidationError } from \"../utils/errors.js\"\nimport { fetchComponent } from \"./fetcher.js\"\n\nexport interface ResolvedComponent extends ComponentManifest {\n\tregistryName: string\n\tbaseUrl: string\n}\n\nexport interface ResolvedDependencies {\n\t/** All components in dependency order (dependencies first) */\n\tcomponents: ResolvedComponent[]\n\t/** Install order (component names) */\n\tinstallOrder: string[]\n\t/** Aggregated MCP servers from all components */\n\tmcpServers: Record<string, McpServer>\n}\n\n/**\n * Resolve all dependencies for a set of components across multiple registries\n * Returns components in topological order (dependencies first)\n */\nexport async function resolveDependencies(\n\tregistries: Record<string, RegistryConfig>,\n\tcomponentNames: string[],\n): Promise<ResolvedDependencies> {\n\tconst resolved = new Map<string, ResolvedComponent>()\n\tconst visiting = new Set<string>()\n\tconst mcpServers: Record<string, McpServer> = {}\n\n\tasync function resolve(name: string, path: string[] = []): Promise<void> {\n\t\t// Already resolved\n\t\tif (resolved.has(name)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Cycle detection\n\t\tif (visiting.has(name)) {\n\t\t\tconst cycle = [...path, name].join(\" → \")\n\t\t\tthrow new ValidationError(`Circular dependency detected: ${cycle}`)\n\t\t}\n\n\t\tvisiting.add(name)\n\n\t\t// Find component in any registry\n\t\tlet component: ComponentManifest | null = null\n\t\tlet foundRegistry: { name: string; url: string } | null = null\n\n\t\tconst registryEntries = Object.entries(registries)\n\n\t\tfor (const [regName, regConfig] of registryEntries) {\n\t\t\ttry {\n\t\t\t\tconst manifest = await fetchComponent(regConfig.url, name)\n\t\t\t\tcomponent = manifest\n\t\t\t\tfoundRegistry = { name: regName, url: regConfig.url }\n\t\t\t\tbreak\n\t\t\t} catch (_err) {}\n\t\t}\n\n\t\tif (!component || !foundRegistry) {\n\t\t\tthrow new OCXError(`Component '${name}' not found in any configured registry.`, \"NOT_FOUND\")\n\t\t}\n\n\t\t// Resolve dependencies first (depth-first)\n\t\tfor (const dep of component.dependencies) {\n\t\t\tawait resolve(dep, [...path, name])\n\t\t}\n\n\t\t// Add to resolved (dependencies are already added)\n\t\tresolved.set(name, {\n\t\t\t...component,\n\t\t\tregistryName: foundRegistry.name,\n\t\t\tbaseUrl: foundRegistry.url,\n\t\t})\n\t\tvisiting.delete(name)\n\n\t\t// Collect MCP servers\n\t\tif (component.mcpServers) {\n\t\t\tfor (const [serverName, config] of Object.entries(component.mcpServers)) {\n\t\t\t\tmcpServers[serverName] = config as McpServer\n\t\t\t}\n\t\t}\n\t}\n\n\t// Resolve all requested components\n\tfor (const name of componentNames) {\n\t\tawait resolve(name)\n\t}\n\n\t// Convert to array (already in topological order due to depth-first)\n\tconst components = Array.from(resolved.values())\n\tconst installOrder = Array.from(resolved.keys())\n\n\treturn {\n\t\tcomponents,\n\t\tinstallOrder,\n\t\tmcpServers,\n\t}\n}\n\n/**\n * Check if installing components would create conflicts\n */\nexport function checkConflicts(existing: string[], toInstall: string[]): string[] {\n\tconst conflicts: string[] = []\n\tconst existingSet = new Set(existing)\n\n\tfor (const name of toInstall) {\n\t\tif (existingSet.has(name)) {\n\t\t\tconflicts.push(name)\n\t\t}\n\t}\n\n\treturn conflicts\n}\n",
|
|
28
|
+
"/**\n * Config & Lockfile Schemas\n *\n * Schemas for ocx.jsonc (user config) and ocx.lock (auto-generated lockfile).\n */\n\nimport { z } from \"zod\"\nimport { mcpServerSchema } 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 */\nexport const installedComponentSchema = z.object({\n\t/** Registry 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 path where installed */\n\ttarget: z.string(),\n\n\t/** ISO timestamp of installation */\n\tinstalledAt: z.string(),\n})\n\nexport type InstalledComponent = z.infer<typeof installedComponentSchema>\n\n/**\n * OCX lockfile schema (ocx.lock)\n */\nexport const ocxLockSchema = z.object({\n\t/** Lockfile format version */\n\tlockVersion: z.literal(1),\n\n\t/** Installed components */\n\tinstalled: z.record(installedComponentSchema).default({}),\n})\n\nexport type OcxLock = z.infer<typeof ocxLockSchema>\n\n// =============================================================================\n// OPENCODE.JSON MODIFICATION SCHEMAS\n// =============================================================================\n\n/**\n * MCP server config for opencode.json\n */\nexport const opencodeMcpSchema = z.record(mcpServerSchema)\n\n/**\n * Agent config for opencode.json\n */\nexport const opencodeAgentSchema = z.object({\n\tdisable: z.boolean().optional(),\n\ttools: z.record(z.boolean()).optional(),\n})\n\n/**\n * Partial opencode.json schema (what OCX modifies)\n */\nexport const opencodeConfigPatchSchema = z.object({\n\t/** Default agent */\n\tdefault_agent: z.string().optional(),\n\n\t/** MCP servers */\n\tmcp: opencodeMcpSchema.optional(),\n\n\t/** Tool configuration */\n\ttools: z.record(z.boolean()).optional(),\n\n\t/** Agent configuration */\n\tagent: z.record(opencodeAgentSchema).optional(),\n})\n\nexport type OpencodeConfigPatch = z.infer<typeof opencodeConfigPatchSchema>\n\n// =============================================================================\n// SCHEMA INDEX\n// =============================================================================\n\nexport const schemas = {\n\tconfig: ocxConfigSchema,\n\tlock: ocxLockSchema,\n\tregistryConfig: registryConfigSchema,\n\tinstalledComponent: installedComponentSchema,\n\topencodeConfigPatch: opencodeConfigPatchSchema,\n} as const\n\n// =============================================================================\n// CONFIG FILE HELPERS\n// =============================================================================\n\nconst CONFIG_FILE = \"ocx.jsonc\"\nconst LOCK_FILE = \"ocx.lock\"\n\n/**\n * Strip JSONC comments for parsing.\n * Robust version that respects strings (avoids breaking URLs).\n */\nexport function stripJsonComments(content: string): string {\n\t// Regex that matches either a string, a block comment, or a line comment\n\t// We use this to correctly skip slashes inside strings\n\treturn content.replace(\n\t\t/(\"(?:[^\"\\\\]|\\\\.)*\")|(\\/\\*[\\s\\S]*?\\*\\/)|(\\/\\/.*)$/gm,\n\t\t(_match, string, _block, _line) => {\n\t\t\tif (string) return string // Return string as is\n\t\t\treturn \"\" // Remove comment\n\t\t},\n\t)\n}\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 = JSON.parse(stripJsonComments(content))\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 = JSON.parse(stripJsonComments(content))\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",
|
|
29
|
+
"/**\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\n/** Get terminal width, default to 80 */\nexport function getTerminalWidth(): number {\n\treturn process.stdout.columns || 80\n}\n",
|
|
28
30
|
"'use strict';\n\nlet FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;\nif (typeof process !== 'undefined') {\n\t({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});\n\tisTTY = process.stdout && process.stdout.isTTY;\n}\n\nconst $ = {\n\tenabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (\n\t\tFORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY\n\t),\n\n\t// modifiers\n\treset: init(0, 0),\n\tbold: init(1, 22),\n\tdim: init(2, 22),\n\titalic: init(3, 23),\n\tunderline: init(4, 24),\n\tinverse: init(7, 27),\n\thidden: init(8, 28),\n\tstrikethrough: init(9, 29),\n\n\t// colors\n\tblack: init(30, 39),\n\tred: init(31, 39),\n\tgreen: init(32, 39),\n\tyellow: init(33, 39),\n\tblue: init(34, 39),\n\tmagenta: init(35, 39),\n\tcyan: init(36, 39),\n\twhite: init(37, 39),\n\tgray: init(90, 39),\n\tgrey: init(90, 39),\n\n\t// background colors\n\tbgBlack: init(40, 49),\n\tbgRed: init(41, 49),\n\tbgGreen: init(42, 49),\n\tbgYellow: init(43, 49),\n\tbgBlue: init(44, 49),\n\tbgMagenta: init(45, 49),\n\tbgCyan: init(46, 49),\n\tbgWhite: init(47, 49)\n};\n\nfunction run(arr, str) {\n\tlet i=0, tmp, beg='', end='';\n\tfor (; i < arr.length; i++) {\n\t\ttmp = arr[i];\n\t\tbeg += tmp.open;\n\t\tend += tmp.close;\n\t\tif (!!~str.indexOf(tmp.close)) {\n\t\t\tstr = str.replace(tmp.rgx, tmp.close + tmp.open);\n\t\t}\n\t}\n\treturn beg + str + end;\n}\n\nfunction chain(has, keys) {\n\tlet ctx = { has, keys };\n\n\tctx.reset = $.reset.bind(ctx);\n\tctx.bold = $.bold.bind(ctx);\n\tctx.dim = $.dim.bind(ctx);\n\tctx.italic = $.italic.bind(ctx);\n\tctx.underline = $.underline.bind(ctx);\n\tctx.inverse = $.inverse.bind(ctx);\n\tctx.hidden = $.hidden.bind(ctx);\n\tctx.strikethrough = $.strikethrough.bind(ctx);\n\n\tctx.black = $.black.bind(ctx);\n\tctx.red = $.red.bind(ctx);\n\tctx.green = $.green.bind(ctx);\n\tctx.yellow = $.yellow.bind(ctx);\n\tctx.blue = $.blue.bind(ctx);\n\tctx.magenta = $.magenta.bind(ctx);\n\tctx.cyan = $.cyan.bind(ctx);\n\tctx.white = $.white.bind(ctx);\n\tctx.gray = $.gray.bind(ctx);\n\tctx.grey = $.grey.bind(ctx);\n\n\tctx.bgBlack = $.bgBlack.bind(ctx);\n\tctx.bgRed = $.bgRed.bind(ctx);\n\tctx.bgGreen = $.bgGreen.bind(ctx);\n\tctx.bgYellow = $.bgYellow.bind(ctx);\n\tctx.bgBlue = $.bgBlue.bind(ctx);\n\tctx.bgMagenta = $.bgMagenta.bind(ctx);\n\tctx.bgCyan = $.bgCyan.bind(ctx);\n\tctx.bgWhite = $.bgWhite.bind(ctx);\n\n\treturn ctx;\n}\n\nfunction init(open, close) {\n\tlet blk = {\n\t\topen: `\\x1b[${open}m`,\n\t\tclose: `\\x1b[${close}m`,\n\t\trgx: new RegExp(`\\\\x1b\\\\[${close}m`, 'g')\n\t};\n\treturn function (txt) {\n\t\tif (this !== void 0 && this.has !== void 0) {\n\t\t\t!!~this.has.indexOf(open) || (this.has.push(open),this.keys.push(blk));\n\t\t\treturn txt === void 0 ? this : $.enabled ? run(this.keys, txt+'') : txt+'';\n\t\t}\n\t\treturn txt === void 0 ? chain([open], [blk]) : $.enabled ? run([blk], txt+'') : txt+'';\n\t};\n}\n\nexport default $;\n",
|
|
29
31
|
"/**\n * Logger utility with quiet/verbose modes\n * Inspired by ShadCN's logger pattern\n */\n\nimport kleur from \"kleur\"\nimport { supportsColor } from \"./env\"\n\n// Disable colors if not supported\nif (!supportsColor) {\n\tkleur.enabled = false\n}\n\nexport interface LoggerOptions {\n\tquiet?: boolean\n\tverbose?: boolean\n}\n\nlet options: LoggerOptions = {}\n\nexport function setLoggerOptions(opts: LoggerOptions): void {\n\toptions = opts\n}\n\nexport const logger = {\n\tinfo(...args: unknown[]): void {\n\t\tif (options.quiet) return\n\t\tconsole.log(kleur.blue(\"info\"), ...args)\n\t},\n\n\tsuccess(...args: unknown[]): void {\n\t\tif (options.quiet) return\n\t\tconsole.log(kleur.green(\"✓\"), ...args)\n\t},\n\n\twarn(...args: unknown[]): void {\n\t\tif (options.quiet) return\n\t\tconsole.warn(kleur.yellow(\"warn\"), ...args)\n\t},\n\n\terror(...args: unknown[]): void {\n\t\t// Errors are always shown\n\t\tconsole.error(kleur.red(\"error\"), ...args)\n\t},\n\n\tdebug(...args: unknown[]): void {\n\t\tif (!options.verbose) return\n\t\tconsole.log(kleur.gray(\"debug\"), ...args)\n\t},\n\n\tlog(...args: unknown[]): void {\n\t\tif (options.quiet) return\n\t\tconsole.log(...args)\n\t},\n\n\t/** Print a blank line */\n\tbreak(): void {\n\t\tif (options.quiet) return\n\t\tconsole.log(\"\")\n\t},\n}\n\n/** Highlight text with color */\nexport const highlight = {\n\tcomponent: (text: string) => kleur.cyan(text),\n\tpath: (text: string) => kleur.green(text),\n\tcommand: (text: string) => kleur.yellow(text),\n\turl: (text: string) => kleur.blue().underline(text),\n\terror: (text: string) => kleur.red(text),\n\tdim: (text: string) => kleur.gray(text),\n\tbold: (text: string) => kleur.bold(text),\n}\n",
|
|
32
|
+
"/**\n * Error handler for CLI commands\n * Converts errors to user-friendly output with proper exit codes\n */\n\nimport { ZodError } from \"zod\"\n\nimport { EXIT_CODES, OCXError } from \"./errors\"\nimport { logger } from \"./logger\"\n\nexport interface HandleErrorOptions {\n\tjson?: boolean\n}\n\n/**\n * Handle errors consistently across all commands\n * Fail-fast: exit immediately with appropriate code\n */\nexport function handleError(error: unknown, options: HandleErrorOptions = {}): never {\n\t// JSON mode: structured output\n\tif (options.json) {\n\t\tconst output = formatErrorAsJson(error)\n\t\tconsole.log(JSON.stringify(output, null, 2))\n\t\tprocess.exit(output.exitCode)\n\t}\n\n\t// OCX errors: known errors with codes\n\tif (error instanceof OCXError) {\n\t\tlogger.error(error.message)\n\t\tprocess.exit(error.exitCode)\n\t}\n\n\t// Zod validation errors: format nicely\n\tif (error instanceof ZodError) {\n\t\tlogger.error(\"Validation failed:\")\n\t\tfor (const issue of error.issues) {\n\t\t\tconst path = issue.path.join(\".\")\n\t\t\tlogger.error(` ${path}: ${issue.message}`)\n\t\t}\n\t\tprocess.exit(EXIT_CODES.CONFIG)\n\t}\n\n\t// Unknown errors\n\tif (error instanceof Error) {\n\t\tlogger.error(error.message)\n\t\tif (process.env.DEBUG) {\n\t\t\tconsole.error(error.stack)\n\t\t}\n\t} else {\n\t\tlogger.error(\"An unknown error occurred\")\n\t}\n\n\tprocess.exit(EXIT_CODES.GENERAL)\n}\n\ninterface JsonErrorOutput {\n\tsuccess: false\n\terror: {\n\t\tcode: string\n\t\tmessage: string\n\t}\n\texitCode: number\n\tmeta: {\n\t\ttimestamp: string\n\t}\n}\n\nfunction formatErrorAsJson(error: unknown): JsonErrorOutput {\n\tif (error instanceof OCXError) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: {\n\t\t\t\tcode: error.code,\n\t\t\t\tmessage: error.message,\n\t\t\t},\n\t\t\texitCode: error.exitCode,\n\t\t\tmeta: {\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t},\n\t\t}\n\t}\n\n\tif (error instanceof ZodError) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: {\n\t\t\t\tcode: \"VALIDATION_ERROR\",\n\t\t\t\tmessage: error.issues.map((i) => `${i.path.join(\".\")}: ${i.message}`).join(\"; \"),\n\t\t\t},\n\t\t\texitCode: EXIT_CODES.CONFIG,\n\t\t\tmeta: {\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t},\n\t\t}\n\t}\n\n\treturn {\n\t\tsuccess: false,\n\t\terror: {\n\t\t\tcode: \"UNKNOWN_ERROR\",\n\t\t\tmessage: error instanceof Error ? error.message : \"An unknown error occurred\",\n\t\t},\n\t\texitCode: EXIT_CODES.GENERAL,\n\t\tmeta: {\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t},\n\t}\n}\n",
|
|
33
|
+
"/**\n * JSON output utilities for CI/CD integration\n * Following GitHub CLI patterns for consistent --json flag handling\n */\n\nimport { type ErrorCode, EXIT_CODES, OCXError } from \"./errors.js\"\n\n// JSON response envelope\nexport interface JsonResponse<T = unknown> {\n\tsuccess: boolean\n\tdata?: T\n\terror?: {\n\t\tcode: ErrorCode\n\t\tmessage: string\n\t}\n\tmeta?: {\n\t\ttimestamp: string\n\t\tversion: string\n\t}\n}\n\n// Global JSON mode state\nlet jsonMode = false\n\nexport function setJsonMode(enabled: boolean): void {\n\tjsonMode = enabled\n}\n\nexport function isJsonMode(): boolean {\n\treturn jsonMode\n}\n\n/**\n * Output data as JSON\n */\nexport function outputJson(data: unknown): void {\n\tconsole.log(JSON.stringify(data, null, 2))\n}\n\n/**\n * Output success response\n */\nexport function outputSuccess<T>(data: T): void {\n\tconst response: JsonResponse<T> = {\n\t\tsuccess: true,\n\t\tdata,\n\t\tmeta: {\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tversion: \"0.1.0\",\n\t\t},\n\t}\n\toutputJson(response)\n}\n\n/**\n * Output error response\n */\nexport function outputError(code: ErrorCode, message: string): void {\n\tconst response: JsonResponse = {\n\t\tsuccess: false,\n\t\terror: { code, message },\n\t\tmeta: {\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tversion: \"0.1.0\",\n\t\t},\n\t}\n\toutputJson(response)\n}\n\n/**\n * Get exit code for error code\n */\nexport function getExitCode(code: ErrorCode): number {\n\tswitch (code) {\n\t\tcase \"NOT_FOUND\":\n\t\t\treturn EXIT_CODES.NOT_FOUND\n\t\tcase \"NETWORK_ERROR\":\n\t\t\treturn EXIT_CODES.NETWORK\n\t\tcase \"CONFIG_ERROR\":\n\t\tcase \"VALIDATION_ERROR\":\n\t\t\treturn EXIT_CODES.CONFIG\n\t\tdefault:\n\t\t\treturn EXIT_CODES.GENERAL\n\t}\n}\n\n/**\n * Wrap a command handler to support JSON output mode\n */\nexport function withJsonOutput<T extends (...args: unknown[]) => Promise<void>>(handler: T): T {\n\treturn (async (...args: unknown[]) => {\n\t\ttry {\n\t\t\tawait handler(...args)\n\t\t} catch (error) {\n\t\t\tif (isJsonMode()) {\n\t\t\t\tif (error instanceof OCXError) {\n\t\t\t\t\toutputError(error.code, error.message)\n\t\t\t\t\tprocess.exit(error.exitCode)\n\t\t\t\t}\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error)\n\t\t\t\toutputError(\"VALIDATION_ERROR\", message)\n\t\t\t\tprocess.exit(EXIT_CODES.GENERAL)\n\t\t\t}\n\t\t\tthrow error\n\t\t}\n\t}) as T\n}\n",
|
|
30
34
|
"import process from 'node:process';\nimport chalk from 'chalk';\nimport cliCursor from 'cli-cursor';\nimport cliSpinners from 'cli-spinners';\nimport logSymbols from 'log-symbols';\nimport stripAnsi from 'strip-ansi';\nimport stringWidth from 'string-width';\nimport isInteractive from 'is-interactive';\nimport isUnicodeSupported from 'is-unicode-supported';\nimport stdinDiscarder from 'stdin-discarder';\n\nclass Ora {\n\t#linesToClear = 0;\n\t#isDiscardingStdin = false;\n\t#lineCount = 0;\n\t#frameIndex = -1;\n\t#lastSpinnerFrameTime = 0;\n\t#options;\n\t#spinner;\n\t#stream;\n\t#id;\n\t#initialInterval;\n\t#isEnabled;\n\t#isSilent;\n\t#indent;\n\t#text;\n\t#prefixText;\n\t#suffixText;\n\tcolor;\n\n\tconstructor(options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions = {\n\t\t\t\ttext: options,\n\t\t\t};\n\t\t}\n\n\t\tthis.#options = {\n\t\t\tcolor: 'cyan',\n\t\t\tstream: process.stderr,\n\t\t\tdiscardStdin: true,\n\t\t\thideCursor: true,\n\t\t\t...options,\n\t\t};\n\n\t\t// Public\n\t\tthis.color = this.#options.color;\n\n\t\t// It's important that these use the public setters.\n\t\tthis.spinner = this.#options.spinner;\n\n\t\tthis.#initialInterval = this.#options.interval;\n\t\tthis.#stream = this.#options.stream;\n\t\tthis.#isEnabled = typeof this.#options.isEnabled === 'boolean' ? this.#options.isEnabled : isInteractive({stream: this.#stream});\n\t\tthis.#isSilent = typeof this.#options.isSilent === 'boolean' ? this.#options.isSilent : false;\n\n\t\t// Set *after* `this.#stream`.\n\t\t// It's important that these use the public setters.\n\t\tthis.text = this.#options.text;\n\t\tthis.prefixText = this.#options.prefixText;\n\t\tthis.suffixText = this.#options.suffixText;\n\t\tthis.indent = this.#options.indent;\n\n\t\tif (process.env.NODE_ENV === 'test') {\n\t\t\tthis._stream = this.#stream;\n\t\t\tthis._isEnabled = this.#isEnabled;\n\n\t\t\tObject.defineProperty(this, '_linesToClear', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#linesToClear;\n\t\t\t\t},\n\t\t\t\tset(newValue) {\n\t\t\t\t\tthis.#linesToClear = newValue;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_frameIndex', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#frameIndex;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_lineCount', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#lineCount;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tget indent() {\n\t\treturn this.#indent;\n\t}\n\n\tset indent(indent = 0) {\n\t\tif (!(indent >= 0 && Number.isInteger(indent))) {\n\t\t\tthrow new Error('The `indent` option must be an integer from 0 and up');\n\t\t}\n\n\t\tthis.#indent = indent;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget interval() {\n\t\treturn this.#initialInterval ?? this.#spinner.interval ?? 100;\n\t}\n\n\tget spinner() {\n\t\treturn this.#spinner;\n\t}\n\n\tset spinner(spinner) {\n\t\tthis.#frameIndex = -1;\n\t\tthis.#initialInterval = undefined;\n\n\t\tif (typeof spinner === 'object') {\n\t\t\tif (spinner.frames === undefined) {\n\t\t\t\tthrow new Error('The given spinner must have a `frames` property');\n\t\t\t}\n\n\t\t\tthis.#spinner = spinner;\n\t\t} else if (!isUnicodeSupported()) {\n\t\t\tthis.#spinner = cliSpinners.line;\n\t\t} else if (spinner === undefined) {\n\t\t\t// Set default spinner\n\t\t\tthis.#spinner = cliSpinners.dots;\n\t\t} else if (spinner !== 'default' && cliSpinners[spinner]) {\n\t\t\tthis.#spinner = cliSpinners[spinner];\n\t\t} else {\n\t\t\tthrow new Error(`There is no built-in spinner named '${spinner}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);\n\t\t}\n\t}\n\n\tget text() {\n\t\treturn this.#text;\n\t}\n\n\tset text(value = '') {\n\t\tthis.#text = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget prefixText() {\n\t\treturn this.#prefixText;\n\t}\n\n\tset prefixText(value = '') {\n\t\tthis.#prefixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget suffixText() {\n\t\treturn this.#suffixText;\n\t}\n\n\tset suffixText(value = '') {\n\t\tthis.#suffixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget isSpinning() {\n\t\treturn this.#id !== undefined;\n\t}\n\n\t#getFullPrefixText(prefixText = this.#prefixText, postfix = ' ') {\n\t\tif (typeof prefixText === 'string' && prefixText !== '') {\n\t\t\treturn prefixText + postfix;\n\t\t}\n\n\t\tif (typeof prefixText === 'function') {\n\t\t\treturn prefixText() + postfix;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#getFullSuffixText(suffixText = this.#suffixText, prefix = ' ') {\n\t\tif (typeof suffixText === 'string' && suffixText !== '') {\n\t\t\treturn prefix + suffixText;\n\t\t}\n\n\t\tif (typeof suffixText === 'function') {\n\t\t\treturn prefix + suffixText();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#updateLineCount() {\n\t\tconst columns = this.#stream.columns ?? 80;\n\t\tconst fullPrefixText = this.#getFullPrefixText(this.#prefixText, '-');\n\t\tconst fullSuffixText = this.#getFullSuffixText(this.#suffixText, '-');\n\t\tconst fullText = ' '.repeat(this.#indent) + fullPrefixText + '--' + this.#text + '--' + fullSuffixText;\n\n\t\tthis.#lineCount = 0;\n\t\tfor (const line of stripAnsi(fullText).split('\\n')) {\n\t\t\tthis.#lineCount += Math.max(1, Math.ceil(stringWidth(line, {countAnsiEscapeCodes: true}) / columns));\n\t\t}\n\t}\n\n\tget isEnabled() {\n\t\treturn this.#isEnabled && !this.#isSilent;\n\t}\n\n\tset isEnabled(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isEnabled` option must be a boolean');\n\t\t}\n\n\t\tthis.#isEnabled = value;\n\t}\n\n\tget isSilent() {\n\t\treturn this.#isSilent;\n\t}\n\n\tset isSilent(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isSilent` option must be a boolean');\n\t\t}\n\n\t\tthis.#isSilent = value;\n\t}\n\n\tframe() {\n\t\t// Ensure we only update the spinner frame at the wanted interval,\n\t\t// even if the render method is called more often.\n\t\tconst now = Date.now();\n\t\tif (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {\n\t\t\tthis.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;\n\t\t\tthis.#lastSpinnerFrameTime = now;\n\t\t}\n\n\t\tconst {frames} = this.#spinner;\n\t\tlet frame = frames[this.#frameIndex];\n\n\t\tif (this.color) {\n\t\t\tframe = chalk[this.color](frame);\n\t\t}\n\n\t\tconst fullPrefixText = (typeof this.#prefixText === 'string' && this.#prefixText !== '') ? this.#prefixText + ' ' : '';\n\t\tconst fullText = typeof this.text === 'string' ? ' ' + this.text : '';\n\t\tconst fullSuffixText = (typeof this.#suffixText === 'string' && this.#suffixText !== '') ? ' ' + this.#suffixText : '';\n\n\t\treturn fullPrefixText + frame + fullText + fullSuffixText;\n\t}\n\n\tclear() {\n\t\tif (!this.#isEnabled || !this.#stream.isTTY) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.#stream.cursorTo(0);\n\n\t\tfor (let index = 0; index < this.#linesToClear; index++) {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.#stream.moveCursor(0, -1);\n\t\t\t}\n\n\t\t\tthis.#stream.clearLine(1);\n\t\t}\n\n\t\tif (this.#indent || this.lastIndent !== this.#indent) {\n\t\t\tthis.#stream.cursorTo(this.#indent);\n\t\t}\n\n\t\tthis.lastIndent = this.#indent;\n\t\tthis.#linesToClear = 0;\n\n\t\treturn this;\n\t}\n\n\trender() {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.clear();\n\t\tthis.#stream.write(this.frame());\n\t\tthis.#linesToClear = this.#lineCount;\n\n\t\treturn this;\n\t}\n\n\tstart(text) {\n\t\tif (text) {\n\t\t\tthis.text = text;\n\t\t}\n\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.#isEnabled) {\n\t\t\tif (this.text) {\n\t\t\t\tthis.#stream.write(`- ${this.text}\\n`);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.isSpinning) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.hide(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY) {\n\t\t\tthis.#isDiscardingStdin = true;\n\t\t\tstdinDiscarder.start();\n\t\t}\n\n\t\tthis.render();\n\t\tthis.#id = setInterval(this.render.bind(this), this.interval);\n\n\t\treturn this;\n\t}\n\n\tstop() {\n\t\tif (!this.#isEnabled) {\n\t\t\treturn this;\n\t\t}\n\n\t\tclearInterval(this.#id);\n\t\tthis.#id = undefined;\n\t\tthis.#frameIndex = 0;\n\t\tthis.clear();\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.show(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY && this.#isDiscardingStdin) {\n\t\t\tstdinDiscarder.stop();\n\t\t\tthis.#isDiscardingStdin = false;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsucceed(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.success, text});\n\t}\n\n\tfail(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.error, text});\n\t}\n\n\twarn(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.warning, text});\n\t}\n\n\tinfo(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.info, text});\n\t}\n\n\tstopAndPersist(options = {}) {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst prefixText = options.prefixText ?? this.#prefixText;\n\t\tconst fullPrefixText = this.#getFullPrefixText(prefixText, ' ');\n\n\t\tconst symbolText = options.symbol ?? ' ';\n\n\t\tconst text = options.text ?? this.text;\n\t\tconst separatorText = symbolText ? ' ' : '';\n\t\tconst fullText = (typeof text === 'string') ? separatorText + text : '';\n\n\t\tconst suffixText = options.suffixText ?? this.#suffixText;\n\t\tconst fullSuffixText = this.#getFullSuffixText(suffixText, ' ');\n\n\t\tconst textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + '\\n';\n\n\t\tthis.stop();\n\t\tthis.#stream.write(textToWrite);\n\n\t\treturn this;\n\t}\n}\n\nexport default function ora(options) {\n\treturn new Ora(options);\n}\n\nexport async function oraPromise(action, options) {\n\tconst actionIsFunction = typeof action === 'function';\n\tconst actionIsPromise = typeof action.then === 'function';\n\n\tif (!actionIsFunction && !actionIsPromise) {\n\t\tthrow new TypeError('Parameter `action` must be a Function or a Promise');\n\t}\n\n\tconst {successText, failText} = typeof options === 'object'\n\t\t? options\n\t\t: {successText: undefined, failText: undefined};\n\n\tconst spinner = ora(options).start();\n\n\ttry {\n\t\tconst promise = actionIsFunction ? action(spinner) : action;\n\t\tconst result = await promise;\n\n\t\tspinner.succeed(\n\t\t\tsuccessText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof successText === 'string' ? successText : successText(result)),\n\t\t);\n\n\t\treturn result;\n\t} catch (error) {\n\t\tspinner.fail(\n\t\t\tfailText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof failText === 'string' ? failText : failText(error)),\n\t\t);\n\n\t\tthrow error;\n\t}\n}\n\nexport {default as spinners} from 'cli-spinners';\n",
|
|
31
35
|
"const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n",
|
|
32
36
|
"import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n",
|
|
@@ -49,13 +53,8 @@
|
|
|
49
53
|
"export default function isInteractive({stream = process.stdout} = {}) {\n\treturn Boolean(\n\t\tstream && stream.isTTY &&\n\t\tprocess.env.TERM !== 'dumb' &&\n\t\t!('CI' in process.env)\n\t);\n}\n",
|
|
50
54
|
"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",
|
|
51
55
|
"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",
|
|
52
|
-
"/**\n * Spinner utility for async operations\n * Uses ora, disabled in CI/non-TTY environments\n */\n\nimport ora, { type Ora } from \"ora\"\nimport {
|
|
53
|
-
"/**\n *
|
|
54
|
-
"/**\n * JSON output utilities for CI/CD integration\n * Following GitHub CLI patterns for consistent --json flag handling\n */\n\nimport { type ErrorCode, EXIT_CODES, OCXError } from \"./errors.js\"\n\n// JSON response envelope\nexport interface JsonResponse<T = unknown> {\n\tsuccess: boolean\n\tdata?: T\n\terror?: {\n\t\tcode: ErrorCode\n\t\tmessage: string\n\t}\n\tmeta?: {\n\t\ttimestamp: string\n\t\tversion: string\n\t}\n}\n\n// Global JSON mode state\nlet jsonMode = false\n\nexport function setJsonMode(enabled: boolean): void {\n\tjsonMode = enabled\n}\n\nexport function isJsonMode(): boolean {\n\treturn jsonMode\n}\n\n/**\n * Output data as JSON\n */\nexport function outputJson(data: any): void {\n\tconsole.log(JSON.stringify(data, null, 2))\n}\n\n/**\n * Output success response\n */\nexport function outputSuccess<T>(data: T): void {\n\tconst response: JsonResponse<T> = {\n\t\tsuccess: true,\n\t\tdata,\n\t\tmeta: {\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tversion: \"0.1.0\",\n\t\t},\n\t}\n\toutputJson(response)\n}\n\n/**\n * Output error response\n */\nexport function outputError(code: ErrorCode, message: string): void {\n\tconst response: JsonResponse = {\n\t\tsuccess: false,\n\t\terror: { code, message },\n\t\tmeta: {\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tversion: \"0.1.0\",\n\t\t},\n\t}\n\toutputJson(response)\n}\n\n/**\n * Get exit code for error code\n */\nexport function getExitCode(code: ErrorCode): number {\n\tswitch (code) {\n\t\tcase \"NOT_FOUND\":\n\t\t\treturn EXIT_CODES.NOT_FOUND\n\t\tcase \"NETWORK_ERROR\":\n\t\t\treturn EXIT_CODES.NETWORK\n\t\tcase \"CONFIG_ERROR\":\n\t\tcase \"VALIDATION_ERROR\":\n\t\t\treturn EXIT_CODES.CONFIG\n\t\tdefault:\n\t\t\treturn EXIT_CODES.GENERAL\n\t}\n}\n\n/**\n * Wrap a command handler to support JSON output mode\n */\nexport function withJsonOutput<T extends (...args: unknown[]) => Promise<void>>(handler: T): T {\n\treturn (async (...args: unknown[]) => {\n\t\ttry {\n\t\t\tawait handler(...args)\n\t\t} catch (error) {\n\t\t\tif (isJsonMode()) {\n\t\t\t\tif (error instanceof OCXError) {\n\t\t\t\t\toutputError(error.code, error.message)\n\t\t\t\t\tprocess.exit(error.exitCode)\n\t\t\t\t}\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error)\n\t\t\t\toutputError(\"VALIDATION_ERROR\", message)\n\t\t\t\tprocess.exit(EXIT_CODES.GENERAL)\n\t\t\t}\n\t\t\tthrow error\n\t\t}\n\t}) as T\n}\n",
|
|
55
|
-
"/**\n * OCX CLI - add command\n * Install components from registries\n */\n\nimport { existsSync } from \"node:fs\"\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\"\nimport { dirname, join } from \"node:path\"\nimport { createHash } from \"node:crypto\"\nimport type { Command } from \"commander\"\nimport { ocxConfigSchema, ocxLockSchema, type OcxLock } from \"../schemas/config.js\"\nimport type { ComponentManifest } from \"../schemas/registry.js\"\nimport { fetchRegistryIndex, fetchFileContent } from \"../registry/fetcher.js\"\nimport { resolveDependencies, type ResolvedDependencies } from \"../registry/resolver.js\"\nimport { updateOpencodeConfig } from \"../registry/opencode-config.js\"\nimport { logger, createSpinner, handleError } from \"../utils/index.js\"\nimport { ConfigError, IntegrityError } from \"../utils/errors.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 configPath = join(cwd, \"ocx.jsonc\")\n\tconst lockPath = join(cwd, \"ocx.lock\")\n\n\t// Load config\n\tif (!existsSync(configPath)) {\n\t\tthrow new ConfigError(\"No ocx.jsonc found. Run 'ocx init' first.\")\n\t}\n\n\tconst configContent = await readFile(configPath, \"utf-8\")\n\tconst config = ocxConfigSchema.parse(JSON.parse(configContent))\n\n\t// Load or create lock\n\tlet lock: OcxLock = { lockVersion: 1, installed: {} }\n\tif (existsSync(lockPath)) {\n\t\tconst lockContent = await readFile(lockPath, \"utf-8\")\n\t\tlock = ocxLockSchema.parse(JSON.parse(lockContent))\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// Install components\n\t\tconst installSpin = options.quiet ? null : createSpinner({ text: \"Installing components...\" })\n\t\tinstallSpin?.start()\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\n\t\t\tconst existingEntry = lock.installed[component.name]\n\t\t\tif (existingEntry && existingEntry.hash !== computedHash) {\n\t\t\t\tthrow new IntegrityError(component.name, existingEntry.hash, computedHash)\n\t\t\t}\n\n\t\t\t// Install components\n\t\t\tawait installComponent(component, files, cwd)\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\n\t\t\tlock.installed[component.name] = {\n\t\t\t\tregistry: component.registryName,\n\t\t\t\tversion: index.version,\n\t\t\t\thash: computedHash,\n\t\t\t\ttarget: getTargetPath(component),\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\n\t\tif (Object.keys(resolved.mcpServers).length > 0) {\n\t\t\tconst result = await updateOpencodeConfig(cwd, {\n\t\t\t\tmcpServers: resolved.mcpServers,\n\t\t\t})\n\n\t\t\tif (result.mcpSkipped.length > 0 && !options.quiet) {\n\t\t\t\tfor (const name of result.mcpSkipped) {\n\t\t\t\t\tlogger.warn(`MCP server \"${name}\" already configured, skipped`)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!options.quiet && result.mcpAdded.length > 0) {\n\t\t\t\tlogger.info(`Configured ${result.mcpAdded.length} MCP servers`)\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\tmcpServers: Object.keys(resolved.mcpServers),\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\tspin?.fail(\"Failed to resolve dependencies\")\n\t\tthrow error\n\t}\n}\n\nasync function installComponent(\n\tcomponent: ComponentManifest,\n\tfiles: { path: string; content: Buffer }[],\n\tcwd: string,\n): Promise<void> {\n\tfor (const file of files) {\n\t\tconst componentFile = component.files.find((f) => 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// 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\nfunction getTargetPath(component: ComponentManifest): string {\n\treturn component.files[0]?.target ?? `.opencode/${component.type}/${component.name}`\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 (Object.keys(resolved.mcpServers).length > 0) {\n\t\tlogger.info(\"\")\n\t\tlogger.info(\"Would configure MCP servers:\")\n\t\tfor (const name of Object.keys(resolved.mcpServers)) {\n\t\t\tlogger.info(` ${name}`)\n\t\t}\n\t}\n}\n",
|
|
56
|
-
"/**\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, RegistryIndex, McpServer, Packument } from \"../schemas/registry.js\"\nimport {\n\tcomponentManifestSchema,\n\tregistryIndexSchema,\n\tpackumentSchema,\n} from \"../schemas/registry.js\"\nimport { NotFoundError, NetworkError, 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 * Clear the fetch cache\n */\nexport function clearCache(): void {\n\tcache.clear()\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 url = `${baseUrl.replace(/\\/$/, \"\")}/components/${name}.json`\n\n\treturn fetchWithCache(url, (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\t\tconst latestVersion = packument[\"dist-tags\"].latest\n\t\tconst manifest = packument.versions[latestVersion]\n\n\t\tif (!manifest) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`Component \"${name}\" has no manifest for latest version ${latestVersion}`,\n\t\t\t)\n\t\t}\n\n\t\t// 2. 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}@${latestVersion}\": ${manifestResult.error.message}`,\n\t\t\t)\n\t\t}\n\n\t\treturn manifestResult.data\n\t})\n}\n\n/**\n * Fetch multiple components in parallel\n */\nexport async function fetchComponents(\n\tbaseUrl: string,\n\tnames: string[],\n): Promise<ComponentManifest[]> {\n\tconst results = await Promise.allSettled(names.map((name) => fetchComponent(baseUrl, name)))\n\n\tconst components: ComponentManifest[] = []\n\tconst errors: string[] = []\n\n\tfor (let i = 0; i < results.length; i++) {\n\t\tconst result = results[i]\n\t\tif (result.status === \"fulfilled\") {\n\t\t\tcomponents.push(result.value)\n\t\t} else {\n\t\t\terrors.push(`${names[i]}: ${result.reason.message}`)\n\t\t}\n\t}\n\n\tif (errors.length > 0) {\n\t\tthrow new NetworkError(`Failed to fetch components:\\n${errors.join(\"\\n\")}`)\n\t}\n\n\treturn components\n}\n\n/**\n * Check if a component exists in registry\n */\nexport async function componentExists(baseUrl: string, name: string): Promise<boolean> {\n\ttry {\n\t\tawait fetchComponent(baseUrl, name)\n\t\treturn true\n\t} catch {\n\t\treturn false\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",
|
|
57
|
-
"/**\n * Dependency Resolver with topological sort\n * Based on: https://github.com/shadcn-ui/ui/blob/main/packages/shadcn/src/registry/resolver.ts\n */\n\nimport type { ComponentManifest, McpServer } from \"../schemas/registry.js\"\nimport { fetchComponent } from \"./fetcher.js\"\nimport { ValidationError, OCXError } from \"../utils/errors.js\"\nimport type { RegistryConfig } from \"../schemas/config.js\"\n\nexport interface ResolvedComponent extends ComponentManifest {\n\tregistryName: string\n\tbaseUrl: string\n}\n\nexport interface ResolvedDependencies {\n\t/** All components in dependency order (dependencies first) */\n\tcomponents: ResolvedComponent[]\n\t/** Install order (component names) */\n\tinstallOrder: string[]\n\t/** Aggregated MCP servers from all components */\n\tmcpServers: Record<string, McpServer>\n}\n\n/**\n * Resolve all dependencies for a set of components across multiple registries\n * Returns components in topological order (dependencies first)\n */\nexport async function resolveDependencies(\n\tregistries: Record<string, RegistryConfig>,\n\tcomponentNames: string[],\n): Promise<ResolvedDependencies> {\n\tconst resolved = new Map<string, ResolvedComponent>()\n\tconst visiting = new Set<string>()\n\tconst mcpServers: Record<string, McpServer> = {}\n\n\tasync function resolve(name: string, path: string[] = []): Promise<void> {\n\t\t// Already resolved\n\t\tif (resolved.has(name)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Cycle detection\n\t\tif (visiting.has(name)) {\n\t\t\tconst cycle = [...path, name].join(\" → \")\n\t\t\tthrow new ValidationError(`Circular dependency detected: ${cycle}`)\n\t\t}\n\n\t\tvisiting.add(name)\n\n\t\t// Find component in any registry\n\t\tlet component: ComponentManifest | null = null\n\t\tlet foundRegistry: { name: string; url: string } | null = null\n\n\t\tconst registryEntries = Object.entries(registries)\n\t\t\n\t\tfor (const [regName, regConfig] of registryEntries) {\n\t\t\ttry {\n\t\t\t\tconst manifest = await fetchComponent(regConfig.url, name)\n\t\t\t\tcomponent = manifest\n\t\t\t\tfoundRegistry = { name: regName, url: regConfig.url }\n\t\t\t\tbreak\n\t\t\t} catch (_err) {\n\t\t\t\t// Component not in this registry, try next\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif (!component || !foundRegistry) {\n\t\t\tthrow new OCXError(\n\t\t\t\t`Component '${name}' not found in any configured registry.`,\n\t\t\t\t\"NOT_FOUND\",\n\t\t\t)\n\t\t}\n\n\t\t// Resolve dependencies first (depth-first)\n\t\tfor (const dep of component.dependencies) {\n\t\t\tawait resolve(dep, [...path, name])\n\t\t}\n\n\t\t// Add to resolved (dependencies are already added)\n\t\tresolved.set(name, {\n\t\t\t...component,\n\t\t\tregistryName: foundRegistry.name,\n\t\t\tbaseUrl: foundRegistry.url,\n\t\t})\n\t\tvisiting.delete(name)\n\n\t\t// Collect MCP servers\n\t\tif (component.mcpServers) {\n\t\t\tfor (const [serverName, config] of Object.entries(component.mcpServers)) {\n\t\t\t\tmcpServers[serverName] = config as McpServer\n\t\t\t}\n\t\t}\n\t}\n\n\t// Resolve all requested components\n\tfor (const name of componentNames) {\n\t\tawait resolve(name)\n\t}\n\n\t// Convert to array (already in topological order due to depth-first)\n\tconst components = Array.from(resolved.values())\n\tconst installOrder = Array.from(resolved.keys())\n\n\treturn {\n\t\tcomponents,\n\t\tinstallOrder,\n\t\tmcpServers,\n\t}\n}\n\n/**\n * Check if installing components would create conflicts\n */\nexport function checkConflicts(existing: string[], toInstall: string[]): string[] {\n\tconst conflicts: string[] = []\n\tconst existingSet = new Set(existing)\n\n\tfor (const name of toInstall) {\n\t\tif (existingSet.has(name)) {\n\t\t\tconflicts.push(name)\n\t\t}\n\t}\n\n\treturn conflicts\n}\n",
|
|
58
|
-
"/**\n * OpenCode.json Modifier\n * Handles reading, merging, and writing opencode.json configuration\n *\n * Key responsibilities:\n * - Add MCP server definitions\n * - Deep merge without clobbering user config\n */\n\nimport type { McpServer } from \"../schemas/registry.js\"\n\nexport interface OpencodeConfig {\n\t$schema?: string\n\tmcp?: Record<string, McpServerConfig>\n\ttools?: Record<string, boolean>\n\tagent?: Record<string, AgentConfig>\n\tdefault_agent?: string\n\t[key: string]: unknown\n}\n\nexport interface McpServerConfig {\n\ttype: \"remote\" | \"local\"\n\turl?: string\n\tcommand?: string[]\n\theaders?: Record<string, string>\n\tenabled?: boolean\n}\n\nexport interface AgentConfig {\n\tdisable?: boolean\n\ttools?: Record<string, boolean>\n\t[key: string]: unknown\n}\n\n/**\n * Read opencode.json or opencode.jsonc from a directory\n */\nexport async function readOpencodeConfig(cwd: string): Promise<{\n\tconfig: OpencodeConfig\n\tpath: string\n} | null> {\n\tconst jsonPath = `${cwd}/opencode.json`\n\tconst jsoncPath = `${cwd}/opencode.jsonc`\n\n\t// Try opencode.jsonc first, then opencode.json\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\t// Strip comments for JSONC\n\t\t\tconst stripped = configPath.endsWith(\".jsonc\") ? stripJsonComments(content) : content\n\t\t\treturn {\n\t\t\t\tconfig: JSON.parse(stripped) as OpencodeConfig,\n\t\t\t\tpath: configPath,\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null\n}\n\n/**\n * Write opencode.json config\n */\nexport async function writeOpencodeConfig(path: string, config: OpencodeConfig): Promise<void> {\n\tconst content = JSON.stringify(config, null, 2)\n\tawait Bun.write(path, content)\n}\n\n/**\n * Apply MCP servers to opencode config\n * Non-destructive: only adds new servers, doesn't overwrite existing\n */\nexport function applyMcpServers(\n\tconfig: OpencodeConfig,\n\tmcpServers: Record<string, McpServer>,\n): { config: OpencodeConfig; added: string[]; skipped: string[] } {\n\tconst added: string[] = []\n\tconst skipped: string[] = []\n\n\tif (!config.mcp) {\n\t\tconfig.mcp = {}\n\t}\n\n\tfor (const [name, server] of Object.entries(mcpServers)) {\n\t\tif (config.mcp[name]) {\n\t\t\t// Already exists, skip\n\t\t\tskipped.push(name)\n\t\t} else {\n\t\t\t// Add new server\n\t\t\tconst serverConfig: McpServerConfig = {\n\t\t\t\ttype: server.type,\n\t\t\t\tenabled: server.enabled,\n\t\t\t}\n\n\t\t\tif (server.type === \"remote\" && server.url) {\n\t\t\t\tserverConfig.url = server.url\n\t\t\t}\n\t\t\tif (server.type === \"local\" && server.command) {\n\t\t\t\tserverConfig.command = server.command\n\t\t\t}\n\t\t\tif (server.headers) {\n\t\t\t\tserverConfig.headers = server.headers\n\t\t\t}\n\n\t\t\tconfig.mcp[name] = serverConfig\n\t\t\tadded.push(name)\n\t\t}\n\t}\n\n\treturn { config, added, skipped }\n}\n\n/**\n * Strip JSON comments (simple implementation)\n */\nfunction stripJsonComments(content: string): string {\n\t// Remove single-line comments\n\tlet result = content.replace(/\\/\\/.*$/gm, \"\")\n\t// Remove multi-line comments\n\tresult = result.replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\")\n\treturn result\n}\n\n/**\n * Create or update opencode.json with required configuration\n */\nexport async function updateOpencodeConfig(\n\tcwd: string,\n\toptions: {\n\t\tmcpServers?: Record<string, McpServer>\n\t\tdefaultAgent?: string\n\t},\n): Promise<{\n\tpath: string\n\tcreated: boolean\n\tmcpAdded: string[]\n\tmcpSkipped: string[]\n}> {\n\tlet existing = await readOpencodeConfig(cwd)\n\tlet config: OpencodeConfig\n\tlet configPath: string\n\tlet created = false\n\n\tif (existing) {\n\t\tconfig = existing.config\n\t\tconfigPath = existing.path\n\t} else {\n\t\t// Create new config\n\t\tconfig = {\n\t\t\t$schema: \"https://opencode.ai/config.json\",\n\t\t}\n\t\tconfigPath = `${cwd}/opencode.json`\n\t\tcreated = true\n\t}\n\n\tlet mcpAdded: string[] = []\n\tlet mcpSkipped: string[] = []\n\n\t// Apply MCP servers\n\tif (options.mcpServers && Object.keys(options.mcpServers).length > 0) {\n\t\tconst result = applyMcpServers(config, options.mcpServers)\n\t\tconfig = result.config\n\t\tmcpAdded = result.added\n\t\tmcpSkipped = result.skipped\n\t}\n\n\t// Set default agent if provided and not already set\n\tif (options.defaultAgent && !config.default_agent) {\n\t\tconfig.default_agent = options.defaultAgent\n\t}\n\n\t// Write config\n\tawait writeOpencodeConfig(configPath, config)\n\n\treturn {\n\t\tpath: configPath,\n\t\tcreated,\n\t\tmcpAdded,\n\t\tmcpSkipped,\n\t}\n}\n",
|
|
56
|
+
"/**\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",
|
|
57
|
+
"/**\n * Build Command (for Registry Authors)\n *\n * Validate and build a registry from source.\n */\n\nimport { mkdir } from \"node:fs/promises\"\nimport { dirname, join, relative } from \"node:path\"\nimport type { Command } from \"commander\"\nimport kleur from \"kleur\"\nimport { registrySchema } from \"../schemas/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\t// Read registry.json from source\n\t\t\t\tconst registryFile = Bun.file(join(sourcePath, \"registry.json\"))\n\t\t\t\tif (!(await registryFile.exists())) {\n\t\t\t\t\tif (!options.json) spinner.fail(\"No registry.json found in source directory\")\n\t\t\t\t\tprocess.exit(1)\n\t\t\t\t}\n\n\t\t\t\tconst registryData = await registryFile.json()\n\n\t\t\t\t// Validate registry schema\n\t\t\t\tconst parseResult = registrySchema.safeParse(registryData)\n\t\t\t\tif (!parseResult.success) {\n\t\t\t\t\tif (!options.json) {\n\t\t\t\t\t\tspinner.fail(\"Registry validation failed\")\n\t\t\t\t\t\tconst errors = parseResult.error.errors.map(\n\t\t\t\t\t\t\t(e) => ` ${e.path.join(\".\")}: ${e.message}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\tfor (const err of 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\n\t\t\t\tconst registry = parseResult.data\n\t\t\t\tconst validationErrors: string[] = []\n\n\t\t\t\t// Create output directory structure\n\t\t\t\tconst componentsDir = join(outPath, \"components\")\n\t\t\t\tawait mkdir(componentsDir, { recursive: true })\n\n\t\t\t\t// Generate packument and copy files for each component\n\t\t\t\tfor (const component of registry.components) {\n\t\t\t\t\tconst packument = {\n\t\t\t\t\t\tname: component.name,\n\t\t\t\t\t\tversions: {\n\t\t\t\t\t\t\t[registry.version]: component,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"dist-tags\": {\n\t\t\t\t\t\t\tlatest: registry.version,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\t// Write manifest to components/[name].json\n\t\t\t\t\tconst packumentPath = join(componentsDir, `${component.name}.json`)\n\t\t\t\t\tawait Bun.write(packumentPath, JSON.stringify(packument, null, 2))\n\n\t\t\t\t\t// Copy files to components/[name]/[path]\n\t\t\t\t\tfor (const file of component.files) {\n\t\t\t\t\t\tconst sourceFilePath = join(sourcePath, \"files\", file.path)\n\t\t\t\t\t\tconst destFilePath = join(componentsDir, component.name, file.path)\n\t\t\t\t\t\tconst destFileDir = dirname(destFilePath)\n\n\t\t\t\t\t\tif (!(await Bun.file(sourceFilePath).exists())) {\n\t\t\t\t\t\t\tvalidationErrors.push(`${component.name}: Source file not found at ${sourceFilePath}`)\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tawait mkdir(destFileDir, { recursive: true })\n\t\t\t\t\t\tconst sourceFile = Bun.file(sourceFilePath)\n\t\t\t\t\t\tawait Bun.write(destFilePath, sourceFile)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fail fast if source files were missing during copy\n\t\t\t\tif (validationErrors.length > 0) {\n\t\t\t\t\tif (!options.json) {\n\t\t\t\t\t\tspinner.fail(`Build failed with ${validationErrors.length} errors`)\n\t\t\t\t\t\tfor (const err of validationErrors) {\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\n\t\t\t\t// Generate index.json at the root\n\t\t\t\tconst index = {\n\t\t\t\t\tname: registry.name,\n\t\t\t\t\tprefix: registry.prefix,\n\t\t\t\t\tversion: registry.version,\n\t\t\t\t\tauthor: registry.author,\n\t\t\t\t\tcomponents: registry.components.map((c) => ({\n\t\t\t\t\t\tname: c.name,\n\t\t\t\t\t\ttype: c.type,\n\t\t\t\t\t\tdescription: c.description,\n\t\t\t\t\t})),\n\t\t\t\t}\n\n\t\t\t\tawait Bun.write(join(outPath, \"index.json\"), JSON.stringify(index, null, 2))\n\n\t\t\t\tif (!options.json) {\n\t\t\t\t\tconst msg = `Built ${registry.components.length} 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 ${registry.components.length} 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: registry.name,\n\t\t\t\t\t\t\tversion: registry.version,\n\t\t\t\t\t\t\tcomponents: registry.components.length,\n\t\t\t\t\t\t\toutput: outPath,\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",
|
|
59
58
|
"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",
|
|
60
59
|
"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",
|
|
61
60
|
"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",
|
|
@@ -66,13 +65,14 @@
|
|
|
66
65
|
"import Diff from './base.js';\nimport { tokenize } from './line.js';\nclass JsonDiff extends Diff {\n constructor() {\n super(...arguments);\n this.tokenize = tokenize;\n }\n get useLongestToken() {\n // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n return true;\n }\n castInput(value, options) {\n const { undefinedReplacement, stringifyReplacer = (k, v) => typeof v === 'undefined' ? undefinedReplacement : v } = options;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, ' ');\n }\n equals(left, right, options) {\n return super.equals(left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'), options);\n }\n}\nexport const jsonDiff = new JsonDiff();\nexport function diffJson(oldStr, newStr, options) {\n return jsonDiff.diff(oldStr, newStr, options);\n}\n// This function handles the presence of circular references by bailing out when encountering an\n// object that is already on the \"stack\" of items being processed. Accepts an optional replacer\nexport function canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n if (replacer) {\n obj = replacer(key === undefined ? '' : key, obj);\n }\n let i;\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n let canonicalizedObj;\n if ('[object Array]' === Object.prototype.toString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, String(i));\n }\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n if (typeof obj === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n const sortedKeys = [];\n let key;\n for (key in obj) {\n /* istanbul ignore else */\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n sortedKeys.push(key);\n }\n }\n sortedKeys.sort();\n for (i = 0; i < sortedKeys.length; i += 1) {\n key = sortedKeys[i];\n canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack, replacer, key);\n }\n stack.pop();\n replacementStack.pop();\n }\n else {\n canonicalizedObj = obj;\n }\n return canonicalizedObj;\n}\n",
|
|
67
66
|
"import Diff from './base.js';\nclass ArrayDiff extends Diff {\n tokenize(value) {\n return value.slice();\n }\n join(value) {\n return value;\n }\n removeEmpty(value) {\n return value;\n }\n}\nexport const arrayDiff = new ArrayDiff();\nexport function diffArrays(oldArr, newArr, options) {\n return arrayDiff.diff(oldArr, newArr, options);\n}\n",
|
|
68
67
|
"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",
|
|
69
|
-
"/**\n * Diff Command\n *\n * Compare installed components with upstream registry versions.\n */\n\nimport { Command } from \"commander\"\nimport * as Diff from \"diff\"\nimport kleur from \"kleur\"\nimport {
|
|
70
|
-
"/**\n *
|
|
71
|
-
"/**\n *
|
|
72
|
-
"/**\n *
|
|
73
|
-
"
|
|
68
|
+
"/**\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 { 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// Read local file\n\t\t\t\t\tconst localPath = `${options.cwd}/${installed.target}`\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\tconst upstream = await fetchComponent(registryConfig.url, name)\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 upstreamFile = upstream.files[0]\n\t\t\t\t\t\tif (!upstreamFile) {\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\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\tname,\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",
|
|
69
|
+
"/**\n * OCX CLI - init command\n * Initialize OCX configuration in a project\n */\n\nimport { existsSync } from \"node:fs\"\nimport { 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 { createSpinner, handleError, logger } from \"../utils/index.js\"\n\ninterface InitOptions {\n\tyes?: boolean\n\tcwd?: string\n\tquiet?: boolean\n\tverbose?: boolean\n\tjson?: boolean\n}\n\nexport function registerInitCommand(program: Command): void {\n\tprogram\n\t\t.command(\"init\")\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.action(async (options: InitOptions) => {\n\t\t\ttry {\n\t\t\t\tawait runInit(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 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",
|
|
70
|
+
"/**\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`\nexport const OCX_LOCK_SCHEMA_URL = `https://${OCX_DOMAIN}/lock.schema.json`\nexport const OCX_INSTALL_URL = `https://${OCX_DOMAIN}/install.sh`\n\n// GitHub URLs\nexport const GITHUB_RELEASES_URL = `https://github.com/${GITHUB_REPO}/releases`\nexport const GITHUB_RAW_URL = `https://raw.githubusercontent.com/${GITHUB_REPO}/main`\n",
|
|
71
|
+
"/**\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",
|
|
72
|
+
"/**\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: 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",
|
|
73
|
+
"#!/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 { 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\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\nmain().catch((err) => {\n\thandleError(err)\n})\n"
|
|
74
74
|
],
|
|
75
|
-
"mappings": "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,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,KAA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",
|
|
76
|
-
"debugId": "
|
|
75
|
+
"mappings": "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",
|
|
76
|
+
"debugId": "23985CCDFBBA246964756E2164756E21",
|
|
77
77
|
"names": []
|
|
78
78
|
}
|