@udohjeremiah/moniq 0.1.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/LICENSE +21 -0
- package/README.md +3 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +1295 -0
- package/dist/cli.js.map +1 -0
- package/dist/dist-B1TNZsla.js +12055 -0
- package/dist/dist-B1TNZsla.js.map +1 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +289 -0
- package/dist/index.js.map +1 -0
- package/package.json +62 -0
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","names":["wcmatch"],"sources":["../../../node_modules/.pnpm/cac@7.0.0/node_modules/cac/dist/index.js","../../workspace/dist/index.js","../../../node_modules/.pnpm/wildcard-match@5.1.4/node_modules/wildcard-match/build/index.es.mjs","../../core/dist/index.js","../../cli/dist/index.js"],"sourcesContent":["//#region node_modules/.pnpm/mri@1.2.0/node_modules/mri/lib/index.mjs\nfunction toArr(any) {\n\treturn any == null ? [] : Array.isArray(any) ? any : [any];\n}\nfunction toVal(out, key, val, opts) {\n\tvar x, old = out[key], nxt = !!~opts.string.indexOf(key) ? val == null || val === true ? \"\" : String(val) : typeof val === \"boolean\" ? val : !!~opts.boolean.indexOf(key) ? val === \"false\" ? false : val === \"true\" || (out._.push((x = +val, x * 0 === 0) ? x : val), !!val) : (x = +val, x * 0 === 0) ? x : val;\n\tout[key] = old == null ? nxt : Array.isArray(old) ? old.concat(nxt) : [old, nxt];\n}\nfunction lib_default(args, opts) {\n\targs = args || [];\n\topts = opts || {};\n\tvar k, arr, arg, name, val, out = { _: [] };\n\tvar i = 0, j = 0, idx = 0, len = args.length;\n\tconst alibi = opts.alias !== void 0;\n\tconst strict = opts.unknown !== void 0;\n\tconst defaults = opts.default !== void 0;\n\topts.alias = opts.alias || {};\n\topts.string = toArr(opts.string);\n\topts.boolean = toArr(opts.boolean);\n\tif (alibi) for (k in opts.alias) {\n\t\tarr = opts.alias[k] = toArr(opts.alias[k]);\n\t\tfor (i = 0; i < arr.length; i++) (opts.alias[arr[i]] = arr.concat(k)).splice(i, 1);\n\t}\n\tfor (i = opts.boolean.length; i-- > 0;) {\n\t\tarr = opts.alias[opts.boolean[i]] || [];\n\t\tfor (j = arr.length; j-- > 0;) opts.boolean.push(arr[j]);\n\t}\n\tfor (i = opts.string.length; i-- > 0;) {\n\t\tarr = opts.alias[opts.string[i]] || [];\n\t\tfor (j = arr.length; j-- > 0;) opts.string.push(arr[j]);\n\t}\n\tif (defaults) for (k in opts.default) {\n\t\tname = typeof opts.default[k];\n\t\tarr = opts.alias[k] = opts.alias[k] || [];\n\t\tif (opts[name] !== void 0) {\n\t\t\topts[name].push(k);\n\t\t\tfor (i = 0; i < arr.length; i++) opts[name].push(arr[i]);\n\t\t}\n\t}\n\tconst keys = strict ? Object.keys(opts.alias) : [];\n\tfor (i = 0; i < len; i++) {\n\t\targ = args[i];\n\t\tif (arg === \"--\") {\n\t\t\tout._ = out._.concat(args.slice(++i));\n\t\t\tbreak;\n\t\t}\n\t\tfor (j = 0; j < arg.length; j++) if (arg.charCodeAt(j) !== 45) break;\n\t\tif (j === 0) out._.push(arg);\n\t\telse if (arg.substring(j, j + 3) === \"no-\") {\n\t\t\tname = arg.substring(j + 3);\n\t\t\tif (strict && !~keys.indexOf(name)) return opts.unknown(arg);\n\t\t\tout[name] = false;\n\t\t} else {\n\t\t\tfor (idx = j + 1; idx < arg.length; idx++) if (arg.charCodeAt(idx) === 61) break;\n\t\t\tname = arg.substring(j, idx);\n\t\t\tval = arg.substring(++idx) || i + 1 === len || (\"\" + args[i + 1]).charCodeAt(0) === 45 || args[++i];\n\t\t\tarr = j === 2 ? [name] : name;\n\t\t\tfor (idx = 0; idx < arr.length; idx++) {\n\t\t\t\tname = arr[idx];\n\t\t\t\tif (strict && !~keys.indexOf(name)) return opts.unknown(\"-\".repeat(j) + name);\n\t\t\t\ttoVal(out, name, idx + 1 < arr.length || val, opts);\n\t\t\t}\n\t\t}\n\t}\n\tif (defaults) {\n\t\tfor (k in opts.default) if (out[k] === void 0) out[k] = opts.default[k];\n\t}\n\tif (alibi) for (k in out) {\n\t\tarr = opts.alias[k] || [];\n\t\twhile (arr.length > 0) out[arr.shift()] = out[k];\n\t}\n\treturn out;\n}\n\n//#endregion\n//#region src/utils.ts\nfunction removeBrackets(v) {\n\treturn v.replace(/[<[].+/, \"\").trim();\n}\nfunction findAllBrackets(v) {\n\tconst ANGLED_BRACKET_RE_GLOBAL = /<([^>]+)>/g;\n\tconst SQUARE_BRACKET_RE_GLOBAL = /\\[([^\\]]+)\\]/g;\n\tconst res = [];\n\tconst parse = (match) => {\n\t\tlet variadic = false;\n\t\tlet value = match[1];\n\t\tif (value.startsWith(\"...\")) {\n\t\t\tvalue = value.slice(3);\n\t\t\tvariadic = true;\n\t\t}\n\t\treturn {\n\t\t\trequired: match[0].startsWith(\"<\"),\n\t\t\tvalue,\n\t\t\tvariadic\n\t\t};\n\t};\n\tlet angledMatch;\n\twhile (angledMatch = ANGLED_BRACKET_RE_GLOBAL.exec(v)) res.push(parse(angledMatch));\n\tlet squareMatch;\n\twhile (squareMatch = SQUARE_BRACKET_RE_GLOBAL.exec(v)) res.push(parse(squareMatch));\n\treturn res;\n}\nfunction getMriOptions(options) {\n\tconst result = {\n\t\talias: {},\n\t\tboolean: []\n\t};\n\tfor (const [index, option] of options.entries()) {\n\t\tif (option.names.length > 1) result.alias[option.names[0]] = option.names.slice(1);\n\t\tif (option.isBoolean) if (option.negated) {\n\t\t\tif (!options.some((o, i) => {\n\t\t\t\treturn i !== index && o.names.some((name) => option.names.includes(name)) && typeof o.required === \"boolean\";\n\t\t\t})) result.boolean.push(option.names[0]);\n\t\t} else result.boolean.push(option.names[0]);\n\t}\n\treturn result;\n}\nfunction findLongest(arr) {\n\treturn arr.sort((a, b) => {\n\t\treturn a.length > b.length ? -1 : 1;\n\t})[0];\n}\nfunction padRight(str, length) {\n\treturn str.length >= length ? str : `${str}${\" \".repeat(length - str.length)}`;\n}\nfunction camelcase(input) {\n\treturn input.replaceAll(/([a-z])-([a-z])/g, (_, p1, p2) => {\n\t\treturn p1 + p2.toUpperCase();\n\t});\n}\nfunction setDotProp(obj, keys, val) {\n\tlet current = obj;\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\t\tif (i === keys.length - 1) {\n\t\t\tcurrent[key] = val;\n\t\t\treturn;\n\t\t}\n\t\tif (current[key] == null) {\n\t\t\tconst nextKeyIsArrayIndex = +keys[i + 1] > -1;\n\t\t\tcurrent[key] = nextKeyIsArrayIndex ? [] : {};\n\t\t}\n\t\tcurrent = current[key];\n\t}\n}\nfunction setByType(obj, transforms) {\n\tfor (const key of Object.keys(transforms)) {\n\t\tconst transform = transforms[key];\n\t\tif (transform.shouldTransform) {\n\t\t\tobj[key] = [obj[key]].flat();\n\t\t\tif (typeof transform.transformFunction === \"function\") obj[key] = obj[key].map(transform.transformFunction);\n\t\t}\n\t}\n}\nfunction getFileName(input) {\n\tconst m = /([^\\\\/]+)$/.exec(input);\n\treturn m ? m[1] : \"\";\n}\nfunction camelcaseOptionName(name) {\n\treturn name.split(\".\").map((v, i) => {\n\t\treturn i === 0 ? camelcase(v) : v;\n\t}).join(\".\");\n}\nvar CACError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"CACError\";\n\t\tif (typeof Error.captureStackTrace !== \"function\") this.stack = new Error(message).stack;\n\t}\n};\n\n//#endregion\n//#region src/option.ts\nvar Option = class {\n\trawName;\n\tdescription;\n\t/** Option name */\n\tname;\n\t/** Option name and aliases */\n\tnames;\n\tisBoolean;\n\trequired;\n\tconfig;\n\tnegated;\n\tconstructor(rawName, description, config) {\n\t\tthis.rawName = rawName;\n\t\tthis.description = description;\n\t\tthis.config = Object.assign({}, config);\n\t\trawName = rawName.replaceAll(\".*\", \"\");\n\t\tthis.negated = false;\n\t\tthis.names = removeBrackets(rawName).split(\",\").map((v) => {\n\t\t\tlet name = v.trim().replace(/^-{1,2}/, \"\");\n\t\t\tif (name.startsWith(\"no-\")) {\n\t\t\t\tthis.negated = true;\n\t\t\t\tname = name.replace(/^no-/, \"\");\n\t\t\t}\n\t\t\treturn camelcaseOptionName(name);\n\t\t}).sort((a, b) => a.length > b.length ? 1 : -1);\n\t\tthis.name = this.names.at(-1);\n\t\tif (this.negated && this.config.default == null) this.config.default = true;\n\t\tif (rawName.includes(\"<\")) this.required = true;\n\t\telse if (rawName.includes(\"[\")) this.required = false;\n\t\telse this.isBoolean = true;\n\t}\n};\n\n//#endregion\n//#region src/runtime.ts\nlet runtimeProcessArgs;\nlet runtimeInfo;\nif (typeof process !== \"undefined\") {\n\tlet runtimeName;\n\tif (typeof Deno !== \"undefined\" && typeof Deno.version?.deno === \"string\") runtimeName = \"deno\";\n\telse if (typeof Bun !== \"undefined\" && typeof Bun.version === \"string\") runtimeName = \"bun\";\n\telse runtimeName = \"node\";\n\truntimeInfo = `${process.platform}-${process.arch} ${runtimeName}-${process.version}`;\n\truntimeProcessArgs = process.argv;\n} else if (typeof navigator === \"undefined\") runtimeInfo = `unknown`;\nelse runtimeInfo = `${navigator.platform} ${navigator.userAgent}`;\n\n//#endregion\n//#region src/command.ts\nvar Command = class {\n\trawName;\n\tdescription;\n\tconfig;\n\tcli;\n\toptions;\n\taliasNames;\n\tname;\n\targs;\n\tcommandAction;\n\tusageText;\n\tversionNumber;\n\texamples;\n\thelpCallback;\n\tglobalCommand;\n\tconstructor(rawName, description, config = {}, cli) {\n\t\tthis.rawName = rawName;\n\t\tthis.description = description;\n\t\tthis.config = config;\n\t\tthis.cli = cli;\n\t\tthis.options = [];\n\t\tthis.aliasNames = [];\n\t\tthis.name = removeBrackets(rawName);\n\t\tthis.args = findAllBrackets(rawName);\n\t\tthis.examples = [];\n\t}\n\tusage(text) {\n\t\tthis.usageText = text;\n\t\treturn this;\n\t}\n\tallowUnknownOptions() {\n\t\tthis.config.allowUnknownOptions = true;\n\t\treturn this;\n\t}\n\tignoreOptionDefaultValue() {\n\t\tthis.config.ignoreOptionDefaultValue = true;\n\t\treturn this;\n\t}\n\tversion(version, customFlags = \"-v, --version\") {\n\t\tthis.versionNumber = version;\n\t\tthis.option(customFlags, \"Display version number\");\n\t\treturn this;\n\t}\n\texample(example) {\n\t\tthis.examples.push(example);\n\t\treturn this;\n\t}\n\t/**\n\t* Add a option for this command\n\t* @param rawName Raw option name(s)\n\t* @param description Option description\n\t* @param config Option config\n\t*/\n\toption(rawName, description, config) {\n\t\tconst option = new Option(rawName, description, config);\n\t\tthis.options.push(option);\n\t\treturn this;\n\t}\n\talias(name) {\n\t\tthis.aliasNames.push(name);\n\t\treturn this;\n\t}\n\taction(callback) {\n\t\tthis.commandAction = callback;\n\t\treturn this;\n\t}\n\t/**\n\t* Check if a command name is matched by this command\n\t* @param name Command name\n\t*/\n\tisMatched(name) {\n\t\treturn this.name === name || this.aliasNames.includes(name);\n\t}\n\tget isDefaultCommand() {\n\t\treturn this.name === \"\" || this.aliasNames.includes(\"!\");\n\t}\n\tget isGlobalCommand() {\n\t\treturn this instanceof GlobalCommand;\n\t}\n\t/**\n\t* Check if an option is registered in this command\n\t* @param name Option name\n\t*/\n\thasOption(name) {\n\t\tname = name.split(\".\")[0];\n\t\treturn this.options.find((option) => {\n\t\t\treturn option.names.includes(name);\n\t\t});\n\t}\n\toutputHelp() {\n\t\tconst { name, commands } = this.cli;\n\t\tconst { versionNumber, options: globalOptions, helpCallback } = this.cli.globalCommand;\n\t\tlet sections = [{ body: `${name}${versionNumber ? `/${versionNumber}` : \"\"}` }];\n\t\tsections.push({\n\t\t\ttitle: \"Usage\",\n\t\t\tbody: ` $ ${name} ${this.usageText || this.rawName}`\n\t\t});\n\t\tif ((this.isGlobalCommand || this.isDefaultCommand) && commands.length > 0) {\n\t\t\tconst longestCommandName = findLongest(commands.map((command) => command.rawName));\n\t\t\tsections.push({\n\t\t\t\ttitle: \"Commands\",\n\t\t\t\tbody: commands.map((command) => {\n\t\t\t\t\treturn ` ${padRight(command.rawName, longestCommandName.length)} ${command.description}`;\n\t\t\t\t}).join(\"\\n\")\n\t\t\t}, {\n\t\t\t\ttitle: `For more info, run any command with the \\`--help\\` flag`,\n\t\t\t\tbody: commands.map((command) => ` $ ${name}${command.name === \"\" ? \"\" : ` ${command.name}`} --help`).join(\"\\n\")\n\t\t\t});\n\t\t}\n\t\tlet options = this.isGlobalCommand ? globalOptions : [...this.options, ...globalOptions || []];\n\t\tif (!this.isGlobalCommand && !this.isDefaultCommand) options = options.filter((option) => option.name !== \"version\");\n\t\tif (options.length > 0) {\n\t\t\tconst longestOptionName = findLongest(options.map((option) => option.rawName));\n\t\t\tsections.push({\n\t\t\t\ttitle: \"Options\",\n\t\t\t\tbody: options.map((option) => {\n\t\t\t\t\treturn ` ${padRight(option.rawName, longestOptionName.length)} ${option.description} ${option.config.default === void 0 ? \"\" : `(default: ${option.config.default})`}`;\n\t\t\t\t}).join(\"\\n\")\n\t\t\t});\n\t\t}\n\t\tif (this.examples.length > 0) sections.push({\n\t\t\ttitle: \"Examples\",\n\t\t\tbody: this.examples.map((example) => {\n\t\t\t\tif (typeof example === \"function\") return example(name);\n\t\t\t\treturn example;\n\t\t\t}).join(\"\\n\")\n\t\t});\n\t\tif (helpCallback) sections = helpCallback(sections) || sections;\n\t\tconsole.info(sections.map((section) => {\n\t\t\treturn section.title ? `${section.title}:\\n${section.body}` : section.body;\n\t\t}).join(\"\\n\\n\"));\n\t}\n\toutputVersion() {\n\t\tconst { name } = this.cli;\n\t\tconst { versionNumber } = this.cli.globalCommand;\n\t\tif (versionNumber) console.info(`${name}/${versionNumber} ${runtimeInfo}`);\n\t}\n\tcheckRequiredArgs() {\n\t\tconst minimalArgsCount = this.args.filter((arg) => arg.required).length;\n\t\tif (this.cli.args.length < minimalArgsCount) throw new CACError(`missing required args for command \\`${this.rawName}\\``);\n\t}\n\t/**\n\t* Check if the parsed options contain any unknown options\n\t*\n\t* Exit and output error when true\n\t*/\n\tcheckUnknownOptions() {\n\t\tconst { options, globalCommand } = this.cli;\n\t\tif (!this.config.allowUnknownOptions) {\n\t\t\tfor (const name of Object.keys(options)) if (name !== \"--\" && !this.hasOption(name) && !globalCommand.hasOption(name)) throw new CACError(`Unknown option \\`${name.length > 1 ? `--${name}` : `-${name}`}\\``);\n\t\t}\n\t}\n\t/**\n\t* Check if the required string-type options exist\n\t*/\n\tcheckOptionValue() {\n\t\tconst { options: parsedOptions, globalCommand } = this.cli;\n\t\tconst options = [...globalCommand.options, ...this.options];\n\t\tfor (const option of options) {\n\t\t\tconst value = parsedOptions[option.name.split(\".\")[0]];\n\t\t\tif (option.required) {\n\t\t\t\tconst hasNegated = options.some((o) => o.negated && o.names.includes(option.name));\n\t\t\t\tif (value === true || value === false && !hasNegated) throw new CACError(`option \\`${option.rawName}\\` value is missing`);\n\t\t\t}\n\t\t}\n\t}\n\t/**\n\t* Check if the number of args is more than expected\n\t*/\n\tcheckUnusedArgs() {\n\t\tconst maximumArgsCount = this.args.some((arg) => arg.variadic) ? Infinity : this.args.length;\n\t\tif (maximumArgsCount < this.cli.args.length) throw new CACError(`Unused args: ${this.cli.args.slice(maximumArgsCount).map((arg) => `\\`${arg}\\``).join(\", \")}`);\n\t}\n};\nvar GlobalCommand = class extends Command {\n\tconstructor(cli) {\n\t\tsuper(\"@@global@@\", \"\", {}, cli);\n\t}\n};\n\n//#endregion\n//#region src/cac.ts\nvar CAC = class extends EventTarget {\n\t/** The program name to display in help and version message */\n\tname;\n\tcommands;\n\tglobalCommand;\n\tmatchedCommand;\n\tmatchedCommandName;\n\t/**\n\t* Raw CLI arguments\n\t*/\n\trawArgs;\n\t/**\n\t* Parsed CLI arguments\n\t*/\n\targs;\n\t/**\n\t* Parsed CLI options, camelCased\n\t*/\n\toptions;\n\tshowHelpOnExit;\n\tshowVersionOnExit;\n\t/**\n\t* @param name The program name to display in help and version message\n\t*/\n\tconstructor(name = \"\") {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.commands = [];\n\t\tthis.rawArgs = [];\n\t\tthis.args = [];\n\t\tthis.options = {};\n\t\tthis.globalCommand = new GlobalCommand(this);\n\t\tthis.globalCommand.usage(\"<command> [options]\");\n\t}\n\t/**\n\t* Add a global usage text.\n\t*\n\t* This is not used by sub-commands.\n\t*/\n\tusage(text) {\n\t\tthis.globalCommand.usage(text);\n\t\treturn this;\n\t}\n\t/**\n\t* Add a sub-command\n\t*/\n\tcommand(rawName, description, config) {\n\t\tconst command = new Command(rawName, description || \"\", config, this);\n\t\tcommand.globalCommand = this.globalCommand;\n\t\tthis.commands.push(command);\n\t\treturn command;\n\t}\n\t/**\n\t* Add a global CLI option.\n\t*\n\t* Which is also applied to sub-commands.\n\t*/\n\toption(rawName, description, config) {\n\t\tthis.globalCommand.option(rawName, description, config);\n\t\treturn this;\n\t}\n\t/**\n\t* Show help message when `-h, --help` flags appear.\n\t*\n\t*/\n\thelp(callback) {\n\t\tthis.globalCommand.option(\"-h, --help\", \"Display this message\");\n\t\tthis.globalCommand.helpCallback = callback;\n\t\tthis.showHelpOnExit = true;\n\t\treturn this;\n\t}\n\t/**\n\t* Show version number when `-v, --version` flags appear.\n\t*\n\t*/\n\tversion(version, customFlags = \"-v, --version\") {\n\t\tthis.globalCommand.version(version, customFlags);\n\t\tthis.showVersionOnExit = true;\n\t\treturn this;\n\t}\n\t/**\n\t* Add a global example.\n\t*\n\t* This example added here will not be used by sub-commands.\n\t*/\n\texample(example) {\n\t\tthis.globalCommand.example(example);\n\t\treturn this;\n\t}\n\t/**\n\t* Output the corresponding help message\n\t* When a sub-command is matched, output the help message for the command\n\t* Otherwise output the global one.\n\t*\n\t*/\n\toutputHelp() {\n\t\tif (this.matchedCommand) this.matchedCommand.outputHelp();\n\t\telse this.globalCommand.outputHelp();\n\t}\n\t/**\n\t* Output the version number.\n\t*\n\t*/\n\toutputVersion() {\n\t\tthis.globalCommand.outputVersion();\n\t}\n\tsetParsedInfo({ args, options }, matchedCommand, matchedCommandName) {\n\t\tthis.args = args;\n\t\tthis.options = options;\n\t\tif (matchedCommand) this.matchedCommand = matchedCommand;\n\t\tif (matchedCommandName) this.matchedCommandName = matchedCommandName;\n\t\treturn this;\n\t}\n\tunsetMatchedCommand() {\n\t\tthis.matchedCommand = void 0;\n\t\tthis.matchedCommandName = void 0;\n\t}\n\t/**\n\t* Parse argv\n\t*/\n\tparse(argv, { run = true } = {}) {\n\t\tif (!argv) {\n\t\t\tif (!runtimeProcessArgs) throw new Error(\"No argv provided and runtime process argv is not available.\");\n\t\t\targv = runtimeProcessArgs;\n\t\t}\n\t\tthis.rawArgs = argv;\n\t\tif (!this.name) this.name = argv[1] ? getFileName(argv[1]) : \"cli\";\n\t\tlet shouldParse = true;\n\t\tfor (const command of this.commands) {\n\t\t\tconst parsed = this.mri(argv.slice(2), command);\n\t\t\tconst commandName = parsed.args[0];\n\t\t\tif (command.isMatched(commandName)) {\n\t\t\t\tshouldParse = false;\n\t\t\t\tconst parsedInfo = {\n\t\t\t\t\t...parsed,\n\t\t\t\t\targs: parsed.args.slice(1)\n\t\t\t\t};\n\t\t\t\tthis.setParsedInfo(parsedInfo, command, commandName);\n\t\t\t\tthis.dispatchEvent(new CustomEvent(`command:${commandName}`, { detail: command }));\n\t\t\t}\n\t\t}\n\t\tif (shouldParse) {\n\t\t\tfor (const command of this.commands) if (command.isDefaultCommand) {\n\t\t\t\tshouldParse = false;\n\t\t\t\tconst parsed = this.mri(argv.slice(2), command);\n\t\t\t\tthis.setParsedInfo(parsed, command);\n\t\t\t\tthis.dispatchEvent(new CustomEvent(\"command:!\", { detail: command }));\n\t\t\t}\n\t\t}\n\t\tif (shouldParse) {\n\t\t\tconst parsed = this.mri(argv.slice(2));\n\t\t\tthis.setParsedInfo(parsed);\n\t\t}\n\t\tif (this.options.help && this.showHelpOnExit) {\n\t\t\tthis.outputHelp();\n\t\t\trun = false;\n\t\t\tthis.unsetMatchedCommand();\n\t\t}\n\t\tif (this.options.version && this.showVersionOnExit && this.matchedCommandName == null) {\n\t\t\tthis.outputVersion();\n\t\t\trun = false;\n\t\t\tthis.unsetMatchedCommand();\n\t\t}\n\t\tconst parsedArgv = {\n\t\t\targs: this.args,\n\t\t\toptions: this.options\n\t\t};\n\t\tif (run) this.runMatchedCommand();\n\t\tif (!this.matchedCommand && this.args[0]) this.dispatchEvent(new CustomEvent(\"command:*\", { detail: this.args[0] }));\n\t\treturn parsedArgv;\n\t}\n\tmri(argv, command) {\n\t\tconst cliOptions = [...this.globalCommand.options, ...command ? command.options : []];\n\t\tconst mriOptions = getMriOptions(cliOptions);\n\t\tlet argsAfterDoubleDashes = [];\n\t\tconst doubleDashesIndex = argv.indexOf(\"--\");\n\t\tif (doubleDashesIndex !== -1) {\n\t\t\targsAfterDoubleDashes = argv.slice(doubleDashesIndex + 1);\n\t\t\targv = argv.slice(0, doubleDashesIndex);\n\t\t}\n\t\tlet parsed = lib_default(argv, mriOptions);\n\t\tparsed = Object.keys(parsed).reduce((res, name) => {\n\t\t\treturn {\n\t\t\t\t...res,\n\t\t\t\t[camelcaseOptionName(name)]: parsed[name]\n\t\t\t};\n\t\t}, { _: [] });\n\t\tconst args = parsed._;\n\t\tconst options = { \"--\": argsAfterDoubleDashes };\n\t\tconst ignoreDefault = command && command.config.ignoreOptionDefaultValue ? command.config.ignoreOptionDefaultValue : this.globalCommand.config.ignoreOptionDefaultValue;\n\t\tconst transforms = Object.create(null);\n\t\tfor (const cliOption of cliOptions) {\n\t\t\tif (!ignoreDefault && cliOption.config.default !== void 0) for (const name of cliOption.names) options[name] = cliOption.config.default;\n\t\t\tif (Array.isArray(cliOption.config.type) && transforms[cliOption.name] === void 0) {\n\t\t\t\ttransforms[cliOption.name] = Object.create(null);\n\t\t\t\ttransforms[cliOption.name].shouldTransform = true;\n\t\t\t\ttransforms[cliOption.name].transformFunction = cliOption.config.type[0];\n\t\t\t}\n\t\t}\n\t\tfor (const key of Object.keys(parsed)) if (key !== \"_\") {\n\t\t\tsetDotProp(options, key.split(\".\"), parsed[key]);\n\t\t\tsetByType(options, transforms);\n\t\t}\n\t\treturn {\n\t\t\targs,\n\t\t\toptions\n\t\t};\n\t}\n\trunMatchedCommand() {\n\t\tconst { args, options, matchedCommand: command } = this;\n\t\tif (!command || !command.commandAction) return;\n\t\tcommand.checkUnknownOptions();\n\t\tcommand.checkOptionValue();\n\t\tcommand.checkRequiredArgs();\n\t\tcommand.checkUnusedArgs();\n\t\tconst actionArgs = [];\n\t\tcommand.args.forEach((arg, index) => {\n\t\t\tif (arg.variadic) actionArgs.push(args.slice(index));\n\t\t\telse actionArgs.push(args[index]);\n\t\t});\n\t\tactionArgs.push(options);\n\t\treturn command.commandAction.apply(this, actionArgs);\n\t}\n};\n\n//#endregion\n//#region src/index.ts\n/**\n* @param name The program name to display in help and version message\n*/\nconst cac = (name = \"\") => new CAC(name);\n\n//#endregion\nexport { CAC, Command, cac, cac as default };","import { createRequire } from \"node:module\";\nimport { execFileSync } from \"node:child_process\";\nimport path from \"node:path\";\n//#region src/package-json.ts\nasync function readPackageJson(path) {\n\tconst { readFile } = await import(\"node:fs/promises\");\n\tconst content = await readFile(path, \"utf8\");\n\treturn JSON.parse(content);\n}\nasync function writePackageJson(filePath, data) {\n\tconst { writeFile } = await import(\"node:fs/promises\");\n\tawait writeFile(filePath, `${JSON.stringify(data, void 0, 2)}\\n`, \"utf8\");\n}\n//#endregion\n//#region src/scripts.ts\nfunction getScript(packageJson, name) {\n\tconst scripts = packageJson[\"scripts\"];\n\tif (typeof scripts !== \"object\" || scripts === null) return;\n\tconst value = Object.entries(scripts).find(([k]) => k === name)?.[1];\n\treturn typeof value === \"string\" ? value : void 0;\n}\nfunction setScript(packageJson, name, command) {\n\tlet scripts = packageJson[\"scripts\"];\n\tif (typeof scripts !== \"object\" || scripts === null) {\n\t\tscripts = {};\n\t\tpackageJson[\"scripts\"] = scripts;\n\t}\n\tObject.assign(scripts, { [name]: command });\n}\n//#endregion\n//#region src/workspace.ts\nconst npmCommand = getNpmCommand();\nconst pnpmCommand = getPnpmCommand();\nconst yarnCommand = getYarnCommand();\nfunction discoverWorkspace(root) {\n\tconst pm = detectPackageManager(root);\n\tlet output;\n\tswitch (pm) {\n\t\tcase \"npm\": {\n\t\t\toutput = execFileSync(npmCommand, [\n\t\t\t\t\"ls\",\n\t\t\t\t\"--workspaces\",\n\t\t\t\t\"--all\",\n\t\t\t\t\"--json\",\n\t\t\t\t\"--depth\",\n\t\t\t\t\"0\"\n\t\t\t], {\n\t\t\t\tcwd: root,\n\t\t\t\tencoding: \"utf8\"\n\t\t\t});\n\t\t\tconst tree = JSON.parse(output);\n\t\t\treturn Object.values(tree.dependencies ?? {}).map((entry) => ({ path: entry.path }));\n\t\t}\n\t\tcase \"pnpm\":\n\t\t\toutput = execFileSync(pnpmCommand, [\n\t\t\t\t\"ls\",\n\t\t\t\t\"-r\",\n\t\t\t\t\"--depth\",\n\t\t\t\t\"-1\",\n\t\t\t\t\"--json\"\n\t\t\t], {\n\t\t\t\tcwd: root,\n\t\t\t\tencoding: \"utf8\"\n\t\t\t});\n\t\t\treturn JSON.parse(output).map((entry) => ({ path: entry.path }));\n\t\tcase \"yarn\":\n\t\t\toutput = execFileSync(yarnCommand, [\n\t\t\t\t\"workspaces\",\n\t\t\t\t\"list\",\n\t\t\t\t\"--json\"\n\t\t\t], {\n\t\t\t\tcwd: root,\n\t\t\t\tencoding: \"utf8\"\n\t\t\t});\n\t\t\treturn output.trim().split(\"\\n\").filter(Boolean).map((line) => JSON.parse(line)).map((entry) => ({ path: path.resolve(root, entry.location) }));\n\t}\n}\nfunction detectPackageManager(root) {\n\tconst userAgent = process.env[\"npm_config_user_agent\"] ?? \"\";\n\tif (userAgent.startsWith(\"pnpm\")) return \"pnpm\";\n\tif (userAgent.startsWith(\"yarn\")) return \"yarn\";\n\tif (userAgent.startsWith(\"npm\")) return \"npm\";\n\tconst request = createRequire(import.meta.url);\n\tfor (const [lockFile, pm] of Object.entries({\n\t\t\"package-lock.json\": \"npm\",\n\t\t\"pnpm-lock.yaml\": \"pnpm\",\n\t\t\"yarn.lock\": \"yarn\"\n\t})) try {\n\t\trequest.resolve(path.join(root, lockFile));\n\t\treturn pm;\n\t} catch {}\n\ttry {\n\t\tconst rawPm = request(path.join(root, \"package.json\"))[\"packageManager\"];\n\t\tconst pm = typeof rawPm === \"string\" ? rawPm.split(\"@\", 2)[0] ?? \"\" : \"\";\n\t\tif ([\n\t\t\t\"npm\",\n\t\t\t\"pnpm\",\n\t\t\t\"yarn\"\n\t\t].includes(pm)) return pm;\n\t} catch {}\n\treturn \"pnpm\";\n}\nfunction getNpmCommand() {\n\treturn path.join(path.dirname(process.execPath), \"npm\");\n}\nfunction getPnpmCommand() {\n\ttry {\n\t\tconst request = createRequire(import.meta.url);\n\t\tconst specifier = [\"pnpm\", \"package.json\"].join(\"/\");\n\t\tconst packagePath = request.resolve(specifier);\n\t\treturn path.resolve(path.dirname(packagePath), \"bin\", \"pnpm.cjs\");\n\t} catch {\n\t\treturn \"pnpm\";\n\t}\n}\nfunction getYarnCommand() {\n\ttry {\n\t\tconst request = createRequire(import.meta.url);\n\t\tconst specifier = [\n\t\t\t\"@yarnpkg\",\n\t\t\t\"cli\",\n\t\t\t\"package.json\"\n\t\t].join(\"/\");\n\t\tconst packagePath = request.resolve(specifier);\n\t\treturn path.resolve(path.dirname(packagePath), \"sources\", \"bin\", \"yarn.js\");\n\t} catch {\n\t\ttry {\n\t\t\tconst request = createRequire(import.meta.url);\n\t\t\tconst specifier = [\"yarn\", \"package.json\"].join(\"/\");\n\t\t\tconst packagePath = request.resolve(specifier);\n\t\t\treturn path.resolve(path.dirname(packagePath), \"bin\", \"yarn.js\");\n\t\t} catch {\n\t\t\treturn \"yarn\";\n\t\t}\n\t}\n}\n//#endregion\nexport { discoverWorkspace, getScript, readPackageJson, setScript, writePackageJson };\n\n//# sourceMappingURL=index.js.map","/**\n * Escapes a character if it has a special meaning in regular expressions\n * and returns the character as is if it doesn't\n */\nfunction escapeRegExpChar(char) {\n if (char === '-' ||\n char === '^' ||\n char === '$' ||\n char === '+' ||\n char === '.' ||\n char === '(' ||\n char === ')' ||\n char === '|' ||\n char === '[' ||\n char === ']' ||\n char === '{' ||\n char === '}' ||\n char === '*' ||\n char === '?' ||\n char === '\\\\') {\n return \"\\\\\".concat(char);\n }\n else {\n return char;\n }\n}\n/**\n * Escapes all characters in a given string that have a special meaning in regular expressions\n */\nfunction escapeRegExpString(str) {\n var result = '';\n for (var i = 0; i < str.length; i++) {\n result += escapeRegExpChar(str[i]);\n }\n return result;\n}\n/**\n * Transforms one or more glob patterns into a RegExp pattern\n */\nfunction transform(pattern, separator) {\n if (separator === void 0) { separator = true; }\n if (Array.isArray(pattern)) {\n var regExpPatterns = pattern.map(function (p) { return \"^\".concat(transform(p, separator), \"$\"); });\n return \"(?:\".concat(regExpPatterns.join('|'), \")\");\n }\n var separatorSplitter = '';\n var separatorMatcher = '';\n var wildcard = '.';\n if (separator === true) {\n separatorSplitter = '/';\n separatorMatcher = '[/\\\\\\\\]';\n wildcard = '[^/\\\\\\\\]';\n }\n else if (separator) {\n separatorSplitter = separator;\n separatorMatcher = escapeRegExpString(separatorSplitter);\n if (separatorMatcher.length > 1) {\n separatorMatcher = \"(?:\".concat(separatorMatcher, \")\");\n wildcard = \"((?!\".concat(separatorMatcher, \").)\");\n }\n else {\n wildcard = \"[^\".concat(separatorMatcher, \"]\");\n }\n }\n var requiredSeparator = separator ? \"\".concat(separatorMatcher, \"+?\") : '';\n var optionalSeparator = separator ? \"\".concat(separatorMatcher, \"*?\") : '';\n var segments = separator ? pattern.split(separatorSplitter) : [pattern];\n var result = '';\n for (var s = 0; s < segments.length; s++) {\n var segment = segments[s];\n var nextSegment = segments[s + 1];\n var currentSeparator = '';\n if (!segment && s > 0) {\n continue;\n }\n if (separator) {\n if (s === segments.length - 1) {\n currentSeparator = optionalSeparator;\n }\n else if (nextSegment !== '**') {\n currentSeparator = requiredSeparator;\n }\n else {\n currentSeparator = '';\n }\n }\n if (separator && segment === '**') {\n if (currentSeparator) {\n result +=\n s === 0\n ? ''\n : s === segments.length - 1\n ? \"(?:\".concat(requiredSeparator, \"|$)\")\n : requiredSeparator;\n result += \"(?:\".concat(wildcard, \"*?\").concat(currentSeparator, \")*?\");\n }\n continue;\n }\n for (var c = 0; c < segment.length; c++) {\n var char = segment[c];\n if (char === '\\\\') {\n if (c < segment.length - 1) {\n result += escapeRegExpChar(segment[c + 1]);\n c++;\n }\n }\n else if (char === '?') {\n result += wildcard;\n }\n else if (char === '*') {\n result += \"\".concat(wildcard, \"*?\");\n }\n else {\n result += escapeRegExpChar(char);\n }\n }\n result += currentSeparator;\n }\n return result;\n}\n\nfunction isMatch(regexp, sample) {\n if (typeof sample !== 'string') {\n throw new TypeError(\"Sample must be a string, but \".concat(typeof sample, \" given\"));\n }\n return regexp.test(sample);\n}\n/**\n * Compiles one or more glob patterns into a RegExp and returns an isMatch function.\n * The isMatch function takes a sample string as its only argument and returns `true`\n * if the string matches the pattern(s).\n *\n * ```js\n * wildcardMatch('src/*.js')('src/index.js') //=> true\n * ```\n *\n * ```js\n * const isMatch = wildcardMatch('*.example.com', '.')\n * isMatch('foo.example.com') //=> true\n * isMatch('foo.bar.com') //=> false\n * ```\n */\nfunction wildcardMatch(pattern, options) {\n if (typeof pattern !== 'string' && !Array.isArray(pattern)) {\n throw new TypeError(\"The first argument must be a single pattern string or an array of patterns, but \".concat(typeof pattern, \" given\"));\n }\n if (typeof options === 'string' || typeof options === 'boolean') {\n options = { separator: options };\n }\n if (arguments.length === 2 &&\n !(typeof options === 'undefined' ||\n (typeof options === 'object' && options !== null && !Array.isArray(options)))) {\n throw new TypeError(\"The second argument must be an options object or a string/boolean separator, but \".concat(typeof options, \" given\"));\n }\n options = options || {};\n if (options.separator === '\\\\') {\n throw new Error('\\\\ is not a valid separator because it is used for escaping. Try setting the separator to `true` instead');\n }\n var regexpPattern = transform(pattern, options.separator);\n var regexp = new RegExp(\"^\".concat(regexpPattern, \"$\"), options.flags);\n var fn = isMatch.bind(null, regexp);\n fn.options = options;\n fn.pattern = pattern;\n fn.regexp = regexp;\n return fn;\n}\n\nexport { wildcardMatch as default };\n//# sourceMappingURL=index.es.mjs.map\n","import { getScript, readPackageJson } from \"@moniq/workspace\";\nimport path from \"node:path\";\nimport wcmatch from \"wildcard-match\";\n//#region src/scripts.ts\nasync function resolveScriptPolicies(scriptsConfig, root, packages_) {\n\tconst diagnostics = [];\n\tconst entries = Object.entries(scriptsConfig ?? {});\n\tfor (const [scriptName, policyOrArray] of entries) {\n\t\tconst policies = Array.isArray(policyOrArray) ? policyOrArray : [policyOrArray];\n\t\tfor (const package_ of packages_) {\n\t\t\tconst relativePath = path.relative(root, package_.path);\n\t\t\tconst policy = pickPolicy(policies, relativePath);\n\t\t\tif (policy !== void 0 && policy.severity !== \"off\") await resolvePolicy(policy, scriptName, package_, relativePath, diagnostics);\n\t\t}\n\t}\n\treturn diagnostics;\n}\nfunction isCommandMatch(actual, expected) {\n\tif (typeof expected === \"function\") return expected(actual);\n\tif (expected instanceof RegExp) return expected.test(actual);\n\treturn actual === expected;\n}\nfunction isGlobMatch(pattern, relativePath) {\n\tif (pattern === \"*\") return true;\n\tif (pattern === \".\") return relativePath === \".\" || relativePath === \"\";\n\treturn wcmatch(pattern)(relativePath);\n}\nfunction isMatchAny(patterns, relativePath) {\n\tfor (const pattern of patterns) if (isGlobMatch(pattern, relativePath)) return true;\n\treturn false;\n}\nfunction isPolicyMatch(policy, relativePath) {\n\tconst include = policy.include ?? [\"*\"];\n\tconst exclude = policy.exclude ?? [];\n\treturn isMatchAny(include, relativePath) && !isMatchAny(exclude, relativePath);\n}\nfunction pickPolicy(policies, relativePath) {\n\tfor (const policy of policies) if (isPolicyMatch(policy, relativePath)) return policy;\n}\nasync function resolvePolicy(policy, scriptName, package_, relativePath, diagnostics) {\n\tconst packageJson = await readPackageJson(path.join(package_.path, \"package.json\"));\n\tconst packageDisplayName = packageJson[\"name\"] ?? path.basename(package_.path);\n\tconst hasScript = getScript(packageJson, scriptName) !== void 0;\n\tconst severity = policy.severity ?? \"error\";\n\tif (policy.required !== false && !hasScript) {\n\t\tdiagnostics.push({\n\t\t\tfix: policy.autofix && typeof policy.command === \"string\" ? policy.command : void 0,\n\t\t\tmessage: `Missing required script \"${scriptName}\"`,\n\t\t\tpackageName: packageDisplayName,\n\t\t\tpackagePath: package_.path,\n\t\t\tscriptName,\n\t\t\tseverity\n\t\t});\n\t\treturn;\n\t}\n\tif (policy.command === void 0 || !hasScript) return;\n\tif (policy.allowCustomCommands !== void 0 && isMatchAny(policy.allowCustomCommands, relativePath)) return;\n\tconst actualCommand = getScript(packageJson, scriptName);\n\tif (actualCommand !== void 0 && isCommandMatch(actualCommand, policy.command)) return;\n\tdiagnostics.push({\n\t\tactual: actualCommand,\n\t\texpected: typeof policy.command === \"string\" ? policy.command : void 0,\n\t\tfix: policy.autofix && typeof policy.command === \"string\" ? policy.command : void 0,\n\t\tmessage: `Unexpected command for script \"${scriptName}\"`,\n\t\tpackageName: packageDisplayName,\n\t\tpackagePath: package_.path,\n\t\tscriptName,\n\t\tseverity\n\t});\n}\n//#endregion\n//#region src/index.ts\nasync function resolve(config, root, packages_) {\n\tconst diagnostics = [];\n\tconst scriptDiags = await resolveScriptPolicies(config.scripts, root, packages_);\n\tdiagnostics.push(...scriptDiags);\n\treturn diagnostics;\n}\n//#endregion\nexport { resolve };\n\n//# sourceMappingURL=index.js.map","import { cac } from \"cac\";\nimport { loadConfig } from \"@moniq/config\";\nimport { resolve } from \"@moniq/core\";\nimport { discoverWorkspace } from \"@moniq/workspace\";\nimport { styleText } from \"node:util\";\nimport path from \"node:path\";\nimport { access } from \"node:fs/promises\";\n//#region src/format.ts\nfunction formatDiagnostics(diagnostics, options) {\n\tif ((options?.format ?? \"pretty\") === \"json\") return formatJson(diagnostics);\n\treturn formatPretty(diagnostics, options?.isDryRun);\n}\nfunction formatJson(diagnostics) {\n\treturn `${JSON.stringify(diagnostics, void 0, 2)}\\n`;\n}\nfunction formatPretty(diagnostics, isDryRun) {\n\tif (diagnostics.length === 0) return styleText([\"bold\", \"green\"], \"✅ No issues found.\");\n\tconst lines = [];\n\tconst byPackage = /* @__PURE__ */ new Map();\n\tfor (const d of diagnostics) {\n\t\tconst array = byPackage.get(d.packageName);\n\t\tif (array) array.push(d);\n\t\telse byPackage.set(d.packageName, [d]);\n\t}\n\tfor (const [packageName, diags] of byPackage) {\n\t\tlines.push(\"\", `📦 ${styleText([\"bold\", \"cyan\"], packageName)}`);\n\t\tfor (const d of diags) pushDiagnostic(lines, d, isDryRun);\n\t}\n\tconst errorCount = diagnostics.filter((d) => d.severity === \"error\").length;\n\tconst warningCount = diagnostics.filter((d) => d.severity === \"warn\").length;\n\tconst countParts = [];\n\tif (errorCount > 0) countParts.push(styleText(\"red\", `${String(errorCount)} error(s)`));\n\tif (warningCount > 0) countParts.push(styleText(\"yellow\", `${String(warningCount)} warning(s)`));\n\tconst summary = countParts.join(\", \");\n\tconst summaryLine = `📋 Found ${String(diagnostics.length)} issue(s) — ${summary.length > 0 ? summary : \"all clear\"}`;\n\tlines.push(\"\", styleText(\"dim\", summaryLine));\n\tif (isDryRun) {\n\t\tconst fixableCount = diagnostics.filter((d) => d.fix && d.severity !== \"off\").length;\n\t\tlines.push(\"\", styleText(\"dim\", `🔮 Dry-run: ${String(fixableCount)} fix(es) available`));\n\t}\n\treturn lines.join(\"\\n\");\n}\nfunction pushDiagnostic(lines, d, isDryRun) {\n\tconst badge = severityBadge(d.severity);\n\tconst emoji = severityEmoji(d.severity);\n\tlines.push(` ${emoji} ${badge} ${d.message}`);\n\tif (d.expected && d.actual) lines.push(` ${styleText(\"dim\", \"Expected:\")} ${styleText(\"cyan\", d.expected)}`, ` ${styleText(\"dim\", \"Actual:\")} ${styleText(\"red\", d.actual)}`);\n\telse if (d.expected) lines.push(` ${styleText(\"dim\", \"Expected:\")} ${styleText(\"cyan\", d.expected)}`);\n\telse if (d.actual) lines.push(` ${styleText(\"dim\", \"Actual:\")} ${styleText(\"red\", d.actual)}`);\n\tif (d.fix) {\n\t\tconst label = styleText(\"dim\", isDryRun ? \"Would fix:\" : \"Fix:\");\n\t\tconst icon = isDryRun ? \"🔮\" : \"🔧\";\n\t\tlines.push(` ${icon} ${label} ${d.fix}`);\n\t}\n}\nfunction severityBadge(severity) {\n\tif (severity === \"error\") return styleText([\"bold\", \"red\"], \"ERROR\");\n\tif (severity === \"warn\") return styleText([\"bold\", \"yellow\"], \"WARN\");\n\treturn styleText(\"gray\", \"OFF\");\n}\nfunction severityEmoji(severity) {\n\tif (severity === \"error\") return \"❌\";\n\tif (severity === \"warn\") return \"⚠️ \";\n\treturn \"⚪\";\n}\n//#endregion\n//#region src/scripts.ts\nasync function applyScriptFixes(diagnostics, options) {\n\tconst fixable = diagnostics.filter((d) => d.fix && d.severity !== \"off\");\n\tconst isDryRun = options?.isDryRun ?? false;\n\tlet fixed = 0;\n\tlet errors = 0;\n\tconst packages = /* @__PURE__ */ new Set();\n\tfor (const d of fixable) {\n\t\tif (!d.fix) continue;\n\t\tif (isDryRun) {\n\t\t\tfixed++;\n\t\t\tpackages.add(d.packagePath);\n\t\t\tcontinue;\n\t\t}\n\t\ttry {\n\t\t\tconst packageFilePath = path.join(d.packagePath, \"package.json\");\n\t\t\tconst { readFile, writeFile } = await import(\"node:fs/promises\");\n\t\t\tconst content = await readFile(packageFilePath, \"utf8\");\n\t\t\tconst package_ = JSON.parse(content);\n\t\t\tconst scriptName = d.scriptName;\n\t\t\tif (!scriptName) continue;\n\t\t\tconst scriptsRecord = package_[\"scripts\"];\n\t\t\tif (scriptsRecord) {\n\t\t\t\tconst entries = Object.entries(scriptsRecord);\n\t\t\t\tif (!Object.hasOwn(scriptsRecord, scriptName)) entries.push([scriptName, d.fix]);\n\t\t\t\tpackage_[\"scripts\"] = Object.fromEntries(entries.map(([name, command]) => {\n\t\t\t\t\treturn name === scriptName ? [name, d.fix ?? command] : [name, command];\n\t\t\t\t}));\n\t\t\t}\n\t\t\tawait writeFile(packageFilePath, `${JSON.stringify(package_, void 0, 2)}\\n`, \"utf8\");\n\t\t\tfixed++;\n\t\t\tpackages.add(d.packagePath);\n\t\t} catch {\n\t\t\terrors++;\n\t\t}\n\t}\n\treturn {\n\t\terrors,\n\t\tfixed,\n\t\tisDryRun,\n\t\tpackageCount: packages.size\n\t};\n}\n//#endregion\n//#region src/commands/check.ts\nasync function check(options) {\n\tconst cwd = process.cwd();\n\tlet config;\n\ttry {\n\t\tconfig = await loadConfig(cwd);\n\t} catch {\n\t\tthrow new Error(\"No moniq.config file found in or above the current directory.\");\n\t}\n\tconst packages = discoverWorkspace(cwd);\n\tif (packages.length === 0) throw new Error(\"No workspace packages found.\");\n\tconst diagnostics = await resolve(config, cwd, packages);\n\tlet fixSummary;\n\tif (options.fix) fixSummary = await applyScriptFixes(diagnostics, { isDryRun: options.isDryRun });\n\tif (options.format !== \"json\") {\n\t\tconsole.log(` 🔍 Scanned ${String(packages.length)} package(s)`);\n\t\tconsole.log();\n\t}\n\tconsole.log(formatDiagnostics(diagnostics, {\n\t\tformat: options.format,\n\t\tisDryRun: options.isDryRun\n\t}));\n\tif (fixSummary) if (fixSummary.isDryRun) {\n\t\tconst message = `🔮 Dry-run: ${String(fixSummary.fixed)} fix(es) available, ${String(fixSummary.errors)} error(s)`;\n\t\tconsole.log(styleText(\"dim\", message));\n\t} else {\n\t\tconst message = `✅ Fixed ${String(fixSummary.fixed)} issue(s) across ${String(fixSummary.packageCount)} package(s)`;\n\t\tconsole.log(styleText([\"bold\", \"green\"], message));\n\t}\n}\n//#endregion\n//#region src/commands/doctor.ts\nasync function doctor() {\n\tconst cwd = process.cwd();\n\tconst issues = [];\n\ttry {\n\t\tconst config = await loadConfig(cwd);\n\t\tissues.push({\n\t\t\tmessage: \"moniq.config file found and loadable.\",\n\t\t\tseverity: \"warn\"\n\t\t});\n\t\tcheckScriptPolicies(config, issues);\n\t} catch {\n\t\tissues.push({\n\t\t\tmessage: \"No moniq.config file found in or above the current directory.\",\n\t\t\tseverity: \"error\"\n\t\t});\n\t}\n\ttry {\n\t\tconst packageCount = discoverWorkspace(cwd).length;\n\t\tif (packageCount === 0) issues.push({\n\t\t\tmessage: \"No workspace packages detected. Check your workspace configuration.\",\n\t\t\tseverity: \"warn\"\n\t\t});\n\t\telse issues.push({\n\t\t\tmessage: `Detected ${String(packageCount)} workspace package(s).`,\n\t\t\tseverity: \"warn\"\n\t\t});\n\t} catch {\n\t\tissues.push({\n\t\t\tmessage: \"Failed to discover workspace packages. Ensure a lock file or packageManager field is present.\",\n\t\t\tseverity: \"error\"\n\t\t});\n\t}\n\tconsole.log();\n\tconsole.log(` ${styleText(\"bold\", \"🏥 Configuration Doctor\")}`);\n\tconsole.log();\n\tif (issues.length === 0) {\n\t\tconsole.log(` ${styleText([\"bold\", \"green\"], \"✅ Everything looks good!\")}`);\n\t\treturn;\n\t}\n\tfor (const issue of issues) {\n\t\tconst icon = issue.severity === \"error\" ? \"❌\" : \"⚠️ \";\n\t\tconst label = issue.severity === \"error\" ? styleText([\"bold\", \"red\"], \"ERROR\") : styleText([\"bold\", \"yellow\"], \"WARN\");\n\t\tconsole.log(` ${icon} ${label} ${issue.message}`);\n\t}\n\tconst errorCount = issues.filter((index) => index.severity === \"error\").length;\n\tconst warningCount = issues.filter((index) => index.severity === \"warn\").length;\n\tconst summary = styleText(\"dim\", `Found ${`${String(errorCount)} error(s)`}, ${`${String(warningCount)} warning(s)`}`);\n\tconsole.log();\n\tconsole.log(` ${summary}`);\n\tif (errorCount > 0) {\n\t\tconst tip = styleText([\"bold\", \"cyan\"], \"💡 Tip:\");\n\t\tconst hint = styleText(\"dim\", \"moniq init\");\n\t\tconsole.log();\n\t\tconsole.log(` ${tip} Run ${hint} to scaffold a starter configuration.`);\n\t}\n}\nfunction checkScriptPolicies(config, issues) {\n\tconst scripts = config.scripts;\n\tif (!scripts) return;\n\tfor (const [name, policyOrArray] of Object.entries(scripts)) {\n\t\tconst policies = Array.isArray(policyOrArray) ? policyOrArray : [policyOrArray];\n\t\tfor (const policy of policies) {\n\t\t\tconst sev = policy.severity;\n\t\t\tif (sev !== void 0 && ![\n\t\t\t\t\"error\",\n\t\t\t\t\"off\",\n\t\t\t\t\"warn\"\n\t\t\t].includes(sev)) issues.push({\n\t\t\t\tmessage: `Script policy \"${name}\" has invalid severity \"${sev}\".`,\n\t\t\t\tseverity: \"error\"\n\t\t\t});\n\t\t}\n\t}\n}\n//#endregion\n//#region src/banner.ts\nconst colorFns = [\n\t(s) => styleText(\"cyan\", s),\n\t(s) => styleText(\"magenta\", s),\n\t(s) => styleText(\"green\", s),\n\t(s) => styleText(\"yellow\", s),\n\t(s) => styleText(\"blue\", s)\n];\nconst letterRows = [\n\t[\n\t\t\"███╗ ███╗\",\n\t\t\"████╗ ████║\",\n\t\t\"██╔████╔██║\",\n\t\t\"██║╚██╔╝██║\",\n\t\t\"██║ ╚═╝ ██║\",\n\t\t\"╚═╝ ╚═╝\"\n\t],\n\t[\n\t\t\" ██████╗ \",\n\t\t\"██╔═══██╗\",\n\t\t\"██║ ██║\",\n\t\t\"██║ ██║\",\n\t\t\"╚██████╔╝\",\n\t\t\" ╚═════╝ \"\n\t],\n\t[\n\t\t\"███╗ ██╗\",\n\t\t\"████╗ ██║\",\n\t\t\"██╔██╗ ██║\",\n\t\t\"██║╚██╗██║\",\n\t\t\"██║ ╚████║\",\n\t\t\"╚═╝ ╚═══╝\"\n\t],\n\t[\n\t\t\"██╗\",\n\t\t\"██║\",\n\t\t\"██║\",\n\t\t\"██║\",\n\t\t\"██║\",\n\t\t\"╚═╝\"\n\t],\n\t[\n\t\t\" ██████╗ \",\n\t\t\"██╔═══██╗\",\n\t\t\"██║ ██║\",\n\t\t\"██║ ██║\",\n\t\t\"╚██████╔╝\",\n\t\t\" ╚════╝╗ \"\n\t]\n];\nconst DESCRIPTION = \"Policy-driven workspace linter for JavaScript/TypeScript monorepos.\";\nfunction renderBanner() {\n\tconst lines = [];\n\tfor (let rowIndex = 0; rowIndex < 6; rowIndex++) lines.push(assembleRow(rowIndex));\n\tconst description = centerPad(DESCRIPTION, 62);\n\tlines.push(\"\", description);\n\treturn lines.join(\"\\n\");\n}\nfunction assembleRow(rowIndex) {\n\tlet row = \" \".repeat(6);\n\tfor (let columnIndex = 0; columnIndex < 5; columnIndex++) {\n\t\trow += rowPart(columnIndex, rowIndex);\n\t\tif (columnIndex < 4) row += \" \";\n\t}\n\treturn row;\n}\nfunction centerPad(text, width) {\n\tconst pad = Math.max(0, Math.floor((width - text.length) / 2));\n\treturn \" \".repeat(pad) + text;\n}\nfunction rowPart(columnIndex, rowIndex) {\n\tconst rows = letterRows.at(columnIndex);\n\tconst colorFunction = colorFns.at(columnIndex);\n\tif (rows === void 0 || colorFunction === void 0) return \"\";\n\tconst line = rows.at(rowIndex);\n\treturn line === void 0 ? \"\" : colorFunction(line);\n}\n//#endregion\n//#region src/commands/init.ts\nconst SUPPORTED_LANGS = [\n\t\"ts\",\n\t\"js\",\n\t\"mjs\",\n\t\"cjs\",\n\t\"mts\",\n\t\"cts\"\n];\nconst STARTER_CONFIG = `import { defineConfig } from \"@udohjeremiah/moniq\";\n\nexport default defineConfig({\n scripts: {\n dev: { required: true },\n build: { required: true },\n lint: { required: true },\n },\n});\n`;\nasync function init(options) {\n\tconst { lang } = options;\n\tif (!SUPPORTED_LANGS.includes(lang)) {\n\t\tconst unsupportedMessage = `Unsupported --lang \"${lang}\". Supported: ${SUPPORTED_LANGS.join(\", \")}`;\n\t\tconsole.error(` ${styleText(\"yellow\", unsupportedMessage)}`);\n\t\tprocess.exitCode = 1;\n\t\treturn;\n\t}\n\tconst cwd = process.cwd();\n\tconst filename = `moniq.config.${lang}`;\n\tconst targetPath = path.join(cwd, filename);\n\ttry {\n\t\tawait access(targetPath);\n\t\tconst existsMessage = `⚠️ ${filename} already exists. Remove it first to reinitialize.`;\n\t\tconsole.log(` ${styleText(\"yellow\", existsMessage)}`);\n\t\treturn;\n\t} catch {}\n\tconst { writeFile } = await import(\"node:fs/promises\");\n\tawait writeFile(targetPath, STARTER_CONFIG, \"utf8\");\n\tconsole.log(renderBanner());\n\tconsole.log();\n\tconst created = `✅ Created ${filename}`;\n\tconsole.log(` ${styleText([\"bold\", \"green\"], created)}`);\n\tconsole.log();\n\tconsole.log(` ${styleText(\"dim\", \"Next steps:\")}`);\n\tconsole.log(` 1. ${styleText(\"dim\", \"Edit\")} ${styleText(\"cyan\", filename)} ${styleText(\"dim\", \"to configure your script policies.\")}`);\n\tconsole.log(` 2. ${styleText(\"dim\", \"Run\")} ${styleText(\"cyan\", \"moniq doctor\")} ${styleText(\"dim\", \"to verify your configuration.\")}`);\n\tconsole.log(` 3. ${styleText(\"dim\", \"Run\")} ${styleText(\"cyan\", \"moniq check\")} ${styleText(\"dim\", \"to validate your workspace.\")}`);\n\tconsole.log(` 4. ${styleText(\"dim\", \"Run\")} ${styleText(\"cyan\", \"moniq fix\")} ${styleText(\"dim\", \"to apply automatic fixes.\")}`);\n\tconsole.log();\n}\n//#endregion\n//#region src/index.ts\nconst cli = cac(\"moniq\");\ncli.command(\"check\", \"Run policy checks\").option(\"--format <fmt>\", \"Output format: pretty or json\", { default: \"pretty\" }).action(async (options) => {\n\tconst fmt = typeof options[\"format\"] === \"string\" ? options[\"format\"] : \"pretty\";\n\ttry {\n\t\tawait check({\n\t\t\tfix: false,\n\t\t\tformat: fmt\n\t\t});\n\t} catch (error) {\n\t\tconsole.error(String(error));\n\t\tprocess.exitCode = 1;\n\t}\n});\ncli.command(\"fix\", \"Run policy checks and apply autofixes\").option(\"--dry-run\", \"Preview autofixes without writing to files\").option(\"--format <fmt>\", \"Output format: pretty or json\", { default: \"pretty\" }).action(async (options) => {\n\tconst isDryRun = options[\"dryRun\"] === true;\n\tconst fmt = typeof options[\"format\"] === \"string\" ? options[\"format\"] : \"pretty\";\n\ttry {\n\t\tawait check({\n\t\t\tfix: true,\n\t\t\tformat: fmt,\n\t\t\tisDryRun\n\t\t});\n\t} catch (error) {\n\t\tconsole.error(String(error));\n\t\tprocess.exitCode = 1;\n\t}\n});\ncli.command(\"doctor\", \"Detect configuration mistakes\").action(async () => {\n\tawait doctor();\n});\ncli.command(\"init\", \"Scaffold a moniq.config file in the current directory\").option(\"--lang <type>\", \"Config language: ts, js, mjs, cjs, mts, cts (default: ts)\").action(async (options) => {\n\tawait init({ lang: typeof options[\"lang\"] === \"string\" ? options[\"lang\"] : \"ts\" });\n});\ncli.help();\ncli.parse();\n//#endregion\nexport {};\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,2],"mappings":"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"}
|