@powerlines/plugin-automd 0.1.257 → 0.1.259

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.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
2
  const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
3
- const require_index = require('./node_modules/.pnpm/automd@0.4.3_patch_hash_0fe864a2d6fa1461e144747e5f0fbc0a5fb51435ec6b3217ffb18ff2d7058778_magicast@0.5.1/node_modules/automd/dist/index.cjs');
3
+ const require_index = require('./node_modules/.pnpm/automd@0.4.3_patch_hash_eda0f5e1a231f7e59da63ccf6f48997906058c497d5c8d863b831644dfa7c5b7_magicast@0.5.1/node_modules/automd/dist/index.cjs');
4
4
  let __stryke_convert_to_array = require("@stryke/convert/to-array");
5
5
  let __stryke_fs_is_file = require("@stryke/fs/is-file");
6
6
  let __stryke_fs_list_files = require("@stryke/fs/list-files");
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { loadConfig as loadConfig$1, resolveConfig, transform } from "./node_modules/.pnpm/automd@0.4.3_patch_hash_0fe864a2d6fa1461e144747e5f0fbc0a5fb51435ec6b3217ffb18ff2d7058778_magicast@0.5.1/node_modules/automd/dist/index.mjs";
1
+ import { loadConfig as loadConfig$1, resolveConfig, transform } from "./node_modules/.pnpm/automd@0.4.3_patch_hash_eda0f5e1a231f7e59da63ccf6f48997906058c497d5c8d863b831644dfa7c5b7_magicast@0.5.1/node_modules/automd/dist/index.mjs";
2
2
  import { toArray } from "@stryke/convert/to-array";
3
3
  import { isDirectory } from "@stryke/fs/is-file";
4
4
  import { listFiles } from "@stryke/fs/list-files";
@@ -10,7 +10,7 @@ let node_fs = require("node:fs");
10
10
  let node_fs_promises = require("node:fs/promises");
11
11
  let defu = require("defu");
12
12
 
13
- //#region ../../node_modules/.pnpm/automd@0.4.3_patch_hash=0fe864a2d6fa1461e144747e5f0fbc0a5fb51435ec6b3217ffb18ff2d7058778_magicast@0.5.1/node_modules/automd/dist/index.mjs
13
+ //#region ../../node_modules/.pnpm/automd@0.4.3_patch_hash=eda0f5e1a231f7e59da63ccf6f48997906058c497d5c8d863b831644dfa7c5b7_magicast@0.5.1/node_modules/automd/dist/index.mjs
14
14
  function defineGenerator(generator) {
15
15
  return generator;
16
16
  }
@@ -510,9 +510,9 @@ var generators_default = {
510
510
  contributors,
511
511
  "dir-tree": dirTree
512
512
  };
513
- function findBlocks(md) {
513
+ function findBlocks(md, config) {
514
514
  const blocks = [];
515
- for (const match of md.matchAll(/^(?<open><!--\s*automd:(?<generator>.+?)\s+(?<args>.*?)\s*-->)(?<contents>.+?)(?<close>^<!--\s*\/automd\s*-->)/gimsu)) {
515
+ for (const match of md.matchAll(new RegExp(`^(?<open><!--\s*(${config.prefix.join("|")}):(?<generator>.+?)\s+(?<args>.*?)\s*-->)(?<contents>.+?)(?<close>^<!--\s*\/(${config.prefix.join("|")})\s*-->)`, "gimsu"))) {
516
516
  if (match.index === void 0 || !match.groups) continue;
517
517
  const start = match.index + match.groups.open.length || 0;
518
518
  const end = start + match.groups.contents.length;
@@ -532,8 +532,8 @@ function findBlocks(md) {
532
532
  }
533
533
  return blocks;
534
534
  }
535
- function containsAutomd(md) {
536
- return /^<!--\s*automd:/gimsu.test(md);
535
+ function containsAutomd(md, config) {
536
+ return new RegExp(`^<!--\\s*(${config.prefix.join("|")}):`, "gimsu").test(md);
537
537
  }
538
538
  function parseRawArgs(rawArgs) {
539
539
  const args = Object.create(null);
@@ -556,6 +556,10 @@ function resolveConfig(config) {
556
556
  [RESOLVED_CONFIG_SYMBOL]: true,
557
557
  ...config
558
558
  };
559
+ _config.prefix = _config.prefix || [];
560
+ if (typeof _config.prefix === "string") _config.prefix = [_config.prefix];
561
+ if (!_config.prefix.includes("automd")) _config.prefix.push("automd");
562
+ if (!_config.prefix.includes("powerlines")) _config.prefix.push("powerlines");
559
563
  _config.dir = require_pathe_M_eThtNZ.resolve(_config.dir);
560
564
  _config.input = (Array.isArray(_config.input) ? _config.input : [_config.input]).filter(Boolean);
561
565
  return _config;
@@ -588,7 +592,7 @@ async function transform(contents, _config, url) {
588
592
  ...generators_default,
589
593
  ...config.generators
590
594
  };
591
- const blocks = findBlocks(contents);
595
+ const blocks = findBlocks(contents, config);
592
596
  for (const block of blocks) {
593
597
  const result = await _transformBlock(block, config, generators, url);
594
598
  if (result.unwrap) editor.overwrite(block._loc.start, block._loc.end, `${result.contents.trim()}`);
@@ -9,7 +9,7 @@ import { promises } from "node:fs";
9
9
  import { readFile, readdir, stat } from "node:fs/promises";
10
10
  import { defu as defu$1 } from "defu";
11
11
 
12
- //#region ../../node_modules/.pnpm/automd@0.4.3_patch_hash=0fe864a2d6fa1461e144747e5f0fbc0a5fb51435ec6b3217ffb18ff2d7058778_magicast@0.5.1/node_modules/automd/dist/index.mjs
12
+ //#region ../../node_modules/.pnpm/automd@0.4.3_patch_hash=eda0f5e1a231f7e59da63ccf6f48997906058c497d5c8d863b831644dfa7c5b7_magicast@0.5.1/node_modules/automd/dist/index.mjs
13
13
  function defineGenerator(generator) {
14
14
  return generator;
15
15
  }
@@ -509,9 +509,9 @@ var generators_default = {
509
509
  contributors,
510
510
  "dir-tree": dirTree
511
511
  };
512
- function findBlocks(md) {
512
+ function findBlocks(md, config) {
513
513
  const blocks = [];
514
- for (const match of md.matchAll(/^(?<open><!--\s*automd:(?<generator>.+?)\s+(?<args>.*?)\s*-->)(?<contents>.+?)(?<close>^<!--\s*\/automd\s*-->)/gimsu)) {
514
+ for (const match of md.matchAll(new RegExp(`^(?<open><!--\s*(${config.prefix.join("|")}):(?<generator>.+?)\s+(?<args>.*?)\s*-->)(?<contents>.+?)(?<close>^<!--\s*\/(${config.prefix.join("|")})\s*-->)`, "gimsu"))) {
515
515
  if (match.index === void 0 || !match.groups) continue;
516
516
  const start = match.index + match.groups.open.length || 0;
517
517
  const end = start + match.groups.contents.length;
@@ -531,8 +531,8 @@ function findBlocks(md) {
531
531
  }
532
532
  return blocks;
533
533
  }
534
- function containsAutomd(md) {
535
- return /^<!--\s*automd:/gimsu.test(md);
534
+ function containsAutomd(md, config) {
535
+ return new RegExp(`^<!--\\s*(${config.prefix.join("|")}):`, "gimsu").test(md);
536
536
  }
537
537
  function parseRawArgs(rawArgs) {
538
538
  const args = Object.create(null);
@@ -555,6 +555,10 @@ function resolveConfig(config) {
555
555
  [RESOLVED_CONFIG_SYMBOL]: true,
556
556
  ...config
557
557
  };
558
+ _config.prefix = _config.prefix || [];
559
+ if (typeof _config.prefix === "string") _config.prefix = [_config.prefix];
560
+ if (!_config.prefix.includes("automd")) _config.prefix.push("automd");
561
+ if (!_config.prefix.includes("powerlines")) _config.prefix.push("powerlines");
558
562
  _config.dir = resolve(_config.dir);
559
563
  _config.input = (Array.isArray(_config.input) ? _config.input : [_config.input]).filter(Boolean);
560
564
  return _config;
@@ -587,7 +591,7 @@ async function transform(contents, _config, url) {
587
591
  ...generators_default,
588
592
  ...config.generators
589
593
  };
590
- const blocks = findBlocks(contents);
594
+ const blocks = findBlocks(contents, config);
591
595
  for (const block of blocks) {
592
596
  const result = await _transformBlock(block, config, generators, url);
593
597
  if (result.unwrap) editor.overwrite(block._loc.start, block._loc.end, `${result.contents.trim()}`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["defu","badges","md","loadConfig"],"sources":["../../../../../../../../../node_modules/.pnpm/automd@0.4.3_patch_hash=eda0f5e1a231f7e59da63ccf6f48997906058c497d5c8d863b831644dfa7c5b7_magicast@0.5.1/node_modules/automd/dist/index.mjs"],"sourcesContent":["import { existsSync, promises } from \"node:fs\";\nimport { basename, dirname, extname, join, relative, resolve } from \"pathe\";\nimport { fileURLToPath, findExportNames, pathToFileURL, resolvePath } from \"mlly\";\nimport { debounce } from \"perfect-debounce\";\nimport MagicString from \"magic-string\";\nimport { camelCase, titleCase } from \"scule\";\nimport { readPackageJSON } from \"pkg-types\";\nimport { defu } from \"defu\";\nimport { image, link, md } from \"mdbox\";\nimport { readFile, readdir, stat } from \"node:fs/promises\";\nimport { destr } from \"destr\";\nfunction defineGenerator(generator) {\n\treturn generator;\n}\nfunction resolvePath$1(path, { url, dir }) {\n\tif (path.startsWith(\"/\")) return join(dir, path);\n\treturn url ? fileURLToPath(new URL(path, url)) : resolve(dir, path);\n}\nasync function getPkg(dir, input = {}) {\n\tconst pkg = await readPackageJSON(dir).catch(() => void 0);\n\treturn defu({\n\t\tname: input.name,\n\t\tversion: typeof input.version === \"string\" ? input.version : void 0,\n\t\tgithub: input.github || input.gh\n\t}, {\n\t\tname: pkg?.name,\n\t\tversion: pkg?.version,\n\t\tgithub: _getGitRepo(pkg?.repository)\n\t}, {\n\t\tname: process.env.npm_package_name,\n\t\tversion: process.env.npm_package_version\n\t});\n}\nfunction _getGitRepo(repo) {\n\tconst url = typeof repo === \"string\" ? repo : repo?.url;\n\tif (!url || typeof url !== \"string\") return;\n\tconst match = /(?:https:\\/\\/github\\.com\\/|gh:|github:|)([\\w-]+)\\/([\\w-]+)/.exec(url);\n\tif (match && match[1] && match[2]) return `${match[1]}/${match[2]}`;\n}\nconst jsdocs = defineGenerator({\n\tname: \"jsdocs\",\n\tasync generate({ config, args, url }) {\n\t\tconst { loadSchema } = await import(\"untyped/loader\");\n\t\treturn { contents: _render(await loadSchema(resolvePath$1(args.src, {\n\t\t\turl,\n\t\t\tdir: config.dir\n\t\t}), { jiti: {\n\t\t\tfsCache: false,\n\t\t\tmoduleCache: false\n\t\t} }), args, Number.parseInt(args.headingLevel) || 2).join(\"\\n\").replace(/\\n{3,}/g, \"\\n\\n\") };\n\t}\n});\nfunction _render(schema, opts, headingLevel) {\n\tconst sections = Object.create(null);\n\tfor (const [key, keySchema] of Object.entries(schema.properties || {})) {\n\t\tconst section = _renderSection(key, keySchema, opts, headingLevel + 1);\n\t\tif (!section) continue;\n\t\tsections[section.group] = sections[section.group] || [];\n\t\tsections[section.group].push([section.heading, section.lines]);\n\t}\n\tconst lines = [];\n\tconst sortedGroups = Object.keys(sections).sort((a, b) => {\n\t\tif (a === \"\") return 1;\n\t\tif (b === \"\") return -1;\n\t\treturn a.localeCompare(b);\n\t});\n\tfor (const group of sortedGroups) {\n\t\tif (group) lines.push(`\\n${\"#\".repeat(headingLevel)} ${titleCase(group)}\\n`);\n\t\tconst sortedSections = sections[group].sort((a, b) => a[0].localeCompare(b[0]));\n\t\tfor (const section of sortedSections) {\n\t\t\tconst heading = `\\n${\"#\".repeat(headingLevel + 1)} ${section[0]}\\n`;\n\t\t\tlines.push(heading, ...section[1]);\n\t\t}\n\t}\n\treturn lines;\n}\nfunction _renderSection(key, schema, opts, headingLevel) {\n\tconst tags = _parseTags(schema.tags);\n\tif (tags.some((t) => t.tag === \"@deprecated\" || t.tag === \"@internal\")) return;\n\tconst group = tags.find((t) => t.tag === \"@group\")?.contents || opts.defaultGroup || \"\";\n\tif (opts.group && (typeof opts.group === \"string\" ? group !== opts.group : !opts.group.includes(group))) return;\n\tlet heading = `\\`${key}\\``;\n\tconst lines = [];\n\tif (schema.type === \"function\") heading = `\\`${_generateFunctionSig(key, schema)}\\``;\n\telse if (schema.type !== \"object\") {\n\t\tlines.push(`- **Type**: \\`${schema.markdownType || schema.tsType || schema.type}\\``);\n\t\tif (\"default\" in schema) lines.push(`- **Default**: \\`${JSON.stringify(schema.default)}\\``);\n\t\tlines.push(\"\");\n\t}\n\tlines.push(..._renderBody(schema));\n\tfor (const tag of tags) if (tag.tag === \"@example\") {\n\t\tconst codeBlock = tag.contents.startsWith(\"`\") ? tag.contents : `\\`\\`\\`ts\\n${tag.contents}\\n\\`\\`\\``;\n\t\tlines.push(\"\", \"**Example:**\", \"\", codeBlock);\n\t}\n\tif (schema.type === \"object\") lines.push(..._render(schema, opts, headingLevel));\n\treturn {\n\t\theading,\n\t\tlines,\n\t\tgroup\n\t};\n}\nfunction _renderBody(schema) {\n\tconst lines = [];\n\tif (schema.title) lines.push(schema.title.trim());\n\tif (schema.title && schema.description) lines.push(\"\");\n\tif (schema.description) lines.push(...schema.description.split(\"\\n\").map((line) => line.trim()).join(\"\\n\\n\").split(\"\\n\"));\n\treturn lines;\n}\nfunction _parseTags(lines = []) {\n\tconst parsedTags = [];\n\tlet tag = \"\";\n\tlet contentLines = [];\n\tfor (const line of lines.join(\"\\n\").split(\"\\n\")) if (line.startsWith(\"@\")) {\n\t\tif (tag) parsedTags.push({\n\t\t\ttag,\n\t\t\tcontents: contentLines.join(\"\\n\")\n\t\t});\n\t\tconst [_tag, ...rest] = line.split(\" \");\n\t\ttag = _tag;\n\t\tcontentLines = rest;\n\t} else contentLines.push(line);\n\tif (tag) parsedTags.push({\n\t\ttag,\n\t\tcontents: contentLines.join(\"\\n\")\n\t});\n\treturn parsedTags;\n}\nfunction _generateFunctionSig(name, meta) {\n\treturn `${name}(${(meta.args || []).map((arg) => {\n\t\tlet str = arg.name;\n\t\tif (arg.optional) str += \"?\";\n\t\tconst tsType = _simpleArgType(arg.tsType);\n\t\tif (tsType) str += `: ${tsType}`;\n\t\treturn str;\n\t}).join(\", \")})`;\n}\nfunction _simpleArgType(tsType = \"\") {\n\treturn tsType.split(/\\s*\\|\\s*/).filter((t) => t && t !== \"object\" && t.startsWith(\"{\")).map((ot) => ot.split(/\\s*[,;]\\s*/g).map((p) => p.replaceAll(/\\s*:\\s*(string|boolean|number)/g, \"\")).join(\", \")).join(\" | \");\n}\nconst badgeTypes = {\n\tnpmVersion: {\n\t\tname: \"npm version\",\n\t\tto: \"https://npmjs.com/package/{name}\"\n\t},\n\tnpmDownloads: {\n\t\tname: \"npm downloads\",\n\t\tto: \"https://npm.chart.dev/{name}\"\n\t},\n\tbundlephobia: {\n\t\tname: \"bundle size\",\n\t\tto: \"https://bundlephobia.com/package/{name}\"\n\t},\n\tbundlejs: {\n\t\tname: \"bundle size\",\n\t\tto: \"https://bundlejs.com/?q={name}\"\n\t},\n\tpackagephobia: {\n\t\tname: \"install size\",\n\t\tto: \"https://packagephobia.com/result?p={name}\"\n\t},\n\tcodecov: {\n\t\tname: \"codecov\",\n\t\tto: \"https://codecov.io/gh/{github}\"\n\t},\n\tlicense: {\n\t\tname: \"license\",\n\t\tto: \"https://github.com/{github}/blob/{licenseBranch}/LICENSE\"\n\t}\n};\nconst badgeProviders = {\n\tshields: {\n\t\tnpmVersion: \"https://img.shields.io/npm/v/{name}\",\n\t\tnpmDownloads: \"https://img.shields.io/npm/dm/{name}\",\n\t\tbundlephobia: \"https://img.shields.io/bundlephobia/minzip/{name}\",\n\t\tpackagephobia: \"https://badgen.net/packagephobia/install/{name}\",\n\t\tbundlejs: \"https://img.shields.io/bundlejs/size/{name}\",\n\t\tcodecov: \"https://img.shields.io/codecov/c/gh/{github}\",\n\t\tlicense: \"https://img.shields.io/github/license/{github}\"\n\t},\n\tbadgen: {\n\t\tnpmVersion: \"https://flat.badgen.net/npm/v/{name}\",\n\t\tnpmDownloads: \"https://flat.badgen.net/npm/dm/{name}\",\n\t\tbundlephobia: \"https://flat.badgen.net/bundlephobia/minzip/{name}\",\n\t\tbundlejs: false,\n\t\tpackagephobia: \"https://flat.badgen.net/packagephobia/install/{name}\",\n\t\tcodecov: \"https://flat.badgen.net/codecov/c/github/{github}\",\n\t\tlicense: \"https://flat.badgen.net/github/license/{github}\"\n\t},\n\tbadgenClassic: {\n\t\tnpmVersion: \"https://badgen.net/npm/v/{name}\",\n\t\tnpmDownloads: \"https://badgen.net/npm/dm/{name}\",\n\t\tbundlephobia: \"https://badgen.net/bundlephobia/minzip/{name}\",\n\t\tbundlejs: false,\n\t\tpackagephobia: \"https://badgen.net/packagephobia/install/{name}\",\n\t\tcodecov: \"https://badgen.net/codecov/c/github/{github}\",\n\t\tlicense: \"https://badgen.net/github/license/{github}\"\n\t}\n};\nconst badges = defineGenerator({\n\tname: \"badges\",\n\tasync generate({ config, args }) {\n\t\tconst pkg = await getPkg(config.dir, args);\n\t\tconst ctx = {\n\t\t\tname: pkg.name,\n\t\t\tgithub: pkg.github,\n\t\t\tlicenseBranch: \"main\",\n\t\t\t...args\n\t\t};\n\t\tconst fillStr = (str) => str.replace(/{(\\w+)}/g, (_, key) => ctx[key] || \"\");\n\t\tconst provider = badgeProviders[args.provider] || badgeProviders.shields;\n\t\tconst providerParams = Object.entries({\n\t\t\tcolor: args.color,\n\t\t\tlabelColor: args.labelColor,\n\t\t\t...args.styleParams\n\t\t}).filter(([, value]) => value).map(([key, value]) => `${key}=${encodeURIComponent(value)}`).join(\"&\");\n\t\tconst badges = {\n\t\t\tnpmVersion: {\n\t\t\t\tenabled: ctx.name && args.npmVersion !== false,\n\t\t\t\t...badgeTypes.npmVersion\n\t\t\t},\n\t\t\tnpmDownloads: {\n\t\t\t\tenabled: ctx.name && args.npmDownloads !== false,\n\t\t\t\t...badgeTypes.npmDownloads\n\t\t\t},\n\t\t\tbundlephobia: {\n\t\t\t\tenabled: args.bundlephobia && ctx.name,\n\t\t\t\t...badgeTypes.bundlephobia\n\t\t\t},\n\t\t\tbundlejs: {\n\t\t\t\tenabled: args.bundlejs && ctx.name,\n\t\t\t\t...badgeTypes.bundlejs\n\t\t\t},\n\t\t\tpackagephobia: {\n\t\t\t\tenabled: args.packagephobia && ctx.name,\n\t\t\t\t...badgeTypes.packagephobia\n\t\t\t},\n\t\t\tcodecov: {\n\t\t\t\tenabled: args.codecov && ctx.github,\n\t\t\t\t...badgeTypes.codecov\n\t\t\t},\n\t\t\tlicense: {\n\t\t\t\tenabled: args.license && ctx.github,\n\t\t\t\t...badgeTypes.license\n\t\t\t}\n\t\t};\n\t\tconst md = [];\n\t\tfor (const [badgeType, badge] of Object.entries(badges)) {\n\t\t\tif (!badge.enabled || !provider[badgeType]) continue;\n\t\t\tconst to = fillStr(badge.to);\n\t\t\tconst imgURL = fillStr(provider[badgeType]) + (providerParams ? `?${providerParams}` : \"\");\n\t\t\tmd.push(link(to, image(imgURL, badge.name)));\n\t\t}\n\t\treturn { contents: md.join(\"\\n\") };\n\t}\n});\nconst INSTALL_COMMANDS = [\n\t[\"npm\", \"install\"],\n\t[\"yarn\", \"add\"],\n\t[\"pnpm\", \"add\"],\n\t[\"bun\", \"install\"],\n\t[\n\t\t\"deno\",\n\t\t\"install\",\n\t\t\" --dev\",\n\t\t\"npm:\"\n\t]\n];\nconst NYPM_COMMAND = [\"npx nypm\", \"install\"];\nconst RUN_COMMANDS = [\n\t[\"npm\", \"npx \"],\n\t[\"pnpm\", \"pnpm dlx \"],\n\t[\"bun\", \"bunx \"],\n\t[\"deno\", \"deno run -A npm:\"]\n];\nconst pmInstall = defineGenerator({\n\tname: \"pm-install\",\n\tasync generate({ config, args }) {\n\t\tconst { name, version } = await getPkg(config.dir, args);\n\t\tif (!name) return { contents: \"<!-- package name is unspecified -->\" };\n\t\tlet versionSuffix = \"\";\n\t\tif (args.version) versionSuffix = typeof args.version === \"string\" ? `@${args.version}` : `@^${version}`;\n\t\tconst contents = (args.auto === false ? INSTALL_COMMANDS : [NYPM_COMMAND, ...INSTALL_COMMANDS]).map(([cmd, install, dev = \" -D\", pkgPrefix = \"\"]) => `# ${cmd.includes(\"nypm\") ? \"✨ Auto-detect\" : cmd}\\n${cmd} ${install}${args.dev ? dev : args.global ? \"g\" : \"\"} ${pkgPrefix}${name}${versionSuffix}`);\n\t\tif ((args.separate ?? false) === false) return { contents: md.codeBlock(contents.join(\"\\n\\n\"), \"sh\") };\n\t\treturn { contents: contents.map((cmd) => md.codeBlock(cmd, \"sh\")).join(\"\\n\\n\") };\n\t}\n});\nconst pmX = defineGenerator({\n\tname: \"pm-x\",\n\tasync generate({ config, args }) {\n\t\tconst { name, version } = await getPkg(config.dir, args);\n\t\tif (!name) return { contents: \"<!-- package name is unspecified -->\" };\n\t\tlet versionSuffix = \"\";\n\t\tif (args.version) versionSuffix = typeof args.version === \"string\" ? `@${args.version}` : `@${version}`;\n\t\tconst contents = RUN_COMMANDS.map(([pm, cmd]) => `# ${pm}\\n${cmd}${name}${versionSuffix}${args.args ? ` ${args.args}` : \"\"}`);\n\t\tif ((args.separate ?? false) === false) return { contents: md.codeBlock(contents.join(\"\\n\\n\"), \"sh\") };\n\t\treturn { contents: contents.map((cmd) => md.codeBlock(cmd, \"sh\")).join(\"\\n\\n\") };\n\t}\n});\nconst fetch = defineGenerator({\n\tname: \"fetch\",\n\tasync generate({ args }) {\n\t\tconst { $fetch } = await import(\"ofetch\");\n\t\tlet url = args.url;\n\t\tif (!url) throw new Error(\"URL is required!\");\n\t\tif (url.startsWith(\"gh:\")) url = `https://raw.githubusercontent.com/${url.slice(3)}`;\n\t\treturn { contents: await $fetch(url) };\n\t}\n});\nconst DEFAULT_CDN = \"https://esm.sh/\";\nconst jsimport = defineGenerator({\n\tname: \"jsimport\",\n\tasync generate({ config, args }) {\n\t\tconst { name } = await getPkg(config.dir, args);\n\t\tconst importPath = name + (args.path || \"\");\n\t\tconst importNames = [].concat(args.import, args.imports).filter(Boolean).flatMap((i) => i.split(/\\s*,\\s*/));\n\t\tif (args.src) {\n\t\t\tconst exportNames = findExportNames(await readFile(await resolvePath(args.src, { url: config.dir }), \"utf8\"));\n\t\t\tif (exportNames && exportNames.length > 0) importNames.push(...exportNames);\n\t\t}\n\t\tconst lines = [];\n\t\tconst fmtImports = importNames.length > 1 ? `\\n${importNames.map((i) => \" \" + i + \",\").join(\"\\n\")}\\n` : importNames[0] && ` ${importNames[0]} ` || \"\";\n\t\tconst formatMultiLine = (str) => {\n\t\t\treturn str.length > (args.printWidth || 80) ? str : str.replace(/\\n/g, \"\").replace(/,\\s*}/, \"}\").replace(/(\\w)}/, \"$1 }\").replace(/\\s+/g, \" \");\n\t\t};\n\t\tif (args.esm !== false) {\n\t\t\tconst code = formatMultiLine(`import {${fmtImports}} from \"${importPath}\";`);\n\t\t\tlines.push(\"**ESM** (Node.js, Bun, Deno)\", md.codeBlock(code, \"js\"));\n\t\t}\n\t\tif (args.cjs) {\n\t\t\tconst code = formatMultiLine(`const {${fmtImports}} = require(\"${importPath}\");`);\n\t\t\tlines.push(\"**CommonJS** (Legacy Node.js)\", md.codeBlock(code, \"js\"));\n\t\t}\n\t\tif (args.cdn) {\n\t\t\tconst code = formatMultiLine(`import {${fmtImports}} from \"${typeof args.cdn === \"string\" ? args.cdn : DEFAULT_CDN}${importPath}\";`);\n\t\t\tlines.push(\"**CDN** (Deno and Browsers)\", md.codeBlock(code, \"js\"));\n\t\t}\n\t\treturn { contents: lines.join(\"\\n\\n\") };\n\t}\n});\nconst withAutomd = defineGenerator({\n\tname: \"with-automd\",\n\tgenerate({ args }) {\n\t\tconst lastUpdate = args.lastUpdate ? ` (last updated: ${typeof args.lastUpdate === \"string\" ? args.lastUpdate : (/* @__PURE__ */ new Date()).toDateString()})` : \"\";\n\t\tconst emoji = args.emoji === false ? \"\" : \"🤖 \";\n\t\tconst lines = [];\n\t\tif (args.separator !== false) lines.push(\"---\", \"\");\n\t\tlines.push(`_${emoji}auto updated with [automd](https://automd.unjs.io)${lastUpdate}_`);\n\t\treturn { contents: lines.join(\"\\n\") };\n\t}\n});\nconst file = defineGenerator({\n\tname: \"file\",\n\tasync generate({ args, config, url }) {\n\t\tconst fullPath = resolvePath$1(args.src, {\n\t\t\turl,\n\t\t\tdir: config.dir\n\t\t});\n\t\tlet contents = await readFile(fullPath, \"utf8\");\n\t\tif (!args.noTrim) contents = contents.trim();\n\t\tif (args.lines) {\n\t\t\tconst groups = /^(?<startLine>\\d+)?:(?<endLine>\\d+)?$/.exec(args.lines)?.groups;\n\t\t\tif (!groups) throw new Error(\"invalid lines format\");\n\t\t\tconst lines = contents.split(\"\\n\");\n\t\t\tconst startLine = Number(groups.startLine) || 1;\n\t\t\tconst endLine = Number(groups.endLine) || lines.length;\n\t\t\tif (startLine < 1) throw new Error(\"first line's index can not be smaller than 1\");\n\t\t\tcontents = lines.slice(startLine - 1, endLine).join(\"\\n\");\n\t\t}\n\t\tif (args.code) contents = md.codeBlock(contents, args.lang || extname(fullPath).slice(1), { ext: args.name === false ? void 0 : typeof args.name === \"string\" ? args.name : `[${basename(fullPath)}]` });\n\t\treturn { contents };\n\t}\n});\nconst PROVIDERS = {\n\tCONTRIB_ROCKS: \"contrib.rocks\",\n\tMARKUPGO: \"markupgo\"\n};\nconst contributors = defineGenerator({\n\tname: \"contributors\",\n\tasync generate({ config, args }) {\n\t\tconst { github } = await getPkg(config.dir, args);\n\t\tconst provider = args.provider || PROVIDERS.CONTRIB_ROCKS;\n\t\tif (!github) throw new Error(\"`github` is required!\");\n\t\tconst lines = [];\n\t\tif (typeof args.license === \"string\") lines.push(`Published under the [${args.license.toUpperCase()}](https://github.com/${github}/blob/main/LICENSE) license.`);\n\t\tlet madeBy = `[community](https://github.com/${github}/graphs/contributors) 💛`;\n\t\tif (typeof args.author === \"string\") {\n\t\t\tconst authors = args.author.split(\",\").map((author) => author.trim()).map((user) => `[@${user}](https://github.com/${user})`).join(\", \");\n\t\t\tif (authors.length > 0) madeBy = `${authors} and ${madeBy}`;\n\t\t}\n\t\tlines.push(`Made by ${madeBy}`);\n\t\tif (provider === PROVIDERS.MARKUPGO) {\n\t\t\tconst params = [];\n\t\t\targs = {\n\t\t\t\tcircleSize: \"64\",\n\t\t\t\tcenter: \"true\",\n\t\t\t\t...args\n\t\t\t};\n\t\t\tif (Number(args.max) >= 0) params.push([\"count\", args.max]);\n\t\t\tif (Number(args.width)) params.push([\"width\", args.width]);\n\t\t\tif (Number(args.circleSize)) params.push([\"circleSize\", args.circleSize]);\n\t\t\tif (Number(args.circleRadius)) params.push([\"circleRadius\", args.circleRadius]);\n\t\t\tif (Number(args.circleSpacing)) params.push([\"circleSpacing\", args.circleSpacing]);\n\t\t\tif (args.center) params.push([\"center\", Boolean(args.center).toString()]);\n\t\t\tif (!args.markupGoLogo) params.push([\"removeLogo\", \"true\"]);\n\t\t\tif (args.anon) params.push([\"anon\", Boolean(args.anon).toString()]);\n\t\t\tlet paramsStr = params.map(([k, v]) => `${k}=${v}`).join(\"&\");\n\t\t\tparamsStr = paramsStr ? `?${paramsStr}` : \"\";\n\t\t\tlines.push(`<br><br>`, `<a href=\"https://github.com/${github}/graphs/contributors\">`, `<img src=\"https://markupgo.com/github/${github}/contributors${paramsStr}\" />`, `</a>`);\n\t\t} else {\n\t\t\tconst params = [[\"repo\", github]];\n\t\t\tif (args.max) params.push([\"max\", args.max]);\n\t\t\tif (args.anon) params.push([\"anon\", args.anon]);\n\t\t\tconst paramsStr = params.map(([k, v]) => `${k}=${v}`).join(\"&\");\n\t\t\tlines.push(`<br><br>`, `<a href=\"https://github.com/${github}/graphs/contributors\">`, `<img src=\"https://contrib.rocks/image?${paramsStr}\" />`, `</a>`);\n\t\t}\n\t\treturn { contents: lines.join(\"\\n\") };\n\t}\n});\nconst DEFAULT_IGNORE = [\n\t\"node_modules\",\n\t\".git\",\n\t\".DS_Store\",\n\t\".nuxt\",\n\t\".output\",\n\t\".nitro\",\n\t\"dist\",\n\t\"coverage\",\n\t\".cache\",\n\t\".turbo\"\n];\nasync function parseGitignore(dir) {\n\ttry {\n\t\treturn (await readFile(join(dir, \".gitignore\"), \"utf8\")).split(\"\\n\").map((line) => line.trim()).filter((line) => line && !line.startsWith(\"#\"));\n\t} catch {\n\t\treturn [];\n\t}\n}\nfunction shouldIgnore(name, ignorePatterns, defaultIgnore) {\n\tconst allPatterns = [...defaultIgnore, ...ignorePatterns];\n\tfor (const pattern of allPatterns) {\n\t\tif (name === pattern.replace(/^\\//, \"\").replace(/\\/$/, \"\")) return true;\n\t\tif (pattern.startsWith(\"*\") && name.endsWith(pattern.slice(1))) return true;\n\t\tif (pattern.endsWith(\"*\") && name.startsWith(pattern.slice(0, -1))) return true;\n\t}\n\treturn false;\n}\nasync function buildTree(dir, ignorePatterns, maxDepth, currentDepth = 0) {\n\tif (maxDepth > 0 && currentDepth >= maxDepth) return [];\n\tconst entries = await readdir(dir);\n\tconst result = [];\n\tfor (const entry of entries) {\n\t\tif (shouldIgnore(entry, ignorePatterns, DEFAULT_IGNORE)) continue;\n\t\tconst fullPath = join(dir, entry);\n\t\tconst isDirectory = (await stat(fullPath)).isDirectory();\n\t\tconst treeEntry = {\n\t\t\tname: entry,\n\t\t\tisDirectory\n\t\t};\n\t\tif (isDirectory) treeEntry.children = await buildTree(fullPath, ignorePatterns, maxDepth, currentDepth + 1);\n\t\tresult.push(treeEntry);\n\t}\n\tresult.sort((a, b) => {\n\t\tif (a.isDirectory !== b.isDirectory) return a.isDirectory ? -1 : 1;\n\t\treturn a.name.localeCompare(b.name);\n\t});\n\treturn result;\n}\nfunction renderTree(entries, isLast = []) {\n\tconst lines = [];\n\tfor (let i = 0; i < entries.length; i++) {\n\t\tconst entry = entries[i];\n\t\tconst isLastEntry = i === entries.length - 1;\n\t\tlet linePrefix = \"\";\n\t\tfor (const element_ of isLast) linePrefix += element_ ? \" \" : \"│ \";\n\t\tconst connector = isLastEntry ? \"└── \" : \"├── \";\n\t\tconst suffix = entry.isDirectory ? \"/\" : \"\";\n\t\tlines.push(`${linePrefix}${connector}${entry.name}${suffix}`);\n\t\tif (entry.children && entry.children.length > 0) {\n\t\t\tconst childLines = renderTree(entry.children, [...isLast, isLastEntry]);\n\t\t\tlines.push(...childLines);\n\t\t}\n\t}\n\treturn lines;\n}\nconst dirTree = defineGenerator({\n\tname: \"dir-tree\",\n\tasync generate({ args, config, url }) {\n\t\tconst srcPath = args.src || \".\";\n\t\tconst fullPath = resolvePath$1(srcPath, {\n\t\t\turl,\n\t\t\tdir: config.dir\n\t\t});\n\t\tif (!(await stat(fullPath)).isDirectory()) throw new Error(`Path \"${srcPath}\" is not a directory`);\n\t\tconst userIgnore = args.ignore ? String(args.ignore).split(\",\").map((s) => s.trim()) : [];\n\t\treturn { contents: \"```\\n\" + renderTree(await buildTree(fullPath, [...await parseGitignore(fullPath), ...userIgnore], args.maxDepth ? Number(args.maxDepth) : 0)).join(\"\\n\") + \"\\n```\" };\n\t}\n});\nvar generators_default = {\n\tjsdocs,\n\tbadges,\n\t\"pm-i\": pmInstall,\n\t\"pm-install\": pmInstall,\n\t\"pm-x\": pmX,\n\tfetch,\n\tfile,\n\tjsimport,\n\t\"with-automd\": withAutomd,\n\tcontributors,\n\t\"dir-tree\": dirTree\n};\nfunction findBlocks(md, config) {\n\tconst blocks = [];\n\tfor (const match of md.matchAll(new RegExp(`^(?<open><!--\\s*(${\n config.prefix.join(\"|\")\n }):(?<generator>.+?)\\s+(?<args>.*?)\\s*-->)(?<contents>.+?)(?<close>^<!--\\s*\\/(${\n config.prefix.join(\"|\")\n })\\s*-->)`, \"gimsu\"))) {\n\t\tif (match.index === void 0 || !match.groups) continue;\n\t\tconst start = match.index + match.groups.open.length || 0;\n\t\tconst end = start + match.groups.contents.length;\n\t\tblocks.push({\n\t\t\tgenerator: match.groups.generator,\n\t\t\trawArgs: match.groups.args,\n\t\t\tcontents: match.groups.contents,\n\t\t\tloc: {\n\t\t\t\tstart,\n\t\t\t\tend\n\t\t\t},\n\t\t\t_loc: {\n\t\t\t\tstart: match.index,\n\t\t\t\tend: match.index + match[0].length\n\t\t\t}\n\t\t});\n\t}\n\treturn blocks;\n}\nfunction containsAutomd(md, config) {\n\treturn new RegExp(`^<!--\\\\s*(${config.prefix.join(\"|\")}):`, \"gimsu\").test(md);\n}\nfunction parseRawArgs(rawArgs) {\n\tconst args = Object.create(null);\n\tfor (const part of rawArgs.split(/\\s+/)) {\n\t\tconst [_key, value] = part.split(\"=\");\n\t\tconst key = _key && camelCase(_key);\n\t\tif (key && value) args[key] = destr(value);\n\t\telse if (part.startsWith(\"no-\")) args[part.slice(3)] = false;\n\t\telse args[part] = true;\n\t}\n\treturn args;\n}\nconst RESOLVED_CONFIG_SYMBOL = Symbol(\"automdConfig\");\nfunction resolveConfig(config) {\n\tif (config && RESOLVED_CONFIG_SYMBOL in config) return config;\n\tconst _config = {\n\t\tdir: \".\",\n\t\tinput: \"README.md\",\n\t\tgenerators: {},\n\t\t[RESOLVED_CONFIG_SYMBOL]: true,\n\t\t...config\n\t};\n _config.prefix = _config.prefix || [];\n if (typeof _config.prefix === \"string\") _config.prefix = [_config.prefix];\n if (!_config.prefix.includes(\"automd\")) _config.prefix.push(\"automd\");\n if (!_config.prefix.includes(\"powerlines\")) _config.prefix.push(\"powerlines\");\n\t_config.dir = resolve(_config.dir);\n\t_config.input = (Array.isArray(_config.input) ? _config.input : [_config.input]).filter(Boolean);\n\treturn _config;\n}\nasync function loadConfig(dir = \".\", overrides) {\n\tconst { loadConfig } = await import(\"c12\");\n\tdir = resolve(dir);\n\tconst { config } = await loadConfig({\n\t\tcwd: dir,\n\t\tname: \"automd\",\n\t\tdotenv: true,\n\t\toverrides,\n\t\tdefaults: {\n\t\t\tignore: [\n\t\t\t\t\"**/node_modules\",\n\t\t\t\t\"**/dist\",\n\t\t\t\t\"**/.*\"\n\t\t\t],\n\t\t\tdir\n\t\t}\n\t});\n\treturn resolveConfig(config);\n}\nasync function transform(contents, _config, url) {\n\tconst start = performance.now();\n\tconst config = resolveConfig(_config);\n\tconst editor = new MagicString(contents);\n\tconst updates = [];\n\tconst generators = {\n\t\t...generators_default,\n\t\t...config.generators\n\t};\n\tconst blocks = findBlocks(contents, config);\n\tfor (const block of blocks) {\n\t\tconst result = await _transformBlock(block, config, generators, url);\n\t\tif (result.unwrap) editor.overwrite(block._loc.start, block._loc.end, `${result.contents.trim()}`);\n\t\telse editor.overwrite(block.loc.start, block.loc.end, `\\n\\n${result.contents.trim()}\\n\\n`);\n\t\tupdates.push({\n\t\t\tblock,\n\t\t\tresult\n\t\t});\n\t}\n\tconst hasChanged = editor.hasChanged();\n\tconst hasIssues = updates.some((u) => u.result.issues?.filter(Boolean).length);\n\tconst time = performance.now() - start;\n\treturn {\n\t\thasChanged,\n\t\thasIssues,\n\t\tcontents: hasChanged ? editor.toString() : contents,\n\t\tupdates,\n\t\ttime\n\t};\n}\nasync function _transformBlock(block, config, generators, url) {\n\tconst args = parseRawArgs(block.rawArgs);\n\tconst generator = generators[block.generator];\n\tif (!generator) {\n\t\tconst suggestions = (await import(\"didyoumean2\").then((r) => r.default || r))(block.generator, Object.keys(generators));\n\t\tconst error = `Unknown generator:\\`${block.generator}\\`.${suggestions ? ` Did you mean \"generator:\\`${suggestions}\\`\"?` : \"\"}`;\n\t\treturn {\n\t\t\tcontents: `<!-- ⚠️ ${error} -->`,\n\t\t\tissues: [error]\n\t\t};\n\t}\n\tconst context = {\n\t\targs,\n\t\tconfig,\n\t\tblock,\n\t\ttransform: (contents) => transform(contents, config, url),\n\t\turl\n\t};\n\ttry {\n\t\tconst result = await generator.generate(context);\n\t\tif (!result.unwrap && containsAutomd(result.contents)) result.unwrap = true;\n\t\tif (result.unwrap) {\n\t\t\tconst nestedRes = await context.transform(result.contents);\n\t\t\tresult.contents = nestedRes.contents;\n\t\t\tif (nestedRes.hasIssues) result.issues = [...result.issues || [], ...nestedRes.updates.flatMap((u) => u.result.issues || [])].filter(Boolean);\n\t\t}\n\t\treturn result;\n\t} catch (error) {\n\t\treturn {\n\t\t\tcontents: `<!-- ⚠️ (${block.generator}) ${error.message || error} -->`,\n\t\t\tissues: [error]\n\t\t};\n\t}\n}\nasync function automd(_config = {}) {\n _config.prefix = _config.prefix || [];\n if (typeof _config.prefix === \"string\") _config.prefix = [_config.prefix];\n if (!_config.prefix.includes(\"automd\")) _config.prefix.push(\"automd\");\n if (!_config.prefix.includes(\"powerlines\")) _config.prefix.push(\"powerlines\");\n\n\tconst start = performance.now();\n\tconst config = await loadConfig(_config.dir, _config);\n\tlet inputFiles = config.input;\n\tif (inputFiles.some((i) => i.includes(\"*\"))) {\n\t\tconst { glob } = await import(\"tinyglobby\");\n\t\tinputFiles = await glob(inputFiles, {\n\t\t\tcwd: config.dir,\n\t\t\tabsolute: false,\n\t\t\tonlyFiles: true,\n\t\t\tignore: config.ignore\n\t\t});\n\t} else inputFiles = inputFiles.map((i) => resolve(config.dir, i)).filter((i) => existsSync(i)).map((i) => relative(config.dir, i));\n\tconst multiFiles = inputFiles.length > 1;\n\tconst cache = /* @__PURE__ */ new Map();\n\tconst results = await Promise.all(inputFiles.map((i) => _automd(i, config, multiFiles, cache)));\n\tlet unwatch;\n\tif (config.watch) unwatch = await _watch(inputFiles, config, multiFiles, cache);\n\treturn {\n\t\ttime: performance.now() - start,\n\t\tresults,\n\t\tconfig,\n\t\tunwatch\n\t};\n}\nasync function _automd(relativeInput, config, multiFiles, cache) {\n\tconst start = performance.now();\n\tconst input = resolve(config.dir, relativeInput);\n\tconst contents = await promises.readFile(input, \"utf8\");\n\tconst cachedResult = await cache.get(input);\n\tif (cachedResult?.contents === contents) {\n\t\tcachedResult.time = performance.now() - start;\n\t\treturn cachedResult;\n\t}\n\tconst transformResult = await transform(contents, config, pathToFileURL(input));\n\tconst output = multiFiles ? resolve(config.dir, config.output || \".\", relativeInput) : resolve(config.dir, config.output || relativeInput);\n\tawait promises.mkdir(dirname(output), { recursive: true });\n\tawait promises.writeFile(output, transformResult.contents, \"utf8\");\n\tconst result = {\n\t\tinput,\n\t\toutput,\n\t\t...transformResult\n\t};\n\tcache.set(input, result);\n\tresult.time = performance.now() - start;\n\treturn result;\n}\nasync function _watch(inputFiles, config, multiFiles, cache) {\n\tconst watcher = await import(\"@parcel/watcher\");\n\tconst watchCb = debounce(async (_err, events) => {\n\t\tconst filesToUpdate = events.map((e) => relative(config.dir, e.path)).filter((p) => inputFiles.includes(p));\n\t\tconst start = performance.now();\n\t\tconst results = await Promise.all(filesToUpdate.map((f) => _automd(f, config, multiFiles, cache)));\n\t\tconst time = performance.now() - start;\n\t\tif (config.onWatch) config.onWatch({\n\t\t\tresults,\n\t\t\ttime\n\t\t});\n\t});\n\tconst subscription = await watcher.subscribe(config.dir, watchCb, { ignore: config.ignore });\n\tprocess.on(\"SIGINT\", () => {\n\t\tsubscription.unsubscribe();\n\t});\n\treturn subscription.unsubscribe;\n}\nexport { automd, defineGenerator, loadConfig, resolveConfig, transform };\n"],"x_google_ignoreList":[0],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/plugin-automd",
3
- "version": "0.1.257",
3
+ "version": "0.1.259",
4
4
  "type": "module",
5
5
  "description": "A Powerlines plugin to maintain a project's markdown files using AutoMD generators.",
6
6
  "repository": {
@@ -112,13 +112,13 @@
112
112
  "c12": "^3.3.3",
113
113
  "defu": "^6.1.4",
114
114
  "markdown-toc": "^1.2.0",
115
- "powerlines": "^0.38.24"
115
+ "powerlines": "^0.38.26"
116
116
  },
117
117
  "devDependencies": {
118
- "@powerlines/plugin-plugin": "^0.12.208",
118
+ "@powerlines/plugin-plugin": "^0.12.210",
119
119
  "@types/node": "^24.10.9",
120
120
  "automd": "^0.4.3"
121
121
  },
122
122
  "publishConfig": { "access": "public" },
123
- "gitHead": "fee16758d4f6a35741fcb49e342005e7d3bf22b6"
123
+ "gitHead": "e14ce0676951faca38cdd9c437dc151c87385bd6"
124
124
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":["defu","badges","md","loadConfig"],"sources":["../../../../../../../../../node_modules/.pnpm/automd@0.4.3_patch_hash=0fe864a2d6fa1461e144747e5f0fbc0a5fb51435ec6b3217ffb18ff2d7058778_magicast@0.5.1/node_modules/automd/dist/index.mjs"],"sourcesContent":["import { existsSync, promises } from \"node:fs\";\nimport { basename, dirname, extname, join, relative, resolve } from \"pathe\";\nimport { fileURLToPath, findExportNames, pathToFileURL, resolvePath } from \"mlly\";\nimport { debounce } from \"perfect-debounce\";\nimport MagicString from \"magic-string\";\nimport { camelCase, titleCase } from \"scule\";\nimport { readPackageJSON } from \"pkg-types\";\nimport { defu } from \"defu\";\nimport { image, link, md } from \"mdbox\";\nimport { readFile, readdir, stat } from \"node:fs/promises\";\nimport { destr } from \"destr\";\nfunction defineGenerator(generator) {\n\treturn generator;\n}\nfunction resolvePath$1(path, { url, dir }) {\n\tif (path.startsWith(\"/\")) return join(dir, path);\n\treturn url ? fileURLToPath(new URL(path, url)) : resolve(dir, path);\n}\nasync function getPkg(dir, input = {}) {\n\tconst pkg = await readPackageJSON(dir).catch(() => void 0);\n\treturn defu({\n\t\tname: input.name,\n\t\tversion: typeof input.version === \"string\" ? input.version : void 0,\n\t\tgithub: input.github || input.gh\n\t}, {\n\t\tname: pkg?.name,\n\t\tversion: pkg?.version,\n\t\tgithub: _getGitRepo(pkg?.repository)\n\t}, {\n\t\tname: process.env.npm_package_name,\n\t\tversion: process.env.npm_package_version\n\t});\n}\nfunction _getGitRepo(repo) {\n\tconst url = typeof repo === \"string\" ? repo : repo?.url;\n\tif (!url || typeof url !== \"string\") return;\n\tconst match = /(?:https:\\/\\/github\\.com\\/|gh:|github:|)([\\w-]+)\\/([\\w-]+)/.exec(url);\n\tif (match && match[1] && match[2]) return `${match[1]}/${match[2]}`;\n}\nconst jsdocs = defineGenerator({\n\tname: \"jsdocs\",\n\tasync generate({ config, args, url }) {\n\t\tconst { loadSchema } = await import(\"untyped/loader\");\n\t\treturn { contents: _render(await loadSchema(resolvePath$1(args.src, {\n\t\t\turl,\n\t\t\tdir: config.dir\n\t\t}), { jiti: {\n\t\t\tfsCache: false,\n\t\t\tmoduleCache: false\n\t\t} }), args, Number.parseInt(args.headingLevel) || 2).join(\"\\n\").replace(/\\n{3,}/g, \"\\n\\n\") };\n\t}\n});\nfunction _render(schema, opts, headingLevel) {\n\tconst sections = Object.create(null);\n\tfor (const [key, keySchema] of Object.entries(schema.properties || {})) {\n\t\tconst section = _renderSection(key, keySchema, opts, headingLevel + 1);\n\t\tif (!section) continue;\n\t\tsections[section.group] = sections[section.group] || [];\n\t\tsections[section.group].push([section.heading, section.lines]);\n\t}\n\tconst lines = [];\n\tconst sortedGroups = Object.keys(sections).sort((a, b) => {\n\t\tif (a === \"\") return 1;\n\t\tif (b === \"\") return -1;\n\t\treturn a.localeCompare(b);\n\t});\n\tfor (const group of sortedGroups) {\n\t\tif (group) lines.push(`\\n${\"#\".repeat(headingLevel)} ${titleCase(group)}\\n`);\n\t\tconst sortedSections = sections[group].sort((a, b) => a[0].localeCompare(b[0]));\n\t\tfor (const section of sortedSections) {\n\t\t\tconst heading = `\\n${\"#\".repeat(headingLevel + 1)} ${section[0]}\\n`;\n\t\t\tlines.push(heading, ...section[1]);\n\t\t}\n\t}\n\treturn lines;\n}\nfunction _renderSection(key, schema, opts, headingLevel) {\n\tconst tags = _parseTags(schema.tags);\n\tif (tags.some((t) => t.tag === \"@deprecated\" || t.tag === \"@internal\")) return;\n\tconst group = tags.find((t) => t.tag === \"@group\")?.contents || opts.defaultGroup || \"\";\n\tif (opts.group && (typeof opts.group === \"string\" ? group !== opts.group : !opts.group.includes(group))) return;\n\tlet heading = `\\`${key}\\``;\n\tconst lines = [];\n\tif (schema.type === \"function\") heading = `\\`${_generateFunctionSig(key, schema)}\\``;\n\telse if (schema.type !== \"object\") {\n\t\tlines.push(`- **Type**: \\`${schema.markdownType || schema.tsType || schema.type}\\``);\n\t\tif (\"default\" in schema) lines.push(`- **Default**: \\`${JSON.stringify(schema.default)}\\``);\n\t\tlines.push(\"\");\n\t}\n\tlines.push(..._renderBody(schema));\n\tfor (const tag of tags) if (tag.tag === \"@example\") {\n\t\tconst codeBlock = tag.contents.startsWith(\"`\") ? tag.contents : `\\`\\`\\`ts\\n${tag.contents}\\n\\`\\`\\``;\n\t\tlines.push(\"\", \"**Example:**\", \"\", codeBlock);\n\t}\n\tif (schema.type === \"object\") lines.push(..._render(schema, opts, headingLevel));\n\treturn {\n\t\theading,\n\t\tlines,\n\t\tgroup\n\t};\n}\nfunction _renderBody(schema) {\n\tconst lines = [];\n\tif (schema.title) lines.push(schema.title.trim());\n\tif (schema.title && schema.description) lines.push(\"\");\n\tif (schema.description) lines.push(...schema.description.split(\"\\n\").map((line) => line.trim()).join(\"\\n\\n\").split(\"\\n\"));\n\treturn lines;\n}\nfunction _parseTags(lines = []) {\n\tconst parsedTags = [];\n\tlet tag = \"\";\n\tlet contentLines = [];\n\tfor (const line of lines.join(\"\\n\").split(\"\\n\")) if (line.startsWith(\"@\")) {\n\t\tif (tag) parsedTags.push({\n\t\t\ttag,\n\t\t\tcontents: contentLines.join(\"\\n\")\n\t\t});\n\t\tconst [_tag, ...rest] = line.split(\" \");\n\t\ttag = _tag;\n\t\tcontentLines = rest;\n\t} else contentLines.push(line);\n\tif (tag) parsedTags.push({\n\t\ttag,\n\t\tcontents: contentLines.join(\"\\n\")\n\t});\n\treturn parsedTags;\n}\nfunction _generateFunctionSig(name, meta) {\n\treturn `${name}(${(meta.args || []).map((arg) => {\n\t\tlet str = arg.name;\n\t\tif (arg.optional) str += \"?\";\n\t\tconst tsType = _simpleArgType(arg.tsType);\n\t\tif (tsType) str += `: ${tsType}`;\n\t\treturn str;\n\t}).join(\", \")})`;\n}\nfunction _simpleArgType(tsType = \"\") {\n\treturn tsType.split(/\\s*\\|\\s*/).filter((t) => t && t !== \"object\" && t.startsWith(\"{\")).map((ot) => ot.split(/\\s*[,;]\\s*/g).map((p) => p.replaceAll(/\\s*:\\s*(string|boolean|number)/g, \"\")).join(\", \")).join(\" | \");\n}\nconst badgeTypes = {\n\tnpmVersion: {\n\t\tname: \"npm version\",\n\t\tto: \"https://npmjs.com/package/{name}\"\n\t},\n\tnpmDownloads: {\n\t\tname: \"npm downloads\",\n\t\tto: \"https://npm.chart.dev/{name}\"\n\t},\n\tbundlephobia: {\n\t\tname: \"bundle size\",\n\t\tto: \"https://bundlephobia.com/package/{name}\"\n\t},\n\tbundlejs: {\n\t\tname: \"bundle size\",\n\t\tto: \"https://bundlejs.com/?q={name}\"\n\t},\n\tpackagephobia: {\n\t\tname: \"install size\",\n\t\tto: \"https://packagephobia.com/result?p={name}\"\n\t},\n\tcodecov: {\n\t\tname: \"codecov\",\n\t\tto: \"https://codecov.io/gh/{github}\"\n\t},\n\tlicense: {\n\t\tname: \"license\",\n\t\tto: \"https://github.com/{github}/blob/{licenseBranch}/LICENSE\"\n\t}\n};\nconst badgeProviders = {\n\tshields: {\n\t\tnpmVersion: \"https://img.shields.io/npm/v/{name}\",\n\t\tnpmDownloads: \"https://img.shields.io/npm/dm/{name}\",\n\t\tbundlephobia: \"https://img.shields.io/bundlephobia/minzip/{name}\",\n\t\tpackagephobia: \"https://badgen.net/packagephobia/install/{name}\",\n\t\tbundlejs: \"https://img.shields.io/bundlejs/size/{name}\",\n\t\tcodecov: \"https://img.shields.io/codecov/c/gh/{github}\",\n\t\tlicense: \"https://img.shields.io/github/license/{github}\"\n\t},\n\tbadgen: {\n\t\tnpmVersion: \"https://flat.badgen.net/npm/v/{name}\",\n\t\tnpmDownloads: \"https://flat.badgen.net/npm/dm/{name}\",\n\t\tbundlephobia: \"https://flat.badgen.net/bundlephobia/minzip/{name}\",\n\t\tbundlejs: false,\n\t\tpackagephobia: \"https://flat.badgen.net/packagephobia/install/{name}\",\n\t\tcodecov: \"https://flat.badgen.net/codecov/c/github/{github}\",\n\t\tlicense: \"https://flat.badgen.net/github/license/{github}\"\n\t},\n\tbadgenClassic: {\n\t\tnpmVersion: \"https://badgen.net/npm/v/{name}\",\n\t\tnpmDownloads: \"https://badgen.net/npm/dm/{name}\",\n\t\tbundlephobia: \"https://badgen.net/bundlephobia/minzip/{name}\",\n\t\tbundlejs: false,\n\t\tpackagephobia: \"https://badgen.net/packagephobia/install/{name}\",\n\t\tcodecov: \"https://badgen.net/codecov/c/github/{github}\",\n\t\tlicense: \"https://badgen.net/github/license/{github}\"\n\t}\n};\nconst badges = defineGenerator({\n\tname: \"badges\",\n\tasync generate({ config, args }) {\n\t\tconst pkg = await getPkg(config.dir, args);\n\t\tconst ctx = {\n\t\t\tname: pkg.name,\n\t\t\tgithub: pkg.github,\n\t\t\tlicenseBranch: \"main\",\n\t\t\t...args\n\t\t};\n\t\tconst fillStr = (str) => str.replace(/{(\\w+)}/g, (_, key) => ctx[key] || \"\");\n\t\tconst provider = badgeProviders[args.provider] || badgeProviders.shields;\n\t\tconst providerParams = Object.entries({\n\t\t\tcolor: args.color,\n\t\t\tlabelColor: args.labelColor,\n\t\t\t...args.styleParams\n\t\t}).filter(([, value]) => value).map(([key, value]) => `${key}=${encodeURIComponent(value)}`).join(\"&\");\n\t\tconst badges = {\n\t\t\tnpmVersion: {\n\t\t\t\tenabled: ctx.name && args.npmVersion !== false,\n\t\t\t\t...badgeTypes.npmVersion\n\t\t\t},\n\t\t\tnpmDownloads: {\n\t\t\t\tenabled: ctx.name && args.npmDownloads !== false,\n\t\t\t\t...badgeTypes.npmDownloads\n\t\t\t},\n\t\t\tbundlephobia: {\n\t\t\t\tenabled: args.bundlephobia && ctx.name,\n\t\t\t\t...badgeTypes.bundlephobia\n\t\t\t},\n\t\t\tbundlejs: {\n\t\t\t\tenabled: args.bundlejs && ctx.name,\n\t\t\t\t...badgeTypes.bundlejs\n\t\t\t},\n\t\t\tpackagephobia: {\n\t\t\t\tenabled: args.packagephobia && ctx.name,\n\t\t\t\t...badgeTypes.packagephobia\n\t\t\t},\n\t\t\tcodecov: {\n\t\t\t\tenabled: args.codecov && ctx.github,\n\t\t\t\t...badgeTypes.codecov\n\t\t\t},\n\t\t\tlicense: {\n\t\t\t\tenabled: args.license && ctx.github,\n\t\t\t\t...badgeTypes.license\n\t\t\t}\n\t\t};\n\t\tconst md = [];\n\t\tfor (const [badgeType, badge] of Object.entries(badges)) {\n\t\t\tif (!badge.enabled || !provider[badgeType]) continue;\n\t\t\tconst to = fillStr(badge.to);\n\t\t\tconst imgURL = fillStr(provider[badgeType]) + (providerParams ? `?${providerParams}` : \"\");\n\t\t\tmd.push(link(to, image(imgURL, badge.name)));\n\t\t}\n\t\treturn { contents: md.join(\"\\n\") };\n\t}\n});\nconst INSTALL_COMMANDS = [\n\t[\"npm\", \"install\"],\n\t[\"yarn\", \"add\"],\n\t[\"pnpm\", \"add\"],\n\t[\"bun\", \"install\"],\n\t[\n\t\t\"deno\",\n\t\t\"install\",\n\t\t\" --dev\",\n\t\t\"npm:\"\n\t]\n];\nconst NYPM_COMMAND = [\"npx nypm\", \"install\"];\nconst RUN_COMMANDS = [\n\t[\"npm\", \"npx \"],\n\t[\"pnpm\", \"pnpm dlx \"],\n\t[\"bun\", \"bunx \"],\n\t[\"deno\", \"deno run -A npm:\"]\n];\nconst pmInstall = defineGenerator({\n\tname: \"pm-install\",\n\tasync generate({ config, args }) {\n\t\tconst { name, version } = await getPkg(config.dir, args);\n\t\tif (!name) return { contents: \"<!-- package name is unspecified -->\" };\n\t\tlet versionSuffix = \"\";\n\t\tif (args.version) versionSuffix = typeof args.version === \"string\" ? `@${args.version}` : `@^${version}`;\n\t\tconst contents = (args.auto === false ? INSTALL_COMMANDS : [NYPM_COMMAND, ...INSTALL_COMMANDS]).map(([cmd, install, dev = \" -D\", pkgPrefix = \"\"]) => `# ${cmd.includes(\"nypm\") ? \"✨ Auto-detect\" : cmd}\\n${cmd} ${install}${args.dev ? dev : args.global ? \"g\" : \"\"} ${pkgPrefix}${name}${versionSuffix}`);\n\t\tif ((args.separate ?? false) === false) return { contents: md.codeBlock(contents.join(\"\\n\\n\"), \"sh\") };\n\t\treturn { contents: contents.map((cmd) => md.codeBlock(cmd, \"sh\")).join(\"\\n\\n\") };\n\t}\n});\nconst pmX = defineGenerator({\n\tname: \"pm-x\",\n\tasync generate({ config, args }) {\n\t\tconst { name, version } = await getPkg(config.dir, args);\n\t\tif (!name) return { contents: \"<!-- package name is unspecified -->\" };\n\t\tlet versionSuffix = \"\";\n\t\tif (args.version) versionSuffix = typeof args.version === \"string\" ? `@${args.version}` : `@${version}`;\n\t\tconst contents = RUN_COMMANDS.map(([pm, cmd]) => `# ${pm}\\n${cmd}${name}${versionSuffix}${args.args ? ` ${args.args}` : \"\"}`);\n\t\tif ((args.separate ?? false) === false) return { contents: md.codeBlock(contents.join(\"\\n\\n\"), \"sh\") };\n\t\treturn { contents: contents.map((cmd) => md.codeBlock(cmd, \"sh\")).join(\"\\n\\n\") };\n\t}\n});\nconst fetch = defineGenerator({\n\tname: \"fetch\",\n\tasync generate({ args }) {\n\t\tconst { $fetch } = await import(\"ofetch\");\n\t\tlet url = args.url;\n\t\tif (!url) throw new Error(\"URL is required!\");\n\t\tif (url.startsWith(\"gh:\")) url = `https://raw.githubusercontent.com/${url.slice(3)}`;\n\t\treturn { contents: await $fetch(url) };\n\t}\n});\nconst DEFAULT_CDN = \"https://esm.sh/\";\nconst jsimport = defineGenerator({\n\tname: \"jsimport\",\n\tasync generate({ config, args }) {\n\t\tconst { name } = await getPkg(config.dir, args);\n\t\tconst importPath = name + (args.path || \"\");\n\t\tconst importNames = [].concat(args.import, args.imports).filter(Boolean).flatMap((i) => i.split(/\\s*,\\s*/));\n\t\tif (args.src) {\n\t\t\tconst exportNames = findExportNames(await readFile(await resolvePath(args.src, { url: config.dir }), \"utf8\"));\n\t\t\tif (exportNames && exportNames.length > 0) importNames.push(...exportNames);\n\t\t}\n\t\tconst lines = [];\n\t\tconst fmtImports = importNames.length > 1 ? `\\n${importNames.map((i) => \" \" + i + \",\").join(\"\\n\")}\\n` : importNames[0] && ` ${importNames[0]} ` || \"\";\n\t\tconst formatMultiLine = (str) => {\n\t\t\treturn str.length > (args.printWidth || 80) ? str : str.replace(/\\n/g, \"\").replace(/,\\s*}/, \"}\").replace(/(\\w)}/, \"$1 }\").replace(/\\s+/g, \" \");\n\t\t};\n\t\tif (args.esm !== false) {\n\t\t\tconst code = formatMultiLine(`import {${fmtImports}} from \"${importPath}\";`);\n\t\t\tlines.push(\"**ESM** (Node.js, Bun, Deno)\", md.codeBlock(code, \"js\"));\n\t\t}\n\t\tif (args.cjs) {\n\t\t\tconst code = formatMultiLine(`const {${fmtImports}} = require(\"${importPath}\");`);\n\t\t\tlines.push(\"**CommonJS** (Legacy Node.js)\", md.codeBlock(code, \"js\"));\n\t\t}\n\t\tif (args.cdn) {\n\t\t\tconst code = formatMultiLine(`import {${fmtImports}} from \"${typeof args.cdn === \"string\" ? args.cdn : DEFAULT_CDN}${importPath}\";`);\n\t\t\tlines.push(\"**CDN** (Deno and Browsers)\", md.codeBlock(code, \"js\"));\n\t\t}\n\t\treturn { contents: lines.join(\"\\n\\n\") };\n\t}\n});\nconst withAutomd = defineGenerator({\n\tname: \"with-automd\",\n\tgenerate({ args }) {\n\t\tconst lastUpdate = args.lastUpdate ? ` (last updated: ${typeof args.lastUpdate === \"string\" ? args.lastUpdate : (/* @__PURE__ */ new Date()).toDateString()})` : \"\";\n\t\tconst emoji = args.emoji === false ? \"\" : \"🤖 \";\n\t\tconst lines = [];\n\t\tif (args.separator !== false) lines.push(\"---\", \"\");\n\t\tlines.push(`_${emoji}auto updated with [automd](https://automd.unjs.io)${lastUpdate}_`);\n\t\treturn { contents: lines.join(\"\\n\") };\n\t}\n});\nconst file = defineGenerator({\n\tname: \"file\",\n\tasync generate({ args, config, url }) {\n\t\tconst fullPath = resolvePath$1(args.src, {\n\t\t\turl,\n\t\t\tdir: config.dir\n\t\t});\n\t\tlet contents = await readFile(fullPath, \"utf8\");\n\t\tif (!args.noTrim) contents = contents.trim();\n\t\tif (args.lines) {\n\t\t\tconst groups = /^(?<startLine>\\d+)?:(?<endLine>\\d+)?$/.exec(args.lines)?.groups;\n\t\t\tif (!groups) throw new Error(\"invalid lines format\");\n\t\t\tconst lines = contents.split(\"\\n\");\n\t\t\tconst startLine = Number(groups.startLine) || 1;\n\t\t\tconst endLine = Number(groups.endLine) || lines.length;\n\t\t\tif (startLine < 1) throw new Error(\"first line's index can not be smaller than 1\");\n\t\t\tcontents = lines.slice(startLine - 1, endLine).join(\"\\n\");\n\t\t}\n\t\tif (args.code) contents = md.codeBlock(contents, args.lang || extname(fullPath).slice(1), { ext: args.name === false ? void 0 : typeof args.name === \"string\" ? args.name : `[${basename(fullPath)}]` });\n\t\treturn { contents };\n\t}\n});\nconst PROVIDERS = {\n\tCONTRIB_ROCKS: \"contrib.rocks\",\n\tMARKUPGO: \"markupgo\"\n};\nconst contributors = defineGenerator({\n\tname: \"contributors\",\n\tasync generate({ config, args }) {\n\t\tconst { github } = await getPkg(config.dir, args);\n\t\tconst provider = args.provider || PROVIDERS.CONTRIB_ROCKS;\n\t\tif (!github) throw new Error(\"`github` is required!\");\n\t\tconst lines = [];\n\t\tif (typeof args.license === \"string\") lines.push(`Published under the [${args.license.toUpperCase()}](https://github.com/${github}/blob/main/LICENSE) license.`);\n\t\tlet madeBy = `[community](https://github.com/${github}/graphs/contributors) 💛`;\n\t\tif (typeof args.author === \"string\") {\n\t\t\tconst authors = args.author.split(\",\").map((author) => author.trim()).map((user) => `[@${user}](https://github.com/${user})`).join(\", \");\n\t\t\tif (authors.length > 0) madeBy = `${authors} and ${madeBy}`;\n\t\t}\n\t\tlines.push(`Made by ${madeBy}`);\n\t\tif (provider === PROVIDERS.MARKUPGO) {\n\t\t\tconst params = [];\n\t\t\targs = {\n\t\t\t\tcircleSize: \"64\",\n\t\t\t\tcenter: \"true\",\n\t\t\t\t...args\n\t\t\t};\n\t\t\tif (Number(args.max) >= 0) params.push([\"count\", args.max]);\n\t\t\tif (Number(args.width)) params.push([\"width\", args.width]);\n\t\t\tif (Number(args.circleSize)) params.push([\"circleSize\", args.circleSize]);\n\t\t\tif (Number(args.circleRadius)) params.push([\"circleRadius\", args.circleRadius]);\n\t\t\tif (Number(args.circleSpacing)) params.push([\"circleSpacing\", args.circleSpacing]);\n\t\t\tif (args.center) params.push([\"center\", Boolean(args.center).toString()]);\n\t\t\tif (!args.markupGoLogo) params.push([\"removeLogo\", \"true\"]);\n\t\t\tif (args.anon) params.push([\"anon\", Boolean(args.anon).toString()]);\n\t\t\tlet paramsStr = params.map(([k, v]) => `${k}=${v}`).join(\"&\");\n\t\t\tparamsStr = paramsStr ? `?${paramsStr}` : \"\";\n\t\t\tlines.push(`<br><br>`, `<a href=\"https://github.com/${github}/graphs/contributors\">`, `<img src=\"https://markupgo.com/github/${github}/contributors${paramsStr}\" />`, `</a>`);\n\t\t} else {\n\t\t\tconst params = [[\"repo\", github]];\n\t\t\tif (args.max) params.push([\"max\", args.max]);\n\t\t\tif (args.anon) params.push([\"anon\", args.anon]);\n\t\t\tconst paramsStr = params.map(([k, v]) => `${k}=${v}`).join(\"&\");\n\t\t\tlines.push(`<br><br>`, `<a href=\"https://github.com/${github}/graphs/contributors\">`, `<img src=\"https://contrib.rocks/image?${paramsStr}\" />`, `</a>`);\n\t\t}\n\t\treturn { contents: lines.join(\"\\n\") };\n\t}\n});\nconst DEFAULT_IGNORE = [\n\t\"node_modules\",\n\t\".git\",\n\t\".DS_Store\",\n\t\".nuxt\",\n\t\".output\",\n\t\".nitro\",\n\t\"dist\",\n\t\"coverage\",\n\t\".cache\",\n\t\".turbo\"\n];\nasync function parseGitignore(dir) {\n\ttry {\n\t\treturn (await readFile(join(dir, \".gitignore\"), \"utf8\")).split(\"\\n\").map((line) => line.trim()).filter((line) => line && !line.startsWith(\"#\"));\n\t} catch {\n\t\treturn [];\n\t}\n}\nfunction shouldIgnore(name, ignorePatterns, defaultIgnore) {\n\tconst allPatterns = [...defaultIgnore, ...ignorePatterns];\n\tfor (const pattern of allPatterns) {\n\t\tif (name === pattern.replace(/^\\//, \"\").replace(/\\/$/, \"\")) return true;\n\t\tif (pattern.startsWith(\"*\") && name.endsWith(pattern.slice(1))) return true;\n\t\tif (pattern.endsWith(\"*\") && name.startsWith(pattern.slice(0, -1))) return true;\n\t}\n\treturn false;\n}\nasync function buildTree(dir, ignorePatterns, maxDepth, currentDepth = 0) {\n\tif (maxDepth > 0 && currentDepth >= maxDepth) return [];\n\tconst entries = await readdir(dir);\n\tconst result = [];\n\tfor (const entry of entries) {\n\t\tif (shouldIgnore(entry, ignorePatterns, DEFAULT_IGNORE)) continue;\n\t\tconst fullPath = join(dir, entry);\n\t\tconst isDirectory = (await stat(fullPath)).isDirectory();\n\t\tconst treeEntry = {\n\t\t\tname: entry,\n\t\t\tisDirectory\n\t\t};\n\t\tif (isDirectory) treeEntry.children = await buildTree(fullPath, ignorePatterns, maxDepth, currentDepth + 1);\n\t\tresult.push(treeEntry);\n\t}\n\tresult.sort((a, b) => {\n\t\tif (a.isDirectory !== b.isDirectory) return a.isDirectory ? -1 : 1;\n\t\treturn a.name.localeCompare(b.name);\n\t});\n\treturn result;\n}\nfunction renderTree(entries, isLast = []) {\n\tconst lines = [];\n\tfor (let i = 0; i < entries.length; i++) {\n\t\tconst entry = entries[i];\n\t\tconst isLastEntry = i === entries.length - 1;\n\t\tlet linePrefix = \"\";\n\t\tfor (const element_ of isLast) linePrefix += element_ ? \" \" : \"│ \";\n\t\tconst connector = isLastEntry ? \"└── \" : \"├── \";\n\t\tconst suffix = entry.isDirectory ? \"/\" : \"\";\n\t\tlines.push(`${linePrefix}${connector}${entry.name}${suffix}`);\n\t\tif (entry.children && entry.children.length > 0) {\n\t\t\tconst childLines = renderTree(entry.children, [...isLast, isLastEntry]);\n\t\t\tlines.push(...childLines);\n\t\t}\n\t}\n\treturn lines;\n}\nconst dirTree = defineGenerator({\n\tname: \"dir-tree\",\n\tasync generate({ args, config, url }) {\n\t\tconst srcPath = args.src || \".\";\n\t\tconst fullPath = resolvePath$1(srcPath, {\n\t\t\turl,\n\t\t\tdir: config.dir\n\t\t});\n\t\tif (!(await stat(fullPath)).isDirectory()) throw new Error(`Path \"${srcPath}\" is not a directory`);\n\t\tconst userIgnore = args.ignore ? String(args.ignore).split(\",\").map((s) => s.trim()) : [];\n\t\treturn { contents: \"```\\n\" + renderTree(await buildTree(fullPath, [...await parseGitignore(fullPath), ...userIgnore], args.maxDepth ? Number(args.maxDepth) : 0)).join(\"\\n\") + \"\\n```\" };\n\t}\n});\nvar generators_default = {\n\tjsdocs,\n\tbadges,\n\t\"pm-i\": pmInstall,\n\t\"pm-install\": pmInstall,\n\t\"pm-x\": pmX,\n\tfetch,\n\tfile,\n\tjsimport,\n\t\"with-automd\": withAutomd,\n\tcontributors,\n\t\"dir-tree\": dirTree\n};\nfunction findBlocks(md) {\n\tconst blocks = [];\n\tfor (const match of md.matchAll(/^(?<open><!--\\s*automd:(?<generator>.+?)\\s+(?<args>.*?)\\s*-->)(?<contents>.+?)(?<close>^<!--\\s*\\/automd\\s*-->)/gimsu)) {\n\t\tif (match.index === void 0 || !match.groups) continue;\n\t\tconst start = match.index + match.groups.open.length || 0;\n\t\tconst end = start + match.groups.contents.length;\n\t\tblocks.push({\n\t\t\tgenerator: match.groups.generator,\n\t\t\trawArgs: match.groups.args,\n\t\t\tcontents: match.groups.contents,\n\t\t\tloc: {\n\t\t\t\tstart,\n\t\t\t\tend\n\t\t\t},\n\t\t\t_loc: {\n\t\t\t\tstart: match.index,\n\t\t\t\tend: match.index + match[0].length\n\t\t\t}\n\t\t});\n\t}\n\treturn blocks;\n}\nfunction containsAutomd(md) {\n\treturn /^<!--\\s*automd:/gimsu.test(md);\n}\nfunction parseRawArgs(rawArgs) {\n\tconst args = Object.create(null);\n\tfor (const part of rawArgs.split(/\\s+/)) {\n\t\tconst [_key, value] = part.split(\"=\");\n\t\tconst key = _key && camelCase(_key);\n\t\tif (key && value) args[key] = destr(value);\n\t\telse if (part.startsWith(\"no-\")) args[part.slice(3)] = false;\n\t\telse args[part] = true;\n\t}\n\treturn args;\n}\nconst RESOLVED_CONFIG_SYMBOL = Symbol(\"automdConfig\");\nfunction resolveConfig(config) {\n\tif (config && RESOLVED_CONFIG_SYMBOL in config) return config;\n\tconst _config = {\n\t\tdir: \".\",\n\t\tinput: \"README.md\",\n\t\tgenerators: {},\n\t\t[RESOLVED_CONFIG_SYMBOL]: true,\n\t\t...config\n\t};\n\t_config.dir = resolve(_config.dir);\n\t_config.input = (Array.isArray(_config.input) ? _config.input : [_config.input]).filter(Boolean);\n\treturn _config;\n}\nasync function loadConfig(dir = \".\", overrides) {\n\tconst { loadConfig } = await import(\"c12\");\n\tdir = resolve(dir);\n\tconst { config } = await loadConfig({\n\t\tcwd: dir,\n\t\tname: \"automd\",\n\t\tdotenv: true,\n\t\toverrides,\n\t\tdefaults: {\n\t\t\tignore: [\n\t\t\t\t\"**/node_modules\",\n\t\t\t\t\"**/dist\",\n\t\t\t\t\"**/.*\"\n\t\t\t],\n\t\t\tdir\n\t\t}\n\t});\n\treturn resolveConfig(config);\n}\nasync function transform(contents, _config, url) {\n\tconst start = performance.now();\n\tconst config = resolveConfig(_config);\n\tconst editor = new MagicString(contents);\n\tconst updates = [];\n\tconst generators = {\n\t\t...generators_default,\n\t\t...config.generators\n\t};\n\tconst blocks = findBlocks(contents);\n\tfor (const block of blocks) {\n\t\tconst result = await _transformBlock(block, config, generators, url);\n\t\tif (result.unwrap) editor.overwrite(block._loc.start, block._loc.end, `${result.contents.trim()}`);\n\t\telse editor.overwrite(block.loc.start, block.loc.end, `\\n\\n${result.contents.trim()}\\n\\n`);\n\t\tupdates.push({\n\t\t\tblock,\n\t\t\tresult\n\t\t});\n\t}\n\tconst hasChanged = editor.hasChanged();\n\tconst hasIssues = updates.some((u) => u.result.issues?.filter(Boolean).length);\n\tconst time = performance.now() - start;\n\treturn {\n\t\thasChanged,\n\t\thasIssues,\n\t\tcontents: hasChanged ? editor.toString() : contents,\n\t\tupdates,\n\t\ttime\n\t};\n}\nasync function _transformBlock(block, config, generators, url) {\n\tconst args = parseRawArgs(block.rawArgs);\n\tconst generator = generators[block.generator];\n\tif (!generator) {\n\t\tconst suggestions = (await import(\"didyoumean2\").then((r) => r.default || r))(block.generator, Object.keys(generators));\n\t\tconst error = `Unknown generator:\\`${block.generator}\\`.${suggestions ? ` Did you mean \"generator:\\`${suggestions}\\`\"?` : \"\"}`;\n\t\treturn {\n\t\t\tcontents: `<!-- ⚠️ ${error} -->`,\n\t\t\tissues: [error]\n\t\t};\n\t}\n\tconst context = {\n\t\targs,\n\t\tconfig,\n\t\tblock,\n\t\ttransform: (contents) => transform(contents, config, url),\n\t\turl\n\t};\n\ttry {\n\t\tconst result = await generator.generate(context);\n\t\tif (!result.unwrap && containsAutomd(result.contents)) result.unwrap = true;\n\t\tif (result.unwrap) {\n\t\t\tconst nestedRes = await context.transform(result.contents);\n\t\t\tresult.contents = nestedRes.contents;\n\t\t\tif (nestedRes.hasIssues) result.issues = [...result.issues || [], ...nestedRes.updates.flatMap((u) => u.result.issues || [])].filter(Boolean);\n\t\t}\n\t\treturn result;\n\t} catch (error) {\n\t\treturn {\n\t\t\tcontents: `<!-- ⚠️ (${block.generator}) ${error.message || error} -->`,\n\t\t\tissues: [error]\n\t\t};\n\t}\n}\nasync function automd(_config = {}) {\n\tconst start = performance.now();\n\tconst config = await loadConfig(_config.dir, _config);\n\tlet inputFiles = config.input;\n\tif (inputFiles.some((i) => i.includes(\"*\"))) {\n\t\tconst { glob } = await import(\"tinyglobby\");\n\t\tinputFiles = await glob(inputFiles, {\n\t\t\tcwd: config.dir,\n\t\t\tabsolute: false,\n\t\t\tonlyFiles: true,\n\t\t\tignore: config.ignore\n\t\t});\n\t} else inputFiles = inputFiles.map((i) => resolve(config.dir, i)).filter((i) => existsSync(i)).map((i) => relative(config.dir, i));\n\tconst multiFiles = inputFiles.length > 1;\n\tconst cache = /* @__PURE__ */ new Map();\n\tconst results = await Promise.all(inputFiles.map((i) => _automd(i, config, multiFiles, cache)));\n\tlet unwatch;\n\tif (config.watch) unwatch = await _watch(inputFiles, config, multiFiles, cache);\n\treturn {\n\t\ttime: performance.now() - start,\n\t\tresults,\n\t\tconfig,\n\t\tunwatch\n\t};\n}\nasync function _automd(relativeInput, config, multiFiles, cache) {\n\tconst start = performance.now();\n\tconst input = resolve(config.dir, relativeInput);\n\tconst contents = await promises.readFile(input, \"utf8\");\n\tconst cachedResult = await cache.get(input);\n\tif (cachedResult?.contents === contents) {\n\t\tcachedResult.time = performance.now() - start;\n\t\treturn cachedResult;\n\t}\n\tconst transformResult = await transform(contents, config, pathToFileURL(input));\n\tconst output = multiFiles ? resolve(config.dir, config.output || \".\", relativeInput) : resolve(config.dir, config.output || relativeInput);\n\tawait promises.mkdir(dirname(output), { recursive: true });\n\tawait promises.writeFile(output, transformResult.contents, \"utf8\");\n\tconst result = {\n\t\tinput,\n\t\toutput,\n\t\t...transformResult\n\t};\n\tcache.set(input, result);\n\tresult.time = performance.now() - start;\n\treturn result;\n}\nasync function _watch(inputFiles, config, multiFiles, cache) {\n\tconst watcher = await import(\"@parcel/watcher\");\n\tconst watchCb = debounce(async (_err, events) => {\n\t\tconst filesToUpdate = events.map((e) => relative(config.dir, e.path)).filter((p) => inputFiles.includes(p));\n\t\tconst start = performance.now();\n\t\tconst results = await Promise.all(filesToUpdate.map((f) => _automd(f, config, multiFiles, cache)));\n\t\tconst time = performance.now() - start;\n\t\tif (config.onWatch) config.onWatch({\n\t\t\tresults,\n\t\t\ttime\n\t\t});\n\t});\n\tconst subscription = await watcher.subscribe(config.dir, watchCb, { ignore: config.ignore });\n\tprocess.on(\"SIGINT\", () => {\n\t\tsubscription.unsubscribe();\n\t});\n\treturn subscription.unsubscribe;\n}\nexport { automd, defineGenerator, loadConfig, resolveConfig, transform };\n"],"x_google_ignoreList":[0],"mappings":"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"}