driftdetect-core 0.1.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/analyzers/ast-analyzer.d.ts +251 -0
- package/dist/analyzers/ast-analyzer.d.ts.map +1 -0
- package/dist/analyzers/ast-analyzer.js +548 -0
- package/dist/analyzers/ast-analyzer.js.map +1 -0
- package/dist/analyzers/flow-analyzer.d.ts +241 -0
- package/dist/analyzers/flow-analyzer.d.ts.map +1 -0
- package/dist/analyzers/flow-analyzer.js +1219 -0
- package/dist/analyzers/flow-analyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +18 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +19 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/semantic-analyzer.d.ts +252 -0
- package/dist/analyzers/semantic-analyzer.d.ts.map +1 -0
- package/dist/analyzers/semantic-analyzer.js +1182 -0
- package/dist/analyzers/semantic-analyzer.js.map +1 -0
- package/dist/analyzers/type-analyzer.d.ts +289 -0
- package/dist/analyzers/type-analyzer.d.ts.map +1 -0
- package/dist/analyzers/type-analyzer.js +1269 -0
- package/dist/analyzers/type-analyzer.js.map +1 -0
- package/dist/analyzers/types.d.ts +537 -0
- package/dist/analyzers/types.d.ts.map +1 -0
- package/dist/analyzers/types.js +11 -0
- package/dist/analyzers/types.js.map +1 -0
- package/dist/config/config-loader.d.ts +166 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +429 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-validator.d.ts +204 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +632 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/defaults.d.ts +8 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +26 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +10 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +47 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +7 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest/exporter.d.ts +21 -0
- package/dist/manifest/exporter.d.ts.map +1 -0
- package/dist/manifest/exporter.js +339 -0
- package/dist/manifest/exporter.js.map +1 -0
- package/dist/manifest/index.d.ts +14 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +15 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/manifest-store.d.ts +111 -0
- package/dist/manifest/manifest-store.d.ts.map +1 -0
- package/dist/manifest/manifest-store.js +418 -0
- package/dist/manifest/manifest-store.js.map +1 -0
- package/dist/manifest/types.d.ts +238 -0
- package/dist/manifest/types.d.ts.map +1 -0
- package/dist/manifest/types.js +11 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/matcher/confidence-scorer.d.ts +188 -0
- package/dist/matcher/confidence-scorer.d.ts.map +1 -0
- package/dist/matcher/confidence-scorer.js +302 -0
- package/dist/matcher/confidence-scorer.js.map +1 -0
- package/dist/matcher/index.d.ts +24 -0
- package/dist/matcher/index.d.ts.map +1 -0
- package/dist/matcher/index.js +26 -0
- package/dist/matcher/index.js.map +1 -0
- package/dist/matcher/outlier-detector.d.ts +252 -0
- package/dist/matcher/outlier-detector.d.ts.map +1 -0
- package/dist/matcher/outlier-detector.js +544 -0
- package/dist/matcher/outlier-detector.js.map +1 -0
- package/dist/matcher/pattern-matcher.d.ts +169 -0
- package/dist/matcher/pattern-matcher.d.ts.map +1 -0
- package/dist/matcher/pattern-matcher.js +692 -0
- package/dist/matcher/pattern-matcher.js.map +1 -0
- package/dist/matcher/types.d.ts +476 -0
- package/dist/matcher/types.d.ts.map +1 -0
- package/dist/matcher/types.js +36 -0
- package/dist/matcher/types.js.map +1 -0
- package/dist/parsers/base-parser.d.ts +282 -0
- package/dist/parsers/base-parser.d.ts.map +1 -0
- package/dist/parsers/base-parser.js +421 -0
- package/dist/parsers/base-parser.js.map +1 -0
- package/dist/parsers/css-parser.d.ts +225 -0
- package/dist/parsers/css-parser.d.ts.map +1 -0
- package/dist/parsers/css-parser.js +477 -0
- package/dist/parsers/css-parser.js.map +1 -0
- package/dist/parsers/index.d.ts +15 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +15 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/json-parser.d.ts +219 -0
- package/dist/parsers/json-parser.d.ts.map +1 -0
- package/dist/parsers/json-parser.js +602 -0
- package/dist/parsers/json-parser.js.map +1 -0
- package/dist/parsers/markdown-parser.d.ts +276 -0
- package/dist/parsers/markdown-parser.d.ts.map +1 -0
- package/dist/parsers/markdown-parser.js +731 -0
- package/dist/parsers/markdown-parser.js.map +1 -0
- package/dist/parsers/parser-manager.d.ts +294 -0
- package/dist/parsers/parser-manager.d.ts.map +1 -0
- package/dist/parsers/parser-manager.js +738 -0
- package/dist/parsers/parser-manager.js.map +1 -0
- package/dist/parsers/python-parser.d.ts +204 -0
- package/dist/parsers/python-parser.d.ts.map +1 -0
- package/dist/parsers/python-parser.js +517 -0
- package/dist/parsers/python-parser.js.map +1 -0
- package/dist/parsers/types.d.ts +43 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +7 -0
- package/dist/parsers/types.js.map +1 -0
- package/dist/parsers/typescript-parser.d.ts +264 -0
- package/dist/parsers/typescript-parser.d.ts.map +1 -0
- package/dist/parsers/typescript-parser.js +658 -0
- package/dist/parsers/typescript-parser.js.map +1 -0
- package/dist/rules/evaluator.d.ts +305 -0
- package/dist/rules/evaluator.d.ts.map +1 -0
- package/dist/rules/evaluator.js +579 -0
- package/dist/rules/evaluator.js.map +1 -0
- package/dist/rules/index.d.ts +13 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +13 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/quick-fix-generator.d.ts +334 -0
- package/dist/rules/quick-fix-generator.d.ts.map +1 -0
- package/dist/rules/quick-fix-generator.js +1075 -0
- package/dist/rules/quick-fix-generator.js.map +1 -0
- package/dist/rules/rule-engine.d.ts +241 -0
- package/dist/rules/rule-engine.d.ts.map +1 -0
- package/dist/rules/rule-engine.js +585 -0
- package/dist/rules/rule-engine.js.map +1 -0
- package/dist/rules/severity-manager.d.ts +394 -0
- package/dist/rules/severity-manager.d.ts.map +1 -0
- package/dist/rules/severity-manager.js +619 -0
- package/dist/rules/severity-manager.js.map +1 -0
- package/dist/rules/types.d.ts +370 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +133 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/rules/variant-manager.d.ts +388 -0
- package/dist/rules/variant-manager.d.ts.map +1 -0
- package/dist/rules/variant-manager.js +777 -0
- package/dist/rules/variant-manager.js.map +1 -0
- package/dist/scanner/change-detector.d.ts +164 -0
- package/dist/scanner/change-detector.d.ts.map +1 -0
- package/dist/scanner/change-detector.js +263 -0
- package/dist/scanner/change-detector.js.map +1 -0
- package/dist/scanner/dependency-graph.d.ts +270 -0
- package/dist/scanner/dependency-graph.d.ts.map +1 -0
- package/dist/scanner/dependency-graph.js +436 -0
- package/dist/scanner/dependency-graph.js.map +1 -0
- package/dist/scanner/file-walker.d.ts +127 -0
- package/dist/scanner/file-walker.d.ts.map +1 -0
- package/dist/scanner/file-walker.js +526 -0
- package/dist/scanner/file-walker.js.map +1 -0
- package/dist/scanner/index.d.ts +12 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +12 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/types.d.ts +218 -0
- package/dist/scanner/types.d.ts.map +1 -0
- package/dist/scanner/types.js +10 -0
- package/dist/scanner/types.js.map +1 -0
- package/dist/scanner/worker-pool.d.ts +317 -0
- package/dist/scanner/worker-pool.d.ts.map +1 -0
- package/dist/scanner/worker-pool.js +571 -0
- package/dist/scanner/worker-pool.js.map +1 -0
- package/dist/store/cache-manager.d.ts +179 -0
- package/dist/store/cache-manager.d.ts.map +1 -0
- package/dist/store/cache-manager.js +391 -0
- package/dist/store/cache-manager.js.map +1 -0
- package/dist/store/history-store.d.ts +314 -0
- package/dist/store/history-store.d.ts.map +1 -0
- package/dist/store/history-store.js +707 -0
- package/dist/store/history-store.js.map +1 -0
- package/dist/store/index.d.ts +20 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +26 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/lock-file-manager.d.ts +202 -0
- package/dist/store/lock-file-manager.d.ts.map +1 -0
- package/dist/store/lock-file-manager.js +475 -0
- package/dist/store/lock-file-manager.js.map +1 -0
- package/dist/store/pattern-store.d.ts +289 -0
- package/dist/store/pattern-store.d.ts.map +1 -0
- package/dist/store/pattern-store.js +936 -0
- package/dist/store/pattern-store.js.map +1 -0
- package/dist/store/schema-validator.d.ts +159 -0
- package/dist/store/schema-validator.d.ts.map +1 -0
- package/dist/store/schema-validator.js +1096 -0
- package/dist/store/schema-validator.js.map +1 -0
- package/dist/store/types.d.ts +585 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +82 -0
- package/dist/store/types.js.map +1 -0
- package/dist/types/analysis.d.ts +19 -0
- package/dist/types/analysis.d.ts.map +1 -0
- package/dist/types/analysis.js +5 -0
- package/dist/types/analysis.js.map +1 -0
- package/dist/types/common.d.ts +7 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +5 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/patterns.d.ts +40 -0
- package/dist/types/patterns.d.ts.map +1 -0
- package/dist/types/patterns.js +7 -0
- package/dist/types/patterns.js.map +1 -0
- package/dist/types/violations.d.ts +7 -0
- package/dist/types/violations.d.ts.map +1 -0
- package/dist/types/violations.js +7 -0
- package/dist/types/violations.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-walker.js","sourceRoot":"","sources":["../../src/scanner/file-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AActC,qDAAqD;AACrD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAoC,CAAC;AAOpE;;GAEG;AACH,MAAM,sBAAsB,GAA6B;IACvD,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,WAAW,EAAE,UAAU;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAyB;IAC5C,gBAAgB,EAAE,IAAI;IACtB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,OAAO,UAAU;IACb,OAAO,CAAc;IACrB,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,YAAY,CAAc;IAC1B,KAAK,CAAa;IAClB,WAAW,CAAkB;IAC7B,MAAM,CAAc;IACpB,KAAK,CAAY;IACjB,gBAAgB,CAAmC;IACnD,SAAS,CAAO;IAExB;QACE,IAAI,CAAC,OAAO,GAAG,EAAiB,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CACR,OAAoB,EACpB,gBAAuC;QAEvC,mBAAmB;QACnB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,iDAAiD;QACjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,iBAAiB,CAC3B,iCAAiC,IAAI,CAAC,OAAO,EAAE,EAC/C,KAAK,CACN,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,0CAA0C;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzC,4BAA4B;QAC5B,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAE9C,iBAAiB;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAE3C,oBAAoB;QACpB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtE,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;SAClC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACnD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACtC,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACvD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;QACxC,CAAC;QAED,kCAAkC;QAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC3C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,OAAO;iBACX,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;YACpD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,YAAoB,EAAE,cAAuB,KAAK;QAC7D,6DAA6D;QAC7D,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAExD,6DAA6D;QAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QAExE,gCAAgC;QAChC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,oDAAoD;QACpD,IAAI,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAa;YACzB,IAAI,EAAE,QAAQ;YACd,YAAY;YACZ,IAAI;YACJ,SAAS;YACT,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;SACjC,CAAC;QAEF,gCAAgC;QAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,CAAC;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,QAAQ,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,SAAiB;QAC9B,OAAO,sBAAsB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,iBAAiB,CAAC,OAAe,EAAE,KAAa;QAC5D,kBAAkB;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhC,uDAAuD;QACvD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,gFAAgF;QAChF,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEvC,uBAAuB;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,kBAAkB;QAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEjE,kBAAkB;YAClB,IAAI,SAAS,CAAC;YACd,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;YAE7C,kBAAkB;YAClB,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBACjC,sCAAsC;oBACtC,SAAS;gBACX,CAAC;gBAED,uBAAuB;gBACvB,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;oBAC9C,SAAS;gBACX,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAClE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5B,iBAAiB,EAAE,CAAC;gBACpB,4BAA4B;gBAC5B,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC9B,qBAAqB;gBACrB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;oBAClD,SAAS;gBACX,CAAC;gBAED,SAAS,EAAE,CAAC;gBAEZ,gBAAgB;gBAChB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAE1B,eAAe;oBACf,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC;oBACtC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;wBACvB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;4BAC7C,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/D,CAAC;oBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBACtB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BAC3C,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC7D,CAAC;oBAED,kBAAkB;oBAClB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,YAAY,IAAI,GAAG;YACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5B,SAAS;YACT,iBAAiB;YACjB,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE;SACpC,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,QAAgB,EAAE,IAAsB;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE3D,yBAAyB;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5D,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAChD,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,QAAgB;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEhD,mDAAmD;QACnD,OAAO,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC5C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACK,QAAQ,CAAC,QAAgB,EAAE,IAAmB,EAAE,KAAc;QACpE,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAI,KAA+B,EAAE,IAAI,CAAC;QAEpD,MAAM,SAAS,GAAc;YAC3B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI;SACL,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,OAAO;YACL,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,EAAE;YACpB,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,IAAI,IAAI,EAAE;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAe,EAAE,KAAc;QACvD,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3E,MAAM,SAAS,GAAc;YAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,OAAO;YACP,IAAI,EAAE,YAAY;SACnB,CAAC;QAEF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACnC,CAAC;QAED,OAAO;YACL,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,KAAK,EAAE;gBACL,GAAG,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;aAChD;YACD,MAAM,EAAE,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,KAA4B,EAC5B,cAAsB,EACtB,UAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,eAAe,GACnB,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,QAAQ,GAAiB;YAC7B,KAAK;YACL,cAAc;YACd,UAAU;YACV,eAAe;YACf,SAAS;SACV,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC;QACpE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scanner module exports
|
|
3
|
+
*
|
|
4
|
+
* Provides file system traversal, change detection, dependency graph building,
|
|
5
|
+
* and parallel processing capabilities.
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export { FileWalker } from './file-walker.js';
|
|
9
|
+
export { ChangeDetector, type ChangeType, type FileSnapshot, type ChangeSet, type FileChange, type ChangeDetectionOptions, type SnapshotFile, } from './change-detector.js';
|
|
10
|
+
export { DependencyGraph, type ImportType, type ExportType, type ImportInfo, type ImportSpecifier, type ExportInfo, type ModuleNode, type DependencyEdge, type CircularDependencyResult, type DependencyGraphOptions, } from './dependency-graph.js';
|
|
11
|
+
export { WorkerPool, createFileProcessorPool, type WorkerPoolOptions, type TaskStatus, type Task, type TaskResult, type WorkerPoolStats, type WorkerPoolEvents, type TaskProcessor, } from './worker-pool.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scanner module exports
|
|
3
|
+
*
|
|
4
|
+
* Provides file system traversal, change detection, dependency graph building,
|
|
5
|
+
* and parallel processing capabilities.
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export { FileWalker } from './file-walker.js';
|
|
9
|
+
export { ChangeDetector, } from './change-detector.js';
|
|
10
|
+
export { DependencyGraph, } from './dependency-graph.js';
|
|
11
|
+
export { WorkerPool, createFileProcessorPool, } from './worker-pool.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,cAAc,GAOf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAUhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,uBAAuB,GAQxB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scanner type definitions
|
|
3
|
+
*
|
|
4
|
+
* Provides types for file system scanning, including options, results,
|
|
5
|
+
* file/directory information, statistics, and error handling.
|
|
6
|
+
*
|
|
7
|
+
* @requirements 2.1 - Scanner SHALL traverse directory structures respecting .gitignore and .driftignore patterns
|
|
8
|
+
*/
|
|
9
|
+
import type { Language } from '../parsers/types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Options for configuring a file system scan
|
|
12
|
+
*/
|
|
13
|
+
export interface ScanOptions {
|
|
14
|
+
/** Root directory to scan (absolute or relative path) */
|
|
15
|
+
rootDir: string;
|
|
16
|
+
/**
|
|
17
|
+
* Additional patterns to ignore (in addition to .gitignore and .driftignore)
|
|
18
|
+
* Uses glob pattern syntax (e.g., '*.log', 'node_modules/**')
|
|
19
|
+
*/
|
|
20
|
+
ignorePatterns?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Patterns to include (if specified, only matching files are scanned)
|
|
23
|
+
* Uses glob pattern syntax (e.g., '*.ts', 'src/**')
|
|
24
|
+
*/
|
|
25
|
+
includePatterns?: string[];
|
|
26
|
+
/**
|
|
27
|
+
* Maximum depth to traverse (undefined = unlimited)
|
|
28
|
+
* 0 = only root directory, 1 = root + immediate children, etc.
|
|
29
|
+
*/
|
|
30
|
+
maxDepth?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Number of worker threads for parallel processing
|
|
33
|
+
* Defaults to number of CPU cores
|
|
34
|
+
* @requirements 2.6
|
|
35
|
+
*/
|
|
36
|
+
workerCount?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Whether to respect .gitignore patterns
|
|
39
|
+
* @default true
|
|
40
|
+
* @requirements 2.1
|
|
41
|
+
*/
|
|
42
|
+
respectGitignore?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Whether to respect .driftignore patterns
|
|
45
|
+
* @default true
|
|
46
|
+
* @requirements 2.1
|
|
47
|
+
*/
|
|
48
|
+
respectDriftignore?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether to follow symbolic links
|
|
51
|
+
* @default false
|
|
52
|
+
*/
|
|
53
|
+
followSymlinks?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Whether to compute file content hashes
|
|
56
|
+
* Useful for change detection but adds overhead
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
computeHashes?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* File extensions to include (e.g., ['.ts', '.js', '.py'])
|
|
62
|
+
* If not specified, all files are included
|
|
63
|
+
*/
|
|
64
|
+
extensions?: string[];
|
|
65
|
+
/**
|
|
66
|
+
* Maximum file size in bytes to include
|
|
67
|
+
* Files larger than this are skipped
|
|
68
|
+
*/
|
|
69
|
+
maxFileSize?: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Result of a file system scan
|
|
73
|
+
*/
|
|
74
|
+
export interface ScanResult {
|
|
75
|
+
/** List of scanned files with their information */
|
|
76
|
+
files: FileInfo[];
|
|
77
|
+
/** List of directories traversed */
|
|
78
|
+
directories: DirectoryInfo[];
|
|
79
|
+
/** Statistics about the scan */
|
|
80
|
+
stats: ScanStats;
|
|
81
|
+
/** Errors encountered during scanning */
|
|
82
|
+
errors: ScanError[];
|
|
83
|
+
/** Root directory that was scanned */
|
|
84
|
+
rootDir: string;
|
|
85
|
+
/** Options used for the scan */
|
|
86
|
+
options: ScanOptions;
|
|
87
|
+
/** Whether the scan completed successfully (may have partial results with errors) */
|
|
88
|
+
success: boolean;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Information about a scanned file
|
|
92
|
+
*/
|
|
93
|
+
export interface FileInfo {
|
|
94
|
+
/** Absolute path to the file */
|
|
95
|
+
path: string;
|
|
96
|
+
/** Path relative to the scan root directory */
|
|
97
|
+
relativePath: string;
|
|
98
|
+
/** File name without directory */
|
|
99
|
+
name: string;
|
|
100
|
+
/** File extension including the dot (e.g., '.ts') */
|
|
101
|
+
extension: string;
|
|
102
|
+
/** File size in bytes */
|
|
103
|
+
size: number;
|
|
104
|
+
/** Last modification time */
|
|
105
|
+
mtime: Date;
|
|
106
|
+
/** Creation time (if available) */
|
|
107
|
+
ctime?: Date;
|
|
108
|
+
/**
|
|
109
|
+
* Content hash for change detection (SHA-256)
|
|
110
|
+
* Only populated if computeHashes option is true
|
|
111
|
+
* @requirements 2.2
|
|
112
|
+
*/
|
|
113
|
+
hash?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Detected programming language
|
|
116
|
+
* Determined from file extension
|
|
117
|
+
*/
|
|
118
|
+
language?: Language;
|
|
119
|
+
/** Whether the file is a symlink */
|
|
120
|
+
isSymlink: boolean;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Information about a scanned directory
|
|
124
|
+
*/
|
|
125
|
+
export interface DirectoryInfo {
|
|
126
|
+
/** Absolute path to the directory */
|
|
127
|
+
path: string;
|
|
128
|
+
/** Path relative to the scan root directory */
|
|
129
|
+
relativePath: string;
|
|
130
|
+
/** Directory name */
|
|
131
|
+
name: string;
|
|
132
|
+
/** Number of files directly in this directory (not recursive) */
|
|
133
|
+
fileCount: number;
|
|
134
|
+
/** Number of subdirectories directly in this directory */
|
|
135
|
+
subdirectoryCount: number;
|
|
136
|
+
/** Depth from the root directory (0 = root) */
|
|
137
|
+
depth: number;
|
|
138
|
+
/** Whether the directory is a symlink */
|
|
139
|
+
isSymlink: boolean;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Statistics about a completed scan
|
|
143
|
+
*/
|
|
144
|
+
export interface ScanStats {
|
|
145
|
+
/** Total number of files found */
|
|
146
|
+
totalFiles: number;
|
|
147
|
+
/** Total number of directories traversed */
|
|
148
|
+
totalDirectories: number;
|
|
149
|
+
/** Total size of all files in bytes */
|
|
150
|
+
totalSize: number;
|
|
151
|
+
/** Scan duration in milliseconds */
|
|
152
|
+
duration: number;
|
|
153
|
+
/** Number of files skipped due to ignore patterns */
|
|
154
|
+
skippedByIgnore: number;
|
|
155
|
+
/** Number of files skipped due to size limits */
|
|
156
|
+
skippedBySize: number;
|
|
157
|
+
/** Number of files that caused errors */
|
|
158
|
+
errorCount: number;
|
|
159
|
+
/** Breakdown of files by extension */
|
|
160
|
+
filesByExtension: Record<string, number>;
|
|
161
|
+
/** Breakdown of files by language */
|
|
162
|
+
filesByLanguage: Record<string, number>;
|
|
163
|
+
/** Maximum directory depth reached */
|
|
164
|
+
maxDepthReached: number;
|
|
165
|
+
/** Timestamp when scan started */
|
|
166
|
+
startTime: Date;
|
|
167
|
+
/** Timestamp when scan completed */
|
|
168
|
+
endTime: Date;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Error information for files that couldn't be scanned
|
|
172
|
+
*/
|
|
173
|
+
export interface ScanError {
|
|
174
|
+
/** Path to the file or directory that caused the error */
|
|
175
|
+
path: string;
|
|
176
|
+
/** Error message */
|
|
177
|
+
message: string;
|
|
178
|
+
/** Error code (e.g., 'ENOENT', 'EACCES', 'ELOOP') */
|
|
179
|
+
code?: string;
|
|
180
|
+
/** Type of error */
|
|
181
|
+
type: ScanErrorType;
|
|
182
|
+
/** Stack trace (if available) */
|
|
183
|
+
stack?: string;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Types of scan errors
|
|
187
|
+
*/
|
|
188
|
+
export type ScanErrorType = 'permission_denied' | 'not_found' | 'symlink_loop' | 'read_error' | 'hash_error' | 'unknown';
|
|
189
|
+
/**
|
|
190
|
+
* Progress callback for long-running scans
|
|
191
|
+
*/
|
|
192
|
+
export type ScanProgressCallback = (progress: ScanProgress) => void;
|
|
193
|
+
/**
|
|
194
|
+
* Progress information during a scan
|
|
195
|
+
*/
|
|
196
|
+
export interface ScanProgress {
|
|
197
|
+
/** Current phase of the scan */
|
|
198
|
+
phase: 'discovering' | 'scanning' | 'hashing' | 'complete';
|
|
199
|
+
/** Number of files processed so far */
|
|
200
|
+
filesProcessed: number;
|
|
201
|
+
/** Total files discovered (may increase during discovery phase) */
|
|
202
|
+
totalFiles: number;
|
|
203
|
+
/** Current file being processed */
|
|
204
|
+
currentFile?: string;
|
|
205
|
+
/** Estimated percentage complete (0-100) */
|
|
206
|
+
percentComplete: number;
|
|
207
|
+
/** Elapsed time in milliseconds */
|
|
208
|
+
elapsedMs: number;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Filter function for custom file filtering
|
|
212
|
+
*/
|
|
213
|
+
export type FileFilter = (file: FileInfo) => boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Filter function for custom directory filtering
|
|
216
|
+
*/
|
|
217
|
+
export type DirectoryFilter = (dir: DirectoryInfo) => boolean;
|
|
218
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scanner/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB,oCAAoC;IACpC,WAAW,EAAE,aAAa,EAAE,CAAC;IAE7B,gCAAgC;IAChC,KAAK,EAAE,SAAS,CAAC;IAEjB,yCAAyC;IACzC,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,OAAO,EAAE,WAAW,CAAC;IAErB,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAElB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,KAAK,EAAE,IAAI,CAAC;IAEZ,mCAAmC;IACnC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IAEb,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IAErB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAElB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,CAAC;IAE1B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IAEd,yCAAyC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IAEzB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IAEjB,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;IAExB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IAEtB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IAExB,kCAAkC;IAClC,SAAS,EAAE,IAAI,CAAC;IAEhB,oCAAoC;IACpC,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,IAAI,EAAE,aAAa,CAAC;IAEpB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,WAAW,GACX,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,KAAK,EAAE,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAE3D,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IAEvB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scanner type definitions
|
|
3
|
+
*
|
|
4
|
+
* Provides types for file system scanning, including options, results,
|
|
5
|
+
* file/directory information, statistics, and error handling.
|
|
6
|
+
*
|
|
7
|
+
* @requirements 2.1 - Scanner SHALL traverse directory structures respecting .gitignore and .driftignore patterns
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/scanner/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Pool - Parallel file processing with configurable concurrency
|
|
3
|
+
*
|
|
4
|
+
* Provides a task queue-based worker pool for parallel file processing,
|
|
5
|
+
* with support for configurable worker count, task distribution,
|
|
6
|
+
* error handling, and graceful shutdown.
|
|
7
|
+
*
|
|
8
|
+
* @requirements 2.6 - THE Scanner SHALL process files in parallel using worker threads
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from 'node:events';
|
|
11
|
+
/**
|
|
12
|
+
* Options for configuring the worker pool
|
|
13
|
+
*/
|
|
14
|
+
export interface WorkerPoolOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Minimum number of workers to maintain
|
|
17
|
+
* @default 1
|
|
18
|
+
*/
|
|
19
|
+
minWorkers?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Maximum number of workers (concurrent tasks)
|
|
22
|
+
* @default Number of CPU cores
|
|
23
|
+
*/
|
|
24
|
+
maxWorkers?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Timeout for individual tasks in milliseconds
|
|
27
|
+
* @default 30000 (30 seconds)
|
|
28
|
+
*/
|
|
29
|
+
taskTimeout?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum number of retries for failed tasks
|
|
32
|
+
* @default 2
|
|
33
|
+
*/
|
|
34
|
+
maxRetries?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Whether to enable task result caching
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
enableCaching?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Maximum size of the task queue (0 = unlimited)
|
|
42
|
+
* @default 0
|
|
43
|
+
*/
|
|
44
|
+
maxQueueSize?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Status of a task in the worker pool
|
|
48
|
+
*/
|
|
49
|
+
export type TaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled' | 'timeout';
|
|
50
|
+
/**
|
|
51
|
+
* Represents a task to be processed by the worker pool
|
|
52
|
+
*/
|
|
53
|
+
export interface Task<TInput, TOutput> {
|
|
54
|
+
/** Unique identifier for the task */
|
|
55
|
+
id: string;
|
|
56
|
+
/** Input data for the task */
|
|
57
|
+
input: TInput;
|
|
58
|
+
/** Current status of the task */
|
|
59
|
+
status: TaskStatus;
|
|
60
|
+
/** Number of retry attempts made */
|
|
61
|
+
retries: number;
|
|
62
|
+
/** Timestamp when the task was created */
|
|
63
|
+
createdAt: Date;
|
|
64
|
+
/** Timestamp when the task started processing */
|
|
65
|
+
startedAt?: Date;
|
|
66
|
+
/** Timestamp when the task completed */
|
|
67
|
+
completedAt?: Date;
|
|
68
|
+
/** Result of the task (if completed successfully) */
|
|
69
|
+
result?: TOutput;
|
|
70
|
+
/** Error message (if failed) */
|
|
71
|
+
error?: string;
|
|
72
|
+
/** Priority (higher = processed first) */
|
|
73
|
+
priority: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Result of a task execution
|
|
77
|
+
*/
|
|
78
|
+
export interface TaskResult<TOutput> {
|
|
79
|
+
/** Task ID */
|
|
80
|
+
taskId: string;
|
|
81
|
+
/** Whether the task succeeded */
|
|
82
|
+
success: boolean;
|
|
83
|
+
/** Result data (if successful) */
|
|
84
|
+
result?: TOutput;
|
|
85
|
+
/** Error message (if failed) */
|
|
86
|
+
error?: string;
|
|
87
|
+
/** Execution duration in milliseconds */
|
|
88
|
+
duration: number;
|
|
89
|
+
/** Number of retries attempted */
|
|
90
|
+
retries: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Statistics about the worker pool
|
|
94
|
+
*/
|
|
95
|
+
export interface WorkerPoolStats {
|
|
96
|
+
/** Number of tasks currently in the queue */
|
|
97
|
+
queuedTasks: number;
|
|
98
|
+
/** Number of tasks currently being processed */
|
|
99
|
+
activeTasks: number;
|
|
100
|
+
/** Total number of tasks completed successfully */
|
|
101
|
+
completedTasks: number;
|
|
102
|
+
/** Total number of tasks that failed */
|
|
103
|
+
failedTasks: number;
|
|
104
|
+
/** Total number of tasks cancelled */
|
|
105
|
+
cancelledTasks: number;
|
|
106
|
+
/** Total number of tasks that timed out */
|
|
107
|
+
timedOutTasks: number;
|
|
108
|
+
/** Average task duration in milliseconds */
|
|
109
|
+
averageDuration: number;
|
|
110
|
+
/** Current number of active workers */
|
|
111
|
+
activeWorkers: number;
|
|
112
|
+
/** Maximum workers configured */
|
|
113
|
+
maxWorkers: number;
|
|
114
|
+
/** Whether the pool is shutting down */
|
|
115
|
+
isShuttingDown: boolean;
|
|
116
|
+
/** Whether the pool is paused */
|
|
117
|
+
isPaused: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Events emitted by the worker pool
|
|
121
|
+
*/
|
|
122
|
+
export interface WorkerPoolEvents<TInput, TOutput> {
|
|
123
|
+
/** Emitted when a task is added to the queue */
|
|
124
|
+
taskQueued: (task: Task<TInput, TOutput>) => void;
|
|
125
|
+
/** Emitted when a task starts processing */
|
|
126
|
+
taskStarted: (task: Task<TInput, TOutput>) => void;
|
|
127
|
+
/** Emitted when a task completes successfully */
|
|
128
|
+
taskCompleted: (task: Task<TInput, TOutput>, result: TOutput) => void;
|
|
129
|
+
/** Emitted when a task fails */
|
|
130
|
+
taskFailed: (task: Task<TInput, TOutput>, error: Error) => void;
|
|
131
|
+
/** Emitted when a task is retried */
|
|
132
|
+
taskRetried: (task: Task<TInput, TOutput>, attempt: number) => void;
|
|
133
|
+
/** Emitted when a task times out */
|
|
134
|
+
taskTimeout: (task: Task<TInput, TOutput>) => void;
|
|
135
|
+
/** Emitted when the pool is drained (all tasks complete) */
|
|
136
|
+
drained: () => void;
|
|
137
|
+
/** Emitted when the pool is idle (no tasks and no active workers) */
|
|
138
|
+
idle: () => void;
|
|
139
|
+
/** Emitted when an error occurs in the pool */
|
|
140
|
+
error: (error: Error) => void;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Type for the task processor function
|
|
144
|
+
*/
|
|
145
|
+
export type TaskProcessor<TInput, TOutput> = (input: TInput) => Promise<TOutput>;
|
|
146
|
+
/**
|
|
147
|
+
* WorkerPool class for parallel task processing
|
|
148
|
+
*
|
|
149
|
+
* Implements a configurable worker pool that processes tasks in parallel
|
|
150
|
+
* with support for task queuing, retries, timeouts, and graceful shutdown.
|
|
151
|
+
*
|
|
152
|
+
* @requirements 2.6 - Parallel file processing with configurable worker count
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* const pool = new WorkerPool<string, ParseResult>({
|
|
157
|
+
* maxWorkers: 4,
|
|
158
|
+
* taskTimeout: 10000,
|
|
159
|
+
* });
|
|
160
|
+
*
|
|
161
|
+
* pool.setProcessor(async (filePath) => {
|
|
162
|
+
* return await parseFile(filePath);
|
|
163
|
+
* });
|
|
164
|
+
*
|
|
165
|
+
* const results = await pool.processBatch(['file1.ts', 'file2.ts']);
|
|
166
|
+
* await pool.shutdown();
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export declare class WorkerPool<TInput, TOutput> extends EventEmitter {
|
|
170
|
+
private options;
|
|
171
|
+
private taskQueue;
|
|
172
|
+
private activeTasks;
|
|
173
|
+
private completedTasks;
|
|
174
|
+
private processor;
|
|
175
|
+
private taskIdCounter;
|
|
176
|
+
private isShuttingDown;
|
|
177
|
+
private isPaused;
|
|
178
|
+
private totalDuration;
|
|
179
|
+
private completedCount;
|
|
180
|
+
private failedCount;
|
|
181
|
+
private cancelledCount;
|
|
182
|
+
private timedOutCount;
|
|
183
|
+
private taskTimeouts;
|
|
184
|
+
private cache;
|
|
185
|
+
constructor(options?: WorkerPoolOptions);
|
|
186
|
+
/**
|
|
187
|
+
* Set the task processor function
|
|
188
|
+
*
|
|
189
|
+
* @param processor - Function that processes a single task input
|
|
190
|
+
*/
|
|
191
|
+
setProcessor(processor: TaskProcessor<TInput, TOutput>): void;
|
|
192
|
+
/**
|
|
193
|
+
* Add a single task to the queue
|
|
194
|
+
*
|
|
195
|
+
* @param input - Input data for the task
|
|
196
|
+
* @param priority - Task priority (higher = processed first)
|
|
197
|
+
* @returns The created task
|
|
198
|
+
*/
|
|
199
|
+
addTask(input: TInput, priority?: number): Task<TInput, TOutput>;
|
|
200
|
+
/**
|
|
201
|
+
* Add multiple tasks to the queue
|
|
202
|
+
*
|
|
203
|
+
* @param inputs - Array of input data for tasks
|
|
204
|
+
* @param priority - Priority for all tasks
|
|
205
|
+
* @returns Array of created tasks
|
|
206
|
+
*/
|
|
207
|
+
addTasks(inputs: TInput[], priority?: number): Task<TInput, TOutput>[];
|
|
208
|
+
/**
|
|
209
|
+
* Process a batch of inputs and wait for all results
|
|
210
|
+
*
|
|
211
|
+
* @param inputs - Array of input data to process
|
|
212
|
+
* @param priority - Priority for all tasks
|
|
213
|
+
* @returns Promise resolving to array of task results
|
|
214
|
+
*/
|
|
215
|
+
processBatch(inputs: TInput[], priority?: number): Promise<TaskResult<TOutput>[]>;
|
|
216
|
+
/**
|
|
217
|
+
* Cancel a specific task
|
|
218
|
+
*
|
|
219
|
+
* @param taskId - ID of the task to cancel
|
|
220
|
+
* @returns True if the task was cancelled
|
|
221
|
+
*/
|
|
222
|
+
cancelTask(taskId: string): boolean;
|
|
223
|
+
/**
|
|
224
|
+
* Cancel all pending tasks
|
|
225
|
+
*
|
|
226
|
+
* @returns Number of tasks cancelled
|
|
227
|
+
*/
|
|
228
|
+
cancelAllPending(): number;
|
|
229
|
+
/**
|
|
230
|
+
* Pause task processing
|
|
231
|
+
*/
|
|
232
|
+
pause(): void;
|
|
233
|
+
/**
|
|
234
|
+
* Resume task processing
|
|
235
|
+
*/
|
|
236
|
+
resume(): void;
|
|
237
|
+
/**
|
|
238
|
+
* Get the current status of a task
|
|
239
|
+
*
|
|
240
|
+
* @param taskId - ID of the task
|
|
241
|
+
* @returns Task or undefined if not found
|
|
242
|
+
*/
|
|
243
|
+
getTask(taskId: string): Task<TInput, TOutput> | undefined;
|
|
244
|
+
/**
|
|
245
|
+
* Get current worker pool statistics
|
|
246
|
+
*
|
|
247
|
+
* @returns WorkerPoolStats object
|
|
248
|
+
*/
|
|
249
|
+
getStats(): WorkerPoolStats;
|
|
250
|
+
/**
|
|
251
|
+
* Wait for all current tasks to complete
|
|
252
|
+
*
|
|
253
|
+
* @returns Promise that resolves when all tasks are done
|
|
254
|
+
*/
|
|
255
|
+
drain(): Promise<void>;
|
|
256
|
+
/**
|
|
257
|
+
* Gracefully shutdown the worker pool
|
|
258
|
+
*
|
|
259
|
+
* Waits for active tasks to complete, cancels pending tasks,
|
|
260
|
+
* and cleans up resources.
|
|
261
|
+
*
|
|
262
|
+
* @param timeout - Maximum time to wait for active tasks (ms)
|
|
263
|
+
* @returns Promise that resolves when shutdown is complete
|
|
264
|
+
*/
|
|
265
|
+
shutdown(timeout?: number): Promise<void>;
|
|
266
|
+
/**
|
|
267
|
+
* Clear the result cache
|
|
268
|
+
*/
|
|
269
|
+
clearCache(): void;
|
|
270
|
+
/**
|
|
271
|
+
* Get the number of items in the cache
|
|
272
|
+
*/
|
|
273
|
+
getCacheSize(): number;
|
|
274
|
+
/**
|
|
275
|
+
* Process tasks from the queue
|
|
276
|
+
*/
|
|
277
|
+
private processQueue;
|
|
278
|
+
/**
|
|
279
|
+
* Process a single task
|
|
280
|
+
*/
|
|
281
|
+
private processTask;
|
|
282
|
+
/**
|
|
283
|
+
* Complete a task successfully
|
|
284
|
+
*/
|
|
285
|
+
private completeTask;
|
|
286
|
+
/**
|
|
287
|
+
* Handle a task error
|
|
288
|
+
*/
|
|
289
|
+
private handleTaskError;
|
|
290
|
+
/**
|
|
291
|
+
* Handle a task timeout
|
|
292
|
+
*/
|
|
293
|
+
private handleTaskTimeout;
|
|
294
|
+
/**
|
|
295
|
+
* Generate a unique task ID
|
|
296
|
+
*/
|
|
297
|
+
private generateTaskId;
|
|
298
|
+
/**
|
|
299
|
+
* Generate a cache key for an input
|
|
300
|
+
*/
|
|
301
|
+
private getCacheKey;
|
|
302
|
+
/**
|
|
303
|
+
* Convert a task to a TaskResult
|
|
304
|
+
*/
|
|
305
|
+
private taskToResult;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Create a worker pool for file processing
|
|
309
|
+
*
|
|
310
|
+
* Convenience function to create a worker pool configured for file processing.
|
|
311
|
+
*
|
|
312
|
+
* @param processor - Function to process each file
|
|
313
|
+
* @param options - Worker pool options
|
|
314
|
+
* @returns Configured WorkerPool instance
|
|
315
|
+
*/
|
|
316
|
+
export declare function createFileProcessorPool<TOutput>(processor: TaskProcessor<string, TOutput>, options?: WorkerPoolOptions): WorkerPool<string, TOutput>;
|
|
317
|
+
//# sourceMappingURL=worker-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../src/scanner/worker-pool.ts"],"names":[],"mappings":"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"}
|