prodex 1.4.0 → 1.4.1
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/cli/cli-input.js +0 -1
- package/dist/cli/init.js +0 -1
- package/dist/cli/picker.js +0 -1
- package/dist/cli/summary.js +0 -1
- package/dist/constants/cache-keys.js +0 -1
- package/dist/constants/config.js +0 -1
- package/dist/constants/default-config.js +0 -1
- package/dist/constants/flags.js +0 -1
- package/dist/constants/index.js +0 -1
- package/dist/constants/render-constants.js +0 -1
- package/dist/core/combine.js +0 -1
- package/dist/core/dependency.js +0 -1
- package/dist/core/helpers.js +0 -1
- package/dist/core/managers/cache.js +0 -1
- package/dist/core/managers/config.js +0 -1
- package/dist/core/output.js +0 -1
- package/dist/core/renderers.js +0 -1
- package/dist/debug.js +0 -1
- package/dist/index.js +0 -1
- package/dist/lib/logger.js +0 -1
- package/dist/lib/polyfills.js +0 -1
- package/dist/lib/prompt.js +0 -1
- package/dist/lib/questions.js +0 -1
- package/dist/lib/utils.js +0 -1
- package/dist/resolvers/js/extract-imports.js +0 -1
- package/dist/resolvers/js/js-resolver.js +0 -1
- package/dist/resolvers/js/resolve-alias.js +0 -1
- package/dist/resolvers/php/bindings.js +0 -1
- package/dist/resolvers/php/extract-imports.js +0 -1
- package/dist/resolvers/php/php-resolver.js +0 -1
- package/dist/resolvers/php/psr4.js +0 -1
- package/dist/shared/collections.js +0 -1
- package/dist/shared/index.js +0 -1
- package/dist/shared/io.js +0 -1
- package/dist/shared/patterns.js +0 -1
- package/dist/store.js +0 -1
- package/dist/types/cli.types.js +0 -1
- package/dist/types/config.types.js +0 -1
- package/dist/types/core.types.js +0 -1
- package/dist/types/index.js +0 -1
- package/dist/types/resolver.types.js +0 -1
- package/dist/types/utils.types.js +0 -1
- package/package.json +1 -1
- package/dist/cli/cli-input.js.map +0 -1
- package/dist/cli/flags.js +0 -43
- package/dist/cli/flags.js.map +0 -1
- package/dist/cli/init.js.map +0 -1
- package/dist/cli/picker.js.map +0 -1
- package/dist/cli/summary.js.map +0 -1
- package/dist/constants/cache-keys.js.map +0 -1
- package/dist/constants/config-loader.js +0 -95
- package/dist/constants/config-loader.js.map +0 -1
- package/dist/constants/config.js.map +0 -1
- package/dist/constants/default-config.js.map +0 -1
- package/dist/constants/flags.js.map +0 -1
- package/dist/constants/index.js.map +0 -1
- package/dist/constants/render-constants.js.map +0 -1
- package/dist/core/cache.js +0 -54
- package/dist/core/cache.js.map +0 -1
- package/dist/core/combine.js.map +0 -1
- package/dist/core/config-manager.js +0 -104
- package/dist/core/config-manager.js.map +0 -1
- package/dist/core/dependency.js.map +0 -1
- package/dist/core/file-utils.js +0 -1
- package/dist/core/file-utils.js.map +0 -1
- package/dist/core/helpers.js.map +0 -1
- package/dist/core/managers/cache.js.map +0 -1
- package/dist/core/managers/config-manager.js +0 -104
- package/dist/core/managers/config-manager.js.map +0 -1
- package/dist/core/managers/config.js.map +0 -1
- package/dist/core/output.js.map +0 -1
- package/dist/core/parsers/extract-imports.js +0 -46
- package/dist/core/parsers/extract-imports.js.map +0 -1
- package/dist/core/renderers.js.map +0 -1
- package/dist/debug.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/polyfills.js.map +0 -1
- package/dist/lib/prompt.js.map +0 -1
- package/dist/lib/questions.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/dist/resolvers/js/alias-loader.js +0 -53
- package/dist/resolvers/js/alias-loader.js.map +0 -1
- package/dist/resolvers/js/extract-imports.js.map +0 -1
- package/dist/resolvers/js/js-resolver.js.map +0 -1
- package/dist/resolvers/js/resolve-alias.js.map +0 -1
- package/dist/resolvers/php/bindings.js.map +0 -1
- package/dist/resolvers/php/extract-imports.js.map +0 -1
- package/dist/resolvers/php/patterns.js +0 -50
- package/dist/resolvers/php/patterns.js.map +0 -1
- package/dist/resolvers/php/php-resolver.js.map +0 -1
- package/dist/resolvers/php/psr4.js.map +0 -1
- package/dist/resolvers/shared/excludes.js +0 -12
- package/dist/resolvers/shared/excludes.js.map +0 -1
- package/dist/resolvers/shared/file-cache.js +0 -1
- package/dist/resolvers/shared/file-cache.js.map +0 -1
- package/dist/resolvers/shared/resolve-alias.js +0 -62
- package/dist/resolvers/shared/resolve-alias.js.map +0 -1
- package/dist/resolvers/shared/stats.js +0 -17
- package/dist/resolvers/shared/stats.js.map +0 -1
- package/dist/shared/collections.js.map +0 -1
- package/dist/shared/index.js.map +0 -1
- package/dist/shared/io.js.map +0 -1
- package/dist/shared/patterns.js.map +0 -1
- package/dist/shared/stats.js +0 -32
- package/dist/shared/stats.js.map +0 -1
- package/dist/store.js.map +0 -1
- package/dist/types/cli.types.js.map +0 -1
- package/dist/types/config.types.js.map +0 -1
- package/dist/types/core.types.js.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/resolver.types.js.map +0 -1
- package/dist/types/utils.types.js.map +0 -1
package/dist/cli/cli-input.js
CHANGED
package/dist/cli/init.js
CHANGED
package/dist/cli/picker.js
CHANGED
package/dist/cli/summary.js
CHANGED
package/dist/constants/config.js
CHANGED
|
@@ -25,4 +25,3 @@ exports.SUFFIX = "trace";
|
|
|
25
25
|
* - Filters out invalid or unusable characters for Fast-Glob.
|
|
26
26
|
*/
|
|
27
27
|
exports.VALID_GLOB_CHARS = /^[\w\-@./*?|!{}\[\]^$()+]+$/; // allows Fast-Glob-safe symbolsexport const REAL_EXTS = new Set<string>([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".d.ts", ".json"]);
|
|
28
|
-
//# sourceMappingURL=config.js.map
|
package/dist/constants/flags.js
CHANGED
package/dist/constants/index.js
CHANGED
|
@@ -22,4 +22,3 @@ exports.TEXT_HEADERS = {
|
|
|
22
22
|
regionEnd: "##endregion",
|
|
23
23
|
};
|
|
24
24
|
exports.MD_FOOTER = ["\n---", "*Generated with [Prodex](https://github.com/emxhive/prodex) — Codebase decoded.*", `<!-- PRODEx v${package_json_1.default.version} | ${new Date().toISOString()} -->`].join("\n");
|
|
25
|
-
//# sourceMappingURL=render-constants.js.map
|
package/dist/core/combine.js
CHANGED
package/dist/core/dependency.js
CHANGED
package/dist/core/helpers.js
CHANGED
package/dist/core/output.js
CHANGED
package/dist/core/renderers.js
CHANGED
package/dist/debug.js
CHANGED
package/dist/index.js
CHANGED
package/dist/lib/logger.js
CHANGED
package/dist/lib/polyfills.js
CHANGED
package/dist/lib/prompt.js
CHANGED
package/dist/lib/questions.js
CHANGED
package/dist/lib/utils.js
CHANGED
package/dist/shared/index.js
CHANGED
package/dist/shared/io.js
CHANGED
package/dist/shared/patterns.js
CHANGED
package/dist/store.js
CHANGED
package/dist/types/cli.types.js
CHANGED
package/dist/types/core.types.js
CHANGED
package/dist/types/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli-input.js","sourceRoot":"","sources":["../../src/cli/cli-input.ts"],"names":[],"mappings":"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","sourcesContent":["import sade from \"sade\";\nimport path from \"path\";\nimport pkg from \"../../package.json\";\nimport fs from \"fs\";\nimport { FLAG_MAP } from \"../constants/flags\";\nimport type { ParsedInput } from \"../types\";\n\n/**\n * Unified CLI parser powered by Sade and FLAG_MAP.\n * Returns { root, flags, warnings, errors }.\n */\nexport function parseCliInput(argv: string[] = process.argv) {\n\tif (argv.includes(\"-v\") || argv.includes(\"--version\")) {\n\t\tconsole.log(`prodex v${pkg.version}`);\n\t\tprocess.exit(0);\n\t}\n\n\tconst program = sade(\"prodex [root]\");\n\tregisterFlags(program);\n\n\tlet parsed: ParsedInput = { rootArg: \"\", root: undefined, flags: {} };\n\n\tprogram.action((root: string | undefined, opts: Record<string, any>) => {\n\t\tconst cwd = process.cwd();\n\t\tparsed = {\n\t\t\trootArg: root,\n\t\t\troot: root ? path.resolve(cwd, root) : cwd,\n\t\t\tflags: { ...opts },\n\t\t};\n\t});\n\n\tprogram.parse(argv);\n\n\tconst warnings: string[] = [];\n\tconst errors: string[] = [];\n\n\tparsed.flags = normalizeFlags(parsed.flags, warnings, errors);\n\tvalidateArgs(parsed, warnings, errors);\n\n\treturn { ...parsed, warnings, errors };\n}\n\nfunction registerFlags(program: ReturnType<typeof sade>) {\n\tfor (const [key, meta] of Object.entries(FLAG_MAP)) {\n\t\tconst short = meta.short ? `-${meta.short}, ` : \"\";\n\t\tconst long = `--${key}`;\n\t\tconst desc = meta.description;\n\t\tconst defaultVal = meta.type === \"boolean\" ? false : undefined;\n\t\tprogram.option(`${short}${long}`, desc, defaultVal);\n\t}\n}\n\n/** Convert flag values to correct types based on FLAG_MAP metadata. */\nfunction normalizeFlags(flags: Record<string, any>, warnings: string[], errors: string[]) {\n\tfor (const [key, meta] of Object.entries(FLAG_MAP)) {\n\t\tconst raw = flags[key];\n\t\tif (raw === undefined) continue;\n\n\t\tswitch (meta.type) {\n\t\t\tcase \"number\": {\n\t\t\t\tconst num = Number(raw);\n\t\t\t\tif (Number.isNaN(num)) errors.push(`Flag --${key} expected a number but got \"${raw}\"`);\n\t\t\t\telse flags[key] = num;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"list\": {\n\t\t\t\tflags[key] = String(raw)\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.map((v) => v.trim())\n\t\t\t\t\t.filter(Boolean);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (meta.type === \"string\") flags[key] = String(raw);\n\t\t\t}\n\t\t}\n\t}\n\treturn flags;\n}\n\n/** Validate path argument and report unrecognized flags. */\nfunction validateArgs(parsed: ParsedInput, warnings: string[], errors: string[]) {\n\tconst { rootArg } = parsed;\n\n\tif (rootArg) {\n\t\tif (!fs.existsSync(parsed.root)) {\n\t\t\terrors.push(`Invalid path argument: \"${rootArg}\" does not exist.`);\n\t\t} else if (!fs.statSync(parsed.root).isDirectory()) {\n\t\t\terrors.push(`Path argument \"${rootArg}\" is not a directory.`);\n\t\t}\n\t}\n\n\tconst unknown = parsed.flags?._ || [];\n\tif (unknown.length) {\n\t\twarnings.push(`Unrecognized arguments detected [${unknown.join(\", \")}]- They were ignored.`);\n\t}\n\n\tif (warnings.length) console.warn(\"Warnings:\", warnings);\n\tif (errors.length) {\n\t\tfor (const err of errors) console.error(err);\n\t\tprocess.exit(1);\n\t}\n}\n"]}
|
package/dist/cli/flags.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CLI_USAGE = exports.FLAG_SHORT_MAP = exports.PRODEX_FLAGS = exports.FlagKey = void 0;
|
|
4
|
-
var FlagKey;
|
|
5
|
-
(function (FlagKey) {
|
|
6
|
-
FlagKey["Txt"] = "txt";
|
|
7
|
-
FlagKey["Ci"] = "ci";
|
|
8
|
-
FlagKey["Debug"] = "debug";
|
|
9
|
-
FlagKey["Name"] = "name";
|
|
10
|
-
FlagKey["Limit"] = "limit";
|
|
11
|
-
FlagKey["Inc"] = "include";
|
|
12
|
-
FlagKey["Exc"] = "exclude";
|
|
13
|
-
FlagKey["Help"] = "help";
|
|
14
|
-
FlagKey["Files"] = "files";
|
|
15
|
-
})(FlagKey || (exports.FlagKey = FlagKey = {}));
|
|
16
|
-
exports.PRODEX_FLAGS = {
|
|
17
|
-
[FlagKey.Files]: { short: "f", type: "list", description: "Comma-separated entry files." },
|
|
18
|
-
[FlagKey.Txt]: { short: "t", type: "boolean", description: "Output as .txt instead of .md." },
|
|
19
|
-
[FlagKey.Ci]: { short: "c", type: "boolean", description: "Headless/no-UI mode." },
|
|
20
|
-
[FlagKey.Debug]: { short: "d", type: "boolean", description: "Enable debug logs." },
|
|
21
|
-
[FlagKey.Name]: { short: "n", type: "string", description: "Custom output filename." },
|
|
22
|
-
[FlagKey.Limit]: { short: "l", type: "number", description: "Override traversal limit." },
|
|
23
|
-
[FlagKey.Inc]: { type: "list", short: "i", description: "Comma-separated include globs." },
|
|
24
|
-
[FlagKey.Exc]: { type: "list", short: "x", description: "Comma-separated exclude globs." },
|
|
25
|
-
[FlagKey.Help]: { short: "h", type: "boolean", description: "Show CLI help and exit." },
|
|
26
|
-
};
|
|
27
|
-
/** Reverse lookup for short aliases. */
|
|
28
|
-
exports.FLAG_SHORT_MAP = Object.entries(exports.PRODEX_FLAGS).reduce((acc, [key, meta]) => {
|
|
29
|
-
if (meta.short)
|
|
30
|
-
acc[meta.short] = key;
|
|
31
|
-
return acc;
|
|
32
|
-
}, {});
|
|
33
|
-
exports.CLI_USAGE = `
|
|
34
|
-
Usage: prodex [-fcdv]
|
|
35
|
-
[--files=<globs>|-f=<globs>]
|
|
36
|
-
[--include=<globs>|-i=<globs>]
|
|
37
|
-
[--exclude=<globs>|-x=<globs>]
|
|
38
|
-
[--txt|-t] [--ci|-c] [--debug|-d] [--version|-v]
|
|
39
|
-
[--name=<string>|-n=<string>]
|
|
40
|
-
[--limit=<int>|-l=<int>]
|
|
41
|
-
[--help|-h]
|
|
42
|
-
`;
|
|
43
|
-
//# sourceMappingURL=flags.js.map
|
package/dist/cli/flags.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/cli/flags.ts"],"names":[],"mappings":";;;AAMA,IAAY,OAUX;AAVD,WAAY,OAAO;IAClB,sBAAW,CAAA;IACX,oBAAS,CAAA;IACT,0BAAe,CAAA;IACf,wBAAa,CAAA;IACb,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,0BAAe,CAAA;IACf,wBAAa,CAAA;IACb,0BAAe,CAAA;AAChB,CAAC,EAVW,OAAO,uBAAP,OAAO,QAUlB;AAOY,QAAA,YAAY,GAA0B;IAClD,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAC1F,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC7F,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAClF,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACnF,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;IACtF,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACzF,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC1F,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC1F,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE;CACvF,CAAC;AAEF,wCAAwC;AAC3B,QAAA,cAAc,GAA4B,MAAM,CAAC,OAAO,CAAC,oBAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;IAC/G,IAAI,IAAI,CAAC,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAc,CAAC;IACjD,OAAO,GAAG,CAAC;AACZ,CAAC,EAAE,EAA6B,CAAC,CAAC;AAGrB,QAAA,SAAS,GAAG;;;;;;;;;CASxB,CAAC","sourcesContent":["/**\n * 🧩 Prodex Flag Definitions (v3)\n * Metadata used by the CLI parser for validation, casting, and help output.\n */\nexport type FlagType = \"boolean\" | \"string\" | \"number\" | \"list\";\n\nexport enum FlagKey {\n\tTxt = \"txt\",\n\tCi = \"ci\",\n\tDebug = \"debug\",\n\tName = \"name\",\n\tLimit = \"limit\",\n\tInc = \"include\",\n\tExc = \"exclude\",\n\tHelp = \"help\",\n\tFiles = \"files\",\n}\n\ntype Spec = {\n\tshort?: string;\n\ttype: FlagType;\n\tdescription: string;\n};\nexport const PRODEX_FLAGS: Record<FlagKey, Spec> = {\n\t[FlagKey.Files]: { short: \"f\", type: \"list\", description: \"Comma-separated entry files.\" },\n\t[FlagKey.Txt]: { short: \"t\", type: \"boolean\", description: \"Output as .txt instead of .md.\" },\n\t[FlagKey.Ci]: { short: \"c\", type: \"boolean\", description: \"Headless/no-UI mode.\" },\n\t[FlagKey.Debug]: { short: \"d\", type: \"boolean\", description: \"Enable debug logs.\" },\n\t[FlagKey.Name]: { short: \"n\", type: \"string\", description: \"Custom output filename.\" },\n\t[FlagKey.Limit]: { short: \"l\", type: \"number\", description: \"Override traversal limit.\" },\n\t[FlagKey.Inc]: { type: \"list\", short: \"i\", description: \"Comma-separated include globs.\" },\n\t[FlagKey.Exc]: { type: \"list\", short: \"x\", description: \"Comma-separated exclude globs.\" },\n\t[FlagKey.Help]: { short: \"h\", type: \"boolean\", description: \"Show CLI help and exit.\" },\n};\n\n/** Reverse lookup for short aliases. */\nexport const FLAG_SHORT_MAP: Record<string, FlagKey> = Object.entries(PRODEX_FLAGS).reduce((acc, [key, meta]) => {\n\tif (meta.short) acc[meta.short] = key as FlagKey;\n\treturn acc;\n}, {} as Record<string, FlagKey>);\n\n\nexport const CLI_USAGE = `\nUsage: prodex [-fcdv]\n [--files=<globs>|-f=<globs>]\n [--include=<globs>|-i=<globs>]\n [--exclude=<globs>|-x=<globs>]\n [--txt|-t] [--ci|-c] [--debug|-d] [--version|-v]\n [--name=<string>|-n=<string>]\n [--limit=<int>|-l=<int>]\n [--help|-h]\n`;\n"]}
|
package/dist/cli/init.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";;;;;AAIA,gCAaC;AAjBD,4CAAoB;AACpB,gDAAwB;AACxB,gEAAoE;AAE7D,KAAK,UAAU,UAAU;IAC/B,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAErD,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO;IACR,CAAC;IAED,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,sCAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC5E,CAAC","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport { DEFAULT_PRODEX_CONFIG } from \"../constants/default-config\";\n\nexport async function initProdex() {\n\tconsole.log(\"🪄 Prodex Init — Configuration Wizard (v3\");\n\n\tconst dest = path.join(process.cwd(), \"prodex.json\");\n\n\tif (fs.existsSync(dest)) {\n\t\tconsole.error(\"prodex.json already exists. Delete or modify it manually.\\n\");\n\t\treturn;\n\t}\n\n\tfs.writeFileSync(dest, JSON.stringify(DEFAULT_PRODEX_CONFIG, null, 2) + \"\\n\", \"utf8\");\n\tconsole.log(`✅ Created ${dest}`);\n\tconsole.log(\"💡 Globs supported everywhere (include, exclude, priority).\");\n}\n"]}
|
package/dist/cli/picker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"picker.js","sourceRoot":"","sources":["../../src/cli/picker.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport inquirer from \"inquirer\";\nimport { walk, orderByPriority } from \"../core/helpers\";\nimport { rel } from \"../shared/io\";\nimport { globScan } from \"../core/helpers\";\nimport { unique } from \"../shared/collections\";\nimport { logger } from \"../lib/logger\";\nimport { prompt } from \"../lib/prompt\";\nimport type { QuestionSet, ProdexConfig } from \"../types\";\nimport { PICK_ENTRIES_QUESTION } from \"../lib/questions\";\n\n/**\n * Interactive entry picker for Prodex.\n * Handles depth-based scanning, caching, and priority ordering.\n */\nexport async function pickEntries(cfg: ProdexConfig) {\n\tconst {\n\t\troot,\n\t\tentry: {\n\t\t\tfiles,\n\t\t\tui: { roots = [], priority = [], scanDepth },\n\t\t},\n\t} = cfg;\n\n\tlet depth = scanDepth;\n\tconst entryPatterns = files || [];\n\tconst priorities = [...entryPatterns, ...priority];\n\n\t// 1️⃣ Resolve pre-defined entry patterns\n\tconst resolvedEntries = (await globScan(entryPatterns, { cwd: root })).files;\n\tlet selected = [...resolvedEntries];\n\n\t// cache: depth → files[]\n\tconst scanCache = new Map<number, string[]>();\n\n\tfor (;;) {\n\t\tconst files = await getFilesAtDepth(depth, cfg, scanCache);\n\n\t\t// Merge resolved entries with current scan results\n\t\tconst combined = unique([...resolvedEntries, ...files]);\n\t\tconst sorted = orderByPriority(combined, priorities);\n\n\t\t// Build UI selection list\n\t\tconst choices = sorted.map((f) => ({\n\t\t\tname: rel(f, root),\n\t\t\tvalue: f,\n\t\t\tchecked: selected.includes(f),\n\t\t}));\n\n\t\tif (depth < scanDepth + 5) {\n\t\t\tchoices.push(new inquirer.Separator());\n\t\t\tchoices.push({ name: \"🔽 Load more (go deeper)\", value: \"__loadmore\" });\n\t\t}\n\n\t\t// 🧠 Use unified prompt wrapper\n\t\tconst answers = await prompt(PICK_ENTRIES_QUESTION(choices, depth), { picks: [] });\n\t\tif (!answers) return unique(selected);\n\n\t\tconst { picks } = answers;\n\n\t\tif (picks.includes(\"__loadmore\")) {\n\t\t\tdepth++;\n\t\t\tselected = picks.filter((p) => p !== \"__loadmore\");\n\t\t\tcontinue;\n\t\t}\n\n\t\tselected = picks.filter((p) => p !== \"__loadmore\");\n\t\tbreak;\n\t}\n\n\treturn unique(selected);\n}\n\n/**\n * Depth-based directory scanner with caching.\n */\nasync function getFilesAtDepth(depth: number, cfg: ProdexConfig, scanCache: Map<number, string[]>) {\n\tconst baseDirs = cfg.entry.ui.roots || [];\n\tif (scanCache.has(depth)) {\n\t\tlogger.debug(`[picker] cache hit → depth=${depth}`);\n\t\treturn scanCache.get(depth)!;\n\t}\n\n\tlogger.debug(`[picker] scanning → depth=${depth}`);\n\n\tconst files: string[] = [];\n\tconst effectiveCfg = { ...cfg, scanDepth: depth };\n\n\tfor (const base of baseDirs) {\n\t\tconst full = path.join(cfg.root, base);\n\t\tif (!fs.existsSync(full)) continue;\n\t\tfor (const f of walk(full, effectiveCfg, 0)) files.push(f.norm());\n\t}\n\n\tscanCache.set(depth, files);\n\tlogger.debug(`[picker] depth=${depth} found=${files.length}`);\n\treturn files;\n}\n"]}
|
package/dist/cli/summary.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/cli/summary.ts"],"names":[],"mappings":";;AAMA,gCAMC;AAED,oCAQC;AAED,oCAIC;AA5BD,0CAAuC;AACvC,qCAAmC;AACnC,oCAA+C;AAE/C,IAAI,MAAM,CAAC;AACX,IAAI,KAAK,CAAC;AACV,SAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;IACrC,eAAM,CAAC,KAAK,CAAC;8BACgB,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI;8BAC5B,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI;CACzD,CAAC,CAAC;IACF,eAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,YAAY;IAC3B,MAAM,GAAG,IAAA,iBAAS,GAAE,CAAC;IACrB,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAEnB,eAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;IACnG,gCAAgC;IAChC,eAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrD,eAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,YAAY,CAAC,OAAiB;IAC7C,IAAI,MAAM,GAAG,kBAAkB,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,MAAM,IAAI,QAAQ,GAAG,IAAA,QAAG,EAAC,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,EAAE,MAAM;QAAE,eAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC","sourcesContent":["import { logger } from \"../lib/logger\";\nimport { rel } from \"../shared/io\";\nimport { getConfig, getFlags } from \"../store\";\n\nlet CONFIG;\nlet FLAGS;\nexport function endSummary(out, result) {\n\tlogger.debug(`🧩 Summary:\n • Unique imports expected: ${result?.stats?.expected.size}\n • Unique imports resolved: ${result?.stats?.resolved.size}\n`);\n\tlogger.log(`✅ ${out.norm()}`);\n}\n\nexport function introSummary() {\n\tCONFIG = getConfig();\n\tFLAGS = getFlags();\n\n\tlogger.log(`------- PRODEx RUN @ ${new Date().toLocaleTimeString()} — Codebase decoded -------\\n`);\n\t// Log parse results for testing\n\tlogger.debug(\"🧩 Parsed CLI input:\", _2j({ FLAGS }));\n\tlogger.debug(\"Final merged config:\", _2j(CONFIG));\n}\n\nexport function entrySummary(entries: string[]) {\n\tlet result = \"📋 You selected:\";\n\tfor (const e of entries) result += \"\\n -\" + rel(e);\n\tif (entries?.length) logger.log(result);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-keys.js","sourceRoot":"","sources":["../../src/constants/cache-keys.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;CACrB,CAAC","sourcesContent":["export const CACHE_KEYS = {\r\n\tALIASES: \"aliases\",\r\n\tJS_IMPORTS: \"js:imports\",\r\n\tJS_STATS: \"js:stats\",\r\n\tPHP_PSR4: \"php:psr4\",\r\n\tPHP_BINDINGS: \"php:bindings\",\r\n\tPHP_FILECACHE: \"php:fileCache\",\r\n} as const;\r\n\r\nexport type CacheNamespace = (typeof CACHE_KEYS)[keyof typeof CACHE_KEYS];\r\n"]}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.loadProdexConfig = loadProdexConfig;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const default_config_1 = require("./default-config");
|
|
10
|
-
const utils_1 = require("../lib/utils");
|
|
11
|
-
/**
|
|
12
|
-
* 🧩 Load and merge Prodex configuration (v3)
|
|
13
|
-
*
|
|
14
|
-
* 1️⃣ Reads `prodex.json` if present.
|
|
15
|
-
* 2️⃣ Merges with `DEFAULT_PRODEX_CONFIG`.
|
|
16
|
-
* 3️⃣ Normalizes all path-like fields.
|
|
17
|
-
* 4️⃣ Applies CLI flag overrides.
|
|
18
|
-
*/
|
|
19
|
-
async function loadProdexConfig(flags = {}, cwd) {
|
|
20
|
-
const configPath = path_1.default.join(cwd, "prodex.json");
|
|
21
|
-
let userConfig = {};
|
|
22
|
-
// 1️⃣ Load config if present
|
|
23
|
-
try {
|
|
24
|
-
const content = fs_1.default.readFileSync(configPath, "utf8");
|
|
25
|
-
userConfig = JSON.parse(content);
|
|
26
|
-
}
|
|
27
|
-
catch (err) {
|
|
28
|
-
console.info("No prodex.json found — using defaults.");
|
|
29
|
-
}
|
|
30
|
-
// 2️⃣ Merge defaults → user config
|
|
31
|
-
const { output, entry, resolve } = default_config_1.DEFAULT_PRODEX_CONFIG;
|
|
32
|
-
const cfg = {
|
|
33
|
-
...default_config_1.DEFAULT_PRODEX_CONFIG,
|
|
34
|
-
...userConfig,
|
|
35
|
-
output: { ...output, ...userConfig.output },
|
|
36
|
-
entry: {
|
|
37
|
-
...entry,
|
|
38
|
-
...userConfig.entry,
|
|
39
|
-
ui: { ...entry.ui, ...userConfig.entry?.ui },
|
|
40
|
-
},
|
|
41
|
-
resolve: { ...resolve, ...userConfig.resolve },
|
|
42
|
-
root: cwd,
|
|
43
|
-
name: flags?.name,
|
|
44
|
-
};
|
|
45
|
-
// 4️⃣ Apply CLI flag overrides (if any)
|
|
46
|
-
applyFlagOverrides(cfg, flags);
|
|
47
|
-
tidyArrayFields(cfg);
|
|
48
|
-
return cfg;
|
|
49
|
-
}
|
|
50
|
-
/** Merge CLI flags into config where relevant. */
|
|
51
|
-
/** Merge CLI flags into config where relevant. */
|
|
52
|
-
function applyFlagOverrides(cfg, flags) {
|
|
53
|
-
if (!flags)
|
|
54
|
-
return;
|
|
55
|
-
const outputOverrides = {
|
|
56
|
-
txt: (cfg, v) => (cfg.output.format = v ? "txt" : "md"),
|
|
57
|
-
};
|
|
58
|
-
const resolveOverrides = {
|
|
59
|
-
limit: (cfg, v) => (cfg.resolve.limit = v),
|
|
60
|
-
include: (cfg, v) => (cfg.resolve.include = v),
|
|
61
|
-
exclude: (cfg, v) => (cfg.resolve.exclude = v),
|
|
62
|
-
};
|
|
63
|
-
const entryOverrides = {
|
|
64
|
-
files: (cfg, v) => (cfg.entry.files = v),
|
|
65
|
-
};
|
|
66
|
-
const envOverrides = {
|
|
67
|
-
debug: (_, v) => (process.env.PRODEX_DEBUG = v ? "1" : "0"),
|
|
68
|
-
verbose: (_, v) => (process.env.PRODEX_VERBOSE = v ? "1" : "0"),
|
|
69
|
-
};
|
|
70
|
-
const overrideMap = {
|
|
71
|
-
...outputOverrides,
|
|
72
|
-
...resolveOverrides,
|
|
73
|
-
...entryOverrides,
|
|
74
|
-
...envOverrides,
|
|
75
|
-
};
|
|
76
|
-
// Apply all flag overrides dynamically
|
|
77
|
-
for (const [flag, value] of Object.entries(flags)) {
|
|
78
|
-
if (value == undefined)
|
|
79
|
-
continue;
|
|
80
|
-
const apply = overrideMap[flag];
|
|
81
|
-
if (apply)
|
|
82
|
-
apply(cfg, value);
|
|
83
|
-
}
|
|
84
|
-
// Conditional override rule:
|
|
85
|
-
// If files exist and include was null/undefined → clear include array
|
|
86
|
-
const hasFiles = Array.isArray(flags.files) ? flags.files.length > 0 : !!flags.files;
|
|
87
|
-
if (hasFiles && !flags.include) {
|
|
88
|
-
cfg.resolve.include = [];
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function tidyArrayFields(cfg) {
|
|
92
|
-
cfg.entry.files = (0, utils_1.normalizePatterns)(cfg.entry.files);
|
|
93
|
-
["include", "exclude"].forEach((k) => (cfg.resolve[k] = cfg.resolve[k]));
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/constants/config-loader.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport { DEFAULT_PRODEX_CONFIG } from \"./default-config\";\nimport type { ProdexConfig, ProdexFlags } from \"../types\";\nimport { normalizePatterns } from \"../lib/utils\";\n\n/**\n * 🧩 Load and merge Prodex configuration (v3)\n *\n * 1️⃣ Reads `prodex.json` if present.\n * 2️⃣ Merges with `DEFAULT_PRODEX_CONFIG`.\n * 3️⃣ Normalizes all path-like fields.\n * 4️⃣ Applies CLI flag overrides.\n */\nexport async function loadProdexConfig(flags: Partial<ProdexFlags> = {}, cwd: string): Promise<ProdexConfig> {\n\tconst configPath = path.join(cwd, \"prodex.json\");\n\tlet userConfig: Partial<ProdexConfig> = {};\n\n\t// 1️⃣ Load config if present\n\ttry {\n\t\tconst content = fs.readFileSync(configPath, \"utf8\");\n\t\tuserConfig = JSON.parse(content);\n\t} catch (err: any) {\n\t\tconsole.info(\"No prodex.json found — using defaults.\");\n\t}\n\n\t// 2️⃣ Merge defaults → user config\n\tconst { output, entry, resolve } = DEFAULT_PRODEX_CONFIG;\n\n\tconst cfg: ProdexConfig = {\n\t\t...DEFAULT_PRODEX_CONFIG,\n\t\t...userConfig,\n\t\toutput: { ...output, ...userConfig.output },\n\t\tentry: {\n\t\t\t...entry,\n\t\t\t...userConfig.entry,\n\t\t\tui: { ...entry.ui, ...userConfig.entry?.ui },\n\t\t},\n\t\tresolve: { ...resolve, ...userConfig.resolve },\n\t\troot: cwd,\n\t\tname: flags?.name,\n\t};\n\n\t// 4️⃣ Apply CLI flag overrides (if any)\n\tapplyFlagOverrides(cfg, flags);\n\ttidyArrayFields(cfg);\n\treturn cfg;\n}\n\n/** Merge CLI flags into config where relevant. */\n/** Merge CLI flags into config where relevant. */\nfunction applyFlagOverrides(cfg: ProdexConfig, flags: Partial<ProdexFlags>): void {\n\tif (!flags) return;\n\n\tconst outputOverrides = {\n\t\ttxt: (cfg: ProdexConfig, v) => (cfg.output.format = v ? \"txt\" : \"md\"),\n\t};\n\n\tconst resolveOverrides = {\n\t\tlimit: (cfg: ProdexConfig, v: any) => (cfg.resolve.limit = v),\n\t\tinclude: (cfg: ProdexConfig, v: any) => (cfg.resolve.include = v),\n\t\texclude: (cfg: ProdexConfig, v: any) => (cfg.resolve.exclude = v),\n\t};\n\n\tconst entryOverrides = {\n\t\tfiles: (cfg: ProdexConfig, v: any) => (cfg.entry.files = v),\n\t};\n\n\tconst envOverrides = {\n\t\tdebug: (_, v) => (process.env.PRODEX_DEBUG = v ? \"1\" : \"0\"),\n\t\tverbose: (_, v) => (process.env.PRODEX_VERBOSE = v ? \"1\" : \"0\"),\n\t};\n\n\tconst overrideMap = {\n\t\t...outputOverrides,\n\t\t...resolveOverrides,\n\t\t...entryOverrides,\n\t\t...envOverrides,\n\t};\n\n\t// Apply all flag overrides dynamically\n\tfor (const [flag, value] of Object.entries(flags)) {\n\t\tif (value == undefined) continue;\n\t\tconst apply = overrideMap[flag];\n\t\tif (apply) apply(cfg, value);\n\t}\n\n\t// Conditional override rule:\n\t// If files exist and include was null/undefined → clear include array\n\tconst hasFiles = Array.isArray(flags.files) ? flags.files.length > 0 : !!flags.files;\n\n\tif (hasFiles && !flags.include) {\n\t\tcfg.resolve.include = [];\n\t}\n}\n\nfunction tidyArrayFields(cfg: ProdexConfig) {\n\tcfg.entry.files = normalizePatterns(cfg.entry.files);\n\t[\"include\", \"exclude\"].forEach((k) => (cfg.resolve[k] = cfg.resolve[k]));\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/constants/config.ts"],"names":[],"mappings":";;;AAAA,6DAA+D;AAC/D,gEAAkE;AAErD,QAAA,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5D,QAAA,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACnD,QAAA,SAAS,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9F,QAAA,OAAO,GAAG,OAAO,CAAC;AAElB,QAAA,SAAS,GAAG;IACxB,MAAM,EAAE,gCAAiB;IACzB,KAAK,EAAE,8BAAgB;IACvB,MAAM,EAAE,8BAAgB;IACxB,OAAO,EAAE,8BAAgB;IACzB,KAAK,EAAE,8BAAgB;CACvB,CAAC;AAEW,QAAA,aAAa,GAAG,CAAC,oBAAoB,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;AAErE,QAAA,MAAM,GAAG,OAAO,CAAC;AAE9B;;;;;;;GAOG;AACU,QAAA,gBAAgB,GAAG,6BAA6B,CAAC,CAAC,2IAA2I","sourcesContent":["import { resolveJsImports } from \"../resolvers/js/js-resolver\";\nimport { resolvePhpImports } from \"../resolvers/php/php-resolver\";\n\nexport const CODE_EXTS = [\".js\", \".mjs\", \".ts\", \".tsx\", \".d.ts\", \".php\"];\nexport const BASE_EXTS = [\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\"];\nexport const REAL_EXTS = new Set<string>([\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\", \".cjs\", \".d.ts\", \".json\"]);\nexport const DTS_EXT = \".d.ts\";\n\nexport const RESOLVERS = {\n\t\".php\": resolvePhpImports,\n\t\".ts\": resolveJsImports,\n\t\".tsx\": resolveJsImports,\n\t\".d.ts\": resolveJsImports,\n\t\".js\": resolveJsImports,\n};\n\nexport const GLOBAL_IGNORE = [\"**/node_modules/**\", \"**/vendor/**\", \"**/dist/**\"];\n\nexport const SUFFIX = \"trace\";\n\n/**\n * Normalize and sanitize pattern fields.\n * - Always returns an array.\n * - Accepts string or string[].\n * - Splits comma-separated strings.\n * - Trims and removes empty elements.\n * - Filters out invalid or unusable characters for Fast-Glob.\n */\nexport const VALID_GLOB_CHARS = /^[\\w\\-@./*?|!{}\\[\\]^$()+]+$/; // allows Fast-Glob-safe symbolsexport const REAL_EXTS = new Set<string>([\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\", \".cjs\", \".d.ts\", \".json\"]);\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../src/constants/default-config.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,qBAAqB,GAAqB;IAEtD,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE;QACP,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,IAAI;KACZ;IACD,KAAK,EAAE;QACN,KAAK,EAAE,EAAE;QACT,EAAE,EAAE;YACH,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC;YAC3C,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC;SAC7F;KACD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAC3C,OAAO,EAAE;YACR,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,mBAAmB;SAC5B;QACD,OAAO,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,qBAAqB,CAAC;QACjE,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,GAAG;KACV;CACD,CAAC","sourcesContent":["import type { ProdexConfig, ProdexConfigFile } from \"../types/config.types\";\n\n/**\n * Default configuration for Prodex.\n * Conforms strictly to ProdexConfig for full type safety.\n */\nexport const DEFAULT_PRODEX_CONFIG: ProdexConfigFile = {\n\n\tversion: 3.1,\n\toutput: {\n\t\tdir: \"prodex\",\n\t\tversioned: true,\n\t\tprefix: \"combined\",\n\t\tformat: \"md\",\n\t},\n\tentry: {\n\t\tfiles: [],\n\t\tui: {\n\t\t\troots: [\"app\", \"routes\", \"resources/js/**\"],\n\t\t\tscanDepth: 2,\n\t\t\tpriority: [\"**/routes/web.php\", \"**/routes/api.php\", \"**/*index.*\", \"**/*main.*\", \"**/app.*\"],\n\t\t},\n\t},\n\tresolve: {\n\t\tinclude: [\"**/*.d.ts\", \"**/*.interface.ts\"],\n\t\taliases: {\n\t\t\t\"@hooks\": \"resources/js/hooks\",\n\t\t\t\"@data\": \"resources/js/data\",\n\t\t},\n\t\texclude: [\"node_modules/**\", \"@shadcn/**\", \"**/components/ui/**\"],\n\t\tdepth: 10,\n\t\tlimit: 200,\n\t},\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/constants/flags.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ProdexConfig } from \"../types\";\r\n\r\nexport type FlagType = \"boolean\" | \"string\" | \"number\" | \"list\";\r\nexport type FlagKey = keyof typeof FLAG_MAP;\r\n\r\nexport const FLAG_MAP = {\r\n\ttxt: {\r\n\t\tshort: \"t\",\r\n\t\ttype: \"boolean\",\r\n\t\tdescription: \"Output as .txt instead of .md.\",\r\n\t\tapply: (cfg: ProdexConfig, v: boolean) => (cfg.output.format = v ? \"txt\" : \"md\"),\r\n\t},\r\n\tname: {\r\n\t\tshort: \"n\",\r\n\t\ttype: \"string\",\r\n\t\tdescription: \"Custom output filename (without extension).\",\r\n\t\tapply: (cfg: ProdexConfig, v: string) => (cfg.name = v),\r\n\t},\r\n\tlimit: {\r\n\t\tshort: \"l\",\r\n\t\ttype: \"number\",\r\n\t\tdescription: \"Override traversal limit.\",\r\n\t\tapply: (cfg: ProdexConfig, v: number) => (cfg.resolve.limit = v),\r\n\t},\r\n\tinclude: {\r\n\t\tshort: \"i\",\r\n\t\ttype: \"list\",\r\n\t\tdescription: \"Comma-separated include globs.\",\r\n\t\tapply: (cfg: ProdexConfig, v: string[]) => (cfg.resolve.include = v),\r\n\t},\r\n\texclude: {\r\n\t\tshort: \"x\",\r\n\t\ttype: \"list\",\r\n\t\tdescription: \"Comma-separated exclude globs.\",\r\n\t\tapply: (cfg: ProdexConfig, v: string[]) => (cfg.resolve.exclude = v),\r\n\t},\r\n\tfiles: {\r\n\t\tshort: \"f\",\r\n\t\ttype: \"list\",\r\n\t\tdescription: \"Entry files (comma-separated).\",\r\n\t\tapply: (cfg: ProdexConfig, v: string[]) => (cfg.entry.files = v),\r\n\t},\r\n\tci: {\r\n\t\tshort: \"c\",\r\n\t\ttype: \"boolean\",\r\n\t\tdescription: \"Headless (non-interactive) mode.\",\r\n\t\tapply: () => {},\r\n\t},\r\n\tdebug: {\r\n\t\tshort: \"d\",\r\n\t\ttype: \"boolean\",\r\n\t\tdescription: \"Enable debug logs.\",\r\n\t\tapply: () => {},\r\n\t},\r\n\thelp: {\r\n\t\tshort: \"h\",\r\n\t\ttype: \"boolean\",\r\n\t\tdescription: \"Show CLI help and exit.\",\r\n\t\tapply: () => {},\r\n\t},\r\n} as const;\r\n\r\n// Reverse lookup for short aliases\r\nexport const FLAG_SHORT_MAP = Object.entries(FLAG_MAP).reduce((acc, [k, v]) => {\r\n\t//@ts-ignore\r\n\tif (v.short) acc[v.short] = k;\r\n\treturn acc;\r\n}, {} as Record<string, FlagKey>);\r\n\r\nexport const CLI_USAGE = `\r\nUsage: prodex [options]\r\n\r\n${Object.entries(FLAG_MAP)\r\n\t.map(([k, v]) => ` --${k}${v.short ? ` | -${v.short}` : \"\"}\\t${v.description}`)\r\n\t.join(\"\\n\")}\r\n`;\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mDAAiC;AACjC,qDAAmC;AACnC,2CAAyB","sourcesContent":["export * from \"./cache-keys\";\r\nexport * from \"./default-config\";\r\nexport * from \"./render-constants\";\r\nexport * from \"./config\";\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"render-constants.js","sourceRoot":"","sources":["../../src/constants/render-constants.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAqC;AAExB,QAAA,QAAQ,GAAG;IACvB,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,IAAI;CACb,CAAC;AAEW,QAAA,YAAY,GAAG;IAC3B,GAAG,EAAE,4BAA4B;IACjC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO;IACrC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE;IACnC,SAAS,EAAE,aAAa;CACxB,CAAC;AAEW,QAAA,SAAS,GAAG,CAAC,OAAO,EAAE,kFAAkF,EAAE,gBAAgB,sBAAG,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC","sourcesContent":["import pkg from \"../../package.json\";\n\nexport const LANG_MAP = {\n\t\"\": \"js\",\n\t\".mjs\": \"js\",\n\t\".jsx\": \"jsx\",\n\t\".ts\": \"ts\",\n\t\".tsx\": \"tsx\",\n\t\".php\": \"php\",\n\t\".json\": \"json\",\n\t\".d.ts\": \"ts\",\n};\n\nexport const TEXT_HEADERS = {\n\ttoc: \"##==== Combined Scope ====\",\n\tpath: (p) => `##==== path: ${p} ====`,\n\tregionStart: (p) => `##region ${p}`,\n\tregionEnd: \"##endregion\",\n};\n\nexport const MD_FOOTER = [\"\\n---\", \"*Generated with [Prodex](https://github.com/emxhive/prodex) — Codebase decoded.*\", `<!-- PRODEx v${pkg.version} | ${new Date().toISOString()} -->`].join(\"\\n\");\n"]}
|
package/dist/core/cache.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CacheManager = void 0;
|
|
4
|
-
const logger_1 = require("../lib/logger");
|
|
5
|
-
/**
|
|
6
|
-
* 🧩 CacheManager
|
|
7
|
-
* Unified in-memory registry for all runtime maps.
|
|
8
|
-
*
|
|
9
|
-
* - Namespaced storage (e.g., "aliases", "stats", "resolver")
|
|
10
|
-
* - Purely in-memory (no file I/O)
|
|
11
|
-
* - Static API for symmetry with ConfigManager
|
|
12
|
-
*/
|
|
13
|
-
class CacheManager {
|
|
14
|
-
static registry = new Map();
|
|
15
|
-
/** Ensure namespace map exists and return it */
|
|
16
|
-
static ns(ns) {
|
|
17
|
-
if (!this.registry.has(ns))
|
|
18
|
-
this.registry.set(ns, new Map());
|
|
19
|
-
return this.registry.get(ns);
|
|
20
|
-
}
|
|
21
|
-
/** Set or update a cached entry */
|
|
22
|
-
static set(ns, key, val) {
|
|
23
|
-
this.ns(ns).set(key, val);
|
|
24
|
-
logger_1.logger.debug(`🧩 [cache:${ns}] set ${key} → ${String(val)}`);
|
|
25
|
-
}
|
|
26
|
-
/** Retrieve a cached entry */
|
|
27
|
-
static get(ns, key) {
|
|
28
|
-
return this.ns(ns).get(key);
|
|
29
|
-
}
|
|
30
|
-
/** Remove all entries from one namespace or from all */
|
|
31
|
-
static clear(ns) {
|
|
32
|
-
if (ns) {
|
|
33
|
-
this.ns(ns).clear();
|
|
34
|
-
logger_1.logger.debug(`🧩 [cache:${ns}] cleared`);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.registry.forEach((m) => m.clear());
|
|
38
|
-
logger_1.logger.debug("🧩 [cache] cleared all namespaces");
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/** Export a namespace as a plain object (for persistence or inspection) */
|
|
42
|
-
static dump(ns) {
|
|
43
|
-
return Object.fromEntries(this.ns(ns).entries());
|
|
44
|
-
}
|
|
45
|
-
/** Return count of entries per namespace */
|
|
46
|
-
static stats() {
|
|
47
|
-
const summary = {};
|
|
48
|
-
for (const [name, map] of this.registry)
|
|
49
|
-
summary[name] = map.size;
|
|
50
|
-
return summary;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.CacheManager = CacheManager;
|
|
54
|
-
//# sourceMappingURL=cache.js.map
|
package/dist/core/cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AAEvC;;;;;;;GAOG;AACH,MAAa,YAAY;IAChB,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE9D,gDAAgD;IACxC,MAAM,CAAC,EAAE,CAAC,EAAU;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;IAC/B,CAAC;IAED,mCAAmC;IACnC,MAAM,CAAC,GAAG,CAAU,EAAU,EAAE,GAAW,EAAE,GAAM;QAClD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,eAAM,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,GAAG,CAAU,EAAU,EAAE,GAAW;QAC1C,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,KAAK,CAAC,EAAW;QACvB,IAAI,EAAE,EAAE,CAAC;YACR,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC,eAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,IAAI,CAAC,EAAU;QACrB,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,KAAK;QACX,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;QAClE,OAAO,OAAO,CAAC;IAChB,CAAC;;AAzCF,oCA0CC","sourcesContent":["import { logger } from \"../lib/logger\";\r\n\r\n/**\r\n * 🧩 CacheManager\r\n * Unified in-memory registry for all runtime maps.\r\n *\r\n * - Namespaced storage (e.g., \"aliases\", \"stats\", \"resolver\")\r\n * - Purely in-memory (no file I/O)\r\n * - Static API for symmetry with ConfigManager\r\n */\r\nexport class CacheManager {\r\n\tprivate static registry = new Map<string, Map<string, any>>();\r\n\r\n\t/** Ensure namespace map exists and return it */\r\n\tprivate static ns(ns: string): Map<string, any> {\r\n\t\tif (!this.registry.has(ns)) this.registry.set(ns, new Map());\r\n\t\treturn this.registry.get(ns)!;\r\n\t}\r\n\r\n\t/** Set or update a cached entry */\r\n\tstatic set<T = any>(ns: string, key: string, val: T): void {\r\n\t\tthis.ns(ns).set(key, val);\r\n\t\tlogger.debug(`🧩 [cache:${ns}] set ${key} → ${String(val)}`);\r\n\t}\r\n\r\n\t/** Retrieve a cached entry */\r\n\tstatic get<T = any>(ns: string, key: string): T | undefined {\r\n\t\treturn this.ns(ns).get(key);\r\n\t}\r\n\r\n\t/** Remove all entries from one namespace or from all */\r\n\tstatic clear(ns?: string): void {\r\n\t\tif (ns) {\r\n\t\t\tthis.ns(ns).clear();\r\n\t\t\tlogger.debug(`🧩 [cache:${ns}] cleared`);\r\n\t\t} else {\r\n\t\t\tthis.registry.forEach((m) => m.clear());\r\n\t\t\tlogger.debug(\"🧩 [cache] cleared all namespaces\");\r\n\t\t}\r\n\t}\r\n\r\n\t/** Export a namespace as a plain object (for persistence or inspection) */\r\n\tstatic dump(ns: string): Record<string, any> {\r\n\t\treturn Object.fromEntries(this.ns(ns).entries());\r\n\t}\r\n\r\n\t/** Return count of entries per namespace */\r\n\tstatic stats(): Record<string, number> {\r\n\t\tconst summary: Record<string, number> = {};\r\n\t\tfor (const [name, map] of this.registry) summary[name] = map.size;\r\n\t\treturn summary;\r\n\t}\r\n}\r\n"]}
|
package/dist/core/combine.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combine.js","sourceRoot":"","sources":["../../src/core/combine.ts"],"names":[],"mappings":";;AAYA,gCAqBC;AAjCD,0CAA4C;AAC5C,4CAAwE;AACxE,wDAAqD;AACrD,4CAAgD;AAChD,8CAAkD;AAClD,0CAAuC;AAEvC,6CAA0D;AAC1D,uCAAqC;AACrC,uCAAwC;AACxC,qCAAyC;AAElC,KAAK,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAiB;IAC5D,IAAA,sBAAY,GAAE,CAAC;IAEf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,IAAI,OAAO,GAAG,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAExD,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;IAEtB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,eAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,GAAG,MAAM,IAAA,wBAAW,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE7D,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAa,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,eAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAa,EAAC,EAAE,IAAI,EAAE,OAAO,IAAI,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvG,cAAc,EAAE,CAAC;IACjB,IAAA,oBAAU,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAe,EAAE,GAAiB;IAC/D,MAAM,EACL,IAAI,EACJ,KAAK,EAAE,EAAE,KAAK,EAAE,EAChB,OAAO,EAAE,EAAE,OAAO,EAAE,GACpB,GAAG,GAAG,CAAC;IAER,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACpB,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,MAAM,IAAA,kBAAQ,EAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,CAAC;SAAM,CAAC;QACP,OAAO,MAAM,IAAA,oBAAW,EAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACtB,MAAM,OAAO,GAAG,oBAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,sBAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;AACF,CAAC","sourcesContent":["import { pickEntries } from \"../cli/picker\";\nimport { endSummary, entrySummary, introSummary } from \"../cli/summary\";\nimport { CACHE_KEYS } from \"../constants/cache-keys\";\nimport { CacheManager } from \"./managers/cache\";\nimport { ConfigManager } from \"./managers/config\";\nimport { logger } from \"../lib/logger\";\nimport { CombineParams, ProdexConfig } from \"../types\";\nimport { applyIncludes, followChain } from \"./dependency\";\nimport { globScan } from \"./helpers\";\nimport { smartNaming } from \"./helpers\";\nimport { produceOutput } from \"./output\";\n\nexport async function runCombine({ cfg, opts }: CombineParams) {\n\tintroSummary();\n\n\tconst { showUi, cliName } = opts;\n\tlet entries = (await resolveEntries(showUi, cfg)) ?? [];\n\n\tentrySummary(entries);\n\n\tlet result;\n\tif (!entries.length) logger.info(\"No entries found\");\n\n\tif (entries.length) result = await followChain(entries, cfg);\n\n\tconst withinclude = await applyIncludes(cfg, result?.files ?? []);\n\tif (!withinclude.length) return logger.info(\"No Includes found. Exiting process...\");\n\n\tconst autoName = smartNaming(entries);\n\tconst outputPath = await produceOutput({ name: cliName ?? autoName, files: withinclude, cfg, showUi });\n\n\tpersistAliases();\n\tendSummary(outputPath, result);\n}\n\nasync function resolveEntries(showUi: boolean, cfg: ProdexConfig): Promise<string[]> {\n\tconst {\n\t\troot,\n\t\tentry: { files },\n\t\tresolve: { include },\n\t} = cfg;\n\n\tif (!showUi) {\n\t\tlogger.info(\"CI Mode\");\n\t\tif (!files?.length) {\n\t\t\tlogger.warn(\"No entry files defined and UI mode is disabled.\");\n\t\t\tif (!include.length) process.exit(1);\n\t\t\tlogger.info(\"Applying Includes\");\n\t\t}\n\t\treturn (await globScan(files, { cwd: root })).files;\n\t} else {\n\t\treturn await pickEntries(cfg);\n\t}\n}\n\n/**\n * 🧩 Persist discovered aliases (if any)\n */\nfunction persistAliases() {\n\tconst aliases = CacheManager.dump(CACHE_KEYS.ALIASES);\n\tif (Object.keys(aliases).length) {\n\t\tConfigManager.persist({ resolve: { aliases } });\n\t}\n}\n"]}
|