prodex 1.4.0 → 1.4.4

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.
Files changed (59) hide show
  1. package/README.md +234 -234
  2. package/dist/cli/cli-input.js +7 -2
  3. package/dist/cli/cli-input.js.map +1 -1
  4. package/dist/cli/init.js +2 -1
  5. package/dist/cli/init.js.map +1 -1
  6. package/dist/constants/config.js +1 -1
  7. package/dist/constants/config.js.map +1 -1
  8. package/dist/constants/default-config.js +13 -4
  9. package/dist/constants/default-config.js.map +1 -1
  10. package/dist/constants/flags.js +6 -0
  11. package/dist/constants/flags.js.map +1 -1
  12. package/dist/core/managers/config.js +38 -6
  13. package/dist/core/managers/config.js.map +1 -1
  14. package/dist/debug.js +2 -1
  15. package/dist/debug.js.map +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/lib/utils.js +8 -0
  19. package/dist/lib/utils.js.map +1 -1
  20. package/dist/resolvers/js/js-resolver.js +13 -11
  21. package/dist/resolvers/js/js-resolver.js.map +1 -1
  22. package/dist/resolvers/js/resolve-alias.js +15 -12
  23. package/dist/resolvers/js/resolve-alias.js.map +1 -1
  24. package/dist/resolvers/php/php-resolver.js +6 -4
  25. package/dist/resolvers/php/php-resolver.js.map +1 -1
  26. package/dist/shared/collections.js.map +1 -1
  27. package/dist/shared/patterns.js +3 -1
  28. package/dist/shared/patterns.js.map +1 -1
  29. package/dist/types/cli.types.js.map +1 -1
  30. package/dist/types/config.types.js.map +1 -1
  31. package/package.json +6 -4
  32. package/dist/cli/flags.js +0 -43
  33. package/dist/cli/flags.js.map +0 -1
  34. package/dist/constants/config-loader.js +0 -95
  35. package/dist/constants/config-loader.js.map +0 -1
  36. package/dist/core/cache.js +0 -54
  37. package/dist/core/cache.js.map +0 -1
  38. package/dist/core/config-manager.js +0 -104
  39. package/dist/core/config-manager.js.map +0 -1
  40. package/dist/core/file-utils.js +0 -1
  41. package/dist/core/file-utils.js.map +0 -1
  42. package/dist/core/managers/config-manager.js +0 -104
  43. package/dist/core/managers/config-manager.js.map +0 -1
  44. package/dist/core/parsers/extract-imports.js +0 -46
  45. package/dist/core/parsers/extract-imports.js.map +0 -1
  46. package/dist/resolvers/js/alias-loader.js +0 -53
  47. package/dist/resolvers/js/alias-loader.js.map +0 -1
  48. package/dist/resolvers/php/patterns.js +0 -50
  49. package/dist/resolvers/php/patterns.js.map +0 -1
  50. package/dist/resolvers/shared/excludes.js +0 -12
  51. package/dist/resolvers/shared/excludes.js.map +0 -1
  52. package/dist/resolvers/shared/file-cache.js +0 -1
  53. package/dist/resolvers/shared/file-cache.js.map +0 -1
  54. package/dist/resolvers/shared/resolve-alias.js +0 -62
  55. package/dist/resolvers/shared/resolve-alias.js.map +0 -1
  56. package/dist/resolvers/shared/stats.js +0 -17
  57. package/dist/resolvers/shared/stats.js.map +0 -1
  58. package/dist/shared/stats.js +0 -32
  59. package/dist/shared/stats.js.map +0 -1
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractPhpImports = extractPhpImports;
4
- exports.expandGroupedUses = expandGroupedUses;
5
- /**
6
- * Extracts import-like references from PHP code.
7
- * Supports:
8
- * - require/include/require_once/include_once
9
- * - use statements (including grouped imports like `use App\Models\{User, Team};`)
10
- */
11
- function extractPhpImports(code) {
12
- const out = new Set();
13
- const patterns = [
14
- /\b(?:require|include|require_once|include_once)\s*\(?['"]([^'"]+)['"]\)?/g,
15
- /\buse\s+([A-Z][\w\\]+(?:\s*{[^}]+})?)/g,
16
- ];
17
- for (const r of patterns) {
18
- let m;
19
- while ((m = r.exec(code))) {
20
- const val = m[1];
21
- if (val)
22
- out.add(val);
23
- }
24
- }
25
- return out;
26
- }
27
- /**
28
- * Expands grouped `use` imports into individual fully qualified names.
29
- * Example:
30
- * "App\\Models\\{User, Team}" → ["App\\Models\\User", "App\\Models\\Team"]
31
- */
32
- function expandGroupedUses(raw) {
33
- const out = new Set();
34
- for (const imp of raw) {
35
- const g = imp.match(/^(.+?)\s*{([^}]+)}/);
36
- if (g) {
37
- const base = g[1].trim().replace(/\\+$/, "");
38
- g[2]
39
- .split(",")
40
- .map((x) => x.trim())
41
- .filter(Boolean)
42
- .forEach((p) => out.add(`${base}\\${p}`));
43
- }
44
- else {
45
- out.add(imp.trim());
46
- }
47
- }
48
- return out;
49
- }
50
- //# sourceMappingURL=patterns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/resolvers/php/patterns.ts"],"names":[],"mappings":";;AAQA,8CAgBC;AAOD,8CAgBC;AA7CD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAE9B,MAAM,QAAQ,GAAa;QACzB,2EAA2E;QAC3E,wCAAwC;KACzC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,GAAG;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAgB;IAChD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;iBACf,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import type { PhpResolverCtx } from \"../../types\";\r\n\r\n/**\r\n * Extracts import-like references from PHP code.\r\n * Supports:\r\n * - require/include/require_once/include_once\r\n * - use statements (including grouped imports like `use App\\Models\\{User, Team};`)\r\n */\r\nexport function extractPhpImports(code: string): Set<string> {\r\n const out = new Set<string>();\r\n\r\n const patterns: RegExp[] = [\r\n /\\b(?:require|include|require_once|include_once)\\s*\\(?['\"]([^'\"]+)['\"]\\)?/g,\r\n /\\buse\\s+([A-Z][\\w\\\\]+(?:\\s*{[^}]+})?)/g,\r\n ];\r\n\r\n for (const r of patterns) {\r\n let m: RegExpExecArray | null;\r\n while ((m = r.exec(code))) {\r\n const val = m[1];\r\n if (val) out.add(val);\r\n }\r\n }\r\n return out;\r\n}\r\n\r\n/**\r\n * Expands grouped `use` imports into individual fully qualified names.\r\n * Example:\r\n * \"App\\\\Models\\\\{User, Team}\" → [\"App\\\\Models\\\\User\", \"App\\\\Models\\\\Team\"]\r\n */\r\nexport function expandGroupedUses(raw: Set<string>): Set<string> {\r\n const out = new Set<string>();\r\n for (const imp of raw) {\r\n const g = imp.match(/^(.+?)\\s*{([^}]+)}/);\r\n if (g) {\r\n const base = g[1].trim().replace(/\\\\+$/, \"\");\r\n g[2]\r\n .split(\",\")\r\n .map((x) => x.trim())\r\n .filter(Boolean)\r\n .forEach((p) => out.add(`${base}\\\\${p}`));\r\n } else {\r\n out.add(imp.trim());\r\n }\r\n }\r\n return out;\r\n}\r\n"]}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- // @ts-nocheck
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.isExcluded = isExcluded;
8
- const micromatch_1 = __importDefault(require("micromatch"));
9
- function isExcluded(imp, exclude = []) {
10
- return micromatch_1.default.isMatch(imp.replaceAll("\\", "/"), exclude);
11
- }
12
- //# sourceMappingURL=excludes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"excludes.js","sourceRoot":"","sources":["../../../src/resolvers/shared/excludes.ts"],"names":[],"mappings":";AAAA,cAAc;;;;;AAId,gCAEC;AAJD,4DAAoC;AAEpC,SAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE;IAC1C,OAAO,oBAAU,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC","sourcesContent":["// @ts-nocheck\r\n\r\nimport micromatch from \"micromatch\";\r\n\r\nexport function isExcluded(imp, exclude = []) {\r\n return micromatch.isMatch(imp.replaceAll(\"\\\\\", \"/\"), exclude);\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=file-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-cache.js","sourceRoot":"","sources":["../../../src/resolvers/shared/file-cache.ts"],"names":[],"mappings":"","sourcesContent":["\r\n\r\n"]}
@@ -1,62 +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.resolveAliasPath = resolveAliasPath;
7
- const fast_glob_1 = __importDefault(require("fast-glob"));
8
- const path_1 = __importDefault(require("path"));
9
- const config_1 = require("../../constants/config");
10
- const cache_1 = require("../../core/cache");
11
- /**
12
- * 🧩 resolveAliasPath()
13
- * Unifies alias lookup across config, cache, and fallback discovery.
14
- *
15
- * - Checks cfg.resolve.aliases first.
16
- * - Then cached aliases (from Cache Manager).
17
- * - If still unresolved, runs Fast-Glob to discover and cache new alias root.
18
- */
19
- async function resolveAliasPath(specifier, root, cfg) {
20
- if (!specifier.includes("/"))
21
- return null;
22
- const [aliasName, ...rest] = specifier.split("/");
23
- const remainder = rest.join("/");
24
- const knownAliases = cfg.resolve.aliases || {};
25
- const aliasKey = aliasName.startsWith("@") ? aliasName : `@${aliasName}`;
26
- // 1️⃣ Check config-defined aliases
27
- if (knownAliases[aliasKey]) {
28
- const relPart = remainder.replace(/^\/+/, "");
29
- return path_1.default.resolve(root, knownAliases[aliasKey], relPart);
30
- }
31
- // 2️⃣ Check cached aliases
32
- const cached = cache_1.CacheManager.get("aliases", aliasKey);
33
- if (cached) {
34
- const relPart = remainder.replace(/^\/+/, "");
35
- return path_1.default.resolve(root, cached, relPart);
36
- }
37
- // 3️⃣ Fallback discovery with Fast-Glob
38
- const stripped = remainder; // remove prefix before first '/'
39
- const hasExt = /\.[a-z0-9]+$/i.test(stripped);
40
- const patterns = hasExt ? [`**/${stripped}`] : [`**/${stripped}.*`, `**/${stripped}/index.*`];
41
- const matches = await (0, fast_glob_1.default)(patterns, {
42
- cwd: root,
43
- absolute: true,
44
- ignore: config_1.GLOBAL_IGNORE,
45
- });
46
- if (matches.length === 1) {
47
- return resolveMatches(matches, remainder, aliasKey);
48
- }
49
- //There are multiple matches, Assuming they match the target approximate folder.
50
- if (matches.length > 1) {
51
- const resolvedMatch = resolveMatches(matches, remainder, aliasKey);
52
- return resolvedMatch.replace(/\.[^/.]+$/, "");
53
- }
54
- return null;
55
- }
56
- function resolveMatches(matches, remainder, aliasKey) {
57
- const foundFile = matches[0];
58
- const aliasRoot = foundFile.split(remainder)[0].replace(/\\/g, "/");
59
- cache_1.CacheManager.set("aliases", aliasKey, aliasRoot);
60
- return foundFile;
61
- }
62
- //# sourceMappingURL=resolve-alias.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-alias.js","sourceRoot":"","sources":["../../../src/resolvers/shared/resolve-alias.ts"],"names":[],"mappings":";;;;;AAcA,4CA4CC;AA1DD,0DAA2B;AAC3B,gDAAwB;AACxB,mDAAuD;AACvD,4CAAgD;AAGhD;;;;;;;GAOG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,IAAY,EAAE,GAAiB;IACxF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;IAEzE,mCAAmC;IACnC,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GAAG,oBAAY,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAErD,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,wCAAwC;IACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,iCAAiC;IAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,IAAI,EAAE,MAAM,QAAQ,UAAU,CAAC,CAAC;IAE9F,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAE,EAAC,QAAQ,EAAE;QAClC,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,sBAAa;KACrB,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,gFAAgF;IAChF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnE,OAAO,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,OAAiB,EAAE,SAAiB,EAAE,QAAgB;IAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpE,oBAAY,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC;AAClB,CAAC","sourcesContent":["import fg from \"fast-glob\";\r\nimport path from \"path\";\r\nimport { GLOBAL_IGNORE } from \"../../constants/config\";\r\nimport { CacheManager } from \"../../core/cache\";\r\nimport type { ProdexConfig } from \"../../types\";\r\n\r\n/**\r\n * 🧩 resolveAliasPath()\r\n * Unifies alias lookup across config, cache, and fallback discovery.\r\n *\r\n * - Checks cfg.resolve.aliases first.\r\n * - Then cached aliases (from Cache Manager).\r\n * - If still unresolved, runs Fast-Glob to discover and cache new alias root.\r\n */\r\nexport async function resolveAliasPath(specifier: string, root: string, cfg: ProdexConfig): Promise<string | null> {\r\n\tif (!specifier.includes(\"/\")) return null;\r\n\r\n\tconst [aliasName, ...rest] = specifier.split(\"/\");\r\n\tconst remainder = rest.join(\"/\");\r\n\tconst knownAliases = cfg.resolve.aliases || {};\r\n\tconst aliasKey = aliasName.startsWith(\"@\") ? aliasName : `@${aliasName}`;\r\n\r\n\t// 1️⃣ Check config-defined aliases\r\n\tif (knownAliases[aliasKey]) {\r\n\t\tconst relPart = remainder.replace(/^\\/+/, \"\");\r\n\t\treturn path.resolve(root, knownAliases[aliasKey], relPart);\r\n\t}\r\n\r\n\t// 2️⃣ Check cached aliases\r\n\tconst cached = CacheManager.get(\"aliases\", aliasKey);\r\n\r\n\tif (cached) {\r\n\t\tconst relPart = remainder.replace(/^\\/+/, \"\");\r\n\t\treturn path.resolve(root, cached, relPart);\r\n\t}\r\n\r\n\t// 3️⃣ Fallback discovery with Fast-Glob\r\n\tconst stripped = remainder; // remove prefix before first '/'\r\n\tconst hasExt = /\\.[a-z0-9]+$/i.test(stripped);\r\n\tconst patterns = hasExt ? [`**/${stripped}`] : [`**/${stripped}.*`, `**/${stripped}/index.*`];\r\n\r\n\tconst matches = await fg(patterns, {\r\n\t\tcwd: root,\r\n\t\tabsolute: true,\r\n\t\tignore: GLOBAL_IGNORE,\r\n\t});\r\n\r\n\tif (matches.length === 1) {\r\n\t\treturn resolveMatches(matches, remainder, aliasKey);\r\n\t}\r\n\r\n\t//There are multiple matches, Assuming they match the target approximate folder.\r\n\tif (matches.length > 1) {\r\n\t\tconst resolvedMatch = resolveMatches(matches, remainder, aliasKey);\r\n\t\treturn resolvedMatch.replace(/\\.[^/.]+$/, \"\");\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nfunction resolveMatches(matches: string[], remainder: string, aliasKey: string) {\r\n\tconst foundFile = matches[0];\r\n\tconst aliasRoot = foundFile.split(remainder)[0].replace(/\\\\/g, \"/\");\r\n\tCacheManager.set(\"aliases\", aliasKey, aliasRoot);\r\n\treturn foundFile;\r\n}\r\n"]}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.newStats = newStats;
4
- exports.mergeStats = mergeStats;
5
- exports.emptyStats = emptyStats;
6
- function newStats() {
7
- return { expected: new Set(), resolved: new Set() };
8
- }
9
- function mergeStats(target, src) {
10
- src.expected.forEach((i) => target.expected.add(i));
11
- src.resolved.forEach((i) => target.resolved.add(i));
12
- return target;
13
- }
14
- function emptyStats() {
15
- return { expected: new Set(), resolved: new Set() };
16
- }
17
- //# sourceMappingURL=stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/resolvers/shared/stats.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,gCAIC;AAED,gCAEC;AAZD,SAAgB,QAAQ;IACvB,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,SAAgB,UAAU,CAAC,MAAM,EAAE,GAAG;IACrC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,UAAU;IACzB,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACrD,CAAC","sourcesContent":["import { ResolverResult } from \"../../types\";\r\n\r\nexport function newStats(): ResolverResult[\"stats\"] {\r\n\treturn { expected: new Set(), resolved: new Set() };\r\n}\r\n\r\nexport function mergeStats(target, src) {\r\n\tsrc.expected.forEach((i) => target.expected.add(i));\r\n\tsrc.resolved.forEach((i) => target.resolved.add(i));\r\n\treturn target;\r\n}\r\n\r\nexport function emptyStats(): ResolverResult[\"stats\"] {\r\n\treturn { expected: new Set(), resolved: new Set() };\r\n}\r\n"]}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.newStats = newStats;
4
- exports.mergeStats = mergeStats;
5
- exports.emptyStats = emptyStats;
6
- exports.setDiff = setDiff;
7
- exports.unique = unique;
8
- function newStats() {
9
- return { expected: new Set(), resolved: new Set() };
10
- }
11
- function mergeStats(target, src) {
12
- src.expected.forEach((i) => target.expected.add(i));
13
- src.resolved.forEach((i) => target.resolved.add(i));
14
- return target;
15
- }
16
- function emptyStats() {
17
- return { expected: new Set(), resolved: new Set() };
18
- }
19
- /**
20
- * Returns a new Set of elements present in A but not in B.
21
- * Used to detect unresolved imports in JS and PHP resolvers.
22
- */
23
- function setDiff(A, B) {
24
- return new Set([...A].filter((x) => !B.has(x)));
25
- } /**
26
- * Removes duplicates from an array.
27
- * Stateless helper used across resolvers and dependency chain.
28
- */
29
- function unique(arr) {
30
- return [...new Set(arr)];
31
- }
32
- //# sourceMappingURL=stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/shared/stats.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,gCAIC;AAED,gCAEC;AAMD,0BAEC;AAKD,wBAEC;AA3BD,SAAgB,QAAQ;IACvB,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,SAAgB,UAAU,CAAC,MAAM,EAAE,GAAG;IACrC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,UAAU;IACzB,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAI,CAAS,EAAE,CAAS;IAC9C,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,CAAA;;;GAGE;AAEH,SAAgB,MAAM,CAAI,GAAQ;IACjC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import { ResolverResult } from \"../types\";\r\n\r\nexport function newStats(): ResolverResult[\"stats\"] {\r\n\treturn { expected: new Set(), resolved: new Set() };\r\n}\r\n\r\nexport function mergeStats(target, src) {\r\n\tsrc.expected.forEach((i) => target.expected.add(i));\r\n\tsrc.resolved.forEach((i) => target.resolved.add(i));\r\n\treturn target;\r\n}\r\n\r\nexport function emptyStats(): ResolverResult[\"stats\"] {\r\n\treturn { expected: new Set(), resolved: new Set() };\r\n}\r\n\r\n/**\r\n * Returns a new Set of elements present in A but not in B.\r\n * Used to detect unresolved imports in JS and PHP resolvers.\r\n */\r\nexport function setDiff<A>(A: Set<A>, B: Set<A>): Set<A> {\r\n\treturn new Set([...A].filter((x) => !B.has(x)));\r\n}/**\r\n * Removes duplicates from an array.\r\n * Stateless helper used across resolvers and dependency chain.\r\n */\r\n\r\nexport function unique<T>(arr: T[]): T[] {\r\n\treturn [...new Set(arr)];\r\n}\r\n\r\n"]}