@warlock.js/notifications 5.1.0 → 5.2.2
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 +11 -0
- package/README.md +8 -0
- package/cjs/{channel_api-CH3DxhRU.cjs → channel_api-ChOeNKM1.cjs} +42 -42
- package/cjs/channel_api-ChOeNKM1.cjs.map +1 -0
- package/cjs/index.cjs +1 -1
- package/cjs/index.cjs.map +1 -1
- package/cjs/rabbitmq-driver-Drn1T40o.cjs +3 -0
- package/cjs/{src-Cus6pYPC.cjs → src-Dy5nwVcs.cjs} +57 -29
- package/cjs/src-Dy5nwVcs.cjs.map +1 -0
- package/esm/channels/database-channel.d.mts.map +1 -1
- package/esm/config.d.mts.map +1 -1
- package/esm/dispatch/define-channel.d.mts.map +1 -1
- package/esm/dispatch/define-notification.d.mts.map +1 -1
- package/esm/dispatch/define-notification.mjs.map +1 -1
- package/esm/dispatch/notifications-event-bus.mjs.map +1 -1
- package/esm/dispatch/notify.mjs.map +1 -1
- package/esm/errors.d.mts.map +1 -1
- package/esm/herald/src/communicators/broker.mjs.map +1 -1
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -1
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs +1 -1
- package/esm/herald/src/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -1
- package/esm/herald/src/message-managers/event-consumer.mjs.map +1 -1
- package/esm/herald/src/message-managers/event-message.mjs.map +1 -1
- package/esm/herald/src/message-managers/prepare-consumer-subscription.mjs.map +1 -1
- package/esm/herald/src/use-case-broadcast.mjs.map +1 -1
- package/esm/herald/src/utils/connect-to-broker.mjs.map +1 -1
- package/esm/in-app/base-notifications-repository.d.mts.map +1 -1
- package/esm/in-app/database-notification.d.mts.map +1 -1
- package/esm/in-app/in-app.d.mts.map +1 -1
- package/esm/migration/notification-columns.mjs.map +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs +6 -0
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/mixed/clone/clone.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/number/round.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/number/round.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/object/except.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/object/except.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/object/get.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/object/get.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/object/omit.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/object/omit.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/object/unset.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/object/unset.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/capitalize.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/ltrim.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/readMoreChars.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/rtrim.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/toCamelCase.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/toKebabCase.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/toSnakeCase.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/toStudlyCase.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/trim.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/trim.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/ucfirst.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/string/words.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/string/words.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/utils/escapeRegex.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/utils/lazy.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/utils/tap.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez/reinforcements/esm/utils/tap.mjs.map +1 -0
- package/esm/node_modules/{@mongez → .pnpm/@mongez_supportive-is@2.1.4/node_modules/@mongez}/supportive-is/esm/index.mjs +1 -1
- package/esm/node_modules/.pnpm/@mongez_supportive-is@2.1.4/node_modules/@mongez/supportive-is/esm/index.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/channel_api.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/channel_api.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/api_args.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/api_args.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/bitset.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/bitset.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/channel.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/channel.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/channel_model.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/channel_model.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/codec.mjs +3 -3
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/codec.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/connect.mjs +3 -3
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/connect.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/connection.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/connection.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/credentials.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/credentials.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/defs.mjs +3 -3
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/defs.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/error.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/error.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/format.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/format.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/frame.mjs +3 -3
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/frame.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/heartbeat.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/heartbeat.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/lib/mux.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/lib/mux.mjs.map +1 -0
- package/esm/node_modules/{amqplib → .pnpm/amqplib@0.10.9/node_modules/amqplib}/package.mjs +2 -2
- package/esm/node_modules/.pnpm/amqplib@0.10.9/node_modules/amqplib/package.mjs.map +1 -0
- package/esm/node_modules/{buffer-more-ints → .pnpm/buffer-more-ints@1.0.0/node_modules/buffer-more-ints}/buffer-more-ints.mjs +2 -2
- package/esm/node_modules/.pnpm/buffer-more-ints@1.0.0/node_modules/buffer-more-ints/buffer-more-ints.mjs.map +1 -0
- package/esm/node_modules/{dayjs → .pnpm/dayjs@1.11.23/node_modules/dayjs}/dayjs.min.mjs +2 -2
- package/esm/node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/dayjs.min.mjs.map +1 -0
- package/esm/node_modules/{querystringify → .pnpm/querystringify@2.2.0/node_modules/querystringify}/index.mjs +2 -2
- package/esm/node_modules/.pnpm/querystringify@2.2.0/node_modules/querystringify/index.mjs.map +1 -0
- package/esm/node_modules/{requires-port → .pnpm/requires-port@1.0.0/node_modules/requires-port}/index.mjs +2 -2
- package/esm/node_modules/.pnpm/requires-port@1.0.0/node_modules/requires-port/index.mjs.map +1 -0
- package/esm/node_modules/{url-parse → .pnpm/url-parse@1.5.10/node_modules/url-parse}/index.mjs +4 -4
- package/esm/node_modules/.pnpm/url-parse@1.5.10/node_modules/url-parse/index.mjs.map +1 -0
- package/esm/queue/herald-queue.mjs.map +1 -1
- package/esm/queue/notifications-worker.mjs.map +1 -1
- package/esm/seal/src/factory/validators.mjs.map +1 -1
- package/esm/seal/src/helpers/get-field-value.mjs +2 -2
- package/esm/seal/src/helpers/is-empty-value.mjs +1 -1
- package/esm/seal/src/helpers/validation-helpers.mjs.map +1 -1
- package/esm/seal/src/mutators/array-mutators.mjs +2 -2
- package/esm/seal/src/mutators/date-mutators.mjs +1 -1
- package/esm/seal/src/mutators/number-mutators.mjs +3 -3
- package/esm/seal/src/mutators/number-mutators.mjs.map +1 -1
- package/esm/seal/src/mutators/object-mutators.mjs +3 -3
- package/esm/seal/src/mutators/scalar-mutators.mjs.map +1 -1
- package/esm/seal/src/mutators/string-mutators.mjs +10 -10
- package/esm/seal/src/mutators/string-mutators.mjs.map +1 -1
- package/esm/seal/src/rules/array/array-rules.mjs.map +1 -1
- package/esm/seal/src/rules/common/enum.mjs.map +1 -1
- package/esm/seal/src/rules/common/literal.mjs.map +1 -1
- package/esm/seal/src/rules/common/type-rules.mjs +1 -1
- package/esm/seal/src/rules/common/unknown-key.mjs.map +1 -1
- package/esm/seal/src/rules/conditional/present-with-rules.mjs +2 -2
- package/esm/seal/src/rules/conditional/present-without-rules.mjs +2 -2
- package/esm/seal/src/rules/conditional/required-if-rules.mjs +2 -2
- package/esm/seal/src/rules/conditional/required-if-rules.mjs.map +1 -1
- package/esm/seal/src/rules/conditional/required-with-rules.mjs +2 -2
- package/esm/seal/src/rules/conditional/required-without-rules.mjs +2 -2
- package/esm/seal/src/rules/core/union.mjs.map +1 -1
- package/esm/seal/src/rules/core/when.mjs +2 -2
- package/esm/seal/src/rules/core/when.mjs.map +1 -1
- package/esm/seal/src/rules/date/date-day-rules.mjs.map +1 -1
- package/esm/seal/src/rules/date/date-field-comparison-rules.mjs +2 -2
- package/esm/seal/src/rules/date/date-period-rules.mjs +2 -2
- package/esm/seal/src/rules/date/date-period-rules.mjs.map +1 -1
- package/esm/seal/src/rules/date/date-special-rules.mjs.map +1 -1
- package/esm/seal/src/rules/date/date.mjs +2 -2
- package/esm/seal/src/rules/date/date.mjs.map +1 -1
- package/esm/seal/src/rules/length/length-rules.mjs.map +1 -1
- package/esm/seal/src/rules/number/number-rules.mjs +2 -2
- package/esm/seal/src/rules/scalar/accepted-rule.mjs.map +1 -1
- package/esm/seal/src/rules/scalar/declined-rule.mjs.map +1 -1
- package/esm/seal/src/rules/string/credit-card.mjs.map +1 -1
- package/esm/seal/src/rules/string/email.mjs +1 -1
- package/esm/seal/src/rules/string/id-formats.mjs.map +1 -1
- package/esm/seal/src/rules/string/matches.mjs +1 -1
- package/esm/seal/src/rules/string/string-comparison.mjs.map +1 -1
- package/esm/seal/src/standard-schema/json-schema.mjs.map +1 -1
- package/esm/seal/src/standard-schema/map-result.mjs.map +1 -1
- package/esm/seal/src/validators/base-validator.mjs +2 -2
- package/esm/seal/src/validators/date-validator.mjs +1 -1
- package/esm/seal/src/validators/date-validator.mjs.map +1 -1
- package/esm/seal/src/validators/discriminated-union-validator.mjs +1 -1
- package/esm/seal/src/validators/discriminated-union-validator.mjs.map +1 -1
- package/esm/seal/src/validators/lazy-validator.mjs.map +1 -1
- package/esm/seal/src/validators/methods/required-methods.mjs.map +1 -1
- package/esm/seal/src/validators/numeric-validator.mjs +1 -1
- package/esm/seal/src/validators/object-validator.mjs +3 -3
- package/esm/seal/src/validators/object-validator.mjs.map +1 -1
- package/esm/seal/src/validators/record-validator.mjs +1 -1
- package/esm/seal/src/validators/record-validator.mjs.map +1 -1
- package/esm/seal/src/validators/scalar-validator.mjs.map +1 -1
- package/esm/seal/src/validators/union-validator.mjs.map +1 -1
- package/llms-full.txt +4 -0
- package/package.json +9 -6
- package/skills/notifications-basics/SKILL.md +4 -0
- package/cjs/channel_api-CH3DxhRU.cjs.map +0 -1
- package/cjs/chunk-fl3r8ClO.cjs +0 -41
- package/cjs/rabbitmq-driver-CJtyxjUQ.cjs +0 -3
- package/cjs/src-Cus6pYPC.cjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs +0 -6
- package/esm/node_modules/@mongez/reinforcements/esm/Random/_internal.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/number/round.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/object/except.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/object/get.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/object/omit.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/object/unset.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/capitalize.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/ltrim.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/readMoreChars.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/rtrim.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/toCamelCase.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/toKebabCase.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/toSnakeCase.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/toStudlyCase.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/trim.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/ucfirst.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/string/words.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/utils/escapeRegex.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/utils/lazy.mjs.map +0 -1
- package/esm/node_modules/@mongez/reinforcements/esm/utils/tap.mjs.map +0 -1
- package/esm/node_modules/@mongez/supportive-is/esm/index.mjs.map +0 -1
- package/esm/node_modules/amqplib/channel_api.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/api_args.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/bitset.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/channel.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/channel_model.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/codec.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/connect.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/connection.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/credentials.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/defs.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/error.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/format.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/frame.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/heartbeat.mjs.map +0 -1
- package/esm/node_modules/amqplib/lib/mux.mjs.map +0 -1
- package/esm/node_modules/amqplib/package.mjs.map +0 -1
- package/esm/node_modules/buffer-more-ints/buffer-more-ints.mjs.map +0 -1
- package/esm/node_modules/dayjs/dayjs.min.mjs.map +0 -1
- package/esm/node_modules/querystringify/index.mjs.map +0 -1
- package/esm/node_modules/requires-port/index.mjs.map +0 -1
- package/esm/node_modules/url-parse/index.mjs.map +0 -1
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/bool.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/color.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/date.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/float.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/id.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/int.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/nanoid.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/pick.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/random.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/sample.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/string.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/token.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/uuid.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/Random/weighted.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/async/retry.mjs +0 -0
- /package/esm/node_modules/{@mongez → .pnpm/@mongez_reinforcements@4.0.1/node_modules/@mongez}/reinforcements/esm/index.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_internal.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/Random/_internal.mjs"],"sourcesContent":["//#region ../reinforcements/src/Random/_internal.ts\nconst ALPHANUMERIC = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\nconst URL_SAFE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-\";\nconst cryptoRef = typeof globalThis !== \"undefined\" && globalThis.crypto ? globalThis.crypto : {};\nconst BYTE_VALUES = 256;\n/** Thrown by every security-shaped generator when no CSPRNG exists. */\nconst NO_CSPRNG_ERROR = \"No CSPRNG available: crypto.getRandomValues is required\";\n/**\n* Return the runtime CSPRNG, throwing when there is none. Tokens, ids\n* and uuids must never silently degrade to the seedable `next()` — a\n* predictable token is worse than a loud failure.\n*/\nfunction requireCsprng() {\n\tif (typeof cryptoRef.getRandomValues !== \"function\") throw new Error(NO_CSPRNG_ERROR);\n\treturn cryptoRef.getRandomValues.bind(cryptoRef);\n}\n/** Cryptographically secure random bytes. Throws without a CSPRNG. */\nfunction cryptoBytes(size) {\n\treturn requireCsprng()(new Uint8Array(size));\n}\n/**\n* Build a `length`-character string out of `charset` using CSPRNG\n* bytes. Bytes above the largest multiple of the charset size are\n* rejected and redrawn so every character stays equally likely — a\n* plain `byte % charset.length` would bias the leading characters.\n*\n* Throws when no CSPRNG is available, whatever the requested length.\n*/\nfunction cryptoStringOf(charset, length) {\n\tconst getRandomValues = requireCsprng();\n\tconst size = charset.length;\n\tconst limit = Math.floor(BYTE_VALUES / size) * size;\n\tlet text = \"\";\n\twhile (text.length < length) {\n\t\tconst bytes = getRandomValues(new Uint8Array(length - text.length));\n\t\tfor (let i = 0; i < bytes.length && text.length < length; i++) {\n\t\t\tif (bytes[i] >= limit) continue;\n\t\t\ttext += charset.charAt(bytes[i] % size);\n\t\t}\n\t}\n\treturn text;\n}\nlet rngState;\nfunction setSeed(seed) {\n\trngState = seed;\n}\n/**\n* Return the next pseudo-random value in `[0, 1)`. Uses `Math.random` by\n* default; switches to a seeded mulberry32 PRNG when `setSeed` is called\n* with a numeric seed.\n*/\nfunction next() {\n\tif (rngState === void 0) return Math.random();\n\trngState |= 0;\n\trngState = rngState + 1831565813 | 0;\n\tlet t = rngState;\n\tt = Math.imul(t ^ t >>> 15, t | 1);\n\tt ^= t + Math.imul(t ^ t >>> 7, t | 61);\n\treturn ((t ^ t >>> 14) >>> 0) / 4294967296;\n}\n\n//#endregion\nexport { ALPHANUMERIC, URL_SAFE, cryptoBytes, cryptoRef, cryptoStringOf, next, setSeed };\n//# sourceMappingURL=_internal.mjs.map"],"x_google_ignoreList":[0],"mappings":";AAGA,MAAM,YAAY,OAAO,eAAe,eAAe,WAAW,SAAS,WAAW,SAAS,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clone.mjs","names":[],"sources":["../../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/mixed/clone/clone.mjs"],"sourcesContent":["//#region ../reinforcements/src/mixed/clone/clone.ts\n/**\n* Deep-clone a value. Supports plain objects, arrays, `Date`, `RegExp`,\n* `Map`, `Set`, `Error`, and typed arrays. Handles circular references\n* via an internal `WeakMap`.\n*\n* Non-plain class instances are returned by reference — cloning custom\n* constructors requires the class's own copy logic, so this function\n* stops at that boundary rather than silently producing a half-clone.\n*\n* @example\n* const original = { user: { name: \"Ada\" }, tags: [\"x\"] };\n* const copy = clone(original);\n*\n* copy.user.name = \"Bob\";\n* original.user.name; // \"Ada\"\n*/\nfunction clone(value) {\n\tif (value === null || typeof value !== \"object\") return value;\n\treturn cloneDeep(value, /* @__PURE__ */ new WeakMap());\n}\nfunction cloneDeep(value, seen) {\n\tif (value === null || typeof value !== \"object\") return value;\n\tif (seen.has(value)) return seen.get(value);\n\tif (value instanceof Date) return new Date(value.getTime());\n\tif (value instanceof RegExp) return cloneRegExp(value);\n\tif (value instanceof Error) return cloneError(value, seen);\n\tif (Array.isArray(value)) return cloneArray(value, seen);\n\tif (value instanceof Map) return cloneMap(value, seen);\n\tif (value instanceof Set) return cloneSet(value, seen);\n\tif (ArrayBuffer.isView(value) && !(value instanceof DataView)) return cloneTypedArray(value);\n\tif (value instanceof ArrayBuffer) return value.slice(0);\n\treturn clonePlainObject(value, seen);\n}\nfunction cloneRegExp(value) {\n\tconst copy = new RegExp(value.source, value.flags);\n\tcopy.lastIndex = value.lastIndex;\n\treturn copy;\n}\nfunction cloneError(value, seen) {\n\tconst Ctor = value.constructor;\n\tconst copy = new Ctor(value.message);\n\tcopy.stack = value.stack;\n\tcopy.name = value.name;\n\tseen.set(value, copy);\n\tfor (const key of Object.keys(value)) copy[key] = cloneDeep(value[key], seen);\n\treturn copy;\n}\nfunction cloneArray(value, seen) {\n\tconst copy = [];\n\tseen.set(value, copy);\n\tfor (const item of value) copy.push(cloneDeep(item, seen));\n\treturn copy;\n}\nfunction cloneMap(value, seen) {\n\tconst copy = /* @__PURE__ */ new Map();\n\tseen.set(value, copy);\n\tfor (const [key, val] of value) copy.set(cloneDeep(key, seen), cloneDeep(val, seen));\n\treturn copy;\n}\nfunction cloneSet(value, seen) {\n\tconst copy = /* @__PURE__ */ new Set();\n\tseen.set(value, copy);\n\tfor (const item of value) copy.add(cloneDeep(item, seen));\n\treturn copy;\n}\nfunction cloneTypedArray(value) {\n\tconst Ctor = value.constructor;\n\treturn new Ctor(value.buffer.slice(0));\n}\nfunction clonePlainObject(value, seen) {\n\tconst proto = Object.getPrototypeOf(value);\n\tif (!(proto === Object.prototype || proto === null)) return value;\n\tconst copy = Object.create(proto);\n\tseen.set(value, copy);\n\tfor (const key of Object.keys(value)) copy[key] = cloneDeep(value[key], seen);\n\treturn copy;\n}\n\n//#endregion\nexport { clone as default };\n//# sourceMappingURL=clone.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;AAiBA,SAAS,MAAM,OAAO;CACrB,IAAI,UAAU,QAAQ,OAAO,UAAU,UAAU,OAAO;CACxD,OAAO,UAAU,uBAAuB,IAAI,QAAQ,CAAC;AACtD;AACA,SAAS,UAAU,OAAO,MAAM;CAC/B,IAAI,UAAU,QAAQ,OAAO,UAAU,UAAU,OAAO;CACxD,IAAI,KAAK,IAAI,KAAK,GAAG,OAAO,KAAK,IAAI,KAAK;CAC1C,IAAI,iBAAiB,MAAM,OAAO,IAAI,KAAK,MAAM,QAAQ,CAAC;CAC1D,IAAI,iBAAiB,QAAQ,OAAO,YAAY,KAAK;CACrD,IAAI,iBAAiB,OAAO,OAAO,WAAW,OAAO,IAAI;CACzD,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,WAAW,OAAO,IAAI;CACvD,IAAI,iBAAiB,KAAK,OAAO,SAAS,OAAO,IAAI;CACrD,IAAI,iBAAiB,KAAK,OAAO,SAAS,OAAO,IAAI;CACrD,IAAI,YAAY,OAAO,KAAK,KAAK,EAAE,iBAAiB,WAAW,OAAO,gBAAgB,KAAK;CAC3F,IAAI,iBAAiB,aAAa,OAAO,MAAM,MAAM,CAAC;CACtD,OAAO,iBAAiB,OAAO,IAAI;AACpC;AACA,SAAS,YAAY,OAAO;CAC3B,MAAM,OAAO,IAAI,OAAO,MAAM,QAAQ,MAAM,KAAK;CACjD,KAAK,YAAY,MAAM;CACvB,OAAO;AACR;AACA,SAAS,WAAW,OAAO,MAAM;CAChC,MAAM,OAAO,MAAM;CACnB,MAAM,OAAO,IAAI,KAAK,MAAM,OAAO;CACnC,KAAK,QAAQ,MAAM;CACnB,KAAK,OAAO,MAAM;CAClB,KAAK,IAAI,OAAO,IAAI;CACpB,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GAAG,KAAK,OAAO,UAAU,MAAM,MAAM,IAAI;CAC5E,OAAO;AACR;AACA,SAAS,WAAW,OAAO,MAAM;CAChC,MAAM,OAAO,CAAC;CACd,KAAK,IAAI,OAAO,IAAI;CACpB,KAAK,MAAM,QAAQ,OAAO,KAAK,KAAK,UAAU,MAAM,IAAI,CAAC;CACzD,OAAO;AACR;AACA,SAAS,SAAS,OAAO,MAAM;CAC9B,MAAM,uBAAuB,IAAI,IAAI;CACrC,KAAK,IAAI,OAAO,IAAI;CACpB,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,KAAK,IAAI,UAAU,KAAK,IAAI,GAAG,UAAU,KAAK,IAAI,CAAC;CACnF,OAAO;AACR;AACA,SAAS,SAAS,OAAO,MAAM;CAC9B,MAAM,uBAAuB,IAAI,IAAI;CACrC,KAAK,IAAI,OAAO,IAAI;CACpB,KAAK,MAAM,QAAQ,OAAO,KAAK,IAAI,UAAU,MAAM,IAAI,CAAC;CACxD,OAAO;AACR;AACA,SAAS,gBAAgB,OAAO;CAC/B,MAAM,OAAO,MAAM;CACnB,OAAO,IAAI,KAAK,MAAM,OAAO,MAAM,CAAC,CAAC;AACtC;AACA,SAAS,iBAAiB,OAAO,MAAM;CACtC,MAAM,QAAQ,OAAO,eAAe,KAAK;CACzC,IAAI,EAAE,UAAU,OAAO,aAAa,UAAU,OAAO,OAAO;CAC5D,MAAM,OAAO,OAAO,OAAO,KAAK;CAChC,KAAK,IAAI,OAAO,IAAI;CACpB,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GAAG,KAAK,OAAO,UAAU,MAAM,MAAM,IAAI;CAC5E,OAAO;AACR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"round.mjs","names":[],"sources":["../../../../../../../../../../../node_modules/@mongez/reinforcements/esm/number/round.mjs"],"sourcesContent":["//#region ../reinforcements/src/number/round.ts\n/**\n* Round `value` to the given number of decimal places (banker's-style\n* `Math.round`).\n*\n* @example\n* round(1.235, 2); // 1.24\n* round(1.5); // 2\n*/\nfunction round(value, precision = 2) {\n\tconst multiplier = Math.pow(10, precision || 0);\n\treturn Math.round(value * multiplier) / multiplier;\n}\n\n//#endregion\nexport { round as default };\n//# sourceMappingURL=round.mjs.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AASA,SAAS,MAAM,OAAO,YAAY,GAAG;CACpC,MAAM,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC;CAC9C,OAAO,KAAK,MAAM,QAAQ,UAAU,IAAI;AACzC"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../../../../../node_modules/@mongez/supportive-is/esm/index.mjs"],"sourcesContent":["//#region ../supportive-is/src/index.ts\n/**\n* Determine whether the given value is a number whatever if its data type is String or Number\n*/\nfunction isNumeric(value) {\n\treturn /^[+-]?\\d+(\\.\\d+)?([Ee][+-]?\\d+)?$/.test(String(value));\n}\n/**\n* Check if the given value is int\n*/\nconst isInt = (value) => typeof value === \"number\" && Number.isInteger(value);\n/**\n* Check if the given value is float\n*/\nconst isFloat = (value) => typeof value === \"number\" && Number.isFinite(value) && /^-?\\d+\\.\\d+$/.test(String(value));\n/**\n* Check if the given value is a regex\n*/\nconst isRegex = (value) => Boolean(value) && value.constructor?.name === \"RegExp\";\n/**\n* Check if the given value is an object\n*/\nconst isObject = (value) => Boolean(value) && typeof value === \"object\";\n/**\n* Check if the given value is a plain object\n*/\nconst isPlainObject = (value) => {\n\tif (!value || typeof value !== \"object\") return false;\n\tif (Object.getPrototypeOf(value) === null) return true;\n\treturn value.constructor?.name === \"Object\";\n};\n/**\n* Check if the given value is validId\n*/\nconst isValidId = (value) => Boolean(value && /^[A-Za-z][\\w\\-:.]*$/.test(String(value)));\n/**\n* Check if the given value is a form element\n*/\nconst isFormElement = (value) => typeof HTMLFormElement === \"undefined\" ? false : value instanceof HTMLFormElement;\n/**\n* Check if the given value is a form data\n*/\nconst isFormData = (value) => value instanceof FormData;\n/**\n* Check if the given value is iterable\n*/\nconst isIterable = (value) => value !== null && value !== void 0 && typeof value[Symbol.iterator] === \"function\";\n/**\n* Check if the given value is a scalar value\n*/\nconst isScalar = (value) => [\n\t\"string\",\n\t\"boolean\",\n\t\"number\",\n\t\"symbol\",\n\t\"bigint\"\n].includes(typeof value);\n/**\n* Check if the given value is a string\n*/\nconst isString = (value) => typeof value === \"string\";\n/**\n* Check if the given value is a pr value\n*/\nconst isPrimitive = (value) => [\n\t\"string\",\n\t\"boolean\",\n\t\"number\",\n\t\"bigint\"\n].includes(typeof value);\n/**\n* Check if the given value is a promise\n*/\nconst isPromise = (value) => Boolean(value) && value instanceof Promise;\n/**\n* Check if the given value is a date\n*/\nconst isDate = (value) => Boolean(value) && typeof value === \"object\" && value instanceof Date;\n/**\n* Check if the given value is a generator\n*/\nconst isGenerator = (value) => Boolean(value) && typeof value === \"object\" && typeof value.next === \"function\" && typeof value[Symbol.iterator] === \"function\" && value[Symbol.iterator]() === value;\n/**\n* Check if the given value is empty\n* Zero does not considered empty\n* Empty object is considered empty\n* Empty array is considered empty\n*/\nconst isEmpty = (value) => {\n\tif ([\n\t\t0,\n\t\ttrue,\n\t\tfalse\n\t].includes(value)) return false;\n\tif ([\n\t\t\"\",\n\t\tnull,\n\t\tvoid 0\n\t].includes(value)) return true;\n\tif (typeof value === \"number\" && Number.isNaN(value)) return false;\n\tif (value instanceof Date) return false;\n\tif (value instanceof Map || value instanceof Set) return value.size === 0;\n\tif (typeof value === \"object\" && !Array.isArray(value) && typeof value[Symbol.iterator] !== \"function\") return Object.keys(value).length === 0;\n\tif (isIterable(value)) return value.length === 0;\n\tif (isNumeric(value)) return false;\n\treturn true;\n};\n/**\n* Check if the given value is a valid json\n*/\nconst isJson = (value) => {\n\tif (!value || typeof value !== \"string\") return false;\n\tif (![\"[\", \"{\"].includes(value?.[0])) return false;\n\ttry {\n\t\tJSON.parse(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n/**\n* Check if the given value is valid url\n*/\nconst isUrl = (value) => {\n\tif (!value || typeof value !== \"string\") return false;\n\ttry {\n\t\tconst url = new URL(value);\n\t\tif (![\"http:\", \"https:\"].includes(url.protocol)) return false;\n\t\tconst hostname = url.hostname;\n\t\tif (!hostname.includes(\".\")) return false;\n\t\tif (hostname.split(\".\").some((label) => label.length === 0)) return false;\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n/**\n* Check if the given value is a valid email\n*/\nconst isEmail = (value) => typeof value === \"string\" && /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value);\n/**\n* Check if current user is opening from mobile\n*/\nconst isMobile = {\n\t/**\n\t* Determine whether the current visitor is opening from an Android device\n\t*/\n\tandroid: () => navigator.userAgent.match(/Android/i) !== null,\n\t/**\n\t* Determine whether the current visitor is opening from an ios device\n\t*/\n\tios: () => navigator.userAgent.match(/iPhone|iPad|iPod/i) !== null,\n\t/**\n\t* Determine whether the current visitor is opening from an Iphone\n\t*/\n\tiphone: () => navigator.userAgent.match(/iPhone/i) !== null,\n\t/**\n\t* Determine whether the current visitor is opening from an ipad\n\t*/\n\tipad: () => navigator.userAgent.match(/iPad/i) !== null,\n\t/**\n\t* Determine whether the current visitor is opening from an ipod\n\t*/\n\tipod: () => navigator.userAgent.match(/iPod/i) !== null,\n\t/**\n\t* Determine whether the current visitor is opening from an windows mobile\n\t*/\n\twindows: () => navigator.userAgent.match(/IEMobile/i) !== null,\n\t/**\n\t* Determine whether the current visitor is opening from mobile whatever its type\n\t*/\n\tany: () => isMobile.android() || isMobile.ios() || isMobile.windows()\n};\n/**\n* Determine if current user is opening from macOS\n*/\nconst isMac = () => navigator.userAgent.match(/mac/i) !== null;\n/**\n* Check if current browser is the given name\n*/\nconst isBrowser = (browser) => {\n\treturn {\n\t\tchrome: isChrome(),\n\t\tfirefox: isFirefox(),\n\t\topera: isOpera(),\n\t\tedge: isEdge(),\n\t\tie: isIE(),\n\t\tsafari: isSafari()\n\t}[browser.toLowerCase()] === true;\n};\n/**\n* Check if current browser is chrome browser\n*/\nconst isChrome = () => !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);\n/**\n* Check if current browser is firefox\n*/\nconst isFirefox = () => typeof window.InstallTrigger !== \"undefined\";\n/**\n* Check if current browser is safari\n*/\nconst isSafari = () => {\n\tif (typeof navigator === \"undefined\") return false;\n\tconst ua = navigator.userAgent || \"\";\n\treturn /Safari/i.test(ua) && !/Chrome|Chromium|Edg|OPR|Android/i.test(ua);\n};\n/**\n* Check if current browser is opera\n*/\nconst isOpera = () => {\n\tif (typeof window === \"undefined\") return false;\n\tconst w = window;\n\treturn !!w.opr && !!w.opr.addons || !!w.opera || typeof navigator !== \"undefined\" && navigator.userAgent.indexOf(\" OPR/\") >= 0;\n};\n/**\n* Check if current browser is internet explorer\n*/\nconst isIE = () => !!document.documentMode;\n/**\n* Check if current browser is edge\n*/\nconst isEdge = () => {\n\treturn !!!document.documentMode && !!window.StyleMedia;\n};\n/**\n* Determine whether the current visitor is opening from desktop\n*/\nconst isDesktop = () => !isMobile.any();\n/**\n* A simple lightweight library to validate values against certain types of data\n* For full documentation on github\n* Repo: https://github.com/hassanzohdy/supportive-is\n*\n* First released 01/12/2017\n* Licensed under MIT (http://opensource.org/licenses/MIT)\n*/\nconst Is = {\n\t/**\n\t* Determine whether the given value is a number whatever if its data type is String or Number\n\t*/\n\tnumeric: isNumeric,\n\t/**\n\t* Determine whether the given value is an integer and its data type is number\n\t* As Number.isInteger considers 1.0 to be valid integer, regex will be used instead\n\t*/\n\tint: isInt,\n\t/**\n\t* Determine whether the given value is a float number and its data type is number\n\t*/\n\tfloat: isFloat,\n\t/**\n\t* Determine whether the given value is a regular expression\n\t*/\n\tregex: isRegex,\n\t/**\n\t* Determine whether the given value is an object\n\t*/\n\tobject: isObject,\n\t/**\n\t* Determine whether the given value is a plain object\n\t*/\n\tplainObject: isPlainObject,\n\t/**\n\t* Determine whether the given value is an array\n\t*/\n\tarray: Array.isArray,\n\t/**\n\t* Determine whether the given value is valid html attribute `id`\n\t*/\n\tvalidHtmlId: isValidId,\n\t/**\n\t* determine if the given value is an instance of form element\n\t*/\n\tformElement: isFormElement,\n\t/**\n\t* @alias formElement\n\t*/\n\tform: isFormElement,\n\t/**\n\t* determine if the given value is an instance of form data\n\t*/\n\tformData: isFormData,\n\t/**\n\t* Determine whether the given value is iterable\n\t*/\n\titerable: isIterable,\n\t/**\n\t* Determine whether the given value is a scalar\n\t* Scalar types are strings, booleans, integers and\n\t*/\n\tscalar: isScalar,\n\t/**\n\t* Determine if the given value is a primitive value\n\t*/\n\tprimitive: isPrimitive,\n\t/**\n\t* Determine whether the given value is a promise\n\t*/\n\tpromise: isPromise,\n\t/**\n\t* Determine whether the given value is a date\n\t*/\n\tdate: isDate,\n\t/**\n\t* Determine whether the given value is a generator\n\t*/\n\tgenerator: isGenerator,\n\t/**\n\t* Determine whether the given value if an empty\n\t* This can be validated against any type of values\n\t* undefined or nullable values will be considered empty\n\t* Objects that doesn't have any properties will be considered empty\n\t* Arrays and Strings will be empty based on its length\n\t* The 0 'Zero\" number will not be considered empty\n\t*/\n\tempty: isEmpty,\n\t/**\n\t* Determine whether the given value is a valid json string\n\t*/\n\tjson: isJson,\n\t/**\n\t* Determine whether the given value is a valid url\n\t*/\n\turl: isUrl,\n\t/**\n\t* Determine whether the given value is a valid email\n\t*/\n\temail: isEmail,\n\t/**\n\t* Determine the current visitor is opening from mobile\n\t* Please Note this method depends on the user agent\n\t*/\n\tmobile: isMobile,\n\t/**\n\t* Determine if current user is opening from macOS\n\t*/\n\tmac: isMac,\n\t/**\n\t* Determine whether the current visitor is opening from desktop\n\t*/\n\tdesktop: isDesktop,\n\t/**\n\t* Check if the current browser is the given name\n\t* To detect browser version as well, pass the version number as the second argument\n\t*/\n\tbrowser: isBrowser,\n\tchrome: isChrome,\n\tfirefox: isFirefox,\n\tsafari: isSafari,\n\topera: isOpera,\n\tie: isIE,\n\tedge: isEdge\n};\n\n//#endregion\nexport { Is, Is as default, isBrowser, isChrome, isDate, isDesktop, isEdge, isEmail, isEmpty, isFirefox, isFloat, isFormData, isFormElement, isGenerator, isIE, isInt, isIterable, isJson, isMac, isMobile, isNumeric, isObject, isOpera, isPlainObject, isPrimitive, isPromise, isRegex, isSafari, isScalar, isString, isUrl, isValidId };\n//# sourceMappingURL=index.mjs.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel_api.mjs","names":[],"sources":["../../../../../../../../node_modules/amqplib/channel_api.js"],"sourcesContent":["var raw_connect = require('./lib/connect').connect;\nvar ChannelModel = require('./lib/channel_model').ChannelModel;\nvar promisify = require('util').promisify;\n\nfunction connect(url, connOptions) {\n return promisify(function(cb) {\n return raw_connect(url, connOptions, cb);\n })()\n .then(function(conn) {\n return new ChannelModel(conn);\n });\n};\n\nmodule.exports.connect = connect;\nmodule.exports.credentials = require('./lib/credentials');\nmodule.exports.IllegalOperationError = require('./lib/error').IllegalOperationError;\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;CAAA,IAAI,gCAAuC;CAC3C,IAAI,uCAA8C;CAClD,IAAI,sBAAoB,MAAM,CAAC,CAAC;CAEhC,SAAS,QAAQ,KAAK,aAAa;EACjC,OAAO,UAAU,SAAS,IAAI;GAC5B,OAAO,YAAY,KAAK,aAAa,EAAE;EACzC,CAAC,CAAC,CAAC,CAAC,CACH,KAAK,SAAS,MAAM;GACnB,OAAO,IAAI,aAAa,IAAI;EAC9B,CAAC;CACH;CAEA,OAAO,QAAQ,UAAU;CACzB,OAAO,QAAQ;CACf,OAAO,QAAQ,wCAA+C"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel_model.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/channel_model.js"],"sourcesContent":["//\n//\n//\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst promisify = require('util').promisify;\nconst defs = require('./defs');\nconst {BaseChannel} = require('./channel');\nconst {acceptMessage} = require('./channel');\nconst Args = require('./api_args');\nconst {inspect} = require('./format');\n\nclass ChannelModel extends EventEmitter {\n constructor(connection) {\n super();\n this.connection = connection;\n\n ['error', 'close', 'blocked', 'unblocked'].forEach(ev => {\n connection.on(ev, this.emit.bind(this, ev));\n });\n }\n\n close() {\n return promisify(this.connection.close.bind(this.connection))();\n }\n\n updateSecret(newSecret, reason) {\n return promisify(this.connection._updateSecret.bind(this.connection))(newSecret, reason);\n }\n\n async createChannel(options) {\n const channel = new Channel(this.connection);\n channel.setOptions(options);\n await channel.open();\n return channel;\n }\n\n async createConfirmChannel(options) {\n const channel = new ConfirmChannel(this.connection);\n channel.setOptions(options);\n await channel.open();\n await channel.rpc(defs.ConfirmSelect, {nowait: false}, defs.ConfirmSelectOk);\n return channel;\n }\n}\n\n// Channels\n\nclass Channel extends BaseChannel {\n constructor(connection) {\n super(connection);\n this.on('delivery', this.handleDelivery.bind(this));\n this.on('cancel', this.handleCancel.bind(this));\n }\n\n // An RPC that returns a 'proper' promise, which resolves to just the\n // response's fields; this is intended to be suitable for implementing\n // API procedures.\n async rpc(method, fields, expect) {\n const f = await promisify(cb => {\n return this._rpc(method, fields, expect, cb);\n })();\n\n return f.fields;\n }\n\n // Do the remarkably simple channel open handshake\n async open() {\n const ch = await this.allocate.bind(this)();\n return ch.rpc(defs.ChannelOpen, {outOfBand: \"\"},\n defs.ChannelOpenOk);\n }\n\n close() {\n return promisify(cb => {\n return this.closeBecause(\"Goodbye\", defs.constants.REPLY_SUCCESS,\n cb);\n })();\n }\n\n // === Public API, declaring queues and stuff ===\n\n assertQueue(queue, options) {\n return this.rpc(defs.QueueDeclare,\n Args.assertQueue(queue, options),\n defs.QueueDeclareOk);\n }\n\n checkQueue(queue) {\n return this.rpc(defs.QueueDeclare,\n Args.checkQueue(queue),\n defs.QueueDeclareOk);\n }\n\n deleteQueue(queue, options) {\n return this.rpc(defs.QueueDelete,\n Args.deleteQueue(queue, options),\n defs.QueueDeleteOk);\n }\n\n purgeQueue(queue) {\n return this.rpc(defs.QueuePurge,\n Args.purgeQueue(queue),\n defs.QueuePurgeOk);\n }\n\n bindQueue(queue, source, pattern, argt) {\n return this.rpc(defs.QueueBind,\n Args.bindQueue(queue, source, pattern, argt),\n defs.QueueBindOk);\n }\n\n unbindQueue(queue, source, pattern, argt) {\n return this.rpc(defs.QueueUnbind,\n Args.unbindQueue(queue, source, pattern, argt),\n defs.QueueUnbindOk);\n }\n\n assertExchange(exchange, type, options) {\n // The server reply is an empty set of fields, but it's convenient\n // to have the exchange name handed to the continuation.\n return this.rpc(defs.ExchangeDeclare,\n Args.assertExchange(exchange, type, options),\n defs.ExchangeDeclareOk)\n .then(_ok => { return { exchange }; });\n }\n\n checkExchange(exchange) {\n return this.rpc(defs.ExchangeDeclare,\n Args.checkExchange(exchange),\n defs.ExchangeDeclareOk);\n }\n\n deleteExchange(name, options) {\n return this.rpc(defs.ExchangeDelete,\n Args.deleteExchange(name, options),\n defs.ExchangeDeleteOk);\n }\n\n bindExchange(dest, source, pattern, argt) {\n return this.rpc(defs.ExchangeBind,\n Args.bindExchange(dest, source, pattern, argt),\n defs.ExchangeBindOk);\n }\n\n unbindExchange(dest, source, pattern, argt) {\n return this.rpc(defs.ExchangeUnbind,\n Args.unbindExchange(dest, source, pattern, argt),\n defs.ExchangeUnbindOk);\n }\n\n // Working with messages\n\n publish(exchange, routingKey, content, options) {\n const fieldsAndProps = Args.publish(exchange, routingKey, options);\n return this.sendMessage(fieldsAndProps, fieldsAndProps, content);\n }\n\n sendToQueue(queue, content, options) {\n return this.publish('', queue, content, options);\n }\n\n consume(queue, callback, options) {\n // NB we want the callback to be run synchronously, so that we've\n // registered the consumerTag before any messages can arrive.\n const fields = Args.consume(queue, options);\n return new Promise((resolve, reject) => {\n this._rpc(defs.BasicConsume, fields, defs.BasicConsumeOk, (err, ok) => {\n if (err) return reject(err);\n this.registerConsumer(ok.fields.consumerTag, callback);\n resolve(ok.fields);\n });\n });\n }\n\n async cancel(consumerTag) {\n const ok = await promisify(cb => {\n this._rpc(defs.BasicCancel, Args.cancel(consumerTag),\n defs.BasicCancelOk,\n cb);\n })()\n .then(ok => {\n this.unregisterConsumer(consumerTag);\n return ok.fields;\n });\n }\n\n get(queue, options) {\n const fields = Args.get(queue, options);\n return new Promise((resolve, reject) => {\n this.sendOrEnqueue(defs.BasicGet, fields, (err, f) => {\n if (err) return reject(err);\n if (f.id === defs.BasicGetEmpty) {\n return resolve(false);\n }\n else if (f.id === defs.BasicGetOk) {\n const fields = f.fields;\n this.handleMessage = acceptMessage(m => {\n m.fields = fields;\n resolve(m);\n });\n }\n else {\n reject(new Error(`Unexpected response to BasicGet: ${inspect(f)}`));\n }\n });\n });\n }\n\n ack(message, allUpTo) {\n this.sendImmediately(\n defs.BasicAck,\n Args.ack(message.fields.deliveryTag, allUpTo));\n }\n\n ackAll() {\n this.sendImmediately(defs.BasicAck, Args.ack(0, true));\n }\n\n nack(message, allUpTo, requeue) {\n this.sendImmediately(\n defs.BasicNack,\n Args.nack(message.fields.deliveryTag, allUpTo, requeue));\n }\n\n nackAll(requeue) {\n this.sendImmediately(defs.BasicNack,\n Args.nack(0, true, requeue));\n }\n\n // `Basic.Nack` is not available in older RabbitMQ versions (or in the\n // AMQP specification), so you have to use the one-at-a-time\n // `Basic.Reject`. This is otherwise synonymous with\n // `#nack(message, false, requeue)`.\n reject(message, requeue) {\n this.sendImmediately(\n defs.BasicReject,\n Args.reject(message.fields.deliveryTag, requeue));\n }\n\n recover() {\n return this.rpc(defs.BasicRecover,\n Args.recover(),\n defs.BasicRecoverOk);\n }\n\n qos(count, global) {\n return this.rpc(defs.BasicQos,\n Args.prefetch(count, global),\n defs.BasicQosOk);\n }\n}\n\n// There are more options in AMQP than exposed here; RabbitMQ only\n// implements prefetch based on message count, and only for individual\n// channels or consumers. RabbitMQ v3.3.0 and after treat prefetch\n// (without `global` set) as per-consumer (for consumers following),\n// and prefetch with `global` set as per-channel.\nChannel.prototype.prefetch = Channel.prototype.qos\n\n// Confirm channel. This is a channel with confirms 'switched on',\n// meaning sent messages will provoke a responding 'ack' or 'nack'\n// from the server. The upshot of this is that `publish` and\n// `sendToQueue` both take a callback, which will be called either\n// with `null` as its argument to signify 'ack', or an exception as\n// its argument to signify 'nack'.\n\nclass ConfirmChannel extends Channel {\n publish(exchange, routingKey, content, options, cb) {\n this.pushConfirmCallback(cb);\n return super.publish(exchange, routingKey, content, options);\n }\n\n sendToQueue(queue, content, options, cb) {\n return this.publish('', queue, content, options, cb);\n }\n\n waitForConfirms() {\n const awaiting = [];\n const unconfirmed = this.unconfirmed;\n unconfirmed.forEach((val, index) => {\n if (val !== null) {\n const confirmed = new Promise((resolve, reject) => {\n unconfirmed[index] = err => {\n if (val) val(err);\n if (err === null) resolve();\n else reject(err);\n };\n });\n awaiting.push(confirmed);\n }\n });\n // Channel closed\n if (!this.pending) {\n var cb;\n while (cb = this.unconfirmed.shift()) {\n if (cb) cb(new Error('channel closed'));\n }\n }\n return Promise.all(awaiting);\n }\n}\n\nmodule.exports.ConfirmChannel = ConfirmChannel;\nmodule.exports.Channel = Channel;\nmodule.exports.ChannelModel = ChannelModel;\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/codec.js"],"sourcesContent":["//\n//\n//\n\n/*\n\nThe AMQP 0-9-1 is a mess when it comes to the types that can be\nencoded on the wire.\n\nThere are four encoding schemes, and three overlapping sets of types:\nframes, methods, (field-)tables, and properties.\n\nEach *frame type* has a set layout in which values of given types are\nconcatenated along with sections of \"raw binary\" data.\n\nIn frames there are `shortstr`s, that is length-prefixed strings of\nUTF8 chars, 8 bit unsigned integers (called `octet`), unsigned 16 bit\nintegers (called `short` or `short-uint`), unsigned 32 bit integers\n(called `long` or `long-uint`), unsigned 64 bit integers (called\n`longlong` or `longlong-uint`), and flags (called `bit`).\n\nMethods are encoded as a frame giving a method ID and a sequence of\narguments of known types. The encoded method argument values are\nconcatenated (with some fun complications around \"packing\" consecutive\nbit values into bytes).\n\nAlong with the types given in frames, method arguments may be long\nbyte strings (`longstr`, not required to be UTF8) or 64 bit unsigned\nintegers to be interpreted as timestamps (yeah I don't know why\neither), or arbitrary sets of key-value pairs (called `field-table`).\n\nInside a field table the keys are `shortstr` and the values are\nprefixed with a byte tag giving the type. The types are any of the\nabove except for bits (which are replaced by byte-wide `bool`), along\nwith a NULL value `void`, a special fixed-precision number encoding\n(`decimal`), IEEE754 `float`s and `double`s, signed integers,\n`field-array` (a sequence of tagged values), and nested field-tables.\n\nRabbitMQ and QPid use a subset of the field-table types, and different\nvalue tags, established before the AMQP 0-9-1 specification was\npublished. So far as I know, no-one uses the types and tags as\npublished. http://www.rabbitmq.com/amqp-0-9-1-errata.html gives the\nlist of field-table types.\n\nLastly, there are (sets of) properties, only one of which is given in\nAMQP 0-9-1: `BasicProperties`. These are almost the same as methods,\nexcept that they appear in content header frames, which include a\ncontent size, and they carry a set of flags indicating which\nproperties are present. This scheme can save ones of bytes per message\n(messages which take a minimum of three frames each to send).\n\n*/\n\n'use strict';\n\nvar ints = require('buffer-more-ints');\n\n// JavaScript uses only doubles so what I'm testing for is whether\n// it's *better* to encode a number as a float or double. This really\n// just amounts to testing whether there's a fractional part to the\n// number, except that see below. NB I don't use bitwise operations to\n// do this 'efficiently' -- it would mask the number to 32 bits.\n//\n// At 2^50, doubles don't have sufficient precision to distinguish\n// between floating point and integer numbers (`Math.pow(2, 50) + 0.1\n// === Math.pow(2, 50)` (and, above 2^53, doubles cannot represent all\n// integers (`Math.pow(2, 53) + 1 === Math.pow(2, 53)`)). Hence\n// anything with a magnitude at or above 2^50 may as well be encoded\n// as a 64-bit integer. Except that only signed integers are supported\n// by RabbitMQ, so anything above 2^63 - 1 must be a double.\nfunction isFloatingPoint(n) {\n return n >= 0x8000000000000000 ||\n (Math.abs(n) < 0x4000000000000\n && Math.floor(n) !== n);\n}\n\nfunction encodeTable(buffer, val, offset) {\n var start = offset;\n offset += 4; // leave room for the table length\n for (var key in val) {\n if (val[key] !== undefined) {\n var len = Buffer.byteLength(key);\n buffer.writeUInt8(len, offset); offset++;\n buffer.write(key, offset, 'utf8'); offset += len;\n offset += encodeFieldValue(buffer, val[key], offset);\n }\n }\n var size = offset - start;\n buffer.writeUInt32BE(size - 4, start);\n return size;\n}\n\nfunction encodeArray(buffer, val, offset) {\n var start = offset;\n offset += 4;\n for (var i=0, num=val.length; i < num; i++) {\n offset += encodeFieldValue(buffer, val[i], offset);\n }\n var size = offset - start;\n buffer.writeUInt32BE(size - 4, start);\n return size;\n}\n\nfunction encodeFieldValue(buffer, value, offset) {\n var start = offset;\n var type = typeof value, val = value;\n // A trapdoor for specifying a type, e.g., timestamp\n if (value && type === 'object' && value.hasOwnProperty('!')) {\n val = value.value;\n type = value['!'];\n }\n\n // If it's a JS number, we'll have to guess what type to encode it\n // as.\n if (type == 'number') {\n // Making assumptions about the kind of number (floating point\n // v integer, signed, unsigned, size) desired is dangerous in\n // general; however, in practice RabbitMQ uses only\n // longstrings and unsigned integers in its arguments, and\n // other clients generally conflate number types anyway. So\n // the only distinction we care about is floating point vs\n // integers, preferring integers since those can be promoted\n // if necessary. If floating point is required, we may as well\n // use double precision.\n if (isFloatingPoint(val)) {\n type = 'double';\n }\n else { // only signed values are used in tables by\n // RabbitMQ. It *used* to (< v3.3.0) treat the byte 'b'\n // type as unsigned, but most clients (and the spec)\n // think it's signed, and now RabbitMQ does too.\n if (val < 128 && val >= -128) {\n type = 'byte';\n }\n else if (val >= -0x8000 && val < 0x8000) {\n type = 'short'\n }\n else if (val >= -0x80000000 && val < 0x80000000) {\n type = 'int';\n }\n else {\n type = 'long';\n }\n }\n }\n\n function tag(t) { buffer.write(t, offset); offset++; }\n\n switch (type) {\n case 'string': // no shortstr in field tables\n var len = Buffer.byteLength(val, 'utf8');\n tag('S');\n buffer.writeUInt32BE(len, offset); offset += 4;\n buffer.write(val, offset, 'utf8'); offset += len;\n break;\n case 'object':\n if (val === null) {\n tag('V');\n }\n else if (Array.isArray(val)) {\n tag('A');\n offset += encodeArray(buffer, val, offset);\n }\n else if (Buffer.isBuffer(val)) {\n tag('x');\n buffer.writeUInt32BE(val.length, offset); offset += 4;\n val.copy(buffer, offset); offset += val.length;\n }\n else {\n tag('F');\n offset += encodeTable(buffer, val, offset);\n }\n break;\n case 'boolean':\n tag('t');\n buffer.writeUInt8((val) ? 1 : 0, offset); offset++;\n break;\n // These are the types that are either guessed above, or\n // explicitly given using the {'!': type} notation.\n case 'double':\n case 'float64':\n tag('d');\n buffer.writeDoubleBE(val, offset);\n offset += 8;\n break;\n case 'byte':\n case 'int8':\n tag('b');\n buffer.writeInt8(val, offset); offset++;\n break;\n case 'unsignedbyte':\n case 'uint8':\n tag('B');\n buffer.writeUInt8(val, offset); offset++;\n break;\n case 'short':\n case 'int16':\n tag('s');\n buffer.writeInt16BE(val, offset); offset += 2;\n break;\n case 'unsignedshort':\n case 'uint16':\n tag('u');\n buffer.writeUInt16BE(val, offset); offset += 2;\n break;\n case 'int':\n case 'int32':\n tag('I');\n buffer.writeInt32BE(val, offset); offset += 4;\n break;\n case 'unsignedint':\n case 'uint32':\n tag('i');\n buffer.writeUInt32BE(val, offset); offset += 4;\n break;\n case 'long':\n case 'int64':\n tag('l');\n ints.writeInt64BE(buffer, val, offset); offset += 8;\n break;\n\n // Now for exotic types, those can _only_ be denoted by using\n // `{'!': type, value: val}\n case 'timestamp':\n tag('T');\n ints.writeUInt64BE(buffer, val, offset); offset += 8;\n break;\n case 'float':\n tag('f');\n buffer.writeFloatBE(val, offset); offset += 4;\n break;\n case 'decimal':\n tag('D');\n if (val.hasOwnProperty('places') && val.hasOwnProperty('digits')\n && val.places >= 0 && val.places < 256) {\n buffer[offset] = val.places; offset++;\n buffer.writeUInt32BE(val.digits, offset); offset += 4;\n }\n else throw new TypeError(\n \"Decimal value must be {'places': 0..255, 'digits': uint32}, \" +\n \"got \" + JSON.stringify(val));\n break;\n default:\n throw new TypeError('Unknown type to encode: ' + type);\n }\n return offset - start;\n}\n\n// Assume we're given a slice of the buffer that contains just the\n// fields.\nfunction decodeFields(slice) {\n var fields = {}, offset = 0, size = slice.length;\n var len, key, val;\n\n function decodeFieldValue() {\n var tag = String.fromCharCode(slice[offset]); offset++;\n switch (tag) {\n case 'b':\n val = slice.readInt8(offset); offset++;\n break;\n case 'B':\n val = slice.readUInt8(offset); offset++;\n break;\n case 'S':\n len = slice.readUInt32BE(offset); offset += 4;\n val = slice.toString('utf8', offset, offset + len);\n offset += len;\n break;\n case 'I':\n val = slice.readInt32BE(offset); offset += 4;\n break;\n case 'i':\n val = slice.readUInt32BE(offset); offset += 4;\n break;\n case 'D': // only positive decimals, apparently.\n var places = slice[offset]; offset++;\n var digits = slice.readUInt32BE(offset); offset += 4;\n val = {'!': 'decimal', value: {places: places, digits: digits}};\n break;\n case 'T':\n val = ints.readUInt64BE(slice, offset); offset += 8;\n val = {'!': 'timestamp', value: val};\n break;\n case 'F':\n len = slice.readUInt32BE(offset); offset += 4;\n val = decodeFields(slice.subarray(offset, offset + len));\n offset += len;\n break;\n case 'A':\n len = slice.readUInt32BE(offset); offset += 4;\n decodeArray(offset + len);\n // NB decodeArray will itself update offset and val\n break;\n case 'd':\n val = slice.readDoubleBE(offset); offset += 8;\n break;\n case 'f':\n val = slice.readFloatBE(offset); offset += 4;\n break;\n case 'l':\n val = ints.readInt64BE(slice, offset); offset += 8;\n break;\n case 's':\n val = slice.readInt16BE(offset); offset += 2;\n break;\n case 'u':\n val = slice.readUInt16BE(offset); offset += 2;\n break;\n case 't':\n val = slice[offset] != 0; offset++;\n break;\n case 'V':\n val = null;\n break;\n case 'x':\n len = slice.readUInt32BE(offset); offset += 4;\n val = slice.subarray(offset, offset + len);\n offset += len;\n break;\n default:\n throw new TypeError('Unexpected type tag \"' + tag +'\"');\n }\n }\n\n function decodeArray(until) {\n var vals = [];\n while (offset < until) {\n decodeFieldValue();\n vals.push(val);\n }\n val = vals;\n }\n\n while (offset < size) {\n len = slice.readUInt8(offset); offset++;\n key = slice.toString('utf8', offset, offset + len);\n offset += len;\n decodeFieldValue();\n fields[key] = val;\n }\n return fields;\n}\n\nmodule.exports.encodeTable = encodeTable;\nmodule.exports.decodeFields = decodeFields;\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/connect.js"],"sourcesContent":["//\n//\n//\n\n// General-purpose API for glueing everything together.\n\n'use strict';\n\nvar URL = require('url-parse');\nvar QS = require('querystring');\nvar Connection = require('./connection').Connection;\nvar fmt = require('util').format;\nvar credentials = require('./credentials');\n\nfunction copyInto(obj, target) {\n var keys = Object.keys(obj);\n var i = keys.length;\n while (i--) {\n var k = keys[i];\n target[k] = obj[k];\n }\n return target;\n}\n\n// Adapted from util._extend, which is too fringe to use.\nfunction clone(obj) {\n return copyInto(obj, {});\n}\n\nvar CLIENT_PROPERTIES = {\n \"product\": \"amqplib\",\n \"version\": require('../package.json').version,\n \"platform\": fmt('Node.JS %s', process.version),\n \"information\": \"https://amqp-node.github.io/amqplib/\",\n \"capabilities\": {\n \"publisher_confirms\": true,\n \"exchange_exchange_bindings\": true,\n \"basic.nack\": true,\n \"consumer_cancel_notify\": true,\n \"connection.blocked\": true,\n \"authentication_failure_close\": true\n }\n};\n\n// Construct the main frames used in the opening handshake\nfunction openFrames(vhost, query, credentials, extraClientProperties) {\n if (!vhost)\n vhost = '/';\n else\n vhost = QS.unescape(vhost);\n\n var query = query || {};\n\n function intOrDefault(val, def) {\n return (val === undefined) ? def : parseInt(val);\n }\n\n var clientProperties = Object.create(CLIENT_PROPERTIES);\n\n return {\n // start-ok\n 'clientProperties': copyInto(extraClientProperties, clientProperties),\n 'mechanism': credentials.mechanism,\n 'response': credentials.response(),\n 'locale': query.locale || 'en_US',\n\n // tune-ok\n 'channelMax': intOrDefault(query.channelMax, 0),\n 'frameMax': intOrDefault(query.frameMax, 131072),\n 'heartbeat': intOrDefault(query.heartbeat, 0),\n\n // open\n 'virtualHost': vhost,\n 'capabilities': '',\n 'insist': 0\n };\n}\n\n// Decide on credentials based on what we're supplied.\nfunction credentialsFromUrl(parts) {\n var user = 'guest', passwd = 'guest';\n if (parts.username != '' || parts.password != '') {\n user = (parts.username) ? unescape(parts.username) : '';\n passwd = (parts.password) ? unescape(parts.password) : '';\n }\n return credentials.plain(user, passwd);\n}\n\nfunction connect(url, socketOptions, openCallback) {\n // tls.connect uses `util._extend()` on the options given it, which\n // copies only properties mentioned in `Object.keys()`, when\n // processing the options. So I have to make copies too, rather\n // than using `Object.create()`.\n var sockopts = clone(socketOptions || {});\n url = url || 'amqp://localhost';\n\n var noDelay = !!sockopts.noDelay;\n var timeout = sockopts.timeout;\n var keepAlive = !!sockopts.keepAlive;\n // 0 is default for node\n var keepAliveDelay = sockopts.keepAliveDelay || 0;\n\n var extraClientProperties = sockopts.clientProperties || {};\n\n var protocol, fields;\n if (typeof url === 'object') {\n protocol = (url.protocol || 'amqp') + ':';\n sockopts.host = url.hostname;\n sockopts.servername = sockopts.servername || url.hostname;\n sockopts.port = url.port || ((protocol === 'amqp:') ? 5672 : 5671);\n\n var user, pass;\n // Only default if both are missing, to have the same behaviour as\n // the stringly URL.\n if (url.username == undefined && url.password == undefined) {\n user = 'guest'; pass = 'guest';\n } else {\n user = url.username || '';\n pass = url.password || '';\n }\n\n var config = {\n locale: url.locale,\n channelMax: url.channelMax,\n frameMax: url.frameMax,\n heartbeat: url.heartbeat,\n };\n\n fields = openFrames(url.vhost, config, sockopts.credentials || credentials.plain(user, pass), extraClientProperties);\n } else {\n var parts = URL(url, true); // yes, parse the query string\n var host = parts.hostname.replace(/^\\[|\\]$/g, '');\n protocol = parts.protocol;\n sockopts.host = host;\n sockopts.servername = sockopts.servername || host;\n sockopts.port = parseInt(parts.port) || ((protocol === 'amqp:') ? 5672 : 5671);\n var vhost = parts.pathname ? parts.pathname.substr(1) : null;\n fields = openFrames(vhost, parts.query, sockopts.credentials || credentialsFromUrl(parts), extraClientProperties);\n }\n\n var sockok = false;\n var sock;\n\n function onConnect() {\n sockok = true;\n sock.setNoDelay(noDelay);\n if (keepAlive) sock.setKeepAlive(keepAlive, keepAliveDelay);\n\n var c = new Connection(sock);\n c.open(fields, function(err, ok) {\n // disable timeout once the connection is open, we don't want\n // it fouling things\n if (timeout) sock.setTimeout(0);\n if (err === null) {\n openCallback(null, c);\n } else {\n // The connection isn't closed by the server on e.g. wrong password\n sock.end();\n sock.destroy();\n openCallback(err);\n }\n });\n }\n\n if (protocol === 'amqp:') {\n sock = require('net').connect(sockopts, onConnect);\n }\n else if (protocol === 'amqps:') {\n sock = require('tls').connect(sockopts, onConnect);\n }\n else {\n throw new Error(\"Expected amqp: or amqps: as the protocol; got \" + protocol);\n }\n\n if (timeout) {\n sock.setTimeout(timeout, function() {\n sock.end();\n sock.destroy();\n openCallback(new Error('connect ETIMEDOUT'));\n });\n }\n\n sock.once('error', function(err) {\n if (!sockok) openCallback(err);\n });\n\n}\n\nmodule.exports.connect = connect;\nmodule.exports.credentialsFromUrl = credentialsFromUrl;\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;CAQA,IAAI;CACJ,IAAI,eAAa,aAAa;CAC9B,IAAI,kCAAqC;CACzC,IAAI,gBAAc,MAAM,CAAC,CAAC;CAC1B,IAAI;CAEJ,SAAS,SAAS,KAAK,QAAQ;EAC7B,IAAI,OAAO,OAAO,KAAK,GAAG;EAC1B,IAAI,IAAI,KAAK;EACb,OAAO,KAAK;GACV,IAAI,IAAI,KAAK;GACb,OAAO,KAAK,IAAI;EAClB;EACA,OAAO;CACT;CAGA,SAAS,MAAM,KAAK;EAClB,OAAO,SAAS,KAAK,CAAC,CAAC;CACzB;CAEA,IAAI,oBAAoB;EACtB,WAAW;EACX,6BAAsC;EACtC,YAAY,IAAI,cAAc,QAAQ,OAAO;EAC7C,eAAe;EACf,gBAAgB;GACd,sBAAsB;GACtB,8BAA8B;GAC9B,cAAc;GACd,0BAA0B;GAC1B,sBAAsB;GACtB,gCAAgC;EAClC;CACF;CAGA,SAAS,WAAW,OAAO,OAAO,aAAa,uBAAuB;EACpE,IAAI,CAAC,OACH,QAAQ;OAER,QAAQ,GAAG,SAAS,KAAK;EAE3B,IAAI,QAAQ,SAAS,CAAC;EAEtB,SAAS,aAAa,KAAK,KAAK;GAC9B,OAAQ,QAAQ,SAAa,MAAM,SAAS,GAAG;EACjD;EAIA,OAAO;GAEL,oBAAoB,SAAS,uBAJR,OAAO,OAAO,iBAIgC,CAAC;GACpE,aAAa,YAAY;GACzB,YAAY,YAAY,SAAS;GACjC,UAAU,MAAM,UAAU;GAG1B,cAAc,aAAa,MAAM,YAAY,CAAC;GAC9C,YAAY,aAAa,MAAM,UAAU,MAAM;GAC/C,aAAa,aAAa,MAAM,WAAW,CAAC;GAG5C,eAAe;GACf,gBAAgB;GAChB,UAAU;EACZ;CACF;CAGA,SAAS,mBAAmB,OAAO;EACjC,IAAI,OAAO,SAAS,SAAS;EAC7B,IAAI,MAAM,YAAY,MAAM,MAAM,YAAY,IAAI;GAChD,OAAQ,MAAM,WAAY,SAAS,MAAM,QAAQ,IAAI;GACrD,SAAU,MAAM,WAAY,SAAS,MAAM,QAAQ,IAAI;EACzD;EACA,OAAO,YAAY,MAAM,MAAM,MAAM;CACvC;CAEA,SAAS,QAAQ,KAAK,eAAe,cAAc;EAKjD,IAAI,WAAW,MAAM,iBAAiB,CAAC,CAAC;EACxC,MAAM,OAAO;EAEb,IAAI,UAAU,CAAC,CAAC,SAAS;EACzB,IAAI,UAAU,SAAS;EACvB,IAAI,YAAY,CAAC,CAAC,SAAS;EAE3B,IAAI,iBAAiB,SAAS,kBAAkB;EAEhD,IAAI,wBAAwB,SAAS,oBAAoB,CAAC;EAE1D,IAAI,UAAU;EACd,IAAI,OAAO,QAAQ,UAAU;GAC3B,YAAY,IAAI,YAAY,UAAU;GACtC,SAAS,OAAO,IAAI;GACpB,SAAS,aAAa,SAAS,cAAc,IAAI;GACjD,SAAS,OAAO,IAAI,SAAU,aAAa,UAAW,OAAO;GAE7D,IAAI,MAAM;GAGV,IAAI,IAAI,YAAY,UAAa,IAAI,YAAY,QAAW;IAC1D,OAAO;IAAS,OAAO;GACzB,OAAO;IACL,OAAO,IAAI,YAAY;IACvB,OAAO,IAAI,YAAY;GACzB;GAEA,IAAI,SAAS;IACX,QAAQ,IAAI;IACZ,YAAY,IAAI;IAChB,UAAU,IAAI;IACd,WAAW,IAAI;GACjB;GAEA,SAAS,WAAW,IAAI,OAAO,QAAQ,SAAS,eAAe,YAAY,MAAM,MAAM,IAAI,GAAG,qBAAqB;EACrH,OAAO;GACL,IAAI,QAAQ,IAAI,KAAK,IAAI;GACzB,IAAI,OAAO,MAAM,SAAS,QAAQ,YAAY,EAAE;GAChD,WAAW,MAAM;GACjB,SAAS,OAAO;GAChB,SAAS,aAAa,SAAS,cAAc;GAC7C,SAAS,OAAO,SAAS,MAAM,IAAI,MAAO,aAAa,UAAW,OAAO;GAEzE,SAAS,WADG,MAAM,WAAW,MAAM,SAAS,OAAO,CAAC,IAAI,MAC7B,MAAM,OAAO,SAAS,eAAe,mBAAmB,KAAK,GAAG,qBAAqB;EAClH;EAEA,IAAI,SAAS;EACb,IAAI;EAEJ,SAAS,YAAY;GACnB,SAAS;GACT,KAAK,WAAW,OAAO;GACvB,IAAI,WAAW,KAAK,aAAa,WAAW,cAAc;GAE1D,IAAI,IAAI,IAAI,WAAW,IAAI;GAC3B,EAAE,KAAK,QAAQ,SAAS,KAAK,IAAI;IAG/B,IAAI,SAAS,KAAK,WAAW,CAAC;IAC9B,IAAI,QAAQ,MACV,aAAa,MAAM,CAAC;SACf;KAEL,KAAK,IAAI;KACT,KAAK,QAAQ;KACb,aAAa,GAAG;IAClB;GACF,CAAC;EACH;EAEA,IAAI,aAAa,SACf,iBAAe,KAAK,CAAC,CAAC,QAAQ,UAAU,SAAS;OAE9C,IAAI,aAAa,UACpB,iBAAe,KAAK,CAAC,CAAC,QAAQ,UAAU,SAAS;OAGjD,MAAM,IAAI,MAAM,mDAAmD,QAAQ;EAG7E,IAAI,SACF,KAAK,WAAW,SAAS,WAAW;GAClC,KAAK,IAAI;GACT,KAAK,QAAQ;GACb,6BAAa,IAAI,MAAM,mBAAmB,CAAC;EAC7C,CAAC;EAGH,KAAK,KAAK,SAAS,SAAS,KAAK;GAC/B,IAAI,CAAC,QAAQ,aAAa,GAAG;EAC/B,CAAC;CAEH;CAEA,OAAO,QAAQ,UAAU;CACzB,OAAO,QAAQ,qBAAqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/connection.js"],"sourcesContent":["//\n//\n//\n\n'use strict';\n\nvar defs = require('./defs');\nvar constants = defs.constants;\nvar frame = require('./frame');\nvar HEARTBEAT = frame.HEARTBEAT;\nvar Mux = require('./mux').Mux;\n\nvar Duplex = require('stream').Duplex;\nvar EventEmitter = require('events');\nvar Heart = require('./heartbeat').Heart;\n\nvar methodName = require('./format').methodName;\nvar closeMsg = require('./format').closeMessage;\nvar inspect = require('./format').inspect;\n\nvar BitSet = require('./bitset').BitSet;\nvar fmt = require('util').format;\nvar PassThrough = require('stream').PassThrough;\nvar IllegalOperationError = require('./error').IllegalOperationError;\nvar stackCapture = require('./error').stackCapture;\n\n// High-water mark for channel write buffers, in 'objects' (which are\n// encoded frames as buffers).\nvar DEFAULT_WRITE_HWM = 1024;\n// If all the frames of a message (method, properties, content) total\n// to less than this, copy them into a single buffer and write it all\n// at once. Note that this is less than the minimum frame size: if it\n// was greater, we might have to fragment the content.\nvar SINGLE_CHUNK_THRESHOLD = 2048;\n\nclass Connection extends EventEmitter {\n constructor (underlying) {\n super();\n\n var stream = this.stream = wrapStream(underlying);\n this.muxer = new Mux(stream);\n\n // frames\n this.rest = Buffer.alloc(0);\n this.frameMax = constants.FRAME_MIN_SIZE;\n this.sentSinceLastCheck = false;\n this.recvSinceLastCheck = false;\n\n this.expectSocketClose = false;\n this.freeChannels = new BitSet();\n this.channels = [{\n channel: { accept: channel0(this) },\n buffer: underlying\n }];\n }\n\n // This changed between versions, as did the codec, methods, etc. AMQP\n // 0-9-1 is fairly similar to 0.8, but better, and nothing implements\n // 0.8 that doesn't implement 0-9-1. In other words, it doesn't make\n // much sense to generalise here.\n sendProtocolHeader () {\n this.sendBytes(frame.PROTOCOL_HEADER);\n }\n\n /*\n The frighteningly complicated opening protocol (spec section 2.2.4):\n\n Client -> Server\n\n protocol header ->\n <- start\n start-ok ->\n .. next two zero or more times ..\n <- secure\n secure-ok ->\n <- tune\n tune-ok ->\n open ->\n <- open-ok\n\n If I'm only supporting SASL's PLAIN mechanism (which I am for the time\n being), it gets a bit easier since the server won't in general send\n back a `secure`, it'll just send `tune` after the `start-ok`.\n (SASL PLAIN: http://tools.ietf.org/html/rfc4616)\n\n */\n open (allFields, openCallback0) {\n var self = this;\n var openCallback = openCallback0 || function () { };\n\n // This is where we'll put our negotiated values\n var tunedOptions = Object.create(allFields);\n\n function wait (k) {\n self.step(function (err, frame) {\n if (err !== null)\n bail(err);\n else if (frame.channel !== 0) {\n bail(new Error(\n fmt(\"Frame on channel != 0 during handshake: %s\",\n inspect(frame, false))));\n }\n else\n k(frame);\n });\n }\n\n function expect (Method, k) {\n wait(function (frame) {\n if (frame.id === Method)\n k(frame);\n else {\n bail(new Error(\n fmt(\"Expected %s; got %s\",\n methodName(Method), inspect(frame, false))));\n }\n });\n }\n\n function bail (err) {\n openCallback(err);\n }\n\n function send (Method) {\n // This can throw an exception if there's some problem with the\n // options; e.g., something is a string instead of a number.\n self.sendMethod(0, Method, tunedOptions);\n }\n\n function negotiate (server, desired) {\n // We get sent values for channelMax, frameMax and heartbeat,\n // which we may accept or lower (subject to a minimum for\n // frameMax, but we'll leave that to the server to enforce). In\n // all cases, `0` really means \"no limit\", or rather the highest\n // value in the encoding, e.g., unsigned short for channelMax.\n if (server === 0 || desired === 0) {\n // i.e., whichever places a limit, if either\n return Math.max(server, desired);\n }\n else {\n return Math.min(server, desired);\n }\n }\n\n function onStart (start) {\n var mechanisms = start.fields.mechanisms.toString().split(' ');\n if (mechanisms.indexOf(allFields.mechanism) < 0) {\n bail(new Error(fmt('SASL mechanism %s is not provided by the server',\n allFields.mechanism)));\n return;\n }\n self.serverProperties = start.fields.serverProperties;\n try {\n send(defs.ConnectionStartOk);\n } catch (err) {\n bail(err);\n return;\n }\n wait(afterStartOk);\n }\n\n function afterStartOk (reply) {\n switch (reply.id) {\n case defs.ConnectionSecure:\n bail(new Error(\n \"Wasn't expecting to have to go through secure\"));\n break;\n case defs.ConnectionClose:\n bail(new Error(fmt(\"Handshake terminated by server: %s\",\n closeMsg(reply))));\n break;\n case defs.ConnectionTune:\n var fields = reply.fields;\n tunedOptions.frameMax =\n negotiate(fields.frameMax, allFields.frameMax);\n tunedOptions.channelMax =\n negotiate(fields.channelMax, allFields.channelMax);\n tunedOptions.heartbeat =\n negotiate(fields.heartbeat, allFields.heartbeat);\n try {\n send(defs.ConnectionTuneOk);\n send(defs.ConnectionOpen);\n } catch (err) {\n bail(err);\n return;\n }\n expect(defs.ConnectionOpenOk, onOpenOk);\n break;\n default:\n bail(new Error(\n fmt(\"Expected connection.secure, connection.close, \" +\n \"or connection.tune during handshake; got %s\",\n inspect(reply, false))));\n break;\n }\n }\n\n function onOpenOk (openOk) {\n // Impose the maximum of the encoded value, if the negotiated\n // value is zero, meaning \"no, no limits\"\n self.channelMax = tunedOptions.channelMax || 0xffff;\n self.frameMax = tunedOptions.frameMax || 0xffffffff;\n // 0 means \"no heartbeat\", rather than \"maximum period of\n // heartbeating\"\n self.heartbeat = tunedOptions.heartbeat;\n self.heartbeater = self.startHeartbeater();\n self.accept = mainAccept;\n succeed(openOk);\n }\n\n // If the server closes the connection, it's probably because of\n // something we did\n function endWhileOpening (err) {\n bail(err || new Error('Socket closed abruptly ' +\n 'during opening handshake'));\n }\n\n this.stream.on('end', endWhileOpening);\n this.stream.on('error', endWhileOpening);\n\n function succeed (ok) {\n self.stream.removeListener('end', endWhileOpening);\n self.stream.removeListener('error', endWhileOpening);\n self.stream.on('error', self.onSocketError.bind(self));\n self.stream.on('end', self.onSocketError.bind(\n self, new Error('Unexpected close')));\n self.on('frameError', self.onSocketError.bind(self));\n self.acceptLoop();\n openCallback(null, ok);\n }\n\n // Now kick off the handshake by prompting the server\n this.sendProtocolHeader();\n expect(defs.ConnectionStart, onStart);\n }\n\n // Closing things: AMQP has a closing handshake that applies to\n // closing both connects and channels. As the initiating party, I send\n // Close, then ignore all frames until I see either CloseOK --\n // which signifies that the other party has seen the Close and shut\n // the connection or channel down, so it's fine to free resources; or\n // Close, which means the other party also wanted to close the\n // whatever, and I should send CloseOk so it can free resources,\n // then go back to waiting for the CloseOk. If I receive a Close\n // out of the blue, I should throw away any unsent frames (they will\n // be ignored anyway) and send CloseOk, then clean up resources. In\n // general, Close out of the blue signals an error (or a forced\n // closure, which may as well be an error).\n //\n // RUNNING [1] --- send Close ---> Closing [2] ---> recv Close --+\n // | | [3]\n // | +------ send CloseOk ------+\n // recv Close recv CloseOk\n // | |\n // V V\n // Ended [4] ---- send CloseOk ---> Closed [5]\n //\n // [1] All frames accepted; getting a Close frame from the server\n // moves to Ended; client may initiate a close by sending Close\n // itself.\n // [2] Client has initiated a close; only CloseOk or (simulataneously\n // sent) Close is accepted.\n // [3] Simultaneous close\n // [4] Server won't send any more frames; accept no more frames, send\n // CloseOk.\n // [5] Fully closed, client will send no more, server will send no\n // more. Signal 'close' or 'error'.\n //\n // There are two signalling mechanisms used in the API. The first is\n // that calling `close` will return a promise, that will either\n // resolve once the connection or channel is cleanly shut down, or\n // will reject if the shutdown times out.\n //\n // The second is the 'close' and 'error' events. These are\n // emitted as above. The events will fire *before* promises are\n // resolved.\n // Close the connection without even giving a reason. Typical.\n close (closeCallback) {\n var k = closeCallback && function () { closeCallback(null); };\n this.closeBecause(\"Cheers, thanks\", constants.REPLY_SUCCESS, k);\n }\n\n // Close with a reason and a 'code'. I'm pretty sure RabbitMQ totally\n // ignores these; maybe it logs them. The continuation will be invoked\n // when the CloseOk has been received, and before the 'close' event.\n closeBecause (reason, code, k) {\n this.sendMethod(0, defs.ConnectionClose, {\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 closeWithError (reason, code, error) {\n this.emit('error', error);\n this.closeBecause(reason, code);\n }\n\n onSocketError (err) {\n if (!this.expectSocketClose) {\n // forestall any more calls to onSocketError, since we're signed\n // up for `'error'` *and* `'end'`\n this.expectSocketClose = true;\n this.emit('error', err);\n var s = stackCapture('Socket error');\n this.toClosed(s, err);\n }\n }\n\n // A close has been initiated. Repeat: a close has been initiated.\n // This means we should not send more frames, anyway they will be\n // ignored. We also have to shut down all the channels.\n toClosing (capturedStack, k) {\n var send = this.sendMethod.bind(this);\n\n this.accept = function (f) {\n if (f.id === defs.ConnectionCloseOk) {\n if (k)\n k();\n var s = stackCapture('ConnectionCloseOk received');\n this.toClosed(s, undefined);\n }\n else if (f.id === defs.ConnectionClose) {\n send(0, defs.ConnectionCloseOk, {});\n }\n // else ignore frame\n };\n invalidateSend(this, 'Connection closing', capturedStack);\n }\n\n _closeChannels (capturedStack) {\n for (var i = 1; i < this.channels.length; i++) {\n var ch = this.channels[i];\n if (ch !== null) {\n ch.channel.toClosed(capturedStack); // %%% or with an error? not clear\n }\n }\n }\n\n // A close has been confirmed. Cease all communication.\n toClosed (capturedStack, maybeErr) {\n this._closeChannels(capturedStack);\n var info = fmt('Connection closed (%s)',\n (maybeErr) ? maybeErr.toString() : 'by client');\n // Tidy up, invalidate enverything, dynamite the bridges.\n invalidateSend(this, info, capturedStack);\n this.accept = invalidOp(info, capturedStack);\n this.close = function (cb) {\n cb && cb(new IllegalOperationError(info, capturedStack));\n };\n if (this.heartbeater)\n this.heartbeater.clear();\n // This is certainly true now, if it wasn't before\n this.expectSocketClose = true;\n this.stream.end();\n this.emit('close', maybeErr);\n }\n\n _updateSecret(newSecret, reason, cb) {\n this.sendMethod(0, defs.ConnectionUpdateSecret, {\n newSecret,\n reason\n });\n this.once('update-secret-ok', cb);\n }\n\n // ===\n startHeartbeater () {\n if (this.heartbeat === 0)\n return null;\n else {\n var self = this;\n var hb = new Heart(this.heartbeat,\n this.checkSend.bind(this),\n this.checkRecv.bind(this));\n hb.on('timeout', function () {\n var hberr = new Error(\"Heartbeat timeout\");\n self.emit('error', hberr);\n var s = stackCapture('Heartbeat timeout');\n self.toClosed(s, hberr);\n });\n hb.on('beat', function () {\n self.sendHeartbeat();\n });\n return hb;\n }\n }\n\n // I use an array to keep track of the channels, rather than an\n // object. The channel identifiers are numbers, and allocated by the\n // connection. If I try to allocate low numbers when they are\n // available (which I do, by looking from the start of the bitset),\n // this ought to keep the array small, and out of 'sparse array\n // storage'. I also set entries to null, rather than deleting them, in\n // the expectation that the next channel allocation will fill the slot\n // again rather than growing the array. See\n // http://www.html5rocks.com/en/tutorials/speed/v8/\n freshChannel (channel, options) {\n var next = this.freeChannels.nextClearBit(1);\n if (next < 0 || next > this.channelMax)\n throw new Error(\"No channels left to allocate\");\n this.freeChannels.set(next);\n\n var hwm = (options && options.highWaterMark) || DEFAULT_WRITE_HWM;\n var writeBuffer = new PassThrough({\n objectMode: true, highWaterMark: hwm\n });\n this.channels[next] = { channel: channel, buffer: writeBuffer };\n writeBuffer.on('drain', function () {\n channel.onBufferDrain();\n });\n this.muxer.pipeFrom(writeBuffer);\n return next;\n }\n\n releaseChannel (channel) {\n this.freeChannels.clear(channel);\n var buffer = this.channels[channel].buffer;\n buffer.end(); // will also cause it to be unpiped\n this.channels[channel] = null;\n }\n\n acceptLoop () {\n var self = this;\n\n function go () {\n try {\n var f; while (f = self.recvFrame())\n self.accept(f);\n }\n catch (e) {\n self.emit('frameError', e);\n }\n }\n self.stream.on('readable', go);\n go();\n }\n\n step (cb) {\n var self = this;\n function recv () {\n var f;\n try {\n f = self.recvFrame();\n }\n catch (e) {\n cb(e, null);\n return;\n }\n if (f)\n cb(null, f);\n else\n self.stream.once('readable', recv);\n }\n recv();\n }\n\n checkSend () {\n var check = this.sentSinceLastCheck;\n this.sentSinceLastCheck = false;\n return check;\n }\n\n checkRecv () {\n var check = this.recvSinceLastCheck;\n this.recvSinceLastCheck = false;\n return check;\n }\n\n sendBytes (bytes) {\n this.sentSinceLastCheck = true;\n this.stream.write(bytes);\n }\n\n sendHeartbeat () {\n return this.sendBytes(frame.HEARTBEAT_BUF);\n }\n\n sendMethod (channel, Method, fields) {\n var frame = encodeMethod(Method, channel, fields);\n this.sentSinceLastCheck = true;\n var buffer = this.channels[channel].buffer;\n return buffer.write(frame);\n }\n\n sendMessage (channel, Method, fields, Properties, props, content) {\n if (!Buffer.isBuffer(content))\n throw new TypeError('content is not a buffer');\n\n var mframe = encodeMethod(Method, channel, fields);\n var pframe = encodeProperties(Properties, channel,\n content.length, props);\n var buffer = this.channels[channel].buffer;\n this.sentSinceLastCheck = true;\n\n var methodHeaderLen = mframe.length + pframe.length;\n var bodyLen = (content.length > 0) ?\n content.length + FRAME_OVERHEAD : 0;\n var allLen = methodHeaderLen + bodyLen;\n\n if (allLen < SINGLE_CHUNK_THRESHOLD) {\n // Use `allocUnsafe` to avoid excessive allocations and CPU usage\n // from zeroing. The returned Buffer is not zeroed and so must be\n // completely filled to be used safely.\n // See https://github.com/amqp-node/amqplib/pull/695\n var all = Buffer.allocUnsafe(allLen);\n var offset = mframe.copy(all, 0);\n offset += pframe.copy(all, offset);\n\n if (bodyLen > 0)\n makeBodyFrame(channel, content).copy(all, offset);\n return buffer.write(all);\n }\n else {\n if (methodHeaderLen < SINGLE_CHUNK_THRESHOLD) {\n // Use `allocUnsafe` to avoid excessive allocations and CPU usage\n // from zeroing. The returned Buffer is not zeroed and so must be\n // completely filled to be used safely.\n // See https://github.com/amqp-node/amqplib/pull/695\n var both = Buffer.allocUnsafe(methodHeaderLen);\n var offset = mframe.copy(both, 0);\n pframe.copy(both, offset);\n buffer.write(both);\n }\n else {\n buffer.write(mframe);\n buffer.write(pframe);\n }\n return this.sendContent(channel, content);\n }\n }\n\n sendContent (channel, body) {\n if (!Buffer.isBuffer(body)) {\n throw new TypeError(fmt(\"Expected buffer; got %s\", body));\n }\n var writeResult = true;\n var buffer = this.channels[channel].buffer;\n\n var maxBody = this.frameMax - FRAME_OVERHEAD;\n\n for (var offset = 0; offset < body.length; offset += maxBody) {\n var end = offset + maxBody;\n var slice = (end > body.length) ? body.subarray(offset) : body.subarray(offset, end);\n var bodyFrame = makeBodyFrame(channel, slice);\n writeResult = buffer.write(bodyFrame);\n }\n this.sentSinceLastCheck = true;\n return writeResult;\n }\n\n recvFrame () {\n // %%% identifying invariants might help here?\n var frame = parseFrame(this.rest);\n\n if (!frame) {\n var incoming = this.stream.read();\n if (incoming === null) {\n return false;\n }\n else {\n this.recvSinceLastCheck = true;\n this.rest = Buffer.concat([this.rest, incoming]);\n return this.recvFrame();\n }\n }\n else {\n this.rest = frame.rest;\n return decodeFrame(frame);\n }\n }\n}\n\n// Usual frame accept mode\nfunction mainAccept(frame) {\n var rec = this.channels[frame.channel];\n if (rec) { return rec.channel.accept(frame); }\n // NB CHANNEL_ERROR may not be right, but I don't know what is ..\n else\n this.closeWithError(\n fmt('Frame on unknown channel %d', frame.channel),\n constants.CHANNEL_ERROR,\n new Error(fmt(\"Frame on unknown channel: %s\",\n inspect(frame, false))));\n}\n\n// Handle anything that comes through on channel 0, that's the\n// connection control channel. This is only used once mainAccept is\n// installed as the frame handler, after the opening handshake.\nfunction channel0(connection) {\n return function(f) {\n // Once we get a 'close', we know 1. we'll get no more frames, and\n // 2. anything we send except close, or close-ok, will be\n // ignored. If we already sent 'close', this won't be invoked since\n // we're already in closing mode; if we didn't well we're not going\n // to send it now are we.\n if (f === HEARTBEAT); // ignore; it's already counted as activity\n // on the socket, which is its purpose\n else if (f.id === defs.ConnectionClose) {\n // Oh. OK. I guess we're done here then.\n connection.sendMethod(0, defs.ConnectionCloseOk, {});\n var emsg = fmt('Connection closed: %s', closeMsg(f));\n var s = stackCapture(emsg);\n var e = new Error(emsg);\n e.code = f.fields.replyCode;\n if (isFatalError(e)) {\n connection.emit('error', e);\n }\n connection.toClosed(s, e);\n }\n else if (f.id === defs.ConnectionBlocked) {\n connection.emit('blocked', f.fields.reason);\n }\n else if (f.id === defs.ConnectionUnblocked) {\n connection.emit('unblocked');\n }\n else if (f.id === defs.ConnectionUpdateSecretOk) {\n connection.emit('update-secret-ok');\n }\n else {\n connection.closeWithError(\n fmt(\"Unexpected frame on channel 0\"),\n constants.UNEXPECTED_FRAME,\n new Error(fmt(\"Unexpected frame on channel 0: %s\",\n inspect(f, false))));\n }\n };\n}\n\nfunction invalidOp(msg, stack) {\n return function() {\n throw new IllegalOperationError(msg, stack);\n };\n}\n\nfunction invalidateSend(conn, msg, stack) {\n conn.sendMethod = conn.sendContent = conn.sendMessage =\n invalidOp(msg, stack);\n}\n\nvar encodeMethod = defs.encodeMethod;\nvar encodeProperties = defs.encodeProperties;\n\nvar FRAME_OVERHEAD = defs.FRAME_OVERHEAD;\nvar makeBodyFrame = frame.makeBodyFrame;\n\nvar parseFrame = frame.parseFrame;\nvar decodeFrame = frame.decodeFrame;\n\nfunction wrapStream(s) {\n if (s instanceof Duplex) return s;\n else {\n var ws = new Duplex();\n ws.wrap(s); //wraps the readable side of things\n ws._write = function(chunk, encoding, callback) {\n return s.write(chunk, encoding, callback);\n };\n return ws;\n }\n}\n\nfunction isFatalError(error) {\n switch (error && error.code) {\n case defs.constants.CONNECTION_FORCED:\n case defs.constants.REPLY_SUCCESS:\n return false;\n default:\n return true;\n }\n}\n\nmodule.exports.Connection = Connection;\nmodule.exports.isFatalError = isFatalError;\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.mjs","names":[],"sources":["../../../../../../../../../node_modules/amqplib/lib/credentials.js"],"sourcesContent":["//\n//\n//\n\n// Different kind of credentials that can be supplied when opening a\n// connection, corresponding to SASL mechanisms There's only two\n// useful mechanisms that RabbitMQ implements:\n// * PLAIN (send username and password in the plain)\n// * EXTERNAL (assume the server will figure out who you are from\n// context, i.e., your SSL certificate)\nvar codec = require('./codec')\n\nmodule.exports.plain = function(user, passwd) {\n return {\n mechanism: 'PLAIN',\n response: function() {\n return Buffer.from(['', user, passwd].join(String.fromCharCode(0)))\n },\n username: user,\n password: passwd\n }\n}\n\nmodule.exports.amqplain = function(user, passwd) {\n return {\n mechanism: 'AMQPLAIN',\n response: function() {\n const buffer = Buffer.alloc(16384);\n const size = codec.encodeTable(buffer, { LOGIN: user, PASSWORD: passwd}, 0);\n return buffer.subarray(4, size);\n },\n username: user,\n password: passwd\n }\n}\n\nmodule.exports.external = function() {\n return {\n mechanism: 'EXTERNAL',\n response: function() { return Buffer.from(''); }\n }\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;;CAUA,IAAI;CAEJ,OAAO,QAAQ,QAAQ,SAAS,MAAM,QAAQ;EAC5C,OAAO;GACL,WAAW;GACX,UAAU,WAAW;IACnB,OAAO,OAAO,KAAK;KAAC;KAAI;KAAM;IAAM,CAAC,CAAC,KAAK,OAAO,aAAa,CAAC,CAAC,CAAC;GACpE;GACA,UAAU;GACV,UAAU;EACZ;CACF;CAEA,OAAO,QAAQ,WAAW,SAAS,MAAM,QAAQ;EAC/C,OAAO;GACL,WAAW;GACX,UAAU,WAAW;IACnB,MAAM,SAAS,OAAO,MAAM,KAAK;IACjC,MAAM,OAAO,MAAM,YAAY,QAAQ;KAAE,OAAO;KAAM,UAAU;IAAM,GAAG,CAAC;IAC1E,OAAO,OAAO,SAAS,GAAG,IAAI;GAChC;GACA,UAAU;GACV,UAAU;EACZ;CACF;CAEA,OAAO,QAAQ,WAAW,WAAW;EACnC,OAAO;GACL,WAAW;GACX,UAAU,WAAW;IAAE,OAAO,OAAO,KAAK,EAAE;GAAG;EACjD;CACF"}
|