@warlock.js/notifications 5.21.0 → 5.22.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.
- package/CHANGELOG.md +6 -0
- package/cjs/index.cjs +1 -1
- package/cjs/rabbitmq-driver-DsJYFQr3.cjs +3 -0
- package/cjs/{esm-BxeBV3ce.cjs → src-DDFfLj-d.cjs} +435 -343
- package/cjs/src-DDFfLj-d.cjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/communicators/broker-registry.mjs +5 -5
- package/esm/herald/src/communicators/broker-registry.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/communicators/broker.mjs +7 -1
- package/esm/herald/src/communicators/broker.mjs.map +1 -0
- package/esm/herald/src/communicators/index.mjs +4 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/decorators/consumable.mjs +1 -1
- package/esm/herald/src/decorators/consumable.mjs.map +1 -0
- package/esm/herald/src/decorators/index.mjs +3 -0
- package/esm/herald/src/drivers/index.mjs +5 -0
- package/esm/herald/src/drivers/rabbitmq/index.mjs +4 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/drivers/rabbitmq/rabbitmq-channel.mjs +13 -6
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/drivers/rabbitmq/rabbitmq-driver.mjs +11 -10
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/message-managers/event-consumer.mjs +22 -10
- package/esm/herald/src/message-managers/event-consumer.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/message-managers/event-message.mjs +20 -3
- package/esm/herald/src/message-managers/event-message.mjs.map +1 -0
- package/esm/herald/src/message-managers/index.mjs +4 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/message-managers/prepare-consumer-subscription.mjs +1 -1
- package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/use-case-broadcast.mjs +1 -1
- package/esm/herald/src/use-case-broadcast.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/utils/connect-to-broker.mjs +1 -1
- package/esm/herald/src/utils/connect-to-broker.mjs.map +1 -0
- package/esm/herald/src/utils/index.mjs +3 -0
- package/esm/index.d.mts +0 -4
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/number/round.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/number/round.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/except.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/except.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/get.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/get.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/omit.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/omit.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/unset.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/object/unset.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/trim.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/trim.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/words.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/string/words.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/utils/tap.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/utils/tap.mjs.map +1 -1
- package/esm/node_modules/.pnpm/{@mongez_supportive-is@2.1.4 → @mongez_supportive-is@2.1.5}/node_modules/@mongez/supportive-is/esm/index.mjs +1 -1
- package/esm/node_modules/.pnpm/{@mongez_supportive-is@2.1.4 → @mongez_supportive-is@2.1.5}/node_modules/@mongez/supportive-is/esm/index.mjs.map +1 -1
- package/esm/queue/load-herald.d.mts.map +1 -1
- package/esm/queue/load-herald.mjs +1 -1
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/config.mjs +1 -1
- package/esm/seal/src/config.mjs.map +1 -0
- package/esm/seal/src/factory/index.mjs +4 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/factory/validate.mjs +1 -1
- package/esm/seal/src/factory/validate.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/factory/validators.mjs +1 -1
- package/esm/seal/src/factory/validators.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/helpers/date-helpers.mjs +1 -1
- package/esm/seal/src/helpers/date-helpers.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/helpers/get-field-value.mjs +3 -3
- package/esm/seal/src/helpers/get-field-value.mjs.map +1 -0
- package/esm/seal/src/helpers/index.mjs +6 -0
- package/esm/seal/src/helpers/is-empty-value.mjs +10 -0
- package/esm/seal/src/helpers/is-empty-value.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/helpers/path-helpers.mjs +1 -1
- package/esm/seal/src/helpers/path-helpers.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/helpers/validation-helpers.mjs +1 -1
- package/esm/seal/src/helpers/validation-helpers.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/index.mjs +0 -7
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/mutators/array-mutators.mjs +3 -3
- package/esm/seal/src/mutators/array-mutators.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/mutators/boolean-mutators.mjs +1 -1
- package/esm/seal/src/mutators/boolean-mutators.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/mutators/date-mutators.mjs +3 -3
- package/esm/seal/src/mutators/date-mutators.mjs.map +1 -0
- package/esm/seal/src/mutators/index.mjs +9 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/mutators/number-mutators.mjs +4 -4
- package/esm/seal/src/mutators/number-mutators.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/mutators/object-mutators.mjs +4 -4
- package/esm/seal/src/mutators/object-mutators.mjs.map +1 -0
- package/esm/seal/src/mutators/scalar-mutators.mjs +9 -0
- package/esm/seal/src/mutators/scalar-mutators.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/mutators/string-mutators.mjs +11 -11
- package/esm/seal/src/mutators/string-mutators.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/object.mjs +1 -1
- package/esm/seal/src/object.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/array/array-rules.mjs +1 -1
- package/esm/seal/src/rules/array/array-rules.mjs.map +1 -0
- package/esm/seal/src/rules/array/index.mjs +3 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/color/color-rules.mjs +1 -1
- package/esm/seal/src/rules/color/color-rules.mjs.map +1 -0
- package/esm/seal/src/rules/color/index.mjs +3 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/common/enum.mjs +1 -1
- package/esm/seal/src/rules/common/enum.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/common/equals-field-rules.mjs +1 -1
- package/esm/seal/src/rules/common/equals-field-rules.mjs.map +1 -0
- package/esm/seal/src/rules/common/index.mjs +8 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/common/instanceof.mjs +1 -1
- package/esm/seal/src/rules/common/instanceof.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/common/literal.mjs +1 -1
- package/esm/seal/src/rules/common/literal.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/common/type-rules.mjs +2 -2
- package/esm/seal/src/rules/common/type-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/common/unknown-key.mjs +1 -1
- package/esm/seal/src/rules/common/unknown-key.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/forbidden-if-rules.mjs +2 -2
- package/esm/seal/src/rules/conditional/forbidden-if-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/index.mjs +12 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/present-if-rules.mjs +2 -2
- package/esm/seal/src/rules/conditional/present-if-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/present-unless-rules.mjs +1 -1
- package/esm/seal/src/rules/conditional/present-unless-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/present-with-rules.mjs +3 -3
- package/esm/seal/src/rules/conditional/present-with-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/present-without-rules.mjs +3 -3
- package/esm/seal/src/rules/conditional/present-without-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/required-if-rules.mjs +4 -4
- package/esm/seal/src/rules/conditional/required-if-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/required-unless-rules.mjs +2 -2
- package/esm/seal/src/rules/conditional/required-unless-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/required-when-rule.mjs +2 -2
- package/esm/seal/src/rules/conditional/required-when-rule.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/required-with-rules.mjs +4 -4
- package/esm/seal/src/rules/conditional/required-with-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/conditional/required-without-rules.mjs +4 -4
- package/esm/seal/src/rules/conditional/required-without-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/core/equal.mjs +1 -1
- package/esm/seal/src/rules/core/equal.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/core/forbidden.mjs +2 -2
- package/esm/seal/src/rules/core/forbidden.mjs.map +1 -0
- package/esm/seal/src/rules/core/index.mjs +7 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/core/required.mjs +2 -2
- package/esm/seal/src/rules/core/required.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/core/union.mjs +1 -1
- package/esm/seal/src/rules/core/union.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/core/when.mjs +3 -3
- package/esm/seal/src/rules/core/when.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/date/date-comparison-rules.mjs +1 -1
- package/esm/seal/src/rules/date/date-comparison-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/date/date-day-rules.mjs +1 -1
- package/esm/seal/src/rules/date/date-day-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/date/date-field-comparison-rules.mjs +3 -3
- package/esm/seal/src/rules/date/date-field-comparison-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/date/date-period-rules.mjs +3 -3
- package/esm/seal/src/rules/date/date-period-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/date/date-relative-rules.mjs +1 -1
- package/esm/seal/src/rules/date/date-relative-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/date/date-special-rules.mjs +1 -1
- package/esm/seal/src/rules/date/date-special-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/date/date.mjs +3 -3
- package/esm/seal/src/rules/date/date.mjs.map +1 -0
- package/esm/seal/src/rules/date/index.mjs +9 -0
- package/esm/seal/src/rules/index.mjs +54 -0
- package/esm/seal/src/rules/length/index.mjs +3 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/length/length-rules.mjs +1 -1
- package/esm/seal/src/rules/length/length-rules.mjs.map +1 -0
- package/esm/seal/src/rules/number/index.mjs +3 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/number/number-rules.mjs +3 -3
- package/esm/seal/src/rules/number/number-rules.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/scalar/accepted-rule.mjs +2 -2
- package/esm/seal/src/rules/scalar/accepted-rule.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/scalar/declined-rule.mjs +2 -2
- package/esm/seal/src/rules/scalar/declined-rule.mjs.map +1 -0
- package/esm/seal/src/rules/scalar/index.mjs +4 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/alpha.mjs +1 -1
- package/esm/seal/src/rules/string/alpha.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/credit-card.mjs +1 -1
- package/esm/seal/src/rules/string/credit-card.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/email.mjs +2 -2
- package/esm/seal/src/rules/string/email.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/id-formats.mjs +1 -1
- package/esm/seal/src/rules/string/id-formats.mjs.map +1 -0
- package/esm/seal/src/rules/string/index.mjs +13 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/ip.mjs +1 -1
- package/esm/seal/src/rules/string/ip.mjs.map +1 -0
- package/esm/seal/src/rules/string/matches.mjs +4 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/pattern.mjs +1 -1
- package/esm/seal/src/rules/string/pattern.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/string-comparison.mjs +1 -1
- package/esm/seal/src/rules/string/string-comparison.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/strong-password-rule.mjs +1 -1
- package/esm/seal/src/rules/string/strong-password-rule.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/url.mjs +1 -1
- package/esm/seal/src/rules/string/url.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/string/without-whitespace.mjs +1 -1
- package/esm/seal/src/rules/string/without-whitespace.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/standard-schema/json-schema.mjs +1 -1
- package/esm/seal/src/standard-schema/json-schema.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/standard-schema/map-result.mjs +1 -1
- package/esm/seal/src/standard-schema/map-result.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/string.mjs +1 -1
- package/esm/seal/src/string.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/types/date-types.mjs +1 -1
- package/esm/seal/src/types/date-types.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/any-validator.mjs +9 -6
- package/esm/seal/src/validators/any-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/array-validator.mjs +2 -1
- package/esm/seal/src/validators/array-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/base-validator.mjs +49 -16
- package/esm/seal/src/validators/base-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/boolean-validator.mjs +1 -1
- package/esm/seal/src/validators/boolean-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/computed-validator.mjs +3 -1
- package/esm/seal/src/validators/computed-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/date-validator.mjs +3 -3
- package/esm/seal/src/validators/date-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/discriminated-union-validator.mjs +6 -2
- package/esm/seal/src/validators/discriminated-union-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/float-validator.mjs +1 -1
- package/esm/seal/src/validators/float-validator.mjs.map +1 -0
- package/esm/seal/src/validators/index.mjs +28 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/instanceof-validator.mjs +2 -1
- package/esm/seal/src/validators/instanceof-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/int-validator.mjs +1 -1
- package/esm/seal/src/validators/int-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/lazy-validator.mjs +3 -1
- package/esm/seal/src/validators/lazy-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/literal-validator.mjs +2 -1
- package/esm/seal/src/validators/literal-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/managed-validator.mjs +1 -1
- package/esm/seal/src/validators/managed-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/methods/equality-conditional-methods.mjs +1 -1
- package/esm/seal/src/validators/methods/equality-conditional-methods.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/methods/forbidden-methods.mjs +1 -1
- package/esm/seal/src/validators/methods/forbidden-methods.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/methods/present-methods.mjs +1 -1
- package/esm/seal/src/validators/methods/present-methods.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/methods/required-methods.mjs +1 -1
- package/esm/seal/src/validators/methods/required-methods.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/number-validator.mjs +1 -1
- package/esm/seal/src/validators/number-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/numeric-validator.mjs +2 -2
- package/esm/seal/src/validators/numeric-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/object-validator.mjs +8 -7
- package/esm/seal/src/validators/object-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/primitive-validator.mjs +1 -1
- package/esm/seal/src/validators/primitive-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/record-validator.mjs +3 -2
- package/esm/seal/src/validators/record-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/scalar-validator.mjs +1 -1
- package/esm/seal/src/validators/scalar-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/string-validator.mjs +3 -3
- package/esm/seal/src/validators/string-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/tuple-validator.mjs +2 -1
- package/esm/seal/src/validators/tuple-validator.mjs.map +1 -0
- package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/validators/union-validator.mjs +1 -1
- package/esm/seal/src/validators/union-validator.mjs.map +1 -0
- package/package.json +7 -7
- package/cjs/esm-BxeBV3ce.cjs.map +0 -1
- package/cjs/rabbitmq-driver-ii7OCEmF.cjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/communicators/broker-registry.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/communicators/broker-registry.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/communicators/broker.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/communicators/broker.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/communicators/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/contracts/broker-driver.contract.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/contracts/channel.contract.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/decorators/consumable.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/decorators/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/drivers/index.mjs +0 -5
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/index.mjs +0 -4
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-channel.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/drivers/rabbitmq/rabbitmq-driver.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/index.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/message-managers/event-consumer.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/message-managers/event-message.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/message-managers/event-message.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/message-managers/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/message-managers/prepare-consumer-subscription.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/types/channel.types.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/types/registry.types.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/use-case-broadcast.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.d.mts +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/utils/connect-to-broker.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm/utils/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/config.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/factory/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/factory/validate.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/factory/validators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/helpers/date-helpers.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/helpers/get-field-value.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/helpers/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/helpers/is-empty-value.mjs +0 -10
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/helpers/is-empty-value.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/helpers/path-helpers.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/helpers/validation-helpers.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/index.d.mts +0 -10
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/array-mutators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/boolean-mutators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/date-mutators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/index.mjs +0 -8
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/number-mutators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/object-mutators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/scalar-mutators.mjs +0 -9
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/scalar-mutators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/mutators/string-mutators.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/object.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/array/array-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/array/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/color/color-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/color/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/common/enum.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/common/equals-field-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/common/index.mjs +0 -8
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/common/instanceof.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/common/literal.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/common/type-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/common/unknown-key.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/forbidden-if-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/index.mjs +0 -12
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-if-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-unless-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-with-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/present-without-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-if-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-unless-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-when-rule.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-with-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/conditional/required-without-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/core/equal.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/core/forbidden.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/core/index.mjs +0 -7
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/core/required.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/core/union.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/core/when.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/date-comparison-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/date-day-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/date-field-comparison-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/date-period-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/date-relative-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/date-special-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/date.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/date/index.mjs +0 -9
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/index.mjs +0 -57
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/length/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/length/length-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/number/index.mjs +0 -3
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/number/number-rules.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/scalar/accepted-rule.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/scalar/declined-rule.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/scalar/index.mjs +0 -4
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/alpha.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/credit-card.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/email.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/id-formats.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/index.mjs +0 -13
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/ip.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/matches.mjs +0 -4
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/pattern.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/string-comparison.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/strong-password-rule.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/url.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/rules/string/without-whitespace.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.d.mts +0 -32
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/standard-schema/json-schema.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/standard-schema/map-result.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/standard-schema/types.d.mts +0 -97
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/standard-schema/types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/string.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/conditional-types.d.mts +0 -16
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/conditional-types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/context-types.d.mts +0 -43
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/context-types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/data-transformer-types.d.mts +0 -30
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/data-transformer-types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/date-types.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/mutator-types.d.mts +0 -28
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/mutator-types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/result-types.d.mts +0 -17
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/result-types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/rule-types.d.mts +0 -53
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/rule-types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/schema-types.d.mts +0 -11
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/types/schema-types.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/any-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/array-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/base-validator.d.mts +0 -492
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/base-validator.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/base-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/boolean-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/computed-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/date-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/discriminated-union-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/float-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/index.mjs +0 -28
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/instanceof-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/int-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/lazy-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/literal-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/managed-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.d.mts +0 -91
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/equality-conditional-methods.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.d.mts +0 -59
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/forbidden-methods.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.d.mts +0 -103
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/present-methods.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.d.mts +0 -194
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.d.mts.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/methods/required-methods.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/number-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/numeric-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/object-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/primitive-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/record-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/scalar-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/string-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/tuple-validator.mjs.map +0 -1
- package/esm/node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm/validators/union-validator.mjs.map +0 -1
- /package/esm/{node_modules/.pnpm/@warlock.js_herald@5.18.0_@_cff41be99df8cf0240c0ee463e185280/node_modules/@warlock.js/herald/esm → herald/src}/index.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/bool.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/color.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/date.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/float.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/id.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/int.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/nanoid.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/pick.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/random.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/sample.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/string.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/token.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/uuid.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/Random/weighted.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/async/retry.mjs +0 -0
- /package/esm/node_modules/.pnpm/{@mongez_reinforcements@4.0.1 → @mongez_reinforcements@4.0.2}/node_modules/@mongez/reinforcements/esm/index.mjs +0 -0
- /package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/file/dimensions.mjs +0 -0
- /package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/file/file-size.mjs +0 -0
- /package/esm/{node_modules/.pnpm/@warlock.js_seal@5.18.0/node_modules/@warlock.js/seal/esm → seal/src}/rules/file/index.mjs +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/date/date-relative-rules.ts
|
|
5
5
|
/**
|
|
6
6
|
* Within days rule - date must be within X days from now (past or future)
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-relative-rules.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/date/date-relative-rules.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Within days rule - date must be within X days from now (past or future)\r\n */\r\nexport const withinDaysRule: SchemaRule<{ days: number }> = {\r\n name: \"withinDays\",\r\n defaultErrorMessage: \"The :input must be within :days days from now\",\r\n async validate(value: Date, context) {\r\n const now = new Date();\r\n const inputDate = new Date(value);\r\n const diffTime = Math.abs(inputDate.getTime() - now.getTime());\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays <= this.context.options.days) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.days = this.context.options.days;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Within past days rule - date must be within X days in the past\r\n */\r\nexport const withinPastDaysRule: SchemaRule<{ days: number }> = {\r\n name: \"withinPastDays\",\r\n defaultErrorMessage: \"The :input must be within the past :days days\",\r\n async validate(value: Date, context) {\r\n const now = new Date();\r\n const inputDate = new Date(value);\r\n\r\n if (inputDate > now) {\r\n return invalidRule(this, context); // Must be in past\r\n }\r\n\r\n const diffTime = now.getTime() - inputDate.getTime();\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays <= this.context.options.days) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.days = this.context.options.days;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Within future days rule - date must be within X days in the future\r\n */\r\nexport const withinFutureDaysRule: SchemaRule<{ days: number }> = {\r\n name: \"withinFutureDays\",\r\n defaultErrorMessage: \"The :input must be within the next :days days\",\r\n async validate(value: Date, context) {\r\n const now = new Date();\r\n const inputDate = new Date(value);\r\n\r\n if (inputDate < now) {\r\n return invalidRule(this, context); // Must be in future\r\n }\r\n\r\n const diffTime = inputDate.getTime() - now.getTime();\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays <= this.context.options.days) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.days = this.context.options.days;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,iBAA+C;CAC1D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAa,SAAS;EACnC,MAAM,sBAAM,IAAI,KAAK;EACrB,MAAM,YAAY,IAAI,KAAK,KAAK;EAChC,MAAM,WAAW,KAAK,IAAI,UAAU,QAAQ,IAAI,IAAI,QAAQ,CAAC;EAG7D,IAFiB,KAAK,KAAK,YAAY,MAAO,KAAK,KAAK,GAE7C,KAAK,KAAK,QAAQ,QAAQ,MACnC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,OAAO,KAAK,QAAQ,QAAQ;EAE3D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,qBAAmD;CAC9D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAa,SAAS;EACnC,MAAM,sBAAM,IAAI,KAAK;EACrB,MAAM,YAAY,IAAI,KAAK,KAAK;EAEhC,IAAI,YAAY,KACd,OAAO,YAAY,MAAM,OAAO;EAGlC,MAAM,WAAW,IAAI,QAAQ,IAAI,UAAU,QAAQ;EAGnD,IAFiB,KAAK,KAAK,YAAY,MAAO,KAAK,KAAK,GAE7C,KAAK,KAAK,QAAQ,QAAQ,MACnC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,OAAO,KAAK,QAAQ,QAAQ;EAE3D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,uBAAqD;CAChE,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAa,SAAS;EACnC,MAAM,sBAAM,IAAI,KAAK;EACrB,MAAM,YAAY,IAAI,KAAK,KAAK;EAEhC,IAAI,YAAY,KACd,OAAO,YAAY,MAAM,OAAO;EAGlC,MAAM,WAAW,UAAU,QAAQ,IAAI,IAAI,QAAQ;EAGnD,IAFiB,KAAK,KAAK,YAAY,MAAO,KAAK,KAAK,GAE7C,KAAK,KAAK,QAAQ,QAAQ,MACnC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,OAAO,KAAK,QAAQ,QAAQ;EAE3D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/date/date-special-rules.ts
|
|
5
5
|
/**
|
|
6
6
|
* Birthday rule - valid birthday (not in future, reasonable age)
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-special-rules.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/date/date-special-rules.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Birthday rule - valid birthday (not in future, reasonable age)\r\n */\r\nexport const birthdayRule: SchemaRule<{ minAge?: number; maxAge?: number }> = {\r\n name: \"birthday\",\r\n defaultErrorMessage: \"The :input must be a valid birthday\",\r\n async validate(birthDate: Date, context) {\r\n const today = new Date();\r\n\r\n // Must not be in the future\r\n if (birthDate > today) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n // Calculate age\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n\r\n // Check minimum age (default: 0)\r\n const minAge = this.context.options.minAge ?? 0;\r\n if (age < minAge) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n // Check maximum age (default: 150)\r\n const maxAge = this.context.options.maxAge ?? 150;\r\n if (age > maxAge) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Between age rule - age must be between min and max years\r\n */\r\nexport const betweenAgeRule: SchemaRule<{ minAge: number; maxAge: number }> = {\r\n name: \"betweenAge\",\r\n defaultErrorMessage: \"Age must be between :minAge and :maxAge years\",\r\n async validate(value: Date, context) {\r\n const birthDate = new Date(value);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n\r\n const { minAge, maxAge } = this.context.options;\r\n\r\n if (age >= minAge && age <= maxAge) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.minAge = minAge;\r\n this.context.translationParams.maxAge = maxAge;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Leap year rule - date must be in a leap year\r\n */\r\nexport const leapYearRule: SchemaRule = {\r\n name: \"leapYear\",\r\n defaultErrorMessage: \"The :input must be in a leap year\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const year = inputDate.getFullYear();\r\n\r\n // Leap year logic: divisible by 4, except century years unless divisible by 400\r\n const isLeapYear = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\r\n\r\n if (isLeapYear) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,eAAiE;CAC5E,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,WAAiB,SAAS;EACvC,MAAM,wBAAQ,IAAI,KAAK;EAGvB,IAAI,YAAY,OACd,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,MAAM,MAAM,YAAY,IAAI,UAAU,YAAY;EACtD,MAAM,YAAY,MAAM,SAAS,IAAI,UAAU,SAAS;EAExD,IAAI,YAAY,KAAM,cAAc,KAAK,MAAM,QAAQ,IAAI,UAAU,QAAQ,GAC3E;EAIF,MAAM,SAAS,KAAK,QAAQ,QAAQ,UAAU;EAC9C,IAAI,MAAM,QACR,OAAO,YAAY,MAAM,OAAO;EAIlC,MAAM,SAAS,KAAK,QAAQ,QAAQ,UAAU;EAC9C,IAAI,MAAM,QACR,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,iBAAiE;CAC5E,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAa,SAAS;EACnC,MAAM,YAAY,IAAI,KAAK,KAAK;EAChC,MAAM,wBAAQ,IAAI,KAAK;EACvB,IAAI,MAAM,MAAM,YAAY,IAAI,UAAU,YAAY;EACtD,MAAM,YAAY,MAAM,SAAS,IAAI,UAAU,SAAS;EAExD,IAAI,YAAY,KAAM,cAAc,KAAK,MAAM,QAAQ,IAAI,UAAU,QAAQ,GAC3E;EAGF,MAAM,EAAE,QAAQ,WAAW,KAAK,QAAQ;EAExC,IAAI,OAAO,UAAU,OAAO,QAC1B,OAAO;EAGT,KAAK,QAAQ,kBAAkB,SAAS;EACxC,KAAK,QAAQ,kBAAkB,SAAS;EAExC,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAA2B;CACtC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAa,SAAS;EAEnC,MAAM,OAAO,IADS,KAAK,KACN,CAAC,CAAC,YAAY;EAKnC,IAFoB,OAAO,MAAM,KAAK,OAAO,QAAQ,KAAM,OAAO,QAAQ,GAGxE,OAAO;EAGT,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { get } from "../../../../node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/get.mjs";
|
|
2
|
+
import "../../../../node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/index.mjs";
|
|
1
3
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
4
|
import { isDateValue } from "../../helpers/date-helpers.mjs";
|
|
3
|
-
import { get } from "../../../../../../../@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/object/get.mjs";
|
|
4
|
-
import "../../../../../../../@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/index.mjs";
|
|
5
5
|
import "../../helpers/index.mjs";
|
|
6
6
|
import { WEEK_DAYS } from "../../types/date-types.mjs";
|
|
7
7
|
|
|
8
|
-
//#region ../
|
|
8
|
+
//#region ../seal/src/rules/date/date.ts
|
|
9
9
|
/**
|
|
10
10
|
* Date rule - validates date format
|
|
11
11
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/date/date.ts"],"sourcesContent":["import { get } from \"@mongez/reinforcements\";\r\nimport { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport { isDateValue } from \"../../helpers/date-helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\nimport type { WeekDay } from \"../../types/date-types\";\r\nimport { WEEK_DAYS } from \"../../types/date-types\";\r\n\r\n/**\r\n * Date rule - validates date format\r\n */\r\nexport const dateRule: SchemaRule = {\r\n name: \"date\",\r\n defaultErrorMessage: \"The :input must be a valid date\",\r\n async validate(value: any, context) {\r\n if (value instanceof Date && !isNaN(value.getTime())) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Min date rule - date must be >= given date or field\r\n * Smart detection: date value or field name\r\n */\r\nexport const minDateRule: SchemaRule<{\r\n dateOrField: Date | string | number;\r\n scope?: \"global\" | \"sibling\";\r\n}> = {\r\n name: \"minDate\",\r\n description: \"The field must be at least the given date or field\",\r\n defaultErrorMessage: \"The :input must be at least :dateOrField\",\r\n async validate(value: Date, context) {\r\n const { dateOrField, scope = \"global\" } = this.context.options;\r\n let compareDate: Date;\r\n\r\n if (isDateValue(dateOrField)) {\r\n // Value comparison\r\n compareDate = new Date(dateOrField);\r\n } else {\r\n // Field comparison\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, dateOrField as string);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n compareDate = new Date(fieldValue);\r\n }\r\n\r\n const inputDate = new Date(value);\r\n\r\n if (inputDate >= compareDate) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Max date rule - date must be <= given date or field\r\n * Smart detection: date value or field name\r\n */\r\nexport const maxDateRule: SchemaRule<{\r\n dateOrField: Date | string | number;\r\n scope?: \"global\" | \"sibling\";\r\n}> = {\r\n name: \"maxDate\",\r\n defaultErrorMessage: \"The :input must be at most :dateOrField\",\r\n async validate(value: Date, context) {\r\n const { dateOrField, scope = \"global\" } = this.context.options;\r\n let compareDate: Date;\r\n\r\n if (isDateValue(dateOrField)) {\r\n // Value comparison\r\n compareDate = new Date(dateOrField);\r\n } else {\r\n // Field comparison\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, dateOrField as string);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n compareDate = new Date(fieldValue);\r\n }\r\n\r\n const inputDate = new Date(value);\r\n\r\n if (inputDate <= compareDate) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * From today rule - date must be today or in the future\r\n */\r\nexport const fromTodayRule: SchemaRule = {\r\n name: \"fromToday\",\r\n defaultErrorMessage: \"The :input must be today or in the future\",\r\n async validate(value: Date, context) {\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n const inputDate = new Date(value);\r\n inputDate.setHours(0, 0, 0, 0);\r\n\r\n if (inputDate >= today) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Before today rule - date must be before today\r\n */\r\nexport const beforeTodayRule: SchemaRule = {\r\n name: \"beforeToday\",\r\n defaultErrorMessage: \"The :input must be before today\",\r\n async validate(value: Date, context) {\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n const inputDate = new Date(value);\r\n inputDate.setHours(0, 0, 0, 0);\r\n\r\n if (inputDate < today) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * From hour rule - time must be from specific hour onwards\r\n */\r\nexport const fromHourRule: SchemaRule<{ hour: number }> = {\r\n name: \"fromHour\",\r\n defaultErrorMessage: \"The :input must be from :hour:00 onwards\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const hour = inputDate.getHours();\r\n\r\n if (hour >= this.context.options.hour) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.hour = this.context.options.hour;\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Before hour rule - time must be before specific hour\r\n */\r\nexport const beforeHourRule: SchemaRule<{ hour: number }> = {\r\n name: \"beforeHour\",\r\n defaultErrorMessage: \"The :input must be before :hour:00\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const hour = inputDate.getHours();\r\n\r\n if (hour < this.context.options.hour) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.hour = this.context.options.hour;\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Between hours rule - time must be between start and end hours\r\n */\r\nexport const betweenHoursRule: SchemaRule<{\r\n startHour: number;\r\n endHour: number;\r\n}> = {\r\n name: \"betweenHours\",\r\n defaultErrorMessage: \"The :input must be between :startHour:00 and :endHour:00\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const hour = inputDate.getHours();\r\n const { startHour, endHour } = this.context.options;\r\n\r\n if (hour >= startHour && hour <= endHour) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.startHour = startHour;\r\n this.context.translationParams.endHour = endHour;\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * From minute rule - time must be from specific minute onwards\r\n */\r\nexport const fromMinuteRule: SchemaRule<{ minute: number }> = {\r\n name: \"fromMinute\",\r\n defaultErrorMessage: \"The :input must be from minute :minute onwards\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const minute = inputDate.getMinutes();\r\n\r\n if (minute >= this.context.options.minute) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.minute = this.context.options.minute;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Before minute rule - time must be before specific minute\r\n */\r\nexport const beforeMinuteRule: SchemaRule<{ minute: number }> = {\r\n name: \"beforeMinute\",\r\n defaultErrorMessage: \"The :input must be before minute :minute\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const minute = inputDate.getMinutes();\r\n\r\n if (minute < this.context.options.minute) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.minute = this.context.options.minute;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Between minutes rule - time must be between start and end minutes\r\n */\r\nexport const betweenMinutesRule: SchemaRule<{\r\n startMinute: number;\r\n endMinute: number;\r\n}> = {\r\n name: \"betweenMinutes\",\r\n defaultErrorMessage: \"The :input must be between minute :startMinute and :endMinute\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const minute = inputDate.getMinutes();\r\n const { startMinute, endMinute } = this.context.options;\r\n\r\n if (minute >= startMinute && minute <= endMinute) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.startMinute = startMinute;\r\n this.context.translationParams.endMinute = endMinute;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Age rule - calculate age from date\r\n */\r\nexport const ageRule: SchemaRule<{ years: number }> = {\r\n name: \"age\",\r\n defaultErrorMessage: \"The :input must be exactly :years years old\",\r\n async validate(value: Date, context) {\r\n const birthDate = new Date(value);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n\r\n if (age === this.context.options.years) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.years = this.context.options.years;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Min age rule - minimum age requirement\r\n */\r\nexport const minAgeRule: SchemaRule<{ years: number }> = {\r\n name: \"minAge\",\r\n defaultErrorMessage: \"The :input must be at least :years years old\",\r\n async validate(value: Date, context) {\r\n const birthDate = new Date(value);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n\r\n if (age >= this.context.options.years) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.years = this.context.options.years;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Max age rule - maximum age requirement\r\n */\r\nexport const maxAgeRule: SchemaRule<{ years: number }> = {\r\n name: \"maxAge\",\r\n defaultErrorMessage: \"The :input must be at most :years years old\",\r\n async validate(value: Date, context) {\r\n const birthDate = new Date(value);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n\r\n if (age <= this.context.options.years) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.years = this.context.options.years;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Week day rule - date must be specific weekday\r\n */\r\nexport const weekDayRule: SchemaRule<{ day: WeekDay }> = {\r\n name: \"weekDay\",\r\n defaultErrorMessage: \"The :input must be a :day\",\r\n async validate(value: Date, context) {\r\n const inputDate = new Date(value);\r\n const dayOfWeek = inputDate.getDay();\r\n const expectedDay = WEEK_DAYS[this.context.options.day];\r\n\r\n if (dayOfWeek === expectedDay) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.day = this.context.options.day;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ageRule, beforeHourRule, beforeMinuteRule, beforeTodayRule, betweenHoursRule, betweenMinutesRule, dateRule, fromHourRule, fromMinuteRule, fromTodayRule, maxAgeRule, maxDateRule, minAgeRule, minDateRule, weekDayRule } from "./date.mjs";
|
|
2
|
+
import { afterTodayRule, betweenDatesRule, futureRule, pastRule, todayRule } from "./date-comparison-rules.mjs";
|
|
3
|
+
import { businessDayRule, weekdaysRule, weekendRule } from "./date-day-rules.mjs";
|
|
4
|
+
import { afterFieldRule, beforeFieldRule, sameAsFieldDateRule } from "./date-field-comparison-rules.mjs";
|
|
5
|
+
import { betweenDaysRule, betweenMonthsRule, betweenTimesRule, betweenYearsRule, maxDayRule, maxMonthRule, maxYearRule, minDayRule, minMonthRule, minYearRule, monthRule, quarterRule, yearRule } from "./date-period-rules.mjs";
|
|
6
|
+
import { withinDaysRule, withinFutureDaysRule, withinPastDaysRule } from "./date-relative-rules.mjs";
|
|
7
|
+
import { betweenAgeRule, birthdayRule, leapYearRule } from "./date-special-rules.mjs";
|
|
8
|
+
|
|
9
|
+
export { };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { presentRule, requiredRule } from "./core/required.mjs";
|
|
2
|
+
import { equalRule } from "./core/equal.mjs";
|
|
3
|
+
import { forbiddenRule } from "./core/forbidden.mjs";
|
|
4
|
+
import { unionRule } from "./core/union.mjs";
|
|
5
|
+
import { whenRule } from "./core/when.mjs";
|
|
6
|
+
import "./core/index.mjs";
|
|
7
|
+
import { alphaNumericRule, alphaRule, isNumericRule } from "./string/alpha.mjs";
|
|
8
|
+
import { isCreditCardRule } from "./string/credit-card.mjs";
|
|
9
|
+
import { emailRule } from "./string/email.mjs";
|
|
10
|
+
import { cuidRule, nanoidRule, ulidRule, uuidRule } from "./string/id-formats.mjs";
|
|
11
|
+
import { ip4Rule, ip6Rule, ipRule, isIP, isIPv4, isIPv6 } from "./string/ip.mjs";
|
|
12
|
+
import { patternRule } from "./string/pattern.mjs";
|
|
13
|
+
import { containsRule, endsWithRule, notContainsRule, startsWithRule } from "./string/string-comparison.mjs";
|
|
14
|
+
import { strongPasswordRule } from "./string/strong-password-rule.mjs";
|
|
15
|
+
import { urlRule } from "./string/url.mjs";
|
|
16
|
+
import { withoutWhitespaceRule } from "./string/without-whitespace.mjs";
|
|
17
|
+
import "./string/index.mjs";
|
|
18
|
+
import { betweenNumbersRule, evenRule, greaterThanRule, lessThanRule, maxRule, minRule, moduloRule, negativeRule, oddRule, positiveRule } from "./number/number-rules.mjs";
|
|
19
|
+
import "./number/index.mjs";
|
|
20
|
+
import { betweenLengthRule, lengthRule, maxLengthRule, maxWordsRule, minLengthRule, minWordsRule, wordsRule } from "./length/length-rules.mjs";
|
|
21
|
+
import "./length/index.mjs";
|
|
22
|
+
import { sortedArrayRule, uniqueArrayRule } from "./array/array-rules.mjs";
|
|
23
|
+
import "./array/index.mjs";
|
|
24
|
+
import { ageRule, beforeHourRule, beforeMinuteRule, beforeTodayRule, betweenHoursRule, betweenMinutesRule, dateRule, fromHourRule, fromMinuteRule, fromTodayRule, maxAgeRule, maxDateRule, minAgeRule, minDateRule, weekDayRule } from "./date/date.mjs";
|
|
25
|
+
import { afterTodayRule, betweenDatesRule, futureRule, pastRule, todayRule } from "./date/date-comparison-rules.mjs";
|
|
26
|
+
import { businessDayRule, weekdaysRule, weekendRule } from "./date/date-day-rules.mjs";
|
|
27
|
+
import { afterFieldRule, beforeFieldRule, sameAsFieldDateRule } from "./date/date-field-comparison-rules.mjs";
|
|
28
|
+
import { betweenDaysRule, betweenMonthsRule, betweenTimesRule, betweenYearsRule, maxDayRule, maxMonthRule, maxYearRule, minDayRule, minMonthRule, minYearRule, monthRule, quarterRule, yearRule } from "./date/date-period-rules.mjs";
|
|
29
|
+
import { withinDaysRule, withinFutureDaysRule, withinPastDaysRule } from "./date/date-relative-rules.mjs";
|
|
30
|
+
import { betweenAgeRule, birthdayRule, leapYearRule } from "./date/date-special-rules.mjs";
|
|
31
|
+
import "./date/index.mjs";
|
|
32
|
+
import "./file/index.mjs";
|
|
33
|
+
import { colorRule, darkColorRule, hexColorRule, hslColorRule, lightColorRule, rgbColorRule, rgbaColorRule } from "./color/color-rules.mjs";
|
|
34
|
+
import "./color/index.mjs";
|
|
35
|
+
import { requiredIfAllEmptyRule, requiredIfAllNotEmptyRule, requiredIfAnyEmptyRule, requiredIfAnyNotEmptyRule, requiredIfEmptyRule, requiredIfInRule, requiredIfNotEmptyRule, requiredIfNotInRule, requiredIfRule } from "./conditional/required-if-rules.mjs";
|
|
36
|
+
import { requiredUnlessRule } from "./conditional/required-unless-rules.mjs";
|
|
37
|
+
import { requiredWhenRule } from "./conditional/required-when-rule.mjs";
|
|
38
|
+
import { requiredWithAllRule, requiredWithAnyRule, requiredWithRule } from "./conditional/required-with-rules.mjs";
|
|
39
|
+
import { requiredWithoutAllRule, requiredWithoutAnyRule, requiredWithoutRule } from "./conditional/required-without-rules.mjs";
|
|
40
|
+
import { presentIfEmptyRule, presentIfInRule, presentIfNotEmptyRule, presentIfNotInRule, presentIfRule } from "./conditional/present-if-rules.mjs";
|
|
41
|
+
import { presentUnlessRule } from "./conditional/present-unless-rules.mjs";
|
|
42
|
+
import { presentWithAllRule, presentWithAnyRule, presentWithRule } from "./conditional/present-with-rules.mjs";
|
|
43
|
+
import { presentWithoutAllRule, presentWithoutAnyRule, presentWithoutRule } from "./conditional/present-without-rules.mjs";
|
|
44
|
+
import { forbiddenIfEmptyRule, forbiddenIfInRule, forbiddenIfNotEmptyRule, forbiddenIfNotInRule, forbiddenIfNotRule, forbiddenIfRule } from "./conditional/forbidden-if-rules.mjs";
|
|
45
|
+
import "./conditional/index.mjs";
|
|
46
|
+
import { allowedValuesRule, enumRule, inRule, notAllowedValuesRule } from "./common/enum.mjs";
|
|
47
|
+
import { equalsFieldRule, notEqualsFieldRule } from "./common/equals-field-rules.mjs";
|
|
48
|
+
import { instanceofRule } from "./common/instanceof.mjs";
|
|
49
|
+
import { literalRule } from "./common/literal.mjs";
|
|
50
|
+
import { arrayRule, booleanRule, floatRule, intRule, numberRule, objectRule, plainObjectRule, stringRule } from "./common/type-rules.mjs";
|
|
51
|
+
import { unknownKeyRule } from "./common/unknown-key.mjs";
|
|
52
|
+
import "./common/index.mjs";
|
|
53
|
+
|
|
54
|
+
export { };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/length/length-rules.ts
|
|
5
5
|
/**
|
|
6
6
|
* Min length rule - validates minimum length
|
|
7
7
|
* Works for any value with a length property (strings, arrays, etc.)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"length-rules.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/length/length-rules.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Min length rule - validates minimum length\r\n * Works for any value with a length property (strings, arrays, etc.)\r\n */\r\nexport const minLengthRule: SchemaRule<{ minLength: number }> = {\r\n name: \"minLength\",\r\n defaultErrorMessage: \"The :input must be at least :minLength characters long\",\r\n async validate(value: any, context) {\r\n const length = typeof value?.length === \"number\" ? value.length : String(value || \"\").length;\r\n\r\n if (length >= this.context.options.minLength) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.minLength = this.context.options.minLength;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Max length rule - validates maximum length\r\n * Works for any value with a length property (strings, arrays, etc.)\r\n */\r\nexport const maxLengthRule: SchemaRule<{ maxLength: number }> = {\r\n name: \"maxLength\",\r\n defaultErrorMessage: \"The :input must not exceed :maxLength characters\",\r\n async validate(value: any, context) {\r\n const length = typeof value?.length === \"number\" ? value.length : String(value || \"\").length;\r\n\r\n if (length <= this.context.options.maxLength) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.maxLength = this.context.options.maxLength;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Between length rule - validates length is between min and max (inclusive)\r\n * Works for any value with a length property (strings, arrays, etc.)\r\n */\r\nexport const betweenLengthRule: SchemaRule<{\r\n minLength: number;\r\n maxLength: number;\r\n}> = {\r\n name: \"betweenLength\",\r\n defaultErrorMessage: \"The :input must be between :minLength and :maxLength characters long\",\r\n async validate(value: any, context) {\r\n const length = typeof value?.length === \"number\" ? value.length : String(value || \"\").length;\r\n\r\n if (length >= this.context.options.minLength && length <= this.context.options.maxLength) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.minLength = this.context.options.minLength;\r\n this.context.translationParams.maxLength = this.context.options.maxLength;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Length rule - validates exact length\r\n * Works for any value with a length property (strings, arrays, etc.)\r\n */\r\nexport const lengthRule: SchemaRule<{ length: number }> = {\r\n name: \"length\",\r\n defaultErrorMessage: \"The :input must be exactly :length characters long\",\r\n async validate(value: any, context) {\r\n const length = typeof value?.length === \"number\" ? value.length : String(value || \"\").length;\r\n\r\n if (length === this.context.options.length) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.length = this.context.options.length;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Min words rule - validates minimum word count\r\n */\r\nexport const minWordsRule: SchemaRule<{ minWords: number }> = {\r\n name: \"minWords\",\r\n defaultErrorMessage: \"The :input must be at least :minWords words\",\r\n async validate(value: any, context) {\r\n if (String(value || \"\").split(\" \").length >= this.context.options.minWords) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.minWords = this.context.options.minWords;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Max words rule - validates maximum word count\r\n */\r\nexport const maxWordsRule: SchemaRule<{ maxWords: number }> = {\r\n name: \"maxWords\",\r\n defaultErrorMessage: \"The :input must be at most :maxWords words\",\r\n async validate(value: any, context) {\r\n if (String(value || \"\").split(\" \").length <= this.context.options.maxWords) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.maxWords = this.context.options.maxWords;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Words rule - validates exact word count\r\n */\r\nexport const wordsRule: SchemaRule<{ words: number }> = {\r\n name: \"words\",\r\n defaultErrorMessage: \"The :input must be exactly :words words\",\r\n async validate(value: any, context) {\r\n if (String(value || \"\").split(\" \").length === this.context.options.words) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.words = this.context.options.words;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;;AAOA,MAAa,gBAAmD;CAC9D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAGlC,KAFe,OAAO,OAAO,WAAW,WAAW,MAAM,SAAS,OAAO,SAAS,EAAE,CAAC,CAAC,WAExE,KAAK,QAAQ,QAAQ,WACjC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,YAAY,KAAK,QAAQ,QAAQ;EAEhE,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;;AAMA,MAAa,gBAAmD;CAC9D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAGlC,KAFe,OAAO,OAAO,WAAW,WAAW,MAAM,SAAS,OAAO,SAAS,EAAE,CAAC,CAAC,WAExE,KAAK,QAAQ,QAAQ,WACjC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,YAAY,KAAK,QAAQ,QAAQ;EAEhE,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;;AAMA,MAAa,oBAGR;CACH,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,SAAS,OAAO,OAAO,WAAW,WAAW,MAAM,SAAS,OAAO,SAAS,EAAE,CAAC,CAAC;EAEtF,IAAI,UAAU,KAAK,QAAQ,QAAQ,aAAa,UAAU,KAAK,QAAQ,QAAQ,WAC7E,OAAO;EAGT,KAAK,QAAQ,kBAAkB,YAAY,KAAK,QAAQ,QAAQ;EAChE,KAAK,QAAQ,kBAAkB,YAAY,KAAK,QAAQ,QAAQ;EAEhE,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;;AAMA,MAAa,aAA6C;CACxD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAGlC,KAFe,OAAO,OAAO,WAAW,WAAW,MAAM,SAAS,OAAO,SAAS,EAAE,CAAC,CAAC,YAEvE,KAAK,QAAQ,QAAQ,QAClC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,SAAS,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAAiD;CAC5D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,SAAS,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,KAAK,QAAQ,QAAQ,UAChE,OAAO;EAGT,KAAK,QAAQ,kBAAkB,WAAW,KAAK,QAAQ,QAAQ;EAE/D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAAiD;CAC5D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,SAAS,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,KAAK,QAAQ,QAAQ,UAChE,OAAO;EAGT,KAAK,QAAQ,kBAAkB,WAAW,KAAK,QAAQ,QAAQ;EAE/D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,YAA2C;CACtD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,SAAS,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,KAAK,QAAQ,QAAQ,OACjE,OAAO;EAGT,KAAK,QAAQ,kBAAkB,QAAQ,KAAK,QAAQ,QAAQ;EAE5D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { get } from "../../../../node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/object/get.mjs";
|
|
2
|
+
import "../../../../node_modules/.pnpm/@mongez_reinforcements@4.0.2/node_modules/@mongez/reinforcements/esm/index.mjs";
|
|
1
3
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
|
-
import { get } from "../../../../../../../@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/object/get.mjs";
|
|
3
|
-
import "../../../../../../../@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/index.mjs";
|
|
4
4
|
import "../../helpers/index.mjs";
|
|
5
5
|
|
|
6
|
-
//#region ../
|
|
6
|
+
//#region ../seal/src/rules/number/number-rules.ts
|
|
7
7
|
/**
|
|
8
8
|
* Min rule - value must be equal or greater than minimum
|
|
9
9
|
* Supports field names with sibling scope
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-rules.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/number/number-rules.ts"],"sourcesContent":["import { get } from \"@mongez/reinforcements\";\r\nimport { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Min rule - value must be equal or greater than minimum\r\n * Supports field names with sibling scope\r\n */\r\nexport const minRule: SchemaRule<{\r\n min: number | string;\r\n scope?: \"global\" | \"sibling\";\r\n}> = {\r\n name: \"min\",\r\n defaultErrorMessage: \"The :input must be at least :min\",\r\n async validate(value: any, context) {\r\n const { min, scope = \"global\" } = this.context.options;\r\n let compareMin: number;\r\n\r\n if (typeof min === \"number\") {\r\n compareMin = min;\r\n this.context.translationParams.min = min;\r\n } else {\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, min);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.min = min;\r\n\r\n compareMin = Number(fieldValue);\r\n\r\n if (isNaN(compareMin)) {\r\n return VALID_RULE;\r\n }\r\n }\r\n\r\n if (value >= compareMin) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Max rule - value must be equal or less than maximum\r\n * Supports field names with sibling scope\r\n */\r\nexport const maxRule: SchemaRule<{\r\n max: number | string;\r\n scope?: \"global\" | \"sibling\";\r\n}> = {\r\n name: \"max\",\r\n defaultErrorMessage: \"The :input must equal to or less than :max\",\r\n async validate(value: any, context) {\r\n const { max, scope = \"global\" } = this.context.options;\r\n let compareMax: number;\r\n\r\n if (typeof max === \"number\") {\r\n compareMax = max;\r\n this.context.translationParams.max = max;\r\n } else {\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, max);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.max = max;\r\n\r\n compareMax = Number(fieldValue);\r\n\r\n if (isNaN(compareMax)) {\r\n return VALID_RULE;\r\n }\r\n }\r\n\r\n if (value <= compareMax) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Greater than rule - value must be strictly greater than minimum\r\n * Supports field names with sibling scope\r\n */\r\nexport const greaterThanRule: SchemaRule<{\r\n value: number | string;\r\n scope?: \"global\" | \"sibling\";\r\n}> = {\r\n name: \"greaterThan\",\r\n defaultErrorMessage: \"The :input must be greater than :value\",\r\n async validate(value: any, context) {\r\n const { value: compareValue, scope = \"global\" } = this.context.options;\r\n let compareNumber: number;\r\n\r\n if (typeof compareValue === \"number\") {\r\n compareNumber = compareValue;\r\n this.context.translationParams.value = compareValue;\r\n } else {\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, compareValue);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.value = compareValue;\r\n\r\n compareNumber = Number(fieldValue);\r\n\r\n if (isNaN(compareNumber)) {\r\n return VALID_RULE;\r\n }\r\n }\r\n\r\n if (value > compareNumber) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Less than rule - value must be strictly less than maximum\r\n * Supports field names with sibling scope\r\n */\r\nexport const lessThanRule: SchemaRule<{\r\n value: number | string;\r\n scope?: \"global\" | \"sibling\";\r\n}> = {\r\n name: \"lessThan\",\r\n defaultErrorMessage: \"The :input must be less than :value\",\r\n async validate(value: any, context) {\r\n const { value: compareValue, scope = \"global\" } = this.context.options;\r\n let compareNumber: number;\r\n\r\n if (typeof compareValue === \"number\") {\r\n compareNumber = compareValue;\r\n this.context.translationParams.value = compareValue;\r\n } else {\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, compareValue);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.value = compareValue;\r\n\r\n compareNumber = Number(fieldValue);\r\n\r\n if (isNaN(compareNumber)) {\r\n return VALID_RULE;\r\n }\r\n }\r\n\r\n if (value < compareNumber) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Positive rule - value must be greater than 0\r\n */\r\nexport const positiveRule: SchemaRule = {\r\n name: \"positive\",\r\n defaultErrorMessage: \"The :input must be a positive number\",\r\n async validate(value: any, context) {\r\n if (value > 0) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Negative rule - value must be less than 0\r\n */\r\nexport const negativeRule: SchemaRule = {\r\n name: \"negative\",\r\n defaultErrorMessage: \"The :input must be a negative number\",\r\n async validate(value: any, context) {\r\n if (value < 0) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Odd rule - value must be an odd number\r\n */\r\nexport const oddRule: SchemaRule = {\r\n name: \"odd\",\r\n defaultErrorMessage: \"The :input must be an odd number\",\r\n async validate(value: any, context) {\r\n if (value % 2 !== 0) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Even rule - value must be an even number\r\n */\r\nexport const evenRule: SchemaRule = {\r\n name: \"even\",\r\n defaultErrorMessage: \"The :input must be an even number\",\r\n async validate(value: any, context) {\r\n if (value % 2 === 0) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Modulo rule - value must be divisible by given number\r\n */\r\nexport const moduloRule: SchemaRule<{ value: number }> = {\r\n name: \"modulo\",\r\n defaultErrorMessage: \"The :input must be divisible by :value\",\r\n async validate(value: any, context) {\r\n if (value % this.context.options.value === 0) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.value = this.context.options.value;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Between rule - value must be between the given two numbers (Inclusive)\r\n * Supports field names with sibling scope\r\n */\r\nexport const betweenNumbersRule: SchemaRule<{\r\n min: number | string;\r\n max: number | string;\r\n scope?: \"global\" | \"sibling\";\r\n}> = {\r\n name: \"betweenNumbers\",\r\n defaultErrorMessage: \"The :input must be between :min and :max\",\r\n async validate(value: any, context) {\r\n const { min, max, scope = \"global\" } = this.context.options;\r\n\r\n // Extract min value\r\n let compareMin: number;\r\n if (typeof min === \"number\") {\r\n compareMin = min;\r\n this.context.translationParams.min = min;\r\n } else {\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, min);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.min = min;\r\n\r\n compareMin = Number(fieldValue);\r\n if (isNaN(compareMin)) {\r\n return VALID_RULE;\r\n }\r\n }\r\n\r\n // Extract max value\r\n let compareMax: number;\r\n if (typeof max === \"number\") {\r\n compareMax = max;\r\n this.context.translationParams.max = max;\r\n } else {\r\n const source = scope === \"sibling\" ? context.parent : context.allValues;\r\n const fieldValue = get(source, max);\r\n\r\n if (fieldValue === undefined) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.max = max;\r\n\r\n compareMax = Number(fieldValue);\r\n if (isNaN(compareMax)) {\r\n return VALID_RULE;\r\n }\r\n }\r\n\r\n if (value >= compareMin && value <= compareMax) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
|
+
import { isEmptyValue } from "../../helpers/is-empty-value.mjs";
|
|
2
3
|
import { getFieldValue } from "../../helpers/get-field-value.mjs";
|
|
3
4
|
import "../../helpers/index.mjs";
|
|
4
|
-
import { isEmptyValue } from "../../helpers/is-empty-value.mjs";
|
|
5
5
|
|
|
6
|
-
//#region ../
|
|
6
|
+
//#region ../seal/src/rules/scalar/accepted-rule.ts
|
|
7
7
|
/**
|
|
8
8
|
* The full set of values treated as "accepted" by `acceptedRule` and its
|
|
9
9
|
* conditional variants. Shared with `formBooleanMutator` (see
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accepted-rule.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/scalar/accepted-rule.ts"],"sourcesContent":["import { getFieldValue, invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport { isEmptyValue } from \"../../helpers/is-empty-value\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * The full set of values treated as \"accepted\" by `acceptedRule` and its\r\n * conditional variants. Shared with `formBooleanMutator` (see\r\n * `../../mutators/boolean-mutators`) so `v.boolean().accepted()` recognizes\r\n * exactly this list — single source of truth, no duplicated literals.\r\n */\r\nexport const ACCEPTED_VALUES: readonly unknown[] = [\r\n \"1\",\r\n \"true\",\r\n \"yes\",\r\n \"y\",\r\n \"on\",\r\n 1,\r\n true,\r\n \"Yes\",\r\n \"Y\",\r\n \"On\",\r\n];\r\n\r\nconst isAcceptedValue = (value: any) => {\r\n return ACCEPTED_VALUES.includes(value);\r\n};\r\n\r\n/**\r\n * Validate value as accepted if it equals:\r\n * 1 | \"1\" | true | \"true\" | \"yes\" | \"y\" | \"on\"\r\n */\r\nexport const acceptedRule: SchemaRule = {\r\n name: \"accepted\",\r\n defaultErrorMessage: \"The :input must be accepted\",\r\n description:\r\n \"The value must be accepted if it equals: 1 | '1' | true | 'true' | 'yes' | 'y' | 'on' | 1 | true | 'Yes' | 'Y' | 'On'\",\r\n async validate(value: any, context) {\r\n if (isAcceptedValue(value)) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Accepted value if another field's value equals to a specific value\r\n */\r\nexport const acceptedIfRule: SchemaRule<{ field: string; value: any }> = {\r\n name: \"acceptedIf\",\r\n description: \"The field must be accepted if :field's value equals to :value\",\r\n defaultErrorMessage: \"The :input must be accepted\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n const { value: expectedValue } = this.context.options;\r\n\r\n this.context.translatableParams.field = this.context.options.field;\r\n this.context.translatableParams.value = this.context.options.value;\r\n if (fieldValue !== expectedValue) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isAcceptedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Accepted if another field is not equal to the given value\r\n */\r\nexport const acceptedUnlessRule: SchemaRule<{ field: string; value: any }> = {\r\n name: \"acceptedUnless\",\r\n description: \"The field must be accepted if :field's value is not equal to :value\",\r\n defaultErrorMessage: \"The :input must be accepted\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n const { value: expectedValue } = this.context.options;\r\n\r\n this.context.translatableParams.field = this.context.options.field;\r\n this.context.translatableParams.value = this.context.options.value;\r\n\r\n if (fieldValue === expectedValue) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isAcceptedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Accepted if another field is required\r\n */\r\nexport const acceptedIfRequiredRule: SchemaRule<{ field: string }> = {\r\n name: \"acceptedIfRequired\",\r\n description: \"The field must be accepted if :field is required\",\r\n defaultErrorMessage: \"The :input must be accepted\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n this.context.translatableParams.field = this.context.options.field;\r\n\r\n if (isEmptyValue(fieldValue)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isAcceptedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Accepted if another field is present\r\n */\r\nexport const acceptedIfPresentRule: SchemaRule<{ field: string }> = {\r\n name: \"acceptedIfPresent\",\r\n description: \"The field must be accepted if :field is present\",\r\n defaultErrorMessage: \"The :input must be accepted\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n this.context.translatableParams.field = this.context.options.field;\r\n\r\n if (fieldValue === undefined) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isAcceptedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Accepted if another field is missing\r\n */\r\nexport const acceptedWithoutRule: SchemaRule<{ field: string }> = {\r\n name: \"acceptedWithout\",\r\n description: \"The field must be accepted if :field is missing\",\r\n defaultErrorMessage: \"The :input must be accepted\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n this.context.translatableParams.field = this.context.options.field;\r\n\r\n if (fieldValue !== undefined) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isAcceptedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n"],"mappings":";;;;;;;;;;;;AAUA,MAAa,kBAAsC;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,mBAAmB,UAAe;CACtC,OAAO,gBAAgB,SAAS,KAAK;AACvC;;;;;AAMA,MAAa,eAA2B;CACtC,MAAM;CACN,qBAAqB;CACrB,aACE;CACF,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,gBAAgB,KAAK,GACvB,OAAO;EAGT,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,iBAA4D;CACvE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,MAAM,EAAE,OAAO,kBAAkB,KAAK,QAAQ;EAE9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAC7D,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAC7D,IAAI,eAAe,eACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,qBAAgE;CAC3E,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,MAAM,EAAE,OAAO,kBAAkB,KAAK,QAAQ;EAE9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAC7D,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,eAAe,eACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,yBAAwD;CACnE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,aAAa,UAAU,GACzB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,wBAAuD;CAClE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,eAAe,QACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,sBAAqD;CAChE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,eAAe,QACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
|
+
import { isEmptyValue } from "../../helpers/is-empty-value.mjs";
|
|
2
3
|
import { getFieldValue } from "../../helpers/get-field-value.mjs";
|
|
3
4
|
import "../../helpers/index.mjs";
|
|
4
|
-
import { isEmptyValue } from "../../helpers/is-empty-value.mjs";
|
|
5
5
|
|
|
6
|
-
//#region ../
|
|
6
|
+
//#region ../seal/src/rules/scalar/declined-rule.ts
|
|
7
7
|
/**
|
|
8
8
|
* The full set of values treated as "declined" by `declinedRule` and its
|
|
9
9
|
* conditional variants. Shared with `formBooleanMutator` (see
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declined-rule.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/scalar/declined-rule.ts"],"sourcesContent":["import { getFieldValue, invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport { isEmptyValue } from \"../../helpers/is-empty-value\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * The full set of values treated as \"declined\" by `declinedRule` and its\r\n * conditional variants. Shared with `formBooleanMutator` (see\r\n * `../../mutators/boolean-mutators`) so `v.boolean().declined()` recognizes\r\n * exactly this list — single source of truth, no duplicated literals.\r\n */\r\nexport const DECLINED_VALUES: readonly unknown[] = [\r\n \"0\",\r\n \"false\",\r\n \"no\",\r\n \"n\",\r\n \"off\",\r\n 0,\r\n false,\r\n \"No\",\r\n \"N\",\r\n \"Off\",\r\n];\r\n\r\nconst isDeclinedValue = (value: any) => {\r\n return DECLINED_VALUES.includes(value);\r\n};\r\n\r\n/**\r\n * Validate value as declined if it equals:\r\n * 0 | \"0\" | false | \"false\" | \"no\" | \"n\" | \"off\" | 0 | false | \"No\" | \"N\" | \"Off\"\r\n */\r\nexport const declinedRule: SchemaRule = {\r\n name: \"declined\",\r\n defaultErrorMessage: \"The :input must be declined\",\r\n description:\r\n \"The value must be declined if it equals: 0 | '0' | false | 'false' | 'no' | 'n' | 'off' | 0 | false | 'No' | 'N' | 'Off'\",\r\n async validate(value: any, context) {\r\n if (isDeclinedValue(value)) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Declined value if another field's value equals to a specific value\r\n */\r\nexport const declinedIfRule: SchemaRule<{ field: string; value: any }> = {\r\n name: \"declinedIf\",\r\n description: \"The field must be declined if :field's value equals to :value\",\r\n defaultErrorMessage: \"The :input must be declined\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n const { value: expectedValue } = this.context.options;\r\n\r\n this.context.translatableParams.field = this.context.options.field;\r\n this.context.translatableParams.value = this.context.options.value;\r\n\r\n if (fieldValue !== expectedValue) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isDeclinedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Declined if another field is not equal to the given value\r\n */\r\nexport const declinedUnlessRule: SchemaRule<{ field: string; value: any }> = {\r\n name: \"declinedUnless\",\r\n description: \"The field must be declined if :field's value is not equal to :value\",\r\n defaultErrorMessage: \"The :input must be declined\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n const { value: expectedValue } = this.context.options;\r\n\r\n this.context.translatableParams.field = this.context.options.field;\r\n this.context.translatableParams.value = this.context.options.value;\r\n if (fieldValue === expectedValue) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isDeclinedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Declined if another field is required\r\n */\r\nexport const declinedIfRequiredRule: SchemaRule<{ field: string }> = {\r\n name: \"declinedIfRequired\",\r\n description: \"The field must be declined if :field is required\",\r\n defaultErrorMessage: \"The :input must be declined\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n this.context.translatableParams.field = this.context.options.field;\r\n\r\n if (isEmptyValue(fieldValue)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isDeclinedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Declined if another field is present\r\n */\r\nexport const declinedIfPresentRule: SchemaRule<{ field: string }> = {\r\n name: \"declinedIfPresent\",\r\n description: \"The field must be declined if :field is present\",\r\n defaultErrorMessage: \"The :input must be declined\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n this.context.translatableParams.field = this.context.options.field;\r\n\r\n if (fieldValue === undefined) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isDeclinedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n\r\n/**\r\n * Declined if another field is missing\r\n */\r\nexport const declinedWithoutRule: SchemaRule<{ field: string }> = {\r\n name: \"declinedWithout\",\r\n description: \"The field must be declined if :field is missing\",\r\n defaultErrorMessage: \"The :input must be declined\",\r\n async validate(value: any, context) {\r\n const fieldValue = getFieldValue(this, context);\r\n this.context.translatableParams.field = this.context.options.field;\r\n\r\n if (fieldValue !== undefined) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n if (!isDeclinedValue(value)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n"],"mappings":";;;;;;;;;;;;AAUA,MAAa,kBAAsC;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,mBAAmB,UAAe;CACtC,OAAO,gBAAgB,SAAS,KAAK;AACvC;;;;;AAMA,MAAa,eAA2B;CACtC,MAAM;CACN,qBAAqB;CACrB,aACE;CACF,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,gBAAgB,KAAK,GACvB,OAAO;EAGT,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,iBAA4D;CACvE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,MAAM,EAAE,OAAO,kBAAkB,KAAK,QAAQ;EAE9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAC7D,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,eAAe,eACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,qBAAgE;CAC3E,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,MAAM,EAAE,OAAO,kBAAkB,KAAK,QAAQ;EAE9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAC7D,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAC7D,IAAI,eAAe,eACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,yBAAwD;CACnE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,aAAa,UAAU,GACzB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,wBAAuD;CAClE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,eAAe,QACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF;;;;AAKA,MAAa,sBAAqD;CAChE,MAAM;CACN,aAAa;CACb,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,aAAa,cAAc,MAAM,OAAO;EAC9C,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,IAAI,eAAe,QACjB,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,CAAC,gBAAgB,KAAK,GACxB,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ACCEPTED_VALUES, acceptedIfPresentRule, acceptedIfRequiredRule, acceptedIfRule, acceptedRule, acceptedUnlessRule, acceptedWithoutRule } from "./accepted-rule.mjs";
|
|
2
|
+
import { DECLINED_VALUES, declinedIfPresentRule, declinedIfRequiredRule, declinedIfRule, declinedRule, declinedUnlessRule, declinedWithoutRule } from "./declined-rule.mjs";
|
|
3
|
+
|
|
4
|
+
export { };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/alpha.ts
|
|
5
5
|
/**
|
|
6
6
|
* Alpha rule - allows only alphabetic characters
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alpha.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/alpha.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Alpha rule - allows only alphabetic characters\r\n */\r\nexport const alphaRule: SchemaRule = {\r\n name: \"alpha\",\r\n defaultErrorMessage: \"The :input must contain only alphabetic characters\",\r\n async validate(value: any, context) {\r\n if (/^[a-zA-Z]+$/.test(value)) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * AlphaNumeric rule - allows only alphanumeric characters\r\n */\r\nexport const alphaNumericRule: SchemaRule = {\r\n name: \"alphaNumeric\",\r\n defaultErrorMessage: \"The :input must contain only alphanumeric characters\",\r\n async validate(value: any, context) {\r\n if (/^[a-zA-Z0-9]+$/.test(value)) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Numeric string rule - allows only numeric characters\r\n */\r\nexport const isNumericRule: SchemaRule = {\r\n name: \"numeric\",\r\n defaultErrorMessage: \"The :input must contain only numeric characters\",\r\n async validate(value: any, context) {\r\n if (/^[0-9]+$/.test(String(value))) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,YAAwB;CACnC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,cAAc,KAAK,KAAK,GAC1B,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,mBAA+B;CAC1C,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,iBAAiB,KAAK,KAAK,GAC7B,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,gBAA4B;CACvC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,WAAW,KAAK,OAAO,KAAK,CAAC,GAC/B,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/credit-card.ts
|
|
5
5
|
/**
|
|
6
6
|
* Credit card rule - validates credit card number
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit-card.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/credit-card.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Credit card rule - validates credit card number\r\n */\r\nexport const isCreditCardRule: SchemaRule = {\r\n name: \"creditCard\",\r\n defaultErrorMessage: \"The :input must be a valid credit card number\",\r\n async validate(value: any, context) {\r\n // Luhn algorithm for credit card validation\r\n const cardNumber = String(value).replace(/\\s/g, \"\");\r\n\r\n if (!/^\\d+$/.test(cardNumber)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n let sum = 0;\r\n let isEven = false;\r\n\r\n for (let i = cardNumber.length - 1; i >= 0; i--) {\r\n let digit = parseInt(cardNumber.charAt(i), 10);\n\r\n if (isEven) {\r\n digit *= 2;\r\n if (digit > 9) {\r\n digit -= 9;\r\n }\r\n }\r\n\r\n sum += digit;\r\n isEven = !isEven;\r\n }\r\n\r\n if (sum % 10 === 0) {\r\n return VALID_RULE;\r\n }\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,mBAA+B;CAC1C,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAElC,MAAM,aAAa,OAAO,KAAK,CAAC,CAAC,QAAQ,OAAO,EAAE;EAElD,IAAI,CAAC,QAAQ,KAAK,UAAU,GAC1B,OAAO,YAAY,MAAM,OAAO;EAGlC,IAAI,MAAM;EACV,IAAI,SAAS;EAEb,KAAK,IAAI,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;GAC/C,IAAI,QAAQ,SAAS,WAAW,OAAO,CAAC,GAAG,EAAE;GAE7C,IAAI,QAAQ;IACV,SAAS;IACT,IAAI,QAAQ,GACV,SAAS;GAEb;GAEA,OAAO;GACP,SAAS,CAAC;EACZ;EAEA,IAAI,MAAM,OAAO,GACf,OAAO;EAGT,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
|
+
import { isEmail } from "../../../../node_modules/.pnpm/@mongez_supportive-is@2.1.5/node_modules/@mongez/supportive-is/esm/index.mjs";
|
|
2
3
|
import "../../helpers/index.mjs";
|
|
3
|
-
import { isEmail } from "../../../../../../../@mongez_supportive-is@2.1.4/node_modules/@mongez/supportive-is/esm/index.mjs";
|
|
4
4
|
|
|
5
|
-
//#region ../
|
|
5
|
+
//#region ../seal/src/rules/string/email.ts
|
|
6
6
|
/**
|
|
7
7
|
* Email rule - validates email format
|
|
8
8
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/email.ts"],"sourcesContent":["import { isEmail } from \"@mongez/supportive-is\";\r\nimport { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Email rule - validates email format\r\n */\r\nexport const emailRule: SchemaRule = {\r\n name: \"email\",\r\n defaultErrorMessage: \"The :input must be a valid email address\",\r\n async validate(value: any, context) {\r\n if (isEmail(value)) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;;AAOA,MAAa,YAAwB;CACnC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,QAAQ,KAAK,GACf,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/id-formats.ts
|
|
5
5
|
/**
|
|
6
6
|
* Modern ID format validators — UUID, CUID, ULID, nanoid.
|
|
7
7
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-formats.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/id-formats.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Modern ID format validators — UUID, CUID, ULID, nanoid.\n *\n * Each rule asserts the value is a string in the canonical format for its\n * identifier scheme. Rules are intentionally strict (variant nibbles checked\n * for UUID, character classes enforced for ULID's Crockford base32, etc.)\n * so \"looks-like-but-not-valid\" inputs are rejected.\n */\n\nconst UUID_ANY = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\nconst UUID_BY_VERSION: Record<1 | 3 | 4 | 5 | 6 | 7, RegExp> = {\n 1: /^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,\n 3: /^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,\n 4: /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,\n 5: /^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,\n 6: /^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,\n 7: /^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,\n};\n\nexport type UUIDVersion = 1 | 3 | 4 | 5 | 6 | 7;\n\n/**\n * UUID rule — value must be a valid UUID. Optionally restrict to a specific version.\n *\n * @example\n * v.string().uuid() // any RFC 4122 UUID\n * v.string().uuid(4) // only v4 (random)\n * v.string().uuid(7) // only v7 (timestamp-ordered)\n */\nexport const uuidRule: SchemaRule<{ version?: UUIDVersion }> = {\n name: \"uuid\",\n defaultErrorMessage: \"The :input must be a valid UUID\",\n async validate(value, context) {\n if (typeof value !== \"string\") return invalidRule(this, context);\n\n const version = this.context.options.version;\n\n const pattern = version ? UUID_BY_VERSION[version] : UUID_ANY;\n if (pattern.test(value)) return VALID_RULE;\n\n if (version !== undefined) {\n this.context.translationParams.version = version;\n }\n\n return invalidRule(this, context);\n },\n};\n\n/**\n * CUID rule — value must be a valid CUID.\n *\n * Defaults to CUID2 (24 chars, lowercase, starts with letter — see\n * https://github.com/paralleldrive/cuid2). Pass `{ version: 1 }` for legacy\n * CUID1 format (starts with \"c\", ≥25 chars).\n *\n * @example\n * v.string().cuid() // CUID2\n * v.string().cuid({ version: 1 }) // legacy CUID1\n */\nexport const cuidRule: SchemaRule<{ version?: 1 | 2 }> = {\n name: \"cuid\",\n defaultErrorMessage: \"The :input must be a valid CUID\",\n async validate(value, context) {\n if (typeof value !== \"string\") return invalidRule(this, context);\n const version = this.context.options.version ?? 2;\n const pattern = version === 1 ? /^c[a-z0-9]{24,}$/ : /^[a-z][a-z0-9]{23}$/;\n if (pattern.test(value)) return VALID_RULE;\n this.context.translationParams.version = version;\n return invalidRule(this, context);\n },\n};\n\n/**\n * ULID rule — value must be a valid ULID (26 chars, Crockford base32).\n *\n * Crockford base32 excludes the letters I, L, O, U to avoid ambiguity.\n *\n * @example\n * v.string().ulid()\n */\nexport const ulidRule: SchemaRule = {\n name: \"ulid\",\n defaultErrorMessage: \"The :input must be a valid ULID\",\n async validate(value, context) {\n if (typeof value !== \"string\") return invalidRule(this, context);\n if (/^[0-9A-HJKMNP-TV-Z]{26}$/.test(value)) return VALID_RULE;\n return invalidRule(this, context);\n },\n};\n\n/**\n * nanoid rule — value must be a valid nanoid string.\n *\n * Default length is 21 (standard nanoid). URL-safe alphabet:\n * A–Z, a–z, 0–9, `_`, `-`.\n *\n * @example\n * v.string().nanoid() // 21 chars (default)\n * v.string().nanoid(10) // 10 chars\n */\nexport const nanoidRule: SchemaRule<{ length?: number }> = {\n name: \"nanoid\",\n defaultErrorMessage: \"The :input must be a valid nanoid\",\n async validate(value, context) {\n if (typeof value !== \"string\") return invalidRule(this, context);\n const length = this.context.options.length ?? 21;\n const pattern = new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n if (pattern.test(value)) return VALID_RULE;\n this.context.translationParams.length = length;\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,WAAW;AAEjB,MAAM,kBAAyD;CAC7D,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL;;;;;;;;;AAYA,MAAa,WAAkD;CAC7D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAO,SAAS;EAC7B,IAAI,OAAO,UAAU,UAAU,OAAO,YAAY,MAAM,OAAO;EAE/D,MAAM,UAAU,KAAK,QAAQ,QAAQ;EAGrC,KADgB,UAAU,gBAAgB,WAAW,SAC1C,CAAC,KAAK,KAAK,GAAG,OAAO;EAEhC,IAAI,YAAY,QACd,KAAK,QAAQ,kBAAkB,UAAU;EAG3C,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;;;;;;;;;AAaA,MAAa,WAA4C;CACvD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAO,SAAS;EAC7B,IAAI,OAAO,UAAU,UAAU,OAAO,YAAY,MAAM,OAAO;EAC/D,MAAM,UAAU,KAAK,QAAQ,QAAQ,WAAW;EAEhD,KADgB,YAAY,IAAI,qBAAqB,sBAC1C,CAAC,KAAK,KAAK,GAAG,OAAO;EAChC,KAAK,QAAQ,kBAAkB,UAAU;EACzC,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;;;;;;AAUA,MAAa,WAAuB;CAClC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAO,SAAS;EAC7B,IAAI,OAAO,UAAU,UAAU,OAAO,YAAY,MAAM,OAAO;EAC/D,IAAI,2BAA2B,KAAK,KAAK,GAAG,OAAO;EACnD,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;;;;;;;;AAYA,MAAa,aAA8C;CACzD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAO,SAAS;EAC7B,IAAI,OAAO,UAAU,UAAU,OAAO,YAAY,MAAM,OAAO;EAC/D,MAAM,SAAS,KAAK,QAAQ,QAAQ,UAAU;EAE9C,IAAI,IADgB,OAAO,kBAAkB,OAAO,GAC1C,CAAC,CAAC,KAAK,KAAK,GAAG,OAAO;EAChC,KAAK,QAAQ,kBAAkB,SAAS;EACxC,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { alphaNumericRule, alphaRule, isNumericRule } from "./alpha.mjs";
|
|
2
|
+
import { isCreditCardRule } from "./credit-card.mjs";
|
|
3
|
+
import { emailRule } from "./email.mjs";
|
|
4
|
+
import { cuidRule, nanoidRule, ulidRule, uuidRule } from "./id-formats.mjs";
|
|
5
|
+
import { ip4Rule, ip6Rule, ipRule, isIP, isIPv4, isIPv6 } from "./ip.mjs";
|
|
6
|
+
import "./matches.mjs";
|
|
7
|
+
import { patternRule } from "./pattern.mjs";
|
|
8
|
+
import { containsRule, endsWithRule, notContainsRule, startsWithRule } from "./string-comparison.mjs";
|
|
9
|
+
import { strongPasswordRule } from "./strong-password-rule.mjs";
|
|
10
|
+
import { urlRule } from "./url.mjs";
|
|
11
|
+
import { withoutWhitespaceRule } from "./without-whitespace.mjs";
|
|
12
|
+
|
|
13
|
+
export { };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/ip.ts
|
|
5
5
|
/**
|
|
6
6
|
* Pure, dependency-free re-implementation of Node's `net.isIP`/`isIPv4`/`isIPv6`.
|
|
7
7
|
* Mirrors the exact regex Node uses internally (lib/internal/net.js) so that
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/ip.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { SchemaRule } from \"../../types\";\n\n/**\n * Pure, dependency-free re-implementation of Node's `net.isIP`/`isIPv4`/`isIPv6`.\n * Mirrors the exact regex Node uses internally (lib/internal/net.js) so that\n * behavior stays identical while remaining runnable in the browser (no `net` import).\n */\nconst v4Seg = \"(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\";\nconst v4Str = `(${v4Seg}[.]){3}${v4Seg}`;\nconst IPv4Reg = new RegExp(`^${v4Str}$`);\n\nconst v6Seg = \"(?:[0-9a-fA-F]{1,4})\";\nconst IPv6Reg = new RegExp(\n \"^(\" +\n `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` +\n `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` +\n `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` +\n `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` +\n `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` +\n `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` +\n `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` +\n `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` +\n \")(%[0-9a-zA-Z-.:]{1,})?$\",\n);\n\nexport function isIPv4(value: string): boolean {\n return IPv4Reg.test(value);\n}\n\nexport function isIPv6(value: string): boolean {\n return IPv6Reg.test(value);\n}\n\n/**\n * Returns 4 or 6 when `value` is a valid IPv4/IPv6 address, otherwise 0.\n * Signature mirrors Node's `net.isIP` for drop-in behavior parity.\n */\nexport function isIP(value: string): 0 | 4 | 6 {\n if (isIPv4(value)) return 4;\n if (isIPv6(value)) return 6;\n return 0;\n}\n\n/**\n * IP rule - validates IP address (v4 or v6)\n */\nexport const ipRule: SchemaRule = {\n name: \"ip\",\n defaultErrorMessage: \"The :input must be a valid IP address\",\n async validate(value: any, context) {\n if (isIP(value)) {\n return VALID_RULE;\n }\n return invalidRule(this, context);\n },\n};\n\n/**\n * IPv4 rule - validates IPv4 address\n */\nexport const ip4Rule: SchemaRule = {\n name: \"ip4\",\n defaultErrorMessage: \"The :input must be a valid IPv4 address\",\n async validate(value: any, context) {\n if (isIP(value) === 4) {\n return VALID_RULE;\n }\n return invalidRule(this, context);\n },\n};\n\n/**\n * IPv6 rule - validates IPv6 address\n */\nexport const ip6Rule: SchemaRule = {\n name: \"ip6\",\n defaultErrorMessage: \"The :input must be a valid IPv6 address\",\n async validate(value: any, context) {\n if (isIP(value) === 6) {\n return VALID_RULE;\n }\n return invalidRule(this, context);\n },\n};\n"],"mappings":";;;;;;;;;AAQA,MAAM,QAAQ;AACd,MAAM,QAAQ,IAAI,MAAM,SAAS;AACjC,MAAM,UAAU,IAAI,OAAO,IAAI,MAAM,EAAE;AAEvC,MAAM,QAAQ;AACd,MAAM,UAAU,IAAI,OAClB,QACQ,MAAM,UAAU,MAAM,SACtB,MAAM,UAAU,MAAM,IAAI,MAAM,SAChC,MAAM,WAAW,MAAM,KAAK,MAAM,eAClC,MAAM,YAAY,MAAM,SAAS,MAAM,KAAK,MAAM,eAClD,MAAM,YAAY,MAAM,SAAS,MAAM,KAAK,MAAM,eAClD,MAAM,YAAY,MAAM,SAAS,MAAM,KAAK,MAAM,eAClD,MAAM,YAAY,MAAM,SAAS,MAAM,KAAK,MAAM,qBAC5C,MAAM,SAAS,MAAM,OAAO,MAAM,oCAElD;AAEA,SAAgB,OAAO,OAAwB;CAC7C,OAAO,QAAQ,KAAK,KAAK;AAC3B;AAEA,SAAgB,OAAO,OAAwB;CAC7C,OAAO,QAAQ,KAAK,KAAK;AAC3B;;;;;AAMA,SAAgB,KAAK,OAA0B;CAC7C,IAAI,OAAO,KAAK,GAAG,OAAO;CAC1B,IAAI,OAAO,KAAK,GAAG,OAAO;CAC1B,OAAO;AACT;;;;AAKA,MAAa,SAAqB;CAChC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,KAAK,KAAK,GACZ,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,UAAsB;CACjC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,KAAK,KAAK,MAAM,GAClB,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,UAAsB;CACjC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,KAAK,KAAK,MAAM,GAClB,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/pattern.ts
|
|
5
5
|
/**
|
|
6
6
|
* Pattern rule - validates against regex pattern
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/pattern.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Pattern rule - validates against regex pattern\r\n */\r\nexport const patternRule: SchemaRule<{ pattern: RegExp }> = {\r\n name: \"pattern\",\r\n defaultErrorMessage: \"The :input does not match the required pattern\",\r\n async validate(value: any, context) {\r\n if (this.context.options.pattern.test(value)) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translationParams.pattern = this.context.options.pattern.toString();\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,cAA+C;CAC1D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,KAAK,QAAQ,QAAQ,QAAQ,KAAK,KAAK,GACzC,OAAO;EAGT,KAAK,QAAQ,kBAAkB,UAAU,KAAK,QAAQ,QAAQ,QAAQ,SAAS;EAC/E,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/string-comparison.ts
|
|
5
5
|
/**
|
|
6
6
|
* Starts with rule
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-comparison.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/string-comparison.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Starts with rule\r\n */\r\nexport const startsWithRule: SchemaRule<{ value: string }> = {\r\n name: \"startsWith\",\r\n defaultErrorMessage: \"The :input must start with :value\",\r\n async validate(value: any, context) {\r\n if (String(value).startsWith(this.context.options.value)) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.value = this.context.options.value;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Ends with rule\r\n */\r\nexport const endsWithRule: SchemaRule<{ value: string }> = {\r\n name: \"endsWith\",\r\n defaultErrorMessage: \"The :input must end with :value\",\r\n async validate(value: any, context) {\r\n if (String(value).endsWith(this.context.options.value)) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.value = this.context.options.value;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Contains rule\r\n */\r\nexport const containsRule: SchemaRule<{ value: string }> = {\r\n name: \"contains\",\r\n defaultErrorMessage: \"The :input must contain :value\",\r\n async validate(value: any, context) {\r\n if (String(value).includes(this.context.options.value)) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.value = this.context.options.value;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n\r\n/**\r\n * Not contains rule\r\n */\r\nexport const notContainsRule: SchemaRule<{ value: string }> = {\r\n name: \"notContains\",\r\n defaultErrorMessage: \"The :input must not contain :value\",\r\n async validate(value: any, context) {\r\n if (!String(value).includes(this.context.options.value)) {\r\n return VALID_RULE;\r\n }\r\n\r\n this.context.translatableParams.value = this.context.options.value;\r\n\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,iBAAgD;CAC3D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,WAAW,KAAK,QAAQ,QAAQ,KAAK,GACrD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAA8C;CACzD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACnD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,eAA8C;CACzD,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACnD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,kBAAiD;CAC5D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,QAAQ,QAAQ,KAAK,GACpD,OAAO;EAGT,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,QAAQ,QAAQ;EAE7D,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/strong-password-rule.ts
|
|
5
5
|
/**
|
|
6
6
|
* Strong Password rule - validates password strength
|
|
7
7
|
* Requirements:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strong-password-rule.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/strong-password-rule.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Strong Password rule - validates password strength\r\n * Requirements:\r\n * - At least 8 characters\r\n * - At least 1 uppercase letter\r\n * - At least 1 lowercase letter\r\n * - At least 1 number\r\n * - At least 1 special character\r\n */\r\nexport const strongPasswordRule: SchemaRule<{ minLength?: number }> = {\r\n name: \"strongPassword\",\r\n defaultErrorMessage:\r\n \"The :input must be at least 8 characters and contain at least one uppercase letter, one lowercase letter, one number, and one special character\",\r\n async validate(value: any, context) {\r\n const password = String(value);\r\n const minLength = this.context.options.minLength ?? 8;\r\n\r\n // Check minimum length\r\n if (password.length < minLength) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n // Check for at least one uppercase letter\r\n if (!/[A-Z]/.test(password)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n // Check for at least one lowercase letter\r\n if (!/[a-z]/.test(password)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n // Check for at least one number\r\n if (!/[0-9]/.test(password)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n // Check for at least one special character\r\n if (!/[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/.test(password)) {\r\n return invalidRule(this, context);\r\n }\r\n\r\n return VALID_RULE;\r\n },\r\n};\r\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAa,qBAAyD;CACpE,MAAM;CACN,qBACE;CACF,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,WAAW,OAAO,KAAK;EAC7B,MAAM,YAAY,KAAK,QAAQ,QAAQ,aAAa;EAGpD,IAAI,SAAS,SAAS,WACpB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,sCAAsC,KAAK,QAAQ,GACtD,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/url.ts
|
|
5
5
|
/**
|
|
6
6
|
* URL rule - validates URL format
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/url.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * URL rule - validates URL format\r\n */\r\nexport const urlRule: SchemaRule = {\r\n name: \"url\",\r\n defaultErrorMessage: \"The :input must be a valid URL\",\r\n async validate(value: any, context) {\r\n try {\r\n new URL(value);\r\n return VALID_RULE;\r\n } catch {\r\n return invalidRule(this, context);\r\n }\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,UAAsB;CACjC,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI;GACF,IAAI,IAAI,KAAK;GACb,OAAO;EACT,QAAQ;GACN,OAAO,YAAY,MAAM,OAAO;EAClC;CACF;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VALID_RULE, invalidRule } from "../../helpers/validation-helpers.mjs";
|
|
2
2
|
import "../../helpers/index.mjs";
|
|
3
3
|
|
|
4
|
-
//#region ../
|
|
4
|
+
//#region ../seal/src/rules/string/without-whitespace.ts
|
|
5
5
|
/**
|
|
6
6
|
* Without whitespace rule - value must not contain whitespace
|
|
7
7
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"without-whitespace.mjs","names":[],"sources":["../../../../../../../../../../seal/src/rules/string/without-whitespace.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Without whitespace rule - value must not contain whitespace\r\n */\r\nexport const withoutWhitespaceRule: SchemaRule = {\r\n name: \"withoutWhitespace\",\r\n defaultErrorMessage: \"The :input must not contain whitespace\",\r\n async validate(value: any, context) {\r\n if (!/\\s/.test(value)) {\r\n return VALID_RULE;\r\n }\r\n return invalidRule(this, context);\r\n },\r\n};\r\n"],"mappings":";;;;;;;AAMA,MAAa,wBAAoC;CAC/C,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,IAAI,CAAC,KAAK,KAAK,KAAK,GAClB,OAAO;EAET,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema.mjs","names":[],"sources":["../../../../../../../../../seal/src/standard-schema/json-schema.ts"],"sourcesContent":["import type { StandardJSONSchemaV1 } from \"./types\";\n\n/**\n * Supported JSON Schema generation targets.\n */\nexport type JsonSchemaTarget = StandardJSONSchemaV1.Target;\n\n/**\n * The result shape for a generated JSON Schema.\n */\nexport type JsonSchemaResult = Record<string, unknown>;\n\n/**\n * Apply nullable to a JSON Schema object based on the target dialect.\n *\n * - draft-2020-12 : `type` becomes an array: `[\"string\", \"null\"]`\n * - openai-strict : same as draft-2020-12 (type array form)\n * - draft-07 : wraps in `oneOf: [{ ...schema }, { type: \"null\" }]`\n * - openapi-3.0 : adds `nullable: true` alongside the existing type\n *\n * Mutates the schema in-place.\n *\n * @example\n * ```ts\n * const schema = { type: \"string\" };\n * applyNullable(schema, \"draft-2020-12\");\n * // → { type: [\"string\", \"null\"] }\n * ```\n */\nexport function applyNullable(schema: JsonSchemaResult, target: JsonSchemaTarget): void {\n if (target === \"openapi-3.0\") {\n schema.nullable = true;\n return;\n }\n\n if (target === \"draft-2020-12\" || target === \"openai-strict\") {\n const baseType = schema.type as string | string[] | undefined;\n schema.type = Array.isArray(baseType)\n ? [...baseType, \"null\"]\n : [baseType as string, \"null\"];\n return;\n }\n\n // draft-07: oneOf wrapping\n const copy = { ...schema };\n for (const key of Object.keys(schema)) {\n delete schema[key];\n }\n schema.oneOf = [copy, { type: \"null\" }];\n}\n\n/**\n * Wrap a field schema as nullable for OpenAI strict mode.\n *\n * OpenAI strict requires optional fields to be expressed as a nullable type\n * rather than being omitted from the `required` array. This helper wraps a\n * given schema into its nullable equivalent using the type-array form.\n *\n * Unlike `applyNullable()` (which mutates in-place), this returns a new\n * schema object to avoid side effects when wrapping child schemas.\n *\n * @example\n * ```ts\n * wrapNullableStrict({ type: \"string\", minLength: 3 })\n * // → { type: [\"string\", \"null\"], minLength: 3 }\n *\n * wrapNullableStrict({ type: \"object\", properties: {...} })\n * // → { type: [\"object\", \"null\"], properties: {...} }\n *\n * wrapNullableStrict({ oneOf: [...] })\n * // → { oneOf: [..., { type: \"null\" }] }\n * ```\n */\nexport function wrapNullableStrict(schema: JsonSchemaResult): JsonSchemaResult {\n // If the schema uses oneOf/anyOf (e.g. union), append null to the list\n if (schema.oneOf) {\n return { ...schema, oneOf: [...(schema.oneOf as unknown[]), { type: \"null\" }] };\n }\n\n if (schema.anyOf) {\n return { ...schema, anyOf: [...(schema.anyOf as unknown[]), { type: \"null\" }] };\n }\n\n // If there's no type at all (permissive `{}`), stay permissive\n if (schema.type === undefined) {\n return schema;\n }\n\n // Standard case: wrap type into array with null\n const baseType = schema.type as string | string[];\n return {\n ...schema,\n type: Array.isArray(baseType) ? [...baseType, \"null\"] : [baseType, \"null\"],\n };\n}\n\n/**\n * Find the first rule matching the given name in a rules array,\n * and return its options bag.\n */\nexport function getRuleOptions(\n rules: Array<{ name: string; context: { options: Record<string, unknown> } }>,\n ruleName: string,\n): Record<string, unknown> | undefined {\n const rule = rules.find(r => r.name === ruleName);\n return rule?.context?.options as Record<string, unknown> | undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6BA,SAAgB,cAAc,QAA0B,QAAgC;CACtF,IAAI,WAAW,eAAe;EAC5B,OAAO,WAAW;EAClB;CACF;CAEA,IAAI,WAAW,mBAAmB,WAAW,iBAAiB;EAC5D,MAAM,WAAW,OAAO;EACxB,OAAO,OAAO,MAAM,QAAQ,QAAQ,IAChC,CAAC,GAAG,UAAU,MAAM,IACpB,CAAC,UAAoB,MAAM;EAC/B;CACF;CAGA,MAAM,OAAO,EAAE,GAAG,OAAO;CACzB,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,OAAO,OAAO;CAEhB,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC;AACxC;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,mBAAmB,QAA4C;CAE7E,IAAI,OAAO,OACT,OAAO;EAAE,GAAG;EAAQ,OAAO,CAAC,GAAI,OAAO,OAAqB,EAAE,MAAM,OAAO,CAAC;CAAE;CAGhF,IAAI,OAAO,OACT,OAAO;EAAE,GAAG;EAAQ,OAAO,CAAC,GAAI,OAAO,OAAqB,EAAE,MAAM,OAAO,CAAC;CAAE;CAIhF,IAAI,OAAO,SAAS,QAClB,OAAO;CAIT,MAAM,WAAW,OAAO;CACxB,OAAO;EACL,GAAG;EACH,MAAM,MAAM,QAAQ,QAAQ,IAAI,CAAC,GAAG,UAAU,MAAM,IAAI,CAAC,UAAU,MAAM;CAC3E;AACF;;;;;AAMA,SAAgB,eACd,OACA,UACqC;CAErC,OADa,MAAM,MAAK,MAAK,EAAE,SAAS,QAC9B,CAAC,EAAE,SAAS;AACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-result.mjs","names":[],"sources":["../../../../../../../../../seal/src/standard-schema/map-result.ts"],"sourcesContent":["import type { ValidationResult } from \"../types\";\nimport type { StandardSchemaV1 } from \"./types\";\n\n/**\n * Maps a Seal ValidationResult to a Standard Schema result shape.\n *\n * Seal error paths are dot-notation strings (e.g. \"address.city\").\n * Standard Schema expects an array of path segments: [{ key: \"address\" }, { key: \"city\" }].\n *\n * @example\n * ```ts\n * const result = await validator.validate(value, context);\n * return mapToStandardResult(result);\n * // Success → { value: <data> }\n * // Failure → { issues: [{ message: \"...\", path: [{ key: \"...\" }] }] }\n * ```\n */\nexport function mapToStandardResult(\n result: ValidationResult,\n): StandardSchemaV1.Result<unknown> {\n if (result.isValid) {\n return { value: result.data };\n }\n\n return {\n issues: result.errors.map(e => ({\n message: e.error,\n path: e.input\n ? e.input.split(\".\").map(key => ({ key }))\n : undefined,\n })),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,SAAgB,oBACd,QACkC;CAClC,IAAI,OAAO,SACT,OAAO,EAAE,OAAO,OAAO,KAAK;CAG9B,OAAO,EACL,QAAQ,OAAO,OAAO,KAAI,OAAM;EAC9B,SAAS,EAAE;EACX,MAAM,EAAE,QACJ,EAAE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAI,SAAQ,EAAE,IAAI,EAAE,IACvC;CACN,EAAE,EACJ;AACF"}
|