@warlock.js/notifications 5.5.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/cjs/{esm-wqNYY39K.cjs → esm-B0CsNLQ7.cjs} +99 -99
  2. package/cjs/{esm-wqNYY39K.cjs.map → esm-B0CsNLQ7.cjs.map} +1 -1
  3. package/cjs/index.cjs +1 -1
  4. package/cjs/rabbitmq-driver-h0oxJafA.cjs +3 -0
  5. package/esm/index.d.mts +4 -4
  6. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs +1 -1
  7. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs.map +1 -1
  8. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/communicators/broker.mjs +1 -1
  9. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/communicators/broker.mjs.map +1 -1
  10. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs +1 -1
  11. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs.map +1 -1
  12. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs +3 -3
  13. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -1
  14. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs +1 -1
  15. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -1
  16. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs +3 -3
  17. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs.map +1 -1
  18. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs +1 -1
  19. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs.map +1 -1
  20. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs +1 -1
  21. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs.map +1 -1
  22. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs +1 -1
  23. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs.map +1 -1
  24. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs +1 -1
  25. package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs.map +1 -1
  26. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/config.mjs +1 -1
  27. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/config.mjs.map +1 -1
  28. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/factory/validate.mjs +1 -1
  29. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/factory/validate.mjs.map +1 -1
  30. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/factory/validators.mjs +1 -1
  31. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/factory/validators.mjs.map +1 -1
  32. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/date-helpers.mjs +1 -1
  33. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/date-helpers.mjs.map +1 -1
  34. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/get-field-value.mjs +1 -1
  35. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/get-field-value.mjs.map +1 -1
  36. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/is-empty-value.mjs +1 -1
  37. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/is-empty-value.mjs.map +1 -1
  38. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/path-helpers.mjs +1 -1
  39. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/path-helpers.mjs.map +1 -1
  40. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/validation-helpers.mjs +1 -1
  41. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/validation-helpers.mjs.map +1 -1
  42. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/array-mutators.mjs +1 -1
  43. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/array-mutators.mjs.map +1 -1
  44. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/date-mutators.mjs +1 -1
  45. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/date-mutators.mjs.map +1 -1
  46. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/number-mutators.mjs +1 -1
  47. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/number-mutators.mjs.map +1 -1
  48. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/object-mutators.mjs +1 -1
  49. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/object-mutators.mjs.map +1 -1
  50. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/scalar-mutators.mjs +1 -1
  51. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/scalar-mutators.mjs.map +1 -1
  52. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/string-mutators.mjs +1 -1
  53. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/string-mutators.mjs.map +1 -1
  54. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/array/array-rules.mjs +1 -1
  55. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/array/array-rules.mjs.map +1 -1
  56. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/color/color-rules.mjs +1 -1
  57. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/color/color-rules.mjs.map +1 -1
  58. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/enum.mjs +1 -1
  59. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/enum.mjs.map +1 -1
  60. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/equals-field-rules.mjs +1 -1
  61. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/equals-field-rules.mjs.map +1 -1
  62. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/instanceof.mjs +1 -1
  63. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/instanceof.mjs.map +1 -1
  64. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/literal.mjs +1 -1
  65. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/literal.mjs.map +1 -1
  66. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/type-rules.mjs +1 -1
  67. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/type-rules.mjs.map +1 -1
  68. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/unknown-key.mjs +1 -1
  69. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/unknown-key.mjs.map +1 -1
  70. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/forbidden-if-rules.mjs +1 -1
  71. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/forbidden-if-rules.mjs.map +1 -1
  72. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-if-rules.mjs +1 -1
  73. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-if-rules.mjs.map +1 -1
  74. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-unless-rules.mjs +1 -1
  75. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-unless-rules.mjs.map +1 -1
  76. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-with-rules.mjs +1 -1
  77. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-with-rules.mjs.map +1 -1
  78. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-without-rules.mjs +1 -1
  79. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/present-without-rules.mjs.map +1 -1
  80. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-if-rules.mjs +1 -1
  81. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-if-rules.mjs.map +1 -1
  82. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-unless-rules.mjs +1 -1
  83. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-unless-rules.mjs.map +1 -1
  84. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-when-rule.mjs +1 -1
  85. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-when-rule.mjs.map +1 -1
  86. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-with-rules.mjs +1 -1
  87. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-with-rules.mjs.map +1 -1
  88. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-without-rules.mjs +1 -1
  89. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/required-without-rules.mjs.map +1 -1
  90. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/equal.mjs +1 -1
  91. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/equal.mjs.map +1 -1
  92. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/forbidden.mjs +1 -1
  93. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/forbidden.mjs.map +1 -1
  94. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/required.mjs +1 -1
  95. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/required.mjs.map +1 -1
  96. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/union.mjs +1 -1
  97. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/union.mjs.map +1 -1
  98. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/when.mjs +1 -1
  99. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/when.mjs.map +1 -1
  100. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-comparison-rules.mjs +1 -1
  101. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-comparison-rules.mjs.map +1 -1
  102. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-day-rules.mjs +1 -1
  103. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-day-rules.mjs.map +1 -1
  104. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-field-comparison-rules.mjs +1 -1
  105. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-field-comparison-rules.mjs.map +1 -1
  106. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-period-rules.mjs +1 -1
  107. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-period-rules.mjs.map +1 -1
  108. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-relative-rules.mjs +1 -1
  109. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-relative-rules.mjs.map +1 -1
  110. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-special-rules.mjs +1 -1
  111. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date-special-rules.mjs.map +1 -1
  112. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date.mjs +1 -1
  113. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/date.mjs.map +1 -1
  114. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/length/length-rules.mjs +1 -1
  115. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/length/length-rules.mjs.map +1 -1
  116. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/number/number-rules.mjs +1 -1
  117. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/number/number-rules.mjs.map +1 -1
  118. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/scalar/accepted-rule.mjs +1 -1
  119. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/scalar/accepted-rule.mjs.map +1 -1
  120. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/scalar/declined-rule.mjs +1 -1
  121. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/scalar/declined-rule.mjs.map +1 -1
  122. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/alpha.mjs +1 -1
  123. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/alpha.mjs.map +1 -1
  124. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/credit-card.mjs +1 -1
  125. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/credit-card.mjs.map +1 -1
  126. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/email.mjs +1 -1
  127. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/email.mjs.map +1 -1
  128. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/id-formats.mjs +1 -1
  129. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/id-formats.mjs.map +1 -1
  130. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/ip.mjs +1 -1
  131. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/ip.mjs.map +1 -1
  132. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/pattern.mjs +1 -1
  133. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/pattern.mjs.map +1 -1
  134. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/string-comparison.mjs +1 -1
  135. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/string-comparison.mjs.map +1 -1
  136. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/strong-password-rule.mjs +1 -1
  137. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/strong-password-rule.mjs.map +1 -1
  138. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/url.mjs +1 -1
  139. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/url.mjs.map +1 -1
  140. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/without-whitespace.mjs +1 -1
  141. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/without-whitespace.mjs.map +1 -1
  142. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.d.mts +1 -1
  143. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.d.mts.map +1 -1
  144. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.mjs +1 -1
  145. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.mjs.map +1 -1
  146. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/map-result.mjs +1 -1
  147. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/map-result.mjs.map +1 -1
  148. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/types.d.mts +1 -1
  149. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/standard-schema/types.d.mts.map +1 -1
  150. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/conditional-types.d.mts +1 -1
  151. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/conditional-types.d.mts.map +1 -1
  152. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/context-types.d.mts +1 -1
  153. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/context-types.d.mts.map +1 -1
  154. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/data-transformer-types.d.mts +1 -1
  155. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/data-transformer-types.d.mts.map +1 -1
  156. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/date-types.mjs +1 -1
  157. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/date-types.mjs.map +1 -1
  158. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/mutator-types.d.mts +1 -1
  159. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/mutator-types.d.mts.map +1 -1
  160. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/result-types.d.mts +1 -1
  161. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/result-types.d.mts.map +1 -1
  162. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/rule-types.d.mts +1 -1
  163. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/rule-types.d.mts.map +1 -1
  164. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/schema-types.d.mts +1 -1
  165. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/types/schema-types.d.mts.map +1 -1
  166. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/any-validator.mjs +1 -1
  167. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/any-validator.mjs.map +1 -1
  168. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/array-validator.mjs +1 -1
  169. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/array-validator.mjs.map +1 -1
  170. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/base-validator.d.mts +1 -1
  171. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/base-validator.d.mts.map +1 -1
  172. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/base-validator.mjs +1 -1
  173. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/base-validator.mjs.map +1 -1
  174. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/boolean-validator.mjs +1 -1
  175. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/boolean-validator.mjs.map +1 -1
  176. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/computed-validator.mjs +1 -1
  177. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/computed-validator.mjs.map +1 -1
  178. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/date-validator.mjs +1 -1
  179. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/date-validator.mjs.map +1 -1
  180. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/discriminated-union-validator.mjs +1 -1
  181. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/discriminated-union-validator.mjs.map +1 -1
  182. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/float-validator.mjs +1 -1
  183. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/float-validator.mjs.map +1 -1
  184. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/instanceof-validator.mjs +1 -1
  185. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/instanceof-validator.mjs.map +1 -1
  186. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/int-validator.mjs +1 -1
  187. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/int-validator.mjs.map +1 -1
  188. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/lazy-validator.mjs +1 -1
  189. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/lazy-validator.mjs.map +1 -1
  190. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/literal-validator.mjs +1 -1
  191. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/literal-validator.mjs.map +1 -1
  192. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/managed-validator.mjs +1 -1
  193. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/managed-validator.mjs.map +1 -1
  194. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.d.mts +1 -1
  195. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.d.mts.map +1 -1
  196. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.mjs +1 -1
  197. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.mjs.map +1 -1
  198. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.d.mts +1 -1
  199. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.d.mts.map +1 -1
  200. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.mjs +1 -1
  201. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.mjs.map +1 -1
  202. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.d.mts +1 -1
  203. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.d.mts.map +1 -1
  204. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.mjs +1 -1
  205. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.mjs.map +1 -1
  206. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.d.mts +1 -1
  207. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.d.mts.map +1 -1
  208. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.mjs +1 -1
  209. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.mjs.map +1 -1
  210. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/number-validator.mjs +1 -1
  211. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/number-validator.mjs.map +1 -1
  212. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/numeric-validator.mjs +1 -1
  213. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/numeric-validator.mjs.map +1 -1
  214. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/object-validator.mjs +1 -1
  215. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/object-validator.mjs.map +1 -1
  216. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/primitive-validator.mjs +1 -1
  217. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/primitive-validator.mjs.map +1 -1
  218. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/record-validator.mjs +1 -1
  219. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/record-validator.mjs.map +1 -1
  220. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/scalar-validator.mjs +1 -1
  221. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/scalar-validator.mjs.map +1 -1
  222. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/string-validator.mjs +1 -1
  223. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/string-validator.mjs.map +1 -1
  224. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/tuple-validator.mjs +1 -1
  225. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/tuple-validator.mjs.map +1 -1
  226. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/union-validator.mjs +1 -1
  227. package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/union-validator.mjs.map +1 -1
  228. package/esm/queue/load-herald.mjs +1 -1
  229. package/package.json +6 -6
  230. package/cjs/rabbitmq-driver-CikFalFh.cjs +0 -3
  231. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/communicators/broker-registry.d.mts +0 -0
  232. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/communicators/broker.d.mts +0 -0
  233. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/communicators/index.mjs +0 -0
  234. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/contracts/broker-driver.contract.d.mts +0 -0
  235. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/contracts/channel.contract.d.mts +0 -0
  236. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/decorators/index.mjs +0 -0
  237. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/index.mjs +0 -0
  238. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/index.mjs +0 -0
  239. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.d.mts +0 -0
  240. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.d.mts +0 -0
  241. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/index.d.mts +0 -0
  242. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/index.mjs +0 -0
  243. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.d.mts +0 -0
  244. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/event-message.d.mts +0 -0
  245. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/message-managers/index.mjs +0 -0
  246. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/types/channel.types.d.mts +0 -0
  247. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/types/registry.types.d.mts +0 -0
  248. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.d.mts +0 -0
  249. /package/esm/node_modules/.pnpm/{@warlock.js_herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55 → @warlock.js_herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f}/node_modules/@warlock.js/herald/esm/utils/index.mjs +0 -0
  250. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/factory/index.mjs +0 -0
  251. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/helpers/index.mjs +0 -0
  252. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/index.d.mts +0 -0
  253. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/index.mjs +0 -0
  254. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/mutators/index.mjs +0 -0
  255. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/array/index.mjs +0 -0
  256. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/color/index.mjs +0 -0
  257. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/common/index.mjs +0 -0
  258. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/conditional/index.mjs +0 -0
  259. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/core/index.mjs +0 -0
  260. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/date/index.mjs +0 -0
  261. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/file/dimensions.mjs +0 -0
  262. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/file/file-size.mjs +0 -0
  263. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/file/index.mjs +0 -0
  264. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/index.mjs +0 -0
  265. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/length/index.mjs +0 -0
  266. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/number/index.mjs +0 -0
  267. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/scalar/index.mjs +0 -0
  268. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/index.mjs +0 -0
  269. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/rules/string/matches.mjs +0 -0
  270. /package/esm/node_modules/.pnpm/{@warlock.js_seal@5.3.1 → @warlock.js_seal@5.6.0}/node_modules/@warlock.js/seal/esm/validators/index.mjs +0 -0
package/cjs/index.cjs CHANGED
@@ -979,7 +979,7 @@ Or with your preferred package manager:
979
979
  async function loadHerald() {
980
980
  if (heraldModule) return heraldModule;
981
981
  try {
982
- heraldModule = await Promise.resolve().then(() => require("./esm-wqNYY39K.cjs"));
982
+ heraldModule = await Promise.resolve().then(() => require("./esm-B0CsNLQ7.cjs"));
983
983
  return heraldModule;
984
984
  } catch {
985
985
  throw new Error(INSTALL_INSTRUCTIONS);
@@ -0,0 +1,3 @@
1
+ const require_esm = require('./esm-B0CsNLQ7.cjs');
2
+
3
+ exports.RabbitMQDriver = require_esm.RabbitMQDriver$1;
package/esm/index.d.mts CHANGED
@@ -22,8 +22,8 @@ import { WorkerOptions, startNotificationsWorker } from "./queue/notifications-w
22
22
  import { DEFAULT_QUEUE_CHANNEL } from "./queue/load-herald.mjs";
23
23
  export { BaseNotificationsRepository, Channel, ChannelMap, ChannelName, ChannelNotFoundError, ConfigureOptions, DEFAULT_QUEUE_CHANNEL, DatabaseNotification, DatabasePayload, DefinedNotification, HeraldQueueOptions, Id, MailChannelConfig, MailPayload, MissingRendererError, NoQueueDispatcherError, Notifiable, NotificationChannels, NotificationColumnMap, NotificationColumnMapHost, NotificationConfig, NotificationContract, NotificationDef, NotificationEvents, NotificationInput, NotificationModelClass, NotificationsFilter, NotificationsListOptions, NotificationsNotConfiguredError, Notify, PreferenceProvider, QueueDispatcher, RateLimiter, RenderContext, ResolvedNotificationColumnMap, SendOptions, UnresolvableRouteError, WorkerOptions, databaseChannel, defineChannel, defineNotification, getNotificationConfig, heraldQueue, inApp, mailChannel, notificationColumns, notifications, notify, resetNotificationConfig, resolveColumnMap, setNotificationConfig, startNotificationsWorker };
24
24
  import "./dispatch/define-channel.mjs";
25
- import "./node_modules/.pnpm/@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.mjs";
26
- import "./node_modules/.pnpm/@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.mjs";
27
- import "./node_modules/.pnpm/@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.mjs";
28
- import "./node_modules/.pnpm/@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.mjs";
25
+ import "./node_modules/.pnpm/@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.mjs";
26
+ import "./node_modules/.pnpm/@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.mjs";
27
+ import "./node_modules/.pnpm/@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.mjs";
28
+ import "./node_modules/.pnpm/@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.mjs";
29
29
  import "./types.mjs";
@@ -1,7 +1,7 @@
1
1
  import { Broker } from "./broker.mjs";
2
2
  import { EventEmitter } from "node:events";
3
3
 
4
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs
4
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs
5
5
  /**
6
6
  * Error thrown when a broker is not found
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"broker-registry.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs"],"sourcesContent":["import { Broker } from \"./broker.mjs\";\nimport { EventEmitter } from \"node:events\";\n\n//#region ../herald/src/communicators/broker-registry.ts\n/**\n* Error thrown when a broker is not found\n*/\nvar MissingBrokerError = class extends Error {\n\tconstructor(message, brokerName) {\n\t\tsuper(message);\n\t\tthis.name = \"MissingBrokerError\";\n\t\tthis.brokerName = brokerName;\n\t}\n};\n/**\n* Broker Registry\n*\n* Maintains registry of named brokers.\n* Similar to DataSourceRegistry in @warlock.js/cascade\n*\n* @example\n* ```typescript\n* // Register a broker\n* brokerRegistry.register({\n* name: \"default\",\n* driver: rabbitMQDriver,\n* isDefault: true,\n* });\n*\n* // Get the default broker\n* const comm = brokerRegistry.get();\n*\n* // Get a specific broker by name\n* const analytics = brokerRegistry.get(\"analytics\");\n*\n* // Listen for events\n* brokerRegistry.on(\"connected\", (comm) => {\n* console.log(`${comm.name} connected`);\n* });\n* ```\n*/\nvar BrokerRegistry = class {\n\tconstructor() {\n\t\tthis.sources = /* @__PURE__ */ new Map();\n\t\tthis.events = new EventEmitter();\n\t}\n\t/**\n\t* Register a new broker\n\t*\n\t* Sets up event forwarding from the driver to the registry.\n\t*\n\t* @param options - Broker configuration\n\t* @returns The registered broker instance\n\t*\n\t* @example\n\t* ```typescript\n\t* const broker = brokerRegistry.register({\n\t* name: \"primary\",\n\t* driver: myDriver,\n\t* isDefault: true,\n\t* });\n\t* ```\n\t*/\n\tregister(options) {\n\t\tconst broker = new Broker(options);\n\t\tthis.sources.set(broker.name, broker);\n\t\tconst isNewDefault = broker.isDefault || !this.defaultSource;\n\t\tif (isNewDefault) this.defaultSource = broker;\n\t\tthis.events.emit(\"registered\", broker);\n\t\tif (isNewDefault) this.events.emit(\"default-registered\", broker);\n\t\tbroker.driver.on(\"connected\", () => {\n\t\t\tthis.events.emit(\"connected\", broker);\n\t\t});\n\t\tbroker.driver.on(\"disconnected\", () => {\n\t\t\tthis.events.emit(\"disconnected\", broker);\n\t\t});\n\t\treturn broker;\n\t}\n\t/**\n\t* Clear all registered brokers\n\t*/\n\tclear() {\n\t\tthis.defaultSource = void 0;\n\t\tthis.sources.clear();\n\t}\n\t/**\n\t* Listen for registry events\n\t*\n\t* @param event - Event to listen for\n\t* @param listener - Callback function\n\t*\n\t* @example\n\t* ```typescript\n\t* brokerRegistry.on(\"registered\", (comm) => {\n\t* console.log(`Broker \"${comm.name}\" registered`);\n\t* });\n\t*\n\t* brokerRegistry.on(\"connected\", (comm) => {\n\t* console.log(`Broker \"${comm.name}\" connected`);\n\t* });\n\t* ```\n\t*/\n\ton(event, listener) {\n\t\tthis.events.on(event, listener);\n\t}\n\t/**\n\t* Listen for a registry event once\n\t*\n\t* @param event - Event to listen for\n\t* @param listener - Callback function\n\t*/\n\tonce(event, listener) {\n\t\tthis.events.once(event, listener);\n\t}\n\t/**\n\t* Remove an event listener\n\t*\n\t* @param event - Event to stop listening for\n\t* @param listener - Callback to remove\n\t*/\n\toff(event, listener) {\n\t\tthis.events.off(event, listener);\n\t}\n\t/**\n\t* Get a broker by name or the default one\n\t*\n\t* @param name - Optional broker name\n\t* @returns Broker instance\n\t* @throws MissingBrokerError if not found\n\t*\n\t* @example\n\t* ```typescript\n\t* // Get default broker\n\t* const comm = brokerRegistry.get();\n\t*\n\t* // Get specific broker\n\t* const analytics = brokerRegistry.get(\"analytics\");\n\t* ```\n\t*/\n\tget(name) {\n\t\tif (name !== void 0) {\n\t\t\tconst source = this.sources.get(name);\n\t\t\tif (!source) throw new MissingBrokerError(`Broker \"${name}\" is not registered.`, name);\n\t\t\treturn source;\n\t\t}\n\t\tif (!this.defaultSource) throw new MissingBrokerError(\"No default broker registered.\");\n\t\treturn this.defaultSource;\n\t}\n\t/**\n\t* Check if a broker exists\n\t*\n\t* @param name - Broker name to check\n\t* @returns True if exists\n\t*/\n\thas(name) {\n\t\treturn this.sources.has(name);\n\t}\n\t/**\n\t* Check if any brokers are registered\n\t*/\n\thasAny() {\n\t\treturn this.sources.size > 0;\n\t}\n\t/**\n\t* Get all registered brokers\n\t*\n\t* @returns Array of all brokers\n\t*\n\t* @example\n\t* ```typescript\n\t* // Disconnect all brokers\n\t* for (const comm of brokerRegistry.getAll()) {\n\t* await comm.disconnect();\n\t* }\n\t* ```\n\t*/\n\tgetAll() {\n\t\treturn Array.from(this.sources.values());\n\t}\n\t/**\n\t* Get all broker names\n\t*\n\t* @returns Array of broker names\n\t*/\n\tgetNames() {\n\t\treturn Array.from(this.sources.keys());\n\t}\n\t/**\n\t* Get the default broker (if any)\n\t*\n\t* @returns Default broker or undefined\n\t*/\n\tgetDefault() {\n\t\treturn this.defaultSource;\n\t}\n};\n/**\n* Global broker registry instance\n*/\nconst brokerRegistry = new BrokerRegistry();\n\n//#endregion\nexport { MissingBrokerError, brokerRegistry };\n//# sourceMappingURL=broker-registry.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;AAOA,IAAI,qBAAqB,cAAc,MAAM;CAC5C,YAAY,SAAS,YAAY;EAChC,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;CACnB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAI,iBAAiB,MAAM;CAC1B,cAAc;EACb,KAAK,0BAA0B,IAAI,IAAI;EACvC,KAAK,SAAS,IAAI,aAAa;CAChC;;;;;;;;;;;;;;;;;;CAkBA,SAAS,SAAS;EACjB,MAAM,SAAS,IAAI,OAAO,OAAO;EACjC,KAAK,QAAQ,IAAI,OAAO,MAAM,MAAM;EACpC,MAAM,eAAe,OAAO,aAAa,CAAC,KAAK;EAC/C,IAAI,cAAc,KAAK,gBAAgB;EACvC,KAAK,OAAO,KAAK,cAAc,MAAM;EACrC,IAAI,cAAc,KAAK,OAAO,KAAK,sBAAsB,MAAM;EAC/D,OAAO,OAAO,GAAG,mBAAmB;GACnC,KAAK,OAAO,KAAK,aAAa,MAAM;EACrC,CAAC;EACD,OAAO,OAAO,GAAG,sBAAsB;GACtC,KAAK,OAAO,KAAK,gBAAgB,MAAM;EACxC,CAAC;EACD,OAAO;CACR;;;;CAIA,QAAQ;EACP,KAAK,gBAAgB,KAAK;EAC1B,KAAK,QAAQ,MAAM;CACpB;;;;;;;;;;;;;;;;;;CAkBA,GAAG,OAAO,UAAU;EACnB,KAAK,OAAO,GAAG,OAAO,QAAQ;CAC/B;;;;;;;CAOA,KAAK,OAAO,UAAU;EACrB,KAAK,OAAO,KAAK,OAAO,QAAQ;CACjC;;;;;;;CAOA,IAAI,OAAO,UAAU;EACpB,KAAK,OAAO,IAAI,OAAO,QAAQ;CAChC;;;;;;;;;;;;;;;;;CAiBA,IAAI,MAAM;EACT,IAAI,SAAS,KAAK,GAAG;GACpB,MAAM,SAAS,KAAK,QAAQ,IAAI,IAAI;GACpC,IAAI,CAAC,QAAQ,MAAM,IAAI,mBAAmB,WAAW,KAAK,uBAAuB,IAAI;GACrF,OAAO;EACR;EACA,IAAI,CAAC,KAAK,eAAe,MAAM,IAAI,mBAAmB,+BAA+B;EACrF,OAAO,KAAK;CACb;;;;;;;CAOA,IAAI,MAAM;EACT,OAAO,KAAK,QAAQ,IAAI,IAAI;CAC7B;;;;CAIA,SAAS;EACR,OAAO,KAAK,QAAQ,OAAO;CAC5B;;;;;;;;;;;;;;CAcA,SAAS;EACR,OAAO,MAAM,KAAK,KAAK,QAAQ,OAAO,CAAC;CACxC;;;;;;CAMA,WAAW;EACV,OAAO,MAAM,KAAK,KAAK,QAAQ,KAAK,CAAC;CACtC;;;;;;CAMA,aAAa;EACZ,OAAO,KAAK;CACb;AACD;;;;AAIA,MAAM,iBAAiB,IAAI,eAAe"}
1
+ {"version":3,"file":"broker-registry.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs"],"sourcesContent":["import { Broker } from \"./broker.mjs\";\nimport { EventEmitter } from \"node:events\";\n\n//#region ../herald/src/communicators/broker-registry.ts\n/**\n* Error thrown when a broker is not found\n*/\nvar MissingBrokerError = class extends Error {\n\tconstructor(message, brokerName) {\n\t\tsuper(message);\n\t\tthis.name = \"MissingBrokerError\";\n\t\tthis.brokerName = brokerName;\n\t}\n};\n/**\n* Broker Registry\n*\n* Maintains registry of named brokers.\n* Similar to DataSourceRegistry in @warlock.js/cascade\n*\n* @example\n* ```typescript\n* // Register a broker\n* brokerRegistry.register({\n* name: \"default\",\n* driver: rabbitMQDriver,\n* isDefault: true,\n* });\n*\n* // Get the default broker\n* const comm = brokerRegistry.get();\n*\n* // Get a specific broker by name\n* const analytics = brokerRegistry.get(\"analytics\");\n*\n* // Listen for events\n* brokerRegistry.on(\"connected\", (comm) => {\n* console.log(`${comm.name} connected`);\n* });\n* ```\n*/\nvar BrokerRegistry = class {\n\tconstructor() {\n\t\tthis.sources = /* @__PURE__ */ new Map();\n\t\tthis.events = new EventEmitter();\n\t}\n\t/**\n\t* Register a new broker\n\t*\n\t* Sets up event forwarding from the driver to the registry.\n\t*\n\t* @param options - Broker configuration\n\t* @returns The registered broker instance\n\t*\n\t* @example\n\t* ```typescript\n\t* const broker = brokerRegistry.register({\n\t* name: \"primary\",\n\t* driver: myDriver,\n\t* isDefault: true,\n\t* });\n\t* ```\n\t*/\n\tregister(options) {\n\t\tconst broker = new Broker(options);\n\t\tthis.sources.set(broker.name, broker);\n\t\tconst isNewDefault = broker.isDefault || !this.defaultSource;\n\t\tif (isNewDefault) this.defaultSource = broker;\n\t\tthis.events.emit(\"registered\", broker);\n\t\tif (isNewDefault) this.events.emit(\"default-registered\", broker);\n\t\tbroker.driver.on(\"connected\", () => {\n\t\t\tthis.events.emit(\"connected\", broker);\n\t\t});\n\t\tbroker.driver.on(\"disconnected\", () => {\n\t\t\tthis.events.emit(\"disconnected\", broker);\n\t\t});\n\t\treturn broker;\n\t}\n\t/**\n\t* Clear all registered brokers\n\t*/\n\tclear() {\n\t\tthis.defaultSource = void 0;\n\t\tthis.sources.clear();\n\t}\n\t/**\n\t* Listen for registry events\n\t*\n\t* @param event - Event to listen for\n\t* @param listener - Callback function\n\t*\n\t* @example\n\t* ```typescript\n\t* brokerRegistry.on(\"registered\", (comm) => {\n\t* console.log(`Broker \"${comm.name}\" registered`);\n\t* });\n\t*\n\t* brokerRegistry.on(\"connected\", (comm) => {\n\t* console.log(`Broker \"${comm.name}\" connected`);\n\t* });\n\t* ```\n\t*/\n\ton(event, listener) {\n\t\tthis.events.on(event, listener);\n\t}\n\t/**\n\t* Listen for a registry event once\n\t*\n\t* @param event - Event to listen for\n\t* @param listener - Callback function\n\t*/\n\tonce(event, listener) {\n\t\tthis.events.once(event, listener);\n\t}\n\t/**\n\t* Remove an event listener\n\t*\n\t* @param event - Event to stop listening for\n\t* @param listener - Callback to remove\n\t*/\n\toff(event, listener) {\n\t\tthis.events.off(event, listener);\n\t}\n\t/**\n\t* Get a broker by name or the default one\n\t*\n\t* @param name - Optional broker name\n\t* @returns Broker instance\n\t* @throws MissingBrokerError if not found\n\t*\n\t* @example\n\t* ```typescript\n\t* // Get default broker\n\t* const comm = brokerRegistry.get();\n\t*\n\t* // Get specific broker\n\t* const analytics = brokerRegistry.get(\"analytics\");\n\t* ```\n\t*/\n\tget(name) {\n\t\tif (name !== void 0) {\n\t\t\tconst source = this.sources.get(name);\n\t\t\tif (!source) throw new MissingBrokerError(`Broker \"${name}\" is not registered.`, name);\n\t\t\treturn source;\n\t\t}\n\t\tif (!this.defaultSource) throw new MissingBrokerError(\"No default broker registered.\");\n\t\treturn this.defaultSource;\n\t}\n\t/**\n\t* Check if a broker exists\n\t*\n\t* @param name - Broker name to check\n\t* @returns True if exists\n\t*/\n\thas(name) {\n\t\treturn this.sources.has(name);\n\t}\n\t/**\n\t* Check if any brokers are registered\n\t*/\n\thasAny() {\n\t\treturn this.sources.size > 0;\n\t}\n\t/**\n\t* Get all registered brokers\n\t*\n\t* @returns Array of all brokers\n\t*\n\t* @example\n\t* ```typescript\n\t* // Disconnect all brokers\n\t* for (const comm of brokerRegistry.getAll()) {\n\t* await comm.disconnect();\n\t* }\n\t* ```\n\t*/\n\tgetAll() {\n\t\treturn Array.from(this.sources.values());\n\t}\n\t/**\n\t* Get all broker names\n\t*\n\t* @returns Array of broker names\n\t*/\n\tgetNames() {\n\t\treturn Array.from(this.sources.keys());\n\t}\n\t/**\n\t* Get the default broker (if any)\n\t*\n\t* @returns Default broker or undefined\n\t*/\n\tgetDefault() {\n\t\treturn this.defaultSource;\n\t}\n};\n/**\n* Global broker registry instance\n*/\nconst brokerRegistry = new BrokerRegistry();\n\n//#endregion\nexport { MissingBrokerError, brokerRegistry };\n//# sourceMappingURL=broker-registry.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;AAOA,IAAI,qBAAqB,cAAc,MAAM;CAC5C,YAAY,SAAS,YAAY;EAChC,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;CACnB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAI,iBAAiB,MAAM;CAC1B,cAAc;EACb,KAAK,0BAA0B,IAAI,IAAI;EACvC,KAAK,SAAS,IAAI,aAAa;CAChC;;;;;;;;;;;;;;;;;;CAkBA,SAAS,SAAS;EACjB,MAAM,SAAS,IAAI,OAAO,OAAO;EACjC,KAAK,QAAQ,IAAI,OAAO,MAAM,MAAM;EACpC,MAAM,eAAe,OAAO,aAAa,CAAC,KAAK;EAC/C,IAAI,cAAc,KAAK,gBAAgB;EACvC,KAAK,OAAO,KAAK,cAAc,MAAM;EACrC,IAAI,cAAc,KAAK,OAAO,KAAK,sBAAsB,MAAM;EAC/D,OAAO,OAAO,GAAG,mBAAmB;GACnC,KAAK,OAAO,KAAK,aAAa,MAAM;EACrC,CAAC;EACD,OAAO,OAAO,GAAG,sBAAsB;GACtC,KAAK,OAAO,KAAK,gBAAgB,MAAM;EACxC,CAAC;EACD,OAAO;CACR;;;;CAIA,QAAQ;EACP,KAAK,gBAAgB,KAAK;EAC1B,KAAK,QAAQ,MAAM;CACpB;;;;;;;;;;;;;;;;;;CAkBA,GAAG,OAAO,UAAU;EACnB,KAAK,OAAO,GAAG,OAAO,QAAQ;CAC/B;;;;;;;CAOA,KAAK,OAAO,UAAU;EACrB,KAAK,OAAO,KAAK,OAAO,QAAQ;CACjC;;;;;;;CAOA,IAAI,OAAO,UAAU;EACpB,KAAK,OAAO,IAAI,OAAO,QAAQ;CAChC;;;;;;;;;;;;;;;;;CAiBA,IAAI,MAAM;EACT,IAAI,SAAS,KAAK,GAAG;GACpB,MAAM,SAAS,KAAK,QAAQ,IAAI,IAAI;GACpC,IAAI,CAAC,QAAQ,MAAM,IAAI,mBAAmB,WAAW,KAAK,uBAAuB,IAAI;GACrF,OAAO;EACR;EACA,IAAI,CAAC,KAAK,eAAe,MAAM,IAAI,mBAAmB,+BAA+B;EACrF,OAAO,KAAK;CACb;;;;;;;CAOA,IAAI,MAAM;EACT,OAAO,KAAK,QAAQ,IAAI,IAAI;CAC7B;;;;CAIA,SAAS;EACR,OAAO,KAAK,QAAQ,OAAO;CAC5B;;;;;;;;;;;;;;CAcA,SAAS;EACR,OAAO,MAAM,KAAK,KAAK,QAAQ,OAAO,CAAC;CACxC;;;;;;CAMA,WAAW;EACV,OAAO,MAAM,KAAK,KAAK,QAAQ,KAAK,CAAC;CACtC;;;;;;CAMA,aAAa;EACZ,OAAO,KAAK;CACb;AACD;;;;AAIA,MAAM,iBAAiB,IAAI,eAAe"}
@@ -1,4 +1,4 @@
1
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/communicators/broker.mjs
1
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/communicators/broker.mjs
2
2
  /**
3
3
  * Broker - wrapper around a driver with metadata
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"broker.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/communicators/broker.mjs"],"sourcesContent":["//#region ../herald/src/communicators/broker.ts\n/**\n* Broker - wrapper around a driver with metadata\n*\n* Similar to DataSource in @warlock.js/cascade\n*\n* @example\n* ```typescript\n* const broker = new Broker({\n* name: \"default\",\n* driver: rabbitMQDriver,\n* isDefault: true,\n* });\n*\n* // Get a channel\n* const channel = broker.channel(\"user.created\");\n* ```\n*/\nvar Broker = class {\n\t/**\n\t* Create a new Broker\n\t*\n\t* @param options - Broker configuration\n\t*/\n\tconstructor(options) {\n\t\tthis.name = options.name;\n\t\tthis.driver = options.driver;\n\t\tthis.isDefault = Boolean(options.isDefault);\n\t}\n\t/**\n\t* Subscribe the given consumer\n\t*/\n\tsubscribe(consumer) {\n\t\treturn this.driver.subscribe(consumer);\n\t}\n\t/**\n\t* Publish the given event message\n\t*/\n\tpublish(event) {\n\t\tthis.driver.publish(event);\n\t}\n\t/**\n\t* Get or create a channel\n\t*\n\t* @param name - Channel name\n\t* @param options - Channel options\n\t* @returns Channel instance\n\t*\n\t* @example\n\t* ```typescript\n\t* // Simple channel\n\t* const channel = broker.channel(\"notifications\");\n\t*\n\t* // Typed channel with schema\n\t* const orderChannel = broker.channel<OrderPayload>(\"orders\", {\n\t* schema: OrderSchema,\n\t* durable: true,\n\t* });\n\t* ```\n\t*/\n\tchannel(name, options) {\n\t\treturn this.driver.channel(name, options);\n\t}\n\t/**\n\t* Check if the broker is connected\n\t*/\n\tget isConnected() {\n\t\treturn this.driver.isConnected;\n\t}\n\t/**\n\t* Connect the underlying driver\n\t*/\n\tasync connect() {\n\t\tawait this.driver.connect();\n\t}\n\t/**\n\t* Disconnect the underlying driver\n\t*/\n\tasync disconnect() {\n\t\tawait this.driver.disconnect();\n\t}\n\t/**\n\t* Start consuming messages\n\t*/\n\tasync startConsuming() {\n\t\tawait this.driver.startConsuming();\n\t}\n\t/**\n\t* Stop consuming messages\n\t*/\n\tasync stopConsuming() {\n\t\tawait this.driver.stopConsuming();\n\t}\n\t/**\n\t* Health check\n\t*/\n\tasync healthCheck() {\n\t\treturn this.driver.healthCheck();\n\t}\n};\n\n//#endregion\nexport { Broker };\n//# sourceMappingURL=broker.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,IAAI,SAAS,MAAM;;;;;;CAMlB,YAAY,SAAS;EACpB,KAAK,OAAO,QAAQ;EACpB,KAAK,SAAS,QAAQ;EACtB,KAAK,YAAY,QAAQ,QAAQ,SAAS;CAC3C;;;;CAIA,UAAU,UAAU;EACnB,OAAO,KAAK,OAAO,UAAU,QAAQ;CACtC;;;;CAIA,QAAQ,OAAO;EACd,KAAK,OAAO,QAAQ,KAAK;CAC1B;;;;;;;;;;;;;;;;;;;;CAoBA,QAAQ,MAAM,SAAS;EACtB,OAAO,KAAK,OAAO,QAAQ,MAAM,OAAO;CACzC;;;;CAIA,IAAI,cAAc;EACjB,OAAO,KAAK,OAAO;CACpB;;;;CAIA,MAAM,UAAU;EACf,MAAM,KAAK,OAAO,QAAQ;CAC3B;;;;CAIA,MAAM,aAAa;EAClB,MAAM,KAAK,OAAO,WAAW;CAC9B;;;;CAIA,MAAM,iBAAiB;EACtB,MAAM,KAAK,OAAO,eAAe;CAClC;;;;CAIA,MAAM,gBAAgB;EACrB,MAAM,KAAK,OAAO,cAAc;CACjC;;;;CAIA,MAAM,cAAc;EACnB,OAAO,KAAK,OAAO,YAAY;CAChC;AACD"}
1
+ {"version":3,"file":"broker.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/communicators/broker.mjs"],"sourcesContent":["//#region ../herald/src/communicators/broker.ts\n/**\n* Broker - wrapper around a driver with metadata\n*\n* Similar to DataSource in @warlock.js/cascade\n*\n* @example\n* ```typescript\n* const broker = new Broker({\n* name: \"default\",\n* driver: rabbitMQDriver,\n* isDefault: true,\n* });\n*\n* // Get a channel\n* const channel = broker.channel(\"user.created\");\n* ```\n*/\nvar Broker = class {\n\t/**\n\t* Create a new Broker\n\t*\n\t* @param options - Broker configuration\n\t*/\n\tconstructor(options) {\n\t\tthis.name = options.name;\n\t\tthis.driver = options.driver;\n\t\tthis.isDefault = Boolean(options.isDefault);\n\t}\n\t/**\n\t* Subscribe the given consumer\n\t*/\n\tsubscribe(consumer) {\n\t\treturn this.driver.subscribe(consumer);\n\t}\n\t/**\n\t* Publish the given event message\n\t*/\n\tpublish(event) {\n\t\tthis.driver.publish(event);\n\t}\n\t/**\n\t* Get or create a channel\n\t*\n\t* @param name - Channel name\n\t* @param options - Channel options\n\t* @returns Channel instance\n\t*\n\t* @example\n\t* ```typescript\n\t* // Simple channel\n\t* const channel = broker.channel(\"notifications\");\n\t*\n\t* // Typed channel with schema\n\t* const orderChannel = broker.channel<OrderPayload>(\"orders\", {\n\t* schema: OrderSchema,\n\t* durable: true,\n\t* });\n\t* ```\n\t*/\n\tchannel(name, options) {\n\t\treturn this.driver.channel(name, options);\n\t}\n\t/**\n\t* Check if the broker is connected\n\t*/\n\tget isConnected() {\n\t\treturn this.driver.isConnected;\n\t}\n\t/**\n\t* Connect the underlying driver\n\t*/\n\tasync connect() {\n\t\tawait this.driver.connect();\n\t}\n\t/**\n\t* Disconnect the underlying driver\n\t*/\n\tasync disconnect() {\n\t\tawait this.driver.disconnect();\n\t}\n\t/**\n\t* Start consuming messages\n\t*/\n\tasync startConsuming() {\n\t\tawait this.driver.startConsuming();\n\t}\n\t/**\n\t* Stop consuming messages\n\t*/\n\tasync stopConsuming() {\n\t\tawait this.driver.stopConsuming();\n\t}\n\t/**\n\t* Health check\n\t*/\n\tasync healthCheck() {\n\t\treturn this.driver.healthCheck();\n\t}\n};\n\n//#endregion\nexport { Broker };\n//# sourceMappingURL=broker.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,IAAI,SAAS,MAAM;;;;;;CAMlB,YAAY,SAAS;EACpB,KAAK,OAAO,QAAQ;EACpB,KAAK,SAAS,QAAQ;EACtB,KAAK,YAAY,QAAQ,QAAQ,SAAS;CAC3C;;;;CAIA,UAAU,UAAU;EACnB,OAAO,KAAK,OAAO,UAAU,QAAQ;CACtC;;;;CAIA,QAAQ,OAAO;EACd,KAAK,OAAO,QAAQ,KAAK;CAC1B;;;;;;;;;;;;;;;;;;;;CAoBA,QAAQ,MAAM,SAAS;EACtB,OAAO,KAAK,OAAO,QAAQ,MAAM,OAAO;CACzC;;;;CAIA,IAAI,cAAc;EACjB,OAAO,KAAK,OAAO;CACpB;;;;CAIA,MAAM,UAAU;EACf,MAAM,KAAK,OAAO,QAAQ;CAC3B;;;;CAIA,MAAM,aAAa;EAClB,MAAM,KAAK,OAAO,WAAW;CAC9B;;;;CAIA,MAAM,iBAAiB;EACtB,MAAM,KAAK,OAAO,eAAe;CAClC;;;;CAIA,MAAM,gBAAgB;EACrB,MAAM,KAAK,OAAO,cAAc;CACjC;;;;CAIA,MAAM,cAAc;EACnB,OAAO,KAAK,OAAO,YAAY;CAChC;AACD"}
@@ -1,7 +1,7 @@
1
1
  import { brokerRegistry } from "../communicators/broker-registry.mjs";
2
2
  import "../communicators/index.mjs";
3
3
 
4
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs
4
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs
5
5
  const pendingSubscribers = /* @__PURE__ */ new Set();
6
6
  /**
7
7
  * Register the consumer to the broker
@@ -1 +1 @@
1
- {"version":3,"file":"consumable.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs"],"sourcesContent":["import { brokerRegistry } from \"../communicators/broker-registry.mjs\";\nimport \"../communicators/index.mjs\";\n\n//#region ../herald/src/decorators/consumable.ts\nconst pendingSubscribers = /* @__PURE__ */ new Set();\n/**\n* Register the consumer to the broker\n*/\nfunction Consumable(options) {\n\treturn function(target) {\n\t\tconst brokerName = options?.broker;\n\t\ttry {\n\t\t\tconst currentBroker = brokerRegistry.get(brokerName);\n\t\t\tif (currentBroker?.isConnected) currentBroker.subscribe(target);\n\t\t\telse pendingSubscribers.add({\n\t\t\t\tConsumer: target,\n\t\t\t\toptions\n\t\t\t});\n\t\t} catch {\n\t\t\tpendingSubscribers.add({\n\t\t\t\tConsumer: target,\n\t\t\t\toptions\n\t\t\t});\n\t\t}\n\t};\n}\nbrokerRegistry.on(\"connected\", (broker) => {\n\tfor (const { Consumer, options } of pendingSubscribers) {\n\t\tif (options?.broker && broker.name !== options.broker) continue;\n\t\tbroker.subscribe(Consumer);\n\t}\n});\n\n//#endregion\nexport { Consumable, pendingSubscribers };\n//# sourceMappingURL=consumable.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;AAIA,MAAM,qCAAqC,IAAI,IAAI;;;;AAInD,SAAS,WAAW,SAAS;CAC5B,OAAO,SAAS,QAAQ;EACvB,MAAM,aAAa,SAAS;EAC5B,IAAI;GACH,MAAM,gBAAgB,eAAe,IAAI,UAAU;GACnD,IAAI,eAAe,aAAa,cAAc,UAAU,MAAM;QACzD,mBAAmB,IAAI;IAC3B,UAAU;IACV;GACD,CAAC;EACF,QAAQ;GACP,mBAAmB,IAAI;IACtB,UAAU;IACV;GACD,CAAC;EACF;CACD;AACD;AACA,eAAe,GAAG,cAAc,WAAW;CAC1C,KAAK,MAAM,EAAE,UAAU,aAAa,oBAAoB;EACvD,IAAI,SAAS,UAAU,OAAO,SAAS,QAAQ,QAAQ;EACvD,OAAO,UAAU,QAAQ;CAC1B;AACD,CAAC"}
1
+ {"version":3,"file":"consumable.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs"],"sourcesContent":["import { brokerRegistry } from \"../communicators/broker-registry.mjs\";\nimport \"../communicators/index.mjs\";\n\n//#region ../herald/src/decorators/consumable.ts\nconst pendingSubscribers = /* @__PURE__ */ new Set();\n/**\n* Register the consumer to the broker\n*/\nfunction Consumable(options) {\n\treturn function(target) {\n\t\tconst brokerName = options?.broker;\n\t\ttry {\n\t\t\tconst currentBroker = brokerRegistry.get(brokerName);\n\t\t\tif (currentBroker?.isConnected) currentBroker.subscribe(target);\n\t\t\telse pendingSubscribers.add({\n\t\t\t\tConsumer: target,\n\t\t\t\toptions\n\t\t\t});\n\t\t} catch {\n\t\t\tpendingSubscribers.add({\n\t\t\t\tConsumer: target,\n\t\t\t\toptions\n\t\t\t});\n\t\t}\n\t};\n}\nbrokerRegistry.on(\"connected\", (broker) => {\n\tfor (const { Consumer, options } of pendingSubscribers) {\n\t\tif (options?.broker && broker.name !== options.broker) continue;\n\t\tbroker.subscribe(Consumer);\n\t}\n});\n\n//#endregion\nexport { Consumable, pendingSubscribers };\n//# sourceMappingURL=consumable.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;AAIA,MAAM,qCAAqC,IAAI,IAAI;;;;AAInD,SAAS,WAAW,SAAS;CAC5B,OAAO,SAAS,QAAQ;EACvB,MAAM,aAAa,SAAS;EAC5B,IAAI;GACH,MAAM,gBAAgB,eAAe,IAAI,UAAU;GACnD,IAAI,eAAe,aAAa,cAAc,UAAU,MAAM;QACzD,mBAAmB,IAAI;IAC3B,UAAU;IACV;GACD,CAAC;EACF,QAAQ;GACP,mBAAmB,IAAI;IACtB,UAAU;IACV;GACD,CAAC;EACF;CACD;AACD;AACA,eAAe,GAAG,cAAc,WAAW;CAC1C,KAAK,MAAM,EAAE,UAAU,aAAa,oBAAoB;EACvD,IAAI,SAAS,UAAU,OAAO,SAAS,QAAQ,QAAQ;EACvD,OAAO,UAAU,QAAQ;CAC1B;AACD,CAAC"}
@@ -1,9 +1,9 @@
1
- import { v } from "../../../../../../../@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/factory/validators.mjs";
2
- import "../../../../../../../@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/index.mjs";
1
+ import { v } from "../../../../../../../@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/factory/validators.mjs";
2
+ import "../../../../../../../@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/index.mjs";
3
3
  import { log } from "@warlock.js/logger";
4
4
  import { randomUUID } from "node:crypto";
5
5
 
6
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs
6
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs
7
7
  /**
8
8
  * RabbitMQ Channel Implementation
9
9
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq-channel.mjs","names":[],"sources":["../../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\nimport { v } from \"@warlock.js/seal\";\nimport { randomUUID } from \"node:crypto\";\n\n//#region ../herald/src/drivers/rabbitmq/rabbitmq-channel.ts\n/**\n* RabbitMQ Channel Implementation\n*\n* Wraps a RabbitMQ queue/exchange with a unified API.\n*\n* @template TPayload - The typed payload\n*/\nvar RabbitMQChannel = class {\n\t/**\n\t* Create a new RabbitMQ channel\n\t*/\n\tconstructor(name, amqpChannel, options) {\n\t\tthis.subscriptions = /* @__PURE__ */ new Map();\n\t\tthis.asserted = false;\n\t\tthis.name = name;\n\t\tthis.amqpChannel = amqpChannel;\n\t\tthis.options = options ?? {};\n\t}\n\t/**\n\t* Assert the queue exists\n\t*/\n\tasync assert() {\n\t\tif (this.asserted) return;\n\t\tconst queueOptions = {\n\t\t\tdurable: this.options.durable ?? true,\n\t\t\tautoDelete: this.options.autoDelete ?? false,\n\t\t\texclusive: this.options.exclusive ?? false,\n\t\t\tmessageTtl: this.options.messageTtl,\n\t\t\tmaxLength: this.options.maxLength,\n\t\t\tdeadLetterExchange: this.options.deadLetter?.channel ? \"\" : void 0,\n\t\t\tdeadLetterRoutingKey: this.options.deadLetter?.channel\n\t\t};\n\t\tawait this.amqpChannel.assertQueue(this.name, queueOptions);\n\t\tthis.asserted = true;\n\t}\n\t/**\n\t* Publish a message\n\t*/\n\tasync publish(payload, options) {\n\t\tawait this.assert();\n\t\tif (this.options.schema) {\n\t\t\tconst context = {\n\t\t\t\tallValues: payload,\n\t\t\t\tvalue: payload\n\t\t\t};\n\t\t\tconst result = await v.validate(this.options.schema, payload, { context });\n\t\t\tif (!result.isValid) throw new Error(`Message validation failed: ${JSON.stringify(result.errors)}`);\n\t\t\tpayload = result.data;\n\t\t}\n\t\tconst messageId = randomUUID();\n\t\tconst timestamp = /* @__PURE__ */ new Date();\n\t\tconst messageContent = JSON.stringify({\n\t\t\tpayload,\n\t\t\tmetadata: {\n\t\t\t\tmessageId,\n\t\t\t\ttimestamp: timestamp.toISOString(),\n\t\t\t\tcorrelationId: options?.correlationId,\n\t\t\t\theaders: options?.headers\n\t\t\t}\n\t\t});\n\t\tconst publishOptions = {\n\t\t\tpersistent: options?.persistent ?? true,\n\t\t\tmessageId,\n\t\t\ttimestamp: timestamp.getTime(),\n\t\t\tcorrelationId: options?.correlationId,\n\t\t\texpiration: options?.expiration?.toString(),\n\t\t\tpriority: options?.priority,\n\t\t\theaders: options?.headers\n\t\t};\n\t\tif (options?.delay) publishOptions.headers = {\n\t\t\t...publishOptions.headers,\n\t\t\t\"x-delay\": options.delay\n\t\t};\n\t\tthis.amqpChannel.sendToQueue(this.name, Buffer.from(messageContent), publishOptions);\n\t}\n\t/**\n\t* Publish multiple messages\n\t*/\n\tasync publishBatch(messages, options) {\n\t\tfor (const payload of messages) await this.publish(payload, options);\n\t}\n\t/**\n\t* Subscribe to messages\n\t*\n\t* Smart auto-ack behavior (when autoAck is not true):\n\t* - If handler completes successfully without explicit ack/nack/reject → auto-ack\n\t* - If handler throws an error → auto-nack (with retry if configured)\n\t* - If handler explicitly calls ack/nack/reject → respects that call\n\t*/\n\tasync subscribe(handler, options) {\n\t\tawait this.assert();\n\t\tconst subscriptionId = options?.consumerId ?? randomUUID();\n\t\tif (options?.prefetch) await this.amqpChannel.prefetch(options.prefetch);\n\t\tconst isFireAndForget = options?.autoAck === true;\n\t\tconst consumerOptions = {\n\t\t\tnoAck: isFireAndForget,\n\t\t\texclusive: options?.exclusive ?? false,\n\t\t\tconsumerTag: options?.group ?? subscriptionId\n\t\t};\n\t\tconst { consumerTag } = await this.amqpChannel.consume(this.name, async (msg) => {\n\t\t\tif (!msg) return;\n\t\t\tlet ackHandled = isFireAndForget;\n\t\t\tlet parsedMessage;\n\t\t\ttry {\n\t\t\t\tconst content = JSON.parse(msg.content.toString());\n\t\t\t\tlet payload = content.payload;\n\t\t\t\tif (this.options.schema) {\n\t\t\t\t\tconst context = {\n\t\t\t\t\t\tallValues: payload,\n\t\t\t\t\t\tvalue: payload\n\t\t\t\t\t};\n\t\t\t\t\tconst result = await v.validate(this.options.schema, payload, { context });\n\t\t\t\t\tif (!result.isValid) {\n\t\t\t\t\t\tthis.amqpChannel.nack(msg, false, false);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tpayload = result.data;\n\t\t\t\t}\n\t\t\t\tconst metadata = {\n\t\t\t\t\tmessageId: msg.properties.messageId || content.metadata?.messageId || randomUUID(),\n\t\t\t\t\ttimestamp: new Date(msg.properties.timestamp || content.metadata?.timestamp),\n\t\t\t\t\tcorrelationId: msg.properties.correlationId || content.metadata?.correlationId,\n\t\t\t\t\treplyTo: msg.properties.replyTo,\n\t\t\t\t\tpriority: msg.properties.priority,\n\t\t\t\t\theaders: msg.properties.headers,\n\t\t\t\t\tretryCount: msg.properties.headers?.[\"x-retry-count\"] || 0,\n\t\t\t\t\toriginalChannel: this.name\n\t\t\t\t};\n\t\t\t\tconst message = {\n\t\t\t\t\tmetadata,\n\t\t\t\t\tpayload,\n\t\t\t\t\traw: msg\n\t\t\t\t};\n\t\t\t\tparsedMessage = message;\n\t\t\t\tawait handler(message, {\n\t\t\t\t\tack: async () => {\n\t\t\t\t\t\tif (!ackHandled) {\n\t\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\t\tthis.amqpChannel.ack(msg);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tnack: async (requeue = true) => {\n\t\t\t\t\t\tif (!ackHandled) {\n\t\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\t\tthis.amqpChannel.nack(msg, false, requeue);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treject: async () => {\n\t\t\t\t\t\tif (!ackHandled) {\n\t\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\t\tthis.amqpChannel.reject(msg, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treply: async (replyPayload) => {\n\t\t\t\t\t\tif (msg.properties.replyTo) {\n\t\t\t\t\t\t\tconst replyContent = JSON.stringify({\n\t\t\t\t\t\t\t\tpayload: replyPayload,\n\t\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\t\t\t\t\ttimestamp: (/* @__PURE__ */ new Date()).toISOString(),\n\t\t\t\t\t\t\t\t\tcorrelationId: msg.properties.correlationId\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.amqpChannel.sendToQueue(msg.properties.replyTo, Buffer.from(replyContent), { correlationId: msg.properties.correlationId });\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tretry: async (delay) => {\n\t\t\t\t\t\tif (ackHandled) return;\n\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\tawait this.retryOrGiveUp(msg, metadata.retryCount || 0, options, message, delay);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (!ackHandled) this.amqpChannel.ack(msg);\n\t\t\t} catch (error) {\n\t\t\t\tif (ackHandled) return;\n\t\t\t\tif (options?.retry) {\n\t\t\t\t\tconst currentRetryCount = msg.properties.headers?.[\"x-retry-count\"] || 0;\n\t\t\t\t\tawait this.retryOrGiveUp(msg, currentRetryCount, options, parsedMessage);\n\t\t\t\t} else this.amqpChannel.nack(msg, false, false);\n\t\t\t}\n\t\t}, consumerOptions);\n\t\tconst subscription = new RabbitMQSubscription(subscriptionId, this.name, consumerTag, this.amqpChannel);\n\t\tthis.subscriptions.set(subscriptionId, subscription);\n\t\treturn subscription;\n\t}\n\t/**\n\t* Unsubscribe by consumer ID\n\t*/\n\tasync unsubscribeById(consumerId) {\n\t\tconst subscription = this.subscriptions.get(consumerId);\n\t\tif (subscription) {\n\t\t\tawait subscription.unsubscribe();\n\t\t\tthis.subscriptions.delete(consumerId);\n\t\t}\n\t}\n\t/**\n\t* Stop consuming messages on this channel.\n\t* Cancels all active subscriptions gracefully.\n\t*/\n\tasync stopConsuming() {\n\t\tconst cancellations = Array.from(this.subscriptions.values()).map((sub) => sub.unsubscribe());\n\t\tawait Promise.all(cancellations);\n\t}\n\t/**\n\t* Send message to dead-letter queue\n\t*/\n\tasync sendToDeadLetter(message, deadLetterChannel) {\n\t\tconst content = JSON.stringify({\n\t\t\tpayload: message.payload,\n\t\t\tmetadata: {\n\t\t\t\t...message.metadata,\n\t\t\t\toriginalChannel: this.name\n\t\t\t}\n\t\t});\n\t\tthis.amqpChannel.sendToQueue(deadLetterChannel, Buffer.from(content), { persistent: true });\n\t}\n\t/**\n\t* Dead-letter a message whose body couldn't be parsed into a {@link Message}\n\t* (e.g. `JSON.parse` itself threw before an envelope existed). Forwards the\n\t* raw AMQP bytes/properties as-is rather than re-deriving a payload, so a\n\t* malformed message isn't lost.\n\t*/\n\tsendToDeadLetterRaw(msg, deadLetterChannel) {\n\t\tthis.amqpChannel.sendToQueue(deadLetterChannel, msg.content, {\n\t\t\t...msg.properties,\n\t\t\tpersistent: true\n\t\t});\n\t}\n\t/**\n\t* Bounded retry shared by the explicit `ctx.retry()` call and the automatic\n\t* catch when a handler throws without calling it itself — so both paths\n\t* honor the same cap instead of the automatic path silently requeueing\n\t* forever (see `subscribe()`'s catch block).\n\t*\n\t* Under the cap: republishes with an incremented `x-retry-count` header —\n\t* NOT a plain `nack(msg, false, true)`, which redelivers the original\n\t* message untouched and never advances the counter.\n\t*\n\t* At/over the cap: dead-letters if configured, otherwise drops the message\n\t* with a loud `log.error` (never a silent drop) so an operator can see a\n\t* poison message was discarded instead of it vanishing without a trace.\n\t*/\n\tasync retryOrGiveUp(msg, currentRetryCount, options, parsedMessage, delay) {\n\t\tconst retryCount = currentRetryCount + 1;\n\t\tconst maxRetries = options?.retry?.maxRetries ?? 3;\n\t\tif (retryCount > maxRetries) {\n\t\t\tif (options?.deadLetter) if (parsedMessage) await this.sendToDeadLetter(parsedMessage, options.deadLetter.channel);\n\t\t\telse this.sendToDeadLetterRaw(msg, options.deadLetter.channel);\n\t\t\telse {\n\t\t\t\tlog.error(\"herald\", \"poison-message\", `Dropping message on channel \"${this.name}\" after ${retryCount - 1} failed ${retryCount - 1 === 1 ? \"retry\" : \"retries\"} (maxRetries: ${maxRetries}) with no dead-letter channel configured.`, {\n\t\t\t\t\tchannel: this.name,\n\t\t\t\t\tretryCount: retryCount - 1,\n\t\t\t\t\tmaxRetries\n\t\t\t\t});\n\t\t\t\tthis.amqpChannel.reject(msg, false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.amqpChannel.ack(msg);\n\t\t\treturn;\n\t\t}\n\t\tconst headers = {\n\t\t\t...msg.properties.headers,\n\t\t\t\"x-retry-count\": retryCount\n\t\t};\n\t\tif (delay) headers[\"x-delay\"] = delay;\n\t\tthis.amqpChannel.sendToQueue(this.name, msg.content, {\n\t\t\t...msg.properties,\n\t\t\theaders\n\t\t});\n\t\tthis.amqpChannel.ack(msg);\n\t}\n\t/**\n\t* Request-response pattern\n\t*/\n\tasync request(payload, options) {\n\t\tawait this.assert();\n\t\tconst correlationId = randomUUID();\n\t\tconst timeout = options?.timeout ?? 3e4;\n\t\tconst { queue: replyQueue } = await this.amqpChannel.assertQueue(\"\", {\n\t\t\texclusive: true,\n\t\t\tautoDelete: true\n\t\t});\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\treject(/* @__PURE__ */ new Error(`Request timeout after ${timeout}ms`));\n\t\t\t}, timeout);\n\t\t\tthis.amqpChannel.consume(replyQueue, (msg) => {\n\t\t\t\tif (msg?.properties.correlationId === correlationId) {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\tresolve(JSON.parse(msg.content.toString()).payload);\n\t\t\t\t}\n\t\t\t}, { noAck: true });\n\t\t\tconst messageContent = JSON.stringify({\n\t\t\t\tpayload,\n\t\t\t\tmetadata: {\n\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\ttimestamp: (/* @__PURE__ */ new Date()).toISOString(),\n\t\t\t\t\tcorrelationId\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.amqpChannel.sendToQueue(this.name, Buffer.from(messageContent), {\n\t\t\t\tcorrelationId,\n\t\t\t\treplyTo: replyQueue,\n\t\t\t\texpiration: timeout.toString(),\n\t\t\t\t...options\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Register response handler for RPC\n\t*/\n\tasync respond(handler) {\n\t\treturn this.subscribe(async (message, ctx) => {\n\t\t\tconst response = await handler(message, ctx);\n\t\t\tawait ctx.reply(response);\n\t\t\tawait ctx.ack();\n\t\t});\n\t}\n\t/**\n\t* Get queue statistics\n\t*/\n\tasync stats() {\n\t\tawait this.assert();\n\t\tconst queueInfo = await this.amqpChannel.checkQueue(this.name);\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tmessageCount: queueInfo.messageCount,\n\t\t\tconsumerCount: queueInfo.consumerCount\n\t\t};\n\t}\n\t/**\n\t* Purge all messages\n\t*/\n\tasync purge() {\n\t\tawait this.assert();\n\t\treturn (await this.amqpChannel.purgeQueue(this.name)).messageCount;\n\t}\n\t/**\n\t* Check if queue exists\n\t*/\n\tasync exists() {\n\t\ttry {\n\t\t\tawait this.amqpChannel.checkQueue(this.name);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\t/**\n\t* Delete the queue\n\t*/\n\tasync delete() {\n\t\tfor (const subscription of this.subscriptions.values()) await subscription.unsubscribe();\n\t\tthis.subscriptions.clear();\n\t\ttry {\n\t\t\tawait this.amqpChannel.deleteQueue(this.name);\n\t\t} catch {}\n\t\tthis.asserted = false;\n\t}\n};\n/**\n* RabbitMQ Subscription Implementation\n*/\nvar RabbitMQSubscription = class {\n\tconstructor(id, channel, consumerTag, amqpChannel) {\n\t\tthis._isActive = true;\n\t\tthis.id = id;\n\t\tthis.channel = channel;\n\t\tthis.consumerTag = consumerTag;\n\t\tthis.amqpChannel = amqpChannel;\n\t}\n\tasync unsubscribe() {\n\t\tif (!this._isActive) return;\n\t\tawait this.amqpChannel.cancel(this.consumerTag);\n\t\tthis._isActive = false;\n\t}\n\tasync pause() {\n\t\tawait this.amqpChannel.cancel(this.consumerTag);\n\t}\n\tasync resume() {\n\t\tthrow new Error(\"Resume is not supported for RabbitMQ. Please create a new subscription.\");\n\t}\n\tisActive() {\n\t\treturn this._isActive;\n\t}\n};\n\n//#endregion\nexport { RabbitMQChannel };\n//# sourceMappingURL=rabbitmq-channel.mjs.map"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"rabbitmq-channel.mjs","names":[],"sources":["../../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\nimport { v } from \"@warlock.js/seal\";\nimport { randomUUID } from \"node:crypto\";\n\n//#region ../herald/src/drivers/rabbitmq/rabbitmq-channel.ts\n/**\n* RabbitMQ Channel Implementation\n*\n* Wraps a RabbitMQ queue/exchange with a unified API.\n*\n* @template TPayload - The typed payload\n*/\nvar RabbitMQChannel = class {\n\t/**\n\t* Create a new RabbitMQ channel\n\t*/\n\tconstructor(name, amqpChannel, options) {\n\t\tthis.subscriptions = /* @__PURE__ */ new Map();\n\t\tthis.asserted = false;\n\t\tthis.name = name;\n\t\tthis.amqpChannel = amqpChannel;\n\t\tthis.options = options ?? {};\n\t}\n\t/**\n\t* Assert the queue exists\n\t*/\n\tasync assert() {\n\t\tif (this.asserted) return;\n\t\tconst queueOptions = {\n\t\t\tdurable: this.options.durable ?? true,\n\t\t\tautoDelete: this.options.autoDelete ?? false,\n\t\t\texclusive: this.options.exclusive ?? false,\n\t\t\tmessageTtl: this.options.messageTtl,\n\t\t\tmaxLength: this.options.maxLength,\n\t\t\tdeadLetterExchange: this.options.deadLetter?.channel ? \"\" : void 0,\n\t\t\tdeadLetterRoutingKey: this.options.deadLetter?.channel\n\t\t};\n\t\tawait this.amqpChannel.assertQueue(this.name, queueOptions);\n\t\tthis.asserted = true;\n\t}\n\t/**\n\t* Publish a message\n\t*/\n\tasync publish(payload, options) {\n\t\tawait this.assert();\n\t\tif (this.options.schema) {\n\t\t\tconst context = {\n\t\t\t\tallValues: payload,\n\t\t\t\tvalue: payload\n\t\t\t};\n\t\t\tconst result = await v.validate(this.options.schema, payload, { context });\n\t\t\tif (!result.isValid) throw new Error(`Message validation failed: ${JSON.stringify(result.errors)}`);\n\t\t\tpayload = result.data;\n\t\t}\n\t\tconst messageId = randomUUID();\n\t\tconst timestamp = /* @__PURE__ */ new Date();\n\t\tconst messageContent = JSON.stringify({\n\t\t\tpayload,\n\t\t\tmetadata: {\n\t\t\t\tmessageId,\n\t\t\t\ttimestamp: timestamp.toISOString(),\n\t\t\t\tcorrelationId: options?.correlationId,\n\t\t\t\theaders: options?.headers\n\t\t\t}\n\t\t});\n\t\tconst publishOptions = {\n\t\t\tpersistent: options?.persistent ?? true,\n\t\t\tmessageId,\n\t\t\ttimestamp: timestamp.getTime(),\n\t\t\tcorrelationId: options?.correlationId,\n\t\t\texpiration: options?.expiration?.toString(),\n\t\t\tpriority: options?.priority,\n\t\t\theaders: options?.headers\n\t\t};\n\t\tif (options?.delay) publishOptions.headers = {\n\t\t\t...publishOptions.headers,\n\t\t\t\"x-delay\": options.delay\n\t\t};\n\t\tthis.amqpChannel.sendToQueue(this.name, Buffer.from(messageContent), publishOptions);\n\t}\n\t/**\n\t* Publish multiple messages\n\t*/\n\tasync publishBatch(messages, options) {\n\t\tfor (const payload of messages) await this.publish(payload, options);\n\t}\n\t/**\n\t* Subscribe to messages\n\t*\n\t* Smart auto-ack behavior (when autoAck is not true):\n\t* - If handler completes successfully without explicit ack/nack/reject → auto-ack\n\t* - If handler throws an error → auto-nack (with retry if configured)\n\t* - If handler explicitly calls ack/nack/reject → respects that call\n\t*/\n\tasync subscribe(handler, options) {\n\t\tawait this.assert();\n\t\tconst subscriptionId = options?.consumerId ?? randomUUID();\n\t\tif (options?.prefetch) await this.amqpChannel.prefetch(options.prefetch);\n\t\tconst isFireAndForget = options?.autoAck === true;\n\t\tconst consumerOptions = {\n\t\t\tnoAck: isFireAndForget,\n\t\t\texclusive: options?.exclusive ?? false,\n\t\t\tconsumerTag: options?.group ?? subscriptionId\n\t\t};\n\t\tconst { consumerTag } = await this.amqpChannel.consume(this.name, async (msg) => {\n\t\t\tif (!msg) return;\n\t\t\tlet ackHandled = isFireAndForget;\n\t\t\tlet parsedMessage;\n\t\t\ttry {\n\t\t\t\tconst content = JSON.parse(msg.content.toString());\n\t\t\t\tlet payload = content.payload;\n\t\t\t\tif (this.options.schema) {\n\t\t\t\t\tconst context = {\n\t\t\t\t\t\tallValues: payload,\n\t\t\t\t\t\tvalue: payload\n\t\t\t\t\t};\n\t\t\t\t\tconst result = await v.validate(this.options.schema, payload, { context });\n\t\t\t\t\tif (!result.isValid) {\n\t\t\t\t\t\tthis.amqpChannel.nack(msg, false, false);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tpayload = result.data;\n\t\t\t\t}\n\t\t\t\tconst metadata = {\n\t\t\t\t\tmessageId: msg.properties.messageId || content.metadata?.messageId || randomUUID(),\n\t\t\t\t\ttimestamp: new Date(msg.properties.timestamp || content.metadata?.timestamp),\n\t\t\t\t\tcorrelationId: msg.properties.correlationId || content.metadata?.correlationId,\n\t\t\t\t\treplyTo: msg.properties.replyTo,\n\t\t\t\t\tpriority: msg.properties.priority,\n\t\t\t\t\theaders: msg.properties.headers,\n\t\t\t\t\tretryCount: msg.properties.headers?.[\"x-retry-count\"] || 0,\n\t\t\t\t\toriginalChannel: this.name\n\t\t\t\t};\n\t\t\t\tconst message = {\n\t\t\t\t\tmetadata,\n\t\t\t\t\tpayload,\n\t\t\t\t\traw: msg\n\t\t\t\t};\n\t\t\t\tparsedMessage = message;\n\t\t\t\tawait handler(message, {\n\t\t\t\t\tack: async () => {\n\t\t\t\t\t\tif (!ackHandled) {\n\t\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\t\tthis.amqpChannel.ack(msg);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tnack: async (requeue = true) => {\n\t\t\t\t\t\tif (!ackHandled) {\n\t\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\t\tthis.amqpChannel.nack(msg, false, requeue);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treject: async () => {\n\t\t\t\t\t\tif (!ackHandled) {\n\t\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\t\tthis.amqpChannel.reject(msg, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treply: async (replyPayload) => {\n\t\t\t\t\t\tif (msg.properties.replyTo) {\n\t\t\t\t\t\t\tconst replyContent = JSON.stringify({\n\t\t\t\t\t\t\t\tpayload: replyPayload,\n\t\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\t\t\t\t\ttimestamp: (/* @__PURE__ */ new Date()).toISOString(),\n\t\t\t\t\t\t\t\t\tcorrelationId: msg.properties.correlationId\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.amqpChannel.sendToQueue(msg.properties.replyTo, Buffer.from(replyContent), { correlationId: msg.properties.correlationId });\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tretry: async (delay) => {\n\t\t\t\t\t\tif (ackHandled) return;\n\t\t\t\t\t\tackHandled = true;\n\t\t\t\t\t\tawait this.retryOrGiveUp(msg, metadata.retryCount || 0, options, message, delay);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (!ackHandled) this.amqpChannel.ack(msg);\n\t\t\t} catch (error) {\n\t\t\t\tif (ackHandled) return;\n\t\t\t\tif (options?.retry) {\n\t\t\t\t\tconst currentRetryCount = msg.properties.headers?.[\"x-retry-count\"] || 0;\n\t\t\t\t\tawait this.retryOrGiveUp(msg, currentRetryCount, options, parsedMessage);\n\t\t\t\t} else this.amqpChannel.nack(msg, false, false);\n\t\t\t}\n\t\t}, consumerOptions);\n\t\tconst subscription = new RabbitMQSubscription(subscriptionId, this.name, consumerTag, this.amqpChannel);\n\t\tthis.subscriptions.set(subscriptionId, subscription);\n\t\treturn subscription;\n\t}\n\t/**\n\t* Unsubscribe by consumer ID\n\t*/\n\tasync unsubscribeById(consumerId) {\n\t\tconst subscription = this.subscriptions.get(consumerId);\n\t\tif (subscription) {\n\t\t\tawait subscription.unsubscribe();\n\t\t\tthis.subscriptions.delete(consumerId);\n\t\t}\n\t}\n\t/**\n\t* Stop consuming messages on this channel.\n\t* Cancels all active subscriptions gracefully.\n\t*/\n\tasync stopConsuming() {\n\t\tconst cancellations = Array.from(this.subscriptions.values()).map((sub) => sub.unsubscribe());\n\t\tawait Promise.all(cancellations);\n\t}\n\t/**\n\t* Send message to dead-letter queue\n\t*/\n\tasync sendToDeadLetter(message, deadLetterChannel) {\n\t\tconst content = JSON.stringify({\n\t\t\tpayload: message.payload,\n\t\t\tmetadata: {\n\t\t\t\t...message.metadata,\n\t\t\t\toriginalChannel: this.name\n\t\t\t}\n\t\t});\n\t\tthis.amqpChannel.sendToQueue(deadLetterChannel, Buffer.from(content), { persistent: true });\n\t}\n\t/**\n\t* Dead-letter a message whose body couldn't be parsed into a {@link Message}\n\t* (e.g. `JSON.parse` itself threw before an envelope existed). Forwards the\n\t* raw AMQP bytes/properties as-is rather than re-deriving a payload, so a\n\t* malformed message isn't lost.\n\t*/\n\tsendToDeadLetterRaw(msg, deadLetterChannel) {\n\t\tthis.amqpChannel.sendToQueue(deadLetterChannel, msg.content, {\n\t\t\t...msg.properties,\n\t\t\tpersistent: true\n\t\t});\n\t}\n\t/**\n\t* Bounded retry shared by the explicit `ctx.retry()` call and the automatic\n\t* catch when a handler throws without calling it itself — so both paths\n\t* honor the same cap instead of the automatic path silently requeueing\n\t* forever (see `subscribe()`'s catch block).\n\t*\n\t* Under the cap: republishes with an incremented `x-retry-count` header —\n\t* NOT a plain `nack(msg, false, true)`, which redelivers the original\n\t* message untouched and never advances the counter.\n\t*\n\t* At/over the cap: dead-letters if configured, otherwise drops the message\n\t* with a loud `log.error` (never a silent drop) so an operator can see a\n\t* poison message was discarded instead of it vanishing without a trace.\n\t*/\n\tasync retryOrGiveUp(msg, currentRetryCount, options, parsedMessage, delay) {\n\t\tconst retryCount = currentRetryCount + 1;\n\t\tconst maxRetries = options?.retry?.maxRetries ?? 3;\n\t\tif (retryCount > maxRetries) {\n\t\t\tif (options?.deadLetter) if (parsedMessage) await this.sendToDeadLetter(parsedMessage, options.deadLetter.channel);\n\t\t\telse this.sendToDeadLetterRaw(msg, options.deadLetter.channel);\n\t\t\telse {\n\t\t\t\tlog.error(\"herald\", \"poison-message\", `Dropping message on channel \"${this.name}\" after ${retryCount - 1} failed ${retryCount - 1 === 1 ? \"retry\" : \"retries\"} (maxRetries: ${maxRetries}) with no dead-letter channel configured.`, {\n\t\t\t\t\tchannel: this.name,\n\t\t\t\t\tretryCount: retryCount - 1,\n\t\t\t\t\tmaxRetries\n\t\t\t\t});\n\t\t\t\tthis.amqpChannel.reject(msg, false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.amqpChannel.ack(msg);\n\t\t\treturn;\n\t\t}\n\t\tconst headers = {\n\t\t\t...msg.properties.headers,\n\t\t\t\"x-retry-count\": retryCount\n\t\t};\n\t\tif (delay) headers[\"x-delay\"] = delay;\n\t\tthis.amqpChannel.sendToQueue(this.name, msg.content, {\n\t\t\t...msg.properties,\n\t\t\theaders\n\t\t});\n\t\tthis.amqpChannel.ack(msg);\n\t}\n\t/**\n\t* Request-response pattern\n\t*/\n\tasync request(payload, options) {\n\t\tawait this.assert();\n\t\tconst correlationId = randomUUID();\n\t\tconst timeout = options?.timeout ?? 3e4;\n\t\tconst { queue: replyQueue } = await this.amqpChannel.assertQueue(\"\", {\n\t\t\texclusive: true,\n\t\t\tautoDelete: true\n\t\t});\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\treject(/* @__PURE__ */ new Error(`Request timeout after ${timeout}ms`));\n\t\t\t}, timeout);\n\t\t\tthis.amqpChannel.consume(replyQueue, (msg) => {\n\t\t\t\tif (msg?.properties.correlationId === correlationId) {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\tresolve(JSON.parse(msg.content.toString()).payload);\n\t\t\t\t}\n\t\t\t}, { noAck: true });\n\t\t\tconst messageContent = JSON.stringify({\n\t\t\t\tpayload,\n\t\t\t\tmetadata: {\n\t\t\t\t\tmessageId: randomUUID(),\n\t\t\t\t\ttimestamp: (/* @__PURE__ */ new Date()).toISOString(),\n\t\t\t\t\tcorrelationId\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.amqpChannel.sendToQueue(this.name, Buffer.from(messageContent), {\n\t\t\t\tcorrelationId,\n\t\t\t\treplyTo: replyQueue,\n\t\t\t\texpiration: timeout.toString(),\n\t\t\t\t...options\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Register response handler for RPC\n\t*/\n\tasync respond(handler) {\n\t\treturn this.subscribe(async (message, ctx) => {\n\t\t\tconst response = await handler(message, ctx);\n\t\t\tawait ctx.reply(response);\n\t\t\tawait ctx.ack();\n\t\t});\n\t}\n\t/**\n\t* Get queue statistics\n\t*/\n\tasync stats() {\n\t\tawait this.assert();\n\t\tconst queueInfo = await this.amqpChannel.checkQueue(this.name);\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tmessageCount: queueInfo.messageCount,\n\t\t\tconsumerCount: queueInfo.consumerCount\n\t\t};\n\t}\n\t/**\n\t* Purge all messages\n\t*/\n\tasync purge() {\n\t\tawait this.assert();\n\t\treturn (await this.amqpChannel.purgeQueue(this.name)).messageCount;\n\t}\n\t/**\n\t* Check if queue exists\n\t*/\n\tasync exists() {\n\t\ttry {\n\t\t\tawait this.amqpChannel.checkQueue(this.name);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\t/**\n\t* Delete the queue\n\t*/\n\tasync delete() {\n\t\tfor (const subscription of this.subscriptions.values()) await subscription.unsubscribe();\n\t\tthis.subscriptions.clear();\n\t\ttry {\n\t\t\tawait this.amqpChannel.deleteQueue(this.name);\n\t\t} catch {}\n\t\tthis.asserted = false;\n\t}\n};\n/**\n* RabbitMQ Subscription Implementation\n*/\nvar RabbitMQSubscription = class {\n\tconstructor(id, channel, consumerTag, amqpChannel) {\n\t\tthis._isActive = true;\n\t\tthis.id = id;\n\t\tthis.channel = channel;\n\t\tthis.consumerTag = consumerTag;\n\t\tthis.amqpChannel = amqpChannel;\n\t}\n\tasync unsubscribe() {\n\t\tif (!this._isActive) return;\n\t\tawait this.amqpChannel.cancel(this.consumerTag);\n\t\tthis._isActive = false;\n\t}\n\tasync pause() {\n\t\tawait this.amqpChannel.cancel(this.consumerTag);\n\t}\n\tasync resume() {\n\t\tthrow new Error(\"Resume is not supported for RabbitMQ. Please create a new subscription.\");\n\t}\n\tisActive() {\n\t\treturn this._isActive;\n\t}\n};\n\n//#endregion\nexport { RabbitMQChannel };\n//# sourceMappingURL=rabbitmq-channel.mjs.map"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -3,7 +3,7 @@ import { prepareConsumerSubscription } from "../../message-managers/prepare-cons
3
3
  import { RabbitMQChannel } from "./rabbitmq-channel.mjs";
4
4
  import { EventEmitter } from "node:events";
5
5
 
6
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs
6
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs
7
7
  /**
8
8
  * The single amqplib load, shared by every caller.
9
9
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq-driver.mjs","names":[],"sources":["../../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs"],"sourcesContent":["import { prepareConsumerSubscription } from \"../../message-managers/prepare-consumer-subscription.mjs\";\nimport { RabbitMQChannel } from \"./rabbitmq-channel.mjs\";\nimport { EventEmitter } from \"node:events\";\n\n//#region ../herald/src/drivers/rabbitmq/rabbitmq-driver.ts\n/**\n* The single amqplib load, shared by every caller.\n*\n* Memoized as a promise rather than as a resolved value so the loader stays\n* idempotent: without it, two callers arriving before the first `import()`\n* settles would each start their own load and the last writer would win, so a\n* caller could end up observing a module instance it never awaited.\n*\n* Resolves to `undefined` when amqplib is not installed.\n*/\nlet amqplibModulePromise;\n/**\n* Installation instructions for amqplib\n*/\nconst AMQPLIB_INSTALL_INSTRUCTIONS = `\nRabbitMQ driver requires the amqplib package.\nInstall it with:\n\n npx warlock add herald --driver=rabbitmq\n\nOr manually:\n\n npm install amqplib\n pnpm add amqplib\n yarn add amqplib\n`.trim();\n/**\n* Strip `user:password@` credentials from any `amqp(s)://` URL embedded in a\n* string. The connection URL carries plaintext broker credentials, and\n* amqplib/Node's URL parser commonly echoes the offending URL verbatim in a\n* malformed-URL error (e.g. an unencoded `@`/`:` in the password) — applied\n* to every error `connect()` surfaces so a credential never reaches whatever\n* the host app does with a thrown connection error (console.error,\n* structured logging, an error tracker).\n*/\nfunction redactAmqpCredentials(message) {\n\treturn message.replace(/(amqps?:\\/\\/)[^/@\\s]+@/gi, \"$1****:****@\");\n}\n/**\n* Load amqplib, reusing the single shared load for every caller.\n*\n* @returns The amqplib module, or `undefined` when it is not installed.\n*/\nfunction loadAmqplibModule() {\n\tif (!amqplibModulePromise) amqplibModulePromise = import(\"amqplib\").catch(() => void 0);\n\treturn amqplibModulePromise;\n}\n/**\n* RabbitMQ Driver\n*\n* Implementation of BrokerDriverContract for RabbitMQ/AMQP.\n*\n* **Important:** This driver requires the `amqplib` package to be installed.\n* Install it with: `npx warlock add herald --driver=rabbitmq` or `npm install amqplib`\n*\n* @example\n* ```typescript\n* const driver = new RabbitMQDriver({\n* driver: \"rabbitmq\",\n* host: \"localhost\",\n* port: 5672,\n* username: \"guest\",\n* password: \"guest\",\n* });\n*\n* await driver.connect();\n* const channel = driver.channel(\"user.created\");\n* ```\n*/\nvar RabbitMQDriver = class {\n\t/**\n\t* Create a new RabbitMQ driver\n\t*\n\t* @param options - RabbitMQ connection options\n\t*/\n\tconstructor(options) {\n\t\tthis.name = \"rabbitmq\";\n\t\tthis.consumers = [];\n\t\tthis.events = new EventEmitter();\n\t\tthis.channels = /* @__PURE__ */ new Map();\n\t\tthis.connection = null;\n\t\tthis.amqpChannel = null;\n\t\tthis._isConnected = false;\n\t\tthis.options = options;\n\t}\n\t/**\n\t* Whether connected to RabbitMQ\n\t*/\n\tget isConnected() {\n\t\treturn this._isConnected;\n\t}\n\t/**\n\t* Subscribe the given consumer class to the driver\n\t*\n\t* @param consumer - Consumer class to subscribe\n\t*\n\t* @example\n\t* ```typescript\n\t* driver.subscribe(UserUpdatedConsumer);\n\t* ```\n\t*/\n\tsubscribe(Consumer) {\n\t\tif (this.isConnected) this.channel(Consumer.eventName).subscribe(prepareConsumerSubscription(Consumer, (error, eventName) => {\n\t\t\tthis.events.emit(\"error\", error, eventName);\n\t\t}), { consumerId: Consumer.consumerId });\n\t\telse this.consumers.push(Consumer);\n\t\treturn () => {\n\t\t\tthis.unsubscribe(Consumer);\n\t\t};\n\t}\n\t/**\n\t* Unsubscribe the given consumer\n\t*/\n\tunsubscribe(Consumer) {\n\t\tif (this.isConnected) this.channel(Consumer.eventName).unsubscribeById(Consumer.consumerId);\n\t\tconst index = this.consumers.indexOf(Consumer);\n\t\tif (index > -1) this.consumers.splice(index, 1);\n\t}\n\t/**\n\t* Publish the given event message.\n\t* Auto-creates the channel if it hasn't been accessed before.\n\t*/\n\tpublish(event) {\n\t\tthis.channel(event.eventName).publish(event.serialize());\n\t}\n\t/**\n\t* Connect to RabbitMQ\n\t*/\n\tasync connect() {\n\t\tconst amqplib = await loadAmqplibModule();\n\t\tif (!amqplib) throw new Error(`amqplib is not installed.\\n\\n${AMQPLIB_INSTALL_INSTRUCTIONS}`);\n\t\ttry {\n\t\t\tconst url = this.buildConnectionUrl();\n\t\t\tconst connectOptions = {\n\t\t\t\theartbeat: this.options.heartbeat ?? 60,\n\t\t\t\ttimeout: this.options.connectionTimeout,\n\t\t\t\t...this.options.clientOptions\n\t\t\t};\n\t\t\tthis.connection = await amqplib.connect(url, connectOptions);\n\t\t\tthis.amqpChannel = await this.connection.createChannel();\n\t\t\tif (this.options.prefetch) await this.amqpChannel.prefetch(this.options.prefetch);\n\t\t\tthis._isConnected = true;\n\t\t\tthis.events.emit(\"connected\");\n\t\t\tfor (const consumer of this.consumers) this.subscribe(consumer);\n\t\t\tthis.consumers.length = 0;\n\t\t\tthis.connection.on(\"close\", () => {\n\t\t\t\tthis._isConnected = false;\n\t\t\t\tthis.events.emit(\"disconnected\");\n\t\t\t\tif (this.options.reconnect !== false) this.handleReconnect();\n\t\t\t});\n\t\t\tthis.connection.on(\"error\", (error) => {\n\t\t\t\tthis.events.emit(\"error\", error);\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis._isConnected = false;\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(`Failed to connect to RabbitMQ: ${redactAmqpCredentials(message)}`);\n\t\t}\n\t}\n\t/**\n\t* Build connection URL from options\n\t*/\n\tbuildConnectionUrl() {\n\t\tif (this.options.uri) return this.options.uri;\n\t\tconst protocol = \"amqp\";\n\t\tconst host = this.options.host ?? \"localhost\";\n\t\tconst port = this.options.port ?? 5672;\n\t\tconst vhost = this.options.vhost ?? \"/\";\n\t\treturn `${protocol}://${encodeURIComponent(this.options.username ?? \"guest\")}:${encodeURIComponent(this.options.password ?? \"guest\")}@${host}:${port}/${encodeURIComponent(vhost)}`;\n\t}\n\t/**\n\t* Handle reconnection\n\t*/\n\tasync handleReconnect() {\n\t\tconst delay = this.options.reconnectDelay ?? 5e3;\n\t\tlet attempt = 0;\n\t\tconst tryReconnect = async () => {\n\t\t\tattempt++;\n\t\t\tthis.events.emit(\"reconnecting\", attempt);\n\t\t\ttry {\n\t\t\t\tawait this.connect();\n\t\t\t} catch {\n\t\t\t\tsetTimeout(tryReconnect, delay);\n\t\t\t}\n\t\t};\n\t\tsetTimeout(tryReconnect, delay);\n\t}\n\t/**\n\t* Disconnect from RabbitMQ\n\t*/\n\tasync disconnect() {\n\t\tif (this.amqpChannel) {\n\t\t\ttry {\n\t\t\t\tawait this.amqpChannel.close();\n\t\t\t} catch {}\n\t\t\tthis.amqpChannel = null;\n\t\t}\n\t\tif (this.connection) {\n\t\t\ttry {\n\t\t\t\tawait this.connection.close();\n\t\t\t} catch {}\n\t\t\tthis.connection = null;\n\t\t}\n\t\tthis._isConnected = false;\n\t\tthis.events.emit(\"disconnected\");\n\t}\n\t/**\n\t* Register event listener\n\t*/\n\ton(event, listener) {\n\t\tthis.events.on(event, listener);\n\t}\n\t/**\n\t* Remove event listener\n\t*/\n\toff(event, listener) {\n\t\tthis.events.off(event, listener);\n\t}\n\t/**\n\t* Get or create a channel\n\t*/\n\tchannel(name, options) {\n\t\tconst existing = this.channels.get(name);\n\t\tif (existing) return existing;\n\t\tconst channel = new RabbitMQChannel(name, this.amqpChannel, options);\n\t\tthis.channels.set(name, channel);\n\t\treturn channel;\n\t}\n\t/**\n\t* Start consuming messages\n\t*/\n\tasync startConsuming() {}\n\t/**\n\t* Stop consuming messages from all subscribed channels.\n\t* Gracefully cancels all active consumers.\n\t*/\n\tasync stopConsuming() {\n\t\tconst stops = Array.from(this.channels.values()).map((channel) => channel.stopConsuming());\n\t\tawait Promise.all(stops);\n\t}\n\t/**\n\t* Health check\n\t*/\n\tasync healthCheck() {\n\t\tif (!this._isConnected || !this.connection) return {\n\t\t\thealthy: false,\n\t\t\terror: \"Not connected to RabbitMQ\"\n\t\t};\n\t\tconst start = Date.now();\n\t\ttry {\n\t\t\tawait this.amqpChannel.checkQueue(\"amq.rabbitmq.reply-to\").catch(() => {});\n\t\t\treturn {\n\t\t\t\thealthy: true,\n\t\t\t\tlatency: Date.now() - start\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\thealthy: false,\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tlatency: Date.now() - start\n\t\t\t};\n\t\t}\n\t}\n\t/**\n\t* Get all channel names\n\t*/\n\tgetChannelNames() {\n\t\treturn Array.from(this.channels.keys());\n\t}\n\t/**\n\t* Close a specific channel\n\t*/\n\tasync closeChannel(name) {\n\t\tconst channel = this.channels.get(name);\n\t\tif (channel) {\n\t\t\tawait channel.delete();\n\t\t\tthis.channels.delete(name);\n\t\t}\n\t}\n\t/**\n\t* Get the raw AMQP channel (for advanced use)\n\t*/\n\tgetRawChannel() {\n\t\treturn this.amqpChannel;\n\t}\n\t/**\n\t* Get the raw connection (for advanced use)\n\t*/\n\tgetRawConnection() {\n\t\treturn this.connection;\n\t}\n};\n\n//#endregion\nexport { RabbitMQDriver };\n//# sourceMappingURL=rabbitmq-driver.mjs.map"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"rabbitmq-driver.mjs","names":[],"sources":["../../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs"],"sourcesContent":["import { prepareConsumerSubscription } from \"../../message-managers/prepare-consumer-subscription.mjs\";\nimport { RabbitMQChannel } from \"./rabbitmq-channel.mjs\";\nimport { EventEmitter } from \"node:events\";\n\n//#region ../herald/src/drivers/rabbitmq/rabbitmq-driver.ts\n/**\n* The single amqplib load, shared by every caller.\n*\n* Memoized as a promise rather than as a resolved value so the loader stays\n* idempotent: without it, two callers arriving before the first `import()`\n* settles would each start their own load and the last writer would win, so a\n* caller could end up observing a module instance it never awaited.\n*\n* Resolves to `undefined` when amqplib is not installed.\n*/\nlet amqplibModulePromise;\n/**\n* Installation instructions for amqplib\n*/\nconst AMQPLIB_INSTALL_INSTRUCTIONS = `\nRabbitMQ driver requires the amqplib package.\nInstall it with:\n\n npx warlock add herald --driver=rabbitmq\n\nOr manually:\n\n npm install amqplib\n pnpm add amqplib\n yarn add amqplib\n`.trim();\n/**\n* Strip `user:password@` credentials from any `amqp(s)://` URL embedded in a\n* string. The connection URL carries plaintext broker credentials, and\n* amqplib/Node's URL parser commonly echoes the offending URL verbatim in a\n* malformed-URL error (e.g. an unencoded `@`/`:` in the password) — applied\n* to every error `connect()` surfaces so a credential never reaches whatever\n* the host app does with a thrown connection error (console.error,\n* structured logging, an error tracker).\n*/\nfunction redactAmqpCredentials(message) {\n\treturn message.replace(/(amqps?:\\/\\/)[^/@\\s]+@/gi, \"$1****:****@\");\n}\n/**\n* Load amqplib, reusing the single shared load for every caller.\n*\n* @returns The amqplib module, or `undefined` when it is not installed.\n*/\nfunction loadAmqplibModule() {\n\tif (!amqplibModulePromise) amqplibModulePromise = import(\"amqplib\").catch(() => void 0);\n\treturn amqplibModulePromise;\n}\n/**\n* RabbitMQ Driver\n*\n* Implementation of BrokerDriverContract for RabbitMQ/AMQP.\n*\n* **Important:** This driver requires the `amqplib` package to be installed.\n* Install it with: `npx warlock add herald --driver=rabbitmq` or `npm install amqplib`\n*\n* @example\n* ```typescript\n* const driver = new RabbitMQDriver({\n* driver: \"rabbitmq\",\n* host: \"localhost\",\n* port: 5672,\n* username: \"guest\",\n* password: \"guest\",\n* });\n*\n* await driver.connect();\n* const channel = driver.channel(\"user.created\");\n* ```\n*/\nvar RabbitMQDriver = class {\n\t/**\n\t* Create a new RabbitMQ driver\n\t*\n\t* @param options - RabbitMQ connection options\n\t*/\n\tconstructor(options) {\n\t\tthis.name = \"rabbitmq\";\n\t\tthis.consumers = [];\n\t\tthis.events = new EventEmitter();\n\t\tthis.channels = /* @__PURE__ */ new Map();\n\t\tthis.connection = null;\n\t\tthis.amqpChannel = null;\n\t\tthis._isConnected = false;\n\t\tthis.options = options;\n\t}\n\t/**\n\t* Whether connected to RabbitMQ\n\t*/\n\tget isConnected() {\n\t\treturn this._isConnected;\n\t}\n\t/**\n\t* Subscribe the given consumer class to the driver\n\t*\n\t* @param consumer - Consumer class to subscribe\n\t*\n\t* @example\n\t* ```typescript\n\t* driver.subscribe(UserUpdatedConsumer);\n\t* ```\n\t*/\n\tsubscribe(Consumer) {\n\t\tif (this.isConnected) this.channel(Consumer.eventName).subscribe(prepareConsumerSubscription(Consumer, (error, eventName) => {\n\t\t\tthis.events.emit(\"error\", error, eventName);\n\t\t}), { consumerId: Consumer.consumerId });\n\t\telse this.consumers.push(Consumer);\n\t\treturn () => {\n\t\t\tthis.unsubscribe(Consumer);\n\t\t};\n\t}\n\t/**\n\t* Unsubscribe the given consumer\n\t*/\n\tunsubscribe(Consumer) {\n\t\tif (this.isConnected) this.channel(Consumer.eventName).unsubscribeById(Consumer.consumerId);\n\t\tconst index = this.consumers.indexOf(Consumer);\n\t\tif (index > -1) this.consumers.splice(index, 1);\n\t}\n\t/**\n\t* Publish the given event message.\n\t* Auto-creates the channel if it hasn't been accessed before.\n\t*/\n\tpublish(event) {\n\t\tthis.channel(event.eventName).publish(event.serialize());\n\t}\n\t/**\n\t* Connect to RabbitMQ\n\t*/\n\tasync connect() {\n\t\tconst amqplib = await loadAmqplibModule();\n\t\tif (!amqplib) throw new Error(`amqplib is not installed.\\n\\n${AMQPLIB_INSTALL_INSTRUCTIONS}`);\n\t\ttry {\n\t\t\tconst url = this.buildConnectionUrl();\n\t\t\tconst connectOptions = {\n\t\t\t\theartbeat: this.options.heartbeat ?? 60,\n\t\t\t\ttimeout: this.options.connectionTimeout,\n\t\t\t\t...this.options.clientOptions\n\t\t\t};\n\t\t\tthis.connection = await amqplib.connect(url, connectOptions);\n\t\t\tthis.amqpChannel = await this.connection.createChannel();\n\t\t\tif (this.options.prefetch) await this.amqpChannel.prefetch(this.options.prefetch);\n\t\t\tthis._isConnected = true;\n\t\t\tthis.events.emit(\"connected\");\n\t\t\tfor (const consumer of this.consumers) this.subscribe(consumer);\n\t\t\tthis.consumers.length = 0;\n\t\t\tthis.connection.on(\"close\", () => {\n\t\t\t\tthis._isConnected = false;\n\t\t\t\tthis.events.emit(\"disconnected\");\n\t\t\t\tif (this.options.reconnect !== false) this.handleReconnect();\n\t\t\t});\n\t\t\tthis.connection.on(\"error\", (error) => {\n\t\t\t\tthis.events.emit(\"error\", error);\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis._isConnected = false;\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthrow new Error(`Failed to connect to RabbitMQ: ${redactAmqpCredentials(message)}`);\n\t\t}\n\t}\n\t/**\n\t* Build connection URL from options\n\t*/\n\tbuildConnectionUrl() {\n\t\tif (this.options.uri) return this.options.uri;\n\t\tconst protocol = \"amqp\";\n\t\tconst host = this.options.host ?? \"localhost\";\n\t\tconst port = this.options.port ?? 5672;\n\t\tconst vhost = this.options.vhost ?? \"/\";\n\t\treturn `${protocol}://${encodeURIComponent(this.options.username ?? \"guest\")}:${encodeURIComponent(this.options.password ?? \"guest\")}@${host}:${port}/${encodeURIComponent(vhost)}`;\n\t}\n\t/**\n\t* Handle reconnection\n\t*/\n\tasync handleReconnect() {\n\t\tconst delay = this.options.reconnectDelay ?? 5e3;\n\t\tlet attempt = 0;\n\t\tconst tryReconnect = async () => {\n\t\t\tattempt++;\n\t\t\tthis.events.emit(\"reconnecting\", attempt);\n\t\t\ttry {\n\t\t\t\tawait this.connect();\n\t\t\t} catch {\n\t\t\t\tsetTimeout(tryReconnect, delay);\n\t\t\t}\n\t\t};\n\t\tsetTimeout(tryReconnect, delay);\n\t}\n\t/**\n\t* Disconnect from RabbitMQ\n\t*/\n\tasync disconnect() {\n\t\tif (this.amqpChannel) {\n\t\t\ttry {\n\t\t\t\tawait this.amqpChannel.close();\n\t\t\t} catch {}\n\t\t\tthis.amqpChannel = null;\n\t\t}\n\t\tif (this.connection) {\n\t\t\ttry {\n\t\t\t\tawait this.connection.close();\n\t\t\t} catch {}\n\t\t\tthis.connection = null;\n\t\t}\n\t\tthis._isConnected = false;\n\t\tthis.events.emit(\"disconnected\");\n\t}\n\t/**\n\t* Register event listener\n\t*/\n\ton(event, listener) {\n\t\tthis.events.on(event, listener);\n\t}\n\t/**\n\t* Remove event listener\n\t*/\n\toff(event, listener) {\n\t\tthis.events.off(event, listener);\n\t}\n\t/**\n\t* Get or create a channel\n\t*/\n\tchannel(name, options) {\n\t\tconst existing = this.channels.get(name);\n\t\tif (existing) return existing;\n\t\tconst channel = new RabbitMQChannel(name, this.amqpChannel, options);\n\t\tthis.channels.set(name, channel);\n\t\treturn channel;\n\t}\n\t/**\n\t* Start consuming messages\n\t*/\n\tasync startConsuming() {}\n\t/**\n\t* Stop consuming messages from all subscribed channels.\n\t* Gracefully cancels all active consumers.\n\t*/\n\tasync stopConsuming() {\n\t\tconst stops = Array.from(this.channels.values()).map((channel) => channel.stopConsuming());\n\t\tawait Promise.all(stops);\n\t}\n\t/**\n\t* Health check\n\t*/\n\tasync healthCheck() {\n\t\tif (!this._isConnected || !this.connection) return {\n\t\t\thealthy: false,\n\t\t\terror: \"Not connected to RabbitMQ\"\n\t\t};\n\t\tconst start = Date.now();\n\t\ttry {\n\t\t\tawait this.amqpChannel.checkQueue(\"amq.rabbitmq.reply-to\").catch(() => {});\n\t\t\treturn {\n\t\t\t\thealthy: true,\n\t\t\t\tlatency: Date.now() - start\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\thealthy: false,\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tlatency: Date.now() - start\n\t\t\t};\n\t\t}\n\t}\n\t/**\n\t* Get all channel names\n\t*/\n\tgetChannelNames() {\n\t\treturn Array.from(this.channels.keys());\n\t}\n\t/**\n\t* Close a specific channel\n\t*/\n\tasync closeChannel(name) {\n\t\tconst channel = this.channels.get(name);\n\t\tif (channel) {\n\t\t\tawait channel.delete();\n\t\t\tthis.channels.delete(name);\n\t\t}\n\t}\n\t/**\n\t* Get the raw AMQP channel (for advanced use)\n\t*/\n\tgetRawChannel() {\n\t\treturn this.amqpChannel;\n\t}\n\t/**\n\t* Get the raw connection (for advanced use)\n\t*/\n\tgetRawConnection() {\n\t\treturn this.connection;\n\t}\n};\n\n//#endregion\nexport { RabbitMQDriver };\n//# sourceMappingURL=rabbitmq-driver.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;AAeA,IAAI;;;;AAIJ,MAAM,+BAA+B;;;;;;;;;;;EAWnC,KAAK;;;;;;;;;;AAUP,SAAS,sBAAsB,SAAS;CACvC,OAAO,QAAQ,QAAQ,4BAA4B,cAAc;AAClE;;;;;;AAMA,SAAS,oBAAoB;CAC5B,IAAI,CAAC,sBAAsB,uBAAuB,OAAO,2EAAU,oDAAC,YAAY,KAAK,CAAC;CACtF,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAI,iBAAiB,MAAM;;;;;;CAM1B,YAAY,SAAS;EACpB,KAAK,OAAO;EACZ,KAAK,YAAY,CAAC;EAClB,KAAK,SAAS,IAAI,aAAa;EAC/B,KAAK,2BAA2B,IAAI,IAAI;EACxC,KAAK,aAAa;EAClB,KAAK,cAAc;EACnB,KAAK,eAAe;EACpB,KAAK,UAAU;CAChB;;;;CAIA,IAAI,cAAc;EACjB,OAAO,KAAK;CACb;;;;;;;;;;;CAWA,UAAU,UAAU;EACnB,IAAI,KAAK,aAAa,KAAK,QAAQ,SAAS,SAAS,CAAC,CAAC,UAAU,4BAA4B,WAAW,OAAO,cAAc;GAC5H,KAAK,OAAO,KAAK,SAAS,OAAO,SAAS;EAC3C,CAAC,GAAG,EAAE,YAAY,SAAS,WAAW,CAAC;OAClC,KAAK,UAAU,KAAK,QAAQ;EACjC,aAAa;GACZ,KAAK,YAAY,QAAQ;EAC1B;CACD;;;;CAIA,YAAY,UAAU;EACrB,IAAI,KAAK,aAAa,KAAK,QAAQ,SAAS,SAAS,CAAC,CAAC,gBAAgB,SAAS,UAAU;EAC1F,MAAM,QAAQ,KAAK,UAAU,QAAQ,QAAQ;EAC7C,IAAI,QAAQ,IAAI,KAAK,UAAU,OAAO,OAAO,CAAC;CAC/C;;;;;CAKA,QAAQ,OAAO;EACd,KAAK,QAAQ,MAAM,SAAS,CAAC,CAAC,QAAQ,MAAM,UAAU,CAAC;CACxD;;;;CAIA,MAAM,UAAU;EACf,MAAM,UAAU,MAAM,kBAAkB;EACxC,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,gCAAgC,8BAA8B;EAC5F,IAAI;GACH,MAAM,MAAM,KAAK,mBAAmB;GACpC,MAAM,iBAAiB;IACtB,WAAW,KAAK,QAAQ,aAAa;IACrC,SAAS,KAAK,QAAQ;IACtB,GAAG,KAAK,QAAQ;GACjB;GACA,KAAK,aAAa,MAAM,QAAQ,QAAQ,KAAK,cAAc;GAC3D,KAAK,cAAc,MAAM,KAAK,WAAW,cAAc;GACvD,IAAI,KAAK,QAAQ,UAAU,MAAM,KAAK,YAAY,SAAS,KAAK,QAAQ,QAAQ;GAChF,KAAK,eAAe;GACpB,KAAK,OAAO,KAAK,WAAW;GAC5B,KAAK,MAAM,YAAY,KAAK,WAAW,KAAK,UAAU,QAAQ;GAC9D,KAAK,UAAU,SAAS;GACxB,KAAK,WAAW,GAAG,eAAe;IACjC,KAAK,eAAe;IACpB,KAAK,OAAO,KAAK,cAAc;IAC/B,IAAI,KAAK,QAAQ,cAAc,OAAO,KAAK,gBAAgB;GAC5D,CAAC;GACD,KAAK,WAAW,GAAG,UAAU,UAAU;IACtC,KAAK,OAAO,KAAK,SAAS,KAAK;GAChC,CAAC;EACF,SAAS,OAAO;GACf,KAAK,eAAe;GACpB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GACrE,MAAM,IAAI,MAAM,kCAAkC,sBAAsB,OAAO,GAAG;EACnF;CACD;;;;CAIA,qBAAqB;EACpB,IAAI,KAAK,QAAQ,KAAK,OAAO,KAAK,QAAQ;EAC1C,MAAM,WAAW;EACjB,MAAM,OAAO,KAAK,QAAQ,QAAQ;EAClC,MAAM,OAAO,KAAK,QAAQ,QAAQ;EAClC,MAAM,QAAQ,KAAK,QAAQ,SAAS;EACpC,OAAO,GAAG,SAAS,KAAK,mBAAmB,KAAK,QAAQ,YAAY,OAAO,EAAE,GAAG,mBAAmB,KAAK,QAAQ,YAAY,OAAO,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,mBAAmB,KAAK;CACjL;;;;CAIA,MAAM,kBAAkB;EACvB,MAAM,QAAQ,KAAK,QAAQ,kBAAkB;EAC7C,IAAI,UAAU;EACd,MAAM,eAAe,YAAY;GAChC;GACA,KAAK,OAAO,KAAK,gBAAgB,OAAO;GACxC,IAAI;IACH,MAAM,KAAK,QAAQ;GACpB,QAAQ;IACP,WAAW,cAAc,KAAK;GAC/B;EACD;EACA,WAAW,cAAc,KAAK;CAC/B;;;;CAIA,MAAM,aAAa;EAClB,IAAI,KAAK,aAAa;GACrB,IAAI;IACH,MAAM,KAAK,YAAY,MAAM;GAC9B,QAAQ,CAAC;GACT,KAAK,cAAc;EACpB;EACA,IAAI,KAAK,YAAY;GACpB,IAAI;IACH,MAAM,KAAK,WAAW,MAAM;GAC7B,QAAQ,CAAC;GACT,KAAK,aAAa;EACnB;EACA,KAAK,eAAe;EACpB,KAAK,OAAO,KAAK,cAAc;CAChC;;;;CAIA,GAAG,OAAO,UAAU;EACnB,KAAK,OAAO,GAAG,OAAO,QAAQ;CAC/B;;;;CAIA,IAAI,OAAO,UAAU;EACpB,KAAK,OAAO,IAAI,OAAO,QAAQ;CAChC;;;;CAIA,QAAQ,MAAM,SAAS;EACtB,MAAM,WAAW,KAAK,SAAS,IAAI,IAAI;EACvC,IAAI,UAAU,OAAO;EACrB,MAAM,UAAU,IAAI,gBAAgB,MAAM,KAAK,aAAa,OAAO;EACnE,KAAK,SAAS,IAAI,MAAM,OAAO;EAC/B,OAAO;CACR;;;;CAIA,MAAM,iBAAiB,CAAC;;;;;CAKxB,MAAM,gBAAgB;EACrB,MAAM,QAAQ,MAAM,KAAK,KAAK,SAAS,OAAO,CAAC,CAAC,CAAC,KAAK,YAAY,QAAQ,cAAc,CAAC;EACzF,MAAM,QAAQ,IAAI,KAAK;CACxB;;;;CAIA,MAAM,cAAc;EACnB,IAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,YAAY,OAAO;GAClD,SAAS;GACT,OAAO;EACR;EACA,MAAM,QAAQ,KAAK,IAAI;EACvB,IAAI;GACH,MAAM,KAAK,YAAY,WAAW,uBAAuB,CAAC,CAAC,YAAY,CAAC,CAAC;GACzE,OAAO;IACN,SAAS;IACT,SAAS,KAAK,IAAI,IAAI;GACvB;EACD,SAAS,OAAO;GACf,OAAO;IACN,SAAS;IACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;IAC5D,SAAS,KAAK,IAAI,IAAI;GACvB;EACD;CACD;;;;CAIA,kBAAkB;EACjB,OAAO,MAAM,KAAK,KAAK,SAAS,KAAK,CAAC;CACvC;;;;CAIA,MAAM,aAAa,MAAM;EACxB,MAAM,UAAU,KAAK,SAAS,IAAI,IAAI;EACtC,IAAI,SAAS;GACZ,MAAM,QAAQ,OAAO;GACrB,KAAK,SAAS,OAAO,IAAI;EAC1B;CACD;;;;CAIA,gBAAgB;EACf,OAAO,KAAK;CACb;;;;CAIA,mBAAmB;EAClB,OAAO,KAAK;CACb;AACD"}
@@ -1,10 +1,10 @@
1
- import { v } from "../../../../../../@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/factory/validators.mjs";
2
- import "../../../../../../@warlock.js_seal@5.3.1/node_modules/@warlock.js/seal/esm/index.mjs";
1
+ import { v } from "../../../../../../@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/factory/validators.mjs";
2
+ import "../../../../../../@warlock.js_seal@5.6.0/node_modules/@warlock.js/seal/esm/index.mjs";
3
3
  import { Consumable } from "../decorators/consumable.mjs";
4
4
  import "../decorators/index.mjs";
5
5
  import { randomUUID } from "crypto";
6
6
 
7
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs
7
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs
8
8
  /**
9
9
  * This class is used to be part of the Herald Event Consumer Manager.
10
10
  * It should be used to consume events from Either RabbitMQ or Kafka through Herald
@@ -1 +1 @@
1
- {"version":3,"file":"event-consumer.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs"],"sourcesContent":["import { Consumable } from \"../decorators/consumable.mjs\";\nimport \"../decorators/index.mjs\";\nimport { v } from \"@warlock.js/seal\";\nimport { randomUUID } from \"crypto\";\n\n//#region ../herald/src/message-managers/event-consumer.ts\n/**\n* This class is used to be part of the Herald Event Consumer Manager.\n* It should be used to consume events from Either RabbitMQ or Kafka through Herald\n*\n* It's highly recommended using it instead of declaring manual channel namd and subscribing to event\n*/\nvar EventConsumer = class {\n\tstatic get consumerId() {\n\t\tif (!this._consumerId) this._consumerId = randomUUID();\n\t\treturn this._consumerId;\n\t}\n\tget eventName() {\n\t\treturn this.constructor.eventName;\n\t}\n\t/**\n\t* Determine whether this is accepted version to be used by this consumer\n\t*/\n\tstatic isAcceptedVersion(version) {\n\t\tif (this.minVersion && version < this.minVersion) return false;\n\t\tif (this.maxVersion && version > this.maxVersion) return false;\n\t\treturn true;\n\t}\n\t/**\n\t* Validate the given data\n\t*/\n\tasync validate(data) {\n\t\tif (!this.schema) return;\n\t\treturn await v.validate(this.schema, data);\n\t}\n};\n/**\n* A shorthand to define an event consumer without declaring an entire class\n*/\nfunction defineConsumer(eventName, options) {\n\tconst Class = class AnnouncedConsumer extends EventConsumer {\n\t\tconstructor(..._args) {\n\t\t\tsuper(..._args);\n\t\t\tthis.schema = options.schema;\n\t\t}\n\t\tstatic {\n\t\t\tthis.eventName = eventName;\n\t\t}\n\t\tasync handle(payload, event) {\n\t\t\tif (options.validate) {\n\t\t\t\tconst result = await options.validate(payload);\n\t\t\t\tif (!result || !result.isValid) return;\n\t\t\t}\n\t\t\treturn options.handle(payload, event);\n\t\t}\n\t};\n\tConsumable()(Class);\n\treturn Class;\n}\n\n//#endregion\nexport { EventConsumer, defineConsumer };\n//# sourceMappingURL=event-consumer.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;AAYA,IAAI,gBAAgB,MAAM;CACzB,WAAW,aAAa;EACvB,IAAI,CAAC,KAAK,aAAa,KAAK,cAAc,WAAW;EACrD,OAAO,KAAK;CACb;CACA,IAAI,YAAY;EACf,OAAO,KAAK,YAAY;CACzB;;;;CAIA,OAAO,kBAAkB,SAAS;EACjC,IAAI,KAAK,cAAc,UAAU,KAAK,YAAY,OAAO;EACzD,IAAI,KAAK,cAAc,UAAU,KAAK,YAAY,OAAO;EACzD,OAAO;CACR;;;;CAIA,MAAM,SAAS,MAAM;EACpB,IAAI,CAAC,KAAK,QAAQ;EAClB,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI;CAC1C;AACD;;;;AAIA,SAAS,eAAe,WAAW,SAAS;CAC3C,MAAM,QAAQ,MAAM,0BAA0B,cAAc;EAC3D,YAAY,GAAG,OAAO;GACrB,MAAM,GAAG,KAAK;GACd,KAAK,SAAS,QAAQ;EACvB;EACA;GACC,KAAK,YAAY;EAClB;EACA,MAAM,OAAO,SAAS,OAAO;GAC5B,IAAI,QAAQ,UAAU;IACrB,MAAM,SAAS,MAAM,QAAQ,SAAS,OAAO;IAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,SAAS;GACjC;GACA,OAAO,QAAQ,OAAO,SAAS,KAAK;EACrC;CACD;CACA,WAAW,CAAC,CAAC,KAAK;CAClB,OAAO;AACR"}
1
+ {"version":3,"file":"event-consumer.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs"],"sourcesContent":["import { Consumable } from \"../decorators/consumable.mjs\";\nimport \"../decorators/index.mjs\";\nimport { v } from \"@warlock.js/seal\";\nimport { randomUUID } from \"crypto\";\n\n//#region ../herald/src/message-managers/event-consumer.ts\n/**\n* This class is used to be part of the Herald Event Consumer Manager.\n* It should be used to consume events from Either RabbitMQ or Kafka through Herald\n*\n* It's highly recommended using it instead of declaring manual channel namd and subscribing to event\n*/\nvar EventConsumer = class {\n\tstatic get consumerId() {\n\t\tif (!this._consumerId) this._consumerId = randomUUID();\n\t\treturn this._consumerId;\n\t}\n\tget eventName() {\n\t\treturn this.constructor.eventName;\n\t}\n\t/**\n\t* Determine whether this is accepted version to be used by this consumer\n\t*/\n\tstatic isAcceptedVersion(version) {\n\t\tif (this.minVersion && version < this.minVersion) return false;\n\t\tif (this.maxVersion && version > this.maxVersion) return false;\n\t\treturn true;\n\t}\n\t/**\n\t* Validate the given data\n\t*/\n\tasync validate(data) {\n\t\tif (!this.schema) return;\n\t\treturn await v.validate(this.schema, data);\n\t}\n};\n/**\n* A shorthand to define an event consumer without declaring an entire class\n*/\nfunction defineConsumer(eventName, options) {\n\tconst Class = class AnnouncedConsumer extends EventConsumer {\n\t\tconstructor(..._args) {\n\t\t\tsuper(..._args);\n\t\t\tthis.schema = options.schema;\n\t\t}\n\t\tstatic {\n\t\t\tthis.eventName = eventName;\n\t\t}\n\t\tasync handle(payload, event) {\n\t\t\tif (options.validate) {\n\t\t\t\tconst result = await options.validate(payload);\n\t\t\t\tif (!result || !result.isValid) return;\n\t\t\t}\n\t\t\treturn options.handle(payload, event);\n\t\t}\n\t};\n\tConsumable()(Class);\n\treturn Class;\n}\n\n//#endregion\nexport { EventConsumer, defineConsumer };\n//# sourceMappingURL=event-consumer.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;AAYA,IAAI,gBAAgB,MAAM;CACzB,WAAW,aAAa;EACvB,IAAI,CAAC,KAAK,aAAa,KAAK,cAAc,WAAW;EACrD,OAAO,KAAK;CACb;CACA,IAAI,YAAY;EACf,OAAO,KAAK,YAAY;CACzB;;;;CAIA,OAAO,kBAAkB,SAAS;EACjC,IAAI,KAAK,cAAc,UAAU,KAAK,YAAY,OAAO;EACzD,IAAI,KAAK,cAAc,UAAU,KAAK,YAAY,OAAO;EACzD,OAAO;CACR;;;;CAIA,MAAM,SAAS,MAAM;EACpB,IAAI,CAAC,KAAK,QAAQ;EAClB,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI;CAC1C;AACD;;;;AAIA,SAAS,eAAe,WAAW,SAAS;CAC3C,MAAM,QAAQ,MAAM,0BAA0B,cAAc;EAC3D,YAAY,GAAG,OAAO;GACrB,MAAM,GAAG,KAAK;GACd,KAAK,SAAS,QAAQ;EACvB;EACA;GACC,KAAK,YAAY;EAClB;EACA,MAAM,OAAO,SAAS,OAAO;GAC5B,IAAI,QAAQ,UAAU;IACrB,MAAM,SAAS,MAAM,QAAQ,SAAS,OAAO;IAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,SAAS;GACjC;GACA,OAAO,QAAQ,OAAO,SAAS,KAAK;EACrC;CACD;CACA,WAAW,CAAC,CAAC,KAAK;CAClB,OAAO;AACR"}
@@ -1,6 +1,6 @@
1
1
  import { randomUUID } from "crypto";
2
2
 
3
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs
3
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs
4
4
  var EventMessage = class {
5
5
  /**
6
6
  * Data that will be sent with the event (Payload)
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs"],"sourcesContent":["import { randomUUID } from \"crypto\";\n\n//#region ../herald/src/message-managers/event-message.ts\nvar EventMessage = class {\n\t/**\n\t* Data that will be sent with the event (Payload)\n\t*/\n\ttoJSON() {\n\t\tif (!this.data) throw new Error(`no Data is defined for Event: ${this.eventName}`);\n\t\treturn this.data;\n\t}\n\tconstructor(data) {\n\t\tthis.data = data;\n\t}\n\t/**\n\t* Serialize the event to be ready for publishing.\n\t* Delegates payload resolution to toJSON() — override toJSON() to customize.\n\t*\n\t* @throws Error if toJSON() throws (e.g. no data provided)\n\t*/\n\tserialize() {\n\t\treturn {\n\t\t\tpayload: this.toJSON(),\n\t\t\tmetadata: this.metadata,\n\t\t\tmessageId: this.messageId ?? randomUUID(),\n\t\t\teventName: this.eventName,\n\t\t\tversion: this.version,\n\t\t\toccurredAt: /* @__PURE__ */ new Date(),\n\t\t\t__through: \"EventMessage\"\n\t\t};\n\t}\n};\n/**\n* A shorthand to define an event without declaring an entire class.\n*\n* This factory function creates an EventMessage subclass that transforms\n* input data (IncomingData) into a different output format (OutgoingData).\n*\n* @template IncomingData - The type of data passed to the constructor\n* @template OutgoingData - The type of data returned by toJSON()\n*\n* @example\n* ```typescript\n* const UserCreatedEvent = defineEvent<User, { id: number; name: string }>(\n* \"user.created\",\n* { toJSON: (user) => user.only([\"id\", \"name\"]) }\n* );\n*\n* publishEvent(new UserCreatedEvent(user));\n* ```\n*/\nfunction defineEvent(eventName, options = {}) {\n\treturn class AnnouncedEvent extends EventMessage {\n\t\tconstructor(data) {\n\t\t\tsuper(data);\n\t\t\tthis.eventName = eventName;\n\t\t\tthis.schema = options.schema;\n\t\t}\n\t\ttoJSON() {\n\t\t\tif (!options.toJSON) return this.data;\n\t\t\treturn options.toJSON(this.data);\n\t\t}\n\t};\n}\n\n//#endregion\nexport { EventMessage, defineEvent };\n//# sourceMappingURL=event-message.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;AAGA,IAAI,eAAe,MAAM;;;;CAIxB,SAAS;EACR,IAAI,CAAC,KAAK,MAAM,MAAM,IAAI,MAAM,iCAAiC,KAAK,WAAW;EACjF,OAAO,KAAK;CACb;CACA,YAAY,MAAM;EACjB,KAAK,OAAO;CACb;;;;;;;CAOA,YAAY;EACX,OAAO;GACN,SAAS,KAAK,OAAO;GACrB,UAAU,KAAK;GACf,WAAW,KAAK,aAAa,WAAW;GACxC,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,4BAA4B,IAAI,KAAK;GACrC,WAAW;EACZ;CACD;AACD;;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,YAAY,WAAW,UAAU,CAAC,GAAG;CAC7C,OAAO,MAAM,uBAAuB,aAAa;EAChD,YAAY,MAAM;GACjB,MAAM,IAAI;GACV,KAAK,YAAY;GACjB,KAAK,SAAS,QAAQ;EACvB;EACA,SAAS;GACR,IAAI,CAAC,QAAQ,QAAQ,OAAO,KAAK;GACjC,OAAO,QAAQ,OAAO,KAAK,IAAI;EAChC;CACD;AACD"}
1
+ {"version":3,"file":"event-message.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs"],"sourcesContent":["import { randomUUID } from \"crypto\";\n\n//#region ../herald/src/message-managers/event-message.ts\nvar EventMessage = class {\n\t/**\n\t* Data that will be sent with the event (Payload)\n\t*/\n\ttoJSON() {\n\t\tif (!this.data) throw new Error(`no Data is defined for Event: ${this.eventName}`);\n\t\treturn this.data;\n\t}\n\tconstructor(data) {\n\t\tthis.data = data;\n\t}\n\t/**\n\t* Serialize the event to be ready for publishing.\n\t* Delegates payload resolution to toJSON() — override toJSON() to customize.\n\t*\n\t* @throws Error if toJSON() throws (e.g. no data provided)\n\t*/\n\tserialize() {\n\t\treturn {\n\t\t\tpayload: this.toJSON(),\n\t\t\tmetadata: this.metadata,\n\t\t\tmessageId: this.messageId ?? randomUUID(),\n\t\t\teventName: this.eventName,\n\t\t\tversion: this.version,\n\t\t\toccurredAt: /* @__PURE__ */ new Date(),\n\t\t\t__through: \"EventMessage\"\n\t\t};\n\t}\n};\n/**\n* A shorthand to define an event without declaring an entire class.\n*\n* This factory function creates an EventMessage subclass that transforms\n* input data (IncomingData) into a different output format (OutgoingData).\n*\n* @template IncomingData - The type of data passed to the constructor\n* @template OutgoingData - The type of data returned by toJSON()\n*\n* @example\n* ```typescript\n* const UserCreatedEvent = defineEvent<User, { id: number; name: string }>(\n* \"user.created\",\n* { toJSON: (user) => user.only([\"id\", \"name\"]) }\n* );\n*\n* publishEvent(new UserCreatedEvent(user));\n* ```\n*/\nfunction defineEvent(eventName, options = {}) {\n\treturn class AnnouncedEvent extends EventMessage {\n\t\tconstructor(data) {\n\t\t\tsuper(data);\n\t\t\tthis.eventName = eventName;\n\t\t\tthis.schema = options.schema;\n\t\t}\n\t\ttoJSON() {\n\t\t\tif (!options.toJSON) return this.data;\n\t\t\treturn options.toJSON(this.data);\n\t\t}\n\t};\n}\n\n//#endregion\nexport { EventMessage, defineEvent };\n//# sourceMappingURL=event-message.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;AAGA,IAAI,eAAe,MAAM;;;;CAIxB,SAAS;EACR,IAAI,CAAC,KAAK,MAAM,MAAM,IAAI,MAAM,iCAAiC,KAAK,WAAW;EACjF,OAAO,KAAK;CACb;CACA,YAAY,MAAM;EACjB,KAAK,OAAO;CACb;;;;;;;CAOA,YAAY;EACX,OAAO;GACN,SAAS,KAAK,OAAO;GACrB,UAAU,KAAK;GACf,WAAW,KAAK,aAAa,WAAW;GACxC,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,4BAA4B,IAAI,KAAK;GACrC,WAAW;EACZ;CACD;AACD;;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,YAAY,WAAW,UAAU,CAAC,GAAG;CAC7C,OAAO,MAAM,uBAAuB,aAAa;EAChD,YAAY,MAAM;GACjB,MAAM,IAAI;GACV,KAAK,YAAY;GACjB,KAAK,SAAS,QAAQ;EACvB;EACA,SAAS;GACR,IAAI,CAAC,QAAQ,QAAQ,OAAO,KAAK;GACjC,OAAO,QAAQ,OAAO,KAAK,IAAI;EAChC;CACD;AACD"}
@@ -1,4 +1,4 @@
1
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs
1
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs
2
2
  function prepareConsumerSubscription(Consumer, onError) {
3
3
  const callback = async (message, ctx) => {
4
4
  const envelope = message.payload;
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-consumer-subscription.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs"],"sourcesContent":["//#region ../herald/src/message-managers/prepare-consumer-subscription.ts\nfunction prepareConsumerSubscription(Consumer, onError) {\n\tconst callback = async (message, ctx) => {\n\t\tconst envelope = message.payload;\n\t\tlet eventPayload = envelope.payload;\n\t\tif (envelope.version) {\n\t\t\tif (!Consumer.isAcceptedVersion(Number(envelope.version))) {\n\t\t\t\tctx.ack();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst consumer = new Consumer();\n\t\tif (consumer.schema) {\n\t\t\tconst result = await consumer.validate(eventPayload);\n\t\t\tif (!result || result.isValid === false) {\n\t\t\t\tctx.nack();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\teventPayload = result.data;\n\t\t}\n\t\ttry {\n\t\t\tawait consumer.handle(eventPayload, {\n\t\t\t\tpayload: eventPayload,\n\t\t\t\teventName: Consumer.eventName,\n\t\t\t\tmessageId: message.metadata.messageId,\n\t\t\t\toccurredAt: envelope.occurredAt ? new Date(envelope.occurredAt) : void 0,\n\t\t\t\tmetadata: envelope.metadata,\n\t\t\t\tversion: envelope.version,\n\t\t\t\tmessage\n\t\t\t});\n\t\t\tctx.ack();\n\t\t} catch (error) {\n\t\t\tawait ctx.retry();\n\t\t\tif (onError) onError(error, Consumer.eventName);\n\t\t}\n\t};\n\treturn callback;\n}\n\n//#endregion\nexport { prepareConsumerSubscription };\n//# sourceMappingURL=prepare-consumer-subscription.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,SAAS,4BAA4B,UAAU,SAAS;CACvD,MAAM,WAAW,OAAO,SAAS,QAAQ;EACxC,MAAM,WAAW,QAAQ;EACzB,IAAI,eAAe,SAAS;EAC5B,IAAI,SAAS,SACZ;OAAI,CAAC,SAAS,kBAAkB,OAAO,SAAS,OAAO,CAAC,GAAG;IAC1D,IAAI,IAAI;IACR;GACD;;EAED,MAAM,WAAW,IAAI,SAAS;EAC9B,IAAI,SAAS,QAAQ;GACpB,MAAM,SAAS,MAAM,SAAS,SAAS,YAAY;GACnD,IAAI,CAAC,UAAU,OAAO,YAAY,OAAO;IACxC,IAAI,KAAK;IACT;GACD;GACA,eAAe,OAAO;EACvB;EACA,IAAI;GACH,MAAM,SAAS,OAAO,cAAc;IACnC,SAAS;IACT,WAAW,SAAS;IACpB,WAAW,QAAQ,SAAS;IAC5B,YAAY,SAAS,aAAa,IAAI,KAAK,SAAS,UAAU,IAAI,KAAK;IACvE,UAAU,SAAS;IACnB,SAAS,SAAS;IAClB;GACD,CAAC;GACD,IAAI,IAAI;EACT,SAAS,OAAO;GACf,MAAM,IAAI,MAAM;GAChB,IAAI,SAAS,QAAQ,OAAO,SAAS,SAAS;EAC/C;CACD;CACA,OAAO;AACR"}
1
+ {"version":3,"file":"prepare-consumer-subscription.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs"],"sourcesContent":["//#region ../herald/src/message-managers/prepare-consumer-subscription.ts\nfunction prepareConsumerSubscription(Consumer, onError) {\n\tconst callback = async (message, ctx) => {\n\t\tconst envelope = message.payload;\n\t\tlet eventPayload = envelope.payload;\n\t\tif (envelope.version) {\n\t\t\tif (!Consumer.isAcceptedVersion(Number(envelope.version))) {\n\t\t\t\tctx.ack();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst consumer = new Consumer();\n\t\tif (consumer.schema) {\n\t\t\tconst result = await consumer.validate(eventPayload);\n\t\t\tif (!result || result.isValid === false) {\n\t\t\t\tctx.nack();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\teventPayload = result.data;\n\t\t}\n\t\ttry {\n\t\t\tawait consumer.handle(eventPayload, {\n\t\t\t\tpayload: eventPayload,\n\t\t\t\teventName: Consumer.eventName,\n\t\t\t\tmessageId: message.metadata.messageId,\n\t\t\t\toccurredAt: envelope.occurredAt ? new Date(envelope.occurredAt) : void 0,\n\t\t\t\tmetadata: envelope.metadata,\n\t\t\t\tversion: envelope.version,\n\t\t\t\tmessage\n\t\t\t});\n\t\t\tctx.ack();\n\t\t} catch (error) {\n\t\t\tawait ctx.retry();\n\t\t\tif (onError) onError(error, Consumer.eventName);\n\t\t}\n\t};\n\treturn callback;\n}\n\n//#endregion\nexport { prepareConsumerSubscription };\n//# sourceMappingURL=prepare-consumer-subscription.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,SAAS,4BAA4B,UAAU,SAAS;CACvD,MAAM,WAAW,OAAO,SAAS,QAAQ;EACxC,MAAM,WAAW,QAAQ;EACzB,IAAI,eAAe,SAAS;EAC5B,IAAI,SAAS,SACZ;OAAI,CAAC,SAAS,kBAAkB,OAAO,SAAS,OAAO,CAAC,GAAG;IAC1D,IAAI,IAAI;IACR;GACD;;EAED,MAAM,WAAW,IAAI,SAAS;EAC9B,IAAI,SAAS,QAAQ;GACpB,MAAM,SAAS,MAAM,SAAS,SAAS,YAAY;GACnD,IAAI,CAAC,UAAU,OAAO,YAAY,OAAO;IACxC,IAAI,KAAK;IACT;GACD;GACA,eAAe,OAAO;EACvB;EACA,IAAI;GACH,MAAM,SAAS,OAAO,cAAc;IACnC,SAAS;IACT,WAAW,SAAS;IACpB,WAAW,QAAQ,SAAS;IAC5B,YAAY,SAAS,aAAa,IAAI,KAAK,SAAS,UAAU,IAAI,KAAK;IACvE,UAAU,SAAS;IACnB,SAAS,SAAS;IAClB;GACD,CAAC;GACD,IAAI,IAAI;EACT,SAAS,OAAO;GACf,MAAM,IAAI,MAAM;GAChB,IAAI,SAAS,QAAQ,OAAO,SAAS,SAAS;EAC/C;CACD;CACA,OAAO;AACR"}
@@ -1,6 +1,6 @@
1
1
  import { herald } from "./utils/connect-to-broker.mjs";
2
2
 
3
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs
3
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs
4
4
  /**
5
5
  * Channel adapter that publishes use-case broadcast events onto a herald broker.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"use-case-broadcast.mjs","names":[],"sources":["../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs"],"sourcesContent":["import { herald } from \"./utils/connect-to-broker.mjs\";\n\n//#region ../herald/src/use-case-broadcast.ts\n/**\n* Channel adapter that publishes use-case broadcast events onto a herald broker.\n*\n* Register it in the use-cases config so successful use cases fan out to the bus:\n*\n* @example\n* // src/config/use-cases.ts\n* import { heraldBroadcast } from \"@warlock.js/herald\";\n*\n* export default {\n* broadcast: {\n* enabled: true,\n* channels: [heraldBroadcast({ broker: \"default\" })],\n* },\n* } satisfies UseCaseConfigurations;\n*\n* @param options - Optional broker name (defaults to the default broker)\n*/\nfunction heraldBroadcast(options) {\n\treturn { async broadcast(event) {\n\t\tawait herald(options?.broker).channel(event.event).publish(event.payload);\n\t} };\n}\n\n//#endregion\nexport { heraldBroadcast };\n//# sourceMappingURL=use-case-broadcast.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,SAAS,gBAAgB,SAAS;CACjC,OAAO,EAAE,MAAM,UAAU,OAAO;EAC/B,MAAM,OAAO,SAAS,MAAM,CAAC,CAAC,QAAQ,MAAM,KAAK,CAAC,CAAC,QAAQ,MAAM,OAAO;CACzE,EAAE;AACH"}
1
+ {"version":3,"file":"use-case-broadcast.mjs","names":[],"sources":["../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs"],"sourcesContent":["import { herald } from \"./utils/connect-to-broker.mjs\";\n\n//#region ../herald/src/use-case-broadcast.ts\n/**\n* Channel adapter that publishes use-case broadcast events onto a herald broker.\n*\n* Register it in the use-cases config so successful use cases fan out to the bus:\n*\n* @example\n* // src/config/use-cases.ts\n* import { heraldBroadcast } from \"@warlock.js/herald\";\n*\n* export default {\n* broadcast: {\n* enabled: true,\n* channels: [heraldBroadcast({ broker: \"default\" })],\n* },\n* } satisfies UseCaseConfigurations;\n*\n* @param options - Optional broker name (defaults to the default broker)\n*/\nfunction heraldBroadcast(options) {\n\treturn { async broadcast(event) {\n\t\tawait herald(options?.broker).channel(event.event).publish(event.payload);\n\t} };\n}\n\n//#endregion\nexport { heraldBroadcast };\n//# sourceMappingURL=use-case-broadcast.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,SAAS,gBAAgB,SAAS;CACjC,OAAO,EAAE,MAAM,UAAU,OAAO;EAC/B,MAAM,OAAO,SAAS,MAAM,CAAC,CAAC,QAAQ,MAAM,KAAK,CAAC,CAAC,QAAQ,MAAM,OAAO;CACzE,EAAE;AACH"}
@@ -1,7 +1,7 @@
1
1
  import { brokerRegistry } from "../communicators/broker-registry.mjs";
2
2
  import "../communicators/index.mjs";
3
3
 
4
- //#region ../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs
4
+ //#region ../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs
5
5
  /**
6
6
  * Connect to a message broker and register it.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"connect-to-broker.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.3.1_@s_00df530f11ab3a5e53db46d40b714c55/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs"],"sourcesContent":["import { brokerRegistry } from \"../communicators/broker-registry.mjs\";\nimport \"../communicators/index.mjs\";\n\n//#region ../herald/src/utils/connect-to-broker.ts\n/**\n* Connect to a message broker and register it.\n*\n* This is a high-level utility function that simplifies connection setup\n* for most projects. It handles driver instantiation, connection,\n* broker creation, and automatic registration.\n*\n* **Supported Drivers:**\n* - `rabbitmq` (default) - RabbitMQ/AMQP driver\n* - `kafka` - Apache Kafka driver (coming soon)\n*\n* @param options - Connection configuration options\n* @returns A connected and registered Broker instance\n* @throws {Error} If connection fails or driver is not implemented\n*\n* @example\n* ```typescript\n* // RabbitMQ connection\n* const broker = await connectToBroker({\n* driver: \"rabbitmq\",\n* host: \"localhost\",\n* port: 5672,\n* username: \"guest\",\n* password: \"guest\",\n* });\n*\n* // Use the broker\n* await broker.channel(\"user.created\").publish({ userId: 1 });\n* ```\n*\n* @example\n* ```typescript\n* // Multiple brokers\n* await connectToBroker({\n* driver: \"rabbitmq\",\n* name: \"notifications\",\n* isDefault: true,\n* host: process.env.RABBITMQ_HOST,\n* });\n*\n* await connectToBroker({\n* driver: \"rabbitmq\",\n* name: \"analytics\",\n* host: process.env.ANALYTICS_RABBITMQ_HOST,\n* });\n*\n* // Use default broker\n* herald().channel(\"notifications\").publish({ ... });\n*\n* // Use specific broker\n* herald(\"analytics\").channel(\"events\").publish({ ... });\n* ```\n*/\nasync function connectToBroker(options) {\n\tconst driverType = options.driver ?? \"rabbitmq\";\n\tconst brokerName = options.name ?? \"default\";\n\tconst isDefault = options.isDefault ?? true;\n\tlet driver;\n\tswitch (driverType) {\n\t\tcase \"rabbitmq\": {\n\t\t\tconst rabbitOptions = options;\n\t\t\tconst { RabbitMQDriver } = await import(\"../drivers/rabbitmq/rabbitmq-driver.mjs\");\n\t\t\tdriver = new RabbitMQDriver(rabbitOptions);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"kafka\": throw new Error(\"Kafka driver is not yet implemented. Coming soon! For now, please use RabbitMQ.\");\n\t\tdefault: throw new Error(`Unknown driver: \"${driverType}\". Supported drivers: rabbitmq, kafka`);\n\t}\n\tconst broker = brokerRegistry.register({\n\t\tname: brokerName,\n\t\tdriver,\n\t\tisDefault\n\t});\n\ttry {\n\t\tawait driver.connect();\n\t} catch (error) {\n\t\tthrow new Error(`Failed to connect to ${driverType}: ${error instanceof Error ? error.message : String(error)}`);\n\t}\n\treturn broker;\n}\n/**\n* Get a broker by name or the default one.\n*\n* This is the main entry point for using brokers in your application.\n* Named after the package — `herald()` carries your messages!\n*\n* @param name - Optional broker name (uses default if not provided)\n* @returns Broker instance\n* @throws MissingBrokerError if broker not found\n*\n* @example\n* // Get default broker\n* const channel = herald().channel(\"user.created\");\n* await channel.publish({ userId: 1 });\n*\n* // Get specific broker\n* const analyticsChannel = herald(\"analytics\").channel(\"events\");\n* await analyticsChannel.publish({ event: \"page_view\" });\n*\n* // Subscribe to messages\n* herald()\n* .channel<UserPayload>(\"user.created\")\n* .subscribe(async (message, ctx) => {\n* console.log(\"User created:\", message.payload);\n* await ctx.ack();\n* });\n* ```\n*/\nfunction herald(name) {\n\treturn brokerRegistry.get(name);\n}\n/**\n* Get channel instance for the given name from default broker.\n*\n* Shorthand for `herald().channel(name, options)`.\n*\n* @param name - Channel name\n* @param options - Optional channel options\n* @returns Channel instance\n* @throws MissingBrokerError if broker not found\n*\n* @example\n* ```typescript\n* const channel = heraldChannel(\"user.created\");\n* await channel.publish({ userId: 1 });\n* ```\n*/\nfunction heraldChannel(name, options) {\n\treturn herald().channel(name, options);\n}\n/**\n* Publish an EventMessage to the default broker.\n*\n* @param event - Event message to publish\n* @returns Promise that resolves when the event is published\n* @throws Error if the broker is not connected\n*\n* @example\n* ```typescript\n* await publishEvent(new UserUpdatedEvent({ id: 1, name: \"John Doe\" }));\n* ```\n*/\nasync function publishEvent(event) {\n\treturn herald().publish(event);\n}\n/**\n* Subscribe an EventConsumer class to the default broker.\n*\n* @param Consumer - Event consumer class\n* @returns Unsubscribe function\n* @throws MissingBrokerError if broker not found\n*\n* @example\n* ```typescript\n* await subscribeConsumer(UserUpdatedConsumer);\n* ```\n*/\nasync function subscribeConsumer(Consumer) {\n\treturn herald().subscribe(Consumer);\n}\n\n//#endregion\nexport { connectToBroker, herald, heraldChannel, publishEvent, subscribeConsumer };\n//# sourceMappingURL=connect-to-broker.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,eAAe,gBAAgB,SAAS;CACvC,MAAM,aAAa,QAAQ,UAAU;CACrC,MAAM,aAAa,QAAQ,QAAQ;CACnC,MAAM,YAAY,QAAQ,aAAa;CACvC,IAAI;CACJ,QAAQ,YAAR;EACC,KAAK,YAAY;GAChB,MAAM,gBAAgB;GACtB,MAAM,EAAE,mBAAmB,MAAM,OAAO;GACxC,SAAS,IAAI,eAAe,aAAa;GACzC;EACD;EACA,KAAK,SAAS,MAAM,IAAI,MAAM,iFAAiF;EAC/G,SAAS,MAAM,IAAI,MAAM,oBAAoB,WAAW,sCAAsC;CAC/F;CACA,MAAM,SAAS,eAAe,SAAS;EACtC,MAAM;EACN;EACA;CACD,CAAC;CACD,IAAI;EACH,MAAM,OAAO,QAAQ;CACtB,SAAS,OAAO;EACf,MAAM,IAAI,MAAM,wBAAwB,WAAW,IAAI,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG;CAChH;CACA,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAS,OAAO,MAAM;CACrB,OAAO,eAAe,IAAI,IAAI;AAC/B;;;;;;;;;;;;;;;;;AAiBA,SAAS,cAAc,MAAM,SAAS;CACrC,OAAO,OAAO,CAAC,CAAC,QAAQ,MAAM,OAAO;AACtC;;;;;;;;;;;;;AAaA,eAAe,aAAa,OAAO;CAClC,OAAO,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC9B;;;;;;;;;;;;;AAaA,eAAe,kBAAkB,UAAU;CAC1C,OAAO,OAAO,CAAC,CAAC,UAAU,QAAQ;AACnC"}
1
+ {"version":3,"file":"connect-to-broker.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+herald@5.6.0_@s_0860c22cdacc649e21c0eaa39aa1c65f/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs"],"sourcesContent":["import { brokerRegistry } from \"../communicators/broker-registry.mjs\";\nimport \"../communicators/index.mjs\";\n\n//#region ../herald/src/utils/connect-to-broker.ts\n/**\n* Connect to a message broker and register it.\n*\n* This is a high-level utility function that simplifies connection setup\n* for most projects. It handles driver instantiation, connection,\n* broker creation, and automatic registration.\n*\n* **Supported Drivers:**\n* - `rabbitmq` (default) - RabbitMQ/AMQP driver\n* - `kafka` - Apache Kafka driver (coming soon)\n*\n* @param options - Connection configuration options\n* @returns A connected and registered Broker instance\n* @throws {Error} If connection fails or driver is not implemented\n*\n* @example\n* ```typescript\n* // RabbitMQ connection\n* const broker = await connectToBroker({\n* driver: \"rabbitmq\",\n* host: \"localhost\",\n* port: 5672,\n* username: \"guest\",\n* password: \"guest\",\n* });\n*\n* // Use the broker\n* await broker.channel(\"user.created\").publish({ userId: 1 });\n* ```\n*\n* @example\n* ```typescript\n* // Multiple brokers\n* await connectToBroker({\n* driver: \"rabbitmq\",\n* name: \"notifications\",\n* isDefault: true,\n* host: process.env.RABBITMQ_HOST,\n* });\n*\n* await connectToBroker({\n* driver: \"rabbitmq\",\n* name: \"analytics\",\n* host: process.env.ANALYTICS_RABBITMQ_HOST,\n* });\n*\n* // Use default broker\n* herald().channel(\"notifications\").publish({ ... });\n*\n* // Use specific broker\n* herald(\"analytics\").channel(\"events\").publish({ ... });\n* ```\n*/\nasync function connectToBroker(options) {\n\tconst driverType = options.driver ?? \"rabbitmq\";\n\tconst brokerName = options.name ?? \"default\";\n\tconst isDefault = options.isDefault ?? true;\n\tlet driver;\n\tswitch (driverType) {\n\t\tcase \"rabbitmq\": {\n\t\t\tconst rabbitOptions = options;\n\t\t\tconst { RabbitMQDriver } = await import(\"../drivers/rabbitmq/rabbitmq-driver.mjs\");\n\t\t\tdriver = new RabbitMQDriver(rabbitOptions);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"kafka\": throw new Error(\"Kafka driver is not yet implemented. Coming soon! For now, please use RabbitMQ.\");\n\t\tdefault: throw new Error(`Unknown driver: \"${driverType}\". Supported drivers: rabbitmq, kafka`);\n\t}\n\tconst broker = brokerRegistry.register({\n\t\tname: brokerName,\n\t\tdriver,\n\t\tisDefault\n\t});\n\ttry {\n\t\tawait driver.connect();\n\t} catch (error) {\n\t\tthrow new Error(`Failed to connect to ${driverType}: ${error instanceof Error ? error.message : String(error)}`);\n\t}\n\treturn broker;\n}\n/**\n* Get a broker by name or the default one.\n*\n* This is the main entry point for using brokers in your application.\n* Named after the package — `herald()` carries your messages!\n*\n* @param name - Optional broker name (uses default if not provided)\n* @returns Broker instance\n* @throws MissingBrokerError if broker not found\n*\n* @example\n* // Get default broker\n* const channel = herald().channel(\"user.created\");\n* await channel.publish({ userId: 1 });\n*\n* // Get specific broker\n* const analyticsChannel = herald(\"analytics\").channel(\"events\");\n* await analyticsChannel.publish({ event: \"page_view\" });\n*\n* // Subscribe to messages\n* herald()\n* .channel<UserPayload>(\"user.created\")\n* .subscribe(async (message, ctx) => {\n* console.log(\"User created:\", message.payload);\n* await ctx.ack();\n* });\n* ```\n*/\nfunction herald(name) {\n\treturn brokerRegistry.get(name);\n}\n/**\n* Get channel instance for the given name from default broker.\n*\n* Shorthand for `herald().channel(name, options)`.\n*\n* @param name - Channel name\n* @param options - Optional channel options\n* @returns Channel instance\n* @throws MissingBrokerError if broker not found\n*\n* @example\n* ```typescript\n* const channel = heraldChannel(\"user.created\");\n* await channel.publish({ userId: 1 });\n* ```\n*/\nfunction heraldChannel(name, options) {\n\treturn herald().channel(name, options);\n}\n/**\n* Publish an EventMessage to the default broker.\n*\n* @param event - Event message to publish\n* @returns Promise that resolves when the event is published\n* @throws Error if the broker is not connected\n*\n* @example\n* ```typescript\n* await publishEvent(new UserUpdatedEvent({ id: 1, name: \"John Doe\" }));\n* ```\n*/\nasync function publishEvent(event) {\n\treturn herald().publish(event);\n}\n/**\n* Subscribe an EventConsumer class to the default broker.\n*\n* @param Consumer - Event consumer class\n* @returns Unsubscribe function\n* @throws MissingBrokerError if broker not found\n*\n* @example\n* ```typescript\n* await subscribeConsumer(UserUpdatedConsumer);\n* ```\n*/\nasync function subscribeConsumer(Consumer) {\n\treturn herald().subscribe(Consumer);\n}\n\n//#endregion\nexport { connectToBroker, herald, heraldChannel, publishEvent, subscribeConsumer };\n//# sourceMappingURL=connect-to-broker.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,eAAe,gBAAgB,SAAS;CACvC,MAAM,aAAa,QAAQ,UAAU;CACrC,MAAM,aAAa,QAAQ,QAAQ;CACnC,MAAM,YAAY,QAAQ,aAAa;CACvC,IAAI;CACJ,QAAQ,YAAR;EACC,KAAK,YAAY;GAChB,MAAM,gBAAgB;GACtB,MAAM,EAAE,mBAAmB,MAAM,OAAO;GACxC,SAAS,IAAI,eAAe,aAAa;GACzC;EACD;EACA,KAAK,SAAS,MAAM,IAAI,MAAM,iFAAiF;EAC/G,SAAS,MAAM,IAAI,MAAM,oBAAoB,WAAW,sCAAsC;CAC/F;CACA,MAAM,SAAS,eAAe,SAAS;EACtC,MAAM;EACN;EACA;CACD,CAAC;CACD,IAAI;EACH,MAAM,OAAO,QAAQ;CACtB,SAAS,OAAO;EACf,MAAM,IAAI,MAAM,wBAAwB,WAAW,IAAI,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG;CAChH;CACA,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAS,OAAO,MAAM;CACrB,OAAO,eAAe,IAAI,IAAI;AAC/B;;;;;;;;;;;;;;;;;AAiBA,SAAS,cAAc,MAAM,SAAS;CACrC,OAAO,OAAO,CAAC,CAAC,QAAQ,MAAM,OAAO;AACtC;;;;;;;;;;;;;AAaA,eAAe,aAAa,OAAO;CAClC,OAAO,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC9B;;;;;;;;;;;;;AAaA,eAAe,kBAAkB,UAAU;CAC1C,OAAO,OAAO,CAAC,CAAC,UAAU,QAAQ;AACnC"}
@@ -1,4 +1,4 @@
1
- //#region ../node_modules/.pnpm/@warlock.js+seal@5.3.1/node_modules/@warlock.js/seal/esm/config.mjs
1
+ //#region ../node_modules/.pnpm/@warlock.js+seal@5.6.0/node_modules/@warlock.js/seal/esm/config.mjs
2
2
  /**
3
3
  * Global Seal configuration
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","names":[],"sources":["../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+seal@5.3.1/node_modules/@warlock.js/seal/esm/config.mjs"],"sourcesContent":["//#region ../seal/src/config.ts\n/**\n* Global Seal configuration\n*/\nconst config = { firstErrorOnly: true };\n/**\n* Configure Seal globally\n*\n* @example\n* ```ts\n* import { configureSeal } from \"@warlock.js/seal\";\n* import { trans } from \"@mongez/localization\";\n*\n* configureSeal({\n* translateRule: (ruleTranslation) => trans(`validation.${ruleTranslation.rule.name}`, ruleTranslation.attributes),\n* translateAttribute: (attributeTranslation) => trans(`validation.attributes.${attributeTranslation.rule.name}.${attributeTranslation.attribute}`, attributeTranslation.context.allValues),\n* });\n* ```\n*/\nfunction configureSeal(options) {\n\tObject.assign(config, options);\n}\n/**\n* Get current Seal configuration\n*/\nfunction getSealConfig() {\n\treturn config;\n}\n/**\n* Reset configuration to defaults\n*/\nfunction resetSealConfig() {\n\tdelete config.translateRule;\n\tdelete config.translateAttribute;\n\tconfig.firstErrorOnly = true;\n}\n\n//#endregion\nexport { configureSeal, getSealConfig, resetSealConfig };\n//# sourceMappingURL=config.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;AAIA,MAAM,SAAS,EAAE,gBAAgB,KAAK;;;;AAqBtC,SAAS,gBAAgB;CACxB,OAAO;AACR"}
1
+ {"version":3,"file":"config.mjs","names":[],"sources":["../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+seal@5.6.0/node_modules/@warlock.js/seal/esm/config.mjs"],"sourcesContent":["//#region ../seal/src/config.ts\n/**\n* Global Seal configuration\n*/\nconst config = { firstErrorOnly: true };\n/**\n* Configure Seal globally\n*\n* @example\n* ```ts\n* import { configureSeal } from \"@warlock.js/seal\";\n* import { trans } from \"@mongez/localization\";\n*\n* configureSeal({\n* translateRule: (ruleTranslation) => trans(`validation.${ruleTranslation.rule.name}`, ruleTranslation.attributes),\n* translateAttribute: (attributeTranslation) => trans(`validation.attributes.${attributeTranslation.rule.name}.${attributeTranslation.attribute}`, attributeTranslation.context.allValues),\n* });\n* ```\n*/\nfunction configureSeal(options) {\n\tObject.assign(config, options);\n}\n/**\n* Get current Seal configuration\n*/\nfunction getSealConfig() {\n\treturn config;\n}\n/**\n* Reset configuration to defaults\n*/\nfunction resetSealConfig() {\n\tdelete config.translateRule;\n\tdelete config.translateAttribute;\n\tconfig.firstErrorOnly = true;\n}\n\n//#endregion\nexport { configureSeal, getSealConfig, resetSealConfig };\n//# sourceMappingURL=config.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;AAIA,MAAM,SAAS,EAAE,gBAAgB,KAAK;;;;AAqBtC,SAAS,gBAAgB;CACxB,OAAO;AACR"}
@@ -1,6 +1,6 @@
1
1
  import { getSealConfig } from "../config.mjs";
2
2
 
3
- //#region ../node_modules/.pnpm/@warlock.js+seal@5.3.1/node_modules/@warlock.js/seal/esm/factory/validate.mjs
3
+ //#region ../node_modules/.pnpm/@warlock.js+seal@5.6.0/node_modules/@warlock.js/seal/esm/factory/validate.mjs
4
4
  /**
5
5
  * Validate data against a schema
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validate.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+seal@5.3.1/node_modules/@warlock.js/seal/esm/factory/validate.mjs"],"sourcesContent":["import { getSealConfig } from \"../config.mjs\";\n\n//#region ../seal/src/factory/validate.ts\n/**\n* Validate data against a schema\n*/\nconst validate = async (schema, data, { context: extendedContext, ...configurations } = getSealConfig() || {}) => {\n\tconst context = {\n\t\tallValues: data,\n\t\tparent: null,\n\t\tvalue: data,\n\t\tkey: \"\",\n\t\tpath: \"\",\n\t\tcontext: extendedContext,\n\t\trootContext: extendedContext,\n\t\ttranslateRule(ruleTranslation) {\n\t\t\treturn configurations.translateRule?.(ruleTranslation) ?? \"\";\n\t\t},\n\t\ttranslateAttribute(attributeTranslation) {\n\t\t\treturn configurations.translateAttribute?.(attributeTranslation) ?? \"\";\n\t\t},\n\t\tconfigurations\n\t};\n\tconst result = await schema.validate(data, context);\n\tif (!result.isValid) return {\n\t\t...result,\n\t\tdata: void 0\n\t};\n\treturn result;\n};\n\n//#endregion\nexport { validate };\n//# sourceMappingURL=validate.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;AAMA,MAAM,WAAW,OAAO,QAAQ,MAAM,EAAE,SAAS,iBAAiB,GAAG,mBAAmB,cAAc,KAAK,CAAC,MAAM;CACjH,MAAM,UAAU;EACf,WAAW;EACX,QAAQ;EACR,OAAO;EACP,KAAK;EACL,MAAM;EACN,SAAS;EACT,aAAa;EACb,cAAc,iBAAiB;GAC9B,OAAO,eAAe,gBAAgB,eAAe,KAAK;EAC3D;EACA,mBAAmB,sBAAsB;GACxC,OAAO,eAAe,qBAAqB,oBAAoB,KAAK;EACrE;EACA;CACD;CACA,MAAM,SAAS,MAAM,OAAO,SAAS,MAAM,OAAO;CAClD,IAAI,CAAC,OAAO,SAAS,OAAO;EAC3B,GAAG;EACH,MAAM,KAAK;CACZ;CACA,OAAO;AACR"}
1
+ {"version":3,"file":"validate.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+seal@5.6.0/node_modules/@warlock.js/seal/esm/factory/validate.mjs"],"sourcesContent":["import { getSealConfig } from \"../config.mjs\";\n\n//#region ../seal/src/factory/validate.ts\n/**\n* Validate data against a schema\n*/\nconst validate = async (schema, data, { context: extendedContext, ...configurations } = getSealConfig() || {}) => {\n\tconst context = {\n\t\tallValues: data,\n\t\tparent: null,\n\t\tvalue: data,\n\t\tkey: \"\",\n\t\tpath: \"\",\n\t\tcontext: extendedContext,\n\t\trootContext: extendedContext,\n\t\ttranslateRule(ruleTranslation) {\n\t\t\treturn configurations.translateRule?.(ruleTranslation) ?? \"\";\n\t\t},\n\t\ttranslateAttribute(attributeTranslation) {\n\t\t\treturn configurations.translateAttribute?.(attributeTranslation) ?? \"\";\n\t\t},\n\t\tconfigurations\n\t};\n\tconst result = await schema.validate(data, context);\n\tif (!result.isValid) return {\n\t\t...result,\n\t\tdata: void 0\n\t};\n\treturn result;\n};\n\n//#endregion\nexport { validate };\n//# sourceMappingURL=validate.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;AAMA,MAAM,WAAW,OAAO,QAAQ,MAAM,EAAE,SAAS,iBAAiB,GAAG,mBAAmB,cAAc,KAAK,CAAC,MAAM;CACjH,MAAM,UAAU;EACf,WAAW;EACX,QAAQ;EACR,OAAO;EACP,KAAK;EACL,MAAM;EACN,SAAS;EACT,aAAa;EACb,cAAc,iBAAiB;GAC9B,OAAO,eAAe,gBAAgB,eAAe,KAAK;EAC3D;EACA,mBAAmB,sBAAsB;GACxC,OAAO,eAAe,qBAAqB,oBAAoB,KAAK;EACrE;EACA;CACD;CACA,MAAM,SAAS,MAAM,OAAO,SAAS,MAAM,OAAO;CAClD,IAAI,CAAC,OAAO,SAAS,OAAO;EAC3B,GAAG;EACH,MAAM,KAAK;CACZ;CACA,OAAO;AACR"}
@@ -24,7 +24,7 @@ import { StringValidator } from "../validators/string-validator.mjs";
24
24
  import { TupleValidator } from "../validators/tuple-validator.mjs";
25
25
  import { UnionValidator } from "../validators/union-validator.mjs";
26
26
 
27
- //#region ../node_modules/.pnpm/@warlock.js+seal@5.3.1/node_modules/@warlock.js/seal/esm/factory/validators.mjs
27
+ //#region ../node_modules/.pnpm/@warlock.js+seal@5.6.0/node_modules/@warlock.js/seal/esm/factory/validators.mjs
28
28
  /**
29
29
  * Seal factory object - creates instances of validators
30
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"validators.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+seal@5.3.1/node_modules/@warlock.js/seal/esm/factory/validators.mjs"],"sourcesContent":["import { validate } from \"./validate.mjs\";\nimport { AnyValidator } from \"../validators/any-validator.mjs\";\nimport { ArrayValidator } from \"../validators/array-validator.mjs\";\nimport \"../validators/methods/equality-conditional-methods.mjs\";\nimport \"../validators/methods/forbidden-methods.mjs\";\nimport \"../validators/methods/present-methods.mjs\";\nimport \"../validators/methods/required-methods.mjs\";\nimport { BooleanValidator } from \"../validators/boolean-validator.mjs\";\nimport { ComputedValidator } from \"../validators/computed-validator.mjs\";\nimport { DateValidator } from \"../validators/date-validator.mjs\";\nimport { LiteralValidator } from \"../validators/literal-validator.mjs\";\nimport { DiscriminatedUnionValidator } from \"../validators/discriminated-union-validator.mjs\";\nimport { NumberValidator } from \"../validators/number-validator.mjs\";\nimport { FloatValidator } from \"../validators/float-validator.mjs\";\nimport { InstanceOfValidator } from \"../validators/instanceof-validator.mjs\";\nimport { IntValidator } from \"../validators/int-validator.mjs\";\nimport { LazyValidator } from \"../validators/lazy-validator.mjs\";\nimport { ManagedValidator } from \"../validators/managed-validator.mjs\";\nimport { NumericValidator } from \"../validators/numeric-validator.mjs\";\nimport { ObjectValidator } from \"../validators/object-validator.mjs\";\nimport { RecordValidator } from \"../validators/record-validator.mjs\";\nimport { ScalarValidator } from \"../validators/scalar-validator.mjs\";\nimport { StringValidator } from \"../validators/string-validator.mjs\";\nimport { TupleValidator } from \"../validators/tuple-validator.mjs\";\nimport { UnionValidator } from \"../validators/union-validator.mjs\";\n\n//#region ../seal/src/factory/validators.ts\n/**\n* Seal factory object - creates instances of validators\n*\n* Use 'v' to create validation schemas (seals) for your data\n*/\nconst v = {\n\t/** Create an object validator */\n\tobject: (schema, errorMessage) => new ObjectValidator(schema, errorMessage),\n\t/** Create an any validator */\n\tany: () => new AnyValidator(),\n\t/** Create an array validator */\n\tarray: (validator, errorMessage) => new ArrayValidator(validator, errorMessage),\n\t/** Create a record validator - object with dynamic keys and consistent value types */\n\trecord: (validator, errorMessage) => new RecordValidator(validator || v.any(), errorMessage),\n\t/** Create a tuple validator - fixed-length array with position-specific types */\n\ttuple: (validators, errorMessage) => new TupleValidator(validators, errorMessage),\n\t/** Create a date validator */\n\tdate: (errorMessage) => new DateValidator(errorMessage),\n\t/**\n\t* Create a literal validator — narrows to the union of given literal values\n\t*\n\t* @example\n\t* v.literal(\"items\") // type: \"items\"\n\t* v.literal(\"draft\", \"published\") // type: \"draft\" | \"published\"\n\t* v.literal(1, 2, 3) // type: 1 | 2 | 3\n\t*/\n\tliteral: (...values) => new LiteralValidator(values),\n\t/**\n\t* Create an instanceof validator — value must be `instanceof` the constructor\n\t*\n\t* @example\n\t* v.instanceof(File) // type: File\n\t* v.instanceof(Buffer) // type: Buffer\n\t* v.instanceof(MyClass) // type: MyClass\n\t*/\n\tinstanceof: (ctor, errorMessage) => new InstanceOfValidator(ctor, errorMessage),\n\t/**\n\t* Create a lazy validator — defers resolution of the inner validator until\n\t* validate-time. Use for recursive or forward-referenced schemas.\n\t*\n\t* @example\n\t* type Category = { name: string; children: Category[] };\n\t*\n\t* const category: ObjectValidator<...> = v.object({\n\t* name: v.string(),\n\t* children: v.array(v.lazy(() => category)),\n\t* });\n\t*/\n\tlazy: (thunk) => new LazyValidator(thunk),\n\t/** Create a string validator */\n\tstring: (errorMessage) => new StringValidator(errorMessage),\n\t/** Create an email validator */\n\temail: (emailErrorMessage, errorMessage) => new StringValidator(errorMessage).email(emailErrorMessage),\n\t/**\n\t* Create an enum validator — preserves the literal union of accepted\n\t* values in the inferred Standard Schema output.\n\t*\n\t* Two input shapes:\n\t* - Tuple of literals: `v.enum([\"draft\", \"published\"])` →\n\t* `StandardSchemaV1<\"draft\" | \"published\">`\n\t* - TypeScript enum object: `v.enum(Status)` →\n\t* `StandardSchemaV1<Status[keyof Status]>`\n\t*\n\t* Implementation is loosely typed; the public `ValidatorV.enum`\n\t* surface declares the precise overloads.\n\t*/\n\tenum: ((values, errorMessage) => Array.isArray(values) ? new StringValidator().oneOf(values, errorMessage) : new ScalarValidator().enum(values, errorMessage)),\n\t/** Create a number validator */\n\tnumber: (errorMessage) => new NumberValidator(errorMessage),\n\t/** Create a numeric validator */\n\tnumeric: (errorMessage) => new NumericValidator(errorMessage),\n\t/** Create an integer validator */\n\tint: (errorMessage) => new IntValidator(errorMessage),\n\t/** Create a float validator */\n\tfloat: (errorMessage) => new FloatValidator(errorMessage),\n\t/** Create a boolean validator */\n\tboolean: (errorMessage) => new BooleanValidator(errorMessage),\n\t/** Create a scalar validator */\n\tscalar: (errorMessage) => new ScalarValidator(errorMessage),\n\t/** Create a union validator - validates against multiple types */\n\tunion: (validators, errorMessage) => new UnionValidator().union(validators, errorMessage),\n\t/**\n\t* Create a discriminated union — routes payloads by a shared literal\n\t* discriminator field. Each branch must be a `v.object(...)` with the\n\t* discriminator typed as `v.literal(...)`.\n\t*\n\t* @example\n\t* const email = v.object({ type: v.literal(\"email\"), email: v.string().email() });\n\t* const sms = v.object({ type: v.literal(\"sms\"), phone: v.string() });\n\t* const notif = v.discriminatedUnion(\"type\", [email, sms]);\n\t* // type T = Infer<typeof notif>;\n\t* // → { type: \"email\", email: string } | { type: \"sms\", phone: string }\n\t*/\n\tdiscriminatedUnion: (discriminator, validators) => new DiscriminatedUnionValidator(discriminator, validators),\n\t/** Create a computed field validator - derives value from other validated fields */\n\tcomputed: (callback, resultValidator) => new ComputedValidator(callback, resultValidator),\n\t/** Create a managed field validator - framework-injected value */\n\tmanaged: (callback, resultValidator) => new ManagedValidator(callback, resultValidator),\n\t/** Validate data against a schema */\n\tvalidate\n};\n\n//#endregion\nexport { v };\n//# sourceMappingURL=validators.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,IAAI;;CAET,SAAS,QAAQ,iBAAiB,IAAI,gBAAgB,QAAQ,YAAY;;CAE1E,WAAW,IAAI,aAAa;;CAE5B,QAAQ,WAAW,iBAAiB,IAAI,eAAe,WAAW,YAAY;;CAE9E,SAAS,WAAW,iBAAiB,IAAI,gBAAgB,aAAa,EAAE,IAAI,GAAG,YAAY;;CAE3F,QAAQ,YAAY,iBAAiB,IAAI,eAAe,YAAY,YAAY;;CAEhF,OAAO,iBAAiB,IAAI,cAAc,YAAY;;;;;;;;;CAStD,UAAU,GAAG,WAAW,IAAI,iBAAiB,MAAM;;;;;;;;;CASnD,aAAa,MAAM,iBAAiB,IAAI,oBAAoB,MAAM,YAAY;;;;;;;;;;;;;CAa9E,OAAO,UAAU,IAAI,cAAc,KAAK;;CAExC,SAAS,iBAAiB,IAAI,gBAAgB,YAAY;;CAE1D,QAAQ,mBAAmB,iBAAiB,IAAI,gBAAgB,YAAY,CAAC,CAAC,MAAM,iBAAiB;;;;;;;;;;;;;;CAcrG,QAAQ,QAAQ,iBAAiB,MAAM,QAAQ,MAAM,IAAI,IAAI,gBAAgB,CAAC,CAAC,MAAM,QAAQ,YAAY,IAAI,IAAI,gBAAgB,CAAC,CAAC,KAAK,QAAQ,YAAY;;CAE5J,SAAS,iBAAiB,IAAI,gBAAgB,YAAY;;CAE1D,UAAU,iBAAiB,IAAI,iBAAiB,YAAY;;CAE5D,MAAM,iBAAiB,IAAI,aAAa,YAAY;;CAEpD,QAAQ,iBAAiB,IAAI,eAAe,YAAY;;CAExD,UAAU,iBAAiB,IAAI,iBAAiB,YAAY;;CAE5D,SAAS,iBAAiB,IAAI,gBAAgB,YAAY;;CAE1D,QAAQ,YAAY,iBAAiB,IAAI,eAAe,CAAC,CAAC,MAAM,YAAY,YAAY;;;;;;;;;;;;;CAaxF,qBAAqB,eAAe,eAAe,IAAI,4BAA4B,eAAe,UAAU;;CAE5G,WAAW,UAAU,oBAAoB,IAAI,kBAAkB,UAAU,eAAe;;CAExF,UAAU,UAAU,oBAAoB,IAAI,iBAAiB,UAAU,eAAe;;CAEtF;AACD"}
1
+ {"version":3,"file":"validators.mjs","names":[],"sources":["../../../../../../../../../../../../../../node_modules/.pnpm/@warlock.js+seal@5.6.0/node_modules/@warlock.js/seal/esm/factory/validators.mjs"],"sourcesContent":["import { validate } from \"./validate.mjs\";\nimport { AnyValidator } from \"../validators/any-validator.mjs\";\nimport { ArrayValidator } from \"../validators/array-validator.mjs\";\nimport \"../validators/methods/equality-conditional-methods.mjs\";\nimport \"../validators/methods/forbidden-methods.mjs\";\nimport \"../validators/methods/present-methods.mjs\";\nimport \"../validators/methods/required-methods.mjs\";\nimport { BooleanValidator } from \"../validators/boolean-validator.mjs\";\nimport { ComputedValidator } from \"../validators/computed-validator.mjs\";\nimport { DateValidator } from \"../validators/date-validator.mjs\";\nimport { LiteralValidator } from \"../validators/literal-validator.mjs\";\nimport { DiscriminatedUnionValidator } from \"../validators/discriminated-union-validator.mjs\";\nimport { NumberValidator } from \"../validators/number-validator.mjs\";\nimport { FloatValidator } from \"../validators/float-validator.mjs\";\nimport { InstanceOfValidator } from \"../validators/instanceof-validator.mjs\";\nimport { IntValidator } from \"../validators/int-validator.mjs\";\nimport { LazyValidator } from \"../validators/lazy-validator.mjs\";\nimport { ManagedValidator } from \"../validators/managed-validator.mjs\";\nimport { NumericValidator } from \"../validators/numeric-validator.mjs\";\nimport { ObjectValidator } from \"../validators/object-validator.mjs\";\nimport { RecordValidator } from \"../validators/record-validator.mjs\";\nimport { ScalarValidator } from \"../validators/scalar-validator.mjs\";\nimport { StringValidator } from \"../validators/string-validator.mjs\";\nimport { TupleValidator } from \"../validators/tuple-validator.mjs\";\nimport { UnionValidator } from \"../validators/union-validator.mjs\";\n\n//#region ../seal/src/factory/validators.ts\n/**\n* Seal factory object - creates instances of validators\n*\n* Use 'v' to create validation schemas (seals) for your data\n*/\nconst v = {\n\t/** Create an object validator */\n\tobject: (schema, errorMessage) => new ObjectValidator(schema, errorMessage),\n\t/** Create an any validator */\n\tany: () => new AnyValidator(),\n\t/** Create an array validator */\n\tarray: (validator, errorMessage) => new ArrayValidator(validator, errorMessage),\n\t/** Create a record validator - object with dynamic keys and consistent value types */\n\trecord: (validator, errorMessage) => new RecordValidator(validator || v.any(), errorMessage),\n\t/** Create a tuple validator - fixed-length array with position-specific types */\n\ttuple: (validators, errorMessage) => new TupleValidator(validators, errorMessage),\n\t/** Create a date validator */\n\tdate: (errorMessage) => new DateValidator(errorMessage),\n\t/**\n\t* Create a literal validator — narrows to the union of given literal values\n\t*\n\t* @example\n\t* v.literal(\"items\") // type: \"items\"\n\t* v.literal(\"draft\", \"published\") // type: \"draft\" | \"published\"\n\t* v.literal(1, 2, 3) // type: 1 | 2 | 3\n\t*/\n\tliteral: (...values) => new LiteralValidator(values),\n\t/**\n\t* Create an instanceof validator — value must be `instanceof` the constructor\n\t*\n\t* @example\n\t* v.instanceof(File) // type: File\n\t* v.instanceof(Buffer) // type: Buffer\n\t* v.instanceof(MyClass) // type: MyClass\n\t*/\n\tinstanceof: (ctor, errorMessage) => new InstanceOfValidator(ctor, errorMessage),\n\t/**\n\t* Create a lazy validator — defers resolution of the inner validator until\n\t* validate-time. Use for recursive or forward-referenced schemas.\n\t*\n\t* @example\n\t* type Category = { name: string; children: Category[] };\n\t*\n\t* const category: ObjectValidator<...> = v.object({\n\t* name: v.string(),\n\t* children: v.array(v.lazy(() => category)),\n\t* });\n\t*/\n\tlazy: (thunk) => new LazyValidator(thunk),\n\t/** Create a string validator */\n\tstring: (errorMessage) => new StringValidator(errorMessage),\n\t/** Create an email validator */\n\temail: (emailErrorMessage, errorMessage) => new StringValidator(errorMessage).email(emailErrorMessage),\n\t/**\n\t* Create an enum validator — preserves the literal union of accepted\n\t* values in the inferred Standard Schema output.\n\t*\n\t* Two input shapes:\n\t* - Tuple of literals: `v.enum([\"draft\", \"published\"])` →\n\t* `StandardSchemaV1<\"draft\" | \"published\">`\n\t* - TypeScript enum object: `v.enum(Status)` →\n\t* `StandardSchemaV1<Status[keyof Status]>`\n\t*\n\t* Implementation is loosely typed; the public `ValidatorV.enum`\n\t* surface declares the precise overloads.\n\t*/\n\tenum: ((values, errorMessage) => Array.isArray(values) ? new StringValidator().oneOf(values, errorMessage) : new ScalarValidator().enum(values, errorMessage)),\n\t/** Create a number validator */\n\tnumber: (errorMessage) => new NumberValidator(errorMessage),\n\t/** Create a numeric validator */\n\tnumeric: (errorMessage) => new NumericValidator(errorMessage),\n\t/** Create an integer validator */\n\tint: (errorMessage) => new IntValidator(errorMessage),\n\t/** Create a float validator */\n\tfloat: (errorMessage) => new FloatValidator(errorMessage),\n\t/** Create a boolean validator */\n\tboolean: (errorMessage) => new BooleanValidator(errorMessage),\n\t/** Create a scalar validator */\n\tscalar: (errorMessage) => new ScalarValidator(errorMessage),\n\t/** Create a union validator - validates against multiple types */\n\tunion: (validators, errorMessage) => new UnionValidator().union(validators, errorMessage),\n\t/**\n\t* Create a discriminated union — routes payloads by a shared literal\n\t* discriminator field. Each branch must be a `v.object(...)` with the\n\t* discriminator typed as `v.literal(...)`.\n\t*\n\t* @example\n\t* const email = v.object({ type: v.literal(\"email\"), email: v.string().email() });\n\t* const sms = v.object({ type: v.literal(\"sms\"), phone: v.string() });\n\t* const notif = v.discriminatedUnion(\"type\", [email, sms]);\n\t* // type T = Infer<typeof notif>;\n\t* // → { type: \"email\", email: string } | { type: \"sms\", phone: string }\n\t*/\n\tdiscriminatedUnion: (discriminator, validators) => new DiscriminatedUnionValidator(discriminator, validators),\n\t/** Create a computed field validator - derives value from other validated fields */\n\tcomputed: (callback, resultValidator) => new ComputedValidator(callback, resultValidator),\n\t/** Create a managed field validator - framework-injected value */\n\tmanaged: (callback, resultValidator) => new ManagedValidator(callback, resultValidator),\n\t/** Validate data against a schema */\n\tvalidate\n};\n\n//#endregion\nexport { v };\n//# sourceMappingURL=validators.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,IAAI;;CAET,SAAS,QAAQ,iBAAiB,IAAI,gBAAgB,QAAQ,YAAY;;CAE1E,WAAW,IAAI,aAAa;;CAE5B,QAAQ,WAAW,iBAAiB,IAAI,eAAe,WAAW,YAAY;;CAE9E,SAAS,WAAW,iBAAiB,IAAI,gBAAgB,aAAa,EAAE,IAAI,GAAG,YAAY;;CAE3F,QAAQ,YAAY,iBAAiB,IAAI,eAAe,YAAY,YAAY;;CAEhF,OAAO,iBAAiB,IAAI,cAAc,YAAY;;;;;;;;;CAStD,UAAU,GAAG,WAAW,IAAI,iBAAiB,MAAM;;;;;;;;;CASnD,aAAa,MAAM,iBAAiB,IAAI,oBAAoB,MAAM,YAAY;;;;;;;;;;;;;CAa9E,OAAO,UAAU,IAAI,cAAc,KAAK;;CAExC,SAAS,iBAAiB,IAAI,gBAAgB,YAAY;;CAE1D,QAAQ,mBAAmB,iBAAiB,IAAI,gBAAgB,YAAY,CAAC,CAAC,MAAM,iBAAiB;;;;;;;;;;;;;;CAcrG,QAAQ,QAAQ,iBAAiB,MAAM,QAAQ,MAAM,IAAI,IAAI,gBAAgB,CAAC,CAAC,MAAM,QAAQ,YAAY,IAAI,IAAI,gBAAgB,CAAC,CAAC,KAAK,QAAQ,YAAY;;CAE5J,SAAS,iBAAiB,IAAI,gBAAgB,YAAY;;CAE1D,UAAU,iBAAiB,IAAI,iBAAiB,YAAY;;CAE5D,MAAM,iBAAiB,IAAI,aAAa,YAAY;;CAEpD,QAAQ,iBAAiB,IAAI,eAAe,YAAY;;CAExD,UAAU,iBAAiB,IAAI,iBAAiB,YAAY;;CAE5D,SAAS,iBAAiB,IAAI,gBAAgB,YAAY;;CAE1D,QAAQ,YAAY,iBAAiB,IAAI,eAAe,CAAC,CAAC,MAAM,YAAY,YAAY;;;;;;;;;;;;;CAaxF,qBAAqB,eAAe,eAAe,IAAI,4BAA4B,eAAe,UAAU;;CAE5G,WAAW,UAAU,oBAAoB,IAAI,kBAAkB,UAAU,eAAe;;CAExF,UAAU,UAAU,oBAAoB,IAAI,iBAAiB,UAAU,eAAe;;CAEtF;AACD"}