@warlock.js/notifications 4.15.0 → 5.0.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 +12 -0
- package/cjs/channel_api-CH3DxhRU.cjs +7463 -0
- package/cjs/channel_api-CH3DxhRU.cjs.map +1 -0
- package/cjs/chunk-fl3r8ClO.cjs +41 -0
- package/cjs/index.cjs +34 -4
- package/cjs/index.cjs.map +1 -1
- package/cjs/rabbitmq-driver-CJtyxjUQ.cjs +3 -0
- package/cjs/src-Cus6pYPC.cjs +10981 -0
- package/cjs/src-Cus6pYPC.cjs.map +1 -0
- package/esm/_virtual/_rolldown/runtime.mjs +32 -0
- package/esm/herald/src/communicators/broker-registry.mjs +204 -0
- package/esm/herald/src/communicators/broker-registry.mjs.map +1 -0
- package/esm/herald/src/communicators/broker.mjs +110 -0
- package/esm/herald/src/communicators/broker.mjs.map +1 -0
- package/esm/herald/src/communicators/index.mjs +4 -0
- package/esm/herald/src/decorators/consumable.mjs +36 -0
- 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/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs +403 -0
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs +303 -0
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
- package/esm/herald/src/index.mjs +16 -0
- package/esm/herald/src/message-managers/event-consumer.mjs +76 -0
- package/esm/herald/src/message-managers/event-consumer.mjs.map +1 -0
- package/esm/herald/src/message-managers/event-message.mjs +85 -0
- package/esm/herald/src/message-managers/event-message.mjs.map +1 -0
- package/esm/herald/src/message-managers/index.mjs +4 -0
- package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs +42 -0
- package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs.map +1 -0
- package/esm/herald/src/use-case-broadcast.mjs +30 -0
- package/esm/herald/src/use-case-broadcast.mjs.map +1 -0
- package/esm/herald/src/utils/connect-to-broker.mjs +168 -0
- package/esm/herald/src/utils/connect-to-broker.mjs.map +1 -0
- package/esm/herald/src/utils/index.mjs +3 -0
- package/esm/in-app/base-notifications-repository.d.mts +15 -1
- package/esm/in-app/base-notifications-repository.d.mts.map +1 -1
- package/esm/in-app/base-notifications-repository.mjs +33 -3
- package/esm/in-app/base-notifications-repository.mjs.map +1 -1
- package/esm/in-app/in-app.d.mts +3 -3
- package/esm/in-app/in-app.d.mts.map +1 -1
- package/esm/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs +6 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/bool.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/color.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/date.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/float.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/id.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/int.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/nanoid.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/pick.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/random.mjs +16 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/sample.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/string.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/token.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/uuid.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/Random/weighted.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/async/retry.mjs +3 -0
- package/esm/node_modules/@mongez/reinforcements/esm/index.mjs +24 -0
- package/esm/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs +82 -0
- package/esm/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/number/round.mjs +17 -0
- package/esm/node_modules/@mongez/reinforcements/esm/number/round.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/except.mjs +13 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/except.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/get.mjs +18 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/get.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/omit.mjs +17 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/omit.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/unset.mjs +30 -0
- package/esm/node_modules/@mongez/reinforcements/esm/object/unset.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs +19 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs +18 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs +14 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs +18 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs +22 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs +17 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs +21 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs +21 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/trim.mjs +20 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/trim.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs +15 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/words.mjs +25 -0
- package/esm/node_modules/@mongez/reinforcements/esm/string/words.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs +11 -0
- package/esm/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs +100 -0
- package/esm/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs.map +1 -0
- package/esm/node_modules/@mongez/reinforcements/esm/utils/tap.mjs +27 -0
- package/esm/node_modules/@mongez/reinforcements/esm/utils/tap.mjs.map +1 -0
- package/esm/node_modules/@mongez/supportive-is/esm/index.mjs +353 -0
- package/esm/node_modules/@mongez/supportive-is/esm/index.mjs.map +1 -0
- package/esm/node_modules/amqplib/channel_api.mjs +28 -0
- package/esm/node_modules/amqplib/channel_api.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/api_args.mjs +241 -0
- package/esm/node_modules/amqplib/lib/api_args.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/bitset.mjs +130 -0
- package/esm/node_modules/amqplib/lib/bitset.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/channel.mjs +302 -0
- package/esm/node_modules/amqplib/lib/channel.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/channel_model.mjs +206 -0
- package/esm/node_modules/amqplib/lib/channel_model.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/codec.mjs +273 -0
- package/esm/node_modules/amqplib/lib/codec.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/connect.mjs +143 -0
- package/esm/node_modules/amqplib/lib/connect.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/connection.mjs +416 -0
- package/esm/node_modules/amqplib/lib/connection.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/credentials.mjs +50 -0
- package/esm/node_modules/amqplib/lib/credentials.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/defs.mjs +4600 -0
- package/esm/node_modules/amqplib/lib/defs.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/error.mjs +29 -0
- package/esm/node_modules/amqplib/lib/error.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/format.mjs +28 -0
- package/esm/node_modules/amqplib/lib/format.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/frame.mjs +130 -0
- package/esm/node_modules/amqplib/lib/frame.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/heartbeat.mjs +40 -0
- package/esm/node_modules/amqplib/lib/heartbeat.mjs.map +1 -0
- package/esm/node_modules/amqplib/lib/mux.mjs +86 -0
- package/esm/node_modules/amqplib/lib/mux.mjs.map +1 -0
- package/esm/node_modules/amqplib/package.mjs +41 -0
- package/esm/node_modules/amqplib/package.mjs.map +1 -0
- package/esm/node_modules/buffer-more-ints/buffer-more-ints.mjs +360 -0
- package/esm/node_modules/buffer-more-ints/buffer-more-ints.mjs.map +1 -0
- package/esm/node_modules/dayjs/dayjs.min.mjs +305 -0
- package/esm/node_modules/dayjs/dayjs.min.mjs.map +1 -0
- package/esm/node_modules/querystringify/index.mjs +80 -0
- package/esm/node_modules/querystringify/index.mjs.map +1 -0
- package/esm/node_modules/requires-port/index.mjs +35 -0
- package/esm/node_modules/requires-port/index.mjs.map +1 -0
- package/esm/node_modules/url-parse/index.mjs +388 -0
- package/esm/node_modules/url-parse/index.mjs.map +1 -0
- package/esm/queue/load-herald.mjs +1 -1
- package/esm/seal/src/config.mjs +15 -0
- package/esm/seal/src/config.mjs.map +1 -0
- package/esm/seal/src/factory/index.mjs +4 -0
- package/esm/seal/src/factory/validate.mjs +34 -0
- package/esm/seal/src/factory/validate.mjs.map +1 -0
- package/esm/seal/src/factory/validators.mjs +132 -0
- package/esm/seal/src/factory/validators.mjs.map +1 -0
- package/esm/seal/src/helpers/date-helpers.mjs +24 -0
- package/esm/seal/src/helpers/date-helpers.mjs.map +1 -0
- package/esm/seal/src/helpers/get-field-value.mjs +46 -0
- 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/seal/src/helpers/path-helpers.mjs +12 -0
- package/esm/seal/src/helpers/path-helpers.mjs.map +1 -0
- package/esm/seal/src/helpers/validation-helpers.mjs +72 -0
- package/esm/seal/src/helpers/validation-helpers.mjs.map +1 -0
- package/esm/seal/src/index.mjs +87 -0
- package/esm/seal/src/mutators/array-mutators.mjs +32 -0
- package/esm/seal/src/mutators/array-mutators.mjs.map +1 -0
- package/esm/seal/src/mutators/date-mutators.mjs +94 -0
- package/esm/seal/src/mutators/date-mutators.mjs.map +1 -0
- package/esm/seal/src/mutators/index.mjs +8 -0
- package/esm/seal/src/mutators/number-mutators.mjs +52 -0
- package/esm/seal/src/mutators/number-mutators.mjs.map +1 -0
- package/esm/seal/src/mutators/object-mutators.mjs +30 -0
- 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/seal/src/mutators/string-mutators.mjs +186 -0
- package/esm/seal/src/mutators/string-mutators.mjs.map +1 -0
- package/esm/seal/src/rules/array/array-rules.mjs +41 -0
- package/esm/seal/src/rules/array/array-rules.mjs.map +1 -0
- package/esm/seal/src/rules/array/index.mjs +3 -0
- package/esm/seal/src/rules/color/color-rules.mjs +104 -0
- package/esm/seal/src/rules/color/color-rules.mjs.map +1 -0
- package/esm/seal/src/rules/color/index.mjs +3 -0
- package/esm/seal/src/rules/common/enum.mjs +77 -0
- package/esm/seal/src/rules/common/enum.mjs.map +1 -0
- package/esm/seal/src/rules/common/equals-field-rules.mjs +42 -0
- 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/seal/src/rules/common/instanceof.mjs +23 -0
- package/esm/seal/src/rules/common/instanceof.mjs.map +1 -0
- package/esm/seal/src/rules/common/literal.mjs +31 -0
- package/esm/seal/src/rules/common/literal.mjs.map +1 -0
- package/esm/seal/src/rules/common/type-rules.mjs +97 -0
- package/esm/seal/src/rules/common/type-rules.mjs.map +1 -0
- package/esm/seal/src/rules/common/unknown-key.mjs +25 -0
- package/esm/seal/src/rules/common/unknown-key.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/forbidden-if-rules.mjs +116 -0
- 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/seal/src/rules/conditional/present-if-rules.mjs +97 -0
- package/esm/seal/src/rules/conditional/present-if-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/present-unless-rules.mjs +30 -0
- package/esm/seal/src/rules/conditional/present-unless-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/present-with-rules.mjs +76 -0
- package/esm/seal/src/rules/conditional/present-with-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/present-without-rules.mjs +76 -0
- package/esm/seal/src/rules/conditional/present-without-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/required-if-rules.mjs +204 -0
- package/esm/seal/src/rules/conditional/required-if-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/required-unless-rules.mjs +31 -0
- package/esm/seal/src/rules/conditional/required-unless-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/required-when-rule.mjs +32 -0
- package/esm/seal/src/rules/conditional/required-when-rule.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/required-with-rules.mjs +67 -0
- package/esm/seal/src/rules/conditional/required-with-rules.mjs.map +1 -0
- package/esm/seal/src/rules/conditional/required-without-rules.mjs +67 -0
- package/esm/seal/src/rules/conditional/required-without-rules.mjs.map +1 -0
- package/esm/seal/src/rules/core/equal.mjs +22 -0
- package/esm/seal/src/rules/core/equal.mjs.map +1 -0
- package/esm/seal/src/rules/core/forbidden.mjs +20 -0
- package/esm/seal/src/rules/core/forbidden.mjs.map +1 -0
- package/esm/seal/src/rules/core/index.mjs +7 -0
- package/esm/seal/src/rules/core/required.mjs +36 -0
- package/esm/seal/src/rules/core/required.mjs.map +1 -0
- package/esm/seal/src/rules/core/union.mjs +30 -0
- package/esm/seal/src/rules/core/union.mjs.map +1 -0
- package/esm/seal/src/rules/core/when.mjs +37 -0
- package/esm/seal/src/rules/core/when.mjs.map +1 -0
- package/esm/seal/src/rules/date/date-comparison-rules.mjs +78 -0
- package/esm/seal/src/rules/date/date-comparison-rules.mjs.map +1 -0
- package/esm/seal/src/rules/date/date-day-rules.mjs +49 -0
- package/esm/seal/src/rules/date/date-day-rules.mjs.map +1 -0
- package/esm/seal/src/rules/date/date-field-comparison-rules.mjs +82 -0
- package/esm/seal/src/rules/date/date-field-comparison-rules.mjs.map +1 -0
- package/esm/seal/src/rules/date/date-period-rules.mjs +399 -0
- package/esm/seal/src/rules/date/date-period-rules.mjs.map +1 -0
- package/esm/seal/src/rules/date/date-relative-rules.mjs +55 -0
- package/esm/seal/src/rules/date/date-relative-rules.mjs.map +1 -0
- package/esm/seal/src/rules/date/date-special-rules.mjs +58 -0
- package/esm/seal/src/rules/date/date-special-rules.mjs.map +1 -0
- package/esm/seal/src/rules/date/date.mjs +235 -0
- 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/file/dimensions.mjs +3 -0
- package/esm/seal/src/rules/file/file-size.mjs +3 -0
- package/esm/seal/src/rules/file/index.mjs +4 -0
- package/esm/seal/src/rules/index.mjs +54 -0
- package/esm/seal/src/rules/length/index.mjs +3 -0
- package/esm/seal/src/rules/length/length-rules.mjs +98 -0
- package/esm/seal/src/rules/length/length-rules.mjs.map +1 -0
- package/esm/seal/src/rules/number/index.mjs +3 -0
- package/esm/seal/src/rules/number/number-rules.mjs +197 -0
- package/esm/seal/src/rules/number/number-rules.mjs.map +1 -0
- package/esm/seal/src/rules/scalar/accepted-rule.mjs +116 -0
- package/esm/seal/src/rules/scalar/accepted-rule.mjs.map +1 -0
- package/esm/seal/src/rules/scalar/declined-rule.mjs +116 -0
- package/esm/seal/src/rules/scalar/declined-rule.mjs.map +1 -0
- package/esm/seal/src/rules/scalar/index.mjs +4 -0
- package/esm/seal/src/rules/string/alpha.mjs +41 -0
- package/esm/seal/src/rules/string/alpha.mjs.map +1 -0
- package/esm/seal/src/rules/string/credit-card.mjs +32 -0
- package/esm/seal/src/rules/string/credit-card.mjs.map +1 -0
- package/esm/seal/src/rules/string/email.mjs +20 -0
- package/esm/seal/src/rules/string/email.mjs.map +1 -0
- package/esm/seal/src/rules/string/id-formats.mjs +104 -0
- package/esm/seal/src/rules/string/id-formats.mjs.map +1 -0
- package/esm/seal/src/rules/string/index.mjs +13 -0
- package/esm/seal/src/rules/string/ip.mjs +66 -0
- package/esm/seal/src/rules/string/ip.mjs.map +1 -0
- package/esm/seal/src/rules/string/matches.mjs +4 -0
- package/esm/seal/src/rules/string/pattern.mjs +20 -0
- package/esm/seal/src/rules/string/pattern.mjs.map +1 -0
- package/esm/seal/src/rules/string/string-comparison.mjs +56 -0
- package/esm/seal/src/rules/string/string-comparison.mjs.map +1 -0
- package/esm/seal/src/rules/string/strong-password-rule.mjs +31 -0
- package/esm/seal/src/rules/string/strong-password-rule.mjs.map +1 -0
- package/esm/seal/src/rules/string/url.mjs +23 -0
- package/esm/seal/src/rules/string/url.mjs.map +1 -0
- package/esm/seal/src/rules/string/without-whitespace.mjs +19 -0
- package/esm/seal/src/rules/string/without-whitespace.mjs.map +1 -0
- package/esm/seal/src/standard-schema/json-schema.mjs +81 -0
- package/esm/seal/src/standard-schema/json-schema.mjs.map +1 -0
- package/esm/seal/src/standard-schema/map-result.mjs +26 -0
- package/esm/seal/src/standard-schema/map-result.mjs.map +1 -0
- package/esm/seal/src/types/date-types.mjs +17 -0
- package/esm/seal/src/types/date-types.mjs.map +1 -0
- package/esm/seal/src/validators/any-validator.mjs +38 -0
- package/esm/seal/src/validators/any-validator.mjs.map +1 -0
- package/esm/seal/src/validators/array-validator.mjs +177 -0
- package/esm/seal/src/validators/array-validator.mjs.map +1 -0
- package/esm/seal/src/validators/base-validator.mjs +691 -0
- package/esm/seal/src/validators/base-validator.mjs.map +1 -0
- package/esm/seal/src/validators/boolean-validator.mjs +126 -0
- package/esm/seal/src/validators/boolean-validator.mjs.map +1 -0
- package/esm/seal/src/validators/computed-validator.mjs +118 -0
- package/esm/seal/src/validators/computed-validator.mjs.map +1 -0
- package/esm/seal/src/validators/date-validator.mjs +639 -0
- package/esm/seal/src/validators/date-validator.mjs.map +1 -0
- package/esm/seal/src/validators/discriminated-union-validator.mjs +129 -0
- package/esm/seal/src/validators/discriminated-union-validator.mjs.map +1 -0
- package/esm/seal/src/validators/float-validator.mjs +18 -0
- package/esm/seal/src/validators/float-validator.mjs.map +1 -0
- package/esm/seal/src/validators/index.mjs +28 -0
- package/esm/seal/src/validators/instanceof-validator.mjs +64 -0
- package/esm/seal/src/validators/instanceof-validator.mjs.map +1 -0
- package/esm/seal/src/validators/int-validator.mjs +30 -0
- package/esm/seal/src/validators/int-validator.mjs.map +1 -0
- package/esm/seal/src/validators/lazy-validator.mjs +87 -0
- package/esm/seal/src/validators/lazy-validator.mjs.map +1 -0
- package/esm/seal/src/validators/literal-validator.mjs +71 -0
- package/esm/seal/src/validators/literal-validator.mjs.map +1 -0
- package/esm/seal/src/validators/managed-validator.mjs +39 -0
- package/esm/seal/src/validators/managed-validator.mjs.map +1 -0
- package/esm/seal/src/validators/methods/equality-conditional-methods.mjs +129 -0
- package/esm/seal/src/validators/methods/equality-conditional-methods.mjs.map +1 -0
- package/esm/seal/src/validators/methods/forbidden-methods.mjs +131 -0
- package/esm/seal/src/validators/methods/forbidden-methods.mjs.map +1 -0
- package/esm/seal/src/validators/methods/present-methods.mjs +235 -0
- package/esm/seal/src/validators/methods/present-methods.mjs.map +1 -0
- package/esm/seal/src/validators/methods/required-methods.mjs +347 -0
- package/esm/seal/src/validators/methods/required-methods.mjs.map +1 -0
- package/esm/seal/src/validators/number-validator.mjs +310 -0
- package/esm/seal/src/validators/number-validator.mjs.map +1 -0
- package/esm/seal/src/validators/numeric-validator.mjs +27 -0
- package/esm/seal/src/validators/numeric-validator.mjs.map +1 -0
- package/esm/seal/src/validators/object-validator.mjs +442 -0
- package/esm/seal/src/validators/object-validator.mjs.map +1 -0
- package/esm/seal/src/validators/primitive-validator.mjs +89 -0
- package/esm/seal/src/validators/primitive-validator.mjs.map +1 -0
- package/esm/seal/src/validators/record-validator.mjs +112 -0
- package/esm/seal/src/validators/record-validator.mjs.map +1 -0
- package/esm/seal/src/validators/scalar-validator.mjs +172 -0
- package/esm/seal/src/validators/scalar-validator.mjs.map +1 -0
- package/esm/seal/src/validators/string-validator.mjs +459 -0
- package/esm/seal/src/validators/string-validator.mjs.map +1 -0
- package/esm/seal/src/validators/tuple-validator.mjs +134 -0
- package/esm/seal/src/validators/tuple-validator.mjs.map +1 -0
- package/esm/seal/src/validators/union-validator.mjs +66 -0
- package/esm/seal/src/validators/union-validator.mjs.map +1 -0
- package/llms-full.txt +5 -1
- package/package.json +5 -5
- package/skills/send-ad-hoc/SKILL.md +1 -1
- package/skills/use-in-app/SKILL.md +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"except.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/object/except.mjs"],"sourcesContent":["import omit from \"./omit.mjs\";\n\n//#region ../reinforcements/src/object/except.ts\n/**\n* @deprecated Use {@link omit} instead. Will be removed in a future major release.\n*/\nfunction except(object, keys) {\n\treturn omit(object, keys);\n}\n\n//#endregion\nexport { except as default };\n//# sourceMappingURL=except.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;AAMA,SAAS,OAAO,QAAQ,MAAM;CAC7B,OAAO,KAAK,QAAQ,IAAI;AACzB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region ../node_modules/@mongez/reinforcements/esm/object/get.mjs
|
|
2
|
+
function get(object, path, defaultValue) {
|
|
3
|
+
if (object === null || object === void 0) return defaultValue;
|
|
4
|
+
if (path === "") return defaultValue;
|
|
5
|
+
const segments = path.split(".");
|
|
6
|
+
let current = object;
|
|
7
|
+
for (const key of segments) {
|
|
8
|
+
if (current === null || current === void 0) return defaultValue;
|
|
9
|
+
if (typeof current !== "object") return defaultValue;
|
|
10
|
+
if (!Object.prototype.hasOwnProperty.call(current, key)) return defaultValue;
|
|
11
|
+
current = current[key];
|
|
12
|
+
}
|
|
13
|
+
return current === void 0 ? defaultValue : current;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { get };
|
|
18
|
+
//# sourceMappingURL=get.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/object/get.mjs"],"sourcesContent":["//#region ../reinforcements/src/object/get.ts\nfunction get(object, path, defaultValue) {\n\tif (object === null || object === void 0) return defaultValue;\n\tif (path === \"\") return defaultValue;\n\tconst segments = path.split(\".\");\n\tlet current = object;\n\tfor (const key of segments) {\n\t\tif (current === null || current === void 0) return defaultValue;\n\t\tif (typeof current !== \"object\") return defaultValue;\n\t\tif (!Object.prototype.hasOwnProperty.call(current, key)) return defaultValue;\n\t\tcurrent = current[key];\n\t}\n\treturn current === void 0 ? defaultValue : current;\n}\n\n//#endregion\nexport { get as default };\n//# sourceMappingURL=get.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,SAAS,IAAI,QAAQ,MAAM,cAAc;CACxC,IAAI,WAAW,QAAQ,WAAW,KAAK,GAAG,OAAO;CACjD,IAAI,SAAS,IAAI,OAAO;CACxB,MAAM,WAAW,KAAK,MAAM,GAAG;CAC/B,IAAI,UAAU;CACd,KAAK,MAAM,OAAO,UAAU;EAC3B,IAAI,YAAY,QAAQ,YAAY,KAAK,GAAG,OAAO;EACnD,IAAI,OAAO,YAAY,UAAU,OAAO;EACxC,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,SAAS,GAAG,GAAG,OAAO;EAChE,UAAU,QAAQ;CACnB;CACA,OAAO,YAAY,KAAK,IAAI,eAAe;AAC5C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { unset } from "./unset.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/object/omit.mjs
|
|
4
|
+
function omit(object, keysOrPredicate) {
|
|
5
|
+
if (!object || typeof object !== "object" || Array.isArray(object)) return object;
|
|
6
|
+
if (typeof keysOrPredicate === "function") return omitByPredicate(object, keysOrPredicate);
|
|
7
|
+
return unset({ ...object }, keysOrPredicate);
|
|
8
|
+
}
|
|
9
|
+
function omitByPredicate(object, predicate) {
|
|
10
|
+
const result = {};
|
|
11
|
+
for (const key of Object.keys(object)) if (!predicate(object[key], key)) result[key] = object[key];
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { omit };
|
|
17
|
+
//# sourceMappingURL=omit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omit.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/object/omit.mjs"],"sourcesContent":["import unset from \"./unset.mjs\";\n\n//#region ../reinforcements/src/object/omit.ts\nfunction omit(object, keysOrPredicate) {\n\tif (!object || typeof object !== \"object\" || Array.isArray(object)) return object;\n\tif (typeof keysOrPredicate === \"function\") return omitByPredicate(object, keysOrPredicate);\n\treturn unset({ ...object }, keysOrPredicate);\n}\nfunction omitByPredicate(object, predicate) {\n\tconst result = {};\n\tfor (const key of Object.keys(object)) if (!predicate(object[key], key)) result[key] = object[key];\n\treturn result;\n}\n\n//#endregion\nexport { omit as default };\n//# sourceMappingURL=omit.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;AAGA,SAAS,KAAK,QAAQ,iBAAiB;CACtC,IAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,MAAM,GAAG,OAAO;CAC3E,IAAI,OAAO,oBAAoB,YAAY,OAAO,gBAAgB,QAAQ,eAAe;CACzF,OAAO,MAAM,EAAE,GAAG,OAAO,GAAG,eAAe;AAC5C;AACA,SAAS,gBAAgB,QAAQ,WAAW;CAC3C,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,OAAO,MAAM,GAAG,GAAG,OAAO,OAAO,OAAO;CAC9F,OAAO;AACR"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { get } from "./get.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/object/unset.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Remove one or more dot-notation paths from `object`. Mutates and
|
|
6
|
+
* returns the input.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* unset({ a: 1, b: 2 }, ["a"]); // { b: 2 }
|
|
10
|
+
* unset({ a: { b: 1, c: 2 } }, ["a.b"]); // { a: { c: 2 } }
|
|
11
|
+
*/
|
|
12
|
+
function unset(object, keys) {
|
|
13
|
+
if (!object || typeof object !== "object" || Array.isArray(object)) return object;
|
|
14
|
+
for (const key of keys) deletePath(object, key);
|
|
15
|
+
return object;
|
|
16
|
+
}
|
|
17
|
+
function deletePath(object, path) {
|
|
18
|
+
const segments = path.split(".");
|
|
19
|
+
if (segments.length === 1) {
|
|
20
|
+
delete object[path];
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const lastKey = segments.pop();
|
|
24
|
+
const parent = get(object, segments.join("."));
|
|
25
|
+
if (parent && typeof parent === "object") delete parent[lastKey];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { unset };
|
|
30
|
+
//# sourceMappingURL=unset.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unset.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/object/unset.mjs"],"sourcesContent":["import get from \"./get.mjs\";\n\n//#region ../reinforcements/src/object/unset.ts\n/**\n* Remove one or more dot-notation paths from `object`. Mutates and\n* returns the input.\n*\n* @example\n* unset({ a: 1, b: 2 }, [\"a\"]); // { b: 2 }\n* unset({ a: { b: 1, c: 2 } }, [\"a.b\"]); // { a: { c: 2 } }\n*/\nfunction unset(object, keys) {\n\tif (!object || typeof object !== \"object\" || Array.isArray(object)) return object;\n\tfor (const key of keys) deletePath(object, key);\n\treturn object;\n}\nfunction deletePath(object, path) {\n\tconst segments = path.split(\".\");\n\tif (segments.length === 1) {\n\t\tdelete object[path];\n\t\treturn;\n\t}\n\tconst lastKey = segments.pop();\n\tconst parent = get(object, segments.join(\".\"));\n\tif (parent && typeof parent === \"object\") delete parent[lastKey];\n}\n\n//#endregion\nexport { unset as default };\n//# sourceMappingURL=unset.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;AAWA,SAAS,MAAM,QAAQ,MAAM;CAC5B,IAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,MAAM,GAAG,OAAO;CAC3E,KAAK,MAAM,OAAO,MAAM,WAAW,QAAQ,GAAG;CAC9C,OAAO;AACR;AACA,SAAS,WAAW,QAAQ,MAAM;CACjC,MAAM,WAAW,KAAK,MAAM,GAAG;CAC/B,IAAI,SAAS,WAAW,GAAG;EAC1B,OAAO,OAAO;EACd;CACD;CACA,MAAM,UAAU,SAAS,IAAI;CAC7B,MAAM,SAAS,IAAI,QAAQ,SAAS,KAAK,GAAG,CAAC;CAC7C,IAAI,UAAU,OAAO,WAAW,UAAU,OAAO,OAAO;AACzD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ucfirst } from "./ucfirst.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/capitalize.mjs
|
|
4
|
+
const WHITESPACE_RUN = /\s+/;
|
|
5
|
+
const WHITESPACE_GROUP = /(\s+)/;
|
|
6
|
+
/**
|
|
7
|
+
* Capitalize the first letter of each whitespace-separated word.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* capitalize("hello world"); // "Hello World"
|
|
11
|
+
*/
|
|
12
|
+
function capitalize(string) {
|
|
13
|
+
if (!string) return "";
|
|
14
|
+
return string.split(WHITESPACE_GROUP).map((part) => WHITESPACE_RUN.test(part) ? part : ucfirst(part)).join("");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { capitalize };
|
|
19
|
+
//# sourceMappingURL=capitalize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/capitalize.mjs"],"sourcesContent":["import ucfirst from \"./ucfirst.mjs\";\n\n//#region ../reinforcements/src/string/capitalize.ts\nconst WHITESPACE_RUN = /\\s+/;\nconst WHITESPACE_GROUP = /(\\s+)/;\n/**\n* Capitalize the first letter of each whitespace-separated word.\n*\n* @example\n* capitalize(\"hello world\"); // \"Hello World\"\n*/\nfunction capitalize(string) {\n\tif (!string) return \"\";\n\treturn string.split(WHITESPACE_GROUP).map((part) => WHITESPACE_RUN.test(part) ? part : ucfirst(part)).join(\"\");\n}\n\n//#endregion\nexport { capitalize as default };\n//# sourceMappingURL=capitalize.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;AAGA,MAAM,iBAAiB;AACvB,MAAM,mBAAmB;;;;;;;AAOzB,SAAS,WAAW,QAAQ;CAC3B,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO,OAAO,MAAM,gBAAgB,CAAC,CAAC,KAAK,SAAS,eAAe,KAAK,IAAI,IAAI,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAC9G"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { escapeRegex } from "../utils/escapeRegex.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/ltrim.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Remove the given needle from the start of string
|
|
6
|
+
*
|
|
7
|
+
* @param string needle
|
|
8
|
+
* @return string
|
|
9
|
+
*/
|
|
10
|
+
function ltrim(string, needle = " ") {
|
|
11
|
+
if (!string) return "";
|
|
12
|
+
const pattern = "^" + escapeRegex(needle) + "+", regex = new RegExp(pattern, "g");
|
|
13
|
+
return string.replace(regex, "");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { ltrim };
|
|
18
|
+
//# sourceMappingURL=ltrim.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ltrim.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/ltrim.mjs"],"sourcesContent":["import escapeRegex from \"../utils/escapeRegex.mjs\";\n\n//#region ../reinforcements/src/string/ltrim.ts\n/**\n* Remove the given needle from the start of string\n*\n* @param string needle\n* @return string\n*/\nfunction ltrim(string, needle = \" \") {\n\tif (!string) return \"\";\n\tconst pattern = \"^\" + escapeRegex(needle) + \"+\", regex = new RegExp(pattern, \"g\");\n\treturn string.replace(regex, \"\");\n}\n\n//#endregion\nexport { ltrim as default };\n//# sourceMappingURL=ltrim.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AASA,SAAS,MAAM,QAAQ,SAAS,KAAK;CACpC,IAAI,CAAC,QAAQ,OAAO;CACpB,MAAM,UAAU,MAAM,YAAY,MAAM,IAAI,KAAK,QAAQ,IAAI,OAAO,SAAS,GAAG;CAChF,OAAO,OAAO,QAAQ,OAAO,EAAE;AAChC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs
|
|
2
|
+
/**
|
|
3
|
+
* Cut string for the given length and append ... if string is larger than the given length
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
function readMoreChars(string, length, readMoreDots = "...") {
|
|
7
|
+
if (!string) return "";
|
|
8
|
+
if (string.length <= length) return string;
|
|
9
|
+
return string.substring(0, length) + readMoreDots;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { readMoreChars };
|
|
14
|
+
//# sourceMappingURL=readMoreChars.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readMoreChars.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs"],"sourcesContent":["//#region ../reinforcements/src/string/readMoreChars.ts\n/**\n* Cut string for the given length and append ... if string is larger than the given length\n*\n*/\nfunction readMoreChars(string, length, readMoreDots = \"...\") {\n\tif (!string) return \"\";\n\tif (string.length <= length) return string;\n\treturn string.substring(0, length) + readMoreDots;\n}\n\n//#endregion\nexport { readMoreChars as default };\n//# sourceMappingURL=readMoreChars.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;AAKA,SAAS,cAAc,QAAQ,QAAQ,eAAe,OAAO;CAC5D,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,OAAO,UAAU,QAAQ,OAAO;CACpC,OAAO,OAAO,UAAU,GAAG,MAAM,IAAI;AACtC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { escapeRegex } from "../utils/escapeRegex.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/rtrim.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Remove the given needle from the start of string
|
|
6
|
+
*
|
|
7
|
+
* @param string needle
|
|
8
|
+
* @return string
|
|
9
|
+
*/
|
|
10
|
+
function rtrim(string, needle = " ") {
|
|
11
|
+
if (!string) return "";
|
|
12
|
+
const pattern = escapeRegex(needle) + "+$", regex = new RegExp(pattern, "g");
|
|
13
|
+
return string.replace(regex, "");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { rtrim };
|
|
18
|
+
//# sourceMappingURL=rtrim.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtrim.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/rtrim.mjs"],"sourcesContent":["import escapeRegex from \"../utils/escapeRegex.mjs\";\n\n//#region ../reinforcements/src/string/rtrim.ts\n/**\n* Remove the given needle from the start of string\n*\n* @param string needle\n* @return string\n*/\nfunction rtrim(string, needle = \" \") {\n\tif (!string) return \"\";\n\tconst pattern = escapeRegex(needle) + \"+$\", regex = new RegExp(pattern, \"g\");\n\treturn string.replace(regex, \"\");\n}\n\n//#endregion\nexport { rtrim as default };\n//# sourceMappingURL=rtrim.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AASA,SAAS,MAAM,QAAQ,SAAS,KAAK;CACpC,IAAI,CAAC,QAAQ,OAAO;CACpB,MAAM,UAAU,YAAY,MAAM,IAAI,MAAM,QAAQ,IAAI,OAAO,SAAS,GAAG;CAC3E,OAAO,OAAO,QAAQ,OAAO,EAAE;AAChC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { words } from "./words.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Convert a string to camelCase.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* toCamelCase("hello-world"); // "helloWorld"
|
|
9
|
+
* toCamelCase("XMLHttpRequest"); // "xmlHttpRequest"
|
|
10
|
+
*/
|
|
11
|
+
function toCamelCase(string) {
|
|
12
|
+
if (!string) return "";
|
|
13
|
+
return words(string).map(toSegment).join("");
|
|
14
|
+
}
|
|
15
|
+
function toSegment(word, index) {
|
|
16
|
+
if (index === 0) return word.toLowerCase();
|
|
17
|
+
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { toCamelCase };
|
|
22
|
+
//# sourceMappingURL=toCamelCase.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toCamelCase.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs"],"sourcesContent":["import words from \"./words.mjs\";\n\n//#region ../reinforcements/src/string/toCamelCase.ts\n/**\n* Convert a string to camelCase.\n*\n* @example\n* toCamelCase(\"hello-world\"); // \"helloWorld\"\n* toCamelCase(\"XMLHttpRequest\"); // \"xmlHttpRequest\"\n*/\nfunction toCamelCase(string) {\n\tif (!string) return \"\";\n\treturn words(string).map(toSegment).join(\"\");\n}\nfunction toSegment(word, index) {\n\tif (index === 0) return word.toLowerCase();\n\treturn word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n}\n\n//#endregion\nexport { toCamelCase as default };\n//# sourceMappingURL=toCamelCase.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAUA,SAAS,YAAY,QAAQ;CAC5B,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO,MAAM,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,EAAE;AAC5C;AACA,SAAS,UAAU,MAAM,OAAO;CAC/B,IAAI,UAAU,GAAG,OAAO,KAAK,YAAY;CACzC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY;AACjE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { toSnakeCase } from "./toSnakeCase.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Convert a string to kebab-case.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* toKebabCase("HelloWorld"); // "hello-world"
|
|
9
|
+
* toKebabCase("AIAgent"); // "ai-agent"
|
|
10
|
+
*/
|
|
11
|
+
function toKebabCase(string, lowerAll = true) {
|
|
12
|
+
return toSnakeCase(string, "-", lowerAll);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { toKebabCase };
|
|
17
|
+
//# sourceMappingURL=toKebabCase.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toKebabCase.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs"],"sourcesContent":["import toSnakeCase from \"./toSnakeCase.mjs\";\n\n//#region ../reinforcements/src/string/toKebabCase.ts\n/**\n* Convert a string to kebab-case.\n*\n* @example\n* toKebabCase(\"HelloWorld\"); // \"hello-world\"\n* toKebabCase(\"AIAgent\"); // \"ai-agent\"\n*/\nfunction toKebabCase(string, lowerAll = true) {\n\treturn toSnakeCase(string, \"-\", lowerAll);\n}\n\n//#endregion\nexport { toKebabCase as default };\n//# sourceMappingURL=toKebabCase.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAUA,SAAS,YAAY,QAAQ,WAAW,MAAM;CAC7C,OAAO,YAAY,QAAQ,KAAK,QAAQ;AACzC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { words } from "./words.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Convert a string to snake_case (or any underscore-style with a
|
|
6
|
+
* custom separator).
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* toSnakeCase("HelloWorld"); // "hello_world"
|
|
10
|
+
* toSnakeCase("AIAgent"); // "ai_agent"
|
|
11
|
+
*/
|
|
12
|
+
function toSnakeCase(string, separator = "_", lowerAll = true) {
|
|
13
|
+
if (!string) return "";
|
|
14
|
+
const tokens = words(string);
|
|
15
|
+
if (!lowerAll) return tokens.join(separator);
|
|
16
|
+
return tokens.map((word) => word.toLowerCase()).join(separator);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { toSnakeCase };
|
|
21
|
+
//# sourceMappingURL=toSnakeCase.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toSnakeCase.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs"],"sourcesContent":["import words from \"./words.mjs\";\n\n//#region ../reinforcements/src/string/toSnakeCase.ts\n/**\n* Convert a string to snake_case (or any underscore-style with a\n* custom separator).\n*\n* @example\n* toSnakeCase(\"HelloWorld\"); // \"hello_world\"\n* toSnakeCase(\"AIAgent\"); // \"ai_agent\"\n*/\nfunction toSnakeCase(string, separator = \"_\", lowerAll = true) {\n\tif (!string) return \"\";\n\tconst tokens = words(string);\n\tif (!lowerAll) return tokens.join(separator);\n\treturn tokens.map((word) => word.toLowerCase()).join(separator);\n}\n\n//#endregion\nexport { toSnakeCase as default };\n//# sourceMappingURL=toSnakeCase.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;AAWA,SAAS,YAAY,QAAQ,YAAY,KAAK,WAAW,MAAM;CAC9D,IAAI,CAAC,QAAQ,OAAO;CACpB,MAAM,SAAS,MAAM,MAAM;CAC3B,IAAI,CAAC,UAAU,OAAO,OAAO,KAAK,SAAS;CAC3C,OAAO,OAAO,KAAK,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS;AAC/D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { words } from "./words.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Convert a string to StudlyCase (PascalCase).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* toStudlyCase("hello-world"); // "HelloWorld"
|
|
9
|
+
* toStudlyCase("ai_agent"); // "AiAgent"
|
|
10
|
+
*/
|
|
11
|
+
function toStudlyCase(string) {
|
|
12
|
+
if (!string) return "";
|
|
13
|
+
return words(string).map(capitalize).join("");
|
|
14
|
+
}
|
|
15
|
+
function capitalize(word) {
|
|
16
|
+
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { toStudlyCase };
|
|
21
|
+
//# sourceMappingURL=toStudlyCase.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toStudlyCase.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs"],"sourcesContent":["import words from \"./words.mjs\";\n\n//#region ../reinforcements/src/string/toStudlyCase.ts\n/**\n* Convert a string to StudlyCase (PascalCase).\n*\n* @example\n* toStudlyCase(\"hello-world\"); // \"HelloWorld\"\n* toStudlyCase(\"ai_agent\"); // \"AiAgent\"\n*/\nfunction toStudlyCase(string) {\n\tif (!string) return \"\";\n\treturn words(string).map(capitalize).join(\"\");\n}\nfunction capitalize(word) {\n\treturn word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n}\n\n//#endregion\nexport { toStudlyCase as default };\n//# sourceMappingURL=toStudlyCase.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAUA,SAAS,aAAa,QAAQ;CAC7B,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO,MAAM,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE;AAC7C;AACA,SAAS,WAAW,MAAM;CACzB,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY;AACjE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { escapeRegex } from "../utils/escapeRegex.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/trim.mjs
|
|
4
|
+
/**
|
|
5
|
+
* Remove the given needle from the start and the end of string
|
|
6
|
+
*
|
|
7
|
+
* @param string $needle
|
|
8
|
+
* @return string
|
|
9
|
+
*/
|
|
10
|
+
function trim(string, needle = " ") {
|
|
11
|
+
if (!string) return "";
|
|
12
|
+
if (needle === " ") return string.replace(/^\s+|\s+$/g, "");
|
|
13
|
+
needle = escapeRegex(needle);
|
|
14
|
+
const pattern = "^" + needle + "+|" + needle + "+$", regex = new RegExp(pattern, "g");
|
|
15
|
+
return string.replace(regex, "");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { trim };
|
|
20
|
+
//# sourceMappingURL=trim.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trim.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/trim.mjs"],"sourcesContent":["import escapeRegex from \"../utils/escapeRegex.mjs\";\n\n//#region ../reinforcements/src/string/trim.ts\n/**\n* Remove the given needle from the start and the end of string\n*\n* @param string $needle\n* @return string\n*/\nfunction trim(string, needle = \" \") {\n\tif (!string) return \"\";\n\tif (needle === \" \") return string.replace(/^\\s+|\\s+$/g, \"\");\n\tneedle = escapeRegex(needle);\n\tconst pattern = \"^\" + needle + \"+|\" + needle + \"+$\", regex = new RegExp(pattern, \"g\");\n\treturn string.replace(regex, \"\");\n}\n\n//#endregion\nexport { trim as default };\n//# sourceMappingURL=trim.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AASA,SAAS,KAAK,QAAQ,SAAS,KAAK;CACnC,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,WAAW,KAAK,OAAO,OAAO,QAAQ,cAAc,EAAE;CAC1D,SAAS,YAAY,MAAM;CAC3B,MAAM,UAAU,MAAM,SAAS,OAAO,SAAS,MAAM,QAAQ,IAAI,OAAO,SAAS,GAAG;CACpF,OAAO,OAAO,QAAQ,OAAO,EAAE;AAChC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs
|
|
2
|
+
/**
|
|
3
|
+
* Uppercase the first character of `string`.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ucfirst("hello"); // "Hello"
|
|
7
|
+
*/
|
|
8
|
+
function ucfirst(string) {
|
|
9
|
+
if (!string) return "";
|
|
10
|
+
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { ucfirst };
|
|
15
|
+
//# sourceMappingURL=ucfirst.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ucfirst.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs"],"sourcesContent":["//#region ../reinforcements/src/string/ucfirst.ts\n/**\n* Uppercase the first character of `string`.\n*\n* @example\n* ucfirst(\"hello\"); // \"Hello\"\n*/\nfunction ucfirst(string) {\n\tif (!string) return \"\";\n\treturn string.charAt(0).toUpperCase() + string.slice(1);\n}\n\n//#endregion\nexport { ucfirst as default };\n//# sourceMappingURL=ucfirst.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;AAOA,SAAS,QAAQ,QAAQ;CACxB,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC;AACvD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region ../node_modules/@mongez/reinforcements/esm/string/words.mjs
|
|
2
|
+
const SEPARATOR_PATTERN = /[-_./\\\s]+/g;
|
|
3
|
+
const ACRONYM_BOUNDARY = /([A-Z]+)([A-Z][a-z])/g;
|
|
4
|
+
const CAMEL_BOUNDARY = /([a-z\d])([A-Z])/g;
|
|
5
|
+
const WHITESPACE_RUN = /\s+/;
|
|
6
|
+
/**
|
|
7
|
+
* Split a string into its semantic word tokens. Handles camelCase,
|
|
8
|
+
* PascalCase, snake_case, kebab-case, dot.case, slash/separated and
|
|
9
|
+
* whitespace, and correctly preserves acronym runs.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* words("XMLHttpRequest"); // ["XML", "Http", "Request"]
|
|
13
|
+
* words("hello_world"); // ["hello", "world"]
|
|
14
|
+
* words("AIAgent"); // ["AI", "Agent"]
|
|
15
|
+
*/
|
|
16
|
+
function words(input) {
|
|
17
|
+
if (!input) return [];
|
|
18
|
+
const normalised = input.replace(SEPARATOR_PATTERN, " ").replace(ACRONYM_BOUNDARY, "$1 $2").replace(CAMEL_BOUNDARY, "$1 $2").trim();
|
|
19
|
+
if (!normalised) return [];
|
|
20
|
+
return normalised.split(WHITESPACE_RUN).filter(Boolean);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { words };
|
|
25
|
+
//# sourceMappingURL=words.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"words.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/string/words.mjs"],"sourcesContent":["//#region ../reinforcements/src/string/words.ts\nconst SEPARATOR_PATTERN = /[-_./\\\\\\s]+/g;\nconst ACRONYM_BOUNDARY = /([A-Z]+)([A-Z][a-z])/g;\nconst CAMEL_BOUNDARY = /([a-z\\d])([A-Z])/g;\nconst WHITESPACE_RUN = /\\s+/;\n/**\n* Split a string into its semantic word tokens. Handles camelCase,\n* PascalCase, snake_case, kebab-case, dot.case, slash/separated and\n* whitespace, and correctly preserves acronym runs.\n*\n* @example\n* words(\"XMLHttpRequest\"); // [\"XML\", \"Http\", \"Request\"]\n* words(\"hello_world\"); // [\"hello\", \"world\"]\n* words(\"AIAgent\"); // [\"AI\", \"Agent\"]\n*/\nfunction words(input) {\n\tif (!input) return [];\n\tconst normalised = input.replace(SEPARATOR_PATTERN, \" \").replace(ACRONYM_BOUNDARY, \"$1 $2\").replace(CAMEL_BOUNDARY, \"$1 $2\").trim();\n\tif (!normalised) return [];\n\treturn normalised.split(WHITESPACE_RUN).filter(Boolean);\n}\n\n//#endregion\nexport { words as default };\n//# sourceMappingURL=words.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,oBAAoB;AAC1B,MAAM,mBAAmB;AACzB,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;;;;;;;;;;;AAWvB,SAAS,MAAM,OAAO;CACrB,IAAI,CAAC,OAAO,OAAO,CAAC;CACpB,MAAM,aAAa,MAAM,QAAQ,mBAAmB,GAAG,CAAC,CAAC,QAAQ,kBAAkB,OAAO,CAAC,CAAC,QAAQ,gBAAgB,OAAO,CAAC,CAAC,KAAK;CAClI,IAAI,CAAC,YAAY,OAAO,CAAC;CACzB,OAAO,WAAW,MAAM,cAAc,CAAC,CAAC,OAAO,OAAO;AACvD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region ../node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs
|
|
2
|
+
/**
|
|
3
|
+
* Escape the regex of the given string
|
|
4
|
+
*/
|
|
5
|
+
function escapeRegex(string) {
|
|
6
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { escapeRegex };
|
|
11
|
+
//# sourceMappingURL=escapeRegex.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escapeRegex.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs"],"sourcesContent":["//#region ../reinforcements/src/utils/escapeRegex.ts\n/**\n* Escape the regex of the given string\n*/\nfunction escapeRegex(string) {\n\treturn string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\n//#endregion\nexport { escapeRegex as default };\n//# sourceMappingURL=escapeRegex.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;AAIA,SAAS,YAAY,QAAQ;CAC5B,OAAO,OAAO,QAAQ,uBAAuB,MAAM;AACpD"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
//#region ../node_modules/@mongez/reinforcements/esm/utils/lazy.mjs
|
|
2
|
+
const LAZY = Symbol("lazy");
|
|
3
|
+
/**
|
|
4
|
+
* Wrap a value-producing function as a lazy reference. The producer
|
|
5
|
+
* isn't invoked until `resolve()` is called; subsequent calls return the
|
|
6
|
+
* same cached value.
|
|
7
|
+
*
|
|
8
|
+
* Useful for deferring expensive computations and for breaking circular
|
|
9
|
+
* module dependencies — JavaScript closures capture variable bindings,
|
|
10
|
+
* not values, so a `lazy(() => x)` callsite remains valid even when `x`
|
|
11
|
+
* isn't yet defined at the moment the wrapper is created, as long as
|
|
12
|
+
* it's defined by the time `.resolve()` runs.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* const greeting = lazy(() => expensiveComputation());
|
|
16
|
+
*
|
|
17
|
+
* greeting.resolve(); // computes, caches, returns
|
|
18
|
+
* greeting.resolve(); // returns cached value, no recomputation
|
|
19
|
+
*/
|
|
20
|
+
function lazy(producer) {
|
|
21
|
+
let isResolved = false;
|
|
22
|
+
let value;
|
|
23
|
+
return {
|
|
24
|
+
[LAZY]: true,
|
|
25
|
+
resolve() {
|
|
26
|
+
if (!isResolved) {
|
|
27
|
+
value = producer();
|
|
28
|
+
isResolved = true;
|
|
29
|
+
}
|
|
30
|
+
return value;
|
|
31
|
+
},
|
|
32
|
+
reset() {
|
|
33
|
+
isResolved = false;
|
|
34
|
+
value = void 0;
|
|
35
|
+
},
|
|
36
|
+
isResolved() {
|
|
37
|
+
return isResolved;
|
|
38
|
+
},
|
|
39
|
+
peek() {
|
|
40
|
+
return isResolved ? value : void 0;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Async variant of {@link lazy}: the producer returns a `Promise<T>`
|
|
46
|
+
* which is cached after first invocation.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* const user = lazy.async(() => fetchUser());
|
|
50
|
+
*
|
|
51
|
+
* await user.resolve(); // fetches
|
|
52
|
+
* await user.resolve(); // returns same promise, no refetch
|
|
53
|
+
*/
|
|
54
|
+
lazy.async = function lazyAsync(producer) {
|
|
55
|
+
let started = false;
|
|
56
|
+
let promise;
|
|
57
|
+
return {
|
|
58
|
+
[LAZY]: true,
|
|
59
|
+
resolve() {
|
|
60
|
+
if (!started) {
|
|
61
|
+
promise = producer();
|
|
62
|
+
started = true;
|
|
63
|
+
}
|
|
64
|
+
return promise;
|
|
65
|
+
},
|
|
66
|
+
reset() {
|
|
67
|
+
started = false;
|
|
68
|
+
promise = void 0;
|
|
69
|
+
},
|
|
70
|
+
isResolved() {
|
|
71
|
+
return started;
|
|
72
|
+
},
|
|
73
|
+
peek() {
|
|
74
|
+
return started ? promise : void 0;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Build a pre-resolved lazy reference. Useful for tests and for API
|
|
80
|
+
* symmetry where a `Lazy<T>` is expected.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* const ref = lazy.from(42);
|
|
84
|
+
*
|
|
85
|
+
* ref.resolve(); // 42
|
|
86
|
+
* ref.isResolved(); // true
|
|
87
|
+
*/
|
|
88
|
+
lazy.from = function lazyFrom(value) {
|
|
89
|
+
return {
|
|
90
|
+
[LAZY]: true,
|
|
91
|
+
resolve: () => value,
|
|
92
|
+
reset() {},
|
|
93
|
+
isResolved: () => true,
|
|
94
|
+
peek: () => value
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
//#endregion
|
|
99
|
+
export { lazy };
|
|
100
|
+
//# sourceMappingURL=lazy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/utils/lazy.mjs"],"sourcesContent":["//#region ../reinforcements/src/utils/lazy.ts\nconst LAZY = Symbol(\"lazy\");\n/**\n* Wrap a value-producing function as a lazy reference. The producer\n* isn't invoked until `resolve()` is called; subsequent calls return the\n* same cached value.\n*\n* Useful for deferring expensive computations and for breaking circular\n* module dependencies — JavaScript closures capture variable bindings,\n* not values, so a `lazy(() => x)` callsite remains valid even when `x`\n* isn't yet defined at the moment the wrapper is created, as long as\n* it's defined by the time `.resolve()` runs.\n*\n* @example\n* const greeting = lazy(() => expensiveComputation());\n*\n* greeting.resolve(); // computes, caches, returns\n* greeting.resolve(); // returns cached value, no recomputation\n*/\nfunction lazy(producer) {\n\tlet isResolved = false;\n\tlet value;\n\treturn {\n\t\t[LAZY]: true,\n\t\tresolve() {\n\t\t\tif (!isResolved) {\n\t\t\t\tvalue = producer();\n\t\t\t\tisResolved = true;\n\t\t\t}\n\t\t\treturn value;\n\t\t},\n\t\treset() {\n\t\t\tisResolved = false;\n\t\t\tvalue = void 0;\n\t\t},\n\t\tisResolved() {\n\t\t\treturn isResolved;\n\t\t},\n\t\tpeek() {\n\t\t\treturn isResolved ? value : void 0;\n\t\t}\n\t};\n}\n/**\n* Async variant of {@link lazy}: the producer returns a `Promise<T>`\n* which is cached after first invocation.\n*\n* @example\n* const user = lazy.async(() => fetchUser());\n*\n* await user.resolve(); // fetches\n* await user.resolve(); // returns same promise, no refetch\n*/\nlazy.async = function lazyAsync(producer) {\n\tlet started = false;\n\tlet promise;\n\treturn {\n\t\t[LAZY]: true,\n\t\tresolve() {\n\t\t\tif (!started) {\n\t\t\t\tpromise = producer();\n\t\t\t\tstarted = true;\n\t\t\t}\n\t\t\treturn promise;\n\t\t},\n\t\treset() {\n\t\t\tstarted = false;\n\t\t\tpromise = void 0;\n\t\t},\n\t\tisResolved() {\n\t\t\treturn started;\n\t\t},\n\t\tpeek() {\n\t\t\treturn started ? promise : void 0;\n\t\t}\n\t};\n};\n/**\n* Build a pre-resolved lazy reference. Useful for tests and for API\n* symmetry where a `Lazy<T>` is expected.\n*\n* @example\n* const ref = lazy.from(42);\n*\n* ref.resolve(); // 42\n* ref.isResolved(); // true\n*/\nlazy.from = function lazyFrom(value) {\n\treturn {\n\t\t[LAZY]: true,\n\t\tresolve: () => value,\n\t\treset() {},\n\t\tisResolved: () => true,\n\t\tpeek: () => value\n\t};\n};\n/**\n* Type guard that returns `true` when `value` is a `Lazy<T>` or\n* `LazyAsync<T>` produced by `lazy()` / `lazy.async()`.\n*\n* @example\n* if (isLazy(value)) {\n* value.resolve();\n* }\n*/\nfunction isLazy(value) {\n\treturn value?.[LAZY] === true;\n}\n\n//#endregion\nexport { lazy as default, isLazy };\n//# sourceMappingURL=lazy.mjs.map"],"x_google_ignoreList":[0],"mappings":";AACA,MAAM,OAAO,OAAO,MAAM;;;;;;;;;;;;;;;;;;AAkB1B,SAAS,KAAK,UAAU;CACvB,IAAI,aAAa;CACjB,IAAI;CACJ,OAAO;GACL,OAAO;EACR,UAAU;GACT,IAAI,CAAC,YAAY;IAChB,QAAQ,SAAS;IACjB,aAAa;GACd;GACA,OAAO;EACR;EACA,QAAQ;GACP,aAAa;GACb,QAAQ,KAAK;EACd;EACA,aAAa;GACZ,OAAO;EACR;EACA,OAAO;GACN,OAAO,aAAa,QAAQ,KAAK;EAClC;CACD;AACD;;;;;;;;;;;AAWA,KAAK,QAAQ,SAAS,UAAU,UAAU;CACzC,IAAI,UAAU;CACd,IAAI;CACJ,OAAO;GACL,OAAO;EACR,UAAU;GACT,IAAI,CAAC,SAAS;IACb,UAAU,SAAS;IACnB,UAAU;GACX;GACA,OAAO;EACR;EACA,QAAQ;GACP,UAAU;GACV,UAAU,KAAK;EAChB;EACA,aAAa;GACZ,OAAO;EACR;EACA,OAAO;GACN,OAAO,UAAU,UAAU,KAAK;EACjC;CACD;AACD;;;;;;;;;;;AAWA,KAAK,OAAO,SAAS,SAAS,OAAO;CACpC,OAAO;GACL,OAAO;EACR,eAAe;EACf,QAAQ,CAAC;EACT,kBAAkB;EAClB,YAAY;CACb;AACD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region ../node_modules/@mongez/reinforcements/esm/utils/tap.mjs
|
|
2
|
+
/**
|
|
3
|
+
* Run `sideEffect` against `value`, then return `value` unchanged.
|
|
4
|
+
* Useful for inserting logging / instrumentation into a pipeline.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* pipe(2, n => n + 1, tap.with(console.log), n => n * 10);
|
|
8
|
+
* // logs 3, returns 30
|
|
9
|
+
*/
|
|
10
|
+
function tap(value, sideEffect) {
|
|
11
|
+
sideEffect(value);
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Curried form: `tap.with(fn)` returns a pipeline-friendly
|
|
16
|
+
* `(value) => value` that runs the side effect.
|
|
17
|
+
*/
|
|
18
|
+
tap.with = function tapWith(sideEffect) {
|
|
19
|
+
return (value) => {
|
|
20
|
+
sideEffect(value);
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { tap };
|
|
27
|
+
//# sourceMappingURL=tap.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tap.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/utils/tap.mjs"],"sourcesContent":["//#region ../reinforcements/src/utils/tap.ts\n/**\n* Run `sideEffect` against `value`, then return `value` unchanged.\n* Useful for inserting logging / instrumentation into a pipeline.\n*\n* @example\n* pipe(2, n => n + 1, tap.with(console.log), n => n * 10);\n* // logs 3, returns 30\n*/\nfunction tap(value, sideEffect) {\n\tsideEffect(value);\n\treturn value;\n}\n/**\n* Curried form: `tap.with(fn)` returns a pipeline-friendly\n* `(value) => value` that runs the side effect.\n*/\ntap.with = function tapWith(sideEffect) {\n\treturn (value) => {\n\t\tsideEffect(value);\n\t\treturn value;\n\t};\n};\n\n//#endregion\nexport { tap as default };\n//# sourceMappingURL=tap.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AASA,SAAS,IAAI,OAAO,YAAY;CAC/B,WAAW,KAAK;CAChB,OAAO;AACR;;;;;AAKA,IAAI,OAAO,SAAS,QAAQ,YAAY;CACvC,QAAQ,UAAU;EACjB,WAAW,KAAK;EAChB,OAAO;CACR;AACD"}
|