@milo4jo/contextkit 0.5.0 → 0.5.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/commands/cache.d.ts +3 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +50 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/select.d.ts.map +1 -1
- package/dist/commands/select.js +2 -0
- package/dist/commands/select.js.map +1 -1
- package/dist/db/index.d.ts +47 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +98 -0
- package/dist/db/index.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/indexer/chunker.d.ts +15 -2
- package/dist/indexer/chunker.d.ts.map +1 -1
- package/dist/indexer/chunker.js +222 -3
- package/dist/indexer/chunker.js.map +1 -1
- package/dist/parsers/index.d.ts +45 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +71 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/typescript.d.ts +43 -0
- package/dist/parsers/typescript.d.ts.map +1 -0
- package/dist/parsers/typescript.js +306 -0
- package/dist/parsers/typescript.js.map +1 -0
- package/dist/selector/index.d.ts +4 -0
- package/dist/selector/index.d.ts.map +1 -1
- package/dist/selector/index.js +34 -1
- package/dist/selector/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../src/indexer/chunker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../src/indexer/chunker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAqB,MAAM,qBAAqB,CAAC;AAsC7E,MAAM,eAAe,GAAiB;IACpC,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,qDAAqD;AACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,QAAgB,EAChB,QAAgB,EAChB,SAAiB,EACjB,OAAe;IAEf,MAAM,IAAI,GAAG,GAAG,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,SAAS,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAe,EAAE,SAAiB,EAAE,OAAe;IACvE,uBAAuB;IACvB,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,kDAAkD;IACvE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAoB,EAAE,OAAqB;IACnE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAEhC,wBAAwB;IACxB,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAE/D,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,oCAAoC;QACpC,OAAO,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAE1C,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAChE,CAAC;IAEF,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACjD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,iEAAiE;YACjE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACrF,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3E,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC9C,OAAO,WAAW,GAAG,aAAa,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QAC1C,8DAA8D;QAC9D,IAAI,QAAQ,CAAC,SAAS,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACpF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YAE1C,IAAI,SAAS,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,iDAAiD;gBACjD,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,eAAe,CACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,eAAe,GAAG,CAAC,EACnB,QAAQ,CAAC,SAAS,GAAG,CAAC,CACvB;wBACD,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;wBAC3B,OAAO,EAAE,UAAU;wBACnB,SAAS,EAAE,eAAe,GAAG,CAAC;wBAC9B,OAAO,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC;wBAC/B,MAAM,EAAE,SAAS;wBACjB,SAAS,EAAE,OAAO;wBAClB,QAAQ,EAAE,gBAAgB;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACrF,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC3E,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;oBAC9C,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;wBACjC,iDAAiD;wBACjD,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/E,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,WAAW,GAAG,aAAa,EAAE,CAAC;gBAChC,uDAAuD;gBACvD,2CAA2C;gBAC3C,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC9D,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpC,+DAA+D;QAC/D,IAAI,MAAM,GAAG,aAAa,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,cAAc,CAC9B,IAAI,EACJ,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,OAAO,EAChB,OAAO,EACP,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,IAAI,CACd,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;gBAC3F,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,OAAO;gBACP,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM;gBACN,SAAS,EAAE,QAAQ,CAAC,IAAI;gBACxB,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,sDAAsD;IACtD,IAAI,eAAe,GAAG,UAAU,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;QAEpD,IAAI,cAAc,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,GAAG,CAAC,EAAE,UAAU,CAAC;gBACtF,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,OAAO,EAAE,eAAe;gBACxB,SAAS,EAAE,eAAe,GAAG,CAAC;gBAC9B,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE,OAAO;gBAClB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,IAAoB,EACpB,SAAiB,EACjB,OAAe,EACf,OAAqB,EACrB,QAAsB,EACtB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAErD,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACjC,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAE5C,IAAI,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAEhE,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAC;gBACrF,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,OAAO;gBACP,SAAS,EAAE,gBAAgB;gBAC3B,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,aAAa;gBACrB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,GAAG,QAAQ,UAAU,OAAO,GAAG;aAC1C,CAAC,CAAC;YAEH,OAAO,EAAE,CAAC;YAEV,oBAAoB;YACpB,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1F,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;gBAC1D,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAClC,aAAa,IAAI,iBAAiB,CAAC;YACrC,CAAC;YAED,YAAY,GAAG,YAAY,CAAC;YAC5B,aAAa,GAAG,aAAa,CAAC;YAC9B,gBAAgB,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QAC5D,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,aAAa,IAAI,UAAU,CAAC;IAC9B,CAAC;IAED,aAAa;IACb,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAC;YACrF,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,OAAO;YACP,SAAS,EAAE,gBAAgB;YAC3B,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;YAC5B,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ;SACnE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAoB,EAAE,OAAqB;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAE5C,6DAA6D;QAC7D,IAAI,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC;gBACzE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,OAAO;gBACP,SAAS;gBACT,OAAO;gBACP,MAAM,EAAE,aAAa;gBACrB,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;YAEH,uDAAuD;YACvD,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1F,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;gBAC1D,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAClC,aAAa,IAAI,iBAAiB,CAAC;YACrC,CAAC;YAED,gCAAgC;YAChC,YAAY,GAAG,YAAY,CAAC;YAC5B,aAAa,GAAG,aAAa,CAAC;YAC9B,SAAS;gBACP,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QAC1F,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,aAAa,IAAI,UAAU,CAAC;IAC9B,CAAC;IAED,8BAA8B;IAC9B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC;YACzE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,OAAO;YACP,SAAS;YACT,OAAO;YACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;YAC5B,SAAS,EAAE,aAAa;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAoB,EAAE,UAAwB,eAAe;IACrF,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAEhD,mEAAmE;IACnE,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,oCAAoC;IACpC,OAAO,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAuB,EACvB,UAAwB,eAAe;IAEvC,MAAM,SAAS,GAAY,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser Registry
|
|
3
|
+
*
|
|
4
|
+
* Central registry for language-specific parsers.
|
|
5
|
+
* Determines which parser to use based on file extension.
|
|
6
|
+
*/
|
|
7
|
+
import { isTypeScriptOrJavaScript, type ParseResult, type CodeBoundary, type CodeUnitType } from './typescript.js';
|
|
8
|
+
export { type ParseResult, type CodeBoundary, type CodeUnitType };
|
|
9
|
+
/** Parser function signature */
|
|
10
|
+
export type ParserFn = (content: string, filePath?: string) => ParseResult;
|
|
11
|
+
/**
|
|
12
|
+
* Get the parser for a file based on its extension.
|
|
13
|
+
*
|
|
14
|
+
* @param filePath - Path to the file
|
|
15
|
+
* @returns Parser function or undefined if no parser is available
|
|
16
|
+
*/
|
|
17
|
+
export declare function getParser(filePath: string): ParserFn | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a file can be parsed by any registered parser.
|
|
20
|
+
*
|
|
21
|
+
* @param filePath - Path to the file
|
|
22
|
+
* @returns True if a parser is available for this file type
|
|
23
|
+
*/
|
|
24
|
+
export declare function canParse(filePath: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a file and extract code boundaries.
|
|
27
|
+
*
|
|
28
|
+
* @param content - File content
|
|
29
|
+
* @param filePath - Path to the file (used to determine parser)
|
|
30
|
+
* @returns Parse result with boundaries, or failure result if no parser available
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseFile(content: string, filePath: string): ParseResult;
|
|
33
|
+
/**
|
|
34
|
+
* Register a custom parser for a file extension.
|
|
35
|
+
*
|
|
36
|
+
* @param extension - File extension (without dot)
|
|
37
|
+
* @param parser - Parser function
|
|
38
|
+
*/
|
|
39
|
+
export declare function registerParser(extension: string, parser: ParserFn): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get list of supported file extensions.
|
|
42
|
+
*/
|
|
43
|
+
export declare function getSupportedExtensions(): string[];
|
|
44
|
+
export { isTypeScriptOrJavaScript };
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,CAAC;AAElE,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;AAW3E;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAYxE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,CAExE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAGD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser Registry
|
|
3
|
+
*
|
|
4
|
+
* Central registry for language-specific parsers.
|
|
5
|
+
* Determines which parser to use based on file extension.
|
|
6
|
+
*/
|
|
7
|
+
import { parseTypeScript, isTypeScriptOrJavaScript, } from './typescript.js';
|
|
8
|
+
/** Registered parsers mapped by extension */
|
|
9
|
+
const parsers = new Map();
|
|
10
|
+
// Register TypeScript/JavaScript parser for all supported extensions
|
|
11
|
+
const tsExtensions = ['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'mts', 'cts'];
|
|
12
|
+
for (const ext of tsExtensions) {
|
|
13
|
+
parsers.set(ext, parseTypeScript);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get the parser for a file based on its extension.
|
|
17
|
+
*
|
|
18
|
+
* @param filePath - Path to the file
|
|
19
|
+
* @returns Parser function or undefined if no parser is available
|
|
20
|
+
*/
|
|
21
|
+
export function getParser(filePath) {
|
|
22
|
+
const ext = filePath.toLowerCase().split('.').pop();
|
|
23
|
+
if (!ext)
|
|
24
|
+
return undefined;
|
|
25
|
+
return parsers.get(ext);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if a file can be parsed by any registered parser.
|
|
29
|
+
*
|
|
30
|
+
* @param filePath - Path to the file
|
|
31
|
+
* @returns True if a parser is available for this file type
|
|
32
|
+
*/
|
|
33
|
+
export function canParse(filePath) {
|
|
34
|
+
return getParser(filePath) !== undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parse a file and extract code boundaries.
|
|
38
|
+
*
|
|
39
|
+
* @param content - File content
|
|
40
|
+
* @param filePath - Path to the file (used to determine parser)
|
|
41
|
+
* @returns Parse result with boundaries, or failure result if no parser available
|
|
42
|
+
*/
|
|
43
|
+
export function parseFile(content, filePath) {
|
|
44
|
+
const parser = getParser(filePath);
|
|
45
|
+
if (!parser) {
|
|
46
|
+
return {
|
|
47
|
+
success: false,
|
|
48
|
+
boundaries: [],
|
|
49
|
+
error: `No parser available for file type: ${filePath}`,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return parser(content, filePath);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Register a custom parser for a file extension.
|
|
56
|
+
*
|
|
57
|
+
* @param extension - File extension (without dot)
|
|
58
|
+
* @param parser - Parser function
|
|
59
|
+
*/
|
|
60
|
+
export function registerParser(extension, parser) {
|
|
61
|
+
parsers.set(extension.toLowerCase(), parser);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get list of supported file extensions.
|
|
65
|
+
*/
|
|
66
|
+
export function getSupportedExtensions() {
|
|
67
|
+
return Array.from(parsers.keys());
|
|
68
|
+
}
|
|
69
|
+
// Re-export utility functions
|
|
70
|
+
export { isTypeScriptOrJavaScript };
|
|
71
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,eAAe,EACf,wBAAwB,GAIzB,MAAM,iBAAiB,CAAC;AAOzB,6CAA6C;AAC7C,MAAM,OAAO,GAA0B,IAAI,GAAG,EAAE,CAAC;AAEjD,qEAAqE;AACrE,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5E,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,QAAgB;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,sCAAsC,QAAQ,EAAE;SACxD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAgB;IAChE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,8BAA8B;AAC9B,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript/JavaScript AST Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses TS/JS files to identify code boundaries for intelligent chunking.
|
|
5
|
+
* Uses acorn for parsing JavaScript (ignores TypeScript-specific syntax).
|
|
6
|
+
*/
|
|
7
|
+
/** Type of code unit identified by the parser */
|
|
8
|
+
export type CodeUnitType = 'function' | 'class' | 'method' | 'constant' | 'block';
|
|
9
|
+
/** A code boundary identified by the parser */
|
|
10
|
+
export interface CodeBoundary {
|
|
11
|
+
/** Type of code unit */
|
|
12
|
+
type: CodeUnitType;
|
|
13
|
+
/** Name of the unit (function name, class name, etc.) */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Start line (1-indexed) */
|
|
16
|
+
startLine: number;
|
|
17
|
+
/** End line (1-indexed, inclusive) */
|
|
18
|
+
endLine: number;
|
|
19
|
+
/** Whether this is exported */
|
|
20
|
+
exported: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** Result of parsing a file */
|
|
23
|
+
export interface ParseResult {
|
|
24
|
+
/** Whether parsing succeeded */
|
|
25
|
+
success: boolean;
|
|
26
|
+
/** Identified code boundaries */
|
|
27
|
+
boundaries: CodeBoundary[];
|
|
28
|
+
/** Error message if parsing failed */
|
|
29
|
+
error?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parse TypeScript/JavaScript code and extract code boundaries.
|
|
33
|
+
*
|
|
34
|
+
* @param content - The file content to parse
|
|
35
|
+
* @param _filePath - Path to the file (for error messages, unused currently)
|
|
36
|
+
* @returns Parse result with boundaries or error
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseTypeScript(content: string, _filePath?: string): ParseResult;
|
|
39
|
+
/**
|
|
40
|
+
* Check if a file extension is supported by this parser.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isTypeScriptOrJavaScript(filePath: string): boolean;
|
|
43
|
+
//# sourceMappingURL=typescript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/parsers/typescript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAElF,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0HD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAsPhF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGlE"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript/JavaScript AST Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses TS/JS files to identify code boundaries for intelligent chunking.
|
|
5
|
+
* Uses acorn for parsing JavaScript (ignores TypeScript-specific syntax).
|
|
6
|
+
*/
|
|
7
|
+
import * as acorn from 'acorn';
|
|
8
|
+
/**
|
|
9
|
+
* Strip TypeScript-specific syntax to make the code parseable by acorn.
|
|
10
|
+
* This is a simple preprocessing step that handles common TS patterns.
|
|
11
|
+
*/
|
|
12
|
+
function stripTypeScript(code) {
|
|
13
|
+
// Remove type annotations: `: Type`, `: Type[]`, `: Type<Generic>`
|
|
14
|
+
// This regex handles common cases but isn't perfect for all TS syntax
|
|
15
|
+
let stripped = code;
|
|
16
|
+
// Remove type imports: import type { ... } from '...'
|
|
17
|
+
stripped = stripped.replace(/import\s+type\s+\{[^}]*\}\s+from\s+['"][^'"]*['"];?/g, '');
|
|
18
|
+
stripped = stripped.replace(/import\s+type\s+\w+\s+from\s+['"][^'"]*['"];?/g, '');
|
|
19
|
+
// Remove "type" keyword in imports: import { type Foo, Bar } from '...'
|
|
20
|
+
stripped = stripped.replace(/,\s*type\s+\w+/g, '');
|
|
21
|
+
stripped = stripped.replace(/\{\s*type\s+\w+\s*,/g, '{');
|
|
22
|
+
stripped = stripped.replace(/\{\s*type\s+\w+\s*\}/g, '{}');
|
|
23
|
+
// Remove interface declarations
|
|
24
|
+
stripped = stripped.replace(/interface\s+\w+(?:<[^>]*>)?\s*(?:extends[^{]*)?\{[^}]*\}/gs, '');
|
|
25
|
+
// Remove type aliases
|
|
26
|
+
stripped = stripped.replace(/type\s+\w+(?:<[^>]*>)?\s*=\s*[^;]+;/g, '');
|
|
27
|
+
// Remove type assertions: as Type, as const
|
|
28
|
+
stripped = stripped.replace(/\s+as\s+(?:const|\w+(?:<[^>]*>)?)/g, '');
|
|
29
|
+
// Remove generic type parameters from functions/classes: <T, U>
|
|
30
|
+
stripped = stripped.replace(/<[^<>()]*(?:<[^<>]*>[^<>()]*)*>\s*(?=\()/g, '');
|
|
31
|
+
// Remove type annotations from parameters: (x: Type) => (x)
|
|
32
|
+
// This is tricky - we need to be careful not to break the code
|
|
33
|
+
stripped = stripped.replace(/:\s*\w+(?:<[^>]*>)?(?:\[\])?(?:\s*\|\s*\w+(?:<[^>]*>)?(?:\[\])?)*(?=\s*[,)=])/g, '');
|
|
34
|
+
// Remove return type annotations: ): Type {
|
|
35
|
+
stripped = stripped.replace(/\):\s*\w+(?:<[^>]*>)?(?:\[\])?(?:\s*\|\s*\w+(?:<[^>]*>)?(?:\[\])?)*\s*(?=\{|=>)/g, ') ');
|
|
36
|
+
// Remove non-null assertions: foo!.bar -> foo.bar
|
|
37
|
+
stripped = stripped.replace(/!(?=\.|\[)/g, '');
|
|
38
|
+
// Remove declare keyword
|
|
39
|
+
stripped = stripped.replace(/declare\s+/g, '');
|
|
40
|
+
// Remove readonly keyword
|
|
41
|
+
stripped = stripped.replace(/readonly\s+/g, '');
|
|
42
|
+
// Remove abstract keyword
|
|
43
|
+
stripped = stripped.replace(/abstract\s+/g, '');
|
|
44
|
+
// Remove public/private/protected modifiers
|
|
45
|
+
stripped = stripped.replace(/(?:public|private|protected)\s+/g, '');
|
|
46
|
+
// Remove implements clause
|
|
47
|
+
stripped = stripped.replace(/implements\s+[\w,\s<>]+(?=\s*\{)/g, '');
|
|
48
|
+
return stripped;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Parse TypeScript/JavaScript code and extract code boundaries.
|
|
52
|
+
*
|
|
53
|
+
* @param content - The file content to parse
|
|
54
|
+
* @param _filePath - Path to the file (for error messages, unused currently)
|
|
55
|
+
* @returns Parse result with boundaries or error
|
|
56
|
+
*/
|
|
57
|
+
export function parseTypeScript(content, _filePath) {
|
|
58
|
+
const boundaries = [];
|
|
59
|
+
// Try to parse as JavaScript first, then try stripping TypeScript syntax
|
|
60
|
+
let ast;
|
|
61
|
+
try {
|
|
62
|
+
ast = acorn.parse(content, {
|
|
63
|
+
ecmaVersion: 'latest',
|
|
64
|
+
sourceType: 'module',
|
|
65
|
+
locations: true,
|
|
66
|
+
allowHashBang: true,
|
|
67
|
+
allowAwaitOutsideFunction: true,
|
|
68
|
+
allowImportExportEverywhere: true,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Try stripping TypeScript syntax and parse again
|
|
73
|
+
try {
|
|
74
|
+
const stripped = stripTypeScript(content);
|
|
75
|
+
ast = acorn.parse(stripped, {
|
|
76
|
+
ecmaVersion: 'latest',
|
|
77
|
+
sourceType: 'module',
|
|
78
|
+
locations: true,
|
|
79
|
+
allowHashBang: true,
|
|
80
|
+
allowAwaitOutsideFunction: true,
|
|
81
|
+
allowImportExportEverywhere: true,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
return {
|
|
86
|
+
success: false,
|
|
87
|
+
boundaries: [],
|
|
88
|
+
error: e instanceof Error ? e.message : 'Parse error',
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Track what's been exported
|
|
93
|
+
const exportedNames = new Set();
|
|
94
|
+
// First pass: collect exports
|
|
95
|
+
for (const node of ast.body) {
|
|
96
|
+
if (node.type === 'ExportNamedDeclaration') {
|
|
97
|
+
const exportNode = node;
|
|
98
|
+
if (exportNode.declaration) {
|
|
99
|
+
const decl = exportNode.declaration;
|
|
100
|
+
if (decl.type === 'FunctionDeclaration') {
|
|
101
|
+
const fn = decl;
|
|
102
|
+
if (fn.id?.name)
|
|
103
|
+
exportedNames.add(fn.id.name);
|
|
104
|
+
}
|
|
105
|
+
else if (decl.type === 'ClassDeclaration') {
|
|
106
|
+
const cls = decl;
|
|
107
|
+
if (cls.id?.name)
|
|
108
|
+
exportedNames.add(cls.id.name);
|
|
109
|
+
}
|
|
110
|
+
else if (decl.type === 'VariableDeclaration') {
|
|
111
|
+
const varDecl = decl;
|
|
112
|
+
for (const declarator of varDecl.declarations) {
|
|
113
|
+
if (declarator.id.type === 'Identifier') {
|
|
114
|
+
exportedNames.add(declarator.id.name);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else if (node.type === 'ExportDefaultDeclaration') {
|
|
121
|
+
exportedNames.add('default');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Second pass: extract boundaries
|
|
125
|
+
for (const node of ast.body) {
|
|
126
|
+
if (!node.loc)
|
|
127
|
+
continue;
|
|
128
|
+
const startLine = node.loc.start.line;
|
|
129
|
+
const endLine = node.loc.end.line;
|
|
130
|
+
if (node.type === 'FunctionDeclaration') {
|
|
131
|
+
const fn = node;
|
|
132
|
+
const name = fn.id?.name || 'anonymous';
|
|
133
|
+
boundaries.push({
|
|
134
|
+
type: 'function',
|
|
135
|
+
name,
|
|
136
|
+
startLine,
|
|
137
|
+
endLine,
|
|
138
|
+
exported: exportedNames.has(name),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
else if (node.type === 'ClassDeclaration') {
|
|
142
|
+
const cls = node;
|
|
143
|
+
const className = cls.id?.name || 'AnonymousClass';
|
|
144
|
+
// Add the class itself
|
|
145
|
+
boundaries.push({
|
|
146
|
+
type: 'class',
|
|
147
|
+
name: className,
|
|
148
|
+
startLine,
|
|
149
|
+
endLine,
|
|
150
|
+
exported: exportedNames.has(className),
|
|
151
|
+
});
|
|
152
|
+
// Also add methods as separate boundaries (for large classes)
|
|
153
|
+
if (cls.body?.body) {
|
|
154
|
+
for (const member of cls.body.body) {
|
|
155
|
+
if (member.type === 'MethodDefinition' && member.loc) {
|
|
156
|
+
const method = member;
|
|
157
|
+
let methodName = 'anonymous';
|
|
158
|
+
if (method.key.type === 'Identifier') {
|
|
159
|
+
methodName = method.key.name;
|
|
160
|
+
}
|
|
161
|
+
boundaries.push({
|
|
162
|
+
type: 'method',
|
|
163
|
+
name: `${className}.${methodName}`,
|
|
164
|
+
startLine: member.loc.start.line,
|
|
165
|
+
endLine: member.loc.end.line,
|
|
166
|
+
exported: false,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else if (node.type === 'VariableDeclaration') {
|
|
173
|
+
const varDecl = node;
|
|
174
|
+
// Only track const declarations (likely to be important exports/configs)
|
|
175
|
+
if (varDecl.kind === 'const') {
|
|
176
|
+
for (const declarator of varDecl.declarations) {
|
|
177
|
+
if (declarator.id.type === 'Identifier') {
|
|
178
|
+
const name = declarator.id.name;
|
|
179
|
+
// Check if it's an arrow function or function expression
|
|
180
|
+
const init = declarator.init;
|
|
181
|
+
const isFunction = init?.type === 'ArrowFunctionExpression' ||
|
|
182
|
+
init?.type === 'FunctionExpression';
|
|
183
|
+
boundaries.push({
|
|
184
|
+
type: isFunction ? 'function' : 'constant',
|
|
185
|
+
name,
|
|
186
|
+
startLine,
|
|
187
|
+
endLine,
|
|
188
|
+
exported: exportedNames.has(name),
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else if (node.type === 'ExportNamedDeclaration') {
|
|
195
|
+
const exportNode = node;
|
|
196
|
+
if (exportNode.declaration) {
|
|
197
|
+
// The declaration inside the export has already been processed above
|
|
198
|
+
// due to our pre-pass. Mark the boundaries as exported.
|
|
199
|
+
const decl = exportNode.declaration;
|
|
200
|
+
if (decl.type === 'FunctionDeclaration') {
|
|
201
|
+
const fn = decl;
|
|
202
|
+
const name = fn.id?.name || 'anonymous';
|
|
203
|
+
boundaries.push({
|
|
204
|
+
type: 'function',
|
|
205
|
+
name,
|
|
206
|
+
startLine,
|
|
207
|
+
endLine,
|
|
208
|
+
exported: true,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
else if (decl.type === 'ClassDeclaration') {
|
|
212
|
+
const cls = decl;
|
|
213
|
+
const className = cls.id?.name || 'AnonymousClass';
|
|
214
|
+
boundaries.push({
|
|
215
|
+
type: 'class',
|
|
216
|
+
name: className,
|
|
217
|
+
startLine,
|
|
218
|
+
endLine,
|
|
219
|
+
exported: true,
|
|
220
|
+
});
|
|
221
|
+
// Add methods
|
|
222
|
+
if (cls.body?.body) {
|
|
223
|
+
for (const member of cls.body.body) {
|
|
224
|
+
if (member.type === 'MethodDefinition' && member.loc) {
|
|
225
|
+
const method = member;
|
|
226
|
+
let methodName = 'anonymous';
|
|
227
|
+
if (method.key.type === 'Identifier') {
|
|
228
|
+
methodName = method.key.name;
|
|
229
|
+
}
|
|
230
|
+
boundaries.push({
|
|
231
|
+
type: 'method',
|
|
232
|
+
name: `${className}.${methodName}`,
|
|
233
|
+
startLine: member.loc.start.line,
|
|
234
|
+
endLine: member.loc.end.line,
|
|
235
|
+
exported: false,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else if (decl.type === 'VariableDeclaration') {
|
|
242
|
+
const varDecl = decl;
|
|
243
|
+
if (varDecl.kind === 'const') {
|
|
244
|
+
for (const declarator of varDecl.declarations) {
|
|
245
|
+
if (declarator.id.type === 'Identifier') {
|
|
246
|
+
const name = declarator.id.name;
|
|
247
|
+
const init = declarator.init;
|
|
248
|
+
const isFunction = init?.type === 'ArrowFunctionExpression' ||
|
|
249
|
+
init?.type === 'FunctionExpression';
|
|
250
|
+
boundaries.push({
|
|
251
|
+
type: isFunction ? 'function' : 'constant',
|
|
252
|
+
name,
|
|
253
|
+
startLine,
|
|
254
|
+
endLine,
|
|
255
|
+
exported: true,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
else if (node.type === 'ExportDefaultDeclaration') {
|
|
264
|
+
const exportDefault = node;
|
|
265
|
+
const decl = exportDefault.declaration;
|
|
266
|
+
let type = 'block';
|
|
267
|
+
let name = 'default';
|
|
268
|
+
if (decl.type === 'FunctionDeclaration' || decl.type === 'FunctionExpression') {
|
|
269
|
+
type = 'function';
|
|
270
|
+
if (decl.id?.name) {
|
|
271
|
+
name = decl.id.name;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
else if (decl.type === 'ClassDeclaration') {
|
|
275
|
+
type = 'class';
|
|
276
|
+
if (decl.id?.name) {
|
|
277
|
+
name = decl.id.name;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else if (decl.type === 'ArrowFunctionExpression') {
|
|
281
|
+
type = 'function';
|
|
282
|
+
}
|
|
283
|
+
boundaries.push({
|
|
284
|
+
type,
|
|
285
|
+
name,
|
|
286
|
+
startLine,
|
|
287
|
+
endLine,
|
|
288
|
+
exported: true,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Sort boundaries by start line
|
|
293
|
+
boundaries.sort((a, b) => a.startLine - b.startLine);
|
|
294
|
+
return {
|
|
295
|
+
success: true,
|
|
296
|
+
boundaries,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Check if a file extension is supported by this parser.
|
|
301
|
+
*/
|
|
302
|
+
export function isTypeScriptOrJavaScript(filePath) {
|
|
303
|
+
const ext = filePath.toLowerCase().split('.').pop();
|
|
304
|
+
return ['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'mts', 'cts'].includes(ext || '');
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=typescript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/parsers/typescript.ts"],"names":[],"mappings":"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"}
|
package/dist/selector/index.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export interface SelectOptions {
|
|
|
25
25
|
includeImports?: boolean;
|
|
26
26
|
/** Base path for resolving imports */
|
|
27
27
|
basePath?: string;
|
|
28
|
+
/** Skip cache lookup */
|
|
29
|
+
noCache?: boolean;
|
|
28
30
|
}
|
|
29
31
|
/** Selection result */
|
|
30
32
|
export interface SelectResult {
|
|
@@ -32,6 +34,8 @@ export interface SelectResult {
|
|
|
32
34
|
output: FormattedOutput;
|
|
33
35
|
/** Whether index is empty */
|
|
34
36
|
isEmpty: boolean;
|
|
37
|
+
/** Whether result came from cache */
|
|
38
|
+
fromCache: boolean;
|
|
35
39
|
}
|
|
36
40
|
/**
|
|
37
41
|
* Select optimal context for a query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AASzF,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAmIvB;AAwCD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9G,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/selector/index.js
CHANGED
|
@@ -12,11 +12,13 @@ import { rankChunks, buildImportGraph, getRelatedImports } from './scoring.js';
|
|
|
12
12
|
import { fitToBudget, mergeAdjacentChunks } from './budget.js';
|
|
13
13
|
import { formatInFormat } from './formatter.js';
|
|
14
14
|
import { parseImportsWithResolution, isJsTsFile } from '../retrieval/imports.js';
|
|
15
|
+
import { generateCacheKey, computeIndexVersion, getCachedResult, setCachedResult, } from '../db/index.js';
|
|
15
16
|
/**
|
|
16
17
|
* Select optimal context for a query
|
|
17
18
|
*/
|
|
18
19
|
export async function selectContext(db, options) {
|
|
19
20
|
const startTime = Date.now();
|
|
21
|
+
const format = options.format || 'markdown';
|
|
20
22
|
// Check if index has any chunks
|
|
21
23
|
const countResult = db.prepare('SELECT COUNT(*) as count FROM chunks').get();
|
|
22
24
|
if (countResult.count === 0) {
|
|
@@ -37,8 +39,35 @@ export async function selectContext(db, options) {
|
|
|
37
39
|
},
|
|
38
40
|
},
|
|
39
41
|
isEmpty: true,
|
|
42
|
+
fromCache: false,
|
|
40
43
|
};
|
|
41
44
|
}
|
|
45
|
+
// Check cache (skip if --explain is used or --no-cache is set)
|
|
46
|
+
const useCache = !options.explain && !options.noCache;
|
|
47
|
+
let cacheKey;
|
|
48
|
+
let indexVersion;
|
|
49
|
+
if (useCache) {
|
|
50
|
+
cacheKey = generateCacheKey({
|
|
51
|
+
query: options.query,
|
|
52
|
+
budget: options.budget,
|
|
53
|
+
sources: options.sources,
|
|
54
|
+
format,
|
|
55
|
+
includeImports: options.includeImports,
|
|
56
|
+
});
|
|
57
|
+
indexVersion = computeIndexVersion(db);
|
|
58
|
+
const cachedResult = getCachedResult(db, cacheKey, indexVersion);
|
|
59
|
+
if (cachedResult) {
|
|
60
|
+
const data = JSON.parse(cachedResult);
|
|
61
|
+
return {
|
|
62
|
+
output: {
|
|
63
|
+
text: format === 'json' ? JSON.stringify(data, null, 2) : data.context,
|
|
64
|
+
data,
|
|
65
|
+
},
|
|
66
|
+
isEmpty: false,
|
|
67
|
+
fromCache: true,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
42
71
|
// Step 1: Search for similar chunks
|
|
43
72
|
const searchOpts = {
|
|
44
73
|
limit: 50,
|
|
@@ -83,11 +112,15 @@ export async function selectContext(db, options) {
|
|
|
83
112
|
};
|
|
84
113
|
// Step 7: Format output
|
|
85
114
|
const timeMs = Date.now() - startTime;
|
|
86
|
-
const format = options.format || 'markdown';
|
|
87
115
|
const output = formatInFormat(format, options.query, mergedResult, similarChunks.length, timeMs, options.explain);
|
|
116
|
+
// Step 8: Store in cache (if caching is enabled)
|
|
117
|
+
if (useCache && cacheKey && indexVersion) {
|
|
118
|
+
setCachedResult(db, cacheKey, JSON.stringify(output.data), indexVersion);
|
|
119
|
+
}
|
|
88
120
|
return {
|
|
89
121
|
output,
|
|
90
122
|
isEmpty: false,
|
|
123
|
+
fromCache: false,
|
|
91
124
|
};
|
|
92
125
|
}
|
|
93
126
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAA2C,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"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"}
|