docmeta 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-NTXC32C4.js +0 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.js +0 -0
- package/package.json +1 -1
package/dist/chunk-NTXC32C4.js
CHANGED
|
File without changes
|
package/dist/cli.js
CHANGED
|
@@ -17,7 +17,7 @@ import { Command } from "commander";
|
|
|
17
17
|
// package.json
|
|
18
18
|
var package_default = {
|
|
19
19
|
name: "docmeta",
|
|
20
|
-
version: "
|
|
20
|
+
version: "1.0.0",
|
|
21
21
|
description: "Validate the presence and format of document metadata (Markdown frontmatter and more) against JSON Schema. CI-friendly.",
|
|
22
22
|
type: "module",
|
|
23
23
|
bin: {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts","../package.json"],"sourcesContent":["/**\n * docmeta CLI. Thin commander wrapper over the command cores. Follows clig.dev:\n * primary output to stdout, diagnostics to stderr, color only on a TTY (and\n * never when NO_COLOR/--no-color), meaningful exit codes (0 ok, 1 validation\n * failures, 2 operational/usage errors).\n */\nimport { realpathSync } from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { Command } from \"commander\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { DocmetaError } from \"./types.js\";\nimport { runValidate } from \"./commands/validate.js\";\nimport { runGet } from \"./commands/get.js\";\nimport { getSchemasInfo } from \"./commands/schemas.js\";\nimport { render, type ReportFormat } from \"./reporters/index.js\";\nimport { shouldColor, palette } from \"./reporters/color.js\";\n\nfunction collect(value: string, prev: string[]): string[] {\n return prev.concat([value]);\n}\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) chunks.push(chunk as Buffer);\n return Buffer.concat(chunks).toString(\"utf8\");\n}\n\nfunction fail(err: unknown): never {\n const msg =\n err instanceof DocmetaError\n ? err.message\n : `Unexpected error: ${(err as Error).message}`;\n process.stderr.write(`docmeta: ${msg}\\n`);\n process.exit(2);\n}\n\nfunction resolveColor(program: Command): boolean {\n // commander maps --no-color to opts.color === false.\n const noColor = program.opts().color === false;\n return shouldColor({ noColor, isTTY: Boolean(process.stdout.isTTY) });\n}\n\nfunction stringifyValue(v: unknown): string {\n if (v === undefined) return \"(unset)\";\n if (typeof v === \"string\") return v;\n return JSON.stringify(v);\n}\n\nconst REPORT_FORMATS = new Set([\"pretty\", \"json\", \"github\"]);\n\nexport function buildProgram(): Command {\n const program = new Command();\n program\n .name(\"docmeta\")\n .description(\n \"Validate the presence and format of document metadata against JSON Schema.\",\n )\n .version(pkg.version, \"-V, --version\")\n .option(\"--no-color\", \"disable colored output\")\n .showHelpAfterError();\n\n program\n .command(\"validate\", { isDefault: true })\n .description(\"Validate metadata in the given files/dirs/globs\")\n .argument(\n \"[paths...]\",\n \"files, directories, or globs to validate (use - for stdin)\",\n )\n .option(\n \"-s, --schema <ref>\",\n \"schema to validate against; repeatable; overrides $schema/config\",\n collect,\n [],\n )\n .option(\"--ext <list>\", \"comma-separated extensions for directory walks\")\n .option(\"--exclude <glob>\", \"glob to exclude; repeatable\", collect, [])\n .option(\"--as <format>\", \"force an input format (e.g. markdown, mdx)\")\n .option(\"-f, --format <format>\", \"output: pretty | json | github\", \"pretty\")\n .option(\"-c, --config <path>\", \"path to a docmeta config file\")\n .option(\"-q, --quiet\", \"in pretty output, hide passing files\")\n .addHelpText(\n \"after\",\n [\n \"\",\n \"Examples:\",\n \" docmeta validate docs/ # walk a directory\",\n ' docmeta validate \"**/*.md\" -f github # CI annotations',\n \" docmeta validate page.md -s google:okf:0.1 -s ./my.schema.json\",\n \" cat page.md | docmeta validate - --as markdown\",\n ].join(\"\\n\"),\n )\n .action(async (paths: string[], options, command: Command) => {\n try {\n const format = options.format as ReportFormat;\n if (!REPORT_FORMATS.has(format)) {\n throw new DocmetaError(\n `Unknown --format \"${format}\". Use pretty, json, or github.`,\n );\n }\n const exts: string[] | undefined = options.ext\n ? String(options.ext)\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean)\n : undefined;\n const stdinContent = paths.includes(\"-\")\n ? await readStdin()\n : undefined;\n\n const { results, summary } = await runValidate({\n inputs: paths,\n cliSchemas: options.schema,\n exts,\n exclude: options.exclude,\n as: options.as,\n configPath: options.config,\n stdinContent,\n });\n\n const color = resolveColor(command.parent ?? command);\n const text = render(format, results, summary, {\n color,\n quiet: Boolean(options.quiet),\n });\n if (text.length > 0) process.stdout.write(`${text}\\n`);\n process.exitCode = summary.failed > 0 ? 1 : 0;\n } catch (err) {\n fail(err);\n }\n });\n\n program\n .command(\"get\")\n .description(\n \"Print metadata field values from the given files/dirs/globs\",\n )\n .argument(\"<fields>\", \"comma-separated metadata fields to print\")\n .argument(\n \"[paths...]\",\n \"files, directories, or globs to read (use - for stdin)\",\n )\n .option(\"--ext <list>\", \"comma-separated extensions for directory walks\")\n .option(\"--exclude <glob>\", \"glob to exclude; repeatable\", collect, [])\n .option(\"--as <format>\", \"force an input format (e.g. markdown, mdx)\")\n .option(\"-f, --format <format>\", \"output: pretty | json\", \"pretty\")\n .option(\"-c, --config <path>\", \"path to a docmeta config file\")\n .addHelpText(\n \"after\",\n [\n \"\",\n \"Examples:\",\n \" docmeta get title,type docs/intro.md\",\n ' docmeta get type \"**/*.md\" -f json',\n \" cat page.md | docmeta get title - --as markdown\",\n ].join(\"\\n\"),\n )\n .action(async (fieldsArg: string, paths: string[], options, command: Command) => {\n try {\n const format = options.format as string;\n if (format !== \"pretty\" && format !== \"json\") {\n throw new DocmetaError(\n `Unknown --format \"${format}\". Use pretty or json.`,\n );\n }\n const fields = String(fieldsArg)\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n const exts: string[] | undefined = options.ext\n ? String(options.ext)\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean)\n : undefined;\n const stdinContent = paths.includes(\"-\")\n ? await readStdin()\n : undefined;\n\n const results = await runGet({\n fields,\n inputs: paths,\n as: options.as,\n exclude: options.exclude,\n exts,\n configPath: options.config,\n stdinContent,\n });\n if (format === \"json\") {\n process.stdout.write(`${JSON.stringify(results, null, 2)}\\n`);\n } else {\n const c = palette(resolveColor(command.parent ?? command));\n for (const r of results) {\n for (const f of fields) {\n process.stdout.write(\n `${c.dim(`${r.file}:`)} ${f}=${stringifyValue(r.values[f])}\\n`,\n );\n }\n }\n }\n } catch (err) {\n fail(err);\n }\n });\n\n program\n .command(\"schemas\")\n .description(\"List built-in schemas and supported input formats\")\n .option(\"-f, --format <format>\", \"output: pretty | json\", \"pretty\")\n .action((options, command: Command) => {\n const info = getSchemasInfo();\n if (options.format === \"json\") {\n process.stdout.write(`${JSON.stringify(info, null, 2)}\\n`);\n return;\n }\n const c = palette(resolveColor(command.parent ?? command));\n const lines: string[] = [c.bold(\"Built-in schemas:\")];\n for (const b of info.builtins) {\n lines.push(` ${c.cyan(b.id)} ${c.dim(\"—\")} ${b.title}`);\n }\n lines.push(\"\", c.bold(\"Input formats:\"));\n for (const f of info.formats) {\n const tag = f.implemented ? c.green(\"implemented\") : c.dim(\"planned\");\n lines.push(` ${f.name} (${f.extensions.join(\", \")}) [${tag}]`);\n }\n process.stdout.write(`${lines.join(\"\\n\")}\\n`);\n });\n\n return program;\n}\n\nexport async function main(argv: string[] = process.argv): Promise<void> {\n const program = buildProgram();\n await program.parseAsync(argv);\n}\n\n/** Run only when executed directly (not when imported by tests). */\nfunction isMainModule(): boolean {\n const entry = process.argv[1];\n if (!entry) return false;\n try {\n return realpathSync(entry) === fileURLToPath(import.meta.url);\n } catch {\n return false;\n }\n}\n\nif (isMainModule()) {\n main().catch(fail);\n}\n","{\n \"name\": \"docmeta\",\n \"version\": \"0.1.0\",\n \"description\": \"Validate the presence and format of document metadata (Markdown frontmatter and more) against JSON Schema. CI-friendly.\",\n \"type\": \"module\",\n \"bin\": {\n \"docmeta\": \"dist/cli.js\"\n },\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/hawkeyexl/docmeta.git\"\n },\n \"homepage\": \"https://hawkeyexl.github.io/docmeta/\",\n \"bugs\": {\n \"url\": \"https://github.com/hawkeyexl/docmeta/issues\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"engines\": {\n \"node\": \">=24\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest\",\n \"typecheck\": \"tsc --noEmit\",\n \"docs:check-cli\": \"node scripts/check-cli-reference.mjs\",\n \"commitlint\": \"commitlint --edit\",\n \"semantic-release\": \"semantic-release\",\n \"prepare\": \"husky\",\n \"prepublishOnly\": \"npm run build\"\n },\n \"keywords\": [\n \"frontmatter\",\n \"metadata\",\n \"json-schema\",\n \"markdown\",\n \"validation\",\n \"cli\",\n \"ci\",\n \"okf\"\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@xmldom/xmldom\": \"^0.9.10\",\n \"ajv\": \"^8.17.1\",\n \"ajv-draft-04\": \"^1.0.0\",\n \"ajv-formats\": \"^3.0.1\",\n \"commander\": \"^15.0.0\",\n \"fast-glob\": \"^3.3.2\",\n \"parse5\": \"^8.0.1\",\n \"picocolors\": \"^1.1.1\",\n \"picomatch\": \"^4.0.4\",\n \"yaml\": \"^2.6.1\"\n },\n \"devDependencies\": {\n \"@commitlint/cli\": \"^21.0.2\",\n \"@commitlint/config-conventional\": \"^21.0.2\",\n \"@semantic-release/changelog\": \"^6.0.3\",\n \"@semantic-release/commit-analyzer\": \"^13.0.1\",\n \"@semantic-release/git\": \"^10.0.1\",\n \"@semantic-release/github\": \"^12.0.8\",\n \"@semantic-release/npm\": \"^13.1.5\",\n \"@semantic-release/release-notes-generator\": \"^14.1.1\",\n \"@types/node\": \"^26.0.1\",\n \"@types/picomatch\": \"^4.0.3\",\n \"husky\": \"^9.1.7\",\n \"semantic-release\": \"^25.0.3\",\n \"tsup\": \"^8.3.5\",\n \"typescript\": \"^6.0.3\",\n \"vitest\": \"^4.1.9\"\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts","../package.json"],"sourcesContent":["/**\n * docmeta CLI. Thin commander wrapper over the command cores. Follows clig.dev:\n * primary output to stdout, diagnostics to stderr, color only on a TTY (and\n * never when NO_COLOR/--no-color), meaningful exit codes (0 ok, 1 validation\n * failures, 2 operational/usage errors).\n */\nimport { realpathSync } from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { Command } from \"commander\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { DocmetaError } from \"./types.js\";\nimport { runValidate } from \"./commands/validate.js\";\nimport { runGet } from \"./commands/get.js\";\nimport { getSchemasInfo } from \"./commands/schemas.js\";\nimport { render, type ReportFormat } from \"./reporters/index.js\";\nimport { shouldColor, palette } from \"./reporters/color.js\";\n\nfunction collect(value: string, prev: string[]): string[] {\n return prev.concat([value]);\n}\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) chunks.push(chunk as Buffer);\n return Buffer.concat(chunks).toString(\"utf8\");\n}\n\nfunction fail(err: unknown): never {\n const msg =\n err instanceof DocmetaError\n ? err.message\n : `Unexpected error: ${(err as Error).message}`;\n process.stderr.write(`docmeta: ${msg}\\n`);\n process.exit(2);\n}\n\nfunction resolveColor(program: Command): boolean {\n // commander maps --no-color to opts.color === false.\n const noColor = program.opts().color === false;\n return shouldColor({ noColor, isTTY: Boolean(process.stdout.isTTY) });\n}\n\nfunction stringifyValue(v: unknown): string {\n if (v === undefined) return \"(unset)\";\n if (typeof v === \"string\") return v;\n return JSON.stringify(v);\n}\n\nconst REPORT_FORMATS = new Set([\"pretty\", \"json\", \"github\"]);\n\nexport function buildProgram(): Command {\n const program = new Command();\n program\n .name(\"docmeta\")\n .description(\n \"Validate the presence and format of document metadata against JSON Schema.\",\n )\n .version(pkg.version, \"-V, --version\")\n .option(\"--no-color\", \"disable colored output\")\n .showHelpAfterError();\n\n program\n .command(\"validate\", { isDefault: true })\n .description(\"Validate metadata in the given files/dirs/globs\")\n .argument(\n \"[paths...]\",\n \"files, directories, or globs to validate (use - for stdin)\",\n )\n .option(\n \"-s, --schema <ref>\",\n \"schema to validate against; repeatable; overrides $schema/config\",\n collect,\n [],\n )\n .option(\"--ext <list>\", \"comma-separated extensions for directory walks\")\n .option(\"--exclude <glob>\", \"glob to exclude; repeatable\", collect, [])\n .option(\"--as <format>\", \"force an input format (e.g. markdown, mdx)\")\n .option(\"-f, --format <format>\", \"output: pretty | json | github\", \"pretty\")\n .option(\"-c, --config <path>\", \"path to a docmeta config file\")\n .option(\"-q, --quiet\", \"in pretty output, hide passing files\")\n .addHelpText(\n \"after\",\n [\n \"\",\n \"Examples:\",\n \" docmeta validate docs/ # walk a directory\",\n ' docmeta validate \"**/*.md\" -f github # CI annotations',\n \" docmeta validate page.md -s google:okf:0.1 -s ./my.schema.json\",\n \" cat page.md | docmeta validate - --as markdown\",\n ].join(\"\\n\"),\n )\n .action(async (paths: string[], options, command: Command) => {\n try {\n const format = options.format as ReportFormat;\n if (!REPORT_FORMATS.has(format)) {\n throw new DocmetaError(\n `Unknown --format \"${format}\". Use pretty, json, or github.`,\n );\n }\n const exts: string[] | undefined = options.ext\n ? String(options.ext)\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean)\n : undefined;\n const stdinContent = paths.includes(\"-\")\n ? await readStdin()\n : undefined;\n\n const { results, summary } = await runValidate({\n inputs: paths,\n cliSchemas: options.schema,\n exts,\n exclude: options.exclude,\n as: options.as,\n configPath: options.config,\n stdinContent,\n });\n\n const color = resolveColor(command.parent ?? command);\n const text = render(format, results, summary, {\n color,\n quiet: Boolean(options.quiet),\n });\n if (text.length > 0) process.stdout.write(`${text}\\n`);\n process.exitCode = summary.failed > 0 ? 1 : 0;\n } catch (err) {\n fail(err);\n }\n });\n\n program\n .command(\"get\")\n .description(\n \"Print metadata field values from the given files/dirs/globs\",\n )\n .argument(\"<fields>\", \"comma-separated metadata fields to print\")\n .argument(\n \"[paths...]\",\n \"files, directories, or globs to read (use - for stdin)\",\n )\n .option(\"--ext <list>\", \"comma-separated extensions for directory walks\")\n .option(\"--exclude <glob>\", \"glob to exclude; repeatable\", collect, [])\n .option(\"--as <format>\", \"force an input format (e.g. markdown, mdx)\")\n .option(\"-f, --format <format>\", \"output: pretty | json\", \"pretty\")\n .option(\"-c, --config <path>\", \"path to a docmeta config file\")\n .addHelpText(\n \"after\",\n [\n \"\",\n \"Examples:\",\n \" docmeta get title,type docs/intro.md\",\n ' docmeta get type \"**/*.md\" -f json',\n \" cat page.md | docmeta get title - --as markdown\",\n ].join(\"\\n\"),\n )\n .action(async (fieldsArg: string, paths: string[], options, command: Command) => {\n try {\n const format = options.format as string;\n if (format !== \"pretty\" && format !== \"json\") {\n throw new DocmetaError(\n `Unknown --format \"${format}\". Use pretty or json.`,\n );\n }\n const fields = String(fieldsArg)\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n const exts: string[] | undefined = options.ext\n ? String(options.ext)\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean)\n : undefined;\n const stdinContent = paths.includes(\"-\")\n ? await readStdin()\n : undefined;\n\n const results = await runGet({\n fields,\n inputs: paths,\n as: options.as,\n exclude: options.exclude,\n exts,\n configPath: options.config,\n stdinContent,\n });\n if (format === \"json\") {\n process.stdout.write(`${JSON.stringify(results, null, 2)}\\n`);\n } else {\n const c = palette(resolveColor(command.parent ?? command));\n for (const r of results) {\n for (const f of fields) {\n process.stdout.write(\n `${c.dim(`${r.file}:`)} ${f}=${stringifyValue(r.values[f])}\\n`,\n );\n }\n }\n }\n } catch (err) {\n fail(err);\n }\n });\n\n program\n .command(\"schemas\")\n .description(\"List built-in schemas and supported input formats\")\n .option(\"-f, --format <format>\", \"output: pretty | json\", \"pretty\")\n .action((options, command: Command) => {\n const info = getSchemasInfo();\n if (options.format === \"json\") {\n process.stdout.write(`${JSON.stringify(info, null, 2)}\\n`);\n return;\n }\n const c = palette(resolveColor(command.parent ?? command));\n const lines: string[] = [c.bold(\"Built-in schemas:\")];\n for (const b of info.builtins) {\n lines.push(` ${c.cyan(b.id)} ${c.dim(\"—\")} ${b.title}`);\n }\n lines.push(\"\", c.bold(\"Input formats:\"));\n for (const f of info.formats) {\n const tag = f.implemented ? c.green(\"implemented\") : c.dim(\"planned\");\n lines.push(` ${f.name} (${f.extensions.join(\", \")}) [${tag}]`);\n }\n process.stdout.write(`${lines.join(\"\\n\")}\\n`);\n });\n\n return program;\n}\n\nexport async function main(argv: string[] = process.argv): Promise<void> {\n const program = buildProgram();\n await program.parseAsync(argv);\n}\n\n/** Run only when executed directly (not when imported by tests). */\nfunction isMainModule(): boolean {\n const entry = process.argv[1];\n if (!entry) return false;\n try {\n return realpathSync(entry) === fileURLToPath(import.meta.url);\n } catch {\n return false;\n }\n}\n\nif (isMainModule()) {\n main().catch(fail);\n}\n","{\n \"name\": \"docmeta\",\n \"version\": \"1.0.0\",\n \"description\": \"Validate the presence and format of document metadata (Markdown frontmatter and more) against JSON Schema. CI-friendly.\",\n \"type\": \"module\",\n \"bin\": {\n \"docmeta\": \"dist/cli.js\"\n },\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/hawkeyexl/docmeta.git\"\n },\n \"homepage\": \"https://hawkeyexl.github.io/docmeta/\",\n \"bugs\": {\n \"url\": \"https://github.com/hawkeyexl/docmeta/issues\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"engines\": {\n \"node\": \">=24\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest\",\n \"typecheck\": \"tsc --noEmit\",\n \"docs:check-cli\": \"node scripts/check-cli-reference.mjs\",\n \"commitlint\": \"commitlint --edit\",\n \"semantic-release\": \"semantic-release\",\n \"prepare\": \"husky\",\n \"prepublishOnly\": \"npm run build\"\n },\n \"keywords\": [\n \"frontmatter\",\n \"metadata\",\n \"json-schema\",\n \"markdown\",\n \"validation\",\n \"cli\",\n \"ci\",\n \"okf\"\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@xmldom/xmldom\": \"^0.9.10\",\n \"ajv\": \"^8.17.1\",\n \"ajv-draft-04\": \"^1.0.0\",\n \"ajv-formats\": \"^3.0.1\",\n \"commander\": \"^15.0.0\",\n \"fast-glob\": \"^3.3.2\",\n \"parse5\": \"^8.0.1\",\n \"picocolors\": \"^1.1.1\",\n \"picomatch\": \"^4.0.4\",\n \"yaml\": \"^2.6.1\"\n },\n \"devDependencies\": {\n \"@commitlint/cli\": \"^21.0.2\",\n \"@commitlint/config-conventional\": \"^21.0.2\",\n \"@semantic-release/changelog\": \"^6.0.3\",\n \"@semantic-release/commit-analyzer\": \"^13.0.1\",\n \"@semantic-release/git\": \"^10.0.1\",\n \"@semantic-release/github\": \"^12.0.8\",\n \"@semantic-release/npm\": \"^13.1.5\",\n \"@semantic-release/release-notes-generator\": \"^14.1.1\",\n \"@types/node\": \"^26.0.1\",\n \"@types/picomatch\": \"^4.0.3\",\n \"husky\": \"^9.1.7\",\n \"semantic-release\": \"^25.0.3\",\n \"tsup\": \"^8.3.5\",\n \"typescript\": \"^6.0.3\",\n \"vitest\": \"^4.1.9\"\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED
|
File without changes
|