prodex 1.2.0 → 1.4.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/README.md +55 -49
- package/dist/cli/cli-input.js +58 -43
- package/dist/cli/cli-input.js.map +1 -0
- package/dist/cli/flags.js +1 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/init.js +5 -5
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/picker.js +43 -41
- package/dist/cli/picker.js.map +1 -0
- package/dist/cli/summary.js +28 -9
- package/dist/cli/summary.js.map +1 -0
- package/dist/constants/cache-keys.js +12 -0
- package/dist/constants/cache-keys.js.map +1 -0
- package/dist/constants/config-loader.js +12 -7
- package/dist/constants/config-loader.js.map +1 -0
- package/dist/constants/config.js +17 -6
- package/dist/constants/config.js.map +1 -0
- package/dist/constants/default-config.js +4 -17
- package/dist/constants/default-config.js.map +1 -0
- package/dist/constants/flags.js +74 -0
- package/dist/constants/flags.js.map +1 -0
- package/dist/constants/index.js +21 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/render-constants.js +11 -9
- package/dist/constants/render-constants.js.map +1 -0
- package/dist/core/cache.js +54 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/combine.js +42 -59
- package/dist/core/combine.js.map +1 -0
- package/dist/core/config-manager.js +104 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/dependency.js +42 -17
- package/dist/core/dependency.js.map +1 -0
- package/dist/core/file-utils.js +1 -44
- package/dist/core/file-utils.js.map +1 -0
- package/dist/core/helpers.js +43 -38
- package/dist/core/helpers.js.map +1 -0
- package/dist/core/managers/cache.js +54 -0
- package/dist/core/managers/cache.js.map +1 -0
- package/dist/core/managers/config-manager.js +104 -0
- package/dist/core/managers/config-manager.js.map +1 -0
- package/dist/core/managers/config.js +104 -0
- package/dist/core/managers/config.js.map +1 -0
- package/dist/core/output.js +49 -0
- package/dist/core/output.js.map +1 -0
- package/dist/core/parsers/extract-imports.js +2 -7
- package/dist/core/parsers/extract-imports.js.map +1 -0
- package/dist/core/renderers.js +10 -8
- package/dist/core/renderers.js.map +1 -0
- package/dist/debug.js +14 -0
- package/dist/debug.js.map +1 -0
- package/dist/index.js +49 -22
- package/dist/index.js.map +1 -0
- package/dist/lib/logger.js +38 -9
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/polyfills.js +6 -0
- package/dist/lib/polyfills.js.map +1 -0
- package/dist/lib/prompt.js +35 -0
- package/dist/lib/prompt.js.map +1 -0
- package/dist/lib/questions.js +29 -0
- package/dist/lib/questions.js.map +1 -0
- package/dist/lib/utils.js +35 -11
- package/dist/lib/utils.js.map +1 -0
- package/dist/resolvers/js/alias-loader.js +1 -0
- package/dist/resolvers/js/alias-loader.js.map +1 -0
- package/dist/resolvers/js/extract-imports.js +46 -0
- package/dist/resolvers/js/extract-imports.js.map +1 -0
- package/dist/resolvers/js/js-resolver.js +93 -116
- package/dist/resolvers/js/js-resolver.js.map +1 -0
- package/dist/resolvers/js/resolve-alias.js +58 -0
- package/dist/resolvers/js/resolve-alias.js.map +1 -0
- package/dist/resolvers/php/bindings.js +21 -9
- package/dist/resolvers/php/bindings.js.map +1 -0
- package/dist/resolvers/php/extract-imports.js +50 -0
- package/dist/resolvers/php/extract-imports.js.map +1 -0
- package/dist/resolvers/php/patterns.js +37 -4
- package/dist/resolvers/php/patterns.js.map +1 -0
- package/dist/resolvers/php/php-resolver.js +99 -59
- package/dist/resolvers/php/php-resolver.js.map +1 -0
- package/dist/resolvers/php/psr4.js +19 -5
- package/dist/resolvers/php/psr4.js.map +1 -0
- package/dist/resolvers/shared/excludes.js +1 -0
- package/dist/resolvers/shared/excludes.js.map +1 -0
- package/dist/resolvers/shared/file-cache.js +1 -29
- package/dist/resolvers/shared/file-cache.js.map +1 -0
- package/dist/resolvers/shared/resolve-alias.js +62 -0
- package/dist/resolvers/shared/resolve-alias.js.map +1 -0
- package/dist/resolvers/shared/stats.js +3 -3
- package/dist/resolvers/shared/stats.js.map +1 -0
- package/dist/shared/collections.js +34 -0
- package/dist/shared/collections.js.map +1 -0
- package/dist/shared/index.js +20 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/io.js +52 -0
- package/dist/shared/io.js.map +1 -0
- package/dist/shared/patterns.js +30 -0
- package/dist/shared/patterns.js.map +1 -0
- package/dist/shared/stats.js +32 -0
- package/dist/shared/stats.js.map +1 -0
- package/dist/store.js +16 -0
- package/dist/store.js.map +1 -0
- package/dist/types/cli.types.js +1 -0
- package/dist/types/cli.types.js.map +1 -0
- package/dist/types/config.types.js +1 -0
- package/dist/types/config.types.js.map +1 -0
- package/dist/types/core.types.js +1 -0
- package/dist/types/core.types.js.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/resolver.types.js +1 -0
- package/dist/types/resolver.types.js.map +1 -0
- package/dist/types/utils.types.js +1 -0
- package/dist/types/utils.types.js.map +1 -0
- package/package.json +5 -4
package/dist/store.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFlags = exports.getConfig = void 0;
|
|
4
|
+
exports.setGlobals = setGlobals;
|
|
5
|
+
let globalConfig = null;
|
|
6
|
+
let globalFlags = null;
|
|
7
|
+
function setGlobals(cfg, flags) {
|
|
8
|
+
globalConfig = cfg;
|
|
9
|
+
globalFlags = flags;
|
|
10
|
+
globalThis.__PRODEX__ = Object.freeze({ config: cfg, flags });
|
|
11
|
+
}
|
|
12
|
+
const getConfig = () => globalConfig || globalThis.__PRODEX__?.config;
|
|
13
|
+
exports.getConfig = getConfig;
|
|
14
|
+
const getFlags = () => globalFlags || globalThis.__PRODEX__?.flags;
|
|
15
|
+
exports.getFlags = getFlags;
|
|
16
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;AAKA,gCAIC;AAPD,IAAI,YAAY,GAAG,IAAI,CAAC;AACxB,IAAI,WAAW,GAAG,IAAI,CAAC;AAEvB,SAAgB,UAAU,CAAC,GAAG,EAAE,KAA2B;IAC1D,YAAY,GAAG,GAAG,CAAC;IACnB,WAAW,GAAG,KAAK,CAAC;IACpB,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAEM,MAAM,SAAS,GAAG,GAAiB,EAAE,CAAC,YAAY,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC;AAA9E,QAAA,SAAS,aAAqE;AACpF,MAAM,QAAQ,GAAG,GAAgB,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC;AAA1E,QAAA,QAAQ,YAAkE","sourcesContent":["import { ProdexConfig, ProdexFlags } from \"./types\";\r\n\r\nlet globalConfig = null;\r\nlet globalFlags = null;\r\n\r\nexport function setGlobals(cfg, flags: Partial<ProdexFlags>) {\r\n\tglobalConfig = cfg;\r\n\tglobalFlags = flags;\r\n\tglobalThis.__PRODEX__ = Object.freeze({ config: cfg, flags });\r\n}\r\n\r\nexport const getConfig = (): ProdexConfig => globalConfig || globalThis.__PRODEX__?.config;\r\nexport const getFlags = (): ProdexFlags => globalFlags || globalThis.__PRODEX__?.flags;\r\n"]}
|
package/dist/types/cli.types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.types.js","sourceRoot":"","sources":["../../src/types/cli.types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG","sourcesContent":["/**\n * CLI flag schema for Prodex.\n * Mirrors the current CLI synopsis:\n *\n * prodex [entries...] [-tcdv]\n * [--txt] [--ci] [--debug] [--verbose]\n * [--name=<string>|-n=<string>]\n * [--limit=<int>|-l=<int>]\n * [--inc=<globs>] [--exc=<globs>]\n */\n\nexport interface ProdexFlags {\n\t_: string[];\n\t/** Output as .txt instead of .md (-t / --txt) */\n\ttxt?: boolean;\n\n\t/** Headless / non-interactive mode (-c / --ci) */\n\tci?: boolean;\n\n\t/** Enable debug logs (-d / --debug) */\n\tdebug?: boolean;\n\n\t/** Verbose logs (-v / --verbose) */\n\tverbose?: boolean;\n\n\tsilent?: boolean;\n\n\t/** Custom output filename (without extension) (--name / -n) */\n\tname?: string | null;\n\n\t/** Traversal limit override (--limit / -l) */\n\tlimit?: number | null;\n\n\t/** Comma-separated glob list overriding resolve.include (--inc) */\n\tinclude?: string[];\n\n\t/** Comma-separated glob list overriding resolve.exclude (--exc) */\n\texclude?: string[];\n\tfiles?: string[];\n\n\t/** Optional short alias reference mapping */\n\tshort?: {\n\t\tt?: boolean;\n\t\tc?: boolean;\n\t\td?: boolean;\n\t\tv?: boolean;\n\t\tn?: string;\n\t\tl?: number;\n\t};\n}\n\n/** Minimal run summary for logging and UX display. */\nexport interface CliSummary {\n\toutDir: string;\n\tfileName: string;\n\tentries: string[];\n}\n\nexport interface ParsedInput {\n\trootArg: string;\n\troot?: string;\n\tflags: Partial<ProdexFlags>;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Canonical configuration interface for Prodex.\n * Defines the accepted and guaranteed structure at runtime.\n */\nexport interface ProdexConfig {\n\tversion: number;\n\tname: string;\n\troot: string;\n\toutput: {\n\t\tdir: string;\n\t\tversioned: boolean;\n\t\tprefix: string;\n\t\tformat: \"md\" | \"txt\";\n\t};\n\n\tentry: {\n\t\tfiles: string[];\n\t\tui: {\n\t\t\troots: string[];\n\t\t\tscanDepth: number;\n\t\t\tpriority: string[];\n\t\t\tenablePicker?: boolean;\n\t\t};\n\t};\n\n\tresolve: {\n\t\tinclude: string[];\n\t\taliases: Record<string, string>;\n\t\texclude: string[];\n\t\tdepth: number;\n\t\tlimit: number;\n\t};\n}\n\n/** Optional helper for typed schema versions. */\nexport interface Versioned {\n\tversion: ProdexConfig[\"version\"];\n}\n\n/** Represents the user-saved config file (without runtime fields). */\nexport type ProdexConfigFile = Omit<ProdexConfig, \"root\" | \"name\">;\n\nexport type DeepPartial<T> = {\n\t[K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n"]}
|
package/dist/types/core.types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.types.js","sourceRoot":"","sources":["../../src/types/core.types.ts"],"names":[],"mappings":"","sourcesContent":["import { ProdexConfig } from \".\";\n\n/** Shared stats type across resolvers and chain results. */\nexport interface Stats {\n\texpected: Set<string>;\n\tresolved: Set<string>;\n}\n\n/** Followed dependency chain result. */\nexport interface ChainResult {\n\tfiles: string[];\n\tstats: Stats;\n}\n\n/** Parameters for producing the final output trace file. */\nexport interface OutputParams {\n\t/** Fully resolved + included file list (already dependency-expanded). */\n\tfiles: string[];\n\n\tname: string;\n\n\t/** Active Prodex configuration (merged + flag-overridden). */\n\tcfg: ProdexConfig;\n\n\t/** Whether to show interactive prompts for filename override. */\n\tshowUi: boolean;\n}\n\n/** Options accepted by runCombine (keep lean). */\nexport interface CombineOptions {\n\tshowUi: boolean;\n\tcliName: string;\n}\n\nexport interface CombineParams {\n\tcfg: ProdexConfig;\n\topts: CombineOptions;\n}\n\n/**\n * 🧠 Cache Type Definitions for Prodex\n * Central store for runtime-discovered aliases and other ephemeral data.\n */\n\nexport interface AliasCache {\n\t[alias: string]: string;\n}\n\n/**\n * Core cache registry shape.\n * Extend this interface to include other cache namespaces (fileCache, statsCache, etc.)\n */\nexport interface CacheRegistry {\n\taliases: Map<string, string>;\n}\n"]}
|
package/dist/types/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,8CAA4B;AAC5B,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B","sourcesContent":["export * from \"./config.types\";\nexport * from \"./cli.types\";\nexport * from \"./core.types\";\nexport * from \"./resolver.types\";\nexport * from \"./utils.types\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.types.js","sourceRoot":"","sources":["../../src/types/resolver.types.ts"],"names":[],"mappings":"","sourcesContent":["/** Context for JS resolver (aliases precomputed). */\nexport interface JsResolverCtx {\n kind: \"js\";\n aliases: Record<string, string>;\n}\n\n/** Context for PHP resolver (PSR-4 map, bindings, etc.). */\nexport interface PhpResolverCtx {\n kind: \"php\";\n psr4: Record<string, string>;\n nsKeys: string[];\n bindings: Record<string, string>;\n}\n\n/** Shared parameter contract for all resolvers */\nexport interface ResolverParams {\n /** Absolute path of the file being resolved */\n filePath: string;\n\n /** Set of files already visited (to prevent recursion loops) */\n visited?: Set<string>;\n\n /** Current recursion depth */\n depth?: number;\n\n /** Maximum recursion depth allowed */\n maxDepth?: number;\n\n /** Shared context cache (aliases, bindings, psr4, etc.) */\n ctx?: JsResolverCtx | PhpResolverCtx;\n}\n\n/** Standard resolver result shape for both JS and PHP. */\nexport interface ResolverResult {\n files: string[];\n visited: Set<string>;\n stats: {\n expected: Set<string>;\n resolved: Set<string>;\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.types.js","sourceRoot":"","sources":["../../src/types/utils.types.ts"],"names":[],"mappings":"","sourcesContent":["type LogFn = (...args: any[]) => void;\r\nexport interface Logger {\r\n\tdebug: LogFn;\r\n\tinfo: LogFn;\r\n\twarn: LogFn;\r\n\terror: LogFn;\r\n\tlog: LogFn;\r\n\tclear: LogFn;\r\n}\r\n\r\nexport type QuestionSet<T = any> = ReadonlyArray<Record<string, any>> | Record<string, any>;\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prodex",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Unified Project Indexer & Dependency Extractor for Laravel + React + Node stacks.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"bin": {
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc",
|
|
29
29
|
"dev": "tsc --watch",
|
|
30
|
-
"prepare": "npm run build"
|
|
30
|
+
"prepare": "npm run build",
|
|
31
|
+
"d:w": "nodemon --watch dist --delay 500ms --exec node --inspect-brk dist/debug.js"
|
|
31
32
|
},
|
|
32
33
|
"engines": {
|
|
33
34
|
"node": ">=16"
|
|
@@ -36,8 +37,8 @@
|
|
|
36
37
|
"license": "MIT",
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@types/node": "^24.9.2",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
40
|
+
"nodemon": "^3.1.10",
|
|
41
|
+
"typescript": "^5.9.3"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
44
|
"es-module-lexer": "^1.7.0",
|