@rimbu/common 2.0.0 → 2.0.2

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 +42 -42
  2. package/dist/bun/err.mts +1 -1
  3. package/dist/cjs/async-optlazy.cjs +60 -42
  4. package/dist/cjs/async-optlazy.cjs.map +1 -0
  5. package/dist/cjs/async-optlazy.d.cts +46 -0
  6. package/dist/cjs/collect.cjs +9 -31
  7. package/dist/cjs/collect.cjs.map +1 -0
  8. package/dist/cjs/collect.d.cts +29 -0
  9. package/dist/cjs/comp.cjs +518 -707
  10. package/dist/cjs/comp.cjs.map +1 -0
  11. package/dist/cjs/comp.d.cts +239 -0
  12. package/dist/cjs/eq.cjs +375 -203
  13. package/dist/cjs/eq.cjs.map +1 -0
  14. package/dist/cjs/err.cjs +57 -50
  15. package/dist/cjs/err.cjs.map +1 -0
  16. package/dist/cjs/index-range.cjs +105 -109
  17. package/dist/cjs/index-range.cjs.map +1 -0
  18. package/dist/cjs/index-range.d.cts +42 -0
  19. package/dist/cjs/index.cjs +9 -797
  20. package/dist/cjs/index.cjs.map +1 -0
  21. package/dist/cjs/index.d.cts +6 -0
  22. package/dist/cjs/internal.cjs +14 -797
  23. package/dist/cjs/internal.cjs.map +1 -0
  24. package/dist/cjs/internal.d.cts +11 -0
  25. package/dist/cjs/optlazy.cjs +43 -37
  26. package/dist/cjs/optlazy.cjs.map +1 -0
  27. package/dist/cjs/range.cjs +35 -49
  28. package/dist/cjs/range.cjs.map +1 -0
  29. package/dist/cjs/traverse-state.cjs +29 -46
  30. package/dist/cjs/traverse-state.cjs.map +1 -0
  31. package/dist/cjs/types.cjs +2 -17
  32. package/dist/cjs/types.cjs.map +1 -0
  33. package/dist/cjs/update.cjs +20 -32
  34. package/dist/cjs/update.cjs.map +1 -0
  35. package/dist/esm/eq.d.mts +196 -0
  36. package/dist/esm/err.d.mts +33 -0
  37. package/dist/esm/optlazy.d.mts +42 -0
  38. package/dist/esm/range.d.mts +35 -0
  39. package/dist/esm/traverse-state.d.mts +33 -0
  40. package/dist/esm/types.d.mts +31 -0
  41. package/dist/esm/update.d.mts +18 -0
  42. package/package.json +19 -12
  43. package/src/err.mts +1 -1
  44. /package/dist/{types/eq.d.mts → cjs/eq.d.cts} +0 -0
  45. /package/dist/{types/err.d.mts → cjs/err.d.cts} +0 -0
  46. /package/dist/{types/optlazy.d.mts → cjs/optlazy.d.cts} +0 -0
  47. /package/dist/{types/range.d.mts → cjs/range.d.cts} +0 -0
  48. /package/dist/{types/traverse-state.d.mts → cjs/traverse-state.d.cts} +0 -0
  49. /package/dist/{types/types.d.mts → cjs/types.d.cts} +0 -0
  50. /package/dist/{types/update.d.mts → cjs/update.d.cts} +0 -0
  51. /package/dist/{types → esm}/async-optlazy.d.mts +0 -0
  52. /package/dist/{types → esm}/collect.d.mts +0 -0
  53. /package/dist/{types → esm}/comp.d.mts +0 -0
  54. /package/dist/{types → esm}/index-range.d.mts +0 -0
  55. /package/dist/{types → esm}/index.d.mts +0 -0
  56. /package/dist/{types → esm}/internal.d.mts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comp.cjs","sourceRoot":"","sources":["../../_cjs_prepare/comp.cts"],"names":[],"mappings":";;;;AAAA,+CAAoC;AAuCpC,IAAiB,IAAI,CAykBpB;AAzkBD,WAAiB,IAAI;IACnB,IAAM,YAAY,GAAc,aAAa,CAAC,MAAM,CAAC,CAAC;IACtD,IAAM,eAAe,GAAc,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAM,YAAY,GAAc,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtD;;OAEG;IACH,SAAgB,WAAW;QACzB,OAAO,YAAY,CAAC;IACtB,CAAC;IAFe,gBAAW,cAE1B,CAAA;IAED,IAAM,WAAW,GAAiB;QAChC,YAAY,YAAC,GAAG;YACd,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;QACjC,CAAC;QACD,OAAO,YAAC,EAAE,EAAE,EAAE;YACZ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/C,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAAE,OAAO,CAAC,CAAC;gBAC/B,IAAI,EAAE,KAAK,MAAM,CAAC,iBAAiB;oBAAE,OAAO,CAAC,CAAC;gBAC9C,IAAI,EAAE,KAAK,MAAM,CAAC,iBAAiB;oBAAE,OAAO,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YAED,yBAAyB;YACzB,IAAI,EAAE,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACpC,OAAO,EAAE,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,kCAAkC;YAClC,OAAO,EAAE,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;IAEF;;;;;;;;OAQG;IACH,SAAgB,UAAU;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC;IAFe,eAAU,aAEzB,CAAA;IAED,IAAM,YAAY,GAAkB;QAClC,YAAY,YAAC,GAAG;YACd,OAAO,OAAO,GAAG,KAAK,SAAS,CAAC;QAClC,CAAC;QACD,OAAO,YAAC,EAAE,EAAE,EAAE;YACZ,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;IAEF;;;;;;;;;;OAUG;IACH,SAAgB,WAAW;QACzB,OAAO,YAAY,CAAC;IACtB,CAAC;IAFe,gBAAW,cAE1B,CAAA;IAED,IAAM,WAAW,GAAiB;QAChC,YAAY,YAAC,GAAG;YACd,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;QACjC,CAAC;QACD,OAAO,YAAC,EAAE,EAAE,EAAE;YACZ,IAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;YACpB,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YACvB,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;IAEF;;OAEG;IACH,SAAgB,UAAU;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC;IAFe,eAAU,aAEzB,CAAA;IAED,IAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAM,WAAW,GAAiB;QAChC,YAAY,YAAC,GAAG;YACd,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,gBAAgB,CAAC,OAAO;KAClC,CAAC;IAEF,IAAM,kBAAkB,GAAc;QACpC,YAAY,YAAC,GAAG;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,YAAC,EAAE,EAAE,EAAE;YACZ,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;KACF,CAAC;IAEF;;OAEG;IACH,SAAgB,iBAAiB;QAC/B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAFe,sBAAiB,oBAEhC,CAAA;IAED;;;;OAIG;IACH,SAAgB,UAAU;QACxB,cAAoD;aAApD,UAAoD,EAApD,qBAAoD,EAApD,IAAoD;YAApD,yBAAoD;;QAEpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QAE1C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,OAAb,IAAI,2CAAa,IAAI,UAAC,CAAC;QAExC,OAAO;YACL,YAAY,YAAC,GAAG;gBACd,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;YACjC,CAAC;YACD,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC;IACJ,CAAC;IAbe,eAAU,aAazB,CAAA;IAED;;OAEG;IACH,SAAgB,yBAAyB;QACvC,OAAO,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAFe,8BAAyB,4BAExC,CAAA;IAED,IAAM,mBAAmB,GAAiB;QACxC,YAAY,YAAC,GAAQ;YACnB,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;QACjC,CAAC;QACD,OAAO,YAAC,EAAO,EAAE,EAAO;YACtB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YAE3C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAEX,OAAO,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;gBACjB,IAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,IAAI,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC9B,CAAC;YAED,OAAO,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAC/B,CAAC;KACF,CAAC;IAEF;;OAEG;IACH,SAAgB,kBAAkB;QAChC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAFe,uBAAkB,qBAEjC,CAAA;IAED,IAAM,gBAAgB,GAAc;QAClC,YAAY,YAAC,GAAQ;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,YAAC,EAAO,EAAE,EAAO;YACtB,OAAO,gBAAgB,CAAC,OAAO,CAC7B,iBAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,EACzB,iBAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAC1B,CAAC;QACJ,CAAC;KACF,CAAC;IAEF;;OAEG;IACH,SAAgB,eAAe;QAC7B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAFe,oBAAe,kBAE9B,CAAA;IAED;;;;OAIG;IACH,SAAgB,iBAAiB,CAC/B,GAEC,EACD,SAAqC;QAArC,0BAAA,EAAA,YAAqB,cAAc,EAAE;QAErC,OAAO;YACL,YAAY,YAAC,GAAG;gBACd,OAAO,GAAG,YAAY,GAAG,CAAC;YAC5B,CAAC;YACD,OAAO,YAAC,EAAE,EAAE,EAAE;gBACZ,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;SACF,CAAC;IACJ,CAAC;IAde,sBAAiB,oBAchC,CAAA;IAED,IAAM,SAAS,GAAe,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEnE;;OAEG;IACH,SAAgB,QAAQ;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAFe,aAAQ,WAEvB,CAAA;IAED,SAAS,kBAAkB,CAAI,QAAiB;QAC9C,OAAO;YACL,YAAY,YAAC,GAAG;gBACd,sDAAsD;gBACtD,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,CAClE,CAAC;YACJ,CAAC;YACD,OAAO,YAAC,EAAE,EAAE,EAAE;gBACZ,IAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,IAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAEpC,OAAO,IAAI,EAAE,CAAC;oBACZ,IAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBAE5B,IAAI,MAAM,CAAC,IAAI;wBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7C,IAAI,MAAM,CAAC,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAE1B,IAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBAE5D,IAAI,MAAM,KAAK,CAAC;wBAAE,OAAO,MAAM,CAAC;gBAClC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAM,gBAAgB,GAAwB,kBAAkB,CAC9D,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;IAEF;;;;;;;;;;;OAWG;IACH,SAAgB,YAAY,CAAI,QAAkB;QAChD,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,gBAAgB,CAAC;QAEpD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAJe,iBAAY,eAI3B,CAAA;IAED,IAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3D,IAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE3D,IAAM,aAAa,GAAoB;QACrC,YAAY;QACZ,SAAS;QACT,WAAW;QACX,WAAW;KACZ,CAAC;IAEF,SAAS,cAAc,CAAC,EAAO,EAAE,EAAO;QACtC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACX,IAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAEjC,OAAO,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;YACjB,IAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,gBAAgB,CACvB,OAAkC,EAClC,SAAoC;QADpC,wBAAA,EAAA,UAAqB,WAAW,EAAE;QAClC,0BAAA,EAAA,YAAuB,WAAW,EAAE;QAEpC,OAAO;YACL,YAAY,YAAC,GAAG;gBACd,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,YAAC,EAAE,EAAE,EAAE;gBACZ,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAE5B,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEpD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC5C,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1B,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1B,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAE9C,IAAI,SAAS,KAAK,CAAC;wBAAE,OAAO,SAAS,CAAC;oBAEtC,IAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBACxB,IAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBAExB,IAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAEtD,IAAI,WAAW,KAAK,CAAC;wBAAE,OAAO,WAAW,CAAC;gBAC5C,CAAC;gBAED,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAE5C,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAM,cAAc,GAA2B,gBAAgB,EAAE,CAAC;IAElE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAgB,UAAU,CAAC,OAG1B;QACC,IAAI,SAAS,KAAK,OAAO;YAAE,OAAO,cAAc,CAAC;QAEjD,OAAO,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAPe,eAAU,aAOzB,CAAA;IAED,SAAS,aAAa,CAAC,IAAiC;QACtD,OAAO;YACL,YAAY,YAAC,GAAG;gBACd,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,YAAC,EAAE,EAAE,EAAE;gBACZ,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;oBAAE,OAAO,CAAC,CAAC;gBAEhC,IAAM,KAAK,GAAG,OAAO,EAAE,CAAC;gBACxB,IAAM,KAAK,GAAG,OAAO,EAAE,CAAC;gBAExB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBACpB,qDAAqD;oBACrD,OAAO,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAED,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,QAAQ;wBACX,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrC,KAAK,SAAS;wBACZ,OAAO,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtC,KAAK,QAAQ;wBACX,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrC,KAAK,QAAQ;wBACX,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrC,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;4BAChB,IAAI,IAAI,KAAK,EAAE;gCAAE,OAAO,CAAC,CAAC;4BAE1B,OAAO,CAAC,CAAC,CAAC;wBACZ,CAAC;wBACD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;4BAChB,OAAO,CAAC,CAAC;wBACX,CAAC;wBAED,IAAM,WAAW,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAE3C,IAAI,SAAS,KAAK,WAAW;4BAAE,OAAO,WAAW,CAAC;wBAElD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;4BACpB,IACE,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;gCACjC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC,EACjC,CAAC;gCACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oCACvB,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gCACpD,CAAC;gCAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BAC5C,CAAC;4BAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gCACvB,OAAO,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,CACzD,EAAE,EACF,EAAE,CACH,CAAC;4BACJ,CAAC;4BAED,OAAO,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,SAAgB,WAAW;QACzB,OAAO,YAAY,CAAC;IACtB,CAAC;IAFe,gBAAW,cAE1B,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,cAAc;QAC5B,OAAO,eAAe,CAAC;IACzB,CAAC;IAFe,mBAAc,iBAE7B,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,WAAW;QACzB,OAAO,YAAY,CAAC;IACtB,CAAC;IAFe,gBAAW,cAE1B,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,aAAa,CAAI,IAAa;QAC5C,OAAO;YACL,YAAY,YAAC,GAAG;gBACd,OAAO,SAAS,KAAK,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,YAAC,EAAE,EAAE,EAAE;gBACZ,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;oBACrB,IAAI,SAAS,KAAK,EAAE;wBAAE,OAAO,CAAC,CAAC;oBAC/B,OAAO,CAAC,CAAC,CAAC;gBACZ,CAAC;gBACD,IAAI,SAAS,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;IAde,kBAAa,gBAc5B,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,QAAQ,CAAI,IAAa;QACvC,OAAO;YACL,YAAY,YAAC,GAAG;gBACd,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,YAAC,EAAE,EAAE,EAAE;gBACZ,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChB,IAAI,IAAI,KAAK,EAAE;wBAAE,OAAO,CAAC,CAAC;oBAC1B,OAAO,CAAC,CAAC,CAAC;gBACZ,CAAC;gBACD,IAAI,IAAI,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;IAde,aAAQ,WAcvB,CAAA;IAED;;;;;;;;;;;OAWG;IACH,SAAgB,MAAM,CAAI,IAAa;QACrC,OAAO;YACL,OAAO,YAAC,EAAE,EAAE,EAAE;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAPe,WAAM,SAOrB,CAAA;IAED;;;;;;;;;OASG;IACH,SAAgB,IAAI,CAAI,IAAa;QACnC,OAAO,UAAC,EAAK,EAAE,EAAK,IAAc,OAAA,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAA1B,CAA0B,CAAC;IAC/D,CAAC;IAFe,SAAI,OAEnB,CAAA;AACH,CAAC,EAzkBgB,IAAI,oBAAJ,IAAI,QAykBpB"}
@@ -0,0 +1,239 @@
1
+ import { Eq } from './internal.cjs';
2
+ /**
3
+ * An object providing methods to compare two values of type `K`.
4
+ * @typeparam K - the value type
5
+ */
6
+ export interface Comp<K> {
7
+ /**
8
+ * Returns 0 if given `value1` and `value2` are equal, a positive value is `value1` is greater than
9
+ * `value2`, and a negative value otherwise.
10
+ * @param value1 - the first value to compare
11
+ * @param value2 - the seconds value to compare
12
+ * @example
13
+ * ```ts
14
+ * const c = Comp.numberComp()
15
+ * console.log(c.compare(5, 5))
16
+ * // => 0
17
+ * console.log(c.compare(3, 5))
18
+ * // => -2
19
+ * console.log(c.compare(5, 3))
20
+ * // => 2
21
+ * ```
22
+ */
23
+ compare(value1: K, value2: K): number;
24
+ /**
25
+ * Returns true if this instance can compare given `obj`.
26
+ * @param obj - the object to check
27
+ * @example
28
+ * ```ts
29
+ * const c = Comp.numberComp()
30
+ * console.log(c.isComparable(5))
31
+ * // => true
32
+ * console.log(c.isComparable('a'))
33
+ * // => false
34
+ * ```
35
+ */
36
+ isComparable(obj: any): obj is K;
37
+ }
38
+ export declare namespace Comp {
39
+ /**
40
+ * Returns the default Comp instance, which is the Comp.anyDeepComp() instance.
41
+ */
42
+ function defaultComp(): Comp<any>;
43
+ /**
44
+ * Returns a default number Comp instance that orders numbers naturally.
45
+ * @example
46
+ * ```ts
47
+ * const c = Comp.numberComp();
48
+ * console.log(c.compare(3, 5))
49
+ * // => -2
50
+ * ```
51
+ */
52
+ function numberComp(): Comp<number>;
53
+ /**
54
+ * Returns a default boolean Comp instance that orders booleans according to false < true.
55
+ * @example
56
+ * ```ts
57
+ * const c = Comp.booleanComp();
58
+ * console.log(c.compare(false, true) < 0)
59
+ * // => true
60
+ * console.log(c.compare(true, true))
61
+ * // => 0
62
+ * ```
63
+ */
64
+ function booleanComp(): Comp<boolean>;
65
+ /**
66
+ * Returns a default bigint Comp instance that orders bigint numbers naturally.
67
+ */
68
+ function bigIntComp(): Comp<bigint>;
69
+ /**
70
+ * Returns a Comp instance converts values to string with JSON.stringify, and orders the resulting string naturally.
71
+ */
72
+ function anyStringJSONComp<T>(): Comp<T>;
73
+ /**
74
+ * Returns a `Comp` instance that compares strings based on the string's `localeCompare` method.
75
+ * @param locales - (optional) a locale or list of locales
76
+ * @param options - (optional) see String.localeCompare for details
77
+ */
78
+ function stringComp(...args: ConstructorParameters<typeof Intl.Collator>): Comp<string>;
79
+ /**
80
+ * Returns a `Comp` instance that compares strings in a case-insensitive way.
81
+ */
82
+ function stringCaseInsensitiveComp(): Comp<string>;
83
+ /**
84
+ * Returns a string Comp instance that orders strings according to their indexed char codes.
85
+ */
86
+ function stringCharCodeComp(): Comp<string>;
87
+ /**
88
+ * Returns a any Comp instance that orders any according to their toString values.
89
+ */
90
+ function anyToStringComp(): Comp<any>;
91
+ /**
92
+ * Returns a Comp instance that orders objects with a `valueOf` method according to the given `valueComp` instance for the valueOf values.
93
+ * @param cls - the constructor of the values the Comp instance can compare
94
+ * @param valueComp - (optional) the Comp instance to use on the .valueOf values
95
+ */
96
+ function createValueOfComp<T extends {
97
+ valueOf(): V;
98
+ }, V>(cls: {
99
+ new (): T;
100
+ }, valueComp?: Comp<V>): Comp<T>;
101
+ /**
102
+ * Returns a Date Comp instance that orders Dates according to their `.valueOf` value.
103
+ */
104
+ function dateComp(): Comp<Date>;
105
+ /**
106
+ * Returns a Comp instance for Iterable objects that orders the Iterables by comparing the elements with the given `itemComp` Comp instance.
107
+ * @param itemComp - (optional) the Comp instance to use to compare the Iterable's elements.
108
+ * @example
109
+ * ```ts
110
+ * const c = Comp.iterableComp();
111
+ * console.log(c.compare([1, 3, 2], [1, 3, 2]))
112
+ * // => 0
113
+ * console.log(c.compare([1, 2, 3, 4], [1, 3, 2]) < 0)
114
+ * // => true
115
+ * ```
116
+ */
117
+ function iterableComp<T>(itemComp?: Comp<T>): Comp<Iterable<T>>;
118
+ /**
119
+ * Returns a Comp instance for objects that orders the object keys according to the given `keyComp`, and then compares the corresponding
120
+ * values using the given `valueComp`. Objects are then compared as follows:<br/>
121
+ * starting with the smallest key of either object:<br/>
122
+ * - if only one of the objects has the key, the object with the key is considered to be larger than the other<br/>
123
+ * - if both objects have the key, the values are compared with `valueComp`. If the values are not equal, this result is returned.<br/>
124
+ *
125
+ * if the objects have the same keys with the same values, they are considered equal<br/>
126
+ * @param keyComp - (optional) the Comp instance used to order the object keys
127
+ * @param valueComp - (optional) the Comp instance used to order the object values
128
+ * @example
129
+ * ```ts
130
+ * const c = Comp.objectComp();
131
+ * console.log(c.compare({ a: 1 }, { a: 1 }))
132
+ * // => 0
133
+ * console.log(c.compare({ a: 1 }, { a: 2 }) < 0)
134
+ * // => true
135
+ * console.log(c.compare({ b: 5 }, { a: 2 }) < 0)
136
+ * // => true
137
+ * console.log(c.compare({ a: 1, b: 2 }, { b: 5 }) < 0)
138
+ * // => true
139
+ * console.log(c.compare({ a: 1, b: 2 }, { b: 2, a: 1 }))
140
+ * // => 0
141
+ * ```
142
+ */
143
+ function objectComp(options?: {
144
+ keyComp?: Comp<any>;
145
+ valueComp?: Comp<any>;
146
+ }): Comp<Record<any, any>>;
147
+ /**
148
+ * Returns a Comp instance that compares any value using default comparison functions, but never recursively compares
149
+ * Iterables or objects. In those cases, it will use the stringComp instance.
150
+ * @example
151
+ * ```ts
152
+ * const c = Comp.anyFlatComp();
153
+ * console.log(c.compare({ a: 1, b: 1 }, { b: 1, a: 1 }) < 0)
154
+ * // => true
155
+ * // First object is smaller because the objects are converted to a string with and then compares the resulting string.
156
+ * ```
157
+ */
158
+ function anyFlatComp<T>(): Comp<T>;
159
+ /**
160
+ * Returns a Comp instance that compares any value using default comparison functions. For Iterables and objects, their elements are compared
161
+ * only one level deep for performance and to avoid infinite recursion.
162
+ * @example
163
+ * ```ts
164
+ * const c = Comp.anyShallowComp();
165
+ * console.log(c.compare({ a: 1, b: 1 }, { b: 1, a: 1 }))
166
+ * // => 0
167
+ * console.log(c.compare([{ a: 1, b: 1 }], [{ b: 1, a: 1 }]) < 0)
168
+ * // => true
169
+ * // First object is smaller because the objects are converted to a string and then compares the resulting string.
170
+ * ```
171
+ */
172
+ function anyShallowComp<T>(): Comp<T>;
173
+ /**
174
+ * Returns a Comp instance that compares any value using default comparison functions. For Iterables and objects, their elements are compared
175
+ * recursively.
176
+ * @note can become slow with large nested arrays and objects, and circular structures can cause infinite loops
177
+ * @example
178
+ * ```ts
179
+ * const c = Comp.anyDeepComp();
180
+ * console.log(c.compare({ a: 1, b: 1 }, { b: 1, a: 1 }))
181
+ * // => 0
182
+ * console.log(c.compare([{ a: 1, b: 1 }], [{ b: 1, a: 1 }]))
183
+ * // => 0
184
+ * ```
185
+ */
186
+ function anyDeepComp<T>(): Comp<T>;
187
+ /**
188
+ * Returns a Comp instance that extends the given `comp` instance with the capability to handle `undefined` values, where undefined is considered to be smaller
189
+ * than any other value, and equal to another undefined.
190
+ * @param comp - the Comp instance to wrap
191
+ * @example
192
+ * ```ts
193
+ * const c = Comp.withUndefined(Comp.numberComp())
194
+ * console.log(c.compare(undefined, 5) < 0)
195
+ * // => true
196
+ * console.log(c.compare(undefined, undefined))
197
+ * // => 0
198
+ * ```
199
+ */
200
+ function withUndefined<T>(comp: Comp<T>): Comp<T | undefined>;
201
+ /**
202
+ * Returns a Comp instance that extends the given `comp` instance with the capability to handle `null` values, where null is considered to be smaller
203
+ * than any other value, and equal to another null.
204
+ * @param comp - the Comp instance to wrap
205
+ * @example
206
+ * ```ts
207
+ * const c = Comp.withNull(Comp.numberComp())
208
+ * console.log(c.compare(null, 5) < 0)
209
+ * // => true
210
+ * console.log(c.compare(null, null))
211
+ * // => 0
212
+ * ```
213
+ */
214
+ function withNull<T>(comp: Comp<T>): Comp<T | null>;
215
+ /**
216
+ * Returns a Comp instance the reverses the order of the given `comp` instance.
217
+ * @param comp - the Comp instance to wrap
218
+ * @example
219
+ * ```ts
220
+ * const c = Comp.invert(Comp.numberComp())
221
+ * console.log(c.compare(3, 5) > 0)
222
+ * // => true
223
+ * console.log(c.compare(5, 5))
224
+ * // => 0
225
+ * ```
226
+ */
227
+ function invert<T>(comp: Comp<T>): Comp<T>;
228
+ /**
229
+ * Returns an `Eq` equality instance thet will return true when the given `comp` comparable instance returns 0.
230
+ * @param comp - the `Comp` comparable instance to convert
231
+ * @example
232
+ * ```ts
233
+ * const eq = Comp.toEq(Comp.objectComp())
234
+ * console.log(eq({ a: 1, b: 2 }, { b: 2, a: 1 }))
235
+ * // => true
236
+ * ```
237
+ */
238
+ function toEq<T>(comp: Comp<T>): Eq<T>;
239
+ }