@bgord/bun 1.10.13 → 1.10.14

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 (147) hide show
  1. package/dist/better-auth-logger.service.d.ts +1 -1
  2. package/dist/better-auth-logger.service.d.ts.map +1 -1
  3. package/dist/better-auth-logger.service.js.map +1 -1
  4. package/dist/cache-subject-application-resolver.vo.d.ts +2 -2
  5. package/dist/cache-subject-application-resolver.vo.d.ts.map +1 -1
  6. package/dist/cache-subject-application-resolver.vo.js.map +1 -1
  7. package/dist/cache-subject-request-resolver.vo.d.ts +2 -2
  8. package/dist/cache-subject-request-resolver.vo.d.ts.map +1 -1
  9. package/dist/cache-subject-request-resolver.vo.js.map +1 -1
  10. package/dist/csv-stringifier.adapter.d.ts +1 -1
  11. package/dist/csv-stringifier.adapter.d.ts.map +1 -1
  12. package/dist/csv-stringifier.adapter.js.map +1 -1
  13. package/dist/csv-stringifier.port.d.ts +1 -1
  14. package/dist/csv-stringifier.port.d.ts.map +1 -1
  15. package/dist/dispatching-event-store.d.ts +3 -3
  16. package/dist/dispatching-event-store.d.ts.map +1 -1
  17. package/dist/dispatching-event-store.js.map +1 -1
  18. package/dist/event-store-like.types.d.ts +1 -1
  19. package/dist/event-store-like.types.d.ts.map +1 -1
  20. package/dist/event-store.d.ts +4 -4
  21. package/dist/event-store.d.ts.map +1 -1
  22. package/dist/event-store.js.map +1 -1
  23. package/dist/file-draft-zip.service.d.ts +1 -1
  24. package/dist/file-draft-zip.service.d.ts.map +1 -1
  25. package/dist/file-draft-zip.service.js.map +1 -1
  26. package/dist/hcaptcha.service.d.ts +1 -1
  27. package/dist/hcaptcha.service.d.ts.map +1 -1
  28. package/dist/healthcheck.service.d.ts +2 -2
  29. package/dist/healthcheck.service.d.ts.map +1 -1
  30. package/dist/healthcheck.service.js.map +1 -1
  31. package/dist/http-logger.middleware.d.ts +1 -1
  32. package/dist/http-logger.middleware.d.ts.map +1 -1
  33. package/dist/id-provider-deterministic.adapter.d.ts +1 -1
  34. package/dist/id-provider-deterministic.adapter.d.ts.map +1 -1
  35. package/dist/id-provider-deterministic.adapter.js.map +1 -1
  36. package/dist/invariant-error-handler.service.d.ts +1 -1
  37. package/dist/invariant-error-handler.service.d.ts.map +1 -1
  38. package/dist/invariant-error-handler.service.js.map +1 -1
  39. package/dist/logger-collecting.adapter.d.ts +1 -1
  40. package/dist/logger-collecting.adapter.d.ts.map +1 -1
  41. package/dist/logger-collecting.adapter.js.map +1 -1
  42. package/dist/mailer-template.vo.d.ts +2 -2
  43. package/dist/mailer-template.vo.d.ts.map +1 -1
  44. package/dist/mailer-template.vo.js.map +1 -1
  45. package/dist/modules/history/ports/history-reader.d.ts +1 -1
  46. package/dist/modules/history/ports/history-reader.d.ts.map +1 -1
  47. package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts +1 -1
  48. package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts.map +1 -1
  49. package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.js.map +1 -1
  50. package/dist/modules/preferences/open-host-queries/user-language.d.ts +2 -2
  51. package/dist/modules/preferences/open-host-queries/user-language.d.ts.map +1 -1
  52. package/dist/modules/preferences/value-objects/supported-languages-set.d.ts +1 -1
  53. package/dist/modules/preferences/value-objects/supported-languages-set.d.ts.map +1 -1
  54. package/dist/nonce-provider-deterministic.adapter.d.ts +1 -1
  55. package/dist/nonce-provider-deterministic.adapter.d.ts.map +1 -1
  56. package/dist/nonce-provider-deterministic.adapter.js.map +1 -1
  57. package/dist/prerequisite-runner-startup.service.d.ts +1 -1
  58. package/dist/prerequisite-runner-startup.service.d.ts.map +1 -1
  59. package/dist/prerequisite-runner-startup.service.js.map +1 -1
  60. package/dist/prerequisite-verifier-os.adapter.d.ts +1 -1
  61. package/dist/prerequisite-verifier-os.adapter.d.ts.map +1 -1
  62. package/dist/prerequisite-verifier-os.adapter.js.map +1 -1
  63. package/dist/prerequisite-verifier-translations.adapter.js.map +1 -1
  64. package/dist/prerequisite.vo.d.ts +1 -1
  65. package/dist/prerequisite.vo.d.ts.map +1 -1
  66. package/dist/prerequisite.vo.js.map +1 -1
  67. package/dist/redactor-composite.strategy.d.ts +1 -1
  68. package/dist/redactor-composite.strategy.d.ts.map +1 -1
  69. package/dist/redactor-composite.strategy.js.map +1 -1
  70. package/dist/redactor-mask.strategy.d.ts +2 -2
  71. package/dist/redactor-mask.strategy.d.ts.map +1 -1
  72. package/dist/redactor-mask.strategy.js.map +1 -1
  73. package/dist/security-rule-and.strategy.d.ts +1 -1
  74. package/dist/security-rule-and.strategy.d.ts.map +1 -1
  75. package/dist/security-rule-and.strategy.js.map +1 -1
  76. package/dist/security-rule-bait-routes.strategy.d.ts +1 -1
  77. package/dist/security-rule-bait-routes.strategy.d.ts.map +1 -1
  78. package/dist/security-rule-bait-routes.strategy.js.map +1 -1
  79. package/dist/security-rule-or.strategy.d.ts +1 -1
  80. package/dist/security-rule-or.strategy.d.ts.map +1 -1
  81. package/dist/security-rule-or.strategy.js.map +1 -1
  82. package/dist/security-rule-user-agent.strategy.d.ts +1 -1
  83. package/dist/security-rule-user-agent.strategy.d.ts.map +1 -1
  84. package/dist/security-rule-user-agent.strategy.js.map +1 -1
  85. package/dist/shield-csrf.strategy.d.ts +1 -1
  86. package/dist/shield-csrf.strategy.d.ts.map +1 -1
  87. package/dist/shield-security.strategy.d.ts +1 -1
  88. package/dist/shield-security.strategy.d.ts.map +1 -1
  89. package/dist/shield-security.strategy.js.map +1 -1
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/dist/woodchopper-diagnostics-collecting.strategy.d.ts +1 -1
  92. package/dist/woodchopper-diagnostics-collecting.strategy.d.ts.map +1 -1
  93. package/dist/woodchopper-diagnostics-collecting.strategy.js.map +1 -1
  94. package/dist/woodchopper-dispatcher-async.strategy.d.ts.map +1 -1
  95. package/dist/woodchopper-dispatcher-async.strategy.js.map +1 -1
  96. package/dist/woodchopper-sampling-composite.strategy.d.ts +1 -1
  97. package/dist/woodchopper-sampling-composite.strategy.d.ts.map +1 -1
  98. package/dist/woodchopper-sampling-composite.strategy.js.map +1 -1
  99. package/dist/woodchopper-sampling-pass-component.strategy.d.ts +1 -1
  100. package/dist/woodchopper-sampling-pass-component.strategy.d.ts.map +1 -1
  101. package/dist/woodchopper-sampling-pass-component.strategy.js.map +1 -1
  102. package/dist/woodchopper-sampling-pass-level.strategy.d.ts +1 -1
  103. package/dist/woodchopper-sampling-pass-level.strategy.d.ts.map +1 -1
  104. package/dist/woodchopper-sampling-pass-level.strategy.js.map +1 -1
  105. package/dist/woodchopper-sink-collecting.strategy.d.ts +1 -1
  106. package/dist/woodchopper-sink-collecting.strategy.d.ts.map +1 -1
  107. package/dist/woodchopper-sink-collecting.strategy.js.map +1 -1
  108. package/package.json +5 -5
  109. package/src/better-auth-logger.service.ts +1 -1
  110. package/src/cache-subject-application-resolver.vo.ts +2 -2
  111. package/src/cache-subject-request-resolver.vo.ts +4 -2
  112. package/src/csv-stringifier.adapter.ts +1 -1
  113. package/src/csv-stringifier.port.ts +1 -1
  114. package/src/dispatching-event-store.ts +8 -3
  115. package/src/event-store-like.types.ts +1 -1
  116. package/src/event-store.ts +8 -8
  117. package/src/file-draft-zip.service.ts +3 -3
  118. package/src/hcaptcha.service.ts +1 -1
  119. package/src/healthcheck.service.ts +4 -4
  120. package/src/http-logger.middleware.ts +1 -1
  121. package/src/id-provider-deterministic.adapter.ts +1 -1
  122. package/src/invariant-error-handler.service.ts +1 -1
  123. package/src/logger-collecting.adapter.ts +2 -2
  124. package/src/mailer-template.vo.ts +1 -1
  125. package/src/modules/history/ports/history-reader.ts +1 -1
  126. package/src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts +1 -1
  127. package/src/modules/preferences/open-host-queries/user-language.ts +2 -2
  128. package/src/modules/preferences/value-objects/supported-languages-set.ts +1 -1
  129. package/src/nonce-provider-deterministic.adapter.ts +2 -2
  130. package/src/prerequisite-runner-startup.service.ts +1 -1
  131. package/src/prerequisite-verifier-os.adapter.ts +1 -1
  132. package/src/prerequisite-verifier-translations.adapter.ts +2 -2
  133. package/src/prerequisite.vo.ts +5 -2
  134. package/src/redactor-composite.strategy.ts +1 -1
  135. package/src/redactor-mask.strategy.ts +2 -2
  136. package/src/security-rule-and.strategy.ts +1 -1
  137. package/src/security-rule-bait-routes.strategy.ts +1 -1
  138. package/src/security-rule-or.strategy.ts +1 -1
  139. package/src/security-rule-user-agent.strategy.ts +1 -1
  140. package/src/shield-csrf.strategy.ts +1 -1
  141. package/src/shield-security.strategy.ts +1 -1
  142. package/src/woodchopper-diagnostics-collecting.strategy.ts +1 -1
  143. package/src/woodchopper-dispatcher-async.strategy.ts +1 -1
  144. package/src/woodchopper-sampling-composite.strategy.ts +1 -1
  145. package/src/woodchopper-sampling-pass-component.strategy.ts +1 -1
  146. package/src/woodchopper-sampling-pass-level.strategy.ts +1 -1
  147. package/src/woodchopper-sink-collecting.strategy.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  import type { WoodchopperDiagnosticsStrategy, WoodchopperDiagnosticType } from "./woodchopper-diagnostics.strategy";
2
2
  export declare class WoodchopperDiagnosticsCollecting implements WoodchopperDiagnosticsStrategy {
3
- readonly entries: WoodchopperDiagnosticType[];
3
+ readonly entries: Array<WoodchopperDiagnosticType>;
4
4
  handle(diagnostic: WoodchopperDiagnosticType): void;
5
5
  }
6
6
  //# sourceMappingURL=woodchopper-diagnostics-collecting.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-diagnostics-collecting.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-diagnostics-collecting.strategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,8BAA8B,EAC9B,yBAAyB,EAC1B,MAAM,oCAAoC,CAAC;AAE5C,qBAAa,gCAAiC,YAAW,8BAA8B;IACrF,QAAQ,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAM;IAEnD,MAAM,CAAC,UAAU,EAAE,yBAAyB,GAAG,IAAI;CAGpD"}
1
+ {"version":3,"file":"woodchopper-diagnostics-collecting.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-diagnostics-collecting.strategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,8BAA8B,EAC9B,yBAAyB,EAC1B,MAAM,oCAAoC,CAAC;AAE5C,qBAAa,gCAAiC,YAAW,8BAA8B;IACrF,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAM;IAExD,MAAM,CAAC,UAAU,EAAE,yBAAyB,GAAG,IAAI;CAGpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-diagnostics-collecting.strategy.js","sourceRoot":"","sources":["../src/woodchopper-diagnostics-collecting.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,OAAO,gCAAgC;IAClC,OAAO,GAAgC,EAAE,CAAC;IAEnD,MAAM,CAAC,UAAqC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;CACF"}
1
+ {"version":3,"file":"woodchopper-diagnostics-collecting.strategy.js","sourceRoot":"","sources":["../src/woodchopper-diagnostics-collecting.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D,MAAM,OAAO,gCAAgC;IAClC,OAAO,GAAqC,EAAE,CAAC;IAExD,MAAM,CAAC,UAAqC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-dispatcher-async.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAO3E,eAAO,MAAM,+BAA+B;uCACP,KAAK,CAAC,mBAAmB;CAE7D,CAAC;AAEF,qBAAa,0BAA2B,YAAW,qBAAqB;IASpE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,KAAK,CAA2C;IAExD,OAAO,CAAC,IAAI,CAAC,CAAa;gBAGP,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,GAAE,KAAK,CAAC,mBAAsD;IAKzF,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAWrC,KAAK,IAAI,IAAI;YAqBC,GAAG;YAkBH,YAAY;YAKZ,YAAY;CAK3B"}
1
+ {"version":3,"file":"woodchopper-dispatcher-async.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAO3E,eAAO,MAAM,+BAA+B;uCACP,KAAK,CAAC,mBAAmB;CAE7D,CAAC;AAEF,qBAAa,0BAA2B,YAAW,qBAAqB;IASpE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,KAAK,CAA2C;IAExD,OAAO,CAAC,IAAI,CAAC,CAAa;gBAGP,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,GAAE,KAAK,CAAC,mBAAsD;IAKzF,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAWrC,KAAK,IAAI,IAAI;YAqBC,GAAG;YAkBH,YAAY;YAKZ,YAAY;CAK3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-dispatcher-async.strategy.js","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,IAAK,+BAGJ;AAHD,WAAK,+BAA+B;IAClC,sDAAmB,CAAA;IACnB,oDAAiB,CAAA;AACnB,CAAC,EAHI,+BAA+B,KAA/B,+BAA+B,QAGnC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,yBAAyB,EAAE,CAAC,KAAgC,EAAE,EAAE,CAC9D,6DAA6D,KAAK,EAAE;CACvE,CAAC;AAEF,MAAM,OAAO,0BAA0B;IASlB;IACA;IATnB,OAAO,CAA4B;IAElB,MAAM,GAAkB,EAAE,CAAC;IACpC,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC;IAEhD,IAAI,CAAc;IAE1B,YACmB,IAA6B,EAC7B,WAAsC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QADtE,SAAI,GAAJ,IAAI,CAAyB;QAC7B,aAAQ,GAAR,QAAQ,CAA8D;QAEvF,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO;QAClE,sBAAsB;QAEtB,IAAI,CAAC,KAAK,GAAG,+BAA+B,CAAC,MAAM,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,+BAA+B,CAAC,yBAAyB,CACvE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAChD,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvB,wCAAwC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,OAAO,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAE1B,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAoB,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"woodchopper-dispatcher-async.strategy.js","sourceRoot":"","sources":["../src/woodchopper-dispatcher-async.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,IAAK,+BAGJ;AAHD,WAAK,+BAA+B;IAClC,sDAAmB,CAAA;IACnB,oDAAiB,CAAA;AACnB,CAAC,EAHI,+BAA+B,KAA/B,+BAA+B,QAGnC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,yBAAyB,EAAE,CAAC,KAAgC,EAAE,EAAE,CAC9D,6DAA6D,KAAK,EAAE;CACvE,CAAC;AAEF,MAAM,OAAO,0BAA0B;IASlB;IACA;IATnB,OAAO,CAA4B;IAElB,MAAM,GAAuB,EAAE,CAAC;IACzC,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC;IAEhD,IAAI,CAAc;IAE1B,YACmB,IAA6B,EAC7B,WAAsC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QADtE,SAAI,GAAJ,IAAI,CAAyB;QAC7B,aAAQ,GAAR,QAAQ,CAA8D;QAEvF,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,MAAM;YAAE,OAAO;QAClE,sBAAsB;QAEtB,IAAI,CAAC,KAAK,GAAG,+BAA+B,CAAC,MAAM,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,+BAA+B,CAAC,yBAAyB,CACvE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAChD,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvB,wCAAwC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,OAAO,IAAI,CAAC,KAAK,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAE1B,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAoB,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { LoggerEntry } from "./logger.port";
2
2
  import type { WoodchoperSamplingStrategy } from "./woodchopper-sampling.strategy";
3
3
  export declare class WoodchopperSamplingComposite implements WoodchoperSamplingStrategy {
4
4
  private readonly strategies;
5
- constructor(strategies: readonly WoodchoperSamplingStrategy[]);
5
+ constructor(strategies: ReadonlyArray<WoodchoperSamplingStrategy>);
6
6
  decide(entry: LoggerEntry): boolean;
7
7
  }
8
8
  //# sourceMappingURL=woodchopper-sampling-composite.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sampling-composite.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sampling-composite.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,4BAA6B,YAAW,0BAA0B;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS,0BAA0B,EAAE;IAE9E,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;CAOpC"}
1
+ {"version":3,"file":"woodchopper-sampling-composite.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sampling-composite.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,4BAA6B,YAAW,0BAA0B;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,aAAa,CAAC,0BAA0B,CAAC;IAElF,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;CAOpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sampling-composite.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sampling-composite.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,4BAA4B;IACV;IAA7B,YAA6B,UAAiD;QAAjD,eAAU,GAAV,UAAU,CAAuC;IAAG,CAAC;IAElF,MAAM,CAAC,KAAkB;QACvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"woodchopper-sampling-composite.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sampling-composite.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,4BAA4B;IACV;IAA7B,YAA6B,UAAqD;QAArD,eAAU,GAAV,UAAU,CAA2C;IAAG,CAAC;IAEtF,MAAM,CAAC,KAAkB;QACvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { LoggerEntry } from "./logger.port";
2
2
  import type { WoodchoperSamplingStrategy } from "./woodchopper-sampling.strategy";
3
3
  export declare class WoodchopperSamplingPassComponent implements WoodchoperSamplingStrategy {
4
4
  private readonly components;
5
- constructor(components: LoggerEntry["component"][]);
5
+ constructor(components: ReadonlyArray<LoggerEntry["component"]>);
6
6
  decide(entry: LoggerEntry): boolean;
7
7
  }
8
8
  //# sourceMappingURL=woodchopper-sampling-pass-component.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sampling-pass-component.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-component.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,gCAAiC,YAAW,0BAA0B;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE;IAEnE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;CAGpC"}
1
+ {"version":3,"file":"woodchopper-sampling-pass-component.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-component.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,gCAAiC,YAAW,0BAA0B;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAEhF,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;CAGpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sampling-pass-component.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-component.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gCAAgC;IACd;IAA7B,YAA6B,UAAsC;QAAtC,eAAU,GAAV,UAAU,CAA4B;IAAG,CAAC;IAEvE,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF"}
1
+ {"version":3,"file":"woodchopper-sampling-pass-component.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-component.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gCAAgC;IACd;IAA7B,YAA6B,UAAmD;QAAnD,eAAU,GAAV,UAAU,CAAyC;IAAG,CAAC;IAEpF,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { LoggerEntry, LogLevelEnum } from "./logger.port";
2
2
  import type { WoodchoperSamplingStrategy } from "./woodchopper-sampling.strategy";
3
3
  export declare class WoodchopperSamplingPassLevel implements WoodchoperSamplingStrategy {
4
4
  private readonly levels;
5
- constructor(levels: LogLevelEnum[]);
5
+ constructor(levels: ReadonlyArray<LogLevelEnum>);
6
6
  decide(entry: LoggerEntry): boolean;
7
7
  }
8
8
  //# sourceMappingURL=woodchopper-sampling-pass-level.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sampling-pass-level.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-level.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,4BAA6B,YAAW,0BAA0B;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY,EAAE;IAEnD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;CAGpC"}
1
+ {"version":3,"file":"woodchopper-sampling-pass-level.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-level.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,4BAA6B,YAAW,0BAA0B;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC;IAEhE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;CAGpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sampling-pass-level.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-level.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,4BAA4B;IACV;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"woodchopper-sampling-pass-level.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sampling-pass-level.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,4BAA4B;IACV;IAA7B,YAA6B,MAAmC;QAAnC,WAAM,GAAN,MAAM,CAA6B;IAAG,CAAC;IAEpE,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { WoodchopperSinkStrategy } from "../src/woodchopper-sink.strategy";
2
2
  import type { LoggerEntry } from "./logger.port";
3
3
  export declare class WoodchopperSinkCollecting implements WoodchopperSinkStrategy {
4
- readonly entries: LoggerEntry[];
4
+ readonly entries: Array<LoggerEntry>;
5
5
  write(entry: LoggerEntry): void;
6
6
  }
7
7
  //# sourceMappingURL=woodchopper-sink-collecting.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sink-collecting.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sink-collecting.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,yBAA0B,YAAW,uBAAuB;IACvE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAM;IAErC,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAGhC"}
1
+ {"version":3,"file":"woodchopper-sink-collecting.strategy.d.ts","sourceRoot":"","sources":["../src/woodchopper-sink-collecting.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,yBAA0B,YAAW,uBAAuB;IACvE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAM;IAE1C,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAGhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodchopper-sink-collecting.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sink-collecting.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;IAC3B,OAAO,GAAkB,EAAE,CAAC;IAErC,KAAK,CAAC,KAAkB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"woodchopper-sink-collecting.strategy.js","sourceRoot":"","sources":["../src/woodchopper-sink-collecting.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;IAC3B,OAAO,GAAuB,EAAE,CAAC;IAE1C,KAAK,CAAC,KAAkB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgord/bun",
3
- "version": "1.10.13",
3
+ "version": "1.10.14",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "author": "Bartosz Gordon",
@@ -30,10 +30,10 @@
30
30
  "better-auth": "1.4.18",
31
31
  "cspell": "9.6.4",
32
32
  "csv": "6.4.1",
33
- "knip": "5.83.0",
33
+ "knip": "5.83.1",
34
34
  "lefthook": "2.1.0",
35
35
  "lockfile-lint": "5.0.0",
36
- "nodemailer": "8.0.0",
36
+ "nodemailer": "8.0.1",
37
37
  "only-allow": "1.2.2",
38
38
  "resend": "6.9.1",
39
39
  "sharp": "0.34.5",
@@ -43,14 +43,14 @@
43
43
  "zod": "4.3.6"
44
44
  },
45
45
  "dependencies": {
46
- "@bgord/tools": "1.3.13",
46
+ "@bgord/tools": "1.3.14",
47
47
  "hono": "4.11.8",
48
48
  "node-cache": "5.1.2"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "better-auth": "1.4.18",
52
52
  "csv": "6.4.1",
53
- "nodemailer": "8.0.0",
53
+ "nodemailer": "8.0.1",
54
54
  "resend": "6.9.1",
55
55
  "sharp": "0.34.5",
56
56
  "yazl": "3.3.1",
@@ -11,7 +11,7 @@ export class BetterAuthLogger {
11
11
  return {
12
12
  disabled: false,
13
13
  level: "debug",
14
- log: (lvl: LogLevel | undefined, message: string, ...args: unknown[]) => {
14
+ log: (lvl: LogLevel | undefined, message: string, ...args: ReadonlyArray<unknown>) => {
15
15
  const level = this.mapLevel(lvl);
16
16
  const base = { component: "infra", operation: "better-auth", message, metadata: { args } } as const;
17
17
 
@@ -14,14 +14,14 @@ export class CacheSubjectApplicationResolver {
14
14
  private readonly SEPARATOR = "|";
15
15
 
16
16
  constructor(
17
- private readonly segments: CacheSubjectSegmentApplicationStrategy[],
17
+ private readonly segments: ReadonlyArray<CacheSubjectSegmentApplicationStrategy>,
18
18
  private readonly deps: Dependencies,
19
19
  ) {
20
20
  if (this.segments.length === 0) throw new Error(CacheSubjectApplicationResolverError.NoSegments);
21
21
  if (this.segments.length > 10) throw new Error(CacheSubjectApplicationResolverError.TooManySegments);
22
22
  }
23
23
 
24
- async resolve(): Promise<{ hex: Hash; raw: CacheSubjectSegmentType[] }> {
24
+ async resolve(): Promise<{ hex: Hash; raw: ReadonlyArray<CacheSubjectSegmentType> }> {
25
25
  const segments = this.segments.map((segment) =>
26
26
  segment.create().replaceAll(this.SEPARATOR, encodeURIComponent(this.SEPARATOR)),
27
27
  );
@@ -17,14 +17,16 @@ export class CacheSubjectRequestResolver {
17
17
  private readonly SEPARATOR = "|";
18
18
 
19
19
  constructor(
20
- private readonly segments: CacheSubjectSegmentRequestStrategy[],
20
+ private readonly segments: ReadonlyArray<CacheSubjectSegmentRequestStrategy>,
21
21
  private readonly deps: Dependencies,
22
22
  ) {
23
23
  if (this.segments.length === 0) throw new Error(CacheSubjectRequestResolverError.NoSegments);
24
24
  if (this.segments.length > 10) throw new Error(CacheSubjectRequestResolverError.TooManySegments);
25
25
  }
26
26
 
27
- async resolve(context: RequestContext): Promise<{ hex: Hash; raw: CacheSubjectSegmentType[] }> {
27
+ async resolve(
28
+ context: RequestContext,
29
+ ): Promise<{ hex: Hash; raw: ReadonlyArray<CacheSubjectSegmentType> }> {
28
30
  const segments = this.segments.map((segment) =>
29
31
  segment.create(context).replaceAll(this.SEPARATOR, encodeURIComponent(this.SEPARATOR)),
30
32
  );
@@ -27,7 +27,7 @@ export class CsvStringifierAdapter implements CsvStringifierPort {
27
27
  return import(name) as Promise<CsvLibrary>;
28
28
  }
29
29
 
30
- async process(columns: CsvColumnType[], data: CsvRowType[]): Promise<string> {
30
+ async process(columns: ReadonlyArray<CsvColumnType>, data: Array<CsvRowType>): Promise<string> {
31
31
  return text(this.csv.stringify(data, { header: true, columns }));
32
32
  }
33
33
  }
@@ -2,5 +2,5 @@ export type CsvColumnType = string;
2
2
  export type CsvRowType = Record<string, any>;
3
3
 
4
4
  export interface CsvStringifierPort {
5
- process(columns: CsvColumnType[], data: CsvRowType[]): Promise<string>;
5
+ process(columns: ReadonlyArray<CsvColumnType>, data: ReadonlyArray<CsvRowType>): Promise<string>;
6
6
  }
@@ -11,15 +11,20 @@ export class DispatchingEventStore<AllEvents extends GenericEventSchema> extends
11
11
 
12
12
  constructor(
13
13
  config: {
14
- finder: (stream: EventStreamType, names: string[]) => Promise<z.infer<GenericEventSchema>[]>;
15
- inserter: (events: z.infer<GenericParsedEventSchema>[]) => Promise<z.infer<GenericParsedEventSchema>[]>;
14
+ finder: (
15
+ stream: EventStreamType,
16
+ names: ReadonlyArray<string>,
17
+ ) => Promise<ReadonlyArray<z.infer<GenericEventSchema>>>;
18
+ inserter: (
19
+ events: ReadonlyArray<z.infer<GenericParsedEventSchema>>,
20
+ ) => Promise<ReadonlyArray<z.infer<GenericParsedEventSchema>>>;
16
21
  },
17
22
  private readonly publisher: EventPublisher<ToEventMap<z.infer<AllEvents>>>,
18
23
  ) {
19
24
  super(config);
20
25
  }
21
26
 
22
- async save(_events: z.infer<AllEvents>[]): Promise<z.infer<AllEvents>[]> {
27
+ async save(_events: ReadonlyArray<z.infer<AllEvents>>): Promise<ReadonlyArray<z.infer<AllEvents>>> {
23
28
  // We receive the events with the `revision` fields added by the inserter,
24
29
  // so the read models can receive them.
25
30
  const events = await super.save(_events);
@@ -1,3 +1,3 @@
1
1
  export type EventStoreLike<E extends { name: string }> = {
2
- save(events: E[]): Promise<unknown>;
2
+ save(events: ReadonlyArray<E>): Promise<unknown>;
3
3
  };
@@ -7,12 +7,12 @@ export type EventNameType = z.infer<GenericEventSchema["shape"]["name"]>;
7
7
 
8
8
  type FindEventsHandler = (
9
9
  stream: EventStreamType,
10
- acceptedEventsNames: EventNameType[],
11
- ) => Promise<z.infer<GenericEventSchema>[]>;
10
+ acceptedEventsNames: ReadonlyArray<EventNameType>,
11
+ ) => Promise<ReadonlyArray<z.infer<GenericEventSchema>>>;
12
12
 
13
13
  type InserterEventsHandler = (
14
- events: z.infer<GenericParsedEventSchema>[],
15
- ) => Promise<z.infer<GenericParsedEventSchema>[]>;
14
+ events: ReadonlyArray<z.infer<GenericParsedEventSchema>>,
15
+ ) => Promise<ReadonlyArray<z.infer<GenericParsedEventSchema>>>;
16
16
 
17
17
  type EventStoreConfigType = { finder: FindEventsHandler; inserter: InserterEventsHandler };
18
18
 
@@ -21,10 +21,10 @@ export class EventStore<AllEvents extends GenericEventSchema> {
21
21
 
22
22
  static EMPTY_STREAM_REVISION = -1;
23
23
 
24
- async find<AcceptedEvents extends readonly AllEvents[]>(
24
+ async find<AcceptedEvents extends ReadonlyArray<AllEvents>>(
25
25
  acceptedEvents: AcceptedEvents,
26
26
  stream: EventStreamType,
27
- ): Promise<z.infer<AcceptedEvents[number]>[]> {
27
+ ): Promise<ReadonlyArray<z.infer<AcceptedEvents[number]>>> {
28
28
  const acceptedEventsNames = acceptedEvents.map((event) => event.shape.name.value);
29
29
 
30
30
  const rows = await this.config.finder(stream, acceptedEventsNames);
@@ -35,7 +35,7 @@ export class EventStore<AllEvents extends GenericEventSchema> {
35
35
  .filter((event): event is z.infer<AcceptedEvents[number]> => event !== undefined);
36
36
  }
37
37
 
38
- async save(events: z.infer<AllEvents>[]): Promise<z.infer<AllEvents>[]> {
38
+ async save(events: ReadonlyArray<z.infer<AllEvents>>): Promise<ReadonlyArray<z.infer<AllEvents>>> {
39
39
  if (!events[0]) return [];
40
40
 
41
41
  const stream = events[0].stream;
@@ -51,7 +51,7 @@ export class EventStore<AllEvents extends GenericEventSchema> {
51
51
  return processed.map((event) => ({
52
52
  ...event,
53
53
  payload: JSON.parse(event.payload),
54
- })) as z.infer<AllEvents>[];
54
+ })) as Array<z.infer<AllEvents>>;
55
55
  }
56
56
  }
57
57
 
@@ -11,13 +11,13 @@ type YazlLibrary = typeof import("yazl");
11
11
  export class FileDraftZip extends FileDraft {
12
12
  private constructor(
13
13
  basename: tools.BasenameType,
14
- private readonly parts: FileDraft[],
14
+ private readonly parts: ReadonlyArray<FileDraft>,
15
15
  private readonly yazl: YazlLibrary,
16
16
  ) {
17
17
  super(basename, tools.Extension.parse("zip"), tools.Mimes.zip.mime);
18
18
  }
19
19
 
20
- static async build(basename: tools.BasenameType, parts: FileDraft[]): Promise<FileDraftZip> {
20
+ static async build(basename: tools.BasenameType, parts: ReadonlyArray<FileDraft>): Promise<FileDraftZip> {
21
21
  return new FileDraftZip(basename, parts, await FileDraftZip.resolve());
22
22
  }
23
23
 
@@ -36,7 +36,7 @@ export class FileDraftZip extends FileDraft {
36
36
 
37
37
  async create(): Promise<BodyInit> {
38
38
  const zip = new this.yazl.ZipFile();
39
- const chunks: Buffer[] = [];
39
+ const chunks: Array<Buffer> = [];
40
40
 
41
41
  zip.outputStream.on("data", (buffer: Buffer) => chunks.push(buffer));
42
42
 
@@ -4,7 +4,7 @@ export const HCaptchaServiceError = { Error: "hcaptcha.service.error" };
4
4
 
5
5
  type HcaptchaTokenType = string | undefined;
6
6
 
7
- export type HCaptchaVerificationResult = { success: boolean; errorCodes?: string[] };
7
+ export type HCaptchaVerificationResult = { success: boolean; errorCodes?: ReadonlyArray<string> };
8
8
 
9
9
  export class HCaptchaService {
10
10
  async verify(
@@ -22,7 +22,7 @@ import { Uptime, type UptimeResultType } from "./uptime.service";
22
22
 
23
23
  type HealthcheckConfigType = {
24
24
  Env: NodeEnvironmentEnum;
25
- prerequisites: Prerequisite[];
25
+ prerequisites: ReadonlyArray<Prerequisite>;
26
26
  redactor?: RedactorStrategy;
27
27
  };
28
28
 
@@ -64,11 +64,11 @@ type HealthcheckResultType = {
64
64
  };
65
65
  inFlight: tools.IntegerType;
66
66
  };
67
- details: {
67
+ details: ReadonlyArray<{
68
68
  label: PrerequisiteLabelType;
69
69
  outcome: PrerequisiteVerificationResult;
70
70
  durationMs: tools.DurationMsType;
71
- }[];
71
+ }>;
72
72
  logger?: LoggerStatsSnapshot;
73
73
  durationMs: tools.Duration["ms"];
74
74
  timestamp: tools.TimestampValueType;
@@ -83,7 +83,7 @@ export class Healthcheck {
83
83
  .filter((prerequisite) => prerequisite.enabled)
84
84
  .filter((prerequisite) => prerequisite.kind !== "port");
85
85
 
86
- const details: HealthcheckResultType["details"][number][] = await Promise.all(
86
+ const details = await Promise.all(
87
87
  prerequisites.map(async (prerequisite) => {
88
88
  const stopwatch = new Stopwatch(deps);
89
89
 
@@ -30,7 +30,7 @@ export const UNINFORMATIVE_HEADERS = [
30
30
 
31
31
  type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
32
32
 
33
- export type HttpLoggerOptions = { skip?: readonly string[] };
33
+ export type HttpLoggerOptions = { skip?: ReadonlyArray<string> };
34
34
 
35
35
  export class HttpLogger {
36
36
  static build = (deps: Dependencies, options?: HttpLoggerOptions) =>
@@ -6,7 +6,7 @@ export const IdProviderDeterministicAdapterError = {
6
6
  };
7
7
 
8
8
  export class IdProviderDeterministicAdapter implements IdProviderPort {
9
- constructor(private readonly queue: UUIDType[]) {}
9
+ constructor(private readonly queue: Array<UUIDType>) {}
10
10
 
11
11
  generate(): UUIDType {
12
12
  const next = this.queue.shift();
@@ -6,7 +6,7 @@ type InvariantMessageType = BaseInvariantType["message"];
6
6
  type ErrorResponseTupleType = [{ message: InvariantMessageType; _known: true }, ContentfulStatusCode];
7
7
 
8
8
  export class InvariantErrorHandler {
9
- static detect(invariants: BaseInvariantType[], error: unknown): BaseInvariantType | undefined {
9
+ static detect(invariants: ReadonlyArray<BaseInvariantType>, error: unknown): BaseInvariantType | undefined {
10
10
  return invariants.find((invariant) => error instanceof invariant.error);
11
11
  }
12
12
 
@@ -8,13 +8,13 @@ import type {
8
8
  } from "./logger.port";
9
9
 
10
10
  export class LoggerCollectingAdapter implements LoggerPort {
11
- readonly entries: (
11
+ readonly entries: Array<
12
12
  | Omit<LogErrorType, AdapterInjectedFields>
13
13
  | Omit<LogWarnType, AdapterInjectedFields>
14
14
  | Omit<LogCoreType, AdapterInjectedFields>
15
15
  | Omit<LogHttpType, AdapterInjectedFields>
16
16
  | Omit<LogCoreType, AdapterInjectedFields>
17
- )[] = [];
17
+ > = [];
18
18
 
19
19
  warn: LoggerPort["warn"] = (log): void => {
20
20
  this.entries.push(log);
@@ -18,7 +18,7 @@ export class MailerTemplate {
18
18
  constructor(
19
19
  readonly config: MailerTemplateConfig,
20
20
  readonly message: MailerTemplateMessage,
21
- readonly attachments?: MailerTemplateAttachmentType[],
21
+ readonly attachments?: Array<MailerTemplateAttachmentType>,
22
22
  ) {}
23
23
 
24
24
  toJSON() {
@@ -1,5 +1,5 @@
1
1
  import type * as VO from "../value-objects";
2
2
 
3
3
  export interface HistoryReaderPort {
4
- read(subject: VO.HistoryParsedType["subject"]): Promise<VO.HistoryType[]>;
4
+ read(subject: VO.HistoryParsedType["subject"]): Promise<ReadonlyArray<VO.HistoryType>>;
5
5
  }
@@ -19,7 +19,7 @@ type Dependencies = {
19
19
  type AcceptedEvent = Events.UserLanguageSetEventType;
20
20
 
21
21
  export const handleSetUserLanguageCommand =
22
- <L extends readonly tools.LanguageType[]>(supported: VO.SupportedLanguagesSet<L>, deps: Dependencies) =>
22
+ <L extends ReadonlyArray<tools.LanguageType>>(supported: VO.SupportedLanguagesSet<L>, deps: Dependencies) =>
23
23
  async (command: Commands.SetUserLanguageCommandType) => {
24
24
  const candidate = supported.ensure(command.payload.language);
25
25
  const current = await deps.UserLanguageQuery.get(command.payload.userId);
@@ -3,11 +3,11 @@ import type { UUIDType } from "../../../uuid.vo";
3
3
  import type * as Ports from "../ports";
4
4
  import type * as VO from "../value-objects";
5
5
 
6
- export interface UserLanguagePort<L extends readonly tools.LanguageType[]> {
6
+ export interface UserLanguagePort<L extends ReadonlyArray<tools.LanguageType>> {
7
7
  get(userId: UUIDType): Promise<L[number]>;
8
8
  }
9
9
 
10
- export class UserLanguageAdapter<L extends readonly tools.LanguageType[]> implements UserLanguagePort<L> {
10
+ export class UserLanguageAdapter<L extends ReadonlyArray<tools.LanguageType>> implements UserLanguagePort<L> {
11
11
  constructor(
12
12
  private readonly query: Ports.UserLanguageQueryPort,
13
13
  private readonly validator: VO.SupportedLanguagesSet<L>,
@@ -2,7 +2,7 @@ import type * as tools from "@bgord/tools";
2
2
 
3
3
  export const SupportedLanguagesSetError = { Missing: "supported.languages.set.error.missing" };
4
4
 
5
- export class SupportedLanguagesSet<L extends readonly tools.LanguageType[]> {
5
+ export class SupportedLanguagesSet<L extends ReadonlyArray<tools.LanguageType>> {
6
6
  private readonly index: Set<tools.LanguageType>;
7
7
 
8
8
  constructor(allowed: L) {
@@ -6,9 +6,9 @@ export const NonceProviderDeterministicAdapterError = {
6
6
  };
7
7
 
8
8
  export class NonceProviderDeterministicAdapter implements NonceProviderPort {
9
- private readonly queue: NonceValueType[];
9
+ private readonly queue: Array<NonceValueType>;
10
10
 
11
- constructor(sequence: NonceValueType[]) {
11
+ constructor(sequence: ReadonlyArray<NonceValueType>) {
12
12
  this.queue = [...sequence];
13
13
  }
14
14
 
@@ -13,7 +13,7 @@ export class PrerequisiteRunnerStartup {
13
13
 
14
14
  constructor(private readonly deps: Dependencies) {}
15
15
 
16
- async check(prerequisites: Prerequisite[]) {
16
+ async check(prerequisites: ReadonlyArray<Prerequisite>) {
17
17
  const result = await Promise.all(
18
18
  prerequisites
19
19
  .filter((prerequisite) => prerequisite.enabled)
@@ -6,7 +6,7 @@ import {
6
6
  } from "./prerequisite-verifier.port";
7
7
 
8
8
  export class PrerequisiteVerifierOsAdapter implements PrerequisiteVerifierPort {
9
- constructor(private readonly config: { accepted: string[] }) {}
9
+ constructor(private readonly config: { accepted: ReadonlyArray<string> }) {}
10
10
 
11
11
  async verify(): Promise<PrerequisiteVerificationResult> {
12
12
  const type = os.type().toLowerCase();
@@ -29,7 +29,7 @@ export class PrerequisiteVerifierTranslationsAdapter implements PrerequisiteVeri
29
29
  const supportedLanguages = Object.keys(this.config.supportedLanguages);
30
30
  const i18n = new I18n(this.deps);
31
31
 
32
- const dictionary: Partial<Record<tools.LanguageType, types.TranslationsKeyType[]>> = {};
32
+ const dictionary: Partial<Record<tools.LanguageType, ReadonlyArray<types.TranslationsKeyType>>> = {};
33
33
 
34
34
  for (const language of supportedLanguages) {
35
35
  try {
@@ -40,7 +40,7 @@ export class PrerequisiteVerifierTranslationsAdapter implements PrerequisiteVeri
40
40
  }
41
41
  }
42
42
 
43
- const problems: PrerequisiteTranslationsProblemType[] = [];
43
+ const problems: Array<PrerequisiteTranslationsProblemType> = [];
44
44
 
45
45
  for (const language in dictionary) {
46
46
  // Stryker disable all
@@ -3,10 +3,13 @@ import type { PrerequisiteVerifierPort } from "./prerequisite-verifier.port";
3
3
 
4
4
  export type PrerequisiteLabelType = string;
5
5
 
6
- type PrerequisiteConfigType = { decorators?: PrerequisiteVerifierDecorator[]; enabled?: boolean };
6
+ type PrerequisiteConfigType = {
7
+ decorators?: ReadonlyArray<PrerequisiteVerifierDecorator>;
8
+ enabled?: boolean;
9
+ };
7
10
 
8
11
  export class Prerequisite {
9
- private readonly decorators: PrerequisiteVerifierDecorator[];
12
+ private readonly decorators: ReadonlyArray<PrerequisiteVerifierDecorator>;
10
13
  readonly enabled: boolean;
11
14
 
12
15
  constructor(
@@ -1,7 +1,7 @@
1
1
  import type { RedactorStrategy } from "./redactor.strategy";
2
2
 
3
3
  export class RedactorComposite implements RedactorStrategy {
4
- constructor(private readonly pipeline: readonly RedactorStrategy[]) {}
4
+ constructor(private readonly pipeline: ReadonlyArray<RedactorStrategy>) {}
5
5
 
6
6
  redact<T>(input: T): T {
7
7
  return this.pipeline.reduce((result, redactor) => redactor.redact(result), input);
@@ -2,7 +2,7 @@ import { deepCloneWith } from "./deep-clone-with";
2
2
  import type { RedactorStrategy } from "./redactor.strategy";
3
3
 
4
4
  export class RedactorMask implements RedactorStrategy {
5
- static readonly DEFAULT_KEYS: readonly string[] = [
5
+ static readonly DEFAULT_KEYS: ReadonlyArray<string> = [
6
6
  "authorization",
7
7
  "cookie",
8
8
  "set-cookie",
@@ -23,7 +23,7 @@ export class RedactorMask implements RedactorStrategy {
23
23
 
24
24
  private readonly keys: Set<string>;
25
25
 
26
- constructor(keys?: readonly string[]) {
26
+ constructor(keys?: ReadonlyArray<string>) {
27
27
  this.keys = new Set((keys?.length ? keys : RedactorMask.DEFAULT_KEYS).map((key) => key.toLowerCase()));
28
28
  }
29
29
 
@@ -8,7 +8,7 @@ export const SecurityRuleAndStrategyError = {
8
8
  };
9
9
 
10
10
  export class SecurityRuleAndStrategy implements SecurityRuleStrategy {
11
- constructor(private readonly rules: SecurityRuleStrategy[]) {
11
+ constructor(private readonly rules: ReadonlyArray<SecurityRuleStrategy>) {
12
12
  if (rules.length === 0) throw new Error(SecurityRuleAndStrategyError.MissingRules);
13
13
  if (rules.length > 5) throw new Error(SecurityRuleAndStrategyError.MaxRules);
14
14
  }
@@ -3,7 +3,7 @@ import type { SecurityRuleStrategy } from "./security-rule.strategy";
3
3
  import { SecurityRuleName, type SecurityRuleNameType } from "./security-rule-name.vo";
4
4
 
5
5
  export class SecurityRuleBaitRoutesStrategy implements SecurityRuleStrategy {
6
- constructor(private readonly routes: string[]) {}
6
+ constructor(private readonly routes: ReadonlyArray<string>) {}
7
7
 
8
8
  async isViolated(context: HasRequestPath): Promise<boolean> {
9
9
  return this.routes.includes(context.request.path);
@@ -8,7 +8,7 @@ export const SecurityRuleOrStrategyError = {
8
8
  };
9
9
 
10
10
  export class SecurityRuleOrStrategy implements SecurityRuleStrategy {
11
- constructor(private readonly rules: SecurityRuleStrategy[]) {
11
+ constructor(private readonly rules: ReadonlyArray<SecurityRuleStrategy>) {
12
12
  if (rules.length === 0) throw new Error(SecurityRuleOrStrategyError.MissingRules);
13
13
  if (rules.length > 5) throw new Error(SecurityRuleOrStrategyError.MaxRules);
14
14
  }