@warlock.js/notifications 4.16.0 → 5.0.1
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/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 +1 -1
- 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/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/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api_args.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/api_args.js"],"sourcesContent":["//\n//\n//\n\n'use strict';\n\n/*\nThe channel (promise) and callback APIs have similar signatures, and\nin particular, both need AMQP fields prepared from the same arguments\nand options. The arguments marshalling is done here. Each of the\nprocedures below takes arguments and options (the latter in an object)\nparticular to the operation it represents, and returns an object with\nfields for handing to the encoder.\n*/\n\n// A number of AMQP methods have a table-typed field called\n// `arguments`, that is intended to carry extension-specific\n// values. RabbitMQ uses this in a number of places; e.g., to specify\n// an 'alternate exchange'.\n//\n// Many of the methods in this API have an `options` argument, from\n// which I take both values that have a default in AMQP (e.g.,\n// autoDelete in QueueDeclare) *and* values that are specific to\n// RabbitMQ (e.g., 'alternate-exchange'), which would normally be\n// supplied in `arguments`. So that extensions I don't support yet can\n// be used, I include `arguments` itself among the options.\n//\n// The upshot of this is that I often need to prepare an `arguments`\n// value that has any values passed in `options.arguments` as well as\n// any I've promoted to being options themselves. Since I don't want\n// to mutate anything passed in, the general pattern is to create a\n// fresh object with the `arguments` value given as its prototype; all\n// fields in the supplied value will be serialised, as well as any I\n// set on the fresh object. What I don't want to do, however, is set a\n// field to undefined by copying possibly missing field values,\n// because that will mask a value in the prototype.\n//\n// NB the `arguments` field already has a default value of `{}`, so\n// there's no need to explicitly default it unless I'm setting values.\nfunction setIfDefined(obj, prop, value) {\n if (value != undefined) obj[prop] = value;\n}\n\nvar EMPTY_OPTIONS = Object.freeze({});\n\nvar Args = {};\n\nArgs.assertQueue = function(queue, options) {\n queue = queue || '';\n options = options || EMPTY_OPTIONS;\n\n var argt = Object.create(options.arguments || null);\n setIfDefined(argt, 'x-expires', options.expires);\n setIfDefined(argt, 'x-message-ttl', options.messageTtl);\n setIfDefined(argt, 'x-dead-letter-exchange',\n options.deadLetterExchange);\n setIfDefined(argt, 'x-dead-letter-routing-key',\n options.deadLetterRoutingKey);\n setIfDefined(argt, 'x-max-length', options.maxLength);\n setIfDefined(argt, 'x-max-priority', options.maxPriority);\n setIfDefined(argt, 'x-overflow', options.overflow);\n setIfDefined(argt, 'x-queue-mode', options.queueMode);\n\n return {\n queue: queue,\n exclusive: !!options.exclusive,\n durable: (options.durable === undefined) ? true : options.durable,\n autoDelete: !!options.autoDelete,\n arguments: argt,\n passive: false,\n // deprecated but we have to include it\n ticket: 0,\n nowait: false\n };\n};\n\nArgs.checkQueue = function(queue) {\n return {\n queue: queue,\n passive: true, // switch to \"completely different\" mode\n nowait: false,\n durable: true, autoDelete: false, exclusive: false, // ignored\n ticket: 0,\n };\n};\n\nArgs.deleteQueue = function(queue, options) {\n options = options || EMPTY_OPTIONS;\n return {\n queue: queue,\n ifUnused: !!options.ifUnused,\n ifEmpty: !!options.ifEmpty,\n ticket: 0, nowait: false\n };\n};\n\nArgs.purgeQueue = function(queue) {\n return {\n queue: queue,\n ticket: 0, nowait: false\n };\n};\n\nArgs.bindQueue = function(queue, source, pattern, argt) {\n return {\n queue: queue,\n exchange: source,\n routingKey: pattern,\n arguments: argt,\n ticket: 0, nowait: false\n };\n};\n\nArgs.unbindQueue = function(queue, source, pattern, argt) {\n return {\n queue: queue,\n exchange: source,\n routingKey: pattern,\n arguments: argt,\n ticket: 0, nowait: false\n };\n};\n\nArgs.assertExchange = function(exchange, type, options) {\n options = options || EMPTY_OPTIONS;\n var argt = Object.create(options.arguments || null);\n setIfDefined(argt, 'alternate-exchange', options.alternateExchange);\n return {\n exchange: exchange,\n ticket: 0,\n type: type,\n passive: false,\n durable: (options.durable === undefined) ? true : options.durable,\n autoDelete: !!options.autoDelete,\n internal: !!options.internal,\n nowait: false,\n arguments: argt\n };\n};\n\nArgs.checkExchange = function(exchange) {\n return {\n exchange: exchange,\n passive: true, // switch to 'may as well be another method' mode\n nowait: false,\n // ff are ignored\n durable: true, internal: false, type: '', autoDelete: false,\n ticket: 0\n };\n};\n\nArgs.deleteExchange = function(exchange, options) {\n options = options || EMPTY_OPTIONS;\n return {\n exchange: exchange,\n ifUnused: !!options.ifUnused,\n ticket: 0, nowait: false\n };\n};\n\nArgs.bindExchange = function(dest, source, pattern, argt) {\n return {\n source: source,\n destination: dest,\n routingKey: pattern,\n arguments: argt,\n ticket: 0, nowait: false\n };\n};\n\nArgs.unbindExchange = function(dest, source, pattern, argt) {\n return {\n source: source,\n destination: dest,\n routingKey: pattern,\n arguments: argt,\n ticket: 0, nowait: false\n };\n};\n\n// It's convenient to construct the properties and the method fields\n// at the same time, since in the APIs, values for both can appear in\n// `options`. Since the property or mthod field names don't overlap, I\n// just return one big object that can be used for both purposes, and\n// the encoder will pick out what it wants.\nArgs.publish = function(exchange, routingKey, options) {\n options = options || EMPTY_OPTIONS;\n\n // The CC and BCC fields expect an array of \"longstr\", which would\n // normally be buffer values in JavaScript; however, since a field\n // array (or table) cannot have shortstr values, the codec will\n // encode all strings as longstrs anyway.\n function convertCC(cc) {\n if (cc === undefined) {\n return undefined;\n }\n else if (Array.isArray(cc)) {\n return cc.map(String);\n }\n else return [String(cc)];\n }\n\n var headers = Object.create(options.headers || null);\n setIfDefined(headers, 'CC', convertCC(options.CC));\n setIfDefined(headers, 'BCC', convertCC(options.BCC));\n\n var deliveryMode; // undefined will default to 1 (non-persistent)\n\n // Previously I overloaded deliveryMode be a boolean meaning\n // 'persistent or not'; better is to name this option for what it\n // is, but I need to have backwards compatibility for applications\n // that either supply a numeric or boolean value.\n if (options.persistent !== undefined)\n deliveryMode = (options.persistent) ? 2 : 1;\n else if (typeof options.deliveryMode === 'number')\n deliveryMode = options.deliveryMode;\n else if (options.deliveryMode) // is supplied and truthy\n deliveryMode = 2;\n\n var expiration = options.expiration;\n if (expiration !== undefined) expiration = expiration.toString();\n\n return {\n // method fields\n exchange: exchange,\n routingKey: routingKey,\n mandatory: !!options.mandatory,\n immediate: false, // RabbitMQ doesn't implement this any more\n ticket: undefined,\n // properties\n contentType: options.contentType,\n contentEncoding: options.contentEncoding,\n headers: headers,\n deliveryMode: deliveryMode,\n priority: options.priority,\n correlationId: options.correlationId,\n replyTo: options.replyTo,\n expiration: expiration,\n messageId: options.messageId,\n timestamp: options.timestamp,\n type: options.type,\n userId: options.userId,\n appId: options.appId,\n clusterId: undefined\n };\n};\n\nArgs.consume = function(queue, options) {\n options = options || EMPTY_OPTIONS;\n var argt = Object.create(options.arguments || null);\n setIfDefined(argt, 'x-priority', options.priority);\n return {\n ticket: 0,\n queue: queue,\n consumerTag: options.consumerTag || '',\n noLocal: !!options.noLocal,\n noAck: !!options.noAck,\n exclusive: !!options.exclusive,\n nowait: false,\n arguments: argt\n };\n};\n\nArgs.cancel = function(consumerTag) {\n return {\n consumerTag: consumerTag,\n nowait: false\n };\n};\n\nArgs.get = function(queue, options) {\n options = options || EMPTY_OPTIONS;\n return {\n ticket: 0,\n queue: queue,\n noAck: !!options.noAck\n };\n};\n\nArgs.ack = function(tag, allUpTo) {\n return {\n deliveryTag: tag,\n multiple: !!allUpTo\n };\n};\n\nArgs.nack = function(tag, allUpTo, requeue) {\n return {\n deliveryTag: tag,\n multiple: !!allUpTo,\n requeue: (requeue === undefined) ? true : requeue\n };\n};\n\nArgs.reject = function(tag, requeue) {\n return {\n deliveryTag: tag,\n requeue: (requeue === undefined) ? true : requeue\n };\n};\n\nArgs.prefetch = function(count, global) {\n return {\n prefetchCount: count || 0,\n prefetchSize: 0,\n global: !!global\n };\n};\n\nArgs.recover = function() {\n return {requeue: true};\n};\n\nmodule.exports = Object.freeze(Args);\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { __commonJSMin } from "../../../_virtual/_rolldown/runtime.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../node_modules/amqplib/lib/bitset.js
|
|
4
|
+
var require_bitset = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
5
|
+
/**
|
|
6
|
+
* A bitset implementation, after that in java.util. Yes there
|
|
7
|
+
* already exist such things, but none implement next{Clear|Set}Bit or
|
|
8
|
+
* equivalent, and none involved me tooling about for an evening.
|
|
9
|
+
*/
|
|
10
|
+
var BitSet = class {
|
|
11
|
+
/**
|
|
12
|
+
* @param {number} [size]
|
|
13
|
+
*/
|
|
14
|
+
constructor(size) {
|
|
15
|
+
if (size) {
|
|
16
|
+
const numWords = Math.ceil(size / 32);
|
|
17
|
+
this.words = new Array(numWords);
|
|
18
|
+
} else this.words = [];
|
|
19
|
+
this.wordsInUse = 0;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @param {number} numWords
|
|
23
|
+
*/
|
|
24
|
+
ensureSize(numWords) {
|
|
25
|
+
const wordsPresent = this.words.length;
|
|
26
|
+
if (wordsPresent < numWords) this.words = this.words.concat(new Array(numWords - wordsPresent));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @param {number} bitIndex
|
|
30
|
+
*/
|
|
31
|
+
set(bitIndex) {
|
|
32
|
+
const w = wordIndex(bitIndex);
|
|
33
|
+
if (w >= this.wordsInUse) {
|
|
34
|
+
this.ensureSize(w + 1);
|
|
35
|
+
this.wordsInUse = w + 1;
|
|
36
|
+
}
|
|
37
|
+
const bit = 1 << bitIndex;
|
|
38
|
+
this.words[w] |= bit;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @param {number} bitIndex
|
|
42
|
+
*/
|
|
43
|
+
clear(bitIndex) {
|
|
44
|
+
const w = wordIndex(bitIndex);
|
|
45
|
+
if (w >= this.wordsInUse) return;
|
|
46
|
+
const mask = ~(1 << bitIndex);
|
|
47
|
+
this.words[w] &= mask;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @param {number} bitIndex
|
|
51
|
+
*/
|
|
52
|
+
get(bitIndex) {
|
|
53
|
+
const w = wordIndex(bitIndex);
|
|
54
|
+
if (w >= this.wordsInUse) return false;
|
|
55
|
+
const bit = 1 << bitIndex;
|
|
56
|
+
return !!(this.words[w] & bit);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Give the next bit that is set on or after fromIndex, or -1 if no such bit
|
|
60
|
+
*
|
|
61
|
+
* @param {number} fromIndex
|
|
62
|
+
*/
|
|
63
|
+
nextSetBit(fromIndex) {
|
|
64
|
+
let w = wordIndex(fromIndex);
|
|
65
|
+
if (w >= this.wordsInUse) return -1;
|
|
66
|
+
let word = this.words[w] & 4294967295 << fromIndex;
|
|
67
|
+
while (true) {
|
|
68
|
+
if (word) return w * 32 + trailingZeros(word);
|
|
69
|
+
w++;
|
|
70
|
+
if (w === this.wordsInUse) return -1;
|
|
71
|
+
word = this.words[w];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @param {number} fromIndex
|
|
76
|
+
*/
|
|
77
|
+
nextClearBit(fromIndex) {
|
|
78
|
+
let w = wordIndex(fromIndex);
|
|
79
|
+
if (w >= this.wordsInUse) return fromIndex;
|
|
80
|
+
let word = ~this.words[w] & 4294967295 << fromIndex;
|
|
81
|
+
while (true) {
|
|
82
|
+
if (word) return w * 32 + trailingZeros(word);
|
|
83
|
+
w++;
|
|
84
|
+
if (w == this.wordsInUse) return w * 32;
|
|
85
|
+
word = ~this.words[w];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* @param {number} bitIndex
|
|
91
|
+
*/
|
|
92
|
+
function wordIndex(bitIndex) {
|
|
93
|
+
return Math.floor(bitIndex / 32);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* @param {number} i
|
|
97
|
+
*/
|
|
98
|
+
function trailingZeros(i) {
|
|
99
|
+
if (i === 0) return 32;
|
|
100
|
+
let y, n = 31;
|
|
101
|
+
y = i << 16;
|
|
102
|
+
if (y != 0) {
|
|
103
|
+
n = n - 16;
|
|
104
|
+
i = y;
|
|
105
|
+
}
|
|
106
|
+
y = i << 8;
|
|
107
|
+
if (y != 0) {
|
|
108
|
+
n = n - 8;
|
|
109
|
+
i = y;
|
|
110
|
+
}
|
|
111
|
+
y = i << 4;
|
|
112
|
+
if (y != 0) {
|
|
113
|
+
n = n - 4;
|
|
114
|
+
i = y;
|
|
115
|
+
}
|
|
116
|
+
y = i << 2;
|
|
117
|
+
if (y != 0) {
|
|
118
|
+
n = n - 2;
|
|
119
|
+
i = y;
|
|
120
|
+
}
|
|
121
|
+
return n - (i << 1 >>> 31);
|
|
122
|
+
}
|
|
123
|
+
module.exports.BitSet = BitSet;
|
|
124
|
+
}));
|
|
125
|
+
|
|
126
|
+
//#endregion
|
|
127
|
+
export default require_bitset();
|
|
128
|
+
|
|
129
|
+
export { require_bitset };
|
|
130
|
+
//# sourceMappingURL=bitset.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitset.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/bitset.js"],"sourcesContent":["//\n//\n//\n\n'use strict';\n\n/**\n * A bitset implementation, after that in java.util. Yes there\n * already exist such things, but none implement next{Clear|Set}Bit or\n * equivalent, and none involved me tooling about for an evening.\n */\nclass BitSet {\n /**\n * @param {number} [size]\n */\n constructor(size) {\n if (size) {\n const numWords = Math.ceil(size / 32);\n this.words = new Array(numWords);\n }\n else {\n this.words = [];\n }\n this.wordsInUse = 0; // = number, not index\n }\n\n /**\n * @param {number} numWords\n */\n ensureSize(numWords) {\n const wordsPresent = this.words.length;\n if (wordsPresent < numWords) {\n this.words = this.words.concat(new Array(numWords - wordsPresent));\n }\n }\n\n /**\n * @param {number} bitIndex\n */\n set(bitIndex) {\n const w = wordIndex(bitIndex);\n if (w >= this.wordsInUse) {\n this.ensureSize(w + 1);\n this.wordsInUse = w + 1;\n }\n const bit = 1 << bitIndex;\n this.words[w] |= bit;\n }\n\n /**\n * @param {number} bitIndex\n */\n clear(bitIndex) {\n const w = wordIndex(bitIndex);\n if (w >= this.wordsInUse) return;\n const mask = ~(1 << bitIndex);\n this.words[w] &= mask;\n }\n\n /**\n * @param {number} bitIndex\n */\n get(bitIndex) {\n const w = wordIndex(bitIndex);\n if (w >= this.wordsInUse) return false; // >= since index vs size\n const bit = 1 << bitIndex;\n return !!(this.words[w] & bit);\n }\n\n /**\n * Give the next bit that is set on or after fromIndex, or -1 if no such bit\n *\n * @param {number} fromIndex\n */\n nextSetBit(fromIndex) {\n let w = wordIndex(fromIndex);\n if (w >= this.wordsInUse) return -1;\n\n // the right-hand side is shifted to only test the bits of the first\n // word that are > fromIndex\n let word = this.words[w] & (0xffffffff << fromIndex);\n while (true) {\n if (word) return (w * 32) + trailingZeros(word);\n w++;\n if (w === this.wordsInUse) return -1;\n word = this.words[w];\n }\n }\n\n /**\n * @param {number} fromIndex\n */\n nextClearBit(fromIndex) {\n let w = wordIndex(fromIndex);\n if (w >= this.wordsInUse) return fromIndex;\n\n let word = ~(this.words[w]) & (0xffffffff << fromIndex);\n while (true) {\n if (word) return (w * 32) + trailingZeros(word);\n w++;\n if (w == this.wordsInUse) return w * 32;\n word = ~(this.words[w]);\n }\n }\n}\n\n/**\n * @param {number} bitIndex\n */\nfunction wordIndex(bitIndex) {\n return Math.floor(bitIndex / 32);\n}\n\n/**\n * @param {number} i\n */\nfunction trailingZeros(i) {\n // From Hacker's Delight, via JDK. Probably far less effective here,\n // since bit ops are not necessarily the quick way to do things in\n // JS.\n if (i === 0) return 32;\n let y, n = 31;\n y = i << 16; if (y != 0) { n = n -16; i = y; }\n y = i << 8; if (y != 0) { n = n - 8; i = y; }\n y = i << 4; if (y != 0) { n = n - 4; i = y; }\n y = i << 2; if (y != 0) { n = n - 2; i = y; }\n return n - ((i << 1) >>> 31);\n}\n\nmodule.exports.BitSet = BitSet;\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;CAWA,IAAM,SAAN,MAAa;;;;EAIX,YAAY,MAAM;GAChB,IAAI,MAAM;IACR,MAAM,WAAW,KAAK,KAAK,OAAO,EAAE;IACpC,KAAK,QAAQ,IAAI,MAAM,QAAQ;GACjC,OAEE,KAAK,QAAQ,CAAC;GAEhB,KAAK,aAAa;EACpB;;;;EAKA,WAAW,UAAU;GACnB,MAAM,eAAe,KAAK,MAAM;GAChC,IAAI,eAAe,UACjB,KAAK,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,WAAW,YAAY,CAAC;EAErE;;;;EAKA,IAAI,UAAU;GACZ,MAAM,IAAI,UAAU,QAAQ;GAC5B,IAAI,KAAK,KAAK,YAAY;IACxB,KAAK,WAAW,IAAI,CAAC;IACrB,KAAK,aAAa,IAAI;GACxB;GACA,MAAM,MAAM,KAAK;GACjB,KAAK,MAAM,MAAM;EACnB;;;;EAKA,MAAM,UAAU;GACd,MAAM,IAAI,UAAU,QAAQ;GAC5B,IAAI,KAAK,KAAK,YAAY;GAC1B,MAAM,OAAO,EAAE,KAAK;GACpB,KAAK,MAAM,MAAM;EACnB;;;;EAKA,IAAI,UAAU;GACZ,MAAM,IAAI,UAAU,QAAQ;GAC5B,IAAI,KAAK,KAAK,YAAY,OAAO;GACjC,MAAM,MAAM,KAAK;GACjB,OAAO,CAAC,EAAE,KAAK,MAAM,KAAK;EAC5B;;;;;;EAOA,WAAW,WAAW;GACpB,IAAI,IAAI,UAAU,SAAS;GAC3B,IAAI,KAAK,KAAK,YAAY,OAAO;GAIjC,IAAI,OAAO,KAAK,MAAM,KAAM,cAAc;GAC1C,OAAO,MAAM;IACX,IAAI,MAAM,OAAQ,IAAI,KAAM,cAAc,IAAI;IAC9C;IACA,IAAI,MAAM,KAAK,YAAY,OAAO;IAClC,OAAO,KAAK,MAAM;GACpB;EACF;;;;EAKA,aAAa,WAAW;GACtB,IAAI,IAAI,UAAU,SAAS;GAC3B,IAAI,KAAK,KAAK,YAAY,OAAO;GAEjC,IAAI,OAAO,CAAE,KAAK,MAAM,KAAO,cAAc;GAC7C,OAAO,MAAM;IACX,IAAI,MAAM,OAAQ,IAAI,KAAM,cAAc,IAAI;IAC9C;IACA,IAAI,KAAK,KAAK,YAAY,OAAO,IAAI;IACrC,OAAO,CAAE,KAAK,MAAM;GACtB;EACF;CACF;;;;CAKA,SAAS,UAAU,UAAU;EAC3B,OAAO,KAAK,MAAM,WAAW,EAAE;CACjC;;;;CAKA,SAAS,cAAc,GAAG;EAIxB,IAAI,MAAM,GAAG,OAAO;EACpB,IAAI,GAAG,IAAI;EACX,IAAI,KAAK;EAAI,IAAI,KAAK,GAAG;GAAE,IAAI,IAAG;GAAI,IAAI;EAAG;EAC7C,IAAI,KAAK;EAAI,IAAI,KAAK,GAAG;GAAE,IAAI,IAAI;GAAG,IAAI;EAAG;EAC7C,IAAI,KAAK;EAAI,IAAI,KAAK,GAAG;GAAE,IAAI,IAAI;GAAG,IAAI;EAAG;EAC7C,IAAI,KAAK;EAAI,IAAI,KAAK,GAAG;GAAE,IAAI,IAAI;GAAG,IAAI;EAAG;EAC7C,OAAO,KAAM,KAAK,MAAO;CAC3B;CAEA,OAAO,QAAQ,SAAS"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { __commonJSMin, __require } from "../../../_virtual/_rolldown/runtime.mjs";
|
|
2
|
+
import { require_defs } from "./defs.mjs";
|
|
3
|
+
import { require_format } from "./format.mjs";
|
|
4
|
+
import { require_error } from "./error.mjs";
|
|
5
|
+
|
|
6
|
+
//#region ../node_modules/amqplib/lib/channel.js
|
|
7
|
+
var require_channel = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
8
|
+
var defs = require_defs();
|
|
9
|
+
var closeMsg = require_format().closeMessage;
|
|
10
|
+
var inspect = require_format().inspect;
|
|
11
|
+
var methodName = require_format().methodName;
|
|
12
|
+
var assert = __require("assert");
|
|
13
|
+
var EventEmitter = __require("events");
|
|
14
|
+
var fmt = __require("util").format;
|
|
15
|
+
var IllegalOperationError = require_error().IllegalOperationError;
|
|
16
|
+
var stackCapture = require_error().stackCapture;
|
|
17
|
+
var Channel = class extends EventEmitter {
|
|
18
|
+
constructor(connection) {
|
|
19
|
+
super();
|
|
20
|
+
this.connection = connection;
|
|
21
|
+
this.reply = null;
|
|
22
|
+
this.pending = [];
|
|
23
|
+
this.lwm = 1;
|
|
24
|
+
this.unconfirmed = [];
|
|
25
|
+
this.on("ack", this.handleConfirm.bind(this, function(cb) {
|
|
26
|
+
if (cb) cb(null);
|
|
27
|
+
}));
|
|
28
|
+
this.on("nack", this.handleConfirm.bind(this, function(cb) {
|
|
29
|
+
if (cb) cb(/* @__PURE__ */ new Error("message nacked"));
|
|
30
|
+
}));
|
|
31
|
+
this.on("close", function() {
|
|
32
|
+
var cb;
|
|
33
|
+
while (cb = this.unconfirmed.shift()) if (cb) cb(/* @__PURE__ */ new Error("channel closed"));
|
|
34
|
+
});
|
|
35
|
+
this.handleMessage = acceptDeliveryOrReturn;
|
|
36
|
+
}
|
|
37
|
+
setOptions(options) {
|
|
38
|
+
this.options = options;
|
|
39
|
+
}
|
|
40
|
+
allocate() {
|
|
41
|
+
this.ch = this.connection.freshChannel(this, this.options);
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
sendImmediately(method, fields) {
|
|
45
|
+
return this.connection.sendMethod(this.ch, method, fields);
|
|
46
|
+
}
|
|
47
|
+
sendOrEnqueue(method, fields, reply) {
|
|
48
|
+
if (!this.reply) {
|
|
49
|
+
assert(this.pending.length === 0);
|
|
50
|
+
this.reply = reply;
|
|
51
|
+
this.sendImmediately(method, fields);
|
|
52
|
+
} else this.pending.push({
|
|
53
|
+
method,
|
|
54
|
+
fields,
|
|
55
|
+
reply
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
sendMessage(fields, properties, content) {
|
|
59
|
+
return this.connection.sendMessage(this.ch, defs.BasicPublish, fields, defs.BasicProperties, properties, content);
|
|
60
|
+
}
|
|
61
|
+
_rpc(method, fields, expect, cb) {
|
|
62
|
+
var self = this;
|
|
63
|
+
function reply(err, f) {
|
|
64
|
+
if (err === null) if (f.id === expect) return cb(null, f);
|
|
65
|
+
else {
|
|
66
|
+
var expectedName = methodName(expect);
|
|
67
|
+
var e = new Error(fmt("Expected %s; got %s", expectedName, inspect(f, false)));
|
|
68
|
+
self.closeWithError(f.id, fmt("Expected %s; got %s", expectedName, methodName(f.id)), defs.constants.UNEXPECTED_FRAME, e);
|
|
69
|
+
return cb(e);
|
|
70
|
+
}
|
|
71
|
+
else if (err instanceof Error) return cb(err);
|
|
72
|
+
else {
|
|
73
|
+
var e = method === (err.fields.classId << 16) + err.fields.methodId ? fmt("Operation failed: %s; %s", methodName(method), closeMsg(err)) : fmt("Channel closed by server: %s", closeMsg(err));
|
|
74
|
+
var closeFrameError = new Error(e);
|
|
75
|
+
closeFrameError.code = err.fields.replyCode;
|
|
76
|
+
closeFrameError.classId = err.fields.classId;
|
|
77
|
+
closeFrameError.methodId = err.fields.methodId;
|
|
78
|
+
return cb(closeFrameError);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
this.sendOrEnqueue(method, fields, reply);
|
|
82
|
+
}
|
|
83
|
+
toClosed(capturedStack) {
|
|
84
|
+
this._rejectPending();
|
|
85
|
+
invalidateSend(this, "Channel closed", capturedStack);
|
|
86
|
+
this.accept = invalidOp("Channel closed", capturedStack);
|
|
87
|
+
this.connection.releaseChannel(this.ch);
|
|
88
|
+
this.emit("close");
|
|
89
|
+
}
|
|
90
|
+
toClosing(capturedStack, k) {
|
|
91
|
+
var send = this.sendImmediately.bind(this);
|
|
92
|
+
invalidateSend(this, "Channel closing", capturedStack);
|
|
93
|
+
this.accept = function(f) {
|
|
94
|
+
if (f.id === defs.ChannelCloseOk) {
|
|
95
|
+
if (k) k();
|
|
96
|
+
var s = stackCapture("ChannelCloseOk frame received");
|
|
97
|
+
this.toClosed(s);
|
|
98
|
+
} else if (f.id === defs.ChannelClose) send(defs.ChannelCloseOk, {});
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
_rejectPending() {
|
|
102
|
+
function rej(r) {
|
|
103
|
+
r(/* @__PURE__ */ new Error("Channel ended, no reply will be forthcoming"));
|
|
104
|
+
}
|
|
105
|
+
if (this.reply !== null) rej(this.reply);
|
|
106
|
+
this.reply = null;
|
|
107
|
+
var discard;
|
|
108
|
+
while (discard = this.pending.shift()) rej(discard.reply);
|
|
109
|
+
this.pending = null;
|
|
110
|
+
}
|
|
111
|
+
closeBecause(reason, code, k) {
|
|
112
|
+
this.sendImmediately(defs.ChannelClose, {
|
|
113
|
+
replyText: reason,
|
|
114
|
+
replyCode: code,
|
|
115
|
+
methodId: 0,
|
|
116
|
+
classId: 0
|
|
117
|
+
});
|
|
118
|
+
var s = stackCapture("closeBecause called: " + reason);
|
|
119
|
+
this.toClosing(s, k);
|
|
120
|
+
}
|
|
121
|
+
closeWithError(id, reason, code, error) {
|
|
122
|
+
var self = this;
|
|
123
|
+
this.closeBecause(reason, code, function() {
|
|
124
|
+
error.code = code;
|
|
125
|
+
if (id) {
|
|
126
|
+
error.classId = defs.info(id).classId;
|
|
127
|
+
error.methodId = defs.info(id).methodId;
|
|
128
|
+
}
|
|
129
|
+
self.emit("error", error);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
acceptMessageFrame(f) {
|
|
133
|
+
try {
|
|
134
|
+
this.handleMessage = this.handleMessage(f);
|
|
135
|
+
} catch (msg) {
|
|
136
|
+
if (typeof msg === "string") this.closeWithError(f.id, msg, defs.constants.UNEXPECTED_FRAME, new Error(msg));
|
|
137
|
+
else if (msg instanceof Error) this.closeWithError(f.id, "Error while processing message", defs.constants.INTERNAL_ERROR, msg);
|
|
138
|
+
else this.closeWithError(f.id, "Internal error while processing message", defs.constants.INTERNAL_ERROR, new Error(msg.toString()));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
handleConfirm(handle, f) {
|
|
142
|
+
var tag = f.deliveryTag;
|
|
143
|
+
if (f.multiple) {
|
|
144
|
+
var confirmed = this.unconfirmed.splice(0, tag - this.lwm + 1);
|
|
145
|
+
this.lwm = tag + 1;
|
|
146
|
+
confirmed.forEach(handle);
|
|
147
|
+
} else {
|
|
148
|
+
var c;
|
|
149
|
+
if (tag === this.lwm) {
|
|
150
|
+
c = this.unconfirmed.shift();
|
|
151
|
+
this.lwm++;
|
|
152
|
+
while (this.unconfirmed[0] === null) {
|
|
153
|
+
this.unconfirmed.shift();
|
|
154
|
+
this.lwm++;
|
|
155
|
+
}
|
|
156
|
+
} else {
|
|
157
|
+
c = this.unconfirmed[tag - this.lwm];
|
|
158
|
+
this.unconfirmed[tag - this.lwm] = null;
|
|
159
|
+
}
|
|
160
|
+
handle(c);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
pushConfirmCallback(cb) {
|
|
164
|
+
this.unconfirmed.push(cb || false);
|
|
165
|
+
}
|
|
166
|
+
onBufferDrain() {
|
|
167
|
+
this.emit("drain");
|
|
168
|
+
}
|
|
169
|
+
accept(f) {
|
|
170
|
+
switch (f.id) {
|
|
171
|
+
case void 0:
|
|
172
|
+
case defs.BasicDeliver:
|
|
173
|
+
case defs.BasicReturn:
|
|
174
|
+
case defs.BasicProperties: return this.acceptMessageFrame(f);
|
|
175
|
+
case defs.BasicAck: return this.emit("ack", f.fields);
|
|
176
|
+
case defs.BasicNack: return this.emit("nack", f.fields);
|
|
177
|
+
case defs.BasicCancel: return this.emit("cancel", f.fields);
|
|
178
|
+
case defs.ChannelClose:
|
|
179
|
+
if (this.reply) {
|
|
180
|
+
var reply = this.reply;
|
|
181
|
+
this.reply = null;
|
|
182
|
+
reply(f);
|
|
183
|
+
}
|
|
184
|
+
var emsg = "Channel closed by server: " + closeMsg(f);
|
|
185
|
+
this.sendImmediately(defs.ChannelCloseOk, {});
|
|
186
|
+
var error = new Error(emsg);
|
|
187
|
+
error.code = f.fields.replyCode;
|
|
188
|
+
error.classId = f.fields.classId;
|
|
189
|
+
error.methodId = f.fields.methodId;
|
|
190
|
+
this.emit("error", error);
|
|
191
|
+
var s = stackCapture(emsg);
|
|
192
|
+
this.toClosed(s);
|
|
193
|
+
return;
|
|
194
|
+
case defs.BasicFlow: return this.closeWithError(f.id, "Flow not implemented", defs.constants.NOT_IMPLEMENTED, /* @__PURE__ */ new Error("Flow not implemented"));
|
|
195
|
+
default:
|
|
196
|
+
var reply = this.reply;
|
|
197
|
+
this.reply = null;
|
|
198
|
+
if (this.pending.length > 0) {
|
|
199
|
+
var send = this.pending.shift();
|
|
200
|
+
this.reply = send.reply;
|
|
201
|
+
this.sendImmediately(send.method, send.fields);
|
|
202
|
+
}
|
|
203
|
+
return reply(null, f);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
function invalidOp(msg, stack) {
|
|
208
|
+
return function() {
|
|
209
|
+
throw new IllegalOperationError(msg, stack);
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function invalidateSend(ch, msg, stack) {
|
|
213
|
+
ch.sendImmediately = ch.sendOrEnqueue = ch.sendMessage = invalidOp(msg, stack);
|
|
214
|
+
}
|
|
215
|
+
function acceptDeliveryOrReturn(f) {
|
|
216
|
+
var event;
|
|
217
|
+
if (f.id === defs.BasicDeliver) event = "delivery";
|
|
218
|
+
else if (f.id === defs.BasicReturn) event = "return";
|
|
219
|
+
else throw fmt("Expected BasicDeliver or BasicReturn; got %s", inspect(f));
|
|
220
|
+
var self = this;
|
|
221
|
+
var fields = f.fields;
|
|
222
|
+
return acceptMessage(function(message) {
|
|
223
|
+
message.fields = fields;
|
|
224
|
+
self.emit(event, message);
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
function acceptMessage(continuation) {
|
|
228
|
+
var totalSize = 0, remaining = 0;
|
|
229
|
+
var buffers = null;
|
|
230
|
+
var message = {
|
|
231
|
+
fields: null,
|
|
232
|
+
properties: null,
|
|
233
|
+
content: null
|
|
234
|
+
};
|
|
235
|
+
return headers;
|
|
236
|
+
function headers(f) {
|
|
237
|
+
if (f.id === defs.BasicProperties) {
|
|
238
|
+
message.properties = f.fields;
|
|
239
|
+
totalSize = remaining = f.size;
|
|
240
|
+
if (totalSize === 0) {
|
|
241
|
+
message.content = Buffer.alloc(0);
|
|
242
|
+
continuation(message);
|
|
243
|
+
return acceptDeliveryOrReturn;
|
|
244
|
+
} else return content;
|
|
245
|
+
} else throw "Expected headers frame after delivery";
|
|
246
|
+
}
|
|
247
|
+
function content(f) {
|
|
248
|
+
if (f.content) {
|
|
249
|
+
var size = f.content.length;
|
|
250
|
+
remaining -= size;
|
|
251
|
+
if (remaining === 0) {
|
|
252
|
+
if (buffers !== null) {
|
|
253
|
+
buffers.push(f.content);
|
|
254
|
+
message.content = Buffer.concat(buffers);
|
|
255
|
+
} else message.content = f.content;
|
|
256
|
+
continuation(message);
|
|
257
|
+
return acceptDeliveryOrReturn;
|
|
258
|
+
} else if (remaining < 0) throw fmt("Too much content sent! Expected %d bytes", totalSize);
|
|
259
|
+
else {
|
|
260
|
+
if (buffers !== null) buffers.push(f.content);
|
|
261
|
+
else buffers = [f.content];
|
|
262
|
+
return content;
|
|
263
|
+
}
|
|
264
|
+
} else throw "Expected content frame after headers";
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
var BaseChannel = class extends Channel {
|
|
268
|
+
constructor(connection) {
|
|
269
|
+
super(connection);
|
|
270
|
+
this.consumers = /* @__PURE__ */ new Map();
|
|
271
|
+
}
|
|
272
|
+
registerConsumer(tag, callback) {
|
|
273
|
+
this.consumers.set(tag, callback);
|
|
274
|
+
}
|
|
275
|
+
unregisterConsumer(tag) {
|
|
276
|
+
this.consumers.delete(tag);
|
|
277
|
+
}
|
|
278
|
+
dispatchMessage(fields, message) {
|
|
279
|
+
var consumerTag = fields.consumerTag;
|
|
280
|
+
var consumer = this.consumers.get(consumerTag);
|
|
281
|
+
if (consumer) return consumer(message);
|
|
282
|
+
else throw new Error("Unknown consumer: " + consumerTag);
|
|
283
|
+
}
|
|
284
|
+
handleDelivery(message) {
|
|
285
|
+
return this.dispatchMessage(message.fields, message);
|
|
286
|
+
}
|
|
287
|
+
handleCancel(fields) {
|
|
288
|
+
var result = this.dispatchMessage(fields, null);
|
|
289
|
+
this.unregisterConsumer(fields.consumerTag);
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
module.exports.acceptMessage = acceptMessage;
|
|
294
|
+
module.exports.BaseChannel = BaseChannel;
|
|
295
|
+
module.exports.Channel = Channel;
|
|
296
|
+
}));
|
|
297
|
+
|
|
298
|
+
//#endregion
|
|
299
|
+
export default require_channel();
|
|
300
|
+
|
|
301
|
+
export { require_channel };
|
|
302
|
+
//# sourceMappingURL=channel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/channel.js"],"sourcesContent":["//\n//\n//\n\n// Channel machinery.\n\n'use strict';\n\nvar defs = require('./defs');\nvar closeMsg = require('./format').closeMessage;\nvar inspect = require('./format').inspect;\nvar methodName = require('./format').methodName;\nvar assert = require('assert');\nvar EventEmitter = require('events');\nvar fmt = require('util').format;\nvar IllegalOperationError = require('./error').IllegalOperationError;\nvar stackCapture = require('./error').stackCapture;\n\nclass Channel extends EventEmitter {\n constructor (connection) {\n super();\n\n this.connection = connection;\n // for the presently outstanding RPC\n this.reply = null;\n // for the RPCs awaiting action\n this.pending = [];\n // for unconfirmed messages\n this.lwm = 1; // the least, unconfirmed deliveryTag\n this.unconfirmed = []; // rolling window of delivery callbacks\n this.on('ack', this.handleConfirm.bind(this, function (cb) {\n if (cb)\n cb(null);\n }));\n this.on('nack', this.handleConfirm.bind(this, function (cb) {\n if (cb)\n cb(new Error('message nacked'));\n }));\n this.on('close', function () {\n var cb;\n while (cb = this.unconfirmed.shift()) {\n if (cb)\n cb(new Error('channel closed'));\n }\n });\n // message frame state machine\n this.handleMessage = acceptDeliveryOrReturn;\n }\n\n setOptions(options) {\n this.options = options;\n }\n\n allocate () {\n this.ch = this.connection.freshChannel(this, this.options);\n return this;\n }\n\n // Incoming frames are either notifications of e.g., message delivery,\n // or replies to something we've sent. In general I deal with the\n // former by emitting an event, and with the latter by keeping a track\n // of what's expecting a reply.\n //\n // The AMQP specification implies that RPCs can't be pipelined; that\n // is, you can have only one outstanding RPC on a channel at a\n // time. Certainly that's what RabbitMQ and its clients assume. For\n // this reason, I buffer RPCs if the channel is already waiting for a\n // reply.\n // Just send the damn frame.\n sendImmediately (method, fields) {\n return this.connection.sendMethod(this.ch, method, fields);\n }\n\n // Invariant: !this.reply -> pending.length == 0. That is, whenever we\n // clear a reply, we must send another RPC (and thereby fill\n // this.reply) if there is one waiting. The invariant relevant here\n // and in `accept`.\n sendOrEnqueue (method, fields, reply) {\n if (!this.reply) { // if no reply waiting, we can go\n assert(this.pending.length === 0);\n this.reply = reply;\n this.sendImmediately(method, fields);\n }\n else {\n this.pending.push({\n method: method,\n fields: fields,\n reply: reply\n });\n }\n }\n\n sendMessage (fields, properties, content) {\n return this.connection.sendMessage(\n this.ch,\n defs.BasicPublish, fields,\n defs.BasicProperties, properties,\n content);\n }\n\n // Internal, synchronously resolved RPC; the return value is resolved\n // with the whole frame.\n _rpc (method, fields, expect, cb) {\n var self = this;\n\n function reply (err, f) {\n if (err === null) {\n if (f.id === expect) {\n return cb(null, f);\n }\n else {\n // We have detected a problem, so it's up to us to close the\n // channel\n var expectedName = methodName(expect);\n\n var e = new Error(fmt(\"Expected %s; got %s\",\n expectedName, inspect(f, false)));\n self.closeWithError(f.id, fmt('Expected %s; got %s',\n expectedName, methodName(f.id)),\n defs.constants.UNEXPECTED_FRAME, e);\n return cb(e);\n }\n }\n\n\n // An error will be given if, for example, this is waiting to be\n // sent and the connection closes\n else if (err instanceof Error)\n return cb(err);\n\n\n // A close frame will be given if this is the RPC awaiting reply\n // and the channel is closed by the server\n else {\n // otherwise, it's a close frame\n var closeReason = (err.fields.classId << 16) + err.fields.methodId;\n var e = (method === closeReason)\n ? fmt(\"Operation failed: %s; %s\",\n methodName(method), closeMsg(err))\n : fmt(\"Channel closed by server: %s\", closeMsg(err));\n var closeFrameError = new Error(e);\n closeFrameError.code = err.fields.replyCode;\n closeFrameError.classId = err.fields.classId;\n closeFrameError.methodId = err.fields.methodId;\n return cb(closeFrameError);\n }\n }\n\n this.sendOrEnqueue(method, fields, reply);\n }\n\n // Move to entirely closed state.\n toClosed (capturedStack) {\n this._rejectPending();\n invalidateSend(this, 'Channel closed', capturedStack);\n this.accept = invalidOp('Channel closed', capturedStack);\n this.connection.releaseChannel(this.ch);\n this.emit('close');\n }\n\n // Stop being able to send and receive methods and content. Used when\n // we close the channel. Invokes the continuation once the server has\n // acknowledged the close, but before the channel is moved to the\n // closed state.\n toClosing (capturedStack, k) {\n var send = this.sendImmediately.bind(this);\n invalidateSend(this, 'Channel closing', capturedStack);\n\n this.accept = function (f) {\n if (f.id === defs.ChannelCloseOk) {\n if (k)\n k();\n var s = stackCapture('ChannelCloseOk frame received');\n this.toClosed(s);\n }\n else if (f.id === defs.ChannelClose) {\n send(defs.ChannelCloseOk, {});\n }\n // else ignore frame\n };\n }\n\n _rejectPending () {\n function rej (r) {\n r(new Error(\"Channel ended, no reply will be forthcoming\"));\n }\n if (this.reply !== null)\n rej(this.reply);\n this.reply = null;\n\n var discard;\n while (discard = this.pending.shift())\n rej(discard.reply);\n this.pending = null; // so pushes will break\n }\n\n closeBecause (reason, code, k) {\n this.sendImmediately(defs.ChannelClose, {\n replyText: reason,\n replyCode: code,\n methodId: 0, classId: 0\n });\n var s = stackCapture('closeBecause called: ' + reason);\n this.toClosing(s, k);\n }\n\n // If we close because there's been an error, we need to distinguish\n // between what we tell the server (`reason`) and what we report as\n // the cause in the client (`error`).\n closeWithError (id, reason, code, error) {\n var self = this;\n this.closeBecause(reason, code, function () {\n error.code = code;\n // content frames and consumer errors do not provide a method a class/method ID\n if (id) {\n error.classId = defs.info(id).classId;\n error.methodId = defs.info(id).methodId;\n }\n self.emit('error', error);\n });\n }\n\n // A trampolining state machine for message frames on a channel. A\n // message arrives in at least two frames: first, a method announcing\n // the message (either a BasicDeliver or BasicGetOk); then, a message\n // header with the message properties; then, zero or more content\n // frames.\n // Keep the try/catch localised, in an attempt to avoid disabling\n // optimisation\n acceptMessageFrame (f) {\n try {\n this.handleMessage = this.handleMessage(f);\n }\n catch (msg) {\n if (typeof msg === 'string') {\n this.closeWithError(f.id, msg, defs.constants.UNEXPECTED_FRAME,\n new Error(msg));\n }\n else if (msg instanceof Error) {\n this.closeWithError(f.id, 'Error while processing message',\n defs.constants.INTERNAL_ERROR, msg);\n }\n else {\n this.closeWithError(f.id, 'Internal error while processing message',\n defs.constants.INTERNAL_ERROR,\n new Error(msg.toString()));\n }\n }\n }\n\n handleConfirm (handle, f) {\n var tag = f.deliveryTag;\n var multi = f.multiple;\n\n if (multi) {\n var confirmed = this.unconfirmed.splice(0, tag - this.lwm + 1);\n this.lwm = tag + 1;\n confirmed.forEach(handle);\n }\n else {\n var c;\n if (tag === this.lwm) {\n c = this.unconfirmed.shift();\n this.lwm++;\n // Advance the LWM and the window to the next non-gap, or\n // possibly to the end\n while (this.unconfirmed[0] === null) {\n this.unconfirmed.shift();\n this.lwm++;\n }\n }\n else {\n c = this.unconfirmed[tag - this.lwm];\n this.unconfirmed[tag - this.lwm] = null;\n }\n // Technically, in the single-deliveryTag case, I should report a\n // protocol breach if it's already been confirmed.\n handle(c);\n }\n }\n\n pushConfirmCallback (cb) {\n // `null` is used specifically for marking already confirmed slots,\n // so I coerce `undefined` and `null` to false; functions are never\n // falsey.\n this.unconfirmed.push(cb || false);\n }\n\n onBufferDrain () {\n this.emit('drain');\n }\n\n accept(f) {\n\n switch (f.id) {\n\n // Message frames\n case undefined: // content frame!\n case defs.BasicDeliver:\n case defs.BasicReturn:\n case defs.BasicProperties:\n return this.acceptMessageFrame(f);\n\n // confirmations, need to do confirm.select first\n case defs.BasicAck:\n return this.emit('ack', f.fields);\n case defs.BasicNack:\n return this.emit('nack', f.fields);\n case defs.BasicCancel:\n // The broker can send this if e.g., the queue is deleted.\n return this.emit('cancel', f.fields);\n\n case defs.ChannelClose:\n // Any remote closure is an error to us. Reject the pending reply\n // with the close frame, so it can see whether it was that\n // operation that caused it to close.\n if (this.reply) {\n var reply = this.reply; this.reply = null;\n reply(f);\n }\n var emsg = \"Channel closed by server: \" + closeMsg(f);\n this.sendImmediately(defs.ChannelCloseOk, {});\n\n var error = new Error(emsg);\n error.code = f.fields.replyCode;\n error.classId = f.fields.classId;\n error.methodId = f.fields.methodId;\n this.emit('error', error);\n\n var s = stackCapture(emsg);\n this.toClosed(s);\n return;\n\n case defs.BasicFlow:\n // RabbitMQ doesn't send this, it just blocks the TCP socket\n return this.closeWithError(f.id, \"Flow not implemented\",\n defs.constants.NOT_IMPLEMENTED,\n new Error('Flow not implemented'));\n\n default: // assume all other things are replies\n // Resolving the reply may lead to another RPC; to make sure we\n // don't hold that up, clear this.reply\n var reply = this.reply; this.reply = null;\n // however, maybe there's an RPC waiting to go? If so, that'll\n // fill this.reply again, restoring the invariant. This does rely\n // on any response being recv'ed after resolving the promise,\n // below; hence, I use synchronous defer.\n if (this.pending.length > 0) {\n var send = this.pending.shift();\n this.reply = send.reply;\n this.sendImmediately(send.method, send.fields);\n }\n return reply(null, f);\n }\n }\n}\n\n// Shutdown protocol. There's three scenarios:\n//\n// 1. The application decides to shut the channel\n// 2. The server decides to shut the channel, possibly because of\n// something the application did\n// 3. The connection is closing, so there won't be any more frames\n// going back and forth.\n//\n// 1 and 2 involve an exchange of method frames (Close and CloseOk),\n// while 3 doesn't; the connection simply says \"shutdown\" to the\n// channel, which then acts as if it's closing, without going through\n// the exchange.\n\nfunction invalidOp(msg, stack) {\n return function() {\n throw new IllegalOperationError(msg, stack);\n };\n}\n\nfunction invalidateSend(ch, msg, stack) {\n ch.sendImmediately = ch.sendOrEnqueue = ch.sendMessage =\n invalidOp(msg, stack);\n}\n\n// Kick off a message delivery given a BasicDeliver or BasicReturn\n// frame (BasicGet uses the RPC mechanism)\nfunction acceptDeliveryOrReturn(f) {\n var event;\n if (f.id === defs.BasicDeliver) event = 'delivery';\n else if (f.id === defs.BasicReturn) event = 'return';\n else throw fmt(\"Expected BasicDeliver or BasicReturn; got %s\",\n inspect(f));\n\n var self = this;\n var fields = f.fields;\n return acceptMessage(function(message) {\n message.fields = fields;\n self.emit(event, message);\n });\n}\n\n// Move to the state of waiting for message frames (headers, then\n// one or more content frames)\nfunction acceptMessage(continuation) {\n var totalSize = 0, remaining = 0;\n var buffers = null;\n\n var message = {\n fields: null,\n properties: null,\n content: null\n };\n\n return headers;\n\n // expect a headers frame\n function headers(f) {\n if (f.id === defs.BasicProperties) {\n message.properties = f.fields;\n totalSize = remaining = f.size;\n\n // for zero-length messages, content frames aren't required.\n if (totalSize === 0) {\n message.content = Buffer.alloc(0);\n continuation(message);\n return acceptDeliveryOrReturn;\n }\n else {\n return content;\n }\n }\n else {\n throw \"Expected headers frame after delivery\";\n }\n }\n\n // expect a content frame\n // %%% TODO cancelled messages (sent as zero-length content frame)\n function content(f) {\n if (f.content) {\n var size = f.content.length;\n remaining -= size;\n if (remaining === 0) {\n if (buffers !== null) {\n buffers.push(f.content);\n message.content = Buffer.concat(buffers);\n }\n else {\n message.content = f.content;\n }\n continuation(message);\n return acceptDeliveryOrReturn;\n }\n else if (remaining < 0) {\n throw fmt(\"Too much content sent! Expected %d bytes\",\n totalSize);\n }\n else {\n if (buffers !== null)\n buffers.push(f.content);\n else\n buffers = [f.content];\n return content;\n }\n }\n else throw \"Expected content frame after headers\"\n }\n}\n\n// This adds just a bit more stuff useful for the APIs, but not\n// low-level machinery.\nclass BaseChannel extends Channel {\n constructor (connection) {\n super(connection);\n this.consumers = new Map();\n }\n\n // Not sure I like the ff, it's going to be changing hidden classes\n // all over the place. On the other hand, whaddya do.\n registerConsumer (tag, callback) {\n this.consumers.set(tag, callback);\n }\n\n unregisterConsumer (tag) {\n this.consumers.delete(tag);\n }\n\n dispatchMessage (fields, message) {\n var consumerTag = fields.consumerTag;\n var consumer = this.consumers.get(consumerTag);\n if (consumer) {\n return consumer(message);\n }\n else {\n // %%% Surely a race here\n throw new Error(\"Unknown consumer: \" + consumerTag);\n }\n }\n\n handleDelivery (message) {\n return this.dispatchMessage(message.fields, message);\n }\n\n handleCancel (fields) {\n var result = this.dispatchMessage(fields, null);\n this.unregisterConsumer(fields.consumerTag);\n return result;\n }\n}\n\nmodule.exports.acceptMessage = acceptMessage;\nmodule.exports.BaseChannel = BaseChannel;\nmodule.exports.Channel = Channel;\n"],"x_google_ignoreList":[0],"mappings":"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"}
|