@bedolla/enriweb 0.1.6 → 0.1.7

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 (56) hide show
  1. package/README.md +48 -20
  2. package/dist/client/EnriProxyClient.d.ts +143 -6
  3. package/dist/client/EnriProxyClient.d.ts.map +1 -1
  4. package/dist/client/EnriProxyClient.js +208 -33
  5. package/dist/client/EnriProxyClient.js.map +1 -1
  6. package/dist/index.js +58 -18
  7. package/dist/index.js.map +1 -1
  8. package/dist/package-info.d.ts +26 -0
  9. package/dist/package-info.d.ts.map +1 -1
  10. package/dist/package-info.js +29 -2
  11. package/dist/package-info.js.map +1 -1
  12. package/dist/server/EnriWebServer.d.ts +33 -0
  13. package/dist/server/EnriWebServer.d.ts.map +1 -1
  14. package/dist/server/EnriWebServer.js +322 -23
  15. package/dist/server/EnriWebServer.js.map +1 -1
  16. package/dist/shared/Utf8SafeTextSlicer.d.ts +47 -0
  17. package/dist/shared/Utf8SafeTextSlicer.d.ts.map +1 -0
  18. package/dist/shared/Utf8SafeTextSlicer.js +97 -0
  19. package/dist/shared/Utf8SafeTextSlicer.js.map +1 -0
  20. package/dist/shared/validation.d.ts +13 -1
  21. package/dist/shared/validation.d.ts.map +1 -1
  22. package/dist/shared/validation.js +27 -14
  23. package/dist/shared/validation.js.map +1 -1
  24. package/dist/tools/WebFetchNpmProjection.d.ts +143 -0
  25. package/dist/tools/WebFetchNpmProjection.d.ts.map +1 -0
  26. package/dist/tools/WebFetchNpmProjection.js +480 -0
  27. package/dist/tools/WebFetchNpmProjection.js.map +1 -0
  28. package/dist/tools/WebFetchParamsParser.d.ts +26 -0
  29. package/dist/tools/WebFetchParamsParser.d.ts.map +1 -0
  30. package/dist/tools/WebFetchParamsParser.js +157 -0
  31. package/dist/tools/WebFetchParamsParser.js.map +1 -0
  32. package/dist/tools/WebFetchRangesExecutor.d.ts +86 -0
  33. package/dist/tools/WebFetchRangesExecutor.d.ts.map +1 -0
  34. package/dist/tools/WebFetchRangesExecutor.js +277 -0
  35. package/dist/tools/WebFetchRangesExecutor.js.map +1 -0
  36. package/dist/tools/WebFetchTool.d.ts +186 -81
  37. package/dist/tools/WebFetchTool.d.ts.map +1 -1
  38. package/dist/tools/WebFetchTool.js +142 -425
  39. package/dist/tools/WebFetchTool.js.map +1 -1
  40. package/dist/tools/WebFetchToolTextFormatter.d.ts +57 -0
  41. package/dist/tools/WebFetchToolTextFormatter.d.ts.map +1 -0
  42. package/dist/tools/WebFetchToolTextFormatter.js +135 -0
  43. package/dist/tools/WebFetchToolTextFormatter.js.map +1 -0
  44. package/dist/tools/WebSearchRegistryHttpReader.d.ts +116 -0
  45. package/dist/tools/WebSearchRegistryHttpReader.d.ts.map +1 -0
  46. package/dist/tools/WebSearchRegistryHttpReader.js +157 -0
  47. package/dist/tools/WebSearchRegistryHttpReader.js.map +1 -0
  48. package/dist/tools/WebSearchRegistryVerifier.d.ts +103 -7
  49. package/dist/tools/WebSearchRegistryVerifier.d.ts.map +1 -1
  50. package/dist/tools/WebSearchRegistryVerifier.js +375 -135
  51. package/dist/tools/WebSearchRegistryVerifier.js.map +1 -1
  52. package/dist/tools/WebSearchTool.d.ts +78 -0
  53. package/dist/tools/WebSearchTool.d.ts.map +1 -1
  54. package/dist/tools/WebSearchTool.js +191 -21
  55. package/dist/tools/WebSearchTool.js.map +1 -1
  56. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"EnriWebServer.js","sourceRoot":"","sources":["../../src/server/EnriWebServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnriWebServer.js","sourceRoot":"","sources":["../../src/server/EnriWebServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EAGvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA2BlE;;GAEG;AACH,MAAM,OAAO,aAAa;IACxB;;OAEG;IACc,MAAM,CAAS;IAEhC;;OAEG;IACc,aAAa,CAAgB;IAE9C;;OAEG;IACc,YAAY,CAAe;IAE5C;;;;OAIG;IACH,YAAmB,MAA2B;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAExC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAC9C;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE;oBACL,WAAW,EAAE,KAAK;iBACnB;aACF;SACF,CACF,CAAC;QAEF,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,SAAoB;QACvC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,yBAAyB,EAAE;SACjC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC1B,GAAG,IAAI;oBACP,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;iBACrC,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACrC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC5C,MAAM,MAAM,GAA4B,KAAK,EAAE,MAAM,CAAC;YAEtD,IAAI,CAAC;gBACH,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAChE,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC1E,iBAAiB,EAAE,MAAM;qBACD,CAAC;gBAC7B,CAAC;gBAED,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC/D,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;wBACzE,iBAAiB,EAAE,MAAM;qBACD,CAAC;gBAC7B,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,QAAQ,EAAE,EAAE,CAAC;iBACjD,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mEAAmE;gBACnE,qEAAqE;gBACrE,oEAAoE;gBACpE,oEAAoE;gBACpE,6CAA6C;gBAC7C,mEAAmE;gBACnE,UAAU;gBACV,IAAI,MAAM,EAAE,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzD,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC/C,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,YAAY,CAAC,KAAc;QACxC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,MAAM,CAAC,eAAe,CAAC,KAAc;QAC3C,MAAM,UAAU,GAA8B,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACjG,MAAM,MAAM,GACV,UAAU,KAAK,IAAI;YACjB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;YACxB,CAAC,CAAC,KAAK,YAAY,KAAK;gBACtB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,UAAU,GAAkB,aAAa,CAAC,0BAA0B,CACxE,MAAM,EACN,UAAU,EAAE,MAAM,CACnB,CAAC;QACF,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,MAAM,GACV,UAAU,KAAK,IAAI;YACjB,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,UAAU,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,sDAAsD;YAChH,CAAC,CAAC,iEAAiE;gBACjE,wDAAwD;gBACxD,iEAAiE;gBACjE,sDAAsD,CAAC;QAC7D,MAAM,MAAM,GAAW,SAAS,CAAC,CAAC,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,0BAA0B,CAAC,MAAc,EAAE,MAAe;QACvE,MAAM,UAAU,GAAW,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,IAAI,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnG,OAAO,kCAAkC,UAAU,4JAA4J,CAAC;QAClN,CAAC;QACD,IACE,8CAA8C,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3D,2CAA2C,CAAC,IAAI,CAAC,MAAM,CAAC,EACxD,CAAC;YACD,OAAO,8CAA8C,UAAU,6JAA6J,CAAC;QAC/N,CAAC;QACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,OAAO,mBAAmB,UAAU,iHAAiH,CAAC;QACxJ,CAAC;QACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9E,OAAO,sBAAsB,UAAU,iFAAiF,CAAC;QAC3H,CAAC;QACD,IACE,8DAA8D,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3E,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EACtC,CAAC;YACD,OAAO,0FAA0F,UAAU,uHAAuH,CAAC;QACrO,CAAC;QACD,IAAI,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,OAAO,6KAA6K,CAAC;QACvL,CAAC;QACD,IAAI,mEAAmE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrF,OAAO,uEAAuE,UAAU,GAAG,CAAC;QAC9F,CAAC;QACD,IACE,yCAAyC,CAAC,IAAI,CAAC,MAAM,CAAC;YACtD,6CAA6C,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1D,CAAC;YACD,OAAO,+DAA+D,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,0BAA0B;QAChC,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,WAAW,EACT,kEAAkE;gBAClE,IAAI;gBACJ,kBAAkB;gBAClB,mEAAmE;gBACnE,mEAAmE;gBACnE,uEAAuE;gBACvE,IAAI;gBACJ,oBAAoB;gBACpB,mGAAmG;gBACnG,uWAAuW;gBACvW,uHAAuH;gBACvH,sLAAsL;gBACtL,iDAAiD;gBACjD,gDAAgD;gBAChD,IAAI;gBACJ,UAAU;gBACV,qGAAqG;gBACrG,iQAAiQ;gBACjQ,0LAA0L;gBAC1L,6LAA6L;gBAC7L,gEAAgE;gBAChE,oEAAoE;gBACpE,yJAAyJ;gBACzJ,oPAAoP;YACtP,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE;oBACR,EAAE,KAAK,EAAE,2BAA2B,EAAE;oBACtC,EAAE,KAAK,EAAE,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;iBACvG;gBACD,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,KAAK,EAAE;4BACL;gCACE,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,+NAA+N;6BAClO;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCACzB,QAAQ,EAAE,CAAC;gCACX,QAAQ,EAAE,CAAC;gCACX,WAAW,EACT,8DAA8D;6BACjE;yBACF;qBACF;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,CAAC;wBACX,WAAW,EACT,6OAA6O;qBAChP;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,mMAAmM;qBACtM;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;wBAC7D,WAAW,EAAE,6CAA6C;qBAC3D;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EACT,oGAAoG;qBACvG;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EACT,8FAA8F;qBACjG;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,uBAAuB;wBAClC,WAAW,EACT,mEAAmE,MAAM,CAAC,uBAAuB,CAAC,wGAAwG;qBAC7M;iBACF;gBACD,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;aAC5D;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2FAA2F;gBACxG,UAAU,EAAE;oBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;oBAClE,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,uBAAuB;qBACrC;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,sBAAsB;wBACnC,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gCAC1D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gCAC/D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gCACnE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;6BACtF;yBACF;qBACF;oBACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAChE,aAAa,EAAE;wBACb,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,uDAAuD;qBACrE;oBACD,mBAAmB,EAAE;wBACnB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,yEAAyE;qBACvF;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,oCAAoC;wBACjD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;gCACzD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;gCACtE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;gCAC/D,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+CAA+C,EAAE;6BAC7F;yBACF;qBACF;oBACD,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4CAA4C,EAAE;oBAC5F,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,sDAAsD;wBACnE,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;gCAC7D,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE;6BACpF;yBACF;qBACF;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,oCAAoC;wBACjD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;gCACvF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gCACnE,aAAa,EAAE;oCACb,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,yBAAyB;oCACtC,UAAU,EAAE;wCACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wCAC3B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wCAChC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qCAC/B;iCACF;gCACD,iBAAiB,EAAE;oCACjB,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,4BAA4B;oCACzC,UAAU,EAAE;wCACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wCAC3B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wCAChC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qCAC/B;iCACF;gCACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;gCACtD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;6BAC1E;yBACF;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,yBAAyB;QAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC/D,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,wFAAwF;gBACxF,IAAI;gBACJ,kBAAkB;gBAClB,mEAAmE;gBACnE,8EAA8E;gBAC9E,yEAAyE;gBACzE,IAAI;gBACJ,oBAAoB;gBACpB,4DAA4D;gBAC5D,qDAAqD;gBACrD,+EAA+E;gBAC/E,0GAA0G;gBAC1G,6bAA6b;gBAC7b,6LAA6L;gBAC7L,qRAAqR;gBACrR,gbAAgb;gBAChb,0TAA0T;gBAC1T,wGAAwG;gBACxG,0FAA0F;gBAC1F,IAAI;gBACJ,UAAU;gBACV,kEAAkE;gBAClE,yEAAyE,eAAe,MAAM;gBAC9F,2KAA2K;gBAC3K,2JAA2J;YAC7J,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE;oBACR,EAAE,GAAG,EAAE,0BAA0B,EAAE;oBACnC,EAAE,GAAG,EAAE,0BAA0B,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;oBACvE,EAAE,MAAM,EAAE,sCAAsC,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;iBAC5F;gBACD,UAAU,EAAE;oBACV,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,wGAAwG;qBAC3G;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,CAAC;wBAChB,WAAW,EACT,8UAA8U;qBACjV;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,EAAE;wBACZ,WAAW,EACT,mjBAAmjB;wBACrjB,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,YAAY,EAAE;oCACZ,IAAI,EAAE,SAAS;oCACf,WAAW,EAAE,+CAA+C;iCAC7D;gCACD,WAAW,EAAE;oCACX,IAAI,EAAE,SAAS;oCACf,WAAW,EAAE,0DAA0D;iCACxE;6BACF;yBACF;qBACF;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,mSAAmS;qBACtS;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,+CAA+C,eAAe,IAAI;qBAChF;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;wBAClC,WAAW,EACT,yhBAAyhB;qBAC5hB;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;wBACtB,WAAW,EACT,ybAAyb;qBAC5b;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,4aAA4a;qBAC/a;oBACD,gBAAgB,EAAE;wBAChB,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,yTAAyT;qBAC5T;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,gBAAgB;wBAC3B,WAAW,EACT,2SAA2S,MAAM,CAAC,gBAAgB,CAAC,sHAAsH;qBAC5b;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,8IAA8I;qBACjJ;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,kKAAkK;qBACrK;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,+YAA+Y;qBAClZ;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,0PAA0P;qBAC7P;iBACF;gBACD,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;aACzD;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iHAAiH;gBAC9H,UAAU,EAAE;oBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;oBAC/E,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;oBACtE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;oBACnF,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iCAAiC,EAAE;oBAC9E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;oBAC1D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;oBAC/E,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+BAA+B,EAAE;oBAC/E,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+BAA+B,EAAE;oBAC9E,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iCAAiC,EAAE;oBAChF,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0CAA0C,EAAE;oBACtF,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uGAAuG,EAAE;oBAC5J,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE;oBAC7F,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sDAAsD,EAAE;oBACjG,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE;oBAC1F,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iEAAiE,EAAE;oBAC5G,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0CAA0C,EAAE;oBAC3F,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;oBAC5E,MAAM,EAAE;wBACN,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,wCAAwC;wBACrD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;gCACrE,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE;gCACpE,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE;gCACnE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gCAChE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;gCACtE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gCACnE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;gCAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yDAAyD,EAAE;gCACjG,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sEAAsE,EAAE;gCAC7G,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE;gCACjF,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iCAAiC,EAAE;gCAChF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;6BACnE;yBACF;qBACF;oBACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;iBAC9F;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Surrogate-safe UTF-16 text slicing.
3
+ *
4
+ * @remarks
5
+ * Port of EnriCode's `Utf8SafeTextSlicer` (same semantics, single source per
6
+ * project): character offsets address UTF-16 code units and a cut that would
7
+ * land between the high and low surrogate of one pair backs off one unit, so
8
+ * model-facing content never carries an orphan surrogate.
9
+ *
10
+ * Known cross-plane divergence (documented, accepted): when a window START
11
+ * lands on a low surrogate this slicer backs the begin off to the pair's
12
+ * high surrogate, so that window can measure `limit + 1` units while
13
+ * keeping the pair intact and paginating without loss (the next window
14
+ * never skips the pair). EnriProxy's cursor-store window advances past the
15
+ * lone low surrogate instead (always `<= limit`). Both directions are
16
+ * pair-safe and lossless within their own plane; the budgets differ by at
17
+ * most one code unit at mid-pair boundaries.
18
+ *
19
+ * @module shared/Utf8SafeTextSlicer
20
+ */
21
+ /**
22
+ * Slices one string between UTF-16 code-unit offsets without splitting
23
+ * surrogate pairs.
24
+ *
25
+ * @param text - Source text.
26
+ * @param start - Inclusive start offset (clamped to the text length).
27
+ * @param end - Exclusive end offset (values beyond the text length clamp).
28
+ * @returns Substring that never starts or ends between a high and a low
29
+ * surrogate.
30
+ */
31
+ export declare function sliceUtf8Safe(text: string, start: number, end: number): string;
32
+ /**
33
+ * Truncates one visible text to a UTF-16 code-unit budget.
34
+ *
35
+ * @remarks
36
+ * The cut never splits a surrogate pair and the returned value (including
37
+ * the ellipsis) never exceeds `maxLength` code units — the same budget
38
+ * contract EnriCode's transcript surfaces use.
39
+ *
40
+ * @param value - Source text.
41
+ * @param maxLength - Maximum retained UTF-16 code units (including the
42
+ * ellipsis when appended).
43
+ * @param ellipsis - Whether to append the single-unit ellipsis marker.
44
+ * @returns Bounded text, or the original value when it already fits.
45
+ */
46
+ export declare function truncateUtf8Safe(value: string, maxLength: number, ellipsis?: boolean): string;
47
+ //# sourceMappingURL=Utf8SafeTextSlicer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utf8SafeTextSlicer.d.ts","sourceRoot":"","sources":["../../src/shared/Utf8SafeTextSlicer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAYH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAgB9E;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,MAAM,CAWnG"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Surrogate-safe UTF-16 text slicing.
3
+ *
4
+ * @remarks
5
+ * Port of EnriCode's `Utf8SafeTextSlicer` (same semantics, single source per
6
+ * project): character offsets address UTF-16 code units and a cut that would
7
+ * land between the high and low surrogate of one pair backs off one unit, so
8
+ * model-facing content never carries an orphan surrogate.
9
+ *
10
+ * Known cross-plane divergence (documented, accepted): when a window START
11
+ * lands on a low surrogate this slicer backs the begin off to the pair's
12
+ * high surrogate, so that window can measure `limit + 1` units while
13
+ * keeping the pair intact and paginating without loss (the next window
14
+ * never skips the pair). EnriProxy's cursor-store window advances past the
15
+ * lone low surrogate instead (always `<= limit`). Both directions are
16
+ * pair-safe and lossless within their own plane; the budgets differ by at
17
+ * most one code unit at mid-pair boundaries.
18
+ *
19
+ * @module shared/Utf8SafeTextSlicer
20
+ */
21
+ /**
22
+ * Low-surrogate range start (inclusive).
23
+ */
24
+ const LOW_SURROGATE_START = 0xdc00;
25
+ /**
26
+ * Low-surrogate range end (inclusive).
27
+ */
28
+ const LOW_SURROGATE_END = 0xdfff;
29
+ /**
30
+ * Slices one string between UTF-16 code-unit offsets without splitting
31
+ * surrogate pairs.
32
+ *
33
+ * @param text - Source text.
34
+ * @param start - Inclusive start offset (clamped to the text length).
35
+ * @param end - Exclusive end offset (values beyond the text length clamp).
36
+ * @returns Substring that never starts or ends between a high and a low
37
+ * surrogate.
38
+ */
39
+ export function sliceUtf8Safe(text, start, end) {
40
+ const value = String(text ?? "");
41
+ const beginRaw = Number.isFinite(start) ? Math.floor(start) : 0;
42
+ const endRaw = Number.isFinite(end) ? Math.floor(end) : value.length;
43
+ let begin = Math.min(Math.max(beginRaw, 0), value.length);
44
+ let stop = Math.min(Math.max(endRaw, begin), value.length);
45
+ if (isLowSurrogateUnit(value, begin)) {
46
+ begin -= 1;
47
+ }
48
+ if (begin < 0) {
49
+ begin = 0;
50
+ }
51
+ if (stop > begin && stop < value.length && isLowSurrogateUnit(value, stop)) {
52
+ stop -= 1;
53
+ }
54
+ return value.slice(begin, stop);
55
+ }
56
+ /**
57
+ * Reports whether the code unit at one index is a low surrogate, meaning the
58
+ * previous code unit holds the matching high surrogate of one pair.
59
+ *
60
+ * @param value - Source text.
61
+ * @param index - Code-unit index.
62
+ * @returns True when the index holds a low surrogate inside the text.
63
+ */
64
+ function isLowSurrogateUnit(value, index) {
65
+ if (index <= 0 || index >= value.length) {
66
+ return false;
67
+ }
68
+ const codeUnit = value.charCodeAt(index);
69
+ return codeUnit >= LOW_SURROGATE_START && codeUnit <= LOW_SURROGATE_END;
70
+ }
71
+ /**
72
+ * Truncates one visible text to a UTF-16 code-unit budget.
73
+ *
74
+ * @remarks
75
+ * The cut never splits a surrogate pair and the returned value (including
76
+ * the ellipsis) never exceeds `maxLength` code units — the same budget
77
+ * contract EnriCode's transcript surfaces use.
78
+ *
79
+ * @param value - Source text.
80
+ * @param maxLength - Maximum retained UTF-16 code units (including the
81
+ * ellipsis when appended).
82
+ * @param ellipsis - Whether to append the single-unit ellipsis marker.
83
+ * @returns Bounded text, or the original value when it already fits.
84
+ */
85
+ export function truncateUtf8Safe(value, maxLength, ellipsis = true) {
86
+ const text = String(value ?? "");
87
+ const budget = Number.isFinite(maxLength) ? Math.floor(maxLength) : text.length;
88
+ if (budget <= 0) {
89
+ return "";
90
+ }
91
+ if (text.length <= budget) {
92
+ return text;
93
+ }
94
+ const cut = sliceUtf8Safe(text, 0, ellipsis ? Math.max(0, budget - 1) : budget).trimEnd();
95
+ return ellipsis ? `${cut}…` : cut;
96
+ }
97
+ //# sourceMappingURL=Utf8SafeTextSlicer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utf8SafeTextSlicer.js","sourceRoot":"","sources":["../../src/shared/Utf8SafeTextSlicer.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,10 @@ export declare function optionalString(value: unknown): string | undefined;
40
40
  /**
41
41
  * Returns integer or undefined.
42
42
  *
43
+ * @remarks
44
+ * Finite numbers floor (parity with EnriProxy/EnriCode); numeric strings
45
+ * must match fully (`"7"` ok, `"7.5"` dropped).
46
+ *
43
47
  * @param value - Value to check
44
48
  * @returns Integer or undefined
45
49
  */
@@ -47,8 +51,16 @@ export declare function optionalInt(value: unknown): number | undefined;
47
51
  /**
48
52
  * Returns a list of trimmed strings or undefined.
49
53
  *
54
+ * @remarks
55
+ * A single string is normalized to a one-element list (parity with
56
+ * EnriProxy, which accepts `string | string[]` for domain filters). An
57
+ * invalid container (null, number, object) fails in Spanish, matching the
58
+ * proxy's 400 policy instead of being silently discarded.
59
+ *
50
60
  * @param value - Value to check
61
+ * @param name - Parameter name for error messages
51
62
  * @returns String array or undefined
63
+ * @throws Error when the container or an entry is not a string
52
64
  */
53
- export declare function optionalStringArray(value: unknown): string[] | undefined;
65
+ export declare function optionalStringArray(value: unknown, name: string): string[] | undefined;
54
66
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKlF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAWlE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkB9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAmBxE"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKlF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAclE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAe9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAoBtF"}
@@ -44,17 +44,20 @@ export function assertNonEmptyString(value, name) {
44
44
  * @throws Error if not a valid HTTP/HTTPS URL
45
45
  */
46
46
  export function assertHttpUrl(value, name) {
47
- const url = assertNonEmptyString(value, name);
47
+ if (typeof value !== "string" || !value.trim()) {
48
+ throw new Error(`${name} debe ser una cadena no vacía.`);
49
+ }
50
+ let parsed;
48
51
  try {
49
- const parsed = new URL(url);
50
- if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
51
- throw new Error(`${name} debe ser una URL HTTP o HTTPS.`);
52
- }
53
- return parsed.toString();
52
+ parsed = new URL(value.trim());
54
53
  }
55
54
  catch {
56
55
  throw new Error(`${name} debe ser una URL válida.`);
57
56
  }
57
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
58
+ throw new Error(`${name} debe ser una URL HTTP o HTTPS.`);
59
+ }
60
+ return parsed.toString();
58
61
  }
59
62
  /**
60
63
  * Returns trimmed string or undefined.
@@ -72,14 +75,15 @@ export function optionalString(value) {
72
75
  /**
73
76
  * Returns integer or undefined.
74
77
  *
78
+ * @remarks
79
+ * Finite numbers floor (parity with EnriProxy/EnriCode); numeric strings
80
+ * must match fully (`"7"` ok, `"7.5"` dropped).
81
+ *
75
82
  * @param value - Value to check
76
83
  * @returns Integer or undefined
77
84
  */
78
85
  export function optionalInt(value) {
79
86
  if (typeof value === "number" && Number.isFinite(value)) {
80
- if (!Number.isInteger(value)) {
81
- return undefined;
82
- }
83
87
  return Math.floor(value);
84
88
  }
85
89
  if (typeof value === "string" && value.trim()) {
@@ -97,24 +101,33 @@ export function optionalInt(value) {
97
101
  /**
98
102
  * Returns a list of trimmed strings or undefined.
99
103
  *
104
+ * @remarks
105
+ * A single string is normalized to a one-element list (parity with
106
+ * EnriProxy, which accepts `string | string[]` for domain filters). An
107
+ * invalid container (null, number, object) fails in Spanish, matching the
108
+ * proxy's 400 policy instead of being silently discarded.
109
+ *
100
110
  * @param value - Value to check
111
+ * @param name - Parameter name for error messages
101
112
  * @returns String array or undefined
113
+ * @throws Error when the container or an entry is not a string
102
114
  */
103
- export function optionalStringArray(value) {
115
+ export function optionalStringArray(value, name) {
104
116
  if (value === undefined) {
105
117
  return undefined;
106
118
  }
107
- if (!Array.isArray(value)) {
108
- return undefined;
119
+ if (typeof value !== "string" && !Array.isArray(value)) {
120
+ throw new Error(`${name} debe ser un arreglo de strings.`);
109
121
  }
122
+ const items = Array.isArray(value) ? value : [value];
110
123
  const collected = [];
111
- for (const entry of value) {
124
+ for (const entry of items) {
112
125
  if (typeof entry !== "string") {
113
126
  throw new Error("Los filtros de dominios deben ser cadenas no vacías.");
114
127
  }
115
128
  const trimmed = entry.trim();
116
129
  if (!trimmed) {
117
- throw new Error("Los filtros de dominios deben ser cadenas no vacías.");
130
+ continue;
118
131
  }
119
132
  collected.push(trimmed);
120
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * npm package-page projection for the web_fetch tool.
3
+ *
4
+ * @remarks
5
+ * npm package pages answer with a marketing shell; this projection queries
6
+ * the official registry metadata and fetches the README from the resolved
7
+ * repository (GitHub raw with branch preference and a bounded worker pool),
8
+ * stitching a structured Spanish result with early-exit on the first hit.
9
+ * Extracted from {@link WebFetchTool} as a pure collaborator.
10
+ *
11
+ * Size note (~590 lines, alert zone by design): the npm path owns metadata
12
+ * fetch, version pinning, the README pool and the stitched composition as
13
+ * one cohesive pipeline; the shared registry transport already lives in
14
+ * WebSearchRegistryHttpReader. Splitting is tracked debt; any future edit
15
+ * must extract the touched unit instead of growing this file.
16
+ *
17
+ * @module tools/WebFetchNpmProjection
18
+ */
19
+ import type { EnriProxyClient } from "../client/EnriProxyClient.js";
20
+ import type { WebFetchToolParams, WebFetchToolResult } from "./WebFetchTool.js";
21
+ /**
22
+ * README sub-fetch projection traveling to raw.githubusercontent.com.
23
+ */
24
+ interface WebFetchReadmeProjection {
25
+ /**
26
+ * Effective content flavor for the README page.
27
+ */
28
+ readonly format: "text" | "markdown" | "html";
29
+ /**
30
+ * Effective content scope for the README page.
31
+ */
32
+ readonly content: "main" | "full";
33
+ /**
34
+ * Whether to append the page link inventory.
35
+ */
36
+ readonly includeLinks: boolean;
37
+ /**
38
+ * Whether to append the extended metadata block.
39
+ */
40
+ readonly includeMetadata: boolean;
41
+ /**
42
+ * Optional anchor selector restricting the projection to one section.
43
+ */
44
+ readonly anchor?: string;
45
+ /**
46
+ * Optional extraction prompt honored by the README sub-fetch.
47
+ */
48
+ readonly prompt?: string;
49
+ }
50
+ /**
51
+ * npm package-page projection collaborator.
52
+ */
53
+ export declare class WebFetchNpmProjection {
54
+ /**
55
+ * Readme file candidates commonly used in GitHub repositories.
56
+ */
57
+ private static readonly README_FILENAMES;
58
+ /**
59
+ * Default branches to try when resolving GitHub raw README URLs.
60
+ */
61
+ private static readonly README_BRANCHES;
62
+ /**
63
+ * Attempts to provide a higher-quality fetch for npm package pages.
64
+ *
65
+ * @param params - Tool parameters
66
+ * @param client - EnriProxy client
67
+ * @param maxChars - Maximum content length to return
68
+ * @param projection - Effective projection traveling to README sub-fetches
69
+ * @param signal - Optional caller abort signal
70
+ * @returns Tool result if the URL is an npm package page, otherwise null
71
+ */
72
+ tryExecuteNpmPackageFetch(params: WebFetchToolParams & {
73
+ readonly url: string;
74
+ }, client: EnriProxyClient, maxChars: number, projection: WebFetchReadmeProjection, signal?: AbortSignal): Promise<WebFetchToolResult | null>;
75
+ /**
76
+ * Attempts to parse package coordinates from an npmjs.com package page URL.
77
+ *
78
+ * @remarks
79
+ * Versioned pages (`/package/<name>/v/<version>`, including scoped
80
+ * packages) pin the registry manifest to the requested version; every
81
+ * other form resolves through `/latest`.
82
+ *
83
+ * @param url - Parsed URL
84
+ * @returns Package name plus optional pinned version, or null when the URL
85
+ * is not an npm package page
86
+ */
87
+ private tryParseNpmPackagePageRef;
88
+ /**
89
+ * Tries to parse a JSON object from a string.
90
+ *
91
+ * @param input - JSON string
92
+ * @returns Parsed object or null
93
+ */
94
+ private tryParseJsonObject;
95
+ /**
96
+ * Extracts a string from an unknown value if possible.
97
+ *
98
+ * @param value - Unknown input
99
+ * @returns Trimmed string or null
100
+ */
101
+ private tryGetString;
102
+ /**
103
+ * Extracts a repository URL from npm metadata.
104
+ *
105
+ * @param repository - Repository field value
106
+ * @returns Normalized URL string or null
107
+ */
108
+ private tryGetRepositoryUrl;
109
+ /**
110
+ * Normalizes common git repository URL schemes into an https URL.
111
+ *
112
+ * @param rawUrl - Raw repository URL from metadata
113
+ * @returns Normalized URL string or null
114
+ */
115
+ private normalizeRepositoryUrl;
116
+ /**
117
+ * Normalizes a GitHub repository URL to the canonical https form.
118
+ *
119
+ * @param repositoryUrl - Repository URL
120
+ * @returns Canonical GitHub repo URL (https://github.com/{owner}/{repo}) or null
121
+ */
122
+ private tryNormalizeGitHubRepoUrl;
123
+ /**
124
+ * Attempts to fetch a GitHub repository README via raw.githubusercontent.com.
125
+ *
126
+ * @remarks
127
+ * Candidates dispatch in preference order through a bounded worker pool;
128
+ * the first completed hit wins and aborts the stragglers, so the common
129
+ * case costs one fast fetch instead of the slowest of ten. Projection
130
+ * fields travel to the README sub-fetches; the registry metadata fetch
131
+ * stays raw because its JSON is parsed.
132
+ *
133
+ * @param client - EnriProxy client
134
+ * @param githubRepoUrl - Canonical GitHub repo URL
135
+ * @param maxChars - Maximum content length
136
+ * @param projection - Effective projection for the README page
137
+ * @param signal - Optional caller abort signal
138
+ * @returns README content with pagination fields, or null
139
+ */
140
+ private tryFetchGitHubReadme;
141
+ }
142
+ export {};
143
+ //# sourceMappingURL=WebFetchNpmProjection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebFetchNpmProjection.d.ts","sourceRoot":"","sources":["../../src/tools/WebFetchNpmProjection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGhF;;GAEG;AACH,UAAU,wBAAwB;IAChC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAE9C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoDD;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAMtC;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAyC;IAEhF;;;;;;;;;OASG;IACU,yBAAyB,CACpC,MAAM,EAAE,kBAAkB,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EACrD,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,wBAAwB,EACpC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAwIrC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,yBAAyB;IA2DjC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAkC9B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;;;;;;;;;;;;;;;OAgBG;YACW,oBAAoB;CAoGnC"}