@mkody/twitch-emoticons 2.8.0 → 2.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/SECURITY.md +27 -0
  2. package/dist/TwitchEmoticons.min.js +22 -0
  3. package/dist/TwitchEmoticons.min.js.map +7 -0
  4. package/docs/BTTVEmote.html +1 -111
  5. package/docs/Channel.html +4 -4
  6. package/docs/Collection.html +1 -1
  7. package/docs/Emote.html +2 -107
  8. package/docs/EmoteFetcher.html +4 -4
  9. package/docs/EmoteParser.html +1 -1
  10. package/docs/FFZEmote.html +1 -111
  11. package/docs/SevenTVEmote.html +1 -111
  12. package/docs/TwitchEmote.html +1 -111
  13. package/docs/index.html +2 -2
  14. package/docs/struct_BTTVEmote.js.html +1 -1
  15. package/docs/struct_Channel.js.html +6 -1
  16. package/docs/struct_Emote.js.html +8 -1
  17. package/docs/struct_EmoteFetcher.js.html +5 -5
  18. package/docs/struct_EmoteParser.js.html +1 -1
  19. package/docs/struct_FFZEmote.js.html +1 -1
  20. package/docs/struct_SevenTVEmote.js.html +1 -1
  21. package/docs/struct_TwitchEmote.js.html +1 -1
  22. package/docs/util_Collection.js.html +1 -1
  23. package/jest.config.js +198 -0
  24. package/package.json +15 -10
  25. package/src/struct/Channel.js +5 -0
  26. package/src/struct/Emote.js +7 -0
  27. package/src/struct/EmoteFetcher.js +4 -4
  28. package/test/BTTV.test.js +48 -0
  29. package/test/FFZ.test.js +71 -0
  30. package/test/SevenTV.test.js +70 -0
  31. package/test/ToFromObject.test.js +155 -0
  32. package/test/Twitch.test.js +64 -0
  33. package/test/__snapshots__/ToFromObject.test.js.snap +121 -0
  34. package/test/other.test.js +13 -0
  35. package/typings/index.d.ts +17 -8
  36. package/.github/codeql/codeql-config.yml +0 -5
  37. package/.github/workflows/codeql.yml +0 -50
  38. package/.github/workflows/eslint.yml +0 -51
  39. package/.github/workflows/release.yml +0 -22
  40. package/.github/workflows/yarn-test.yml +0 -17
  41. package/test/index.js +0 -482
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/struct/Emote.js", "../src/util/Constants.js", "../src/struct/BTTVEmote.js", "../src/util/Collection.js", "../src/struct/Channel.js", "../src/struct/FFZEmote.js", "../src/struct/SevenTVEmote.js", "../src/struct/TwitchEmote.js", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/core/AxiosError.js", "../node_modules/axios/lib/helpers/null.js", "../node_modules/axios/lib/helpers/toFormData.js", "../node_modules/axios/lib/helpers/AxiosURLSearchParams.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/defaults/transitional.js", "../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js", "../node_modules/axios/lib/platform/browser/classes/FormData.js", "../node_modules/axios/lib/platform/browser/classes/Blob.js", "../node_modules/axios/lib/platform/browser/index.js", "../node_modules/axios/lib/helpers/toURLEncodedForm.js", "../node_modules/axios/lib/helpers/formDataToJSON.js", "../node_modules/axios/lib/defaults/index.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/core/AxiosHeaders.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/cancel/CanceledError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/helpers/parseProtocol.js", "../node_modules/axios/lib/helpers/speedometer.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/axios/lib/adapters/adapters.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/env/data.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/helpers/HttpStatusCode.js", "../node_modules/axios/lib/axios.js", "../node_modules/tslib/tslib.es6.mjs", "../node_modules/@d-fischer/detect-node/browser.js", "../node_modules/@d-fischer/logger/lib/LogLevel.js", "../node_modules/@d-fischer/shared-utils/lib/decorators/Enumerable.js", "../node_modules/@d-fischer/shared-utils/lib/functions/array/flatten.js", "../node_modules/@d-fischer/shared-utils/lib/functions/array/partitionedFlatMap.js", "../node_modules/@d-fischer/shared-utils/lib/functions/config/resolveConfigValue.js", "../node_modules/@d-fischer/shared-utils/lib/functions/deprecate/deprecateClass.js", "../node_modules/@d-fischer/shared-utils/lib/functions/match/match.js", "../node_modules/@d-fischer/shared-utils/lib/functions/math/fib.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/arrayToObject.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/entriesToObject.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/forEachObjectEntry.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/groupBy.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/indexBy.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/mapObject.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/pick.js", "../node_modules/@d-fischer/shared-utils/lib/functions/object/omit.js", "../node_modules/@d-fischer/shared-utils/lib/functions/optional/mapOptional.js", "../node_modules/@d-fischer/shared-utils/lib/functions/promise/delay.js", "../node_modules/@d-fischer/shared-utils/lib/functions/promise/withResolvers.js", "../node_modules/@d-fischer/shared-utils/lib/functions/string/padLeft.js", "../node_modules/@d-fischer/shared-utils/lib/functions/string/splitWithLimit.js", "../node_modules/@d-fischer/shared-utils/lib/functions/string/utf8.js", "../node_modules/@d-fischer/shared-utils/lib/index.js", "../node_modules/@d-fischer/logger/lib/getMinLogLevelFromEnv.js", "../node_modules/@d-fischer/logger/lib/BaseLogger.js", "../node_modules/@d-fischer/logger/lib/BrowserLogger.js", "../node_modules/@d-fischer/logger/lib/CustomLoggerWrapper.js", "../node_modules/@d-fischer/logger/lib/NodeLogger.js", "../node_modules/@d-fischer/logger/lib/createLogger.js", "../node_modules/@d-fischer/logger/lib/index.js", "../node_modules/@d-fischer/rate-limiter/lib/errors/CustomError.js", "../node_modules/@d-fischer/rate-limiter/lib/errors/RetryAfterError.js", "../node_modules/@d-fischer/rate-limiter/lib/errors/RateLimitReachedError.js", "../node_modules/@d-fischer/rate-limiter/lib/limiters/NullRateLimiter.js", "../node_modules/function-bind/implementation.js", "../node_modules/function-bind/index.js", "../node_modules/has-symbols/shams.js", "../node_modules/has-symbols/index.js", "../node_modules/has-proto/index.js", "../node_modules/has/src/index.js", "../node_modules/get-intrinsic/index.js", "../node_modules/call-bind/index.js", "../node_modules/object-keys/isArguments.js", "../node_modules/object-keys/implementation.js", "../node_modules/object-keys/index.js", "../node_modules/has-property-descriptors/index.js", "../node_modules/define-properties/index.js", "../node_modules/@d-fischer/promise.allsettled/requirePromise.js", "../node_modules/es-abstract/2020/PromiseResolve.js", "../node_modules/es-abstract/5/Type.js", "../node_modules/es-abstract/2020/Type.js", "../node_modules/has-tostringtag/shams.js", "../node_modules/call-bind/callBound.js", "../node_modules/is-arguments/index.js", "../node_modules/object-inspect/index.js", "../node_modules/side-channel/index.js", "../node_modules/internal-slot/index.js", "../node_modules/stop-iteration-iterator/index.js", "../node_modules/isarray/index.js", "../node_modules/is-string/index.js", "../node_modules/is-map/index.js", "../node_modules/is-set/index.js", "../node_modules/es-get-iterator/index.js", "../node_modules/iterate-iterator/index.js", "../node_modules/iterate-value/index.js", "../node_modules/es-abstract/5/CheckObjectCoercible.js", "../node_modules/es-abstract/2023/RequireObjectCoercible.js", "../node_modules/es-abstract/helpers/isNaN.js", "../node_modules/es-abstract/helpers/isFinite.js", "../node_modules/es-abstract/helpers/isInteger.js", "../node_modules/es-abstract/2023/ArrayCreate.js", "../node_modules/es-abstract/2023/IsPropertyKey.js", "../node_modules/es-abstract/2023/Type.js", "../node_modules/es-abstract/2023/Get.js", "../node_modules/es-abstract/helpers/IsArray.js", "../node_modules/es-abstract/2023/IsArray.js", "../node_modules/es-abstract/GetIntrinsic.js", "../node_modules/es-abstract/helpers/isPropertyDescriptor.js", "../node_modules/es-abstract/helpers/DefineOwnProperty.js", "../node_modules/es-abstract/helpers/isMatchRecord.js", "../node_modules/es-abstract/helpers/assertRecord.js", "../node_modules/es-abstract/helpers/fromPropertyDescriptor.js", "../node_modules/es-abstract/2023/FromPropertyDescriptor.js", "../node_modules/es-abstract/2023/IsAccessorDescriptor.js", "../node_modules/es-abstract/2023/IsDataDescriptor.js", "../node_modules/es-abstract/2023/SameValue.js", "../node_modules/es-abstract/2023/ToBoolean.js", "../node_modules/is-callable/index.js", "../node_modules/es-abstract/2023/IsCallable.js", "../node_modules/es-abstract/2023/ToPropertyDescriptor.js", "../node_modules/es-abstract/2023/DefinePropertyOrThrow.js", "../node_modules/es-abstract/2023/IsConstructor.js", "../node_modules/es-abstract/2023/ArraySpeciesCreate.js", "../node_modules/es-abstract/2023/Call.js", "../node_modules/gopd/index.js", "../node_modules/es-abstract/helpers/isPrimitive.js", "../node_modules/es-abstract/2023/IsExtensible.js", "../node_modules/es-abstract/helpers/isFullyPopulatedPropertyDescriptor.js", "../node_modules/es-abstract/2023/IsGenericDescriptor.js", "../node_modules/es-abstract/2023/ValidateAndApplyPropertyDescriptor.js", "../node_modules/es-abstract/2023/OrdinaryDefineOwnProperty.js", "../node_modules/es-abstract/2023/CreateDataProperty.js", "../node_modules/es-abstract/2023/CreateDataPropertyOrThrow.js", "../node_modules/es-abstract/2023/HasProperty.js", "../node_modules/es-abstract/helpers/mod.js", "../node_modules/es-abstract/2023/modulo.js", "../node_modules/es-to-primitive/helpers/isPrimitive.js", "../node_modules/is-date-object/index.js", "../node_modules/is-symbol/index.js", "../node_modules/es-to-primitive/es2015.js", "../node_modules/es-abstract/2023/ToPrimitive.js", "../node_modules/is-regex/index.js", "../node_modules/safe-regex-test/index.js", "../node_modules/es-abstract/2023/ToString.js", "../node_modules/string.prototype.trim/implementation.js", "../node_modules/string.prototype.trim/polyfill.js", "../node_modules/string.prototype.trim/shim.js", "../node_modules/string.prototype.trim/index.js", "../node_modules/es-abstract/2023/StringToNumber.js", "../node_modules/es-abstract/2023/ToNumber.js", "../node_modules/es-abstract/2023/floor.js", "../node_modules/es-abstract/2023/truncate.js", "../node_modules/es-abstract/2023/ToUint32.js", "../node_modules/es-abstract/2023/ToObject.js", "../node_modules/array.prototype.map/implementation.js", "../node_modules/es-array-method-boxes-properly/index.js", "../node_modules/array.prototype.map/polyfill.js", "../node_modules/array.prototype.map/shim.js", "../node_modules/array.prototype.map/index.js", "../node_modules/@d-fischer/promise.allsettled/implementation.js", "../node_modules/@d-fischer/promise.allsettled/polyfill.js", "../node_modules/@d-fischer/promise.allsettled/shim.js", "../node_modules/@d-fischer/promise.allsettled/index.js", "../node_modules/@d-fischer/rate-limiter/lib/limiters/ResponseBasedRateLimiter.js", "../node_modules/@d-fischer/rate-limiter/lib/limiters/PartitionedRateLimiter.js", "../node_modules/@d-fischer/rate-limiter/lib/limiters/PartitionedTimeBasedRateLimiter.js", "../node_modules/@d-fischer/rate-limiter/lib/limiters/TimeBasedRateLimiter.js", "../node_modules/@d-fischer/rate-limiter/lib/limiters/TimedPassthruRateLimiter.js", "../node_modules/@d-fischer/rate-limiter/lib/index.js", "../node_modules/node-fetch/browser.js", "../node_modules/@d-fischer/cross-fetch/dist/node-ponyfill.js", "../node_modules/@d-fischer/qs/lib/utils.js", "../node_modules/@d-fischer/qs/lib/formats.js", "../node_modules/@d-fischer/qs/lib/stringify.js", "../node_modules/@d-fischer/qs/lib/parse.js", "../node_modules/@d-fischer/qs/lib/index.js", "../node_modules/klona/dist/index.js", "../node_modules/@twurple/common/lib/DataObject.js", "../node_modules/@twurple/common/lib/errors/CustomError.js", "../node_modules/@twurple/common/lib/errors/RelationAssertionError.js", "../node_modules/@twurple/common/lib/relations.js", "../node_modules/@twurple/common/lib/rtfm.js", "../node_modules/@twurple/common/lib/extensions/HelixExtension.js", "../node_modules/@twurple/common/lib/errors/HellFreezesOverError.js", "../node_modules/@twurple/common/lib/userResolvers.js", "../node_modules/@twurple/common/lib/index.js", "../node_modules/@twurple/api-call/lib/errors/HttpStatusCodeError.js", "../node_modules/@twurple/api-call/lib/helpers/transform.js", "../node_modules/@twurple/api-call/lib/helpers/url.js", "../node_modules/@twurple/api-call/lib/apiCall.js", "../node_modules/@twurple/api-call/lib/helpers/queries.external.js", "../node_modules/@twurple/api-call/lib/index.js", "../node_modules/@twurple/api/lib/errors/ConfigError.js", "../node_modules/@twurple/api/lib/utils/HelixRateLimiter.js", "../node_modules/@d-fischer/cache-decorators/lib/utils/createCacheKey.js", "../node_modules/@d-fischer/cache-decorators/lib/decorators/Cacheable.js", "../node_modules/@d-fischer/cache-decorators/lib/decorators/Cached.js", "../node_modules/@d-fischer/cache-decorators/lib/decorators/CachedGetter.js", "../node_modules/@d-fischer/cache-decorators/lib/decorators/ClearsCache.js", "../node_modules/@d-fischer/cache-decorators/lib/index.js", "../node_modules/@d-fischer/typed-event-emitter/lib/Listener.js", "../node_modules/@d-fischer/typed-event-emitter/lib/EventEmitter.js", "../node_modules/@d-fischer/typed-event-emitter/lib/index.js", "../node_modules/@twurple/auth/lib/AccessToken.js", "../node_modules/@twurple/auth/lib/errors/InvalidTokenError.js", "../node_modules/@twurple/auth/lib/errors/InvalidTokenTypeError.js", "../node_modules/@twurple/auth/lib/helpers.external.js", "../node_modules/@twurple/auth/lib/TokenInfo.js", "../node_modules/@twurple/auth/lib/helpers.js", "../node_modules/@twurple/auth/lib/TokenFetcher.js", "../node_modules/@twurple/auth/lib/providers/AppTokenAuthProvider.js", "../node_modules/@twurple/auth/lib/errors/CachedRefreshFailureError.js", "../node_modules/@twurple/auth/lib/errors/IntermediateUserRemovalError.js", "../node_modules/@twurple/auth/lib/errors/UnknownIntentError.js", "../node_modules/@twurple/auth/lib/providers/RefreshingAuthProvider.js", "../node_modules/@twurple/auth/lib/providers/StaticAuthProvider.js", "../node_modules/@twurple/auth/lib/index.js", "../node_modules/retry/lib/retry_operation.js", "../node_modules/retry/lib/retry.js", "../node_modules/retry/index.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/bits.external.js", "../node_modules/@twurple/api/lib/endpoints/BaseApi.js", "../node_modules/@twurple/api/lib/endpoints/bits/HelixBitsLeaderboardEntry.js", "../node_modules/@twurple/api/lib/endpoints/bits/HelixBitsLeaderboard.js", "../node_modules/@twurple/api/lib/endpoints/bits/HelixCheermoteList.js", "../node_modules/@twurple/api/lib/endpoints/bits/HelixBitsApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/channel.external.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/generic.external.js", "../node_modules/@twurple/api/lib/relations/HelixUserRelation.js", "../node_modules/@twurple/api/lib/utils/HelixRequestBatcher.js", "../node_modules/@twurple/api/lib/utils/pagination/HelixPaginatedRequest.js", "../node_modules/@twurple/api/lib/utils/pagination/HelixPaginatedRequestWithTotal.js", "../node_modules/@twurple/api/lib/utils/pagination/HelixPaginatedResult.js", "../node_modules/@twurple/api/lib/utils/pagination/HelixPagination.js", "../node_modules/@twurple/api/lib/endpoints/channel/HelixChannel.js", "../node_modules/@twurple/api/lib/endpoints/channel/HelixChannelEditor.js", "../node_modules/@twurple/api/lib/endpoints/channel/HelixChannelFollower.js", "../node_modules/@twurple/api/lib/endpoints/channel/HelixFollowedChannel.js", "../node_modules/@twurple/api/lib/endpoints/channel/HelixChannelApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/channelPoints.external.js", "../node_modules/@twurple/api/lib/endpoints/channelPoints/HelixCustomReward.js", "../node_modules/@twurple/api/lib/endpoints/channelPoints/HelixCustomRewardRedemption.js", "../node_modules/@twurple/api/lib/endpoints/channelPoints/HelixChannelPointsApi.js", "../node_modules/@twurple/api/lib/endpoints/charity/HelixCharityCampaignAmount.js", "../node_modules/@twurple/api/lib/endpoints/charity/HelixCharityCampaign.js", "../node_modules/@twurple/api/lib/endpoints/charity/HelixCharityCampaignDonation.js", "../node_modules/@twurple/api/lib/endpoints/charity/HelixCharityApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/chat.external.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixEmote.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixChannelEmote.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixChatBadgeVersion.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixChatBadgeSet.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixChatChatter.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixChatSettings.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixEmoteFromSet.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixPrivilegedChatSettings.js", "../node_modules/@twurple/api/lib/endpoints/chat/HelixChatApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/clip.external.js", "../node_modules/@twurple/api/lib/endpoints/clip/HelixClip.js", "../node_modules/@twurple/api/lib/endpoints/clip/HelixClipApi.js", "../node_modules/@twurple/api/lib/endpoints/contentClassificationLabels/HelixContentClassificationLabel.js", "../node_modules/@twurple/api/lib/endpoints/contentClassificationLabels/HelixContentClassificationLabelApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/entitlement.external.js", "../node_modules/@twurple/api/lib/endpoints/entitlements/HelixDropsEntitlement.js", "../node_modules/@twurple/api/lib/endpoints/entitlements/HelixEntitlementApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/eventSub.external.js", "../node_modules/@twurple/api/lib/endpoints/eventSub/HelixEventSubSubscription.js", "../node_modules/@twurple/api/lib/endpoints/eventSub/HelixPaginatedEventSubSubscriptionsRequest.js", "../node_modules/@twurple/api/lib/endpoints/eventSub/HelixEventSubApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/extensions.external.js", "../node_modules/@twurple/api/lib/endpoints/channel/HelixChannelReference.js", "../node_modules/@twurple/api/lib/endpoints/extensions/HelixExtensionBitsProduct.js", "../node_modules/@twurple/api/lib/endpoints/extensions/HelixExtensionTransaction.js", "../node_modules/@twurple/api/lib/endpoints/extensions/HelixExtensionsApi.js", "../node_modules/@twurple/api/lib/endpoints/game/HelixGame.js", "../node_modules/@twurple/api/lib/endpoints/game/HelixGameApi.js", "../node_modules/@twurple/api/lib/endpoints/goals/HelixGoal.js", "../node_modules/@twurple/api/lib/endpoints/goals/HelixGoalApi.js", "../node_modules/@twurple/api/lib/endpoints/hypeTrain/HelixHypeTrainContribution.js", "../node_modules/@twurple/api/lib/endpoints/hypeTrain/HelixHypeTrainEvent.js", "../node_modules/@twurple/api/lib/endpoints/hypeTrain/HelixHypeTrainApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/moderation.external.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixAutoModSettings.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixAutoModStatus.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixBanUser.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixBan.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixBlockedTerm.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixModerator.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixShieldModeStatus.js", "../node_modules/@twurple/api/lib/endpoints/moderation/HelixModerationApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/poll.external.js", "../node_modules/@twurple/api/lib/endpoints/poll/HelixPollChoice.js", "../node_modules/@twurple/api/lib/endpoints/poll/HelixPoll.js", "../node_modules/@twurple/api/lib/endpoints/poll/HelixPollApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/prediction.external.js", "../node_modules/@twurple/api/lib/endpoints/prediction/HelixPredictor.js", "../node_modules/@twurple/api/lib/endpoints/prediction/HelixPredictionOutcome.js", "../node_modules/@twurple/api/lib/endpoints/prediction/HelixPrediction.js", "../node_modules/@twurple/api/lib/endpoints/prediction/HelixPredictionApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/raid.external.js", "../node_modules/@twurple/api/lib/endpoints/raids/HelixRaid.js", "../node_modules/@twurple/api/lib/endpoints/raids/HelixRaidApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/schedule.external.js", "../node_modules/@twurple/api/lib/endpoints/schedule/HelixScheduleSegment.js", "../node_modules/@twurple/api/lib/endpoints/schedule/HelixPaginatedScheduleSegmentRequest.js", "../node_modules/@twurple/api/lib/endpoints/schedule/HelixSchedule.js", "../node_modules/@twurple/api/lib/endpoints/schedule/HelixScheduleApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/search.external.js", "../node_modules/@twurple/api/lib/endpoints/search/HelixChannelSearchResult.js", "../node_modules/@twurple/api/lib/endpoints/search/HelixSearchApi.js", "../node_modules/@twurple/api/lib/errors/StreamNotLiveError.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/stream.external.js", "../node_modules/@twurple/api/lib/endpoints/stream/HelixStream.js", "../node_modules/@twurple/api/lib/endpoints/stream/HelixStreamMarker.js", "../node_modules/@twurple/api/lib/endpoints/stream/HelixStreamMarkerWithVideo.js", "../node_modules/@twurple/api/lib/endpoints/stream/HelixStreamApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/subscription.external.js", "../node_modules/@twurple/api/lib/endpoints/subscriptions/HelixUserSubscription.js", "../node_modules/@twurple/api/lib/endpoints/subscriptions/HelixSubscription.js", "../node_modules/@twurple/api/lib/endpoints/subscriptions/HelixPaginatedSubscriptionsRequest.js", "../node_modules/@twurple/api/lib/endpoints/subscriptions/HelixSubscriptionApi.js", "../node_modules/@twurple/api/lib/endpoints/team/HelixTeam.js", "../node_modules/@twurple/api/lib/endpoints/team/HelixTeamWithUsers.js", "../node_modules/@twurple/api/lib/endpoints/team/HelixTeamApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/user.external.js", "../node_modules/@twurple/api/lib/endpoints/user/extensions/HelixBaseExtension.js", "../node_modules/@twurple/api/lib/endpoints/user/extensions/HelixInstalledExtension.js", "../node_modules/@twurple/api/lib/endpoints/user/extensions/HelixInstalledExtensionList.js", "../node_modules/@twurple/api/lib/endpoints/user/extensions/HelixUserExtension.js", "../node_modules/@twurple/api/lib/endpoints/user/HelixUser.js", "../node_modules/@twurple/api/lib/endpoints/user/HelixPrivilegedUser.js", "../node_modules/@twurple/api/lib/endpoints/user/HelixUserBlock.js", "../node_modules/@twurple/api/lib/endpoints/user/HelixUserApi.js", "../node_modules/@twurple/api/lib/endpoints/video/HelixVideo.js", "../node_modules/@twurple/api/lib/endpoints/video/HelixVideoApi.js", "../node_modules/@twurple/api/lib/interfaces/endpoints/whisper.external.js", "../node_modules/@twurple/api/lib/endpoints/whisper/HelixWhisperApi.js", "../node_modules/@twurple/api/lib/reporting/ApiReportedRequest.js", "../node_modules/@twurple/api/lib/client/BaseApiClient.js", "../node_modules/@twurple/api/lib/client/NoContextApiClient.js", "../node_modules/@twurple/api/lib/client/UserContextApiClient.js", "../node_modules/@twurple/api/lib/client/ApiClient.js", "../node_modules/@twurple/api/lib/endpoints/user/HelixFollow.js", "../node_modules/@twurple/api/lib/index.js", "../src/struct/EmoteFetcher.js", "../src/struct/EmoteParser.js", "../src/index.js"],
4
+ "sourcesContent": ["class Emote {\n /**\n * Base class for emotes.\n * This constructor is not to be used.\n * @param {Channel} channel - Channel this emote belongs to.\n * @param {string} id - ID of the emote.\n * @param {data} data - The raw emote data.\n */\n constructor(channel, id, data) {\n if (new.target.name === Emote.name) {\n throw new Error('Base Emote class cannot be used');\n }\n\n /**\n * The emote fetcher.\n * @type {EmoteFetcher}\n */\n this.fetcher = channel.fetcher;\n\n /**\n * The channel this emote belongs to.\n * Only accurate and constant on Twitch emotes.\n * For other types of emotes, use the `owner` or `ownerName` property.\n * @type {Channel}\n */\n this.channel = channel;\n\n /**\n * The ID of this emote.\n * @type {string}\n */\n this.id = id;\n\n /**\n * The type of this emote.\n * Either `twitch`, `bttv`, `ffz`, or '7tv'.\n * @type {string}\n */\n this.type = null;\n\n this._setup(data);\n }\n\n _setup(data) {\n /**\n * The code or name of the emote.\n * @type {string}\n */\n this.code = data.code;\n }\n\n /**\n * Gets the image link of the emote.\n * @param {number} size - The size of the image.\n * @returns {string}\n */\n /* c8 ignore next 3*/\n toLink() {\n return null;\n }\n\n /**\n * Override for `toString`.\n * Will give the emote's name.\n * @returns {string}\n */\n /* c8 ignore next 3*/\n toString() {\n return this.code;\n }\n\n /**\n * Override for `toObject`.\n * Will result in an Object representation of an Emote\n * @returns {Object}\n */\n toObject() {\n return {\n code: this.code,\n id: this.id,\n channel_id: this.channel.channel_id\n };\n }\n}\n\nmodule.exports = Emote;\n", "module.exports = {\n Twitch: {\n CDN: (id, size) => `https://static-cdn.jtvnw.net/emoticons/v2/${id}/default/dark/${size + 1}.0`\n },\n BTTV: {\n Global: 'https://api.betterttv.net/3/cached/emotes/global',\n Channel: id => `https://api.betterttv.net/3/cached/users/twitch/${id}`,\n CDN: (id, size) => `https://cdn.betterttv.net/emote/${id}/${size + 1}x.webp`\n },\n SevenTV: {\n Global: 'https://7tv.io/v3/emote-sets/global',\n Channel: id => `https://7tv.io/v3/users/twitch/${id}`,\n CDN: (id, size) => `https://cdn.7tv.app/emote/${id}/${size}`\n },\n FFZ: {\n sets: {\n Global: 3,\n Modifiers: 1532818\n },\n Set: id => `https://api.frankerfacez.com/v1/set/${id}`,\n Channel: id => `https://api.frankerfacez.com/v1/room/id/${id}`,\n CDN: (id, size) => `https://cdn.frankerfacez.com/emote/${id}/${size}`,\n CDNAnimated: (id, size) => `https://cdn.frankerfacez.com/emote/${id}/animated/${size}.webp`\n },\n Templates: {\n html: '<img alt=\"{name}\" title=\"{name}\" class=\"twitch-emote twitch-emote-{size}\" src=\"{link}\">',\n markdown: '![{name}]({link} \"{name}\")',\n bbcode: '[img]{link}[/img]',\n plain: '{link}'\n }\n};\n", "const Emote = require('./Emote');\nconst Constants = require('../util/Constants');\n\n/** @extends Emote */\nclass BTTVEmote extends Emote {\n /**\n * A BTTV emote.\n * @param {Channel} channel - Channel this emote belongs to.\n * @param {string} id - ID of the emote.\n * @param {data} data - The raw emote data.\n */\n constructor(channel, id, data) {\n super(channel, id, data);\n this.type = 'bttv';\n }\n\n /**\n * The channel of this emote's creator.\n * Not guaranteed to contain the emote, or be cached.\n * @readonly\n * @type {?Channel}\n */\n get owner() {\n return this.fetcher.channels.get(this.ownerName);\n }\n\n _setup(data) {\n super._setup(data);\n\n /**\n * The name of the emote creator's channel.\n * Will be null for global or channel emotes.\n * @type {?string}\n */\n this.ownerName = 'user' in data ? data.user.name : null;\n\n /**\n * If emote is animated.\n * @type {boolean}\n */\n this.animated = data.animated;\n\n /**\n * The image type of the emote.\n * @type {string}\n */\n this.imageType = 'webp';\n }\n\n /**\n * Gets the image link of the emote.\n * @param {number} size - The size of the image, 0, 1, or 2.\n * @returns {string}\n */\n toLink(size = 0) {\n return Constants.BTTV.CDN(this.id, size); // eslint-disable-line new-cap\n }\n\n /**\n * Override for `toObject`.\n * Will result in an Object representation of a BTTVEmote\n * @returns {Object}\n */\n toObject() {\n return Object.assign({}, super.toObject(), {\n animated: this.animated,\n ownerName: this.ownerName,\n type: this.type\n });\n }\n\n /**\n * Converts an emote Object into a BTTVEmote\n * @param {Object} [emoteObject] - Object representation of this emote\n * @param {Channel} [channel=null] - Channel this emote belongs to.\n * @returns {BTTVEmote}\n */\n static fromObject(emoteObject, channel = null) {\n return new BTTVEmote(channel, emoteObject.id,\n {\n code: emoteObject.code,\n animated: emoteObject.animated,\n user: {\n name: emoteObject.ownerName\n }\n });\n }\n}\n\nmodule.exports = BTTVEmote;\n", "/**\n * An extended Map with utility methods.\n * @class Collection\n */\nclass Collection extends Map {\n /**\n * Finds first matching value by property or function.\n * Same as `Array#find`.\n * @param {string|Function} propOrFunc - Property or function to test.\n * @param {any} [value] - Value to find.\n * @returns {any}\n */\n find(propOrFunc, value) {\n if (typeof propOrFunc === 'string') {\n if (typeof value === 'undefined') return null;\n for (const item of this.values()) {\n if (item[propOrFunc] === value) return item;\n }\n\n return null;\n }\n\n if (typeof propOrFunc === 'function') {\n let i = 0;\n for (const item of this.values()) {\n if (propOrFunc(item, i, this)) return item;\n i++;\n }\n\n return null;\n }\n\n return null;\n }\n\n /**\n * Filters cache by function.\n * Same as `Array#filter`.\n * @param {Function} func - Function to test.\n * @param {any} [thisArg] - The context for the function.\n * @returns {Collection}\n */\n filter(func, thisArg) {\n if (thisArg) func = func.bind(thisArg);\n\n const results = new this.constructor();\n\n let i = 0;\n for (const [key, item] of this) {\n if (func(item, i, this)) results.set(key, item);\n i++;\n }\n\n return results;\n }\n\n /**\n * Maps cache by function.\n * Same as `Array#map`.\n * @param {Function} func - Function to use.\n * @param {any} [thisArg] - The context for the function.\n * @returns {any[]}\n */\n map(func, thisArg) {\n if (thisArg) func = func.bind(thisArg);\n\n const array = new Array(this.size);\n let i = 0;\n for (const item of this.values()) {\n array[i] = func(item, i, this);\n i++;\n }\n\n return array;\n }\n}\n\nmodule.exports = Collection;\n", "const Collection = require('../util/Collection');\n\nclass Channel {\n /**\n * A Twitch channel.\n * @param {EmoteFetcher} fetcher - The emote fetcher.\n * @param {int} id - ID of the channel.\n */\n constructor(fetcher, id) {\n /**\n * The emote fetcher.\n * @type {EmoteFetcher}\n */\n this.fetcher = fetcher;\n\n /**\n * The ID of this channel.\n * For the global channel, the ID will be null.\n * @type {?int}\n */\n this.channel_id = id;\n\n /**\n * Cached emotes belonging to this channel.\n * @type {Collection<string, Emote>}\n */\n this.emotes = new Collection();\n }\n\n /* There are tests that those are returning Collections, but c8 doesn't get it. */\n /* c8 ignore start */\n\n /**\n * Fetches the BTTV emotes for this channel.\n * @returns {Promise<Collection<string, BTTVEmote>>}\n */\n fetchBTTVEmotes() {\n return this.fetcher.fetchBTTVEmotes(this.id);\n }\n\n /**\n * Fetches the FFZ emotes for this channel.\n * @returns {Promise<Collection<string, FFZEmote>>}\n */\n fetchFFZEmotes() {\n return this.fetcher.fetchFFZEmotes(this.id);\n }\n\n /**\n * Fetches the 7TV emotes for this channel.\n * @returns {Promise<Collection<string, SevenTVEmote>>}\n */\n fetchSevenTVEmotes() {\n return this.fetcher.fetchSevenTVEmotes(this.id);\n }\n\n /* c8 ignore end */\n}\n\nmodule.exports = Channel;\n", "const Emote = require('./Emote');\nconst Constants = require('../util/Constants');\n\n/** @extends Emote */\nclass FFZEmote extends Emote {\n /**\n * An FFZ emote.\n * @param {Channel} channel - Channel this emote belongs to.\n * @param {string} id - ID of the emote.\n * @param {data} data - The raw emote data.\n */\n constructor(channel, id, data) {\n super(channel, id, data);\n this.type = 'ffz';\n }\n\n /**\n * The channel of this emote's creator.\n * Not guaranteed to contain the emote, or be cached.\n * @readonly\n * @type {?Channel}\n */\n get owner() {\n return this.fetcher.channels.get(this.ownerName);\n }\n\n _setup(data) {\n super._setup(data);\n this.code = data.name;\n\n /**\n * The name of the emote creator's channel.\n * @type {?string}\n */\n this.ownerName = 'owner' in data ? data.owner.name : null;\n\n /**\n * Available image sizes.\n * @type {string[]}\n */\n this.sizes = 'animated' in data ? Object.keys(data.animated) : Object.keys(data.urls);\n\n /**\n * If emote is animated.\n * @type {boolean}\n */\n this.animated = 'animated' in data;\n\n /**\n * The image type of the emote.\n * @type {string}\n */\n this.imageType = 'animated' in data ? 'webp' : 'png';\n\n /**\n * If the emote is a modifier and should be hidden.\n * @type {boolean}\n */\n this.modifier = data.modifier && (data.modifier_flags & 1) !== 0;\n }\n\n /**\n * Gets the image link of the emote.\n * @param {number} size - The size of the image.\n * @returns {string}\n */\n toLink(size = 0) {\n size = this.sizes[size];\n if (this.animated) return Constants.FFZ.CDNAnimated(this.id, size); // eslint-disable-line new-cap\n return Constants.FFZ.CDN(this.id, size); // eslint-disable-line new-cap\n }\n\n /**\n * Override for `toObject`.\n * Will result in an Object representation of a FFZEmote\n * @returns {Object}\n */\n toObject() {\n return Object.assign({}, super.toObject(), {\n animated: this.animated,\n sizes: this.sizes,\n ownerName: this.ownerName,\n type: this.type,\n modifier: this.modifier\n });\n }\n\n /**\n * Converts an emote Object into a FFZEmote\n * @param {Object} [emoteObject] - Object representation of this emote\n * @param {Channel} [channel=null] - Channel this emote belongs to.\n * @returns {FFZEmote}\n */\n static fromObject(emoteObject, channel = null) {\n // Need to convert sizes array to object, e.g. [1, 2, 4] -> { 1: '1', 2: '2', 4: '4' }\n const sizes_obj = emoteObject.sizes.reduce((acc, curr) => {\n acc[curr] = curr;\n return acc;\n }, {});\n return new FFZEmote(channel, emoteObject.id,\n {\n code: emoteObject.code,\n name: emoteObject.code,\n urls: sizes_obj,\n ...emoteObject.animated ? { animated: sizes_obj } : {},\n owner: { name: emoteObject.ownerName },\n modifier: emoteObject.modifier,\n modifier_flags: emoteObject.modifier\n });\n }\n}\n\nmodule.exports = FFZEmote;\n", "const Emote = require('./Emote');\nconst Constants = require('../util/Constants');\n\n/** @extends Emote */\nclass SevenTVEmote extends Emote {\n /**\n * A 7TV emote.\n * @param {Channel} channel - Channel this emote belongs to.\n * @param {string} id - ID of the emote.\n * @param {data} data - The raw emote data.\n */\n constructor(channel, id, data) {\n super(channel, id, data);\n this.type = '7tv';\n }\n\n /**\n * The channel of this emote's creator.\n * Not guaranteed to contain the emote, or be cached.\n * @readonly\n * @type {?Channel}\n */\n get owner() {\n return this.fetcher.channels.get(this.ownerName);\n }\n\n _setup(data) {\n super._setup(data);\n this.code = data.name;\n\n /**\n * The name of the emote creator's channel.\n * @type {?string}\n */\n this.ownerName = 'owner' in data ? data.owner.display_name : null;\n\n /**\n * Available image sizes.\n * @type {string[]}\n */\n this.sizes = data.host.files\n .filter(el => el.format === this.channel.format.toUpperCase())\n .map(el => el.name);\n\n /**\n * If emote is animated.\n * @type {boolean}\n */\n this.animated = data.animated;\n\n /**\n * The image type of the emote.\n * @type {string}\n */\n this.imageType = this.channel.format;\n }\n\n /**\n * Gets the image link of the emote.\n * @param {number} size - The size of the image.\n * @returns {string}\n */\n toLink(size = 0) {\n size = this.sizes[size];\n return Constants.SevenTV.CDN(this.id, size); // eslint-disable-line new-cap\n }\n\n /**\n * Override for `toObject`.\n * Will result in an Object representation of a SevenTVEmote\n * @returns {Object}\n */\n toObject() {\n return Object.assign({}, super.toObject(), {\n animated: this.animated,\n sizes: this.sizes,\n ownerName: this.ownerName,\n type: this.type,\n imageType: this.imageType\n });\n }\n\n /**\n * Converts an emote Object into a SevenTVEmote\n * @param {Object} [emoteObject] - Object representation of this emote\n * @param {Channel} [channel] - Channel this emote belongs to.\n * @returns {SevenTVEmote}\n */\n static fromObject(emoteObject, channel) {\n const sizes = emoteObject.sizes.map(size => { return { format: channel.format.toUpperCase(), name: size }; });\n return new SevenTVEmote(channel, emoteObject.id,\n {\n code: emoteObject.code,\n name: emoteObject.code,\n animated: emoteObject.animated,\n owner: {\n display_name: emoteObject.ownerName\n },\n host: {\n files: sizes\n }\n });\n }\n}\n\nmodule.exports = SevenTVEmote;\n", "const Emote = require('./Emote');\nconst Constants = require('../util/Constants');\n\n/** @extends Emote */\nclass TwitchEmote extends Emote {\n /**\n * A Twitch emote.\n * @param {Channel} channel - Channel this emote belongs to.\n * @param {string} id - ID of the emote.\n * @param {data} data - The raw emote data.\n */\n constructor(channel, id, data) {\n super(channel, id, data);\n this.type = 'twitch';\n }\n\n /**\n * The channel of this emote's creator.\n * @readonly\n * @type {Channel}\n */\n get owner() {\n return this.channel;\n }\n\n _setup(data) {\n super._setup(data);\n\n /**\n * The set ID of the emote.\n * @type {?string}\n */\n this.set = data.emoticon_set;\n\n /**\n * If emote is animated.\n * @type {boolean}\n */\n this.animated = 'animated' in data.formats;\n\n /**\n * The image type of the emote.\n * @type {string}\n */\n this.imageType = 'animated' in data.formats ? 'gif' : 'png';\n }\n\n /**\n * Gets the image link of the emote.\n * @param {number} size - The size of the image, 0, 1, or 2.\n * @returns {string}\n */\n toLink(size = 0) {\n return Constants.Twitch.CDN(this.id, size); // eslint-disable-line new-cap\n }\n\n /**\n * Override for `toObject`.\n * Will result in an Object representation of a TwitchEmote\n * @returns {Object}\n */\n toObject() {\n return Object.assign({}, super.toObject(), {\n animated: this.animated,\n set: this.set,\n type: this.type\n });\n }\n\n /**\n * Converts an emote Object into a TwitchEmote\n * @param {Object} [emoteObject] - Object representation of this emote\n * @param {Channel} [channel=null] - Channel this emote belongs to.\n * @returns {TwitchEmote}\n */\n static fromObject(emoteObject, channel = null) {\n return new TwitchEmote(channel, emoteObject.id,\n {\n code: emoteObject.code,\n animated: emoteObject.animated,\n emoticon_set: emoteObject.set,\n formats: emoteObject.animated ? { animated: emoteObject.animated } : {}\n });\n }\n}\n\nmodule.exports = TwitchEmote;\n", "'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n", "'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n", "'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n", "// eslint-disable-next-line strict\nexport default null;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n", "'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n", "'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n", "'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n", "'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n", "'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n", "'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n", "import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n", "'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n", "'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n", "'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n", "'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n", "'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n", "'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n", "'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n", "'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n", "'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n", "'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n", "'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n", "'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n", "'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if(!requestHeaders.getContentType(/^\\s*multipart\\/form-data/)){\n requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks\n } else if(utils.isString(contentType = requestHeaders.getContentType())){\n // fix semicolon duplication issue for ReactNative FormData implementation\n requestHeaders.setContentType(contentType.replace(/^\\s*(multipart\\/form-data);+/, '$1'))\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n", "import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n", "'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n", "export const VERSION = \"1.5.1\";", "'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n", "'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n", "'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n", "'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n", "const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n", "'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "module.exports.isNode = false;\n\n", "\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogLevelToConsoleFunction = exports.resolveLogLevel = exports.LogLevel = void 0;\nvar detect_node_1 = require(\"@d-fischer/detect-node\");\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"CRITICAL\"] = 0] = \"CRITICAL\";\n LogLevel[LogLevel[\"ERROR\"] = 1] = \"ERROR\";\n LogLevel[LogLevel[\"WARNING\"] = 2] = \"WARNING\";\n LogLevel[LogLevel[\"INFO\"] = 3] = \"INFO\";\n LogLevel[LogLevel[\"DEBUG\"] = 4] = \"DEBUG\";\n LogLevel[LogLevel[\"TRACE\"] = 7] = \"TRACE\";\n})(LogLevel || (LogLevel = {}));\nexports.LogLevel = LogLevel;\nfunction resolveLogLevel(level) {\n if (typeof level === 'number') {\n if (Object.prototype.hasOwnProperty.call(LogLevel, level)) {\n return level;\n }\n var eligibleLevels = Object.keys(LogLevel)\n .map(function (k) { return parseInt(k, 10); })\n .filter(function (k) { return !isNaN(k) && k < level; });\n if (!eligibleLevels.length) {\n return LogLevel.WARNING;\n }\n return Math.max.apply(Math, eligibleLevels);\n }\n // TODO drop the replace for next major, it keeps the old deprecated debug1/2/3 levels running\n var strLevel = level.replace(/\\d+$/, '').toUpperCase();\n if (!Object.prototype.hasOwnProperty.call(LogLevel, strLevel)) {\n throw new Error(\"Unknown log level string: \".concat(level));\n }\n return LogLevel[strLevel];\n}\nexports.resolveLogLevel = resolveLogLevel;\n// Node 8+ defines console.debug as noop, and earlier versions don't define it at all\nvar debugFunction = detect_node_1.isNode ? console.log.bind(console) : console.debug.bind(console);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexports.LogLevelToConsoleFunction = (_a = {},\n _a[LogLevel.CRITICAL] = console.error.bind(console),\n _a[LogLevel.ERROR] = console.error.bind(console),\n _a[LogLevel.WARNING] = console.warn.bind(console),\n _a[LogLevel.INFO] = console.info.bind(console),\n _a[LogLevel.DEBUG] = debugFunction.bind(console),\n _a[LogLevel.TRACE] = console.trace.bind(console),\n _a);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enumerable = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nfunction Enumerable(enumerable) {\n if (enumerable === void 0) { enumerable = true; }\n return function (target, key) {\n // first property defined in prototype, that's why we use getters/setters\n // (otherwise assignment in object will override property in prototype)\n Object.defineProperty(target, key, {\n get: function () {\n return;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set: function (val) {\n // here we have a reference to the instance and can set property directly to it\n Object.defineProperty(this, key, {\n value: val,\n writable: true,\n enumerable: enumerable\n });\n },\n enumerable: enumerable\n });\n };\n}\nexports.Enumerable = Enumerable;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flatten = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction flatten(arr) {\n var _a;\n return (_a = []).concat.apply(_a, tslib_1.__spreadArray([], tslib_1.__read(arr), false));\n}\nexports.flatten = flatten;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partitionedFlatMap = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction partitionedFlatMap(arr, keyMapper, valueMapper) {\n var e_1, _a, _b;\n var result = {};\n try {\n for (var arr_1 = tslib_1.__values(arr), arr_1_1 = arr_1.next(); !arr_1_1.done; arr_1_1 = arr_1.next()) {\n var entry = arr_1_1.value;\n var key = keyMapper(entry);\n var values = valueMapper(entry);\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (Object.prototype.hasOwnProperty.call(result, key)) {\n (_b = result[key]).push.apply(_b, tslib_1.__spreadArray([], tslib_1.__read(values), false));\n }\n else {\n result[key] = values;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (arr_1_1 && !arr_1_1.done && (_a = arr_1.return)) _a.call(arr_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n}\nexports.partitionedFlatMap = partitionedFlatMap;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveConfigValueSync = exports.resolveConfigValue = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction resolveConfigValue(value) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(typeof value === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, value()];\n case 1: \n // eslint-disable-next-line @typescript-eslint/ban-types\n return [2 /*return*/, _a.sent()];\n case 2: return [2 /*return*/, value];\n }\n });\n });\n}\nexports.resolveConfigValue = resolveConfigValue;\nfunction resolveConfigValueSync(value) {\n if (typeof value === 'function') {\n // eslint-disable-next-line @typescript-eslint/ban-types\n return value();\n }\n return value;\n}\nexports.resolveConfigValueSync = resolveConfigValueSync;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deprecateClass = void 0;\nvar tslib_1 = require(\"tslib\");\n// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/naming-convention\nfunction deprecateClass(Base, msg) {\n var deprecateNoticeShown = false;\n return /** @class */ (function (_super) {\n tslib_1.__extends(class_1, _super);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!deprecateNoticeShown) {\n // eslint-disable-next-line no-console\n console.warn(msg);\n deprecateNoticeShown = true;\n }\n return _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(args), false)) || this;\n }\n return class_1;\n }(Base));\n}\nexports.deprecateClass = deprecateClass;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.match = exports.eq = void 0;\nvar matched = function (x) { return ({\n otherwise: function () { return x; },\n on: function () { return matched(x); }\n}); };\nvar match = function (x) { return ({\n on: function (predicate, fn) { return (predicate(x) ? matched(fn(x)) : match(x)); },\n otherwise: function (fn) { return fn(x); }\n}); };\nexports.match = match;\nvar eq = function (x) {\n return function (y) {\n return x === y;\n };\n};\nexports.eq = eq;\nmatch.eq = exports.eq;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fibWithLimit = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction fibWithLimit(limit) {\n var current, next;\n var _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n current = 0;\n next = 1;\n _b.label = 1;\n case 1:\n if (!(current < limit)) return [3 /*break*/, 3];\n return [4 /*yield*/, current];\n case 2:\n _b.sent();\n _a = tslib_1.__read([next, current + next], 2), current = _a[0], next = _a[1];\n return [3 /*break*/, 1];\n case 3:\n if (!true) return [3 /*break*/, 5];\n return [4 /*yield*/, limit];\n case 4:\n _b.sent();\n return [3 /*break*/, 3];\n case 5: return [2 /*return*/];\n }\n });\n}\nexports.fibWithLimit = fibWithLimit;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayToObject = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction arrayToObject(arr, fn) {\n return Object.assign.apply(Object, tslib_1.__spreadArray([{}], tslib_1.__read(arr.map(fn)), false));\n}\nexports.arrayToObject = arrayToObject;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.entriesToObject = void 0;\nvar tslib_1 = require(\"tslib\");\nvar arrayToObject_1 = require(\"./arrayToObject\");\nfunction entriesToObject(obj) {\n return (0, arrayToObject_1.arrayToObject)(obj, function (_a) {\n var _b;\n var _c = tslib_1.__read(_a, 2), key = _c[0], val = _c[1];\n return (_b = {}, _b[key] = val, _b);\n });\n}\nexports.entriesToObject = entriesToObject;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.forEachObjectEntry = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction forEachObjectEntry(obj, fn) {\n Object.entries(obj).forEach(function (_a) {\n var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1];\n return fn(value, key);\n });\n}\nexports.forEachObjectEntry = forEachObjectEntry;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction groupBy(arr, keyFn) {\n var e_1, _a;\n var _b;\n if (typeof keyFn !== 'function') {\n var key_1 = keyFn;\n // eslint-disable-next-line @typescript-eslint/ban-types,@typescript-eslint/no-base-to-string\n keyFn = (function (value) { return value[key_1].toString(); });\n }\n var result = {};\n try {\n for (var arr_1 = tslib_1.__values(arr), arr_1_1 = arr_1.next(); !arr_1_1.done; arr_1_1 = arr_1.next()) {\n var item = arr_1_1.value;\n var groupKey = keyFn(item);\n ((_b = result[groupKey]) !== null && _b !== void 0 ? _b : (result[groupKey] = [])).push(item);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (arr_1_1 && !arr_1_1.done && (_a = arr_1.return)) _a.call(arr_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n}\nexports.groupBy = groupBy;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.indexBy = void 0;\nvar arrayToObject_1 = require(\"./arrayToObject\");\nfunction indexBy(arr, keyFn) {\n if (typeof keyFn !== 'function') {\n var key_1 = keyFn;\n // eslint-disable-next-line @typescript-eslint/ban-types,@typescript-eslint/no-base-to-string\n keyFn = (function (value) { return value[key_1].toString(); });\n }\n return (0, arrayToObject_1.arrayToObject)(arr, function (val) {\n var _a;\n return (_a = {}, _a[keyFn(val)] = val, _a);\n });\n}\nexports.indexBy = indexBy;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapObject = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction mapObject(obj, fn) {\n var mapped = Object.entries(obj).map(\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n function (_a) {\n var _b;\n var _c = tslib_1.__read(_a, 2), key = _c[0], value = _c[1];\n return (_b = {}, _b[key] = fn(value, key), _b);\n });\n return Object.assign.apply(Object, tslib_1.__spreadArray([{}], tslib_1.__read(mapped), false));\n}\nexports.mapObject = mapObject;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pick = void 0;\nvar tslib_1 = require(\"tslib\");\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction pick(obj, keys) {\n return Object.assign.apply(Object, tslib_1.__spreadArray([{}], tslib_1.__read(Object.entries(obj)\n .filter(function (_a) {\n var _b = tslib_1.__read(_a, 1), key = _b[0];\n return keys.includes(key);\n })\n .map(function (_a) {\n var _b;\n var _c = tslib_1.__read(_a, 2), key = _c[0], value = _c[1];\n return (_b = {}, _b[key] = value, _b);\n })), false));\n}\nexports.pick = pick;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.omit = void 0;\nvar pick_1 = require(\"./pick\");\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction omit(obj, keys) {\n return (0, pick_1.pick)(obj, Object.keys(obj).filter(function (key) { return !keys.includes(key); }));\n}\nexports.omit = omit;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapOptional = exports.mapNullable = exports.isNullish = void 0;\nfunction isNullish(value) {\n return value == null;\n}\nexports.isNullish = isNullish;\nfunction mapNullable(value, cb) {\n return isNullish(value) ? null : cb(value);\n}\nexports.mapNullable = mapNullable;\nfunction mapOptional(value, cb) {\n return isNullish(value) ? undefined : cb(value);\n}\nexports.mapOptional = mapOptional;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction delay(ms) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, ms); })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n}\nexports.delay = delay;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.promiseWithResolvers = void 0;\nfunction promiseWithResolvers() {\n // eslint-disable-next-line @typescript-eslint/init-declarations\n var resolve;\n // eslint-disable-next-line @typescript-eslint/init-declarations\n var reject;\n var promise = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n return { promise: promise, resolve: resolve, reject: reject };\n}\nexports.promiseWithResolvers = promiseWithResolvers;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.padLeft = void 0;\nfunction padLeft(str, length, padding) {\n if (typeof str === 'number') {\n str = str.toString();\n }\n length = length - str.length;\n if (length <= 0) {\n return str;\n }\n if (padding === undefined) {\n padding = ' ';\n }\n var paddingStr = '';\n do {\n /* eslint-disable no-bitwise */\n if ((length & 1) === 1) {\n paddingStr += padding;\n }\n length >>= 1;\n if (length) {\n padding += padding;\n }\n /* eslint-enable no-bitwise */\n } while (length);\n return paddingStr + str;\n}\nexports.padLeft = padLeft;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWithLimit = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction splitWithLimit(str, delim, count) {\n var parts = str.split(delim);\n if (parts.length <= count) {\n return parts;\n }\n return tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(parts.slice(0, count - 1)), false), [parts.slice(count - 1).join(delim)], false);\n}\nexports.splitWithLimit = splitWithLimit;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utf8Substring = exports.utf8Length = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction utf8Length(str) {\n return tslib_1.__spreadArray([], tslib_1.__read(str), false).length;\n}\nexports.utf8Length = utf8Length;\nfunction utf8Substring(str, start, end) {\n return tslib_1.__spreadArray([], tslib_1.__read(str), false).slice(start, end).join('');\n}\nexports.utf8Substring = utf8Substring;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utf8Substring = exports.utf8Length = exports.splitWithLimit = exports.padLeft = exports.promiseWithResolvers = exports.delay = exports.mapOptional = exports.mapNullable = exports.isNullish = exports.pick = exports.omit = exports.mapObject = exports.indexBy = exports.groupBy = exports.forEachObjectEntry = exports.entriesToObject = exports.arrayToObject = exports.fibWithLimit = exports.eq = exports.match = exports.deprecateClass = exports.resolveConfigValueSync = exports.resolveConfigValue = exports.partitionedFlatMap = exports.flatten = exports.Enumerable = void 0;\nvar Enumerable_1 = require(\"./decorators/Enumerable\");\nObject.defineProperty(exports, \"Enumerable\", { enumerable: true, get: function () { return Enumerable_1.Enumerable; } });\nvar flatten_1 = require(\"./functions/array/flatten\");\nObject.defineProperty(exports, \"flatten\", { enumerable: true, get: function () { return flatten_1.flatten; } });\nvar partitionedFlatMap_1 = require(\"./functions/array/partitionedFlatMap\");\nObject.defineProperty(exports, \"partitionedFlatMap\", { enumerable: true, get: function () { return partitionedFlatMap_1.partitionedFlatMap; } });\nvar resolveConfigValue_1 = require(\"./functions/config/resolveConfigValue\");\nObject.defineProperty(exports, \"resolveConfigValue\", { enumerable: true, get: function () { return resolveConfigValue_1.resolveConfigValue; } });\nObject.defineProperty(exports, \"resolveConfigValueSync\", { enumerable: true, get: function () { return resolveConfigValue_1.resolveConfigValueSync; } });\nvar deprecateClass_1 = require(\"./functions/deprecate/deprecateClass\");\nObject.defineProperty(exports, \"deprecateClass\", { enumerable: true, get: function () { return deprecateClass_1.deprecateClass; } });\nvar match_1 = require(\"./functions/match/match\");\nObject.defineProperty(exports, \"match\", { enumerable: true, get: function () { return match_1.match; } });\nObject.defineProperty(exports, \"eq\", { enumerable: true, get: function () { return match_1.eq; } });\nvar fib_1 = require(\"./functions/math/fib\");\nObject.defineProperty(exports, \"fibWithLimit\", { enumerable: true, get: function () { return fib_1.fibWithLimit; } });\nvar arrayToObject_1 = require(\"./functions/object/arrayToObject\");\nObject.defineProperty(exports, \"arrayToObject\", { enumerable: true, get: function () { return arrayToObject_1.arrayToObject; } });\nvar entriesToObject_1 = require(\"./functions/object/entriesToObject\");\nObject.defineProperty(exports, \"entriesToObject\", { enumerable: true, get: function () { return entriesToObject_1.entriesToObject; } });\nvar forEachObjectEntry_1 = require(\"./functions/object/forEachObjectEntry\");\nObject.defineProperty(exports, \"forEachObjectEntry\", { enumerable: true, get: function () { return forEachObjectEntry_1.forEachObjectEntry; } });\nvar groupBy_1 = require(\"./functions/object/groupBy\");\nObject.defineProperty(exports, \"groupBy\", { enumerable: true, get: function () { return groupBy_1.groupBy; } });\nvar indexBy_1 = require(\"./functions/object/indexBy\");\nObject.defineProperty(exports, \"indexBy\", { enumerable: true, get: function () { return indexBy_1.indexBy; } });\nvar mapObject_1 = require(\"./functions/object/mapObject\");\nObject.defineProperty(exports, \"mapObject\", { enumerable: true, get: function () { return mapObject_1.mapObject; } });\nvar omit_1 = require(\"./functions/object/omit\");\nObject.defineProperty(exports, \"omit\", { enumerable: true, get: function () { return omit_1.omit; } });\nvar pick_1 = require(\"./functions/object/pick\");\nObject.defineProperty(exports, \"pick\", { enumerable: true, get: function () { return pick_1.pick; } });\nvar mapOptional_1 = require(\"./functions/optional/mapOptional\");\nObject.defineProperty(exports, \"isNullish\", { enumerable: true, get: function () { return mapOptional_1.isNullish; } });\nObject.defineProperty(exports, \"mapNullable\", { enumerable: true, get: function () { return mapOptional_1.mapNullable; } });\nObject.defineProperty(exports, \"mapOptional\", { enumerable: true, get: function () { return mapOptional_1.mapOptional; } });\nvar delay_1 = require(\"./functions/promise/delay\");\nObject.defineProperty(exports, \"delay\", { enumerable: true, get: function () { return delay_1.delay; } });\nvar withResolvers_1 = require(\"./functions/promise/withResolvers\");\nObject.defineProperty(exports, \"promiseWithResolvers\", { enumerable: true, get: function () { return withResolvers_1.promiseWithResolvers; } });\nvar padLeft_1 = require(\"./functions/string/padLeft\");\nObject.defineProperty(exports, \"padLeft\", { enumerable: true, get: function () { return padLeft_1.padLeft; } });\nvar splitWithLimit_1 = require(\"./functions/string/splitWithLimit\");\nObject.defineProperty(exports, \"splitWithLimit\", { enumerable: true, get: function () { return splitWithLimit_1.splitWithLimit; } });\nvar utf8_1 = require(\"./functions/string/utf8\");\nObject.defineProperty(exports, \"utf8Length\", { enumerable: true, get: function () { return utf8_1.utf8Length; } });\nObject.defineProperty(exports, \"utf8Substring\", { enumerable: true, get: function () { return utf8_1.utf8Substring; } });\n", "\"use strict\";\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMinLogLevelFromEnv = void 0;\nvar LogLevel_1 = require(\"./LogLevel\");\nvar data = typeof process === 'undefined'\n ? []\n : (_b = (_a = process.env.LOGGING) === null || _a === void 0 ? void 0 : _a.split(';').map(function (part) {\n var _a = part.split('=', 2), namespace = _a[0], strLevel = _a[1];\n if (strLevel) {\n return [namespace === 'default' ? undefined : namespace.split(':'), (0, LogLevel_1.resolveLogLevel)(strLevel)];\n }\n return null;\n }).filter(function (v) { return !!v; }).sort(function (_a, _b) {\n var _c, _d;\n var a = _a[0];\n var b = _b[0];\n return ((_c = b === null || b === void 0 ? void 0 : b.length) !== null && _c !== void 0 ? _c : 0) - ((_d = a === null || a === void 0 ? void 0 : a.length) !== null && _d !== void 0 ? _d : 0);\n })) !== null && _b !== void 0 ? _b : [];\nvar defaultIndex = data.findIndex(function (_a) {\n var nsParts = _a[0];\n return !nsParts;\n});\nvar defaultLevel = undefined;\nif (defaultIndex !== -1) {\n defaultLevel = data[defaultIndex][1];\n data.splice(defaultIndex);\n}\nfunction isPrefix(value, prefix) {\n return prefix.length <= value.length && prefix.every(function (item, i) { return item === value[i]; });\n}\nfunction getMinLogLevelFromEnv(name) {\n var nameSplit = name.split(':');\n for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {\n var _a = data_1[_i], nsParts = _a[0], level = _a[1];\n if (isPrefix(nameSplit, nsParts)) {\n return level;\n }\n }\n return defaultLevel;\n}\nexports.getMinLogLevelFromEnv = getMinLogLevelFromEnv;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseLogger = void 0;\nvar shared_utils_1 = require(\"@d-fischer/shared-utils\");\nvar detect_node_1 = require(\"@d-fischer/detect-node\");\nvar getMinLogLevelFromEnv_1 = require(\"./getMinLogLevelFromEnv\");\nvar LogLevel_1 = require(\"./LogLevel\");\nvar BaseLogger = /** @class */ (function () {\n function BaseLogger(_a) {\n var name = _a.name, minLevel = _a.minLevel, _b = _a.emoji, emoji = _b === void 0 ? false : _b, colors = _a.colors, _c = _a.timestamps, timestamps = _c === void 0 ? detect_node_1.isNode : _c;\n var _d, _e;\n this._name = name;\n this._minLevel =\n (_e = (_d = (0, shared_utils_1.mapOptional)(minLevel, function (lv) { return (0, LogLevel_1.resolveLogLevel)(lv); })) !== null && _d !== void 0 ? _d : (0, getMinLogLevelFromEnv_1.getMinLogLevelFromEnv)(name)) !== null && _e !== void 0 ? _e : LogLevel_1.LogLevel.WARNING;\n this._emoji = emoji;\n this._colors = colors;\n this._timestamps = timestamps;\n }\n // region convenience methods\n BaseLogger.prototype.crit = function (message) {\n this.log(LogLevel_1.LogLevel.CRITICAL, message);\n };\n BaseLogger.prototype.error = function (message) {\n this.log(LogLevel_1.LogLevel.ERROR, message);\n };\n BaseLogger.prototype.warn = function (message) {\n this.log(LogLevel_1.LogLevel.WARNING, message);\n };\n BaseLogger.prototype.info = function (message) {\n this.log(LogLevel_1.LogLevel.INFO, message);\n };\n BaseLogger.prototype.debug = function (message) {\n this.log(LogLevel_1.LogLevel.DEBUG, message);\n };\n BaseLogger.prototype.trace = function (message) {\n this.log(LogLevel_1.LogLevel.TRACE, message);\n };\n return BaseLogger;\n}());\nexports.BaseLogger = BaseLogger;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLogger = void 0;\nvar tslib_1 = require(\"tslib\");\nvar LogLevel_1 = require(\"./LogLevel\");\nvar BaseLogger_1 = require(\"./BaseLogger\");\nvar BrowserLogger = /** @class */ (function (_super) {\n tslib_1.__extends(BrowserLogger, _super);\n function BrowserLogger() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserLogger.prototype.log = function (level, message) {\n if (level > this._minLevel) {\n return;\n }\n var logFn = LogLevel_1.LogLevelToConsoleFunction[level];\n var formattedMessage = \"[\".concat(this._name, \"] \").concat(message);\n if (this._timestamps) {\n formattedMessage = \"[\".concat(new Date().toISOString(), \"] \").concat(message);\n }\n logFn(formattedMessage);\n };\n return BrowserLogger;\n}(BaseLogger_1.BaseLogger));\nexports.BrowserLogger = BrowserLogger;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomLoggerWrapper = void 0;\nvar shared_utils_1 = require(\"@d-fischer/shared-utils\");\nvar getMinLogLevelFromEnv_1 = require(\"./getMinLogLevelFromEnv\");\nvar LogLevel_1 = require(\"./LogLevel\");\nvar CustomLoggerWrapper = /** @class */ (function () {\n function CustomLoggerWrapper(_a) {\n var name = _a.name, minLevel = _a.minLevel, custom = _a.custom;\n var _b;\n this._minLevel = (_b = (0, shared_utils_1.mapOptional)(minLevel, function (lv) { return (0, LogLevel_1.resolveLogLevel)(lv); })) !== null && _b !== void 0 ? _b : (0, getMinLogLevelFromEnv_1.getMinLogLevelFromEnv)(name);\n this._override = typeof custom === 'function' ? { log: custom } : custom;\n }\n CustomLoggerWrapper.prototype.log = function (level, message) {\n if (this._shouldLog(level)) {\n this._override.log(level, message);\n }\n };\n CustomLoggerWrapper.prototype.crit = function (message) {\n if (!this._override.crit) {\n this.log(LogLevel_1.LogLevel.CRITICAL, message);\n }\n else if (this._shouldLog(LogLevel_1.LogLevel.CRITICAL)) {\n this._override.crit(message);\n }\n };\n CustomLoggerWrapper.prototype.error = function (message) {\n if (!this._override.error) {\n this.log(LogLevel_1.LogLevel.ERROR, message);\n }\n else if (this._shouldLog(LogLevel_1.LogLevel.ERROR)) {\n this._override.error(message);\n }\n };\n CustomLoggerWrapper.prototype.warn = function (message) {\n if (!this._override.warn) {\n this.log(LogLevel_1.LogLevel.WARNING, message);\n }\n else if (this._shouldLog(LogLevel_1.LogLevel.WARNING)) {\n this._override.warn(message);\n }\n };\n CustomLoggerWrapper.prototype.info = function (message) {\n if (!this._override.info) {\n this.log(LogLevel_1.LogLevel.INFO, message);\n }\n else if (this._shouldLog(LogLevel_1.LogLevel.INFO)) {\n this._override.info(message);\n }\n };\n CustomLoggerWrapper.prototype.debug = function (message) {\n if (!this._override.debug) {\n this.log(LogLevel_1.LogLevel.DEBUG, message);\n }\n else if (this._shouldLog(LogLevel_1.LogLevel.DEBUG)) {\n this._override.debug(message);\n }\n };\n CustomLoggerWrapper.prototype.trace = function (message) {\n if (!this._override.trace) {\n this.log(LogLevel_1.LogLevel.TRACE, message);\n }\n else if (this._shouldLog(LogLevel_1.LogLevel.TRACE)) {\n this._override.trace(message);\n }\n };\n CustomLoggerWrapper.prototype._shouldLog = function (level) {\n return this._minLevel === undefined || this._minLevel >= level;\n };\n return CustomLoggerWrapper;\n}());\nexports.CustomLoggerWrapper = CustomLoggerWrapper;\n", "\"use strict\";\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLogger = exports.LogLevelToBackgroundColor = exports.LogLevelToColor = exports.LogLevelToEmoji = void 0;\nvar tslib_1 = require(\"tslib\");\nvar LogLevel_1 = require(\"./LogLevel\");\nvar BaseLogger_1 = require(\"./BaseLogger\");\nexports.LogLevelToEmoji = (_a = {},\n _a[LogLevel_1.LogLevel.CRITICAL] = \"\\uD83D\\uDED1\",\n _a[LogLevel_1.LogLevel.ERROR] = \"\\u274C\",\n // these following two need extra spaces at the end because somehow they consume less space in a terminal than they should...\n _a[LogLevel_1.LogLevel.WARNING] = \"\\u26A0\\uFE0F \",\n _a[LogLevel_1.LogLevel.INFO] = \"\\u2139\\uFE0F \",\n _a[LogLevel_1.LogLevel.DEBUG] = \"\\uD83D\\uDC1E\",\n _a[LogLevel_1.LogLevel.TRACE] = \"\\uD83D\\uDC3E\",\n _a);\nvar colors = {\n black: 30,\n red: 31,\n green: 32,\n yellow: 33,\n blue: 34,\n magenta: 35,\n cyan: 36,\n white: 37,\n blackBright: 90,\n redBright: 91,\n greenBright: 92,\n yellowBright: 93,\n blueBright: 94,\n magentaBright: 95,\n cyanBright: 96,\n whiteBright: 97\n};\nvar bgColors = {\n bgBlack: 40,\n bgRed: 41,\n bgGreen: 42,\n bgYellow: 43,\n bgBlue: 44,\n bgMagenta: 45,\n bgCyan: 46,\n bgWhite: 47,\n bgBlackBright: 100,\n bgRedBright: 101,\n bgGreenBright: 102,\n bgYellowBright: 103,\n bgBlueBright: 104,\n bgMagentaBright: 105,\n bgCyanBright: 106,\n bgWhiteBright: 107\n};\nfunction createGenericWrapper(color, ending, inner) {\n return function (str) { return \"\\u001B[\".concat(color, \"m\").concat(inner ? inner(str) : str, \"\\u001B[\").concat(ending, \"m\"); };\n}\nfunction createColorWrapper(color) {\n return createGenericWrapper(colors[color], 39);\n}\nfunction createBgWrapper(color, fgWrapper) {\n return createGenericWrapper(bgColors[color], 49, fgWrapper);\n}\nexports.LogLevelToColor = (_b = {},\n _b[LogLevel_1.LogLevel.CRITICAL] = createColorWrapper('red'),\n _b[LogLevel_1.LogLevel.ERROR] = createColorWrapper('redBright'),\n _b[LogLevel_1.LogLevel.WARNING] = createColorWrapper('yellow'),\n _b[LogLevel_1.LogLevel.INFO] = createColorWrapper('blue'),\n _b[LogLevel_1.LogLevel.DEBUG] = createColorWrapper('magenta'),\n _b[LogLevel_1.LogLevel.TRACE] = createGenericWrapper(0, 0),\n _b);\nexports.LogLevelToBackgroundColor = (_c = {},\n _c[LogLevel_1.LogLevel.CRITICAL] = createBgWrapper('bgRed', createColorWrapper('white')),\n _c[LogLevel_1.LogLevel.ERROR] = createBgWrapper('bgRedBright', createColorWrapper('white')),\n _c[LogLevel_1.LogLevel.WARNING] = createBgWrapper('bgYellow', createColorWrapper('black')),\n _c[LogLevel_1.LogLevel.INFO] = createBgWrapper('bgBlue', createColorWrapper('white')),\n _c[LogLevel_1.LogLevel.DEBUG] = createBgWrapper('bgMagenta', createColorWrapper('black')),\n _c[LogLevel_1.LogLevel.TRACE] = createGenericWrapper(7, 27),\n _c);\nvar NodeLogger = /** @class */ (function (_super) {\n tslib_1.__extends(NodeLogger, _super);\n function NodeLogger() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NodeLogger.prototype.log = function (level, message) {\n var _a, _b, _c;\n if (level > this._minLevel) {\n return;\n }\n var logFn = LogLevel_1.LogLevelToConsoleFunction[level];\n var builtMessage = '';\n if (this._timestamps) {\n builtMessage += \"[\".concat(new Date().toISOString(), \"] \");\n }\n if (this._emoji) {\n var emoji = exports.LogLevelToEmoji[level];\n builtMessage += \"\".concat(emoji, \" \");\n }\n var useColors = (_c = (_a = this._colors) !== null && _a !== void 0 ? _a : (_b = process.stdout) === null || _b === void 0 ? void 0 : _b.isTTY) !== null && _c !== void 0 ? _c : true;\n if (useColors) {\n builtMessage += \"\".concat(exports.LogLevelToBackgroundColor[level](this._name), \" \").concat(exports.LogLevelToBackgroundColor[level](LogLevel_1.LogLevel[level]), \" \").concat(exports.LogLevelToColor[level](message));\n }\n else {\n builtMessage += \"[\".concat(this._name, \":\").concat(LogLevel_1.LogLevel[level].toLowerCase(), \"] \").concat(message);\n }\n logFn(builtMessage);\n };\n return NodeLogger;\n}(BaseLogger_1.BaseLogger));\nexports.NodeLogger = NodeLogger;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createLogger = void 0;\nvar detect_node_1 = require(\"@d-fischer/detect-node\");\nvar BrowserLogger_1 = require(\"./BrowserLogger\");\nvar CustomLoggerWrapper_1 = require(\"./CustomLoggerWrapper\");\nvar NodeLogger_1 = require(\"./NodeLogger\");\nfunction createLogger(options) {\n if (options.custom) {\n return new CustomLoggerWrapper_1.CustomLoggerWrapper(options);\n }\n if (detect_node_1.isNode) {\n return new NodeLogger_1.NodeLogger(options);\n }\n return new BrowserLogger_1.BrowserLogger(options);\n}\nexports.createLogger = createLogger;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogLevel = exports.createLogger = void 0;\nvar createLogger_1 = require(\"./createLogger\");\nObject.defineProperty(exports, \"createLogger\", { enumerable: true, get: function () { return createLogger_1.createLogger; } });\nvar LogLevel_1 = require(\"./LogLevel\");\nObject.defineProperty(exports, \"LogLevel\", { enumerable: true, get: function () { return LogLevel_1.LogLevel; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomError = void 0;\nvar tslib_1 = require(\"tslib\");\n/** @private */\nvar CustomError = /** @class */ (function (_super) {\n tslib_1.__extends(CustomError, _super);\n function CustomError() {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n var _newTarget = this.constructor;\n var _this = this;\n var _a;\n // @ts-ignore\n _this = _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(params), false)) || this;\n // restore prototype chain\n Object.setPrototypeOf(_this, _newTarget.prototype);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (_a = Error.captureStackTrace) === null || _a === void 0 ? void 0 : _a.call(Error, _this, _newTarget.constructor);\n return _this;\n }\n Object.defineProperty(CustomError.prototype, \"name\", {\n get: function () {\n return this.constructor.name;\n },\n enumerable: false,\n configurable: true\n });\n return CustomError;\n}(Error));\nexports.CustomError = CustomError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RetryAfterError = void 0;\nvar tslib_1 = require(\"tslib\");\nvar CustomError_1 = require(\"./CustomError\");\nvar RetryAfterError = /** @class */ (function (_super) {\n tslib_1.__extends(RetryAfterError, _super);\n function RetryAfterError(after) {\n var _this = _super.call(this, \"Need to retry after \".concat(after, \" ms\")) || this;\n _this._retryAt = Date.now() + after;\n return _this;\n }\n Object.defineProperty(RetryAfterError.prototype, \"retryAt\", {\n get: function () {\n return this._retryAt;\n },\n enumerable: false,\n configurable: true\n });\n return RetryAfterError;\n}(CustomError_1.CustomError));\nexports.RetryAfterError = RetryAfterError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RateLimitReachedError = void 0;\nvar tslib_1 = require(\"tslib\");\nvar CustomError_1 = require(\"./CustomError\");\nvar RateLimitReachedError = /** @class */ (function (_super) {\n tslib_1.__extends(RateLimitReachedError, _super);\n function RateLimitReachedError() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return RateLimitReachedError;\n}(CustomError_1.CustomError));\nexports.RateLimitReachedError = RateLimitReachedError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NullRateLimiter = void 0;\nvar tslib_1 = require(\"tslib\");\nvar NullRateLimiter = /** @class */ (function () {\n function NullRateLimiter(_callback) {\n this._callback = _callback;\n }\n NullRateLimiter.prototype.request = function (req) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._callback(req)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n NullRateLimiter.prototype.clear = function () {\n // noop\n };\n NullRateLimiter.prototype.pause = function () {\n // noop\n };\n NullRateLimiter.prototype.resume = function () {\n // noop\n };\n return NullRateLimiter;\n}());\nexports.NullRateLimiter = NullRateLimiter;\n", "'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n", "'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n", "'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n", "'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n", "'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n", "'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n", "'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n", "'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n", "'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n", "'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", "'use strict';\n\nmodule.exports = function requirePromise() {\n\tif (typeof Promise !== 'function') {\n\t\tthrow new TypeError('`Promise.allSettled` requires a global `Promise` be available.');\n\t}\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBind = require('call-bind');\n\nvar $resolve = GetIntrinsic('%Promise.resolve%', true);\nvar $PromiseResolve = $resolve && callBind($resolve);\n\n// https://262.ecma-international.org/9.0/#sec-promise-resolve\n\nmodule.exports = function PromiseResolve(C, x) {\n\tif (!$PromiseResolve) {\n\t\tthrow new SyntaxError('This environment does not support Promises.');\n\t}\n\treturn $PromiseResolve(C, x);\n};\n\n", "'use strict';\n\n// https://262.ecma-international.org/5.1/#sec-8\n\nmodule.exports = function Type(x) {\n\tif (x === null) {\n\t\treturn 'Null';\n\t}\n\tif (typeof x === 'undefined') {\n\t\treturn 'Undefined';\n\t}\n\tif (typeof x === 'function' || typeof x === 'object') {\n\t\treturn 'Object';\n\t}\n\tif (typeof x === 'number') {\n\t\treturn 'Number';\n\t}\n\tif (typeof x === 'boolean') {\n\t\treturn 'Boolean';\n\t}\n\tif (typeof x === 'string') {\n\t\treturn 'String';\n\t}\n};\n", "'use strict';\n\nvar ES5Type = require('../5/Type');\n\n// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values\n\nmodule.exports = function Type(x) {\n\tif (typeof x === 'symbol') {\n\t\treturn 'Symbol';\n\t}\n\tif (typeof x === 'bigint') {\n\t\treturn 'BigInt';\n\t}\n\treturn ES5Type(x);\n};\n", "'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n", "'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n", "var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar has = require('has');\nvar channel = require('side-channel')();\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar SLOT = {\n\tassert: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tchannel.assert(O);\n\t\tif (!SLOT.has(O, slot)) {\n\t\t\tthrow new $TypeError('`' + slot + '` is not present on `O`');\n\t\t}\n\t},\n\tget: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn slots && slots['$' + slot];\n\t},\n\thas: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn !!slots && has(slots, '$' + slot);\n\t},\n\tset: function (O, slot, V) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\tif (!slots) {\n\t\t\tslots = {};\n\t\t\tchannel.set(O, slots);\n\t\t}\n\t\tslots['$' + slot] = V;\n\t}\n};\n\nif (Object.freeze) {\n\tObject.freeze(SLOT);\n}\n\nmodule.exports = SLOT;\n", "'use strict';\n\nvar SLOT = require('internal-slot');\n\nvar $SyntaxError = SyntaxError;\nvar $StopIteration = typeof StopIteration === 'object' ? StopIteration : null;\n\nmodule.exports = function getStopIterationIterator(origIterator) {\n\tif (!$StopIteration) {\n\t\tthrow new $SyntaxError('this environment lacks StopIteration');\n\t}\n\n\tSLOT.set(origIterator, '[[Done]]', false);\n\n\tvar siIterator = {\n\t\tnext: function next() {\n\t\t\tvar iterator = SLOT.get(this, '[[Iterator]]');\n\t\t\tvar done = SLOT.get(iterator, '[[Done]]');\n\t\t\ttry {\n\t\t\t\treturn {\n\t\t\t\t\tdone: done,\n\t\t\t\t\tvalue: done ? void undefined : iterator.next()\n\t\t\t\t};\n\t\t\t} catch (e) {\n\t\t\t\tSLOT.set(iterator, '[[Done]]', true);\n\t\t\t\tif (e !== $StopIteration) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: true,\n\t\t\t\t\tvalue: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n\n\tSLOT.set(siIterator, '[[Iterator]]', origIterator);\n\n\treturn siIterator;\n};\n", "var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n", "'use strict';\n\nvar strValue = String.prototype.valueOf;\nvar tryStringObject = function tryStringObject(value) {\n\ttry {\n\t\tstrValue.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar strClass = '[object String]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isString(value) {\n\tif (typeof value === 'string') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass;\n};\n", "'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Map) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Map; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n", "'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Set) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$setHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isSet(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$setHas.call(x);\n\t\tif ($mapHas) {\n\t\t\ttry {\n\t\t\t\t$mapHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Set; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n", "'use strict';\n\n/* eslint global-require: 0 */\n// the code is structured this way so that bundlers can\n// alias out `has-symbols` to `() => true` or `() => false` if your target\n// environments' Symbol capabilities are known, and then use\n// dead code elimination on the rest of this module.\n//\n// Similarly, `isarray` can be aliased to `Array.isArray` if\n// available in all target environments.\n\nvar isArguments = require('is-arguments');\nvar getStopIterationIterator = require('stop-iteration-iterator');\n\nif (require('has-symbols')() || require('has-symbols/shams')()) {\n\tvar $iterator = Symbol.iterator;\n\t// Symbol is available natively or shammed\n\t// natively:\n\t// - Chrome >= 38\n\t// - Edge 12-14?, Edge >= 15 for sure\n\t// - FF >= 36\n\t// - Safari >= 9\n\t// - node >= 0.12\n\tmodule.exports = function getIterator(iterable) {\n\t\t// alternatively, `iterable[$iterator]?.()`\n\t\tif (iterable != null && typeof iterable[$iterator] !== 'undefined') {\n\t\t\treturn iterable[$iterator]();\n\t\t}\n\t\tif (isArguments(iterable)) {\n\t\t\t// arguments objects lack Symbol.iterator\n\t\t\t// - node 0.12\n\t\t\treturn Array.prototype[$iterator].call(iterable);\n\t\t}\n\t};\n} else {\n\t// Symbol is not available, native or shammed\n\tvar isArray = require('isarray');\n\tvar isString = require('is-string');\n\tvar GetIntrinsic = require('get-intrinsic');\n\tvar $Map = GetIntrinsic('%Map%', true);\n\tvar $Set = GetIntrinsic('%Set%', true);\n\tvar callBound = require('call-bind/callBound');\n\tvar $arrayPush = callBound('Array.prototype.push');\n\tvar $charCodeAt = callBound('String.prototype.charCodeAt');\n\tvar $stringSlice = callBound('String.prototype.slice');\n\n\tvar advanceStringIndex = function advanceStringIndex(S, index) {\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar first = $charCodeAt(S, index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar second = $charCodeAt(S, index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\treturn index + 2;\n\t};\n\n\tvar getArrayIterator = function getArrayIterator(arraylike) {\n\t\tvar i = 0;\n\t\treturn {\n\t\t\tnext: function next() {\n\t\t\t\tvar done = i >= arraylike.length;\n\t\t\t\tvar value;\n\t\t\t\tif (!done) {\n\t\t\t\t\tvalue = arraylike[i];\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: done,\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t};\n\n\tvar getNonCollectionIterator = function getNonCollectionIterator(iterable, noPrimordialCollections) {\n\t\tif (isArray(iterable) || isArguments(iterable)) {\n\t\t\treturn getArrayIterator(iterable);\n\t\t}\n\t\tif (isString(iterable)) {\n\t\t\tvar i = 0;\n\t\t\treturn {\n\t\t\t\tnext: function next() {\n\t\t\t\t\tvar nextIndex = advanceStringIndex(iterable, i);\n\t\t\t\t\tvar value = $stringSlice(iterable, i, nextIndex);\n\t\t\t\t\ti = nextIndex;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: nextIndex > iterable.length,\n\t\t\t\t\t\tvalue: value\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// es6-shim and es-shims' es-map use a string \"_es6-shim iterator_\" property on different iterables, such as MapIterator.\n\t\tif (noPrimordialCollections && typeof iterable['_es6-shim iterator_'] !== 'undefined') {\n\t\t\treturn iterable['_es6-shim iterator_']();\n\t\t}\n\t};\n\n\tif (!$Map && !$Set) {\n\t\t// the only language iterables are Array, String, arguments\n\t\t// - Safari <= 6.0\n\t\t// - Chrome < 38\n\t\t// - node < 0.12\n\t\t// - FF < 13\n\t\t// - IE < 11\n\t\t// - Edge < 11\n\n\t\tmodule.exports = function getIterator(iterable) {\n\t\t\tif (iterable != null) {\n\t\t\t\treturn getNonCollectionIterator(iterable, true);\n\t\t\t}\n\t\t};\n\t} else {\n\t\t// either Map or Set are available, but Symbol is not\n\t\t// - es6-shim on an ES5 browser\n\t\t// - Safari 6.2 (maybe 6.1?)\n\t\t// - FF v[13, 36)\n\t\t// - IE 11\n\t\t// - Edge 11\n\t\t// - Safari v[6, 9)\n\n\t\tvar isMap = require('is-map');\n\t\tvar isSet = require('is-set');\n\n\t\t// Firefox >= 27, IE 11, Safari 6.2 - 9, Edge 11, es6-shim in older envs, all have forEach\n\t\tvar $mapForEach = callBound('Map.prototype.forEach', true);\n\t\tvar $setForEach = callBound('Set.prototype.forEach', true);\n\t\tif (typeof process === 'undefined' || !process.versions || !process.versions.node) { // \"if is not node\"\n\n\t\t\t// Firefox 17 - 26 has `.iterator()`, whose iterator `.next()` either\n\t\t\t// returns a value, or throws a StopIteration object. These browsers\n\t\t\t// do not have any other mechanism for iteration.\n\t\t\tvar $mapIterator = callBound('Map.prototype.iterator', true);\n\t\t\tvar $setIterator = callBound('Set.prototype.iterator', true);\n\t\t}\n\t\t// Firefox 27-35, and some older es6-shim versions, use a string \"@@iterator\" property\n\t\t// this returns a proper iterator object, so we should use it instead of forEach.\n\t\t// newer es6-shim versions use a string \"_es6-shim iterator_\" property.\n\t\tvar $mapAtAtIterator = callBound('Map.prototype.@@iterator', true) || callBound('Map.prototype._es6-shim iterator_', true);\n\t\tvar $setAtAtIterator = callBound('Set.prototype.@@iterator', true) || callBound('Set.prototype._es6-shim iterator_', true);\n\n\t\tvar getCollectionIterator = function getCollectionIterator(iterable) {\n\t\t\tif (isMap(iterable)) {\n\t\t\t\tif ($mapIterator) {\n\t\t\t\t\treturn getStopIterationIterator($mapIterator(iterable));\n\t\t\t\t}\n\t\t\t\tif ($mapAtAtIterator) {\n\t\t\t\t\treturn $mapAtAtIterator(iterable);\n\t\t\t\t}\n\t\t\t\tif ($mapForEach) {\n\t\t\t\t\tvar entries = [];\n\t\t\t\t\t$mapForEach(iterable, function (v, k) {\n\t\t\t\t\t\t$arrayPush(entries, [k, v]);\n\t\t\t\t\t});\n\t\t\t\t\treturn getArrayIterator(entries);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isSet(iterable)) {\n\t\t\t\tif ($setIterator) {\n\t\t\t\t\treturn getStopIterationIterator($setIterator(iterable));\n\t\t\t\t}\n\t\t\t\tif ($setAtAtIterator) {\n\t\t\t\t\treturn $setAtAtIterator(iterable);\n\t\t\t\t}\n\t\t\t\tif ($setForEach) {\n\t\t\t\t\tvar values = [];\n\t\t\t\t\t$setForEach(iterable, function (v) {\n\t\t\t\t\t\t$arrayPush(values, v);\n\t\t\t\t\t});\n\t\t\t\t\treturn getArrayIterator(values);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tmodule.exports = function getIterator(iterable) {\n\t\t\treturn getCollectionIterator(iterable) || getNonCollectionIterator(iterable);\n\t\t};\n\t}\n}\n", "'use strict';\n\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nmodule.exports = function iterateIterator(iterator) {\n\tif (!iterator || typeof iterator.next !== 'function') {\n\t\tthrow new $TypeError('iterator must be an object with a `next` method');\n\t}\n\tif (arguments.length > 1) {\n\t\tvar callback = arguments[1];\n\t\tif (typeof callback !== 'function') {\n\t\t\tthrow new $TypeError('`callback`, if provided, must be a function');\n\t\t}\n\t}\n\tvar values = callback || [];\n\tvar result;\n\twhile ((result = iterator.next()) && !result.done) {\n\t\tif (callback) {\n\t\t\tcallback(result.value); // eslint-disable-line callback-return\n\t\t} else {\n\t\t\tvalues.push(result.value);\n\t\t}\n\t}\n\tif (!callback) {\n\t\treturn values;\n\t}\n};\n", "'use strict';\n\nvar getIterator = require('es-get-iterator');\nvar $TypeError = TypeError;\nvar iterate = require('iterate-iterator');\n\nmodule.exports = function iterateValue(iterable) {\n\tvar iterator = getIterator(iterable);\n\tif (!iterator) {\n\t\tthrow new $TypeError('non-iterable value provided');\n\t}\n\tif (arguments.length > 1) {\n\t\treturn iterate(iterator, arguments[1]);\n\t}\n\treturn iterate(iterator);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// http://262.ecma-international.org/5.1/#sec-9.10\n\nmodule.exports = function CheckObjectCoercible(value, optMessage) {\n\tif (value == null) {\n\t\tthrow new $TypeError(optMessage || ('Cannot call method on ' + value));\n\t}\n\treturn value;\n};\n", "'use strict';\n\nmodule.exports = require('../5/CheckObjectCoercible');\n", "'use strict';\n\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n", "'use strict';\n\nvar $isNaN = require('./isNaN');\n\nmodule.exports = function (x) { return (typeof x === 'number' || typeof x === 'bigint') && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $abs = GetIntrinsic('%Math.abs%');\nvar $floor = GetIntrinsic('%Math.floor%');\n\nvar $isNaN = require('./isNaN');\nvar $isFinite = require('./isFinite');\n\nmodule.exports = function isInteger(argument) {\n\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\treturn false;\n\t}\n\tvar absValue = $abs(argument);\n\treturn $floor(absValue) === absValue;\n};\n\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $ArrayPrototype = GetIntrinsic('%Array.prototype%');\nvar $RangeError = GetIntrinsic('%RangeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar isInteger = require('../helpers/isInteger');\n\nvar MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;\n\nvar hasProto = require('has-proto')();\n\nvar $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || (\n\thasProto\n\t\t? function (O, proto) {\n\t\t\tO.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign\n\t\t\treturn O;\n\t\t}\n\t\t: null\n);\n\n// https://262.ecma-international.org/12.0/#sec-arraycreate\n\nmodule.exports = function ArrayCreate(length) {\n\tif (!isInteger(length) || length < 0) {\n\t\tthrow new $TypeError('Assertion failed: `length` must be an integer Number >= 0');\n\t}\n\tif (length > MAX_ARRAY_LENGTH) {\n\t\tthrow new $RangeError('length is greater than (2**32 - 1)');\n\t}\n\tvar proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype;\n\tvar A = []; // steps 3, 5\n\tif (proto !== $ArrayPrototype) { // step 4\n\t\tif (!$setProto) {\n\t\t\tthrow new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]');\n\t\t}\n\t\t$setProto(A, proto);\n\t}\n\tif (length !== 0) { // bypasses the need for step 6\n\t\tA.length = length;\n\t}\n\t/* step 6, the above as a shortcut for the below\n\tOrdinaryDefineOwnProperty(A, 'length', {\n\t\t'[[Configurable]]': false,\n\t\t'[[Enumerable]]': false,\n\t\t'[[Value]]': length,\n\t\t'[[Writable]]': true\n\t});\n\t*/\n\treturn A;\n};\n", "'use strict';\n\n// https://262.ecma-international.org/6.0/#sec-ispropertykey\n\nmodule.exports = function IsPropertyKey(argument) {\n\treturn typeof argument === 'string' || typeof argument === 'symbol';\n};\n", "'use strict';\n\nvar ES5Type = require('../5/Type');\n\n// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values\n\nmodule.exports = function Type(x) {\n\tif (typeof x === 'symbol') {\n\t\treturn 'Symbol';\n\t}\n\tif (typeof x === 'bigint') {\n\t\treturn 'BigInt';\n\t}\n\treturn ES5Type(x);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar inspect = require('object-inspect');\n\nvar IsPropertyKey = require('./IsPropertyKey');\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/6.0/#sec-get-o-p\n\nmodule.exports = function Get(O, P) {\n\t// 7.3.1.1\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\t// 7.3.1.2\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));\n\t}\n\t// 7.3.1.3\n\treturn O[P];\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $Array = GetIntrinsic('%Array%');\n\n// eslint-disable-next-line global-require\nvar toStr = !$Array.isArray && require('call-bind/callBound')('Object.prototype.toString');\n\nmodule.exports = $Array.isArray || function IsArray(argument) {\n\treturn toStr(argument) === '[object Array]';\n};\n", "'use strict';\n\n// https://262.ecma-international.org/6.0/#sec-isarray\nmodule.exports = require('../helpers/IsArray');\n", "'use strict';\n\n// TODO: remove, semver-major\n\nmodule.exports = require('get-intrinsic');\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar has = require('has');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function IsPropertyDescriptor(ES, Desc) {\n\tif (ES.Type(Desc) !== 'Object') {\n\t\treturn false;\n\t}\n\tvar allowed = {\n\t\t'[[Configurable]]': true,\n\t\t'[[Enumerable]]': true,\n\t\t'[[Get]]': true,\n\t\t'[[Set]]': true,\n\t\t'[[Value]]': true,\n\t\t'[[Writable]]': true\n\t};\n\n\tfor (var key in Desc) { // eslint-disable-line no-restricted-syntax\n\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {\n\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t}\n\treturn true;\n};\n", "'use strict';\n\nvar hasPropertyDescriptors = require('has-property-descriptors');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = hasPropertyDescriptors() && GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasArrayLengthDefineBug = hasPropertyDescriptors.hasArrayLengthDefineBug();\n\n// eslint-disable-next-line global-require\nvar isArray = hasArrayLengthDefineBug && require('../helpers/IsArray');\n\nvar callBound = require('call-bind/callBound');\n\nvar $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');\n\n// eslint-disable-next-line max-params\nmodule.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) {\n\tif (!$defineProperty) {\n\t\tif (!IsDataDescriptor(desc)) {\n\t\t\t// ES3 does not support getters/setters\n\t\t\treturn false;\n\t\t}\n\t\tif (!desc['[[Configurable]]'] || !desc['[[Writable]]']) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// fallback for ES3\n\t\tif (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) {\n\t\t\t// a non-enumerable existing property\n\t\t\treturn false;\n\t\t}\n\n\t\t// property does not exist at all, or exists but is enumerable\n\t\tvar V = desc['[[Value]]'];\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tO[P] = V; // will use [[Define]]\n\t\treturn SameValue(O[P], V);\n\t}\n\tif (\n\t\thasArrayLengthDefineBug\n\t\t&& P === 'length'\n\t\t&& '[[Value]]' in desc\n\t\t&& isArray(O)\n\t\t&& O.length !== desc['[[Value]]']\n\t) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tO.length = desc['[[Value]]'];\n\t\treturn O.length === desc['[[Value]]'];\n\t}\n\n\t$defineProperty(O, P, FromPropertyDescriptor(desc));\n\treturn true;\n};\n", "'use strict';\n\nvar has = require('has');\n\n// https://262.ecma-international.org/13.0/#sec-match-records\n\nmodule.exports = function isMatchRecord(record) {\n\treturn (\n\t\thas(record, '[[StartIndex]]')\n && has(record, '[[EndIndex]]')\n && record['[[StartIndex]]'] >= 0\n && record['[[EndIndex]]'] >= record['[[StartIndex]]']\n && String(parseInt(record['[[StartIndex]]'], 10)) === String(record['[[StartIndex]]'])\n && String(parseInt(record['[[EndIndex]]'], 10)) === String(record['[[EndIndex]]'])\n\t);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = require('has');\nvar isInteger = require('./isInteger');\n\nvar isMatchRecord = require('./isMatchRecord');\n\nvar predicates = {\n\t// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type\n\t'Property Descriptor': function isPropertyDescriptor(Desc) {\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\n\t\tif (!Desc) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\t// https://262.ecma-international.org/13.0/#sec-match-records\n\t'Match Record': isMatchRecord,\n\t'Iterator Record': function isIteratorRecord(value) {\n\t\treturn has(value, '[[Iterator]]') && has(value, '[[NextMethod]]') && has(value, '[[Done]]');\n\t},\n\t'PromiseCapability Record': function isPromiseCapabilityRecord(value) {\n\t\treturn !!value\n\t\t\t&& has(value, '[[Resolve]]')\n\t\t\t&& typeof value['[[Resolve]]'] === 'function'\n\t\t\t&& has(value, '[[Reject]]')\n\t\t\t&& typeof value['[[Reject]]'] === 'function'\n\t\t\t&& has(value, '[[Promise]]')\n\t\t\t&& value['[[Promise]]']\n\t\t\t&& typeof value['[[Promise]]'].then === 'function';\n\t},\n\t'AsyncGeneratorRequest Record': function isAsyncGeneratorRequestRecord(value) {\n\t\treturn !!value\n\t\t\t&& has(value, '[[Completion]]') // TODO: confirm is a completion record\n\t\t\t&& has(value, '[[Capability]]')\n\t\t\t&& predicates['PromiseCapability Record'](value['[[Capability]]']);\n\t},\n\t'RegExp Record': function isRegExpRecord(value) {\n\t\treturn value\n\t\t\t&& has(value, '[[IgnoreCase]]')\n\t\t\t&& typeof value['[[IgnoreCase]]'] === 'boolean'\n\t\t\t&& has(value, '[[Multiline]]')\n\t\t\t&& typeof value['[[Multiline]]'] === 'boolean'\n\t\t\t&& has(value, '[[DotAll]]')\n\t\t\t&& typeof value['[[DotAll]]'] === 'boolean'\n\t\t\t&& has(value, '[[Unicode]]')\n\t\t\t&& typeof value['[[Unicode]]'] === 'boolean'\n\t\t\t&& has(value, '[[CapturingGroupsCount]]')\n\t\t\t&& typeof value['[[CapturingGroupsCount]]'] === 'number'\n\t\t\t&& isInteger(value['[[CapturingGroupsCount]]'])\n\t\t\t&& value['[[CapturingGroupsCount]]'] >= 0;\n\t}\n};\n\nmodule.exports = function assertRecord(Type, recordType, argumentName, value) {\n\tvar predicate = predicates[recordType];\n\tif (typeof predicate !== 'function') {\n\t\tthrow new $SyntaxError('unknown record type: ' + recordType);\n\t}\n\tif (Type(value) !== 'Object' || !predicate(value)) {\n\t\tthrow new $TypeError(argumentName + ' must be a ' + recordType);\n\t}\n};\n", "'use strict';\n\nmodule.exports = function fromPropertyDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn Desc;\n\t}\n\tvar obj = {};\n\tif ('[[Value]]' in Desc) {\n\t\tobj.value = Desc['[[Value]]'];\n\t}\n\tif ('[[Writable]]' in Desc) {\n\t\tobj.writable = !!Desc['[[Writable]]'];\n\t}\n\tif ('[[Get]]' in Desc) {\n\t\tobj.get = Desc['[[Get]]'];\n\t}\n\tif ('[[Set]]' in Desc) {\n\t\tobj.set = Desc['[[Set]]'];\n\t}\n\tif ('[[Enumerable]]' in Desc) {\n\t\tobj.enumerable = !!Desc['[[Enumerable]]'];\n\t}\n\tif ('[[Configurable]]' in Desc) {\n\t\tobj.configurable = !!Desc['[[Configurable]]'];\n\t}\n\treturn obj;\n};\n", "'use strict';\n\nvar assertRecord = require('../helpers/assertRecord');\nvar fromPropertyDescriptor = require('../helpers/fromPropertyDescriptor');\n\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/6.0/#sec-frompropertydescriptor\n\nmodule.exports = function FromPropertyDescriptor(Desc) {\n\tif (typeof Desc !== 'undefined') {\n\t\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\t}\n\n\treturn fromPropertyDescriptor(Desc);\n};\n", "'use strict';\n\nvar has = require('has');\n\nvar Type = require('./Type');\n\nvar assertRecord = require('../helpers/assertRecord');\n\n// https://262.ecma-international.org/5.1/#sec-8.10.1\n\nmodule.exports = function IsAccessorDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n", "'use strict';\n\nvar has = require('has');\n\nvar Type = require('./Type');\n\nvar assertRecord = require('../helpers/assertRecord');\n\n// https://262.ecma-international.org/5.1/#sec-8.10.2\n\nmodule.exports = function IsDataDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n", "'use strict';\n\nvar $isNaN = require('../helpers/isNaN');\n\n// http://262.ecma-international.org/5.1/#sec-9.12\n\nmodule.exports = function SameValue(x, y) {\n\tif (x === y) { // 0 === -0, but they are not identical.\n\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\treturn true;\n\t}\n\treturn $isNaN(x) && $isNaN(y);\n};\n", "'use strict';\n\n// http://262.ecma-international.org/5.1/#sec-9.2\n\nmodule.exports = function ToBoolean(value) { return !!value; };\n", "'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n", "'use strict';\n\n// http://262.ecma-international.org/5.1/#sec-9.11\n\nmodule.exports = require('is-callable');\n", "'use strict';\n\nvar has = require('has');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar Type = require('./Type');\nvar ToBoolean = require('./ToBoolean');\nvar IsCallable = require('./IsCallable');\n\n// https://262.ecma-international.org/5.1/#sec-8.10.5\n\nmodule.exports = function ToPropertyDescriptor(Obj) {\n\tif (Type(Obj) !== 'Object') {\n\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t}\n\n\tvar desc = {};\n\tif (has(Obj, 'enumerable')) {\n\t\tdesc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);\n\t}\n\tif (has(Obj, 'configurable')) {\n\t\tdesc['[[Configurable]]'] = ToBoolean(Obj.configurable);\n\t}\n\tif (has(Obj, 'value')) {\n\t\tdesc['[[Value]]'] = Obj.value;\n\t}\n\tif (has(Obj, 'writable')) {\n\t\tdesc['[[Writable]]'] = ToBoolean(Obj.writable);\n\t}\n\tif (has(Obj, 'get')) {\n\t\tvar getter = Obj.get;\n\t\tif (typeof getter !== 'undefined' && !IsCallable(getter)) {\n\t\t\tthrow new $TypeError('getter must be a function');\n\t\t}\n\t\tdesc['[[Get]]'] = getter;\n\t}\n\tif (has(Obj, 'set')) {\n\t\tvar setter = Obj.set;\n\t\tif (typeof setter !== 'undefined' && !IsCallable(setter)) {\n\t\t\tthrow new $TypeError('setter must be a function');\n\t\t}\n\t\tdesc['[[Set]]'] = setter;\n\t}\n\n\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t}\n\treturn desc;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar isPropertyDescriptor = require('../helpers/isPropertyDescriptor');\nvar DefineOwnProperty = require('../helpers/DefineOwnProperty');\n\nvar FromPropertyDescriptor = require('./FromPropertyDescriptor');\nvar IsAccessorDescriptor = require('./IsAccessorDescriptor');\nvar IsDataDescriptor = require('./IsDataDescriptor');\nvar IsPropertyKey = require('./IsPropertyKey');\nvar SameValue = require('./SameValue');\nvar ToPropertyDescriptor = require('./ToPropertyDescriptor');\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/6.0/#sec-definepropertyorthrow\n\nmodule.exports = function DefinePropertyOrThrow(O, P, desc) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\tvar Desc = isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, desc) ? desc : ToPropertyDescriptor(desc);\n\tif (!isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, Desc)) {\n\t\tthrow new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');\n\t}\n\n\treturn DefineOwnProperty(\n\t\tIsDataDescriptor,\n\t\tSameValue,\n\t\tFromPropertyDescriptor,\n\t\tO,\n\t\tP,\n\t\tDesc\n\t);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic.js');\n\nvar $construct = GetIntrinsic('%Reflect.construct%', true);\n\nvar DefinePropertyOrThrow = require('./DefinePropertyOrThrow');\ntry {\n\tDefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });\n} catch (e) {\n\t// Accessor properties aren't supported\n\tDefinePropertyOrThrow = null;\n}\n\n// https://262.ecma-international.org/6.0/#sec-isconstructor\n\nif (DefinePropertyOrThrow && $construct) {\n\tvar isConstructorMarker = {};\n\tvar badArrayLike = {};\n\tDefinePropertyOrThrow(badArrayLike, 'length', {\n\t\t'[[Get]]': function () {\n\t\t\tthrow isConstructorMarker;\n\t\t},\n\t\t'[[Enumerable]]': true\n\t});\n\n\tmodule.exports = function IsConstructor(argument) {\n\t\ttry {\n\t\t\t// `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`:\n\t\t\t$construct(argument, badArrayLike);\n\t\t} catch (err) {\n\t\t\treturn err === isConstructorMarker;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function IsConstructor(argument) {\n\t\t// unfortunately there's no way to truly check this without try/catch `new argument` in old environments\n\t\treturn typeof argument === 'function' && !!argument.prototype;\n\t};\n}\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $species = GetIntrinsic('%Symbol.species%', true);\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar ArrayCreate = require('./ArrayCreate');\nvar Get = require('./Get');\nvar IsArray = require('./IsArray');\nvar IsConstructor = require('./IsConstructor');\nvar Type = require('./Type');\n\nvar isInteger = require('../helpers/isInteger');\n\n// https://262.ecma-international.org/12.0/#sec-arrayspeciescreate\n\nmodule.exports = function ArraySpeciesCreate(originalArray, length) {\n\tif (!isInteger(length) || length < 0) {\n\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0');\n\t}\n\n\tvar isArray = IsArray(originalArray);\n\tif (!isArray) {\n\t\treturn ArrayCreate(length);\n\t}\n\n\tvar C = Get(originalArray, 'constructor');\n\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t// if (IsConstructor(C)) {\n\t// \tif C is another realm's Array, C = undefined\n\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t// }\n\tif ($species && Type(C) === 'Object') {\n\t\tC = Get(C, $species);\n\t\tif (C === null) {\n\t\t\tC = void 0;\n\t\t}\n\t}\n\n\tif (typeof C === 'undefined') {\n\t\treturn ArrayCreate(length);\n\t}\n\tif (!IsConstructor(C)) {\n\t\tthrow new $TypeError('C must be a constructor');\n\t}\n\treturn new C(length); // Construct(C, length);\n};\n\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsArray = require('./IsArray');\n\nvar $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('Function.prototype.apply');\n\n// https://262.ecma-international.org/6.0/#sec-call\n\nmodule.exports = function Call(F, V) {\n\tvar argumentsList = arguments.length > 2 ? arguments[2] : [];\n\tif (!IsArray(argumentsList)) {\n\t\tthrow new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List');\n\t}\n\treturn $apply(F, V, argumentsList);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n", "'use strict';\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true);\nvar $isExtensible = GetIntrinsic('%Object.isExtensible%', true);\n\nvar isPrimitive = require('../helpers/isPrimitive');\n\n// https://262.ecma-international.org/6.0/#sec-isextensible-o\n\nmodule.exports = $preventExtensions\n\t? function IsExtensible(obj) {\n\t\treturn !isPrimitive(obj) && $isExtensible(obj);\n\t}\n\t: function IsExtensible(obj) {\n\t\treturn !isPrimitive(obj);\n\t};\n", "'use strict';\n\nmodule.exports = function isFullyPopulatedPropertyDescriptor(ES, Desc) {\n\treturn !!Desc\n\t\t&& typeof Desc === 'object'\n\t\t&& '[[Enumerable]]' in Desc\n\t\t&& '[[Configurable]]' in Desc\n\t\t&& (ES.IsAccessorDescriptor(Desc) || ES.IsDataDescriptor(Desc));\n};\n", "'use strict';\n\nvar assertRecord = require('../helpers/assertRecord');\n\nvar IsAccessorDescriptor = require('./IsAccessorDescriptor');\nvar IsDataDescriptor = require('./IsDataDescriptor');\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/6.0/#sec-isgenericdescriptor\n\nmodule.exports = function IsGenericDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar DefineOwnProperty = require('../helpers/DefineOwnProperty');\nvar isFullyPopulatedPropertyDescriptor = require('../helpers/isFullyPopulatedPropertyDescriptor');\nvar isPropertyDescriptor = require('../helpers/isPropertyDescriptor');\n\nvar FromPropertyDescriptor = require('./FromPropertyDescriptor');\nvar IsAccessorDescriptor = require('./IsAccessorDescriptor');\nvar IsDataDescriptor = require('./IsDataDescriptor');\nvar IsGenericDescriptor = require('./IsGenericDescriptor');\nvar IsPropertyKey = require('./IsPropertyKey');\nvar SameValue = require('./SameValue');\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/13.0/#sec-validateandapplypropertydescriptor\n\n// see https://github.com/tc39/ecma262/pull/2468 for ES2022 changes\n\n// eslint-disable-next-line max-lines-per-function, max-statements\nmodule.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) {\n\tvar oType = Type(O);\n\tif (oType !== 'Undefined' && oType !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: O must be undefined or an Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: P must be a Property Key');\n\t}\n\tif (Type(extensible) !== 'Boolean') {\n\t\tthrow new $TypeError('Assertion failed: extensible must be a Boolean');\n\t}\n\tif (!isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, Desc)) {\n\t\tthrow new $TypeError('Assertion failed: Desc must be a Property Descriptor');\n\t}\n\tif (Type(current) !== 'Undefined' && !isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, current)) {\n\t\tthrow new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined');\n\t}\n\n\tif (Type(current) === 'Undefined') { // step 2\n\t\tif (!extensible) {\n\t\t\treturn false; // step 2.a\n\t\t}\n\t\tif (oType === 'Undefined') {\n\t\t\treturn true; // step 2.b\n\t\t}\n\t\tif (IsAccessorDescriptor(Desc)) { // step 2.c\n\t\t\treturn DefineOwnProperty(\n\t\t\t\tIsDataDescriptor,\n\t\t\t\tSameValue,\n\t\t\t\tFromPropertyDescriptor,\n\t\t\t\tO,\n\t\t\t\tP,\n\t\t\t\tDesc\n\t\t\t);\n\t\t}\n\t\t// step 2.d\n\t\treturn DefineOwnProperty(\n\t\t\tIsDataDescriptor,\n\t\t\tSameValue,\n\t\t\tFromPropertyDescriptor,\n\t\t\tO,\n\t\t\tP,\n\t\t\t{\n\t\t\t\t'[[Configurable]]': !!Desc['[[Configurable]]'],\n\t\t\t\t'[[Enumerable]]': !!Desc['[[Enumerable]]'],\n\t\t\t\t'[[Value]]': Desc['[[Value]]'],\n\t\t\t\t'[[Writable]]': !!Desc['[[Writable]]']\n\t\t\t}\n\t\t);\n\t}\n\n\t// 3. Assert: current is a fully populated Property Descriptor.\n\tif (!isFullyPopulatedPropertyDescriptor({\n\t\tIsAccessorDescriptor: IsAccessorDescriptor,\n\t\tIsDataDescriptor: IsDataDescriptor\n\t}, current)) {\n\t\tthrow new $TypeError('`current`, when present, must be a fully populated and valid Property Descriptor');\n\t}\n\n\t// 4. If every field in Desc is absent, return true.\n\t// this can't really match the assertion that it's a Property Descriptor in our JS implementation\n\n\t// 5. If current.[[Configurable]] is false, then\n\tif (!current['[[Configurable]]']) {\n\t\tif ('[[Configurable]]' in Desc && Desc['[[Configurable]]']) {\n\t\t\t// step 5.a\n\t\t\treturn false;\n\t\t}\n\t\tif ('[[Enumerable]]' in Desc && !SameValue(Desc['[[Enumerable]]'], current['[[Enumerable]]'])) {\n\t\t\t// step 5.b\n\t\t\treturn false;\n\t\t}\n\t\tif (!IsGenericDescriptor(Desc) && !SameValue(IsAccessorDescriptor(Desc), IsAccessorDescriptor(current))) {\n\t\t\t// step 5.c\n\t\t\treturn false;\n\t\t}\n\t\tif (IsAccessorDescriptor(current)) { // step 5.d\n\t\t\tif ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (!current['[[Writable]]']) { // step 5.e\n\t\t\tif ('[[Writable]]' in Desc && Desc['[[Writable]]']) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\n\t// 6. If O is not undefined, then\n\tif (oType !== 'Undefined') {\n\t\tvar configurable;\n\t\tvar enumerable;\n\t\tif (IsDataDescriptor(current) && IsAccessorDescriptor(Desc)) { // step 6.a\n\t\t\tconfigurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]'];\n\t\t\tenumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]'];\n\t\t\t// Replace the property named P of object O with an accessor property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value.\n\t\t\treturn DefineOwnProperty(\n\t\t\t\tIsDataDescriptor,\n\t\t\t\tSameValue,\n\t\t\t\tFromPropertyDescriptor,\n\t\t\t\tO,\n\t\t\t\tP,\n\t\t\t\t{\n\t\t\t\t\t'[[Configurable]]': !!configurable,\n\t\t\t\t\t'[[Enumerable]]': !!enumerable,\n\t\t\t\t\t'[[Get]]': ('[[Get]]' in Desc ? Desc : current)['[[Get]]'],\n\t\t\t\t\t'[[Set]]': ('[[Set]]' in Desc ? Desc : current)['[[Set]]']\n\t\t\t\t}\n\t\t\t);\n\t\t} else if (IsAccessorDescriptor(current) && IsDataDescriptor(Desc)) {\n\t\t\tconfigurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]'];\n\t\t\tenumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]'];\n\t\t\t// i. Replace the property named P of object O with a data property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value.\n\t\t\treturn DefineOwnProperty(\n\t\t\t\tIsDataDescriptor,\n\t\t\t\tSameValue,\n\t\t\t\tFromPropertyDescriptor,\n\t\t\t\tO,\n\t\t\t\tP,\n\t\t\t\t{\n\t\t\t\t\t'[[Configurable]]': !!configurable,\n\t\t\t\t\t'[[Enumerable]]': !!enumerable,\n\t\t\t\t\t'[[Value]]': ('[[Value]]' in Desc ? Desc : current)['[[Value]]'],\n\t\t\t\t\t'[[Writable]]': !!('[[Writable]]' in Desc ? Desc : current)['[[Writable]]']\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t// For each field of Desc that is present, set the corresponding attribute of the property named P of object O to the value of the field.\n\t\treturn DefineOwnProperty(\n\t\t\tIsDataDescriptor,\n\t\t\tSameValue,\n\t\t\tFromPropertyDescriptor,\n\t\t\tO,\n\t\t\tP,\n\t\t\tDesc\n\t\t);\n\t}\n\n\treturn true; // step 7\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = require('gopd');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar isPropertyDescriptor = require('../helpers/isPropertyDescriptor');\n\nvar IsAccessorDescriptor = require('./IsAccessorDescriptor');\nvar IsDataDescriptor = require('./IsDataDescriptor');\nvar IsExtensible = require('./IsExtensible');\nvar IsPropertyKey = require('./IsPropertyKey');\nvar ToPropertyDescriptor = require('./ToPropertyDescriptor');\nvar SameValue = require('./SameValue');\nvar Type = require('./Type');\nvar ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor');\n\n// https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty\n\nmodule.exports = function OrdinaryDefineOwnProperty(O, P, Desc) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: O must be an Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: P must be a Property Key');\n\t}\n\tif (!isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, Desc)) {\n\t\tthrow new $TypeError('Assertion failed: Desc must be a Property Descriptor');\n\t}\n\tif (!$gOPD) {\n\t\t// ES3/IE 8 fallback\n\t\tif (IsAccessorDescriptor(Desc)) {\n\t\t\tthrow new $SyntaxError('This environment does not support accessor property descriptors.');\n\t\t}\n\t\tvar creatingNormalDataProperty = !(P in O)\n\t\t\t&& Desc['[[Writable]]']\n\t\t\t&& Desc['[[Enumerable]]']\n\t\t\t&& Desc['[[Configurable]]']\n\t\t\t&& '[[Value]]' in Desc;\n\t\tvar settingExistingDataProperty = (P in O)\n\t\t\t&& (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]'])\n\t\t\t&& (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]'])\n\t\t\t&& (!('[[Writable]]' in Desc) || Desc['[[Writable]]'])\n\t\t\t&& '[[Value]]' in Desc;\n\t\tif (creatingNormalDataProperty || settingExistingDataProperty) {\n\t\t\tO[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign\n\t\t\treturn SameValue(O[P], Desc['[[Value]]']);\n\t\t}\n\t\tthrow new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties');\n\t}\n\tvar desc = $gOPD(O, P);\n\tvar current = desc && ToPropertyDescriptor(desc);\n\tvar extensible = IsExtensible(O);\n\treturn ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsPropertyKey = require('./IsPropertyKey');\nvar OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/6.0/#sec-createdataproperty\n\nmodule.exports = function CreateDataProperty(O, P, V) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\tvar newDesc = {\n\t\t'[[Configurable]]': true,\n\t\t'[[Enumerable]]': true,\n\t\t'[[Value]]': V,\n\t\t'[[Writable]]': true\n\t};\n\treturn OrdinaryDefineOwnProperty(O, P, newDesc);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar CreateDataProperty = require('./CreateDataProperty');\nvar IsPropertyKey = require('./IsPropertyKey');\nvar Type = require('./Type');\n\n// // https://262.ecma-international.org/14.0/#sec-createdatapropertyorthrow\n\nmodule.exports = function CreateDataPropertyOrThrow(O, P, V) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\tvar success = CreateDataProperty(O, P, V);\n\tif (!success) {\n\t\tthrow new $TypeError('unable to create data property');\n\t}\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsPropertyKey = require('./IsPropertyKey');\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/6.0/#sec-hasproperty\n\nmodule.exports = function HasProperty(O, P) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `O` must be an Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: `P` must be a Property Key');\n\t}\n\treturn P in O;\n};\n", "'use strict';\n\nvar $floor = Math.floor;\n\nmodule.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn $floor(remain >= 0 ? remain : remain + modulo);\n};\n", "'use strict';\n\nvar mod = require('../helpers/mod');\n\n// https://262.ecma-international.org/5.1/#sec-5.2\n\nmodule.exports = function modulo(x, y) {\n\treturn mod(x, y);\n};\n", "'use strict';\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n", "'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n", "'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = require('./helpers/isPrimitive');\nvar isCallable = require('is-callable');\nvar isDate = require('is-date-object');\nvar isSymbol = require('is-symbol');\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n", "'use strict';\n\nvar toPrimitive = require('es-to-primitive/es2015');\n\n// https://262.ecma-international.org/6.0/#sec-toprimitive\n\nmodule.exports = function ToPrimitive(input) {\n\tif (arguments.length > 1) {\n\t\treturn toPrimitive(input, arguments[1]);\n\t}\n\treturn toPrimitive(input);\n};\n", "'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n", "'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar GetIntrinsic = require('get-intrinsic');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $String = GetIntrinsic('%String%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// https://262.ecma-international.org/6.0/#sec-tostring\n\nmodule.exports = function ToString(argument) {\n\tif (typeof argument === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t}\n\treturn $String(argument);\n};\n", "'use strict';\n\nvar RequireObjectCoercible = require('es-abstract/2023/RequireObjectCoercible');\nvar ToString = require('es-abstract/2023/ToString');\nvar callBound = require('call-bind/callBound');\nvar $replace = callBound('String.prototype.replace');\n\nvar mvsIsWS = (/^\\s$/).test('\\u180E');\n/* eslint-disable no-control-regex */\nvar leftWhitespace = mvsIsWS\n\t? /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/\n\t: /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/;\nvar rightWhitespace = mvsIsWS\n\t? /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/\n\t: /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/;\n/* eslint-enable no-control-regex */\n\nmodule.exports = function trim() {\n\tvar S = ToString(RequireObjectCoercible(this));\n\treturn $replace($replace(S, leftWhitespace, ''), rightWhitespace, '');\n};\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nvar zeroWidthSpace = '\\u200b';\nvar mongolianVowelSeparator = '\\u180E';\n\nmodule.exports = function getPolyfill() {\n\tif (\n\t\tString.prototype.trim\n\t\t&& zeroWidthSpace.trim() === zeroWidthSpace\n\t\t&& mongolianVowelSeparator.trim() === mongolianVowelSeparator\n\t\t&& ('_' + mongolianVowelSeparator).trim() === ('_' + mongolianVowelSeparator)\n\t\t&& (mongolianVowelSeparator + '_').trim() === (mongolianVowelSeparator + '_')\n\t) {\n\t\treturn String.prototype.trim;\n\t}\n\treturn implementation;\n};\n", "'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimStringTrim() {\n\tvar polyfill = getPolyfill();\n\tdefine(String.prototype, { trim: polyfill }, {\n\t\ttrim: function testTrim() {\n\t\t\treturn String.prototype.trim !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n", "'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\nvar RequireObjectCoercible = require('es-abstract/2023/RequireObjectCoercible');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar bound = callBind(getPolyfill());\nvar boundMethod = function trim(receiver) {\n\tRequireObjectCoercible(receiver);\n\treturn bound(receiver);\n};\n\ndefine(boundMethod, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundMethod;\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $Number = GetIntrinsic('%Number%');\nvar $RegExp = GetIntrinsic('%RegExp%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $parseInteger = GetIntrinsic('%parseInt%');\n\nvar callBound = require('call-bind/callBound');\nvar regexTester = require('safe-regex-test');\n\nvar $strSlice = callBound('String.prototype.slice');\nvar isBinary = regexTester(/^0b[01]+$/i);\nvar isOctal = regexTester(/^0o[0-7]+$/i);\nvar isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = regexTester(nonWSregex);\n\nvar $trim = require('string.prototype.trim');\n\nvar Type = require('./Type');\n\n// https://262.ecma-international.org/13.0/#sec-stringtonumber\n\nmodule.exports = function StringToNumber(argument) {\n\tif (Type(argument) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `argument` is not a String');\n\t}\n\tif (isBinary(argument)) {\n\t\treturn $Number($parseInteger($strSlice(argument, 2), 2));\n\t}\n\tif (isOctal(argument)) {\n\t\treturn $Number($parseInteger($strSlice(argument, 2), 8));\n\t}\n\tif (hasNonWS(argument) || isInvalidHexLiteral(argument)) {\n\t\treturn NaN;\n\t}\n\tvar trimmed = $trim(argument);\n\tif (trimmed !== argument) {\n\t\treturn StringToNumber(trimmed);\n\t}\n\treturn $Number(argument);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $Number = GetIntrinsic('%Number%');\nvar isPrimitive = require('../helpers/isPrimitive');\n\nvar ToPrimitive = require('./ToPrimitive');\nvar StringToNumber = require('./StringToNumber');\n\n// https://262.ecma-international.org/13.0/#sec-tonumber\n\nmodule.exports = function ToNumber(argument) {\n\tvar value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);\n\tif (typeof value === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t}\n\tif (typeof value === 'bigint') {\n\t\tthrow new $TypeError('Conversion from \\'BigInt\\' to \\'number\\' is not allowed.');\n\t}\n\tif (typeof value === 'string') {\n\t\treturn StringToNumber(value);\n\t}\n\treturn $Number(value);\n};\n", "'use strict';\n\nvar Type = require('./Type');\n\n// var modulo = require('./modulo');\nvar $floor = Math.floor;\n\n// http://262.ecma-international.org/11.0/#eqn-floor\n\nmodule.exports = function floor(x) {\n\t// return x - modulo(x, 1);\n\tif (Type(x) === 'BigInt') {\n\t\treturn x;\n\t}\n\treturn $floor(x);\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar floor = require('./floor');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// https://262.ecma-international.org/14.0/#eqn-truncate\n\nmodule.exports = function truncate(x) {\n\tif (typeof x !== 'number' && typeof x !== 'bigint') {\n\t\tthrow new $TypeError('argument must be a Number or a BigInt');\n\t}\n\tvar result = x < 0 ? -floor(-x) : floor(x);\n\treturn result === 0 ? 0 : result; // in the spec, these are math values, so we filter out -0 here\n};\n", "'use strict';\n\nvar modulo = require('./modulo');\nvar ToNumber = require('./ToNumber');\nvar truncate = require('./truncate');\n\nvar isFinite = require('../helpers/isFinite');\n\n// https://262.ecma-international.org/14.0/#sec-touint32\n\nvar two32 = 0x100000000; // Math.pow(2, 32);\n\nmodule.exports = function ToUint32(argument) {\n\tvar number = ToNumber(argument);\n\tif (!isFinite(number) || number === 0) {\n\t\treturn 0;\n\t}\n\tvar int = truncate(number);\n\tvar int32bit = modulo(int, two32);\n\treturn int32bit === 0 ? 0 : int32bit; // in the spec, these are math values, so we filter out -0 here\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $Object = GetIntrinsic('%Object%');\n\nvar RequireObjectCoercible = require('./RequireObjectCoercible');\n\n// https://262.ecma-international.org/6.0/#sec-toobject\n\nmodule.exports = function ToObject(value) {\n\tRequireObjectCoercible(value);\n\treturn $Object(value);\n};\n", "'use strict';\n\nvar ArraySpeciesCreate = require('es-abstract/2023/ArraySpeciesCreate');\nvar Call = require('es-abstract/2023/Call');\nvar CreateDataPropertyOrThrow = require('es-abstract/2023/CreateDataPropertyOrThrow');\nvar Get = require('es-abstract/2023/Get');\nvar HasProperty = require('es-abstract/2023/HasProperty');\nvar IsCallable = require('es-abstract/2023/IsCallable');\nvar ToUint32 = require('es-abstract/2023/ToUint32');\nvar ToObject = require('es-abstract/2023/ToObject');\nvar ToString = require('es-abstract/2023/ToString');\n\nvar callBound = require('call-bind/callBound');\n\nvar isString = require('is-string');\n\n// Check failure of by-index access of string characters (IE < 9) and failure of `0 in boxedString` (Rhino)\nvar boxedString = Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar strSplit = callBound('String.prototype.split');\n\nmodule.exports = function map(callbackfn) {\n\tvar O = ToObject(this);\n\tvar self = splitString && isString(O) ? strSplit(O, '') : O;\n\tvar len = ToUint32(self.length);\n\n\t// If no callback function or if callback is not a callable function\n\tif (!IsCallable(callbackfn)) {\n\t\tthrow new TypeError('Array.prototype.map callback must be a function');\n\t}\n\n\tvar T;\n\tif (arguments.length > 1) {\n\t\tT = arguments[1];\n\t}\n\n\tvar A = ArraySpeciesCreate(O, len);\n\tvar k = 0;\n\twhile (k < len) {\n\t\tvar Pk = ToString(k);\n\t\tvar kPresent = HasProperty(O, Pk);\n\t\tif (kPresent) {\n\t\t\tvar kValue = Get(O, Pk);\n\t\t\tvar mappedValue = Call(callbackfn, T, [kValue, k, O]);\n\t\t\tCreateDataPropertyOrThrow(A, Pk, mappedValue);\n\t\t}\n\t\tk += 1;\n\t}\n\n\treturn A;\n};\n", "module.exports = function properlyBoxed(method) {\n\t// Check node 0.6.21 bug where third parameter is not boxed\n\tvar properlyBoxesNonStrict = true;\n\tvar properlyBoxesStrict = true;\n\tvar threwException = false;\n\tif (typeof method === 'function') {\n\t\ttry {\n\t\t\t// eslint-disable-next-line max-params\n\t\t\tmethod.call('f', function (_, __, O) {\n\t\t\t\tif (typeof O !== 'object') {\n\t\t\t\t\tproperlyBoxesNonStrict = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmethod.call(\n\t\t\t\t[null],\n\t\t\t\tfunction () {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\tproperlyBoxesStrict = typeof this === 'string'; // eslint-disable-line no-invalid-this\n\t\t\t\t},\n\t\t\t\t'x'\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tthrewException = true;\n\t\t}\n\t\treturn !threwException && properlyBoxesNonStrict && properlyBoxesStrict;\n\t}\n\treturn false;\n};\n", "'use strict';\n\nvar arrayMethodBoxesProperly = require('es-array-method-boxes-properly');\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tvar method = Array.prototype.map;\n\treturn arrayMethodBoxesProperly(method) ? method : implementation;\n};\n", "'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayPrototypeMap() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tArray.prototype,\n\t\t{ map: polyfill },\n\t\t{ map: function () { return Array.prototype.map !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n", "'use strict';\n\nvar define = require('define-properties');\nvar RequireObjectCoercible = require('es-abstract/2023/RequireObjectCoercible');\nvar callBound = require('call-bind/callBound');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar polyfill = getPolyfill();\nvar shim = require('./shim');\n\nvar $slice = callBound('Array.prototype.slice');\n\n// eslint-disable-next-line no-unused-vars\nvar boundMapShim = function map(array, callbackfn) {\n\tRequireObjectCoercible(array);\n\treturn polyfill.apply(array, $slice(arguments, 1));\n};\ndefine(boundMapShim, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundMapShim;\n", "'use strict';\n\nvar requirePromise = require('./requirePromise');\n\nrequirePromise();\n\nvar PromiseResolve = require('es-abstract/2020/PromiseResolve');\nvar Type = require('es-abstract/2020/Type');\nvar iterate = require('iterate-value');\nvar map = require('array.prototype.map');\nvar GetIntrinsic = require('get-intrinsic');\nvar callBind = require('call-bind');\n\nvar all = callBind(GetIntrinsic('%Promise.all%'));\nvar reject = callBind(GetIntrinsic('%Promise.reject%'));\n\nmodule.exports = function allSettled(iterable) {\n\tvar C = this;\n\tif (Type(C) !== 'Object') {\n\t\tthrow new TypeError('`this` value must be an object');\n\t}\n\tvar values = iterate(iterable);\n\treturn all(C, map(values, function (item) {\n\t\tvar onFulfill = function (value) {\n\t\t\treturn { status: 'fulfilled', value: value };\n\t\t};\n\t\tvar onReject = function (reason) {\n\t\t\treturn { status: 'rejected', reason: reason };\n\t\t};\n\t\tvar itemPromise = PromiseResolve(C, item);\n\t\ttry {\n\t\t\treturn itemPromise.then(onFulfill, onReject);\n\t\t} catch (e) {\n\t\t\treturn reject(C, e);\n\t\t}\n\t}));\n};\n", "'use strict';\n\nvar requirePromise = require('./requirePromise');\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\trequirePromise();\n\treturn typeof Promise.allSettled === 'function' ? Promise.allSettled : implementation;\n};\n", "'use strict';\n\nvar requirePromise = require('./requirePromise');\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimAllSettled() {\n\trequirePromise();\n\n\tvar polyfill = getPolyfill();\n\tdefine(Promise, { allSettled: polyfill }, {\n\t\tallSettled: function testAllSettled() {\n\t\t\treturn Promise.allSettled !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n", "'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar requirePromise = require('./requirePromise');\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nrequirePromise();\nvar bound = callBind(getPolyfill());\n\nvar rebindable = function allSettled(iterable) {\n\t// eslint-disable-next-line no-invalid-this\n\treturn bound(typeof this === 'undefined' ? Promise : this, iterable);\n};\n\ndefine(rebindable, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = rebindable;\nmodule.exports['default'] = rebindable;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseBasedRateLimiter = void 0;\nvar tslib_1 = require(\"tslib\");\nvar logger_1 = require(\"@d-fischer/logger\");\nvar promise_allsettled_1 = require(\"@d-fischer/promise.allsettled\");\nvar shared_utils_1 = require(\"@d-fischer/shared-utils\");\nvar RateLimitReachedError_1 = require(\"../errors/RateLimitReachedError\");\nvar RetryAfterError_1 = require(\"../errors/RetryAfterError\");\nvar ResponseBasedRateLimiter = /** @class */ (function () {\n function ResponseBasedRateLimiter(_a) {\n var logger = _a.logger;\n this._queue = [];\n this._batchRunning = false;\n this._paused = false;\n this._logger = (0, logger_1.createLogger)(tslib_1.__assign({ name: 'rate-limiter', emoji: true }, logger));\n }\n ResponseBasedRateLimiter.prototype.request = function (req, options) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this._logger.trace('request start');\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n var _a;\n var reqSpec = {\n req: req,\n resolve: resolve,\n reject: reject,\n limitReachedBehavior: (_a = options === null || options === void 0 ? void 0 : options.limitReachedBehavior) !== null && _a !== void 0 ? _a : 'enqueue'\n };\n if (_this._batchRunning || _this._nextBatchTimer || _this._paused) {\n _this._logger.trace(\"request queued batchRunning:\".concat(_this._batchRunning.toString(), \" hasNextBatchTimer:\").concat((!!_this\n ._nextBatchTimer).toString(), \" paused:\").concat(_this._paused.toString()));\n _this._queue.push(reqSpec);\n }\n else {\n void _this._runRequestBatch([reqSpec]);\n }\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ResponseBasedRateLimiter.prototype.clear = function () {\n this._queue = [];\n };\n ResponseBasedRateLimiter.prototype.pause = function () {\n this._paused = true;\n };\n ResponseBasedRateLimiter.prototype.resume = function () {\n this._paused = false;\n this._runNextBatch();\n };\n Object.defineProperty(ResponseBasedRateLimiter.prototype, \"stats\", {\n get: function () {\n var _a, _b, _c, _d, _e;\n return {\n lastKnownLimit: (_b = (_a = this._parameters) === null || _a === void 0 ? void 0 : _a.limit) !== null && _b !== void 0 ? _b : null,\n lastKnownRemainingRequests: (_d = (_c = this._parameters) === null || _c === void 0 ? void 0 : _c.remaining) !== null && _d !== void 0 ? _d : null,\n lastKnownResetDate: (0, shared_utils_1.mapNullable)((_e = this._parameters) === null || _e === void 0 ? void 0 : _e.resetsAt, function (v) { return new Date(v); })\n };\n },\n enumerable: false,\n configurable: true\n });\n ResponseBasedRateLimiter.prototype._runRequestBatch = function (reqSpecs) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var promises, settledPromises, rejectedPromises, now, retryAt, retryAfter, params, delay;\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this._logger.trace(\"runRequestBatch start specs:\".concat(reqSpecs.length));\n this._batchRunning = true;\n if (this._parameters) {\n this._logger.debug(\"Remaining requests: \".concat(this._parameters.remaining));\n }\n this._logger.debug(\"Doing \".concat(reqSpecs.length, \" requests, new queue length is \").concat(this._queue.length));\n promises = reqSpecs.map(function (reqSpec) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n var req, resolve, reject, result, retry, params, e_1;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n req = reqSpec.req, resolve = reqSpec.resolve, reject = reqSpec.reject;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.doRequest(req)];\n case 2:\n result = _a.sent();\n retry = this.needsToRetryAfter(result);\n if (retry !== null) {\n this._queue.unshift(reqSpec);\n this._logger.info(\"Retrying after \".concat(retry, \" ms\"));\n throw new RetryAfterError_1.RetryAfterError(retry);\n }\n params = this.getParametersFromResponse(result);\n resolve(result);\n return [2 /*return*/, params];\n case 3:\n e_1 = _a.sent();\n if (e_1 instanceof RetryAfterError_1.RetryAfterError) {\n throw e_1;\n }\n reject(e_1);\n return [2 /*return*/, undefined];\n case 4: return [2 /*return*/];\n }\n });\n }); });\n return [4 /*yield*/, promise_allsettled_1.default.call(Promise, promises)];\n case 1:\n settledPromises = _a.sent();\n rejectedPromises = settledPromises.filter(function (p) { return p.status === 'rejected'; });\n now = Date.now();\n if (rejectedPromises.length) {\n this._logger.trace('runRequestBatch some rejected');\n retryAt = Math.max.apply(Math, tslib_1.__spreadArray([now], tslib_1.__read(rejectedPromises.map(function (p) { return p.reason.retryAt; })), false));\n retryAfter = retryAt - now;\n this._logger.warn(\"Waiting for \".concat(retryAfter, \" ms because the rate limit was exceeded\"));\n this._nextBatchTimer = setTimeout(function () {\n _this._parameters = undefined;\n _this._runNextBatch();\n }, retryAfter);\n }\n else {\n this._logger.trace('runRequestBatch none rejected');\n params = settledPromises\n .filter(function (p) {\n return p.status === 'fulfilled' && p.value !== undefined;\n })\n .map(function (p) { return p.value; })\n .reduce(function (carry, v) {\n if (!carry) {\n return v;\n }\n // return v.resetsAt > carry.resetsAt ? v : carry;\n return v.remaining < carry.remaining ? v : carry;\n }, undefined);\n this._batchRunning = false;\n if (params) {\n this._parameters = params;\n if (params.resetsAt < now || params.remaining > 0) {\n this._logger.trace('runRequestBatch canRunMore');\n this._runNextBatch();\n }\n else {\n delay = params.resetsAt - now;\n this._logger.trace(\"runRequestBatch delay:\".concat(delay));\n this._logger.warn(\"Waiting for \".concat(delay, \" ms because the rate limit was reached\"));\n this._queue = this._queue.filter(function (entry) {\n switch (entry.limitReachedBehavior) {\n case 'enqueue': {\n return true;\n }\n case 'null': {\n entry.resolve(null);\n return false;\n }\n case 'throw': {\n entry.reject(new RateLimitReachedError_1.RateLimitReachedError('Request removed from queue because the rate limit was reached'));\n return false;\n }\n default: {\n throw new Error('this should never happen');\n }\n }\n });\n this._nextBatchTimer = setTimeout(function () {\n _this._parameters = undefined;\n _this._runNextBatch();\n }, delay);\n }\n }\n }\n this._logger.trace('runRequestBatch end');\n return [2 /*return*/];\n }\n });\n });\n };\n ResponseBasedRateLimiter.prototype._runNextBatch = function () {\n if (this._paused) {\n return;\n }\n this._logger.trace('runNextBatch start');\n if (this._nextBatchTimer) {\n clearTimeout(this._nextBatchTimer);\n this._nextBatchTimer = undefined;\n }\n var amount = this._parameters ? Math.min(this._parameters.remaining, this._parameters.limit / 10) : 1;\n var reqSpecs = this._queue.splice(0, amount);\n if (reqSpecs.length) {\n void this._runRequestBatch(reqSpecs);\n }\n this._logger.trace('runNextBatch end');\n };\n return ResponseBasedRateLimiter;\n}());\nexports.ResponseBasedRateLimiter = ResponseBasedRateLimiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PartitionedRateLimiter = void 0;\nvar tslib_1 = require(\"tslib\");\nvar ResponseBasedRateLimiter_1 = require(\"./ResponseBasedRateLimiter\");\nvar PartitionedRateLimiter = /** @class */ (function () {\n function PartitionedRateLimiter(options) {\n this._children = new Map();\n this._paused = false;\n this._partitionKeyCallback = options.getPartitionKey;\n this._createChildCallback = options.createChild;\n }\n PartitionedRateLimiter.prototype.request = function (req, options) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var partitionKey, partitionChild;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n partitionKey = this._partitionKeyCallback(req);\n partitionChild = this._getChild(partitionKey);\n return [4 /*yield*/, partitionChild.request(req, options)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n PartitionedRateLimiter.prototype.clear = function () {\n var e_1, _a;\n try {\n for (var _b = tslib_1.__values(this._children.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.clear();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PartitionedRateLimiter.prototype.pause = function () {\n var e_2, _a;\n this._paused = true;\n try {\n for (var _b = tslib_1.__values(this._children.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.pause();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n PartitionedRateLimiter.prototype.resume = function () {\n var e_3, _a;\n this._paused = false;\n try {\n for (var _b = tslib_1.__values(this._children.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.resume();\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n PartitionedRateLimiter.prototype.getChildStats = function (partitionKey) {\n if (!this._children.has(partitionKey)) {\n return null;\n }\n var child = this._children.get(partitionKey);\n if (!(child instanceof ResponseBasedRateLimiter_1.ResponseBasedRateLimiter)) {\n return null;\n }\n return child.stats;\n };\n PartitionedRateLimiter.prototype._getChild = function (partitionKey) {\n if (this._children.has(partitionKey)) {\n return this._children.get(partitionKey);\n }\n var result = this._createChildCallback(partitionKey);\n if (this._paused) {\n result.pause();\n }\n this._children.set(partitionKey, result);\n return result;\n };\n return PartitionedRateLimiter;\n}());\nexports.PartitionedRateLimiter = PartitionedRateLimiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PartitionedTimeBasedRateLimiter = void 0;\nvar tslib_1 = require(\"tslib\");\nvar logger_1 = require(\"@d-fischer/logger\");\nvar RateLimitReachedError_1 = require(\"../errors/RateLimitReachedError\");\nvar PartitionedTimeBasedRateLimiter = /** @class */ (function () {\n function PartitionedTimeBasedRateLimiter(_a) {\n var logger = _a.logger, bucketSize = _a.bucketSize, timeFrame = _a.timeFrame, doRequest = _a.doRequest, getPartitionKey = _a.getPartitionKey;\n this._partitionedQueue = new Map();\n this._usedFromBucket = new Map();\n this._paused = false;\n this._logger = (0, logger_1.createLogger)(tslib_1.__assign({ name: 'rate-limiter', emoji: true }, logger));\n this._bucketSize = bucketSize;\n this._timeFrame = timeFrame;\n this._callback = doRequest;\n this._partitionKeyCallback = getPartitionKey;\n }\n PartitionedTimeBasedRateLimiter.prototype.request = function (req, options) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {\n var _a, _b;\n var reqSpec = {\n req: req,\n resolve: resolve,\n reject: reject,\n limitReachedBehavior: (_a = options === null || options === void 0 ? void 0 : options.limitReachedBehavior) !== null && _a !== void 0 ? _a : 'enqueue'\n };\n var partitionKey = _this._partitionKeyCallback(req);\n var usedFromBucket = (_b = _this._usedFromBucket.get(partitionKey)) !== null && _b !== void 0 ? _b : 0;\n if (usedFromBucket >= _this._bucketSize || _this._paused) {\n switch (reqSpec.limitReachedBehavior) {\n case 'enqueue': {\n var queue = _this._getPartitionedQueue(partitionKey);\n queue.push(reqSpec);\n if (usedFromBucket + queue.length >= _this._bucketSize) {\n _this._logger.warn(\"Rate limit of \".concat(_this._bucketSize, \" for \").concat(partitionKey ? \"partition \".concat(partitionKey) : 'default partition', \" was reached, waiting for \").concat(_this._paused ? 'the limiter to be unpaused' : 'a free bucket entry', \"; queue size is \").concat(queue.length));\n }\n else {\n _this._logger.info(\"Enqueueing request for \".concat(partitionKey ? \"partition \".concat(partitionKey) : 'default partition', \" because the rate limiter is paused; queue size is \").concat(queue.length));\n }\n break;\n }\n case 'null': {\n reqSpec.resolve(null);\n if (_this._paused) {\n _this._logger.info(\"Returning null for request for \".concat(partitionKey ? \"partition \".concat(partitionKey) : 'default partition', \" because the rate limiter is paused\"));\n }\n else {\n _this._logger.warn(\"Rate limit of \".concat(_this._bucketSize, \" for \").concat(partitionKey ? \"partition \".concat(partitionKey) : 'default partition', \" was reached, dropping request and returning null\"));\n }\n break;\n }\n case 'throw': {\n reqSpec.reject(new RateLimitReachedError_1.RateLimitReachedError(\"Request dropped because \".concat(_this._paused\n ? 'the rate limiter is paused'\n : \"the rate limit for \".concat(partitionKey ? \"partition \".concat(partitionKey) : 'default partition', \" was reached\"))));\n break;\n }\n default: {\n throw new Error('this should never happen');\n }\n }\n }\n else {\n void _this._runRequest(reqSpec, partitionKey);\n }\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n PartitionedTimeBasedRateLimiter.prototype.clear = function () {\n this._partitionedQueue.clear();\n };\n PartitionedTimeBasedRateLimiter.prototype.pause = function () {\n this._paused = true;\n };\n PartitionedTimeBasedRateLimiter.prototype.resume = function () {\n var e_1, _a;\n this._paused = false;\n try {\n for (var _b = tslib_1.__values(this._partitionedQueue.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var partitionKey = _c.value;\n this._runNextRequest(partitionKey);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PartitionedTimeBasedRateLimiter.prototype._getPartitionedQueue = function (partitionKey) {\n if (this._partitionedQueue.has(partitionKey)) {\n return this._partitionedQueue.get(partitionKey);\n }\n var newQueue = [];\n this._partitionedQueue.set(partitionKey, newQueue);\n return newQueue;\n };\n PartitionedTimeBasedRateLimiter.prototype._runRequest = function (reqSpec, partitionKey) {\n var _a;\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var queue, req, resolve, reject, _b, e_2;\n var _this = this;\n return tslib_1.__generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n queue = this._getPartitionedQueue(partitionKey);\n this._logger.debug(\"doing a request for \".concat(partitionKey ? \"partition \".concat(partitionKey) : 'default partition', \", new queue length is \").concat(queue.length));\n this._usedFromBucket.set(partitionKey, ((_a = this._usedFromBucket.get(partitionKey)) !== null && _a !== void 0 ? _a : 0) + 1);\n req = reqSpec.req, resolve = reqSpec.resolve, reject = reqSpec.reject;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, 4, 5]);\n _b = resolve;\n return [4 /*yield*/, this._callback(req)];\n case 2:\n _b.apply(void 0, [_c.sent()]);\n return [3 /*break*/, 5];\n case 3:\n e_2 = _c.sent();\n reject(e_2);\n return [3 /*break*/, 5];\n case 4:\n setTimeout(function () {\n var newUsed = _this._usedFromBucket.get(partitionKey) - 1;\n _this._usedFromBucket.set(partitionKey, newUsed);\n if (queue.length && newUsed < _this._bucketSize) {\n _this._runNextRequest(partitionKey);\n }\n }, this._timeFrame);\n return [7 /*endfinally*/];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n PartitionedTimeBasedRateLimiter.prototype._runNextRequest = function (partitionKey) {\n if (this._paused) {\n return;\n }\n var queue = this._getPartitionedQueue(partitionKey);\n var reqSpec = queue.shift();\n if (reqSpec) {\n void this._runRequest(reqSpec, partitionKey);\n }\n };\n return PartitionedTimeBasedRateLimiter;\n}());\nexports.PartitionedTimeBasedRateLimiter = PartitionedTimeBasedRateLimiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeBasedRateLimiter = void 0;\nvar tslib_1 = require(\"tslib\");\nvar logger_1 = require(\"@d-fischer/logger\");\nvar RateLimitReachedError_1 = require(\"../errors/RateLimitReachedError\");\nvar TimeBasedRateLimiter = /** @class */ (function () {\n function TimeBasedRateLimiter(_a) {\n var logger = _a.logger, bucketSize = _a.bucketSize, timeFrame = _a.timeFrame, doRequest = _a.doRequest;\n this._queue = [];\n this._usedFromBucket = 0;\n this._paused = false;\n this._logger = (0, logger_1.createLogger)(tslib_1.__assign({ name: 'rate-limiter', emoji: true }, logger));\n this._bucketSize = bucketSize;\n this._timeFrame = timeFrame;\n this._callback = doRequest;\n }\n TimeBasedRateLimiter.prototype.request = function (req, options) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {\n var _a;\n var reqSpec = {\n req: req,\n resolve: resolve,\n reject: reject,\n limitReachedBehavior: (_a = options === null || options === void 0 ? void 0 : options.limitReachedBehavior) !== null && _a !== void 0 ? _a : 'enqueue'\n };\n if (_this._usedFromBucket >= _this._bucketSize || _this._paused) {\n switch (reqSpec.limitReachedBehavior) {\n case 'enqueue': {\n _this._queue.push(reqSpec);\n if (_this._usedFromBucket + _this._queue.length >= _this._bucketSize) {\n _this._logger.warn(\"Rate limit of \".concat(_this._bucketSize, \" was reached, waiting for \").concat(_this._paused ? 'the limiter to be unpaused' : 'a free bucket entry', \"; queue size is \").concat(_this._queue.length));\n }\n else {\n _this._logger.info(\"Enqueueing request because the rate limiter is paused; queue size is \".concat(_this._queue.length));\n }\n break;\n }\n case 'null': {\n reqSpec.resolve(null);\n _this._logger.warn(\"Rate limit of \".concat(_this._bucketSize, \" was reached, dropping request and returning null\"));\n if (_this._paused) {\n _this._logger.info('Returning null for request because the rate limiter is paused');\n }\n else {\n _this._logger.warn(\"Rate limit of \".concat(_this._bucketSize, \" was reached, dropping request and returning null\"));\n }\n break;\n }\n case 'throw': {\n reqSpec.reject(new RateLimitReachedError_1.RateLimitReachedError(\"Request dropped because \".concat(_this._paused ? 'the rate limiter is paused' : 'the rate limit was reached')));\n break;\n }\n default: {\n throw new Error('this should never happen');\n }\n }\n }\n else {\n void _this._runRequest(reqSpec);\n }\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n TimeBasedRateLimiter.prototype.clear = function () {\n this._queue = [];\n };\n TimeBasedRateLimiter.prototype.pause = function () {\n this._paused = true;\n };\n TimeBasedRateLimiter.prototype.resume = function () {\n this._paused = false;\n this._runNextRequest();\n };\n TimeBasedRateLimiter.prototype._runRequest = function (reqSpec) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var req, resolve, reject, _a, e_1;\n var _this = this;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this._logger.debug(\"doing a request, new queue length is \".concat(this._queue.length));\n this._usedFromBucket += 1;\n req = reqSpec.req, resolve = reqSpec.resolve, reject = reqSpec.reject;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, 4, 5]);\n _a = resolve;\n return [4 /*yield*/, this._callback(req)];\n case 2:\n _a.apply(void 0, [_b.sent()]);\n return [3 /*break*/, 5];\n case 3:\n e_1 = _b.sent();\n reject(e_1);\n return [3 /*break*/, 5];\n case 4:\n setTimeout(function () {\n _this._usedFromBucket -= 1;\n if (_this._queue.length && _this._usedFromBucket < _this._bucketSize) {\n _this._runNextRequest();\n }\n }, this._timeFrame);\n return [7 /*endfinally*/];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n TimeBasedRateLimiter.prototype._runNextRequest = function () {\n if (this._paused) {\n return;\n }\n var reqSpec = this._queue.shift();\n if (reqSpec) {\n void this._runRequest(reqSpec);\n }\n };\n return TimeBasedRateLimiter;\n}());\nexports.TimeBasedRateLimiter = TimeBasedRateLimiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimedPassthruRateLimiter = void 0;\nvar tslib_1 = require(\"tslib\");\nvar TimeBasedRateLimiter_1 = require(\"./TimeBasedRateLimiter\");\nvar TimedPassthruRateLimiter = /** @class */ (function (_super) {\n tslib_1.__extends(TimedPassthruRateLimiter, _super);\n function TimedPassthruRateLimiter(child, config) {\n return _super.call(this, tslib_1.__assign(tslib_1.__assign({}, config), { doRequest: function (req, options) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, child.request(req, options)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n } })) || this;\n }\n return TimedPassthruRateLimiter;\n}(TimeBasedRateLimiter_1.TimeBasedRateLimiter));\nexports.TimedPassthruRateLimiter = TimedPassthruRateLimiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimedPassthruRateLimiter = exports.TimeBasedRateLimiter = exports.ResponseBasedRateLimiter = exports.PartitionedTimeBasedRateLimiter = exports.PartitionedRateLimiter = exports.NullRateLimiter = exports.RateLimitReachedError = exports.RetryAfterError = void 0;\nvar RetryAfterError_1 = require(\"./errors/RetryAfterError\");\nObject.defineProperty(exports, \"RetryAfterError\", { enumerable: true, get: function () { return RetryAfterError_1.RetryAfterError; } });\nvar RateLimitReachedError_1 = require(\"./errors/RateLimitReachedError\");\nObject.defineProperty(exports, \"RateLimitReachedError\", { enumerable: true, get: function () { return RateLimitReachedError_1.RateLimitReachedError; } });\nvar NullRateLimiter_1 = require(\"./limiters/NullRateLimiter\");\nObject.defineProperty(exports, \"NullRateLimiter\", { enumerable: true, get: function () { return NullRateLimiter_1.NullRateLimiter; } });\nvar PartitionedRateLimiter_1 = require(\"./limiters/PartitionedRateLimiter\");\nObject.defineProperty(exports, \"PartitionedRateLimiter\", { enumerable: true, get: function () { return PartitionedRateLimiter_1.PartitionedRateLimiter; } });\nvar PartitionedTimeBasedRateLimiter_1 = require(\"./limiters/PartitionedTimeBasedRateLimiter\");\nObject.defineProperty(exports, \"PartitionedTimeBasedRateLimiter\", { enumerable: true, get: function () { return PartitionedTimeBasedRateLimiter_1.PartitionedTimeBasedRateLimiter; } });\nvar ResponseBasedRateLimiter_1 = require(\"./limiters/ResponseBasedRateLimiter\");\nObject.defineProperty(exports, \"ResponseBasedRateLimiter\", { enumerable: true, get: function () { return ResponseBasedRateLimiter_1.ResponseBasedRateLimiter; } });\nvar TimeBasedRateLimiter_1 = require(\"./limiters/TimeBasedRateLimiter\");\nObject.defineProperty(exports, \"TimeBasedRateLimiter\", { enumerable: true, get: function () { return TimeBasedRateLimiter_1.TimeBasedRateLimiter; } });\nvar TimedPassthruRateLimiter_1 = require(\"./limiters/TimedPassthruRateLimiter\");\nObject.defineProperty(exports, \"TimedPassthruRateLimiter\", { enumerable: true, get: function () { return TimedPassthruRateLimiter_1.TimedPassthruRateLimiter; } });\n", "\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar globalObject = getGlobal();\n\nmodule.exports = exports = globalObject.fetch;\n\n// Needed for TypeScript and Webpack.\nif (globalObject.fetch) {\n\texports.default = globalObject.fetch.bind(globalObject);\n}\n\nexports.Headers = globalObject.Headers;\nexports.Request = globalObject.Request;\nexports.Response = globalObject.Response;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n // Support schemaless URIs on the server for parity with the browser.\n // Ex: //github.com/ -> https://github.com/\n if (/^\\/\\//.test(url)) {\n url = 'https:' + url\n }\n return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n", "'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = util.assign(\n {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n }\n },\n Format\n);\n", "'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly,\n charset\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = obj.join(',');\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (isArray(obj)) {\n pushToArray(values, stringify(\n obj[key],\n typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly,\n charset\n ));\n } else {\n pushToArray(values, stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly,\n charset\n ));\n }\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.formatter,\n options.encodeValuesOnly,\n options.charset\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('\u2713')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n", "'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\n// This is what browsers will submit when the \u2713 character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the \u2713 character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('\u2713')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n", "'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n", "function klona(x) {\n\tif (typeof x !== 'object') return x;\n\n\tvar k, tmp, str=Object.prototype.toString.call(x);\n\n\tif (str === '[object Object]') {\n\t\tif (x.constructor !== Object && typeof x.constructor === 'function') {\n\t\t\ttmp = new x.constructor();\n\t\t\tfor (k in x) {\n\t\t\t\tif (x.hasOwnProperty(k) && tmp[k] !== x[k]) {\n\t\t\t\t\ttmp[k] = klona(x[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\ttmp = {}; // null\n\t\t\tfor (k in x) {\n\t\t\t\tif (k === '__proto__') {\n\t\t\t\t\tObject.defineProperty(tmp, k, {\n\t\t\t\t\t\tvalue: klona(x[k]),\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\ttmp[k] = klona(x[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn tmp;\n\t}\n\n\tif (str === '[object Array]') {\n\t\tk = x.length;\n\t\tfor (tmp=Array(k); k--;) {\n\t\t\ttmp[k] = klona(x[k]);\n\t\t}\n\t\treturn tmp;\n\t}\n\n\tif (str === '[object Set]') {\n\t\ttmp = new Set;\n\t\tx.forEach(function (val) {\n\t\t\ttmp.add(klona(val));\n\t\t});\n\t\treturn tmp;\n\t}\n\n\tif (str === '[object Map]') {\n\t\ttmp = new Map;\n\t\tx.forEach(function (val, key) {\n\t\t\ttmp.set(klona(key), klona(val));\n\t\t});\n\t\treturn tmp;\n\t}\n\n\tif (str === '[object Date]') {\n\t\treturn new Date(+x);\n\t}\n\n\tif (str === '[object RegExp]') {\n\t\ttmp = new RegExp(x.source, x.flags);\n\t\ttmp.lastIndex = x.lastIndex;\n\t\treturn tmp;\n\t}\n\n\tif (str === '[object DataView]') {\n\t\treturn new x.constructor( klona(x.buffer) );\n\t}\n\n\tif (str === '[object ArrayBuffer]') {\n\t\treturn x.slice(0);\n\t}\n\n\t// ArrayBuffer.isView(x)\n\t// ~> `new` bcuz `Buffer.slice` => ref\n\tif (str.slice(-6) === 'Array]') {\n\t\treturn new x.constructor(x);\n\t}\n\n\treturn x;\n}\n\nexports.klona = klona;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataObject = exports.getRawData = exports.rawDataSymbol = void 0;\nconst klona_1 = require(\"klona\");\n/** @private */\nexports.rawDataSymbol = Symbol('twurpleRawData');\n/**\n * Gets the raw data of a data object.\n *\n * @param obj The data object to get the raw data of.\n */\nfunction getRawData(obj) {\n return (0, klona_1.klona)(obj[exports.rawDataSymbol]);\n}\nexports.getRawData = getRawData;\n/** @private */\nclass DataObject {\n /** @private */\n constructor(data) {\n this[exports.rawDataSymbol] = data;\n }\n}\nexports.DataObject = DataObject;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomError = void 0;\n/** @private */\nclass CustomError extends Error {\n constructor(message, options) {\n var _a;\n super(message, options);\n // restore prototype chain\n Object.setPrototypeOf(this, new.target.prototype);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n (_a = Error.captureStackTrace) === null || _a === void 0 ? void 0 : _a.call(Error, this, new.target.constructor);\n }\n get name() {\n return this.constructor.name;\n }\n}\nexports.CustomError = CustomError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RelationAssertionError = void 0;\nconst CustomError_1 = require(\"./CustomError\");\n/**\n * Thrown when a relation that is expected to never be null does return null.\n */\nclass RelationAssertionError extends CustomError_1.CustomError {\n constructor() {\n super('Relation returned null - this may be a library bug or a race condition in your own code');\n }\n}\nexports.RelationAssertionError = RelationAssertionError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkRelationAssertion = void 0;\nconst RelationAssertionError_1 = require(\"./errors/RelationAssertionError\");\n/** @private */\nfunction checkRelationAssertion(value) {\n if (value == null) {\n throw new RelationAssertionError_1.RelationAssertionError();\n }\n return value;\n}\nexports.checkRelationAssertion = checkRelationAssertion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rtfm = void 0;\n/** @private */\nfunction rtfm(pkg, name, idKey) {\n return clazz => {\n const fn = idKey\n ? function () {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n return `[${name}#${this[idKey]} - please check https://twurple.js.org/reference/${pkg}/classes/${name}.html for available properties]`;\n }\n : function () {\n return `[${name} - please check https://twurple.js.org/reference/${pkg}/classes/${name}.html for available properties]`;\n };\n Object.defineProperty(clazz.prototype, Symbol.for('nodejs.util.inspect.custom'), {\n value: fn,\n enumerable: false\n });\n };\n}\nexports.rtfm = rtfm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixExtension = void 0;\nconst tslib_1 = require(\"tslib\");\nconst DataObject_1 = require(\"../DataObject\");\nconst rtfm_1 = require(\"../rtfm\");\n/**\n * A Twitch Extension.\n */\nlet HelixExtension = class HelixExtension extends DataObject_1.DataObject {\n /**\n * The name of the extension's author.\n */\n get authorName() {\n return this[DataObject_1.rawDataSymbol].author_name;\n }\n /**\n * Whether bits are enabled for the extension.\n */\n get bitsEnabled() {\n return this[DataObject_1.rawDataSymbol].bits_enabled;\n }\n /**\n * Whether the extension can be installed.\n */\n get installable() {\n return this[DataObject_1.rawDataSymbol].can_install;\n }\n /**\n * The location of the extension's configuration.\n */\n get configurationLocation() {\n return this[DataObject_1.rawDataSymbol].configuration_location;\n }\n /**\n * The extension's description.\n */\n get description() {\n return this[DataObject_1.rawDataSymbol].description;\n }\n /**\n * The URL of the extension's terms of service.\n */\n get tosUrl() {\n return this[DataObject_1.rawDataSymbol].eula_tos_url;\n }\n /**\n * Whether the extension has support for sending chat messages.\n */\n get hasChatSupport() {\n return this[DataObject_1.rawDataSymbol].has_chat_support;\n }\n /**\n * The URL of the extension's default sized icon.\n */\n get iconUrl() {\n return this[DataObject_1.rawDataSymbol].icon_url;\n }\n /**\n * Gets the URL of the extension's icon in the given size.\n *\n * @param size The size of the icon.\n */\n getIconUrl(size) {\n return this[DataObject_1.rawDataSymbol].icon_urls[size];\n }\n /**\n * The extension's ID.\n */\n get id() {\n return this[DataObject_1.rawDataSymbol].id;\n }\n /**\n * The extension's name.\n */\n get name() {\n return this[DataObject_1.rawDataSymbol].name;\n }\n /**\n * The URL of the extension's privacy policy.\n */\n get privacyPolicyUrl() {\n return this[DataObject_1.rawDataSymbol].privacy_policy_url;\n }\n /**\n * Whether the extension requests its users to share their identity with it.\n */\n get requestsIdentityLink() {\n return this[DataObject_1.rawDataSymbol].request_identity_link;\n }\n /**\n * The URLs of the extension's screenshots.\n */\n get screenshotUrls() {\n return this[DataObject_1.rawDataSymbol].screenshot_urls;\n }\n /**\n * The extension's activity state.\n */\n get state() {\n return this[DataObject_1.rawDataSymbol].state;\n }\n /**\n * The extension's level of support for subscriptions.\n */\n get subscriptionsSupportLevel() {\n return this[DataObject_1.rawDataSymbol].subscriptions_support_level;\n }\n /**\n * The extension's feature summary.\n */\n get summary() {\n return this[DataObject_1.rawDataSymbol].summary;\n }\n /**\n * The extension's support email address.\n */\n get supportEmail() {\n return this[DataObject_1.rawDataSymbol].support_email;\n }\n /**\n * The extension's version.\n */\n get version() {\n return this[DataObject_1.rawDataSymbol].version;\n }\n /**\n * The extension's feature summary for viewers.\n */\n get viewerSummery() {\n return this[DataObject_1.rawDataSymbol].viewer_summary;\n }\n /**\n * The extension's allowed configuration URLs.\n */\n get allowedConfigUrls() {\n return this[DataObject_1.rawDataSymbol].allowlisted_config_urls;\n }\n /**\n * The extension's allowed panel URLs.\n */\n get allowedPanelUrls() {\n return this[DataObject_1.rawDataSymbol].allowlisted_panel_urls;\n }\n /**\n * The URL shown when a viewer opens the extension on a mobile device.\n *\n * If the extension does not have a mobile view, this is null.\n */\n get mobileViewerUrl() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.mobile) === null || _a === void 0 ? void 0 : _a.viewer_url) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The URL shown to the viewer when the extension is shown as a panel.\n *\n * If the extension does not have a panel view, this is null.\n */\n get panelViewerUrl() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.panel) === null || _a === void 0 ? void 0 : _a.viewer_url) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The height of the extension panel.\n *\n * If the extension does not have a panel view, this is null.\n */\n get panelHeight() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.panel) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Whether the extension can link to external content from its panel view.\n *\n * If the extension does not have a panel view, this is null.\n */\n get panelCanLinkExternalContent() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.panel) === null || _a === void 0 ? void 0 : _a.can_link_external_content) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The URL shown to the viewer when the extension is shown as a video overlay.\n *\n * If the extension does not have a overlay view, this is null.\n */\n get overlayViewerUrl() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.video_overlay) === null || _a === void 0 ? void 0 : _a.viewer_url) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Whether the extension can link to external content from its overlay view.\n *\n * If the extension does not have a overlay view, this is null.\n */\n get overlayCanLinkExternalContent() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.video_overlay) === null || _a === void 0 ? void 0 : _a.can_link_external_content) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The URL shown to the viewer when the extension is shown as a video component.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentViewerUrl() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.viewer_url) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The aspect width of the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentAspectWidth() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.aspect_width) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The aspect height of the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentAspectHeight() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.aspect_height) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The horizontal aspect ratio of the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentAspectRatioX() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.aspect_ratio_x) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The vertical aspect ratio of the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentAspectRatioY() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.aspect_ratio_y) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Whether the extension's component view should automatically scale.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentAutoScales() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.autoscale) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The base width of the extension's component view to use for scaling.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentScalePixels() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.scale_pixels) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The target height of the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentTargetHeight() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.target_height) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The size of the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentSize() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Whether zooming is enabled for the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentZoom() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.zoom) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The zoom pixels of the extension's component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentZoomPixels() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.zoom_pixels) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Whether the extension can link to external content from its component view.\n *\n * If the extension does not have a component view, this is null.\n */\n get componentCanLinkExternalContent() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.component) === null || _a === void 0 ? void 0 : _a.can_link_external_content) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The URL shown to the viewer when the extension's configuration page is shown.\n *\n * If the extension does not have a config view, this is null.\n */\n get configViewerUrl() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.config) === null || _a === void 0 ? void 0 : _a.viewer_url) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Whether the extension can link to external content from its config view.\n *\n * If the extension does not have a config view, this is null.\n */\n get configCanLinkExternalContent() {\n var _a, _b;\n return (_b = (_a = this[DataObject_1.rawDataSymbol].views.config) === null || _a === void 0 ? void 0 : _a.can_link_external_content) !== null && _b !== void 0 ? _b : null;\n }\n};\nHelixExtension = tslib_1.__decorate([\n (0, rtfm_1.rtfm)('api', 'HelixExtension', 'id')\n], HelixExtension);\nexports.HelixExtension = HelixExtension;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HellFreezesOverError = void 0;\nconst CustomError_1 = require(\"./CustomError\");\n/**\n * These are the kind of errors that should never happen.\n *\n * If you see one thrown, please file a bug in the GitHub issue tracker.\n */\nclass HellFreezesOverError extends CustomError_1.CustomError {\n constructor(message) {\n super(`${message} - this should never happen, please file a bug in the GitHub issue tracker`);\n }\n}\nexports.HellFreezesOverError = HellFreezesOverError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extractUserName = exports.extractUserId = void 0;\n/**\n * Extracts the user ID from an argument that is possibly an object containing that ID.\n *\n * @param user The user ID or object.\n */\nfunction extractUserId(user) {\n if (typeof user === 'string') {\n return user;\n }\n else if (typeof user === 'number') {\n return user.toString(10);\n }\n else {\n return user.id;\n }\n}\nexports.extractUserId = extractUserId;\n/**\n * Extracts the user name from an argument that is possibly an object containing that name.\n *\n * @param user The user name or object.\n */\nfunction extractUserName(user) {\n return typeof user === 'string' ? user : user.name;\n}\nexports.extractUserName = extractUserName;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extractUserName = exports.extractUserId = exports.RelationAssertionError = exports.HellFreezesOverError = exports.CustomError = exports.HelixExtension = exports.rtfm = exports.checkRelationAssertion = exports.rawDataSymbol = exports.getRawData = exports.DataObject = void 0;\nvar DataObject_1 = require(\"./DataObject\");\nObject.defineProperty(exports, \"DataObject\", { enumerable: true, get: function () { return DataObject_1.DataObject; } });\nObject.defineProperty(exports, \"getRawData\", { enumerable: true, get: function () { return DataObject_1.getRawData; } });\nObject.defineProperty(exports, \"rawDataSymbol\", { enumerable: true, get: function () { return DataObject_1.rawDataSymbol; } });\nvar relations_1 = require(\"./relations\");\nObject.defineProperty(exports, \"checkRelationAssertion\", { enumerable: true, get: function () { return relations_1.checkRelationAssertion; } });\nvar rtfm_1 = require(\"./rtfm\");\nObject.defineProperty(exports, \"rtfm\", { enumerable: true, get: function () { return rtfm_1.rtfm; } });\nvar HelixExtension_1 = require(\"./extensions/HelixExtension\");\nObject.defineProperty(exports, \"HelixExtension\", { enumerable: true, get: function () { return HelixExtension_1.HelixExtension; } });\nvar CustomError_1 = require(\"./errors/CustomError\");\nObject.defineProperty(exports, \"CustomError\", { enumerable: true, get: function () { return CustomError_1.CustomError; } });\nvar HellFreezesOverError_1 = require(\"./errors/HellFreezesOverError\");\nObject.defineProperty(exports, \"HellFreezesOverError\", { enumerable: true, get: function () { return HellFreezesOverError_1.HellFreezesOverError; } });\nvar RelationAssertionError_1 = require(\"./errors/RelationAssertionError\");\nObject.defineProperty(exports, \"RelationAssertionError\", { enumerable: true, get: function () { return RelationAssertionError_1.RelationAssertionError; } });\nvar userResolvers_1 = require(\"./userResolvers\");\nObject.defineProperty(exports, \"extractUserId\", { enumerable: true, get: function () { return userResolvers_1.extractUserId; } });\nObject.defineProperty(exports, \"extractUserName\", { enumerable: true, get: function () { return userResolvers_1.extractUserName; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpStatusCodeError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown whenever a HTTP error occurs. Some HTTP errors are handled in the library when they're expected.\n */\nclass HttpStatusCodeError extends common_1.CustomError {\n /** @private */\n constructor(_statusCode, statusText, _url, _method, _body, isJson) {\n super(`Encountered HTTP status code ${_statusCode}: ${statusText}\\n\\nURL: ${_url}\\nMethod: ${_method}\\nBody:\\n${!isJson && _body.length > 150 ? `${_body.slice(0, 147)}...` : _body}`);\n this._statusCode = _statusCode;\n this._url = _url;\n this._method = _method;\n this._body = _body;\n }\n /**\n * The HTTP status code of the error.\n */\n get statusCode() {\n return this._statusCode;\n }\n /**\n * The URL that was requested.\n */\n get url() {\n return this._url;\n }\n /**\n * The HTTP method that was used for the request.\n */\n get method() {\n return this._method;\n }\n /**\n * The body that was used for the request, as a string.\n */\n get body() {\n return this._body;\n }\n}\nexports.HttpStatusCodeError = HttpStatusCodeError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformTwitchApiResponse = exports.handleTwitchApiResponseError = void 0;\nconst qs_1 = require(\"@d-fischer/qs\");\nconst HttpStatusCodeError_1 = require(\"../errors/HttpStatusCodeError\");\n/** @private */\nasync function handleTwitchApiResponseError(response, options) {\n var _a;\n if (!response.ok) {\n const isJson = response.headers.get('Content-Type') === 'application/json';\n const text = isJson ? JSON.stringify(await response.json(), null, 2) : await response.text();\n const params = (0, qs_1.stringify)(options.query, { arrayFormat: 'repeat', addQueryPrefix: true });\n const fullUrl = `${options.url}${params}`;\n throw new HttpStatusCodeError_1.HttpStatusCodeError(response.status, response.statusText, fullUrl, (_a = options.method) !== null && _a !== void 0 ? _a : 'GET', text, isJson);\n }\n}\nexports.handleTwitchApiResponseError = handleTwitchApiResponseError;\n/** @private */\nasync function transformTwitchApiResponse(response) {\n if (response.status === 204) {\n return undefined; // oof\n }\n const text = await response.text();\n if (!text) {\n return undefined; // mega oof - Twitch doesn't return a response when it should\n }\n return JSON.parse(text);\n}\nexports.transformTwitchApiResponse = transformTwitchApiResponse;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTwitchApiUrl = void 0;\n/** @internal */\nfunction getTwitchApiUrl(url, type) {\n switch (type) {\n case 'helix':\n return `https://api.twitch.tv/helix/${url.replace(/^\\//, '')}`;\n case 'auth':\n return `https://id.twitch.tv/oauth2/${url.replace(/^\\//, '')}`;\n case 'custom':\n return url;\n default:\n return url; // wat\n }\n}\nexports.getTwitchApiUrl = getTwitchApiUrl;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callTwitchApi = exports.callTwitchApiRaw = void 0;\nconst cross_fetch_1 = require(\"@d-fischer/cross-fetch\");\nconst qs_1 = require(\"@d-fischer/qs\");\nconst transform_1 = require(\"./helpers/transform\");\nconst url_1 = require(\"./helpers/url\");\n/**\n * Makes a call to the Twitch API using the given credentials, returning the raw Response object.\n *\n * @param options The configuration of the call.\n * @param clientId The client ID of your application.\n * @param accessToken The access token to call the API with.\n *\n * You need to obtain one using one of the [Twitch OAuth flows](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/).\n * @param authorizationType The type of Authorization header to send.\n *\n * Defaults to \"Bearer\" for Helix and \"OAuth\" for everything else.\n * @param fetchOptions Additional options to be passed to the `fetch` function.\n */\nasync function callTwitchApiRaw(options, clientId, accessToken, authorizationType, fetchOptions = {}) {\n var _a, _b;\n const type = (_a = options.type) !== null && _a !== void 0 ? _a : 'helix';\n const url = (0, url_1.getTwitchApiUrl)(options.url, type);\n const params = (0, qs_1.stringify)(options.query, { arrayFormat: 'repeat', addQueryPrefix: true });\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const headers = new cross_fetch_1.Headers({ Accept: 'application/json' });\n let body = undefined;\n if (options.jsonBody) {\n body = JSON.stringify(options.jsonBody);\n headers.append('Content-Type', 'application/json');\n }\n if (clientId && type !== 'auth') {\n headers.append('Client-ID', clientId);\n }\n if (accessToken) {\n headers.append('Authorization', `${type === 'helix' ? authorizationType !== null && authorizationType !== void 0 ? authorizationType : 'Bearer' : 'OAuth'} ${accessToken}`);\n }\n const requestOptions = {\n ...fetchOptions,\n method: (_b = options.method) !== null && _b !== void 0 ? _b : 'GET',\n headers,\n body\n };\n return await (0, cross_fetch_1.default)(`${url}${params}`, requestOptions);\n}\nexports.callTwitchApiRaw = callTwitchApiRaw;\n/**\n * Makes a call to the Twitch API using given credentials.\n *\n * @param options The configuration of the call.\n * @param clientId The client ID of your application.\n * @param accessToken The access token to call the API with.\n *\n * You need to obtain one using one of the [Twitch OAuth flows](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/).\n * @param authorizationType The type of Authorization header to send.\n *\n * Defaults to \"Bearer\" for Helix and \"OAuth\" for everything else.\n * @param fetchOptions Additional options to be passed to the `fetch` function.\n */\nasync function callTwitchApi(options, clientId, accessToken, authorizationType, fetchOptions = {}) {\n const response = await callTwitchApiRaw(options, clientId, accessToken, authorizationType, fetchOptions);\n await (0, transform_1.handleTwitchApiResponseError)(response, options);\n return await (0, transform_1.transformTwitchApiResponse)(response);\n}\nexports.callTwitchApi = callTwitchApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBroadcasterQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\nfunction createBroadcasterQuery(user) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(user)\n };\n}\nexports.createBroadcasterQuery = createBroadcasterQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpStatusCodeError = exports.transformTwitchApiResponse = exports.handleTwitchApiResponseError = exports.createBroadcasterQuery = exports.callTwitchApiRaw = exports.callTwitchApi = void 0;\nvar apiCall_1 = require(\"./apiCall\");\nObject.defineProperty(exports, \"callTwitchApi\", { enumerable: true, get: function () { return apiCall_1.callTwitchApi; } });\nObject.defineProperty(exports, \"callTwitchApiRaw\", { enumerable: true, get: function () { return apiCall_1.callTwitchApiRaw; } });\nvar queries_external_1 = require(\"./helpers/queries.external\");\nObject.defineProperty(exports, \"createBroadcasterQuery\", { enumerable: true, get: function () { return queries_external_1.createBroadcasterQuery; } });\nvar transform_1 = require(\"./helpers/transform\");\nObject.defineProperty(exports, \"handleTwitchApiResponseError\", { enumerable: true, get: function () { return transform_1.handleTwitchApiResponseError; } });\nObject.defineProperty(exports, \"transformTwitchApiResponse\", { enumerable: true, get: function () { return transform_1.transformTwitchApiResponse; } });\nvar HttpStatusCodeError_1 = require(\"./errors/HttpStatusCodeError\");\nObject.defineProperty(exports, \"HttpStatusCodeError\", { enumerable: true, get: function () { return HttpStatusCodeError_1.HttpStatusCodeError; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown whenever you try using invalid values in the client configuration.\n */\nclass ConfigError extends common_1.CustomError {\n}\nexports.ConfigError = ConfigError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixRateLimiter = void 0;\nconst rate_limiter_1 = require(\"@d-fischer/rate-limiter\");\nconst api_call_1 = require(\"@twurple/api-call\");\n/** @internal */\nclass HelixRateLimiter extends rate_limiter_1.ResponseBasedRateLimiter {\n async doRequest({ options, clientId, accessToken, authorizationType, fetchOptions }) {\n return await (0, api_call_1.callTwitchApiRaw)(options, clientId, accessToken, authorizationType, fetchOptions);\n }\n needsToRetryAfter(res) {\n if (res.status === 429 &&\n (!res.headers.has('ratelimit-remaining') || Number(res.headers.get('ratelimit-remaining')) === 0)) {\n return +res.headers.get('ratelimit-reset') * 1000 - Date.now();\n }\n return null;\n }\n getParametersFromResponse(res) {\n const headers = res.headers;\n return {\n limit: +headers.get('ratelimit-limit'),\n remaining: +headers.get('ratelimit-remaining'),\n resetsAt: +headers.get('ratelimit-reset') * 1000\n };\n }\n}\nexports.HelixRateLimiter = HelixRateLimiter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCacheKey = void 0;\nfunction createSingleCacheKey(param) {\n // noinspection FallThroughInSwitchStatementJS\n switch (typeof param) {\n case 'undefined': {\n return '';\n }\n case 'object': {\n if (param === null) {\n return '';\n }\n if ('cacheKey' in param) {\n return param.cacheKey;\n }\n const objKey = JSON.stringify(param);\n if (objKey !== '{}') {\n return objKey;\n }\n }\n // fallthrough\n default: {\n return param.toString();\n }\n }\n}\nfunction createCacheKey(propName, params, prefix) {\n return [propName, ...params.map(createSingleCacheKey)].join('/') + (prefix ? '/' : '');\n}\nexports.createCacheKey = createCacheKey;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Cacheable = void 0;\nconst createCacheKey_1 = require(\"../utils/createCacheKey\");\nfunction Cacheable(cls) {\n return class extends cls {\n constructor() {\n super(...arguments);\n this.cache = new Map();\n }\n getFromCache(cacheKey) {\n this._cleanCache();\n if (this.cache.has(cacheKey)) {\n const entry = this.cache.get(cacheKey);\n if (entry) {\n return entry.value;\n }\n }\n return undefined;\n }\n setCache(cacheKey, value, timeInSeconds) {\n this.cache.set(cacheKey, {\n value,\n expires: Date.now() + timeInSeconds * 1000\n });\n }\n removeFromCache(cacheKey, prefix) {\n const internalCacheKey = this._getInternalCacheKey(cacheKey, prefix);\n if (prefix) {\n this.cache.forEach((val, key) => {\n if (key.startsWith(internalCacheKey)) {\n this.cache.delete(key);\n }\n });\n }\n else {\n this.cache.delete(internalCacheKey);\n }\n }\n _cleanCache() {\n const now = Date.now();\n this.cache.forEach((val, key) => {\n if (val.expires < now) {\n this.cache.delete(key);\n }\n });\n }\n _getInternalCacheKey(cacheKey, prefix) {\n if (typeof cacheKey === 'string') {\n let internalCacheKey = cacheKey;\n if (!internalCacheKey.endsWith('/')) {\n internalCacheKey += '/';\n }\n return internalCacheKey;\n }\n else {\n const propName = cacheKey.shift();\n return createCacheKey_1.createCacheKey(propName, cacheKey, prefix);\n }\n }\n };\n}\nexports.Cacheable = Cacheable;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Cached = void 0;\nconst createCacheKey_1 = require(\"../utils/createCacheKey\");\nfunction Cached(timeInSeconds = Infinity, cacheFailures = false) {\n return function (target, propName, descriptor) {\n const origFn = descriptor.value;\n descriptor.value = async function (...params) {\n const cacheKey = createCacheKey_1.createCacheKey(propName, params);\n const cachedValue = this.getFromCache(cacheKey);\n if (cachedValue) {\n return cachedValue;\n }\n const result = await origFn.apply(this, params);\n if (result != null || cacheFailures) {\n this.setCache(cacheKey, result, timeInSeconds);\n }\n return result;\n };\n return descriptor;\n };\n}\nexports.Cached = Cached;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CachedGetter = void 0;\nconst createCacheKey_1 = require(\"../utils/createCacheKey\");\nfunction CachedGetter(timeInSeconds = Infinity) {\n return function (target, propName, descriptor) {\n if (descriptor.get) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const origFn = descriptor.get;\n descriptor.get = function () {\n const cacheKey = createCacheKey_1.createCacheKey(propName, []);\n const cachedValue = this.getFromCache(cacheKey);\n if (cachedValue) {\n return cachedValue;\n }\n const result = origFn.call(this);\n this.setCache(cacheKey, result, timeInSeconds);\n return result;\n };\n }\n return descriptor;\n };\n}\nexports.CachedGetter = CachedGetter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClearsCache = void 0;\nfunction ClearsCache(cacheName, numberOfArguments) {\n return function (target, propName, descriptor) {\n const origFn = descriptor.value;\n descriptor.value = async function (...params) {\n const result = await origFn.apply(this, params);\n const args = numberOfArguments === undefined ? params.slice() : params.slice(0, numberOfArguments);\n this.removeFromCache([cacheName, ...args], true);\n return result;\n };\n return descriptor;\n };\n}\nexports.ClearsCache = ClearsCache;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCacheKey = exports.ClearsCache = exports.CachedGetter = exports.Cached = exports.Cacheable = void 0;\nvar Cacheable_1 = require(\"./decorators/Cacheable\");\nObject.defineProperty(exports, \"Cacheable\", { enumerable: true, get: function () { return Cacheable_1.Cacheable; } });\nvar Cached_1 = require(\"./decorators/Cached\");\nObject.defineProperty(exports, \"Cached\", { enumerable: true, get: function () { return Cached_1.Cached; } });\nvar CachedGetter_1 = require(\"./decorators/CachedGetter\");\nObject.defineProperty(exports, \"CachedGetter\", { enumerable: true, get: function () { return CachedGetter_1.CachedGetter; } });\nvar ClearsCache_1 = require(\"./decorators/ClearsCache\");\nObject.defineProperty(exports, \"ClearsCache\", { enumerable: true, get: function () { return ClearsCache_1.ClearsCache; } });\nvar createCacheKey_1 = require(\"./utils/createCacheKey\");\nObject.defineProperty(exports, \"createCacheKey\", { enumerable: true, get: function () { return createCacheKey_1.createCacheKey; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Listener = void 0;\nclass Listener {\n /** @private */\n constructor(owner, event, listener, \n /** @private */ _internal = false) {\n this.owner = owner;\n this.event = event;\n this.listener = listener;\n this._internal = _internal;\n }\n unbind() {\n this.owner.removeListener(this);\n }\n}\nexports.Listener = Listener;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventEmitter = void 0;\nconst Listener_1 = require(\"./Listener\");\nclass EventEmitter {\n constructor() {\n this._eventListeners = new Map();\n this._internalEventListeners = new Map();\n }\n on(event, listener) {\n return this._addListener(false, event, listener);\n }\n addListener(event, listener) {\n return this._addListener(false, event, listener);\n }\n removeListener(idOrEvent, listener) {\n this._removeListener(false, idOrEvent, listener);\n }\n registerEvent() {\n const eventBinder = (handler) => this.addListener(eventBinder, handler);\n return eventBinder;\n }\n emit(event, ...args) {\n if (this._eventListeners.has(event)) {\n for (const listener of this._eventListeners.get(event)) {\n listener(...args);\n }\n }\n if (this._internalEventListeners.has(event)) {\n for (const listener of this._internalEventListeners.get(event)) {\n listener(...args);\n }\n }\n }\n registerInternalEvent() {\n const eventBinder = (handler) => this.addInternalListener(eventBinder, handler);\n return eventBinder;\n }\n addInternalListener(event, listener) {\n return this._addListener(true, event, listener);\n }\n removeInternalListener(idOrEvent, listener) {\n this._removeListener(true, idOrEvent, listener);\n }\n _addListener(internal, event, listener) {\n const listenerMap = internal ? this._eventListeners : this._internalEventListeners;\n if (listenerMap.has(event)) {\n listenerMap.get(event).push(listener);\n }\n else {\n listenerMap.set(event, [listener]);\n }\n return new Listener_1.Listener(this, event, listener, internal);\n }\n _removeListener(internal, idOrEvent, listener) {\n const listenerMap = internal ? this._eventListeners : this._internalEventListeners;\n if (!idOrEvent) {\n listenerMap.clear();\n }\n else if (typeof idOrEvent === 'object') {\n const id = idOrEvent;\n this._removeListener(id._internal, id.event, id.listener);\n }\n else {\n const event = idOrEvent;\n if (listenerMap.has(event)) {\n if (listener) {\n const listeners = listenerMap.get(event);\n let idx = 0;\n while ((idx = listeners.indexOf(listener)) !== -1) {\n listeners.splice(idx, 1);\n }\n }\n else {\n listenerMap.delete(event);\n }\n }\n }\n }\n}\nexports.EventEmitter = EventEmitter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Listener = exports.EventEmitter = void 0;\nvar EventEmitter_1 = require(\"./EventEmitter\");\nObject.defineProperty(exports, \"EventEmitter\", { enumerable: true, get: function () { return EventEmitter_1.EventEmitter; } });\nvar Listener_1 = require(\"./Listener\");\nObject.defineProperty(exports, \"Listener\", { enumerable: true, get: function () { return Listener_1.Listener; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.accessTokenIsExpired = exports.getExpiryDateOfAccessToken = void 0;\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\n// one minute\nconst EXPIRY_GRACE_PERIOD = 60000;\nfunction getExpiryMillis(token) {\n return (0, shared_utils_1.mapNullable)(token.expiresIn, _ => token.obtainmentTimestamp + _ * 1000 - EXPIRY_GRACE_PERIOD);\n}\n/**\n * Calculates the date when the access token will expire.\n *\n * A one-minute grace period is applied for smooth handling of API latency.\n *\n * May be `null`, in which case the token does not expire.\n * This can only be the case with very old Client IDs.\n *\n * @param token The access token.\n */\nfunction getExpiryDateOfAccessToken(token) {\n return (0, shared_utils_1.mapNullable)(getExpiryMillis(token), _ => new Date(_));\n}\nexports.getExpiryDateOfAccessToken = getExpiryDateOfAccessToken;\n/**\n * Calculates whether the given access token is expired.\n *\n * A one-minute grace period is applied for smooth handling of API latency.\n *\n * @param token The access token.\n */\nfunction accessTokenIsExpired(token) {\n var _a;\n return (_a = (0, shared_utils_1.mapNullable)(getExpiryMillis(token), _ => Date.now() > _)) !== null && _a !== void 0 ? _a : false;\n}\nexports.accessTokenIsExpired = accessTokenIsExpired;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InvalidTokenError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown whenever an invalid token is supplied.\n */\nclass InvalidTokenError extends common_1.CustomError {\n /** @private */\n constructor(options) {\n super('Invalid token supplied', options);\n }\n}\nexports.InvalidTokenError = InvalidTokenError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InvalidTokenTypeError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown whenever a different token type (user vs. app) is expected in the method you're calling.\n */\nclass InvalidTokenTypeError extends common_1.CustomError {\n}\nexports.InvalidTokenTypeError = InvalidTokenTypeError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRevokeTokenQuery = exports.createRefreshTokenQuery = exports.createGetAppTokenQuery = exports.createExchangeCodeQuery = void 0;\n/** @internal */\nfunction createExchangeCodeQuery(clientId, clientSecret, code, redirectUri) {\n return {\n grant_type: 'authorization_code',\n client_id: clientId,\n client_secret: clientSecret,\n code,\n redirect_uri: redirectUri\n };\n}\nexports.createExchangeCodeQuery = createExchangeCodeQuery;\n/** @internal */\nfunction createGetAppTokenQuery(clientId, clientSecret) {\n return {\n grant_type: 'client_credentials',\n client_id: clientId,\n client_secret: clientSecret\n };\n}\nexports.createGetAppTokenQuery = createGetAppTokenQuery;\n/** @internal */\nfunction createRefreshTokenQuery(clientId, clientSecret, refreshToken) {\n return {\n grant_type: 'refresh_token',\n client_id: clientId,\n client_secret: clientSecret,\n refresh_token: refreshToken\n };\n}\nexports.createRefreshTokenQuery = createRefreshTokenQuery;\n/** @internal */\nfunction createRevokeTokenQuery(clientId, accessToken) {\n return {\n client_id: clientId,\n token: accessToken\n };\n}\nexports.createRevokeTokenQuery = createRevokeTokenQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenInfo = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * Information about an access token.\n */\nlet TokenInfo = class TokenInfo extends common_1.DataObject {\n /** @internal */\n constructor(data) {\n super(data);\n this._obtainmentDate = new Date();\n }\n /**\n * The client ID.\n */\n get clientId() {\n return this[common_1.rawDataSymbol].client_id;\n }\n /**\n * The ID of the authenticated user.\n */\n get userId() {\n var _a;\n return (_a = this[common_1.rawDataSymbol].user_id) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * The name of the authenticated user.\n */\n get userName() {\n var _a;\n return (_a = this[common_1.rawDataSymbol].login) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * The scopes for which the token is valid.\n */\n get scopes() {\n return this[common_1.rawDataSymbol].scopes;\n }\n /**\n * The time when the token will expire.\n *\n * If this returns null, it means that the token never expires (happens with some old client IDs).\n */\n get expiryDate() {\n return (0, shared_utils_1.mapNullable)(this[common_1.rawDataSymbol].expires_in, v => new Date(this._obtainmentDate.getTime() + v * 1000));\n }\n};\nTokenInfo = tslib_1.__decorate([\n (0, common_1.rtfm)('auth', 'TokenInfo', 'clientId')\n], TokenInfo);\nexports.TokenInfo = TokenInfo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadAndCompareTokenInfo = exports.compareScopeSets = exports.compareScopes = exports.getValidTokenFromProviderForIntent = exports.getValidTokenFromProviderForUser = exports.getTokenInfo = exports.revokeToken = exports.refreshUserToken = exports.getAppToken = exports.exchangeCode = void 0;\nconst api_call_1 = require(\"@twurple/api-call\");\nconst InvalidTokenError_1 = require(\"./errors/InvalidTokenError\");\nconst InvalidTokenTypeError_1 = require(\"./errors/InvalidTokenTypeError\");\nconst helpers_external_1 = require(\"./helpers.external\");\nconst TokenInfo_1 = require(\"./TokenInfo\");\n/** @internal */\nfunction createAccessTokenFromData(data) {\n var _a, _b;\n return {\n accessToken: data.access_token,\n refreshToken: data.refresh_token || null,\n scope: (_a = data.scope) !== null && _a !== void 0 ? _a : [],\n expiresIn: (_b = data.expires_in) !== null && _b !== void 0 ? _b : null,\n obtainmentTimestamp: Date.now()\n };\n}\n/**\n * Gets an access token with your client credentials and an authorization code.\n *\n * @param clientId The client ID of your application.\n * @param clientSecret The client secret of your application.\n * @param code The authorization code.\n * @param redirectUri The redirect URI.\n *\n * This serves no real purpose here, but must still match one of the redirect URIs you configured in the Twitch Developer dashboard.\n */\nasync function exchangeCode(clientId, clientSecret, code, redirectUri) {\n return createAccessTokenFromData(await (0, api_call_1.callTwitchApi)({\n type: 'auth',\n url: 'token',\n method: 'POST',\n query: (0, helpers_external_1.createExchangeCodeQuery)(clientId, clientSecret, code, redirectUri)\n }));\n}\nexports.exchangeCode = exchangeCode;\n/**\n * Gets an app access token with your client credentials.\n *\n * @param clientId The client ID of your application.\n * @param clientSecret The client secret of your application.\n */\nasync function getAppToken(clientId, clientSecret) {\n return createAccessTokenFromData(await (0, api_call_1.callTwitchApi)({\n type: 'auth',\n url: 'token',\n method: 'POST',\n query: (0, helpers_external_1.createGetAppTokenQuery)(clientId, clientSecret)\n }));\n}\nexports.getAppToken = getAppToken;\n/**\n * Refreshes an expired access token with your client credentials and the refresh token that was given by the initial authentication.\n *\n * @param clientId The client ID of your application.\n * @param clientSecret The client secret of your application.\n * @param refreshToken The refresh token.\n */\nasync function refreshUserToken(clientId, clientSecret, refreshToken) {\n return createAccessTokenFromData(await (0, api_call_1.callTwitchApi)({\n type: 'auth',\n url: 'token',\n method: 'POST',\n query: (0, helpers_external_1.createRefreshTokenQuery)(clientId, clientSecret, refreshToken)\n }));\n}\nexports.refreshUserToken = refreshUserToken;\n/**\n * Revokes an access token.\n *\n * @param clientId The client ID of your application.\n * @param accessToken The access token.\n */\nasync function revokeToken(clientId, accessToken) {\n await (0, api_call_1.callTwitchApi)({\n type: 'auth',\n url: 'revoke',\n method: 'POST',\n query: (0, helpers_external_1.createRevokeTokenQuery)(clientId, accessToken)\n });\n}\nexports.revokeToken = revokeToken;\n/**\n * Gets information about an access token.\n *\n * @param accessToken The access token to get the information of.\n * @param clientId The client ID of your application.\n *\n * You need to obtain one using one of the [Twitch OAuth flows](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/).\n */\nasync function getTokenInfo(accessToken, clientId) {\n try {\n const data = await (0, api_call_1.callTwitchApi)({ type: 'auth', url: 'validate' }, clientId, accessToken);\n return new TokenInfo_1.TokenInfo(data);\n }\n catch (e) {\n if (e instanceof api_call_1.HttpStatusCodeError && e.statusCode === 401) {\n throw new InvalidTokenError_1.InvalidTokenError({ cause: e });\n }\n throw e;\n }\n}\nexports.getTokenInfo = getTokenInfo;\n/** @private */\nasync function getValidTokenFromProviderForUser(provider, userId, scopes, logger) {\n let lastTokenError = null;\n let foundUser = false;\n try {\n const accessToken = await provider.getAccessTokenForUser(userId, scopes);\n if (accessToken) {\n foundUser = true;\n // check validity\n const tokenInfo = await getTokenInfo(accessToken.accessToken);\n return { accessToken, tokenInfo };\n }\n }\n catch (e) {\n if (e instanceof InvalidTokenError_1.InvalidTokenError) {\n lastTokenError = e;\n }\n else {\n logger === null || logger === void 0 ? void 0 : logger.error(`Retrieving an access token failed: ${e.message}`);\n }\n }\n if (foundUser) {\n logger === null || logger === void 0 ? void 0 : logger.warn('No valid token available; trying to refresh');\n if (provider.refreshAccessTokenForUser) {\n try {\n const newToken = await provider.refreshAccessTokenForUser(userId);\n // check validity\n const tokenInfo = await getTokenInfo(newToken.accessToken);\n return { accessToken: newToken, tokenInfo };\n }\n catch (e) {\n if (e instanceof InvalidTokenError_1.InvalidTokenError) {\n lastTokenError = e;\n }\n else {\n logger === null || logger === void 0 ? void 0 : logger.error(`Refreshing the access token failed: ${e.message}`);\n }\n }\n }\n }\n throw lastTokenError !== null && lastTokenError !== void 0 ? lastTokenError : new Error('Could not retrieve a valid token');\n}\nexports.getValidTokenFromProviderForUser = getValidTokenFromProviderForUser;\n/** @private */\nasync function getValidTokenFromProviderForIntent(provider, intent, scopes, logger) {\n let lastTokenError = null;\n let foundUser = false;\n if (!provider.getAccessTokenForIntent) {\n throw new InvalidTokenTypeError_1.InvalidTokenTypeError(`This call requires an AuthProvider that supports intents.\nPlease use an auth provider that does, such as \\`RefreshingAuthProvider\\`.`);\n }\n try {\n const accessToken = await provider.getAccessTokenForIntent(intent, scopes);\n if (accessToken) {\n foundUser = true;\n // check validity\n const tokenInfo = await getTokenInfo(accessToken.accessToken);\n return { accessToken, tokenInfo };\n }\n }\n catch (e) {\n if (e instanceof InvalidTokenError_1.InvalidTokenError) {\n lastTokenError = e;\n }\n else {\n logger === null || logger === void 0 ? void 0 : logger.error(`Retrieving an access token failed: ${e.message}`);\n }\n }\n if (foundUser) {\n logger === null || logger === void 0 ? void 0 : logger.warn('No valid token available; trying to refresh');\n if (provider.refreshAccessTokenForIntent) {\n try {\n const newToken = await provider.refreshAccessTokenForIntent(intent);\n // check validity\n const tokenInfo = await getTokenInfo(newToken.accessToken);\n return { accessToken: newToken, tokenInfo };\n }\n catch (e) {\n if (e instanceof InvalidTokenError_1.InvalidTokenError) {\n lastTokenError = e;\n }\n else {\n logger === null || logger === void 0 ? void 0 : logger.error(`Refreshing the access token failed: ${e.message}`);\n }\n }\n }\n }\n throw lastTokenError !== null && lastTokenError !== void 0 ? lastTokenError : new Error('Could not retrieve a valid token');\n}\nexports.getValidTokenFromProviderForIntent = getValidTokenFromProviderForIntent;\nconst scopeEquivalencies = new Map([\n ['channel_commercial', ['channel:edit:commercial']],\n ['channel_editor', ['channel:manage:broadcast']],\n ['channel_read', ['channel:read:stream_key']],\n ['channel_subscriptions', ['channel:read:subscriptions']],\n ['user_blocks_read', ['user:read:blocked_users']],\n ['user_blocks_edit', ['user:manage:blocked_users']],\n ['user_follows_edit', ['user:edit:follows']],\n ['user_read', ['user:read:email']],\n ['user_subscriptions', ['user:read:subscriptions']],\n ['user:edit:broadcast', ['channel:manage:broadcast', 'channel:manage:extensions']]\n]);\n/**\n * Compares scopes for a non-upgradable {@link AuthProvider} instance.\n *\n * @param scopesToCompare The scopes to compare against.\n * @param requestedScopes The scopes you requested.\n */\nfunction compareScopes(scopesToCompare, requestedScopes) {\n if (requestedScopes === null || requestedScopes === void 0 ? void 0 : requestedScopes.length) {\n const scopes = new Set(scopesToCompare.flatMap(scope => { var _a; return [scope, ...((_a = scopeEquivalencies.get(scope)) !== null && _a !== void 0 ? _a : [])]; }));\n if (requestedScopes.every(scope => !scopes.has(scope))) {\n const scopesStr = requestedScopes.join(', ');\n throw new Error(`This token does not have any of the requested scopes (${scopesStr}) and can not be upgraded.\nIf you need dynamically upgrading scopes, please implement the AuthProvider interface accordingly:\n\n\\thttps://twurple.js.org/reference/auth/interfaces/AuthProvider.html`);\n }\n }\n}\nexports.compareScopes = compareScopes;\n/**\n * Compares scope sets for a non-upgradable {@link AuthProvider} instance.\n *\n * @param scopesToCompare The scopes to compare against.\n * @param requestedScopeSets The scope sets you requested.\n */\nfunction compareScopeSets(scopesToCompare, requestedScopeSets) {\n for (const requestedScopes of requestedScopeSets) {\n compareScopes(scopesToCompare, requestedScopes);\n }\n}\nexports.compareScopeSets = compareScopeSets;\n/**\n * Compares scopes for a non-upgradable `AuthProvider` instance, loading them from the token if necessary,\n * and returns them together with the user ID.\n *\n * @param clientId The client ID of your application.\n * @param token The access token.\n * @param userId The user ID that was already loaded.\n * @param loadedScopes The scopes that were already loaded.\n * @param requestedScopeSets The scope sets you requested.\n */\nasync function loadAndCompareTokenInfo(clientId, token, userId, loadedScopes, requestedScopeSets) {\n if ((requestedScopeSets === null || requestedScopeSets === void 0 ? void 0 : requestedScopeSets.length) || !userId) {\n const userInfo = await getTokenInfo(token, clientId);\n if (!userInfo.userId) {\n throw new Error('Trying to use an app access token as a user access token');\n }\n const scopesToCompare = loadedScopes !== null && loadedScopes !== void 0 ? loadedScopes : userInfo.scopes;\n if (requestedScopeSets) {\n compareScopeSets(scopesToCompare, requestedScopeSets.filter((val) => Boolean(val)));\n }\n return [scopesToCompare, userInfo.userId];\n }\n return [loadedScopes, userId];\n}\nexports.loadAndCompareTokenInfo = loadAndCompareTokenInfo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenFetcher = void 0;\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nclass TokenFetcher {\n constructor(executor) {\n this._newTokenScopeSets = [];\n this._newTokenPromise = null;\n this._queuedScopeSets = [];\n this._queueExecutor = null;\n this._queuePromise = null;\n this._executor = executor;\n }\n async fetch(...scopeSets) {\n var _a;\n const filteredScopeSets = scopeSets.filter((val) => Boolean(val));\n if (this._newTokenPromise) {\n if (!filteredScopeSets.length) {\n return await this._newTokenPromise;\n }\n if (this._queueExecutor) {\n this._queuedScopeSets.push(...filteredScopeSets);\n }\n else {\n this._queuedScopeSets = [...filteredScopeSets];\n }\n if (!this._queuePromise) {\n const { promise, resolve, reject } = (0, shared_utils_1.promiseWithResolvers)();\n this._queuePromise = promise;\n this._queueExecutor = async () => {\n var _a;\n if (!this._queuePromise) {\n return;\n }\n this._newTokenScopeSets = this._queuedScopeSets;\n this._queuedScopeSets = [];\n this._newTokenPromise = this._queuePromise;\n this._queuePromise = null;\n this._queueExecutor = null;\n try {\n resolve(await this._executor(this._newTokenScopeSets));\n }\n catch (e) {\n reject(e);\n }\n finally {\n this._newTokenPromise = null;\n this._newTokenScopeSets = [];\n (_a = this._queueExecutor) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n };\n }\n return await this._queuePromise;\n }\n this._newTokenScopeSets = [...filteredScopeSets];\n const { promise, resolve, reject } = (0, shared_utils_1.promiseWithResolvers)();\n this._newTokenPromise = promise;\n try {\n resolve(await this._executor(this._newTokenScopeSets));\n }\n catch (e) {\n reject(e);\n }\n finally {\n this._newTokenPromise = null;\n this._newTokenScopeSets = [];\n (_a = this._queueExecutor) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n return await promise;\n }\n}\nexports.TokenFetcher = TokenFetcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AppTokenAuthProvider = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst AccessToken_1 = require(\"../AccessToken\");\nconst helpers_1 = require(\"../helpers\");\nconst TokenFetcher_1 = require(\"../TokenFetcher\");\n/**\n * An auth provider that gets tokens using client credentials.\n */\nlet AppTokenAuthProvider = class AppTokenAuthProvider {\n /**\n * Creates a new auth provider to receive an application token with using the client ID and secret.\n *\n * @param clientId The client ID of your application.\n * @param clientSecret The client secret of your application.\n * @param impliedScopes The scopes that are implied for your application,\n * for example an extension that is allowed to access subscriptions.\n */\n constructor(clientId, clientSecret, impliedScopes = []) {\n this._clientId = clientId;\n this._clientSecret = clientSecret;\n this._impliedScopes = impliedScopes;\n this._fetcher = new TokenFetcher_1.TokenFetcher(async (scopes) => await this._fetch(scopes));\n }\n /**\n * The client ID.\n */\n get clientId() {\n return this._clientId;\n }\n /**\n * The scopes that are currently available using the access token.\n */\n get currentScopes() {\n return this._impliedScopes;\n }\n /**\n * Throws, because this auth provider does not support user authentication.\n */\n async getAccessTokenForUser() {\n throw new Error('Can not get user access token for AppTokenAuthProvider');\n }\n /**\n * Throws, because this auth provider does not support user authentication.\n */\n getCurrentScopesForUser() {\n throw new Error('Can not get user scopes for AppTokenAuthProvider');\n }\n /**\n * Fetches an app access token.\n */\n async getAnyAccessToken() {\n return await this._fetcher.fetch();\n }\n /**\n * Fetches an app access token.\n *\n * @param forceNew Whether to always get a new token, even if the old one is still deemed valid internally.\n */\n async getAppAccessToken(forceNew = false) {\n if (forceNew) {\n this._token = undefined;\n }\n return await this._fetcher.fetch();\n }\n async _fetch(scopeSets) {\n if (scopeSets.length > 0) {\n for (const scopes of scopeSets) {\n if (this._impliedScopes.length) {\n if (scopes.every(scope => !this._impliedScopes.includes(scope))) {\n throw new Error(`One of the scopes ${scopes.join(', ')} requested but only the scope ${this._impliedScopes.join(', ')} is implied`);\n }\n }\n else {\n throw new Error(`One of the scopes ${scopes.join(', ')} requested but the client credentials flow does not support scopes`);\n }\n }\n }\n if (!this._token || (0, AccessToken_1.accessTokenIsExpired)(this._token)) {\n return (this._token = await (0, helpers_1.getAppToken)(this._clientId, this._clientSecret));\n }\n return this._token;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], AppTokenAuthProvider.prototype, \"_clientSecret\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], AppTokenAuthProvider.prototype, \"_token\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], AppTokenAuthProvider.prototype, \"_fetcher\", void 0);\nAppTokenAuthProvider = tslib_1.__decorate([\n (0, common_1.rtfm)('auth', 'AppTokenAuthProvider', 'clientId')\n], AppTokenAuthProvider);\nexports.AppTokenAuthProvider = AppTokenAuthProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CachedRefreshFailureError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown whenever you try to execute an action in the context of a user\n * who is already known to have an invalid token saved in its {@link AuthProvider}.\n */\nclass CachedRefreshFailureError extends common_1.CustomError {\n constructor(userId) {\n super(`The user context for the user ${userId} has been disabled.\nThis happened because the access token became invalid (e.g. by expiry) and refreshing it failed (e.g. because the account's password was changed).\n\nUse .addUser(), .addUserForToken() or .addUserForCode() for the same user context to re-enable the user with a new, valid token.`);\n this.userId = userId;\n }\n}\nexports.CachedRefreshFailureError = CachedRefreshFailureError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IntermediateUserRemovalError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown whenever a user is removed from an {@link AuthProvider}\n * and at the same time you try to execute an action in that user's context.\n */\nclass IntermediateUserRemovalError extends common_1.CustomError {\n constructor(userId) {\n super(`User ${userId} was removed while trying to fetch a token.\n\nMake sure you're not executing any actions when you want to remove a user.`);\n this.userId = userId;\n }\n}\nexports.IntermediateUserRemovalError = IntermediateUserRemovalError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnknownIntentError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown when an intent is requested that was not recognized by the {@link AuthProvider}.\n */\nclass UnknownIntentError extends common_1.CustomError {\n /** @private */\n constructor(intent) {\n super(`Unknown intent: ${intent}`);\n this.intent = intent;\n }\n}\nexports.UnknownIntentError = UnknownIntentError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RefreshingAuthProvider = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst typed_event_emitter_1 = require(\"@d-fischer/typed-event-emitter\");\nconst common_1 = require(\"@twurple/common\");\nconst AccessToken_1 = require(\"../AccessToken\");\nconst CachedRefreshFailureError_1 = require(\"../errors/CachedRefreshFailureError\");\nconst IntermediateUserRemovalError_1 = require(\"../errors/IntermediateUserRemovalError\");\nconst InvalidTokenError_1 = require(\"../errors/InvalidTokenError\");\nconst InvalidTokenTypeError_1 = require(\"../errors/InvalidTokenTypeError\");\nconst UnknownIntentError_1 = require(\"../errors/UnknownIntentError\");\nconst helpers_1 = require(\"../helpers\");\nconst TokenFetcher_1 = require(\"../TokenFetcher\");\n/**\n * An auth provider with the ability to make use of refresh tokens,\n * automatically refreshing the access token whenever necessary.\n */\nlet RefreshingAuthProvider = class RefreshingAuthProvider extends typed_event_emitter_1.EventEmitter {\n /**\n * Creates a new auth provider based on the given one that can automatically\n * refresh access tokens.\n *\n * @param refreshConfig The information necessary to automatically refresh an access token.\n */\n constructor(refreshConfig) {\n var _a;\n super();\n /** @internal */ this._userAccessTokens = new Map();\n /** @internal */ this._userTokenFetchers = new Map();\n this._intentToUserId = new Map();\n this._userIdToIntents = new Map();\n this._cachedRefreshFailures = new Set();\n /**\n * Fires when a user token is refreshed.\n *\n * @param userId The ID of the user whose token was successfully refreshed.\n * @param token The refreshed token data.\n */\n this.onRefresh = this.registerEvent();\n /**\n * Fires when a user token fails to refresh.\n *\n * @param userId The ID of the user whose token wasn't successfully refreshed.\n */\n this.onRefreshFailure = this.registerEvent();\n this._clientId = refreshConfig.clientId;\n this._clientSecret = refreshConfig.clientSecret;\n this._redirectUri = refreshConfig.redirectUri;\n this._appImpliedScopes = (_a = refreshConfig.appImpliedScopes) !== null && _a !== void 0 ? _a : [];\n this._appTokenFetcher = new TokenFetcher_1.TokenFetcher(async (scopes) => await this._fetchAppToken(scopes));\n }\n /**\n * Adds the given user with their corresponding token to the provider.\n *\n * @param user The user to add.\n * @param initialToken The token for the user.\n * @param intents The intents to add to the user.\n *\n * Any intents that were already set before will be overwritten to point to this user instead.\n */\n addUser(user, initialToken, intents) {\n const userId = (0, common_1.extractUserId)(user);\n if (!initialToken.refreshToken) {\n throw new Error(`Trying to add user ${userId} without refresh token`);\n }\n this._cachedRefreshFailures.delete(userId);\n this._userAccessTokens.set(userId, {\n ...initialToken,\n userId\n });\n if (!this._userTokenFetchers.has(userId)) {\n this._userTokenFetchers.set(userId, new TokenFetcher_1.TokenFetcher(async (scopes) => await this._fetchUserToken(userId, scopes)));\n }\n if (intents) {\n this.addIntentsToUser(user, intents);\n }\n }\n /**\n * Figures out the user associated to the given token and adds them to the provider.\n *\n * If you already know the ID of the user you're adding,\n * consider using {@link RefreshingAuthProvider#addUser} instead.\n *\n * @param initialToken The token for the user.\n * @param intents The intents to add to the user.\n *\n * Any intents that were already set before will be overwritten to point to the associated user instead.\n */\n async addUserForToken(initialToken, intents) {\n let tokenWithInfo = null;\n if (initialToken.accessToken && !(0, AccessToken_1.accessTokenIsExpired)(initialToken)) {\n try {\n const tokenInfo = await (0, helpers_1.getTokenInfo)(initialToken.accessToken);\n tokenWithInfo = [initialToken, tokenInfo];\n }\n catch (e) {\n if (!(e instanceof InvalidTokenError_1.InvalidTokenError)) {\n throw e;\n }\n }\n }\n if (!tokenWithInfo) {\n if (!initialToken.refreshToken) {\n throw new InvalidTokenError_1.InvalidTokenError();\n }\n const refreshedToken = await (0, helpers_1.refreshUserToken)(this._clientId, this._clientSecret, initialToken.refreshToken);\n const tokenInfo = await (0, helpers_1.getTokenInfo)(refreshedToken.accessToken);\n this.emit(this.onRefresh, tokenInfo.userId, refreshedToken);\n tokenWithInfo = [refreshedToken, tokenInfo];\n }\n const [tokenToAdd, tokenInfo] = tokenWithInfo;\n if (!tokenInfo.userId) {\n throw new InvalidTokenTypeError_1.InvalidTokenTypeError('Could not determine a user ID for your token; you might be trying to disguise an app token as a user token.');\n }\n const token = tokenToAdd.scope\n ? tokenToAdd\n : {\n ...tokenToAdd,\n scope: tokenInfo.scopes\n };\n this.addUser(tokenInfo.userId, token, intents);\n return tokenInfo.userId;\n }\n /**\n * Gets an OAuth token from the given authorization code and adds the user to the provider.\n *\n * An authorization code can be obtained using the\n * [OAuth Authorization Code flow](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/#authorization-code-grant-flow).\n *\n * @param code The authorization code.\n * @param intents The intents to add to the user.\n *\n * Any intents that were already set before will be overwritten to point to the associated user instead.\n */\n async addUserForCode(code, intents) {\n if (!this._redirectUri) {\n throw new Error('This method requires you to pass a `redirectUri` as a configuration property');\n }\n const token = await (0, helpers_1.exchangeCode)(this._clientId, this._clientSecret, code, this._redirectUri);\n return await this.addUserForToken(token, intents);\n }\n /**\n * Checks whether a user was added to the provider.\n *\n * @param user The user to check.\n */\n hasUser(user) {\n return this._userTokenFetchers.has((0, common_1.extractUserId)(user));\n }\n /**\n * Removes a user from the provider.\n *\n * This also makes all intents this user was assigned to unusable.\n *\n * @param user The user to remove.\n */\n removeUser(user) {\n const userId = (0, common_1.extractUserId)(user);\n if (this._userIdToIntents.has(userId)) {\n const intents = this._userIdToIntents.get(userId);\n for (const intent of intents) {\n this._intentToUserId.delete(intent);\n }\n this._userIdToIntents.delete(userId);\n }\n this._userAccessTokens.delete(userId);\n this._userTokenFetchers.delete(userId);\n this._cachedRefreshFailures.delete(userId);\n }\n /**\n * Adds intents to a user.\n *\n * Any intents that were already set before will be overwritten to point to this user instead.\n *\n * @param user The user to add intents to.\n * @param intents The intents to add to the user.\n */\n addIntentsToUser(user, intents) {\n const userId = (0, common_1.extractUserId)(user);\n if (!this._userAccessTokens.has(userId)) {\n throw new Error('Trying to add intents to a user that was not added to this provider');\n }\n for (const intent of intents) {\n if (this._intentToUserId.has(intent)) {\n this._userIdToIntents.get(this._intentToUserId.get(intent)).delete(intent);\n }\n this._intentToUserId.set(intent, userId);\n if (this._userIdToIntents.has(userId)) {\n this._userIdToIntents.get(userId).add(intent);\n }\n else {\n this._userIdToIntents.set(userId, new Set([intent]));\n }\n }\n }\n /**\n * Gets all intents assigned to the given user.\n *\n * @param user The user to get intents of.\n */\n getIntentsForUser(user) {\n const userId = (0, common_1.extractUserId)(user);\n return this._userIdToIntents.has(userId) ? Array.from(this._userIdToIntents.get(userId)) : [];\n }\n /**\n * Removes all given intents from any user who they might be assigned to.\n *\n * Intents that have not been assigned are silently ignored.\n *\n * @param intents The intents to remove.\n */\n removeIntents(intents) {\n var _a;\n for (const intent of intents) {\n if (this._intentToUserId.has(intent)) {\n const userId = this._intentToUserId.get(intent);\n (_a = this._userIdToIntents.get(userId)) === null || _a === void 0 ? void 0 : _a.delete(intent);\n this._intentToUserId.delete(intent);\n }\n }\n }\n /**\n * Requests that the provider fetches a new token from Twitch for the given user.\n *\n * @param user The user to refresh the token for.\n */\n async refreshAccessTokenForUser(user) {\n const userId = (0, common_1.extractUserId)(user);\n if (this._cachedRefreshFailures.has(userId)) {\n throw new CachedRefreshFailureError_1.CachedRefreshFailureError(userId);\n }\n const previousTokenData = this._userAccessTokens.get(userId);\n if (!previousTokenData) {\n throw new Error('Trying to refresh token for user that was not added to the provider');\n }\n const tokenData = await this._refreshUserTokenWithCallback(userId, previousTokenData.refreshToken);\n this._checkIntermediateUserRemoval(userId);\n this._userAccessTokens.set(userId, {\n ...tokenData,\n userId\n });\n this.emit(this.onRefresh, userId, tokenData);\n return {\n ...tokenData,\n userId\n };\n }\n /**\n * Requests that the provider fetches a new token from Twitch for the given intent.\n *\n * @param intent The intent to refresh the token for.\n */\n async refreshAccessTokenForIntent(intent) {\n if (!this._intentToUserId.has(intent)) {\n throw new UnknownIntentError_1.UnknownIntentError(intent);\n }\n const userId = this._intentToUserId.get(intent);\n return await this.refreshAccessTokenForUser(userId);\n }\n /**\n * The client ID.\n */\n get clientId() {\n return this._clientId;\n }\n /**\n * Gets the scopes that are currently available using the access token.\n *\n * @param user The user to get the current scopes for.\n */\n getCurrentScopesForUser(user) {\n var _a;\n const token = this._userAccessTokens.get((0, common_1.extractUserId)(user));\n if (!token) {\n throw new Error('Trying to get scopes for user that was not added to the provider');\n }\n return (_a = token.scope) !== null && _a !== void 0 ? _a : [];\n }\n /**\n * Gets an access token for the given user.\n *\n * @param user The user to get an access token for.\n * @param scopeSets The requested scopes.\n */\n async getAccessTokenForUser(user, ...scopeSets) {\n const userId = (0, common_1.extractUserId)(user);\n const fetcher = this._userTokenFetchers.get(userId);\n if (!fetcher) {\n return null;\n }\n if (this._cachedRefreshFailures.has(userId)) {\n throw new CachedRefreshFailureError_1.CachedRefreshFailureError(userId);\n }\n return await fetcher.fetch(...scopeSets);\n }\n /**\n * Fetches a token for a user identified by the given intent.\n *\n * @param intent The intent to fetch a token for.\n * @param scopeSets The requested scopes.\n */\n async getAccessTokenForIntent(intent, ...scopeSets) {\n if (!this._intentToUserId.has(intent)) {\n return null;\n }\n const userId = this._intentToUserId.get(intent);\n const newToken = await this.getAccessTokenForUser(userId, ...scopeSets);\n if (!newToken) {\n throw new common_1.HellFreezesOverError(`Found intent ${intent} corresponding to user ID ${userId} but no token was found`);\n }\n return {\n ...newToken,\n userId\n };\n }\n /**\n * Fetches any token to use with a request that supports both user and app tokens,\n * i.e. public data relating to a user.\n *\n * @param user The user.\n */\n async getAnyAccessToken(user) {\n if (user) {\n const userId = (0, common_1.extractUserId)(user);\n if (this._userAccessTokens.has(userId)) {\n const token = await this.getAccessTokenForUser(userId);\n if (!token) {\n throw new common_1.HellFreezesOverError(`Token for user ID ${userId} exists but nothing was returned by getAccessTokenForUser`);\n }\n return {\n ...token,\n userId\n };\n }\n }\n return await this.getAppAccessToken();\n }\n /**\n * Fetches an app access token.\n *\n * @param forceNew Whether to always get a new token, even if the old one is still deemed valid internally.\n */\n async getAppAccessToken(forceNew = false) {\n if (forceNew) {\n this._appAccessToken = undefined;\n }\n return await this._appTokenFetcher.fetch(...this._appImpliedScopes.map(scopes => [scopes]));\n }\n _checkIntermediateUserRemoval(userId) {\n if (!this._userTokenFetchers.has(userId)) {\n this._cachedRefreshFailures.delete(userId);\n throw new IntermediateUserRemovalError_1.IntermediateUserRemovalError(userId);\n }\n }\n async _fetchUserToken(userId, scopeSets) {\n const previousToken = this._userAccessTokens.get(userId);\n if (!previousToken) {\n throw new Error('Trying to get token for user that was not added to the provider');\n }\n // if we don't have a current token, we just pass this and refresh right away\n if (previousToken.accessToken && !(0, AccessToken_1.accessTokenIsExpired)(previousToken)) {\n try {\n // don't create new object on every get\n if (previousToken.scope) {\n (0, helpers_1.compareScopeSets)(previousToken.scope, scopeSets);\n return previousToken;\n }\n const [scope = []] = await (0, helpers_1.loadAndCompareTokenInfo)(this._clientId, previousToken.accessToken, userId, previousToken.scope, scopeSets);\n const newToken = {\n ...previousToken,\n scope\n };\n this._checkIntermediateUserRemoval(userId);\n this._userAccessTokens.set(userId, newToken);\n return newToken;\n }\n catch (e) {\n // if loading scopes failed, ignore InvalidTokenError and proceed with refreshing\n if (!(e instanceof InvalidTokenError_1.InvalidTokenError)) {\n throw e;\n }\n }\n }\n this._checkIntermediateUserRemoval(userId);\n const refreshedToken = await this.refreshAccessTokenForUser(userId);\n (0, helpers_1.compareScopeSets)(refreshedToken.scope, scopeSets);\n return refreshedToken;\n }\n async _refreshUserTokenWithCallback(userId, refreshToken) {\n try {\n return await (0, helpers_1.refreshUserToken)(this.clientId, this._clientSecret, refreshToken);\n }\n catch (e) {\n this._cachedRefreshFailures.add(userId);\n this.emit(this.onRefreshFailure, userId);\n throw e;\n }\n }\n async _fetchAppToken(scopeSets) {\n if (scopeSets.length > 0) {\n for (const scopes of scopeSets) {\n if (this._appImpliedScopes.length) {\n if (scopes.every(scope => !this._appImpliedScopes.includes(scope))) {\n throw new Error(`One of the scopes ${scopes.join(', ')} requested but only the scope ${this._appImpliedScopes.join(', ')} is implied`);\n }\n }\n else {\n throw new Error(`One of the scopes ${scopes.join(', ')} requested but the client credentials flow does not support scopes`);\n }\n }\n }\n if (!this._appAccessToken || (0, AccessToken_1.accessTokenIsExpired)(this._appAccessToken)) {\n return await this._refreshAppToken();\n }\n return this._appAccessToken;\n }\n async _refreshAppToken() {\n return (this._appAccessToken = await (0, helpers_1.getAppToken)(this._clientId, this._clientSecret));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], RefreshingAuthProvider.prototype, \"_clientSecret\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], RefreshingAuthProvider.prototype, \"_userAccessTokens\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], RefreshingAuthProvider.prototype, \"_userTokenFetchers\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], RefreshingAuthProvider.prototype, \"_appAccessToken\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], RefreshingAuthProvider.prototype, \"_appTokenFetcher\", void 0);\nRefreshingAuthProvider = tslib_1.__decorate([\n (0, common_1.rtfm)('auth', 'RefreshingAuthProvider', 'clientId')\n], RefreshingAuthProvider);\nexports.RefreshingAuthProvider = RefreshingAuthProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StaticAuthProvider = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst helpers_1 = require(\"../helpers\");\n/**\n * An auth provider that always returns the same initially given credentials.\n *\n * You are advised to roll your own auth provider that can handle scope upgrades,\n * or to plan ahead and supply only access tokens that account for all scopes\n * you will ever need.\n */\nlet StaticAuthProvider = class StaticAuthProvider {\n /**\n * Creates a new auth provider with static credentials.\n *\n * @param clientId The client ID of your application.\n * @param accessToken The access token to provide.\n *\n * You need to obtain one using one of the [Twitch OAuth flows](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/).\n * @param scopes The scopes the supplied token has.\n *\n * If this argument is given, the scopes need to be correct, or weird things might happen. If it's not (i.e. it's `undefined`), we fetch the correct scopes for you.\n *\n * If you can't exactly say which scopes your token has, don't use this parameter/set it to `undefined`.\n */\n constructor(clientId, accessToken, scopes) {\n this._clientId = clientId || '';\n this._accessToken =\n typeof accessToken === 'string'\n ? {\n accessToken,\n refreshToken: null,\n scope: scopes !== null && scopes !== void 0 ? scopes : [],\n expiresIn: null,\n obtainmentTimestamp: Date.now()\n }\n : accessToken;\n this._scopes = scopes;\n }\n /**\n * The client ID.\n */\n get clientId() {\n return this._clientId;\n }\n /**\n * Gets the static access token.\n *\n * If the current access token does not have the requested scopes, this method throws.\n * This makes supplying an access token with the correct scopes from the beginning necessary.\n *\n * @param user Ignored.\n * @param scopeSets The requested scopes.\n */\n async getAccessTokenForUser(user, ...scopeSets) {\n return await this._getAccessToken(scopeSets);\n }\n /**\n * Gets the static access token.\n *\n * If the current access token does not have the requested scopes, this method throws.\n * This makes supplying an access token with the correct scopes from the beginning necessary.\n *\n * @param intent Ignored.\n * @param scopeSets The requested scopes.\n */\n async getAccessTokenForIntent(intent, ...scopeSets) {\n return await this._getAccessToken(scopeSets);\n }\n /**\n * Gets the static access token.\n */\n async getAnyAccessToken() {\n return await this._getAccessToken();\n }\n /**\n * The scopes that are currently available using the access token.\n */\n getCurrentScopesForUser() {\n var _a;\n return (_a = this._scopes) !== null && _a !== void 0 ? _a : [];\n }\n async _getAccessToken(requestedScopeSets) {\n const [scopes, userId] = await (0, helpers_1.loadAndCompareTokenInfo)(this._clientId, this._accessToken.accessToken, this._userId, this._scopes, requestedScopeSets);\n this._scopes = scopes;\n this._userId = userId;\n return { ...this._accessToken, userId };\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], StaticAuthProvider.prototype, \"_clientId\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], StaticAuthProvider.prototype, \"_accessToken\", void 0);\nStaticAuthProvider = tslib_1.__decorate([\n (0, common_1.rtfm)('auth', 'StaticAuthProvider', 'clientId')\n], StaticAuthProvider);\nexports.StaticAuthProvider = StaticAuthProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnknownIntentError = exports.InvalidTokenTypeError = exports.InvalidTokenError = exports.IntermediateUserRemovalError = exports.CachedRefreshFailureError = exports.StaticAuthProvider = exports.RefreshingAuthProvider = exports.AppTokenAuthProvider = exports.TokenInfo = exports.TokenFetcher = exports.revokeToken = exports.refreshUserToken = exports.getValidTokenFromProviderForIntent = exports.getValidTokenFromProviderForUser = exports.getTokenInfo = exports.getAppToken = exports.exchangeCode = exports.getExpiryDateOfAccessToken = exports.accessTokenIsExpired = void 0;\nvar AccessToken_1 = require(\"./AccessToken\");\nObject.defineProperty(exports, \"accessTokenIsExpired\", { enumerable: true, get: function () { return AccessToken_1.accessTokenIsExpired; } });\nObject.defineProperty(exports, \"getExpiryDateOfAccessToken\", { enumerable: true, get: function () { return AccessToken_1.getExpiryDateOfAccessToken; } });\nvar helpers_1 = require(\"./helpers\");\nObject.defineProperty(exports, \"exchangeCode\", { enumerable: true, get: function () { return helpers_1.exchangeCode; } });\nObject.defineProperty(exports, \"getAppToken\", { enumerable: true, get: function () { return helpers_1.getAppToken; } });\nObject.defineProperty(exports, \"getTokenInfo\", { enumerable: true, get: function () { return helpers_1.getTokenInfo; } });\nObject.defineProperty(exports, \"getValidTokenFromProviderForUser\", { enumerable: true, get: function () { return helpers_1.getValidTokenFromProviderForUser; } });\nObject.defineProperty(exports, \"getValidTokenFromProviderForIntent\", { enumerable: true, get: function () { return helpers_1.getValidTokenFromProviderForIntent; } });\nObject.defineProperty(exports, \"refreshUserToken\", { enumerable: true, get: function () { return helpers_1.refreshUserToken; } });\nObject.defineProperty(exports, \"revokeToken\", { enumerable: true, get: function () { return helpers_1.revokeToken; } });\nvar TokenFetcher_1 = require(\"./TokenFetcher\");\nObject.defineProperty(exports, \"TokenFetcher\", { enumerable: true, get: function () { return TokenFetcher_1.TokenFetcher; } });\nvar TokenInfo_1 = require(\"./TokenInfo\");\nObject.defineProperty(exports, \"TokenInfo\", { enumerable: true, get: function () { return TokenInfo_1.TokenInfo; } });\nvar AppTokenAuthProvider_1 = require(\"./providers/AppTokenAuthProvider\");\nObject.defineProperty(exports, \"AppTokenAuthProvider\", { enumerable: true, get: function () { return AppTokenAuthProvider_1.AppTokenAuthProvider; } });\nvar RefreshingAuthProvider_1 = require(\"./providers/RefreshingAuthProvider\");\nObject.defineProperty(exports, \"RefreshingAuthProvider\", { enumerable: true, get: function () { return RefreshingAuthProvider_1.RefreshingAuthProvider; } });\nvar StaticAuthProvider_1 = require(\"./providers/StaticAuthProvider\");\nObject.defineProperty(exports, \"StaticAuthProvider\", { enumerable: true, get: function () { return StaticAuthProvider_1.StaticAuthProvider; } });\nvar CachedRefreshFailureError_1 = require(\"./errors/CachedRefreshFailureError\");\nObject.defineProperty(exports, \"CachedRefreshFailureError\", { enumerable: true, get: function () { return CachedRefreshFailureError_1.CachedRefreshFailureError; } });\nvar IntermediateUserRemovalError_1 = require(\"./errors/IntermediateUserRemovalError\");\nObject.defineProperty(exports, \"IntermediateUserRemovalError\", { enumerable: true, get: function () { return IntermediateUserRemovalError_1.IntermediateUserRemovalError; } });\nvar InvalidTokenError_1 = require(\"./errors/InvalidTokenError\");\nObject.defineProperty(exports, \"InvalidTokenError\", { enumerable: true, get: function () { return InvalidTokenError_1.InvalidTokenError; } });\nvar InvalidTokenTypeError_1 = require(\"./errors/InvalidTokenTypeError\");\nObject.defineProperty(exports, \"InvalidTokenTypeError\", { enumerable: true, get: function () { return InvalidTokenTypeError_1.InvalidTokenTypeError; } });\nvar UnknownIntentError_1 = require(\"./errors/UnknownIntentError\");\nObject.defineProperty(exports, \"UnknownIntentError\", { enumerable: true, get: function () { return UnknownIntentError_1.UnknownIntentError; } });\n", "function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n", "var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n", "module.exports = require('./lib/retry');", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createBitsLeaderboardQuery = void 0;\n/** @internal */\nfunction createBitsLeaderboardQuery(params = {}) {\n const { count = 10, period = 'all', startDate, contextUserId } = params;\n return {\n count: count.toString(),\n period,\n started_at: startDate === null || startDate === void 0 ? void 0 : startDate.toISOString(),\n user_id: contextUserId\n };\n}\nexports.createBitsLeaderboardQuery = createBitsLeaderboardQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\n/** @private */\nclass BaseApi {\n /** @internal */\n constructor(client) {\n this._client = client;\n }\n /** @internal */\n _getUserContextIdWithDefault(userId) {\n var _a;\n return (_a = this._client._getUserIdFromRequestContext(userId)) !== null && _a !== void 0 ? _a : userId;\n }\n}\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], BaseApi.prototype, \"_client\", void 0);\nexports.BaseApi = BaseApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBitsLeaderboardEntry = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A Bits leaderboard entry.\n */\nlet HelixBitsLeaderboardEntry = class HelixBitsLeaderboardEntry extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user on the leaderboard.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user on the leaderboard.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user on the leaderboard.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * The position of the user on the leaderboard.\n */\n get rank() {\n return this[common_1.rawDataSymbol].rank;\n }\n /**\n * The amount of bits used in the given period of time.\n */\n get amount() {\n return this[common_1.rawDataSymbol].score;\n }\n /**\n * Gets the user of entry on the leaderboard.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixBitsLeaderboardEntry.prototype, \"_client\", void 0);\nHelixBitsLeaderboardEntry = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixBitsLeaderboardEntry', 'userId')\n], HelixBitsLeaderboardEntry);\nexports.HelixBitsLeaderboardEntry = HelixBitsLeaderboardEntry;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBitsLeaderboard = void 0;\nconst tslib_1 = require(\"tslib\");\nconst cache_decorators_1 = require(\"@d-fischer/cache-decorators\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixBitsLeaderboardEntry_1 = require(\"./HelixBitsLeaderboardEntry\");\n/**\n * A leaderboard where the users who used the most bits to a broadcaster are listed.\n */\nlet HelixBitsLeaderboard = class HelixBitsLeaderboard extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The entries of the leaderboard.\n */\n get entries() {\n return this[common_1.rawDataSymbol].data.map(entry => new HelixBitsLeaderboardEntry_1.HelixBitsLeaderboardEntry(entry, this._client));\n }\n /**\n * The total amount of people on the requested leaderboard.\n */\n get totalCount() {\n return this[common_1.rawDataSymbol].total;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixBitsLeaderboard.prototype, \"_client\", void 0);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], HelixBitsLeaderboard.prototype, \"entries\", null);\nHelixBitsLeaderboard = tslib_1.__decorate([\n cache_decorators_1.Cacheable,\n (0, common_1.rtfm)('api', 'HelixBitsLeaderboard')\n], HelixBitsLeaderboard);\nexports.HelixBitsLeaderboard = HelixBitsLeaderboard;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixCheermoteList = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A list of cheermotes you can use globally or in a specific channel, depending on how you fetched the list.\n *\n * @inheritDoc\n */\nlet HelixCheermoteList = class HelixCheermoteList extends common_1.DataObject {\n /** @internal */\n constructor(data) {\n super((0, shared_utils_1.indexBy)(data, action => action.prefix.toLowerCase()));\n }\n /**\n * Gets the URL and color needed to properly represent a cheer of the given amount of bits with the given prefix.\n *\n * @param name The name/prefix of the cheermote.\n * @param bits The amount of bits cheered.\n * @param format The format of the cheermote you want to request.\n */\n getCheermoteDisplayInfo(name, bits, format) {\n name = name.toLowerCase();\n const { background, state, scale } = format;\n const tiers = this[common_1.rawDataSymbol][name].tiers;\n const correctTier = tiers.sort((a, b) => b.min_bits - a.min_bits).find(tier => tier.min_bits <= bits);\n if (!correctTier) {\n throw new common_1.HellFreezesOverError(`Cheermote \"${name}\" does not have an applicable tier for ${bits} bits`);\n }\n return {\n url: correctTier.images[background][state][scale],\n color: correctTier.color\n };\n }\n /**\n * Gets all possible cheermote names.\n */\n getPossibleNames() {\n return Object.keys(this[common_1.rawDataSymbol]);\n }\n};\nHelixCheermoteList = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixCheermoteList')\n], HelixCheermoteList);\nexports.HelixCheermoteList = HelixCheermoteList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBitsApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst bits_external_1 = require(\"../../interfaces/endpoints/bits.external\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixBitsLeaderboard_1 = require(\"./HelixBitsLeaderboard\");\nconst HelixCheermoteList_1 = require(\"./HelixCheermoteList\");\n/**\n * The Helix API methods that deal with bits.\n *\n * Can be accessed using `client.bits` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const leaderboard = await api.bits.getLeaderboard({ period: 'day' });\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Bits\n */\nlet HelixBitsApi = class HelixBitsApi extends BaseApi_1.BaseApi {\n /**\n * Gets a bits leaderboard of your channel.\n *\n * @param broadcaster The user to get the leaderboard of.\n * @param params\n * @expandParams\n */\n async getLeaderboard(broadcaster, params = {}) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'bits/leaderboard',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['bits:read'],\n query: (0, bits_external_1.createBitsLeaderboardQuery)(params)\n });\n return new HelixBitsLeaderboard_1.HelixBitsLeaderboard(result, this._client);\n }\n /**\n * Gets all available cheermotes.\n *\n * @param broadcaster The broadcaster to include custom cheermotes of.\n *\n * If not given, only get global cheermotes.\n */\n async getCheermotes(broadcaster) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'bits/cheermotes',\n userId: (0, shared_utils_1.mapOptional)(broadcaster, common_1.extractUserId),\n query: (0, shared_utils_1.mapOptional)(broadcaster, api_call_1.createBroadcasterQuery)\n });\n return new HelixCheermoteList_1.HelixCheermoteList(result.data);\n }\n};\nHelixBitsApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixBitsApi')\n], HelixBitsApi);\nexports.HelixBitsApi = HelixBitsApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFollowedChannelQuery = exports.createChannelFollowerQuery = exports.createChannelVipUpdateQuery = exports.createChannelCommercialBody = exports.createChannelUpdateBody = void 0;\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createChannelUpdateBody(data) {\n var _a;\n return {\n game_id: data.gameId,\n broadcaster_language: data.language,\n title: data.title,\n delay: (_a = data.delay) === null || _a === void 0 ? void 0 : _a.toString(),\n tags: data.tags,\n content_classification_labels: data.contentClassificationLabels,\n is_branded_content: data.isBrandedContent\n };\n}\nexports.createChannelUpdateBody = createChannelUpdateBody;\n/** @internal */\nfunction createChannelCommercialBody(broadcaster, length) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n length: length\n };\n}\nexports.createChannelCommercialBody = createChannelCommercialBody;\n/** @internal */\nfunction createChannelVipUpdateQuery(broadcaster, user) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n user_id: (0, common_1.extractUserId)(user)\n };\n}\nexports.createChannelVipUpdateQuery = createChannelVipUpdateQuery;\n/** @internal */\nfunction createChannelFollowerQuery(broadcaster, user) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n user_id: (0, shared_utils_1.mapOptional)(user, common_1.extractUserId)\n };\n}\nexports.createChannelFollowerQuery = createChannelFollowerQuery;\n/** @internal */\nfunction createFollowedChannelQuery(user, broadcaster) {\n return {\n broadcaster_id: (0, shared_utils_1.mapOptional)(broadcaster, common_1.extractUserId),\n user_id: (0, common_1.extractUserId)(user)\n };\n}\nexports.createFollowedChannelQuery = createFollowedChannelQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createChannelUsersCheckQuery = exports.createGetByIdsQuery = exports.createModeratorActionQuery = exports.createUserQuery = exports.createSingleKeyQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createSingleKeyQuery(key, value) {\n return { [key]: value };\n}\nexports.createSingleKeyQuery = createSingleKeyQuery;\n/** @internal */\nfunction createUserQuery(user) {\n return {\n user_id: (0, common_1.extractUserId)(user)\n };\n}\nexports.createUserQuery = createUserQuery;\n/** @internal */\nfunction createModeratorActionQuery(broadcaster, moderatorId) {\n return {\n broadcaster_id: broadcaster,\n moderator_id: moderatorId\n };\n}\nexports.createModeratorActionQuery = createModeratorActionQuery;\n/** @internal */\nfunction createGetByIdsQuery(broadcaster, rewardIds) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n id: rewardIds\n };\n}\nexports.createGetByIdsQuery = createGetByIdsQuery;\n/** @internal */\nfunction createChannelUsersCheckQuery(broadcaster, users) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n user_id: users.map(common_1.extractUserId)\n };\n}\nexports.createChannelUsersCheckQuery = createChannelUsersCheckQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixUserRelation = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A relation of anything with a user.\n */\nlet HelixUserRelation = class HelixUserRelation extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user.\n */\n get id() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user.\n */\n get name() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user.\n */\n get displayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets additional information about the user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixUserRelation.prototype, \"_client\", void 0);\nHelixUserRelation = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixUserRelation', 'id')\n], HelixUserRelation);\nexports.HelixUserRelation = HelixUserRelation;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixRequestBatcher = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\n/** @internal */\nclass HelixRequestBatcher {\n constructor(_callOptions, _queryParamName, _matchKey, client, _mapper, _limitPerRequest = 100) {\n this._callOptions = _callOptions;\n this._queryParamName = _queryParamName;\n this._matchKey = _matchKey;\n this._mapper = _mapper;\n this._limitPerRequest = _limitPerRequest;\n this._requestedIds = [];\n this._requestResolversById = new Map();\n this._waitTimer = null;\n this._client = client;\n this._delay = client._batchDelay;\n }\n async request(id) {\n const { promise, resolve, reject } = (0, shared_utils_1.promiseWithResolvers)();\n if (!this._requestedIds.includes(id)) {\n this._requestedIds.push(id);\n }\n if (this._requestResolversById.has(id)) {\n this._requestResolversById.get(id).push({ resolve, reject });\n }\n else {\n this._requestResolversById.set(id, [{ resolve, reject }]);\n }\n if (this._waitTimer) {\n clearTimeout(this._waitTimer);\n this._waitTimer = null;\n }\n if (this._requestedIds.length >= this._limitPerRequest) {\n void this._handleBatch(this._requestedIds.splice(0, this._limitPerRequest));\n }\n else {\n this._waitTimer = setTimeout(() => {\n void this._handleBatch(this._requestedIds.splice(0, this._limitPerRequest));\n }, this._delay);\n }\n return await promise;\n }\n async _handleBatch(ids) {\n var _a;\n try {\n const { data } = await this._doRequest(ids);\n const dataById = (0, shared_utils_1.indexBy)(data, this._matchKey);\n for (const id of ids) {\n for (const resolver of (_a = this._requestResolversById.get(id)) !== null && _a !== void 0 ? _a : []) {\n if (Object.prototype.hasOwnProperty.call(dataById, id)) {\n resolver.resolve(this._mapper(dataById[id]));\n }\n else {\n resolver.resolve(null);\n }\n }\n this._requestResolversById.delete(id);\n }\n }\n catch (e) {\n await Promise.all(ids.map(async (id) => {\n var _a, _b;\n try {\n const result = await this._doRequest([id]);\n for (const resolver of (_a = this._requestResolversById.get(id)) !== null && _a !== void 0 ? _a : []) {\n resolver.resolve(result.data.length ? this._mapper(result.data[0]) : null);\n }\n }\n catch (e_) {\n for (const resolver of (_b = this._requestResolversById.get(id)) !== null && _b !== void 0 ? _b : []) {\n resolver.reject(e_);\n }\n }\n this._requestResolversById.delete(id);\n }));\n }\n }\n async _doRequest(ids) {\n return await this._client.callApi({\n type: 'helix',\n ...this._callOptions,\n query: {\n ...this._callOptions.query,\n [this._queryParamName]: ids\n }\n });\n }\n}\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixRequestBatcher.prototype, \"_client\", void 0);\nexports.HelixRequestBatcher = HelixRequestBatcher;\n", "\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPaginatedRequest = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nif (!Object.prototype.hasOwnProperty.call(Symbol, 'asyncIterator')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unnecessary-condition,@typescript-eslint/no-unsafe-member-access\n Symbol.asyncIterator = (_a = Symbol.asyncIterator) !== null && _a !== void 0 ? _a : Symbol.for('Symbol.asyncIterator');\n}\n/**\n * Represents a request to the new Twitch API (Helix) that utilizes a cursor to paginate through its results.\n *\n * Aside from the methods described below, you can also utilize the async iterator using `for await .. of`:\n *\n * ```ts\n * const result = client.videos.getVideosByUserPaginated('125328655');\n * for await (const video of result) {\n * console.log(video.title);\n * }\n * ```\n */\nlet HelixPaginatedRequest = class HelixPaginatedRequest {\n /** @internal */\n constructor(_callOptions, client, _mapper, _limitPerPage = 100) {\n this._callOptions = _callOptions;\n this._mapper = _mapper;\n this._limitPerPage = _limitPerPage;\n /** @internal */ this._isFinished = false;\n this._client = client;\n }\n /**\n * The last fetched page of data associated to the requested resource.\n *\n * Only works with {@link HelixPaginatedRequest#getNext}} and not with any other methods of data fetching.\n */\n get current() {\n var _a;\n return (_a = this._currentData) === null || _a === void 0 ? void 0 : _a.data;\n }\n /**\n * Gets the next available page of data associated to the requested resource, or an empty array if there are no more available pages.\n */\n async getNext() {\n var _a;\n if (this._isFinished) {\n return [];\n }\n const result = await this._fetchData();\n // should never be null, but in practice is sometimes\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!((_a = result.data) === null || _a === void 0 ? void 0 : _a.length)) {\n this._isFinished = true;\n return [];\n }\n return this._processResult(result);\n }\n /**\n * Gets all data associated to the requested resource.\n *\n * Be aware that this makes multiple calls to the Twitch API. Due to this, you might be more suspectible to rate limits.\n *\n * Also be aware that this resets the internal cursor, so avoid using this and {@link HelixPaginatedRequest#getNext}} together.\n */\n async getAll() {\n this.reset();\n const result = [];\n do {\n const data = await this.getNext();\n if (!data.length) {\n break;\n }\n result.push(...data);\n } while (this._currentCursor);\n this.reset();\n return result;\n }\n /**\n * Gets the current cursor.\n *\n * Only useful if you want to make manual requests to the API.\n */\n get currentCursor() {\n return this._currentCursor;\n }\n /**\n * Resets the internal cursor.\n *\n * This will make {@link HelixPaginatedRequest#getNext}} start from the first page again.\n */\n reset() {\n this._currentCursor = undefined;\n this._isFinished = false;\n this._currentData = undefined;\n }\n async *[Symbol.asyncIterator]() {\n this.reset();\n while (true) {\n const data = await this.getNext();\n if (!data.length) {\n break;\n }\n yield* data[Symbol.iterator]();\n }\n }\n /** @internal */\n async _fetchData(additionalOptions = {}) {\n return await this._client.callApi({\n type: 'helix',\n ...this._callOptions,\n ...additionalOptions,\n query: {\n ...this._callOptions.query,\n after: this._currentCursor,\n first: this._limitPerPage.toString(),\n ...additionalOptions.query\n }\n });\n }\n /** @internal */\n _processResult(result) {\n this._currentCursor = result.pagination ? result.pagination.cursor : undefined;\n if (this._currentCursor === undefined) {\n this._isFinished = true;\n }\n this._currentData = result;\n return result.data.reduce((acc, elem) => {\n const mapped = this._mapper(elem);\n return Array.isArray(mapped) ? [...acc, ...mapped] : [...acc, mapped];\n }, []);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixPaginatedRequest.prototype, \"_client\", void 0);\nHelixPaginatedRequest = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPaginatedRequest')\n], HelixPaginatedRequest);\nexports.HelixPaginatedRequest = HelixPaginatedRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPaginatedRequestWithTotal = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPaginatedRequest_1 = require(\"./HelixPaginatedRequest\");\n/**\n * A special case of {@link HelixPaginatedRequest} with support for fetching the total number of entities, whenever an endpoint supports it.\n *\n * @inheritDoc\n */\nlet HelixPaginatedRequestWithTotal = class HelixPaginatedRequestWithTotal extends HelixPaginatedRequest_1.HelixPaginatedRequest {\n /**\n * Gets the total number of entities existing in the queried result set.\n */\n async getTotalCount() {\n var _a;\n const data = (_a = this._currentData) !== null && _a !== void 0 ? _a : (await this._fetchData({ query: { after: undefined } }));\n return data.total;\n }\n};\nHelixPaginatedRequestWithTotal = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPaginatedRequestWithTotal')\n], HelixPaginatedRequestWithTotal);\nexports.HelixPaginatedRequestWithTotal = HelixPaginatedRequestWithTotal;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPaginatedResultWithTotal = exports.createPaginatedResult = void 0;\n/** @internal */ function createPaginatedResult(response, type, client) {\n var _a;\n let dataCache = undefined;\n return {\n get data() {\n var _a, _b;\n return (dataCache !== null && dataCache !== void 0 ? dataCache : (dataCache = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.map(data => new type(data, client))) !== null && _b !== void 0 ? _b : []));\n },\n cursor: (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.cursor\n };\n}\nexports.createPaginatedResult = createPaginatedResult;\n/** @internal */ function createPaginatedResultWithTotal(response, type, client) {\n let dataCache = undefined;\n return {\n get data() {\n var _a, _b;\n return (dataCache !== null && dataCache !== void 0 ? dataCache : (dataCache = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.map(data => new type(data, client))) !== null && _b !== void 0 ? _b : []));\n },\n cursor: response.pagination.cursor,\n total: response.total\n };\n}\nexports.createPaginatedResultWithTotal = createPaginatedResultWithTotal;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPaginationQuery = void 0;\n/** @internal */\nfunction createPaginationQuery({ after, before, limit } = {}) {\n return {\n after,\n before,\n first: limit === null || limit === void 0 ? void 0 : limit.toString()\n };\n}\nexports.createPaginationQuery = createPaginationQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannel = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A Twitch channel.\n */\nlet HelixChannel = class HelixChannel extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the channel.\n */\n get id() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the channel.\n */\n get name() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the channel.\n */\n get displayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster of the channel.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The language of the channel.\n */\n get language() {\n return this[common_1.rawDataSymbol].broadcaster_language;\n }\n /**\n * The ID of the game currently played on the channel.\n */\n get gameId() {\n return this[common_1.rawDataSymbol].game_id;\n }\n /**\n * The name of the game currently played on the channel.\n */\n get gameName() {\n return this[common_1.rawDataSymbol].game_name;\n }\n /**\n * Gets information about the game that is being played on the stream.\n */\n async getGame() {\n return this[common_1.rawDataSymbol].game_id\n ? (0, common_1.checkRelationAssertion)(await this._client.games.getGameById(this[common_1.rawDataSymbol].game_id))\n : null;\n }\n /**\n * The title of the channel.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The stream delay of the channel, in seconds.\n *\n * If you didn't request this with broadcaster access, this is always zero.\n */\n get delay() {\n return this[common_1.rawDataSymbol].delay;\n }\n /**\n * The tags applied to the channel.\n */\n get tags() {\n return this[common_1.rawDataSymbol].tags;\n }\n /**\n * The content classification labels applied to the channel.\n */\n get contentClassificationLabels() {\n return this[common_1.rawDataSymbol].content_classification_labels;\n }\n /**\n * Whether the channel currently displays branded content (as specified by the broadcaster).\n */\n get isBrandedContent() {\n return this[common_1.rawDataSymbol].is_branded_content;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChannel.prototype, \"_client\", void 0);\nHelixChannel = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannel', 'id')\n], HelixChannel);\nexports.HelixChannel = HelixChannel;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannelEditor = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * An editor of a previously given channel.\n */\nlet HelixChannelEditor = class HelixChannelEditor extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The display name of the user.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets additional information about the user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * The date when the user was given editor status.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChannelEditor.prototype, \"_client\", void 0);\nHelixChannelEditor = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannelEditor', 'userId')\n], HelixChannelEditor);\nexports.HelixChannelEditor = HelixChannelEditor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannelFollower = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * Represents a user that follows a channel.\n */\nlet HelixChannelFollower = class HelixChannelFollower extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets additional information about the user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * The date when the user followed the broadcaster.\n */\n get followDate() {\n return new Date(this[common_1.rawDataSymbol].followed_at);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChannelFollower.prototype, \"_client\", void 0);\nHelixChannelFollower = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannelFollower', 'userId')\n], HelixChannelFollower);\nexports.HelixChannelFollower = HelixChannelFollower;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixFollowedChannel = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * Represents a broadcaster that a user follows.\n */\nlet HelixFollowedChannel = class HelixFollowedChannel extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets additional information about the broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The date when the user followed the broadcaster.\n */\n get followDate() {\n return new Date(this[common_1.rawDataSymbol].followed_at);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixFollowedChannel.prototype, \"_client\", void 0);\nHelixFollowedChannel = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixFollowedChannel', 'broadcasterId')\n], HelixFollowedChannel);\nexports.HelixFollowedChannel = HelixFollowedChannel;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannelApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst channel_external_1 = require(\"../../interfaces/endpoints/channel.external\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst HelixUserRelation_1 = require(\"../../relations/HelixUserRelation\");\nconst HelixRequestBatcher_1 = require(\"../../utils/HelixRequestBatcher\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedRequestWithTotal_1 = require(\"../../utils/pagination/HelixPaginatedRequestWithTotal\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixChannel_1 = require(\"./HelixChannel\");\nconst HelixChannelEditor_1 = require(\"./HelixChannelEditor\");\nconst HelixChannelFollower_1 = require(\"./HelixChannelFollower\");\nconst HelixFollowedChannel_1 = require(\"./HelixFollowedChannel\");\n/**\n * The Helix API methods that deal with channels.\n *\n * Can be accessed using `client.channels` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const channel = await api.channels.getChannelInfoById('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Channels\n */\nlet HelixChannelApi = class HelixChannelApi extends BaseApi_1.BaseApi {\n constructor() {\n super(...arguments);\n /** @internal */\n this._getChannelByIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'channels'\n }, 'broadcaster_id', 'broadcaster_id', this._client, (data) => new HelixChannel_1.HelixChannel(data, this._client));\n }\n /**\n * Gets the channel data for the given user.\n *\n * @param user The user you want to get channel info for.\n */\n async getChannelInfoById(user) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channels',\n userId,\n query: (0, api_call_1.createBroadcasterQuery)(userId)\n });\n return (0, shared_utils_1.mapNullable)(result.data[0], data => new HelixChannel_1.HelixChannel(data, this._client));\n }\n /**\n * Gets the channel data for the given user, batching multiple calls into fewer requests as the API allows.\n *\n * @param user The user you want to get channel info for.\n */\n async getChannelInfoByIdBatched(user) {\n return await this._getChannelByIdBatcher.request((0, common_1.extractUserId)(user));\n }\n /**\n * Gets the channel data for the given users.\n *\n * @param users The users you want to get channel info for.\n */\n async getChannelInfoByIds(users) {\n const userIds = users.map(common_1.extractUserId);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channels',\n query: (0, generic_external_1.createSingleKeyQuery)('broadcaster_id', userIds)\n });\n return result.data.map(data => new HelixChannel_1.HelixChannel(data, this._client));\n }\n /**\n * Updates the given user's channel data.\n *\n * @param user The user you want to update channel info for.\n * @param data The channel info to set.\n */\n async updateChannelInfo(user, data) {\n await this._client.callApi({\n type: 'helix',\n url: 'channels',\n method: 'PATCH',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['channel:manage:broadcast'],\n query: (0, api_call_1.createBroadcasterQuery)(user),\n jsonBody: (0, channel_external_1.createChannelUpdateBody)(data)\n });\n }\n /**\n * Starts a commercial on a channel.\n *\n * @param broadcaster The broadcaster on whose channel the commercial is started.\n * @param length The length of the commercial, in seconds.\n */\n async startChannelCommercial(broadcaster, length) {\n await this._client.callApi({\n type: 'helix',\n url: 'channels/commercial',\n method: 'POST',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:edit:commercial'],\n jsonBody: (0, channel_external_1.createChannelCommercialBody)(broadcaster, length)\n });\n }\n /**\n * Gets a list of users who have editor permissions on your channel.\n *\n * @param broadcaster The broadcaster to retreive the editors for.\n */\n async getChannelEditors(broadcaster) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channels/editors',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:editors'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return result.data.map(data => new HelixChannelEditor_1.HelixChannelEditor(data, this._client));\n }\n /**\n * Gets a list of VIPs in a channel.\n *\n * @param broadcaster The owner of the channel to get VIPs for.\n * @param pagination\n *\n * @expandParams\n */\n async getVips(broadcaster, pagination) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'channels/vips',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:vips', 'channel:manage:vips'],\n query: {\n ...(0, api_call_1.createBroadcasterQuery)(broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(response, HelixUserRelation_1.HelixUserRelation, this._client);\n }\n /**\n * Creates a paginator for VIPs in a channel.\n *\n * @param broadcaster The owner of the channel to get VIPs for.\n */\n getVipsPaginated(broadcaster) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'channels/vips',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:vips', 'channel:manage:vips'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n }, this._client, data => new HelixUserRelation_1.HelixUserRelation(data, this._client));\n }\n /**\n * Checks the VIP status of a list of users in a channel.\n *\n * @param broadcaster The owner of the channel to check VIP status in.\n * @param users The users to check.\n */\n async checkVipForUsers(broadcaster, users) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'channels/vips',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:vips', 'channel:manage:vips'],\n query: (0, generic_external_1.createChannelUsersCheckQuery)(broadcaster, users)\n });\n return response.data.map(data => new HelixUserRelation_1.HelixUserRelation(data, this._client));\n }\n /**\n * Checks the VIP status of a user in a channel.\n *\n * @param broadcaster The owner of the channel to check VIP status in.\n * @param user The user to check.\n */\n async checkVipForUser(broadcaster, user) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this.checkVipForUsers(broadcaster, [userId]);\n return result.some(rel => rel.id === userId);\n }\n /**\n * Adds a VIP to the broadcaster\u2019s chat room.\n *\n * @param broadcaster The broadcaster that\u2019s granting VIP status to the user. This ID must match the user ID in the access token.\n * @param user The user to add as a VIP in the broadcaster\u2019s chat room.\n */\n async addVip(broadcaster, user) {\n await this._client.callApi({\n type: 'helix',\n url: 'channels/vips',\n method: 'POST',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:vips'],\n query: (0, channel_external_1.createChannelVipUpdateQuery)(broadcaster, user)\n });\n }\n /**\n * Removes a VIP from the broadcaster\u2019s chat room.\n *\n * @param broadcaster The broadcaster that\u2019s removing VIP status from the user. This ID must match the user ID in the access token.\n * @param user The user to remove as a VIP from the broadcaster\u2019s chat room.\n */\n async removeVip(broadcaster, user) {\n await this._client.callApi({\n type: 'helix',\n url: 'channels/vips',\n method: 'DELETE',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:vips'],\n query: (0, channel_external_1.createChannelVipUpdateQuery)(broadcaster, user)\n });\n }\n /**\n * Gets the total number of users that follow the specified broadcaster.\n *\n * @param broadcaster The broadcaster you want to get the number of followers of.\n */\n async getChannelFollowerCount(broadcaster) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channels/followers',\n method: 'GET',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: {\n ...(0, channel_external_1.createChannelFollowerQuery)(broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)({ limit: 1 })\n }\n });\n return result.total;\n }\n /**\n * Gets a list of users that follow the specified broadcaster.\n * You can also use this endpoint to see whether a specific user follows the broadcaster.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster you want to get a list of followers for.\n * @param user An optional user to determine if this user follows the broadcaster.\n * If specified, the response contains this user if they follow the broadcaster.\n * If not specified, the response contains all users that follow the broadcaster.\n * @param pagination\n *\n * @expandParams\n */\n async getChannelFollowers(broadcaster, user, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channels/followers',\n method: 'GET',\n userId: (0, common_1.extractUserId)(broadcaster),\n canOverrideScopedUserContext: true,\n scopes: ['moderator:read:followers'],\n query: {\n ...(0, channel_external_1.createChannelFollowerQuery)(broadcaster, user),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixChannelFollower_1.HelixChannelFollower, this._client);\n }\n /**\n * Creates a paginator for users that follow the specified broadcaster.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster for whom you are getting a list of followers.\n *\n * @expandParams\n */\n getChannelFollowersPaginated(broadcaster) {\n return new HelixPaginatedRequestWithTotal_1.HelixPaginatedRequestWithTotal({\n url: 'channels/followers',\n method: 'GET',\n userId: (0, common_1.extractUserId)(broadcaster),\n canOverrideScopedUserContext: true,\n scopes: ['moderator:read:followers'],\n query: (0, channel_external_1.createChannelFollowerQuery)(broadcaster)\n }, this._client, data => new HelixChannelFollower_1.HelixChannelFollower(data, this._client));\n }\n /**\n * Gets a list of broadcasters that the specified user follows.\n * You can also use this endpoint to see whether the user follows a specific broadcaster.\n *\n * @param user The user that's getting a list of followed channels.\n * This ID must match the user ID in the access token.\n * @param broadcaster An optional broadcaster to determine if the user follows this broadcaster.\n * If specified, the response contains this broadcaster if the user follows them.\n * If not specified, the response contains all broadcasters that the user follows.\n * @param pagination\n * @returns\n */\n async getFollowedChannels(user, broadcaster, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channels/followed',\n method: 'GET',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:follows'],\n query: {\n ...(0, channel_external_1.createFollowedChannelQuery)(user, broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixFollowedChannel_1.HelixFollowedChannel, this._client);\n }\n /**\n * Creates a paginator for broadcasters that the specified user follows.\n *\n * @param user The user that's getting a list of followed channels.\n * The token of this user will be used to get the list of followed channels.\n * @param broadcaster An optional broadcaster to determine if the user follows this broadcaster.\n * If specified, the response contains this broadcaster if the user follows them.\n * If not specified, the response contains all broadcasters that the user follows.\n * @returns\n */\n getFollowedChannelsPaginated(user, broadcaster) {\n return new HelixPaginatedRequestWithTotal_1.HelixPaginatedRequestWithTotal({\n url: 'channels/followed',\n method: 'GET',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:follows'],\n query: (0, channel_external_1.createFollowedChannelQuery)(user, broadcaster)\n }, this._client, data => new HelixFollowedChannel_1.HelixFollowedChannel(data, this._client));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChannelApi.prototype, \"_getChannelByIdBatcher\", void 0);\nHelixChannelApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannelApi')\n], HelixChannelApi);\nexports.HelixChannelApi = HelixChannelApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRedemptionsForBroadcasterQuery = exports.createRewardRedemptionsByIdsQuery = exports.createCustomRewardBody = exports.createCustomRewardChangeQuery = exports.createCustomRewardsQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createCustomRewardsQuery(broadcaster, onlyManageable) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n only_manageable_rewards: onlyManageable === null || onlyManageable === void 0 ? void 0 : onlyManageable.toString()\n };\n}\nexports.createCustomRewardsQuery = createCustomRewardsQuery;\n/** @internal */\nfunction createCustomRewardChangeQuery(broadcaster, rewardId) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n id: rewardId\n };\n}\nexports.createCustomRewardChangeQuery = createCustomRewardChangeQuery;\n/** @internal */\nfunction createCustomRewardBody(data) {\n var _a, _b, _c;\n const result = {\n title: data.title,\n cost: data.cost,\n prompt: data.prompt,\n background_color: data.backgroundColor,\n is_enabled: data.isEnabled,\n is_user_input_required: data.userInputRequired,\n should_redemptions_skip_request_queue: data.autoFulfill\n };\n if (data.maxRedemptionsPerStream !== undefined) {\n result.is_max_per_stream_enabled = !!data.maxRedemptionsPerStream;\n result.max_per_stream = (_a = data.maxRedemptionsPerStream) !== null && _a !== void 0 ? _a : 0;\n }\n if (data.maxRedemptionsPerUserPerStream !== undefined) {\n result.is_max_per_user_per_stream_enabled = !!data.maxRedemptionsPerUserPerStream;\n result.max_per_user_per_stream = (_b = data.maxRedemptionsPerUserPerStream) !== null && _b !== void 0 ? _b : 0;\n }\n if (data.globalCooldown !== undefined) {\n result.is_global_cooldown_enabled = !!data.globalCooldown;\n result.global_cooldown_seconds = (_c = data.globalCooldown) !== null && _c !== void 0 ? _c : 0;\n }\n if ('isPaused' in data) {\n result.is_paused = data.isPaused;\n }\n return result;\n}\nexports.createCustomRewardBody = createCustomRewardBody;\n/** @internal */\nfunction createRewardRedemptionsByIdsQuery(broadcaster, rewardId, redemptionIds) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n reward_id: rewardId,\n id: redemptionIds\n };\n}\nexports.createRewardRedemptionsByIdsQuery = createRewardRedemptionsByIdsQuery;\n/** @internal */\nfunction createRedemptionsForBroadcasterQuery(broadcaster, rewardId, status, filter) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n reward_id: rewardId,\n status,\n sort: filter.newestFirst ? 'NEWEST' : 'OLDEST'\n };\n}\nexports.createRedemptionsForBroadcasterQuery = createRedemptionsForBroadcasterQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixCustomReward = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A custom Channel Points reward.\n */\nlet HelixCustomReward = class HelixCustomReward extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the reward.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the broadcaster the reward belongs to.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster the reward belongs to.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster the reward belongs to.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the reward's broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * Gets the URL of the image of the reward in the given scale.\n *\n * @param scale The scale of the image.\n */\n getImageUrl(scale) {\n var _a, _b;\n const urlProp = `url_${scale}x`;\n return (_b = (_a = this[common_1.rawDataSymbol].image) === null || _a === void 0 ? void 0 : _a[urlProp]) !== null && _b !== void 0 ? _b : this[common_1.rawDataSymbol].default_image[urlProp];\n }\n /**\n * The background color of the reward.\n */\n get backgroundColor() {\n return this[common_1.rawDataSymbol].background_color;\n }\n /**\n * Whether the reward is enabled (shown to users).\n */\n get isEnabled() {\n return this[common_1.rawDataSymbol].is_enabled;\n }\n /**\n * The channel points cost of the reward.\n */\n get cost() {\n return this[common_1.rawDataSymbol].cost;\n }\n /**\n * The title of the reward.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The prompt shown to users when redeeming the reward.\n */\n get prompt() {\n return this[common_1.rawDataSymbol].prompt;\n }\n /**\n * Whether the reward requires user input to be redeemed.\n */\n get userInputRequired() {\n return this[common_1.rawDataSymbol].is_user_input_required;\n }\n /**\n * The maximum number of redemptions of the reward per stream. `null` means no limit.\n */\n get maxRedemptionsPerStream() {\n return this[common_1.rawDataSymbol].max_per_stream_setting.is_enabled\n ? this[common_1.rawDataSymbol].max_per_stream_setting.max_per_stream\n : null;\n }\n /**\n * The maximum number of redemptions of the reward per stream for each user. `null` means no limit.\n */\n get maxRedemptionsPerUserPerStream() {\n return this[common_1.rawDataSymbol].max_per_user_per_stream_setting.is_enabled\n ? this[common_1.rawDataSymbol].max_per_user_per_stream_setting.max_per_user_per_stream\n : null;\n }\n /**\n * The cooldown between two redemptions of the reward, in seconds. `null` means no cooldown.\n */\n get globalCooldown() {\n return this[common_1.rawDataSymbol].global_cooldown_setting.is_enabled\n ? this[common_1.rawDataSymbol].global_cooldown_setting.global_cooldown_seconds\n : null;\n }\n /**\n * Whether the reward is paused. If true, users can't redeem it.\n */\n get isPaused() {\n return this[common_1.rawDataSymbol].is_paused;\n }\n /**\n * Whether the reward is currently in stock.\n */\n get isInStock() {\n return this[common_1.rawDataSymbol].is_in_stock;\n }\n /**\n * How often the reward was already redeemed this stream.\n *\n * Only available when the stream is live and `maxRedemptionsPerStream` is set. Otherwise, this is `null`.\n */\n get redemptionsThisStream() {\n return this[common_1.rawDataSymbol].redemptions_redeemed_current_stream;\n }\n /**\n * Whether redemptions should automatically be marked as fulfilled.\n */\n get autoFulfill() {\n return this[common_1.rawDataSymbol].should_redemptions_skip_request_queue;\n }\n /**\n * The time when the cooldown ends. `null` means there is currently no cooldown.\n */\n get cooldownExpiryDate() {\n return this[common_1.rawDataSymbol].cooldown_expires_at ? new Date(this[common_1.rawDataSymbol].cooldown_expires_at) : null;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixCustomReward.prototype, \"_client\", void 0);\nHelixCustomReward = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixCustomReward', 'id')\n], HelixCustomReward);\nexports.HelixCustomReward = HelixCustomReward;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixCustomRewardRedemption = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A redemption of a custom Channel Points reward.\n */\nlet HelixCustomRewardRedemption = class HelixCustomRewardRedemption extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the redemption.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the broadcaster where the reward was redeemed.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster where the reward was redeemed.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster where the reward was redeemed.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster where the reward was redeemed.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The ID of the user that redeemed the reward.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user that redeemed the reward.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user that redeemed the reward.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets more information about the user that redeemed the reward.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * The text the user wrote when redeeming the reward.\n */\n get userInput() {\n return this[common_1.rawDataSymbol].user_input;\n }\n /**\n * Whether the redemption was fulfilled.\n */\n get isFulfilled() {\n return this[common_1.rawDataSymbol].status === 'FULFILLED';\n }\n /**\n * Whether the redemption was canceled.\n */\n get isCanceled() {\n return this[common_1.rawDataSymbol].status === 'CANCELED';\n }\n /**\n * The date and time when the reward was redeemed.\n */\n get redemptionDate() {\n return new Date(this[common_1.rawDataSymbol].redeemed_at);\n }\n /**\n * The ID of the reward that was redeemed.\n */\n get rewardId() {\n return this[common_1.rawDataSymbol].reward.id;\n }\n /**\n * The title of the reward that was redeemed.\n */\n get rewardTitle() {\n return this[common_1.rawDataSymbol].reward.title;\n }\n /**\n * The prompt of the reward that was redeemed.\n */\n get rewardPrompt() {\n return this[common_1.rawDataSymbol].reward.prompt;\n }\n /**\n * The cost of the reward that was redeemed.\n */\n get rewardCost() {\n return this[common_1.rawDataSymbol].reward.cost;\n }\n /**\n * Gets more information about the reward that was redeemed.\n */\n async getReward() {\n return (0, common_1.checkRelationAssertion)(await this._client.channelPoints.getCustomRewardById(this[common_1.rawDataSymbol].broadcaster_id, this[common_1.rawDataSymbol].reward.id));\n }\n /**\n * Updates the redemption's status.\n *\n * @param newStatus The status the redemption should have.\n */\n async updateStatus(newStatus) {\n const result = await this._client.channelPoints.updateRedemptionStatusByIds(this[common_1.rawDataSymbol].broadcaster_id, this[common_1.rawDataSymbol].reward.id, [this[common_1.rawDataSymbol].id], newStatus);\n return result[0];\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixCustomRewardRedemption.prototype, \"_client\", void 0);\nHelixCustomRewardRedemption = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixCustomRewardRedemption', 'id')\n], HelixCustomRewardRedemption);\nexports.HelixCustomRewardRedemption = HelixCustomRewardRedemption;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannelPointsApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst channelPoints_external_1 = require(\"../../interfaces/endpoints/channelPoints.external\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixCustomReward_1 = require(\"./HelixCustomReward\");\nconst HelixCustomRewardRedemption_1 = require(\"./HelixCustomRewardRedemption\");\n/**\n * The Helix API methods that deal with channel points.\n *\n * Can be accessed using `client.channelPoints` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const rewards = await api.channelPoints.getCustomRewards('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Channel points\n */\nlet HelixChannelPointsApi = class HelixChannelPointsApi extends BaseApi_1.BaseApi {\n /**\n * Gets all custom rewards for the given broadcaster.\n *\n * @param broadcaster The broadcaster to get the rewards for.\n * @param onlyManageable Whether to only get rewards that can be managed by the API.\n */\n async getCustomRewards(broadcaster, onlyManageable) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:redemptions', 'channel:manage:redemptions'],\n query: (0, channelPoints_external_1.createCustomRewardsQuery)(broadcaster, onlyManageable)\n });\n return result.data.map(data => new HelixCustomReward_1.HelixCustomReward(data, this._client));\n }\n /**\n * Gets custom rewards by IDs.\n *\n * @param broadcaster The broadcaster to get the rewards for.\n * @param rewardIds The IDs of the rewards.\n */\n async getCustomRewardsByIds(broadcaster, rewardIds) {\n if (!rewardIds.length) {\n return [];\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:redemptions', 'channel:manage:redemptions'],\n query: (0, generic_external_1.createGetByIdsQuery)(broadcaster, rewardIds)\n });\n return result.data.map(data => new HelixCustomReward_1.HelixCustomReward(data, this._client));\n }\n /**\n * Gets a custom reward by ID.\n *\n * @param broadcaster The broadcaster to get the reward for.\n * @param rewardId The ID of the reward.\n */\n async getCustomRewardById(broadcaster, rewardId) {\n const rewards = await this.getCustomRewardsByIds(broadcaster, [rewardId]);\n return rewards.length ? rewards[0] : null;\n }\n /**\n * Creates a new custom reward.\n *\n * @param broadcaster The broadcaster to create the reward for.\n * @param data The reward data.\n *\n * @expandParams\n */\n async createCustomReward(broadcaster, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards',\n method: 'POST',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:redemptions'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster),\n jsonBody: (0, channelPoints_external_1.createCustomRewardBody)(data)\n });\n return new HelixCustomReward_1.HelixCustomReward(result.data[0], this._client);\n }\n /**\n * Updates a custom reward.\n *\n * @param broadcaster The broadcaster to update the reward for.\n * @param rewardId The ID of the reward.\n * @param data The reward data.\n */\n async updateCustomReward(broadcaster, rewardId, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards',\n method: 'PATCH',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:redemptions'],\n query: (0, channelPoints_external_1.createCustomRewardChangeQuery)(broadcaster, rewardId),\n jsonBody: (0, channelPoints_external_1.createCustomRewardBody)(data)\n });\n return new HelixCustomReward_1.HelixCustomReward(result.data[0], this._client);\n }\n /**\n * Deletes a custom reward.\n *\n * @param broadcaster The broadcaster to delete the reward for.\n * @param rewardId The ID of the reward.\n */\n async deleteCustomReward(broadcaster, rewardId) {\n await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards',\n method: 'DELETE',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:redemptions'],\n query: (0, channelPoints_external_1.createCustomRewardChangeQuery)(broadcaster, rewardId)\n });\n }\n /**\n * Gets custom reward redemptions by IDs.\n *\n * @param broadcaster The broadcaster to get the redemptions for.\n * @param rewardId The ID of the reward.\n * @param redemptionIds The IDs of the redemptions.\n */\n async getRedemptionsByIds(broadcaster, rewardId, redemptionIds) {\n if (!redemptionIds.length) {\n return [];\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards/redemptions',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:redemptions', 'channel:manage:redemptions'],\n query: (0, channelPoints_external_1.createRewardRedemptionsByIdsQuery)(broadcaster, rewardId, redemptionIds)\n });\n return result.data.map(data => new HelixCustomRewardRedemption_1.HelixCustomRewardRedemption(data, this._client));\n }\n /**\n * Gets a custom reward redemption by ID.\n *\n * @param broadcaster The broadcaster to get the redemption for.\n * @param rewardId The ID of the reward.\n * @param redemptionId The ID of the redemption.\n */\n async getRedemptionById(broadcaster, rewardId, redemptionId) {\n const redemptions = await this.getRedemptionsByIds(broadcaster, rewardId, [redemptionId]);\n return redemptions.length ? redemptions[0] : null;\n }\n /**\n * Gets custom reward redemptions for the given broadcaster.\n *\n * @param broadcaster The broadcaster to get the redemptions for.\n * @param rewardId The ID of the reward.\n * @param status The status of the redemptions to get.\n * @param filter\n *\n * @expandParams\n */\n async getRedemptionsForBroadcaster(broadcaster, rewardId, status, filter) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards/redemptions',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:redemptions', 'channel:manage:redemptions'],\n query: {\n ...(0, channelPoints_external_1.createRedemptionsForBroadcasterQuery)(broadcaster, rewardId, status, filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixCustomRewardRedemption_1.HelixCustomRewardRedemption, this._client);\n }\n /**\n * Creates a paginator for custom reward redemptions for the given broadcaster.\n *\n * @param broadcaster The broadcaster to get the redemptions for.\n * @param rewardId The ID of the reward.\n * @param status The status of the redemptions to get.\n * @param filter\n *\n * @expandParams\n */\n getRedemptionsForBroadcasterPaginated(broadcaster, rewardId, status, filter) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'channel_points/custom_rewards/redemptions',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:redemptions', 'channel:manage:redemptions'],\n query: (0, channelPoints_external_1.createRedemptionsForBroadcasterQuery)(broadcaster, rewardId, status, filter)\n }, this._client, data => new HelixCustomRewardRedemption_1.HelixCustomRewardRedemption(data, this._client), 50);\n }\n /**\n * Updates the status of the given redemptions by IDs.\n *\n * @param broadcaster The broadcaster to update the redemptions for.\n * @param rewardId The ID of the reward.\n * @param redemptionIds The IDs of the redemptions to update.\n * @param status The status to set for the redemptions.\n */\n async updateRedemptionStatusByIds(broadcaster, rewardId, redemptionIds, status) {\n if (!redemptionIds.length) {\n return [];\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'channel_points/custom_rewards/redemptions',\n method: 'PATCH',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:redemptions'],\n query: (0, channelPoints_external_1.createRewardRedemptionsByIdsQuery)(broadcaster, rewardId, redemptionIds),\n jsonBody: {\n status\n }\n });\n return result.data.map(data => new HelixCustomRewardRedemption_1.HelixCustomRewardRedemption(data, this._client));\n }\n};\nHelixChannelPointsApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannelPointsApi')\n], HelixChannelPointsApi);\nexports.HelixChannelPointsApi = HelixChannelPointsApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixCharityCampaignAmount = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * An object representing monetary amount and currency information for charity donations/goals.\n */\nlet HelixCharityCampaignAmount = class HelixCharityCampaignAmount extends common_1.DataObject {\n /**\n * The monetary amount. The amount is specified in the currency\u2019s minor unit.\n * For example, the minor units for USD is cents, so if the amount is $5.50 USD, `value` is set to 550.\n */\n get value() {\n return this[common_1.rawDataSymbol].value;\n }\n /**\n * The number of decimal places used by the currency. For example, USD uses two decimal places.\n * Use this number to translate `value` from minor units to major units by using the formula:\n *\n * `value / 10^decimalPlaces`\n */\n get decimalPlaces() {\n return this[common_1.rawDataSymbol].decimal_places;\n }\n /**\n * The localized monetary amount based on the value and the decimal places of the currency.\n * For example, the minor units for USD is cents which uses two decimal places, so if `value` is 550, `localizedValue` is set to 5.50.\n */\n get localizedValue() {\n return this.value / 10 ** this.decimalPlaces;\n }\n /**\n * The ISO-4217 three-letter currency code that identifies the type of currency in `value`.\n */\n get currency() {\n return this[common_1.rawDataSymbol].currency;\n }\n};\nHelixCharityCampaignAmount = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixCharityCampaignAmount')\n], HelixCharityCampaignAmount);\nexports.HelixCharityCampaignAmount = HelixCharityCampaignAmount;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixCharityCampaign = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixCharityCampaignAmount_1 = require(\"./HelixCharityCampaignAmount\");\n/**\n * A charity campaign in a Twitch channel.\n */\nlet HelixCharityCampaign = class HelixCharityCampaign extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * An ID that identifies the charity campaign.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The name of the charity.\n */\n get charityName() {\n return this[common_1.rawDataSymbol].charity_name;\n }\n /**\n * A description of the charity.\n */\n get charityDescription() {\n return this[common_1.rawDataSymbol].charity_description;\n }\n /**\n * A URL to an image of the charity's logo. The image\u2019s type is PNG and its size is 100px X 100px.\n */\n get charityLogo() {\n return this[common_1.rawDataSymbol].charity_logo;\n }\n /**\n * A URL to the charity\u2019s website.\n */\n get charityWebsite() {\n return this[common_1.rawDataSymbol].charity_website;\n }\n /**\n * An object that contains the current amount of donations that the campaign has received.\n */\n get currentAmount() {\n return new HelixCharityCampaignAmount_1.HelixCharityCampaignAmount(this[common_1.rawDataSymbol].current_amount);\n }\n /**\n * An object that contains the campaign\u2019s target fundraising goal.\n */\n get targetAmount() {\n return new HelixCharityCampaignAmount_1.HelixCharityCampaignAmount(this[common_1.rawDataSymbol].target_amount);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixCharityCampaign.prototype, \"_client\", void 0);\nHelixCharityCampaign = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixCharityCampaign', 'id')\n], HelixCharityCampaign);\nexports.HelixCharityCampaign = HelixCharityCampaign;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixCharityCampaignDonation = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixCharityCampaignAmount_1 = require(\"./HelixCharityCampaignAmount\");\n/**\n * A donation to a charity campaign in a Twitch channel.\n */\nlet HelixCharityCampaignDonation = class HelixCharityCampaignDonation extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * An ID that identifies the charity campaign.\n */\n get campaignId() {\n return this[common_1.rawDataSymbol].campaign_id;\n }\n /**\n * The ID of the donating user.\n */\n get donorId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the donating user.\n */\n get donorName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the donating user.\n */\n get donorDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets more information about the donating user.\n */\n async getDonor() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * An object that contains the amount of money that the user donated.\n */\n get amount() {\n return new HelixCharityCampaignAmount_1.HelixCharityCampaignAmount(this[common_1.rawDataSymbol].amount);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixCharityCampaignDonation.prototype, \"_client\", void 0);\nHelixCharityCampaignDonation = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixCharityCampaignDonation')\n], HelixCharityCampaignDonation);\nexports.HelixCharityCampaignDonation = HelixCharityCampaignDonation;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixCharityApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixCharityCampaign_1 = require(\"./HelixCharityCampaign\");\nconst HelixCharityCampaignDonation_1 = require(\"./HelixCharityCampaignDonation\");\n/**\n * The Helix API methods that deal with charity campaigns.\n *\n * Can be accessed using `client.charity` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const charityCampaign = await api.charity.getCharityCampaign('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Charity Campaigns\n */\nlet HelixCharityApi = class HelixCharityApi extends BaseApi_1.BaseApi {\n /**\n * Gets information about the charity campaign that a broadcaster is running.\n * Returns null if the specified broadcaster has no active charity campaign.\n *\n * @param broadcaster The broadcaster to get charity campaign information about.\n */\n async getCharityCampaign(broadcaster) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'charity/campaigns',\n method: 'GET',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:charity'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return new HelixCharityCampaign_1.HelixCharityCampaign(response.data[0], this._client);\n }\n /**\n * Gets the list of donations that users have made to the broadcaster\u2019s active charity campaign.\n *\n * @param broadcaster The broadcaster to get charity campaign donation information about.\n * @param pagination\n *\n * @expandParams\n */\n async getCharityCampaignDonations(broadcaster, pagination) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'charity/donations',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:charity'],\n query: {\n ...(0, api_call_1.createBroadcasterQuery)(broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(response, HelixCharityCampaignDonation_1.HelixCharityCampaignDonation, this._client);\n }\n};\nHelixCharityApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixCharityApi')\n], HelixCharityApi);\nexports.HelixCharityApi = HelixCharityApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createShoutoutQuery = exports.createChatColorUpdateQuery = exports.createChatSettingsUpdateBody = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createChatSettingsUpdateBody(settings) {\n return {\n slow_mode: settings.slowModeEnabled,\n slow_mode_wait_time: settings.slowModeDelay,\n follower_mode: settings.followerOnlyModeEnabled,\n follower_mode_duration: settings.followerOnlyModeDelay,\n subscriber_mode: settings.subscriberOnlyModeEnabled,\n emote_mode: settings.emoteOnlyModeEnabled,\n unique_chat_mode: settings.uniqueChatModeEnabled,\n non_moderator_chat_delay: settings.nonModeratorChatDelayEnabled,\n non_moderator_chat_delay_duration: settings.nonModeratorChatDelay\n };\n}\nexports.createChatSettingsUpdateBody = createChatSettingsUpdateBody;\n/** @internal */\nfunction createChatColorUpdateQuery(user, color) {\n return {\n user_id: (0, common_1.extractUserId)(user),\n color\n };\n}\nexports.createChatColorUpdateQuery = createChatColorUpdateQuery;\n/** @internal */\nfunction createShoutoutQuery(from, to, moderatorId) {\n return {\n from_broadcaster_id: (0, common_1.extractUserId)(from),\n to_broadcaster_id: (0, common_1.extractUserId)(to),\n moderator_id: moderatorId\n };\n}\nexports.createShoutoutQuery = createShoutoutQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixEmote = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A Twitch emote.\n */\nlet HelixEmote = class HelixEmote extends common_1.DataObject {\n /**\n * The ID of the emote.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The name of the emote.\n */\n get name() {\n return this[common_1.rawDataSymbol].name;\n }\n /**\n * The formats that the emote is available in.\n */\n get formats() {\n return this[common_1.rawDataSymbol].format;\n }\n /**\n * The scales that the emote is available in.\n */\n get scales() {\n return this[common_1.rawDataSymbol].scale;\n }\n /**\n * The theme modes that the emote is available in.\n */\n get themeModes() {\n return this[common_1.rawDataSymbol].theme_mode;\n }\n /**\n * Gets the URL of the emote image in the given scale.\n *\n * @param scale The scale of the image.\n */\n getImageUrl(scale) {\n return this[common_1.rawDataSymbol].images[`url_${scale}x`];\n }\n /**\n * Gets the URL of the emote image in static format at the given scale and theme mode, or null if a static emote image at that scale/theme mode doesn't exist.\n *\n * @param scale The scale of the image.\n * @param themeMode The theme mode of the image, either `light` or `dark`.\n */\n getStaticImageUrl(scale = '1.0', themeMode = 'light') {\n if (this[common_1.rawDataSymbol].format.includes('static') && this[common_1.rawDataSymbol].scale.includes(scale)) {\n return this.getFormattedImageUrl(scale, 'static', themeMode);\n }\n return null;\n }\n /**\n * Gets the URL of the emote image in animated format at the given scale and theme mode, or null if an animated emote image at that scale/theme mode doesn't exist.\n *\n * @param scale The scale of the image.\n * @param themeMode The theme mode of the image, either `light` or `dark`.\n */\n getAnimatedImageUrl(scale = '1.0', themeMode = 'light') {\n if (this[common_1.rawDataSymbol].format.includes('animated') && this[common_1.rawDataSymbol].scale.includes(scale)) {\n return this.getFormattedImageUrl(scale, 'animated', themeMode);\n }\n return null;\n }\n /**\n * Gets the URL of the emote image in the given scale, format, and theme mode.\n *\n * @param scale The scale of the image, either `1.0` (small), `2.0` (medium), or `3.0` (large).\n * @param format The format of the image, either `static` or `animated`.\n * @param themeMode The theme mode of the image, either `light` or `dark`.\n */\n getFormattedImageUrl(scale = '1.0', format = 'static', themeMode = 'light') {\n return `https://static-cdn.jtvnw.net/emoticons/v2/${this[common_1.rawDataSymbol].id}/${format}/${themeMode}/${scale}`;\n }\n};\nHelixEmote = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixEmote', 'id')\n], HelixEmote);\nexports.HelixEmote = HelixEmote;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannelEmote = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixEmote_1 = require(\"./HelixEmote\");\n/**\n * A Twitch Channel emote.\n *\n * @inheritDoc\n */\nlet HelixChannelEmote = class HelixChannelEmote extends HelixEmote_1.HelixEmote {\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The subscription tier necessary to unlock the emote, or null if the emote is not a subscription emote.\n */\n get tier() {\n return this[common_1.rawDataSymbol].tier || null;\n }\n /**\n * The type of the emote.\n *\n * There are many types of emotes that Twitch seems to arbitrarily assign. Do not rely on this value.\n */\n get type() {\n return this[common_1.rawDataSymbol].emote_type;\n }\n /**\n * The ID of the emote set the emote is part of.\n */\n get emoteSetId() {\n return this[common_1.rawDataSymbol].emote_set_id;\n }\n /**\n * Gets all emotes from the emote's set.\n */\n async getAllEmotesFromSet() {\n return await this._client.chat.getEmotesFromSets([this[common_1.rawDataSymbol].emote_set_id]);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChannelEmote.prototype, \"_client\", void 0);\nHelixChannelEmote = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannelEmote', 'id')\n], HelixChannelEmote);\nexports.HelixChannelEmote = HelixChannelEmote;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChatBadgeVersion = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A version of a chat badge.\n */\nlet HelixChatBadgeVersion = class HelixChatBadgeVersion extends common_1.DataObject {\n /**\n * The badge version ID.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * Gets an image URL for the given scale.\n *\n * @param scale The scale of the badge image.\n */\n getImageUrl(scale) {\n return this[common_1.rawDataSymbol][`image_url_${scale}x`];\n }\n /**\n * The title of the badge.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The description of the badge.\n */\n get description() {\n return this[common_1.rawDataSymbol].description;\n }\n /**\n * The action to take when clicking on the badge. Set to `null` if no action is specified.\n */\n get clickAction() {\n return this[common_1.rawDataSymbol].click_action;\n }\n /**\n * The URL to navigate to when clicking on the badge. Set to `null` if no URL is specified.\n */\n get clickUrl() {\n return this[common_1.rawDataSymbol].click_url;\n }\n};\nHelixChatBadgeVersion = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChatBadgeVersion', 'id')\n], HelixChatBadgeVersion);\nexports.HelixChatBadgeVersion = HelixChatBadgeVersion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChatBadgeSet = void 0;\nconst tslib_1 = require(\"tslib\");\nconst cache_decorators_1 = require(\"@d-fischer/cache-decorators\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixChatBadgeVersion_1 = require(\"./HelixChatBadgeVersion\");\n/**\n * A version of a chat badge.\n */\nlet HelixChatBadgeSet = class HelixChatBadgeSet extends common_1.DataObject {\n /**\n * The badge set ID.\n */\n get id() {\n return this[common_1.rawDataSymbol].set_id;\n }\n /**\n * All versions of the badge.\n */\n get versions() {\n return this[common_1.rawDataSymbol].versions.map(data => new HelixChatBadgeVersion_1.HelixChatBadgeVersion(data));\n }\n /**\n * Gets a specific version of the badge.\n *\n * @param versionId The ID of the version.\n */\n getVersion(versionId) {\n var _a;\n return (_a = this.versions.find(v => v.id === versionId)) !== null && _a !== void 0 ? _a : null;\n }\n};\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], HelixChatBadgeSet.prototype, \"versions\", null);\nHelixChatBadgeSet = tslib_1.__decorate([\n cache_decorators_1.Cacheable,\n (0, common_1.rtfm)('api', 'HelixChatBadgeSet', 'id')\n], HelixChatBadgeSet);\nexports.HelixChatBadgeSet = HelixChatBadgeSet;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChatChatter = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A user connected to a Twitch channel's chat session.\n */\nlet HelixChatChatter = class HelixChatChatter extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets more information about the user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChatChatter.prototype, \"_client\", void 0);\nHelixChatChatter = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChatChatter')\n], HelixChatChatter);\nexports.HelixChatChatter = HelixChatChatter;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChatSettings = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * The settings of a broadcaster's chat.\n */\nlet HelixChatSettings = class HelixChatSettings extends common_1.DataObject {\n /**\n * The ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * Whether slow mode is enabled.\n */\n get slowModeEnabled() {\n return this[common_1.rawDataSymbol].slow_mode;\n }\n /**\n * The time to wait between messages in slow mode, in seconds.\n *\n * Is `null` if slow mode is not enabled.\n */\n get slowModeDelay() {\n return this[common_1.rawDataSymbol].slow_mode_wait_time;\n }\n /**\n * Whether follower only mode is enabled.\n */\n get followerOnlyModeEnabled() {\n return this[common_1.rawDataSymbol].follower_mode;\n }\n /**\n * The time after which users are able to send messages after following, in minutes.\n *\n * Is `null` if follower only mode is not enabled,\n * but may also be `0` if you can send messages immediately after following.\n */\n get followerOnlyModeDelay() {\n return this[common_1.rawDataSymbol].follower_mode_duration;\n }\n /**\n * Whether subscriber only mode is enabled.\n */\n get subscriberOnlyModeEnabled() {\n return this[common_1.rawDataSymbol].subscriber_mode;\n }\n /**\n * Whether emote only mode is enabled.\n */\n get emoteOnlyModeEnabled() {\n return this[common_1.rawDataSymbol].emote_mode;\n }\n /**\n * Whether unique chat mode is enabled.\n */\n get uniqueChatModeEnabled() {\n return this[common_1.rawDataSymbol].unique_chat_mode;\n }\n};\nHelixChatSettings = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChatSettings', 'broadcasterId')\n], HelixChatSettings);\nexports.HelixChatSettings = HelixChatSettings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixEmoteFromSet = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixEmote_1 = require(\"./HelixEmote\");\n/**\n * A Twitch Channel emote.\n *\n * @inheritDoc\n */\nlet HelixEmoteFromSet = class HelixEmoteFromSet extends HelixEmote_1.HelixEmote {\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The type of the emote.\n *\n * Known values are: `subscriptions`, `bitstier`, `follower`, `rewards`, `globals`, `smilies`, `prime`, `limitedtime`.\n *\n * This list may be non-exhaustive.\n */\n get type() {\n return this[common_1.rawDataSymbol].emote_type;\n }\n /**\n * The ID of the emote set the emote is part of.\n */\n get emoteSetId() {\n return this[common_1.rawDataSymbol].emote_set_id;\n }\n /**\n * The ID of the user that owns the emote, or null if the emote is not owned by a user.\n */\n get ownerId() {\n switch (this[common_1.rawDataSymbol].owner_id) {\n case '0':\n case 'twitch': {\n return null;\n }\n default: {\n return this[common_1.rawDataSymbol].owner_id;\n }\n }\n }\n /**\n * Gets more information about the user that owns the emote, or null if the emote is not owned by a user.\n */\n async getOwner() {\n switch (this[common_1.rawDataSymbol].owner_id) {\n case '0':\n case 'twitch': {\n return null;\n }\n default: {\n return await this._client.users.getUserById(this[common_1.rawDataSymbol].owner_id);\n }\n }\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixEmoteFromSet.prototype, \"_client\", void 0);\nHelixEmoteFromSet = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixEmoteFromSet', 'id')\n], HelixEmoteFromSet);\nexports.HelixEmoteFromSet = HelixEmoteFromSet;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPrivilegedChatSettings = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixChatSettings_1 = require(\"./HelixChatSettings\");\n/**\n * The settings of a broadcaster's chat, with additional privileged data.\n */\nlet HelixPrivilegedChatSettings = class HelixPrivilegedChatSettings extends HelixChatSettings_1.HelixChatSettings {\n /**\n * Whether non-moderator messages are delayed.\n */\n get nonModeratorChatDelayEnabled() {\n return this[common_1.rawDataSymbol].non_moderator_chat_delay;\n }\n /**\n * The delay of non-moderator messages, in seconds.\n *\n * Is `null` if non-moderator message delay is disabled.\n */\n get nonModeratorChatDelay() {\n return this[common_1.rawDataSymbol].non_moderator_chat_delay_duration;\n }\n};\nHelixPrivilegedChatSettings = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPrivilegedChatSettings', 'broadcasterId')\n], HelixPrivilegedChatSettings);\nexports.HelixPrivilegedChatSettings = HelixPrivilegedChatSettings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChatApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst chat_external_1 = require(\"../../interfaces/endpoints/chat.external\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst HelixPaginatedRequestWithTotal_1 = require(\"../../utils/pagination/HelixPaginatedRequestWithTotal\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixChannelEmote_1 = require(\"./HelixChannelEmote\");\nconst HelixChatBadgeSet_1 = require(\"./HelixChatBadgeSet\");\nconst HelixChatChatter_1 = require(\"./HelixChatChatter\");\nconst HelixChatSettings_1 = require(\"./HelixChatSettings\");\nconst HelixEmote_1 = require(\"./HelixEmote\");\nconst HelixEmoteFromSet_1 = require(\"./HelixEmoteFromSet\");\nconst HelixPrivilegedChatSettings_1 = require(\"./HelixPrivilegedChatSettings\");\n/**\n * The Helix API methods that deal with chat.\n *\n * Can be accessed using `client.chat` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const rewards = await api.chat.getChannelBadges('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Chat\n */\nlet HelixChatApi = class HelixChatApi extends BaseApi_1.BaseApi {\n /**\n * Gets the list of users that are connected to the broadcaster\u2019s chat session.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster whose list of chatters you want to get.\n * @param pagination\n *\n * @expandParams\n */\n async getChatters(broadcaster, pagination) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/chatters',\n userId: broadcasterId,\n canOverrideScopedUserContext: true,\n scopes: ['moderator:read:chatters'],\n query: {\n ...this._createModeratorActionQuery(broadcasterId),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixChatChatter_1.HelixChatChatter, this._client);\n }\n /**\n * Creates a paginator for users that are connected to the broadcaster\u2019s chat session.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster whose list of chatters you want to get.\n *\n * @expandParams\n */\n getChattersPaginated(broadcaster) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n return new HelixPaginatedRequestWithTotal_1.HelixPaginatedRequestWithTotal({\n url: 'chat/chatters',\n userId: broadcasterId,\n canOverrideScopedUserContext: true,\n scopes: ['moderator:read:chatters'],\n query: this._createModeratorActionQuery(broadcasterId)\n }, this._client, data => new HelixChatChatter_1.HelixChatChatter(data, this._client));\n }\n /**\n * Gets all global badges.\n */\n async getGlobalBadges() {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/badges/global'\n });\n return result.data.map(data => new HelixChatBadgeSet_1.HelixChatBadgeSet(data));\n }\n /**\n * Gets all badges specific to the given broadcaster.\n *\n * @param broadcaster The broadcaster to get badges for.\n */\n async getChannelBadges(broadcaster) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/badges',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return result.data.map(data => new HelixChatBadgeSet_1.HelixChatBadgeSet(data));\n }\n /**\n * Gets all global emotes.\n */\n async getGlobalEmotes() {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/emotes/global'\n });\n return result.data.map(data => new HelixEmote_1.HelixEmote(data));\n }\n /**\n * Gets all emotes specific to the given broadcaster.\n *\n * @param broadcaster The broadcaster to get emotes for.\n */\n async getChannelEmotes(broadcaster) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/emotes',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return result.data.map(data => new HelixChannelEmote_1.HelixChannelEmote(data, this._client));\n }\n /**\n * Gets all emotes from a list of emote sets.\n *\n * @param setIds The IDs of the emote sets to get emotes from.\n */\n async getEmotesFromSets(setIds) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/emotes/set',\n query: (0, generic_external_1.createSingleKeyQuery)('emote_set_id', setIds)\n });\n return result.data.map(data => new HelixEmoteFromSet_1.HelixEmoteFromSet(data, this._client));\n }\n /**\n * Gets the settings of a broadcaster's chat.\n *\n * @param broadcaster The broadcaster the chat belongs to.\n */\n async getSettings(broadcaster) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/settings',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return new HelixChatSettings_1.HelixChatSettings(result.data[0]);\n }\n /**\n * Gets the settings of a broadcaster's chat, including the delay settings.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster the chat belongs to.\n */\n async getSettingsPrivileged(broadcaster) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/settings',\n userId: broadcasterId,\n canOverrideScopedUserContext: true,\n scopes: ['moderator:read:chat_settings'],\n query: this._createModeratorActionQuery(broadcasterId)\n });\n return new HelixPrivilegedChatSettings_1.HelixPrivilegedChatSettings(result.data[0]);\n }\n /**\n * Updates the settings of a broadcaster's chat.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @expandParams\n *\n * @param broadcaster The broadcaster the chat belongs to.\n * @param settings The settings to change.\n */\n async updateSettings(broadcaster, settings) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'chat/settings',\n method: 'PATCH',\n userId: broadcasterId,\n canOverrideScopedUserContext: true,\n scopes: ['moderator:manage:chat_settings'],\n query: this._createModeratorActionQuery(broadcasterId),\n jsonBody: (0, chat_external_1.createChatSettingsUpdateBody)(settings)\n });\n return new HelixPrivilegedChatSettings_1.HelixPrivilegedChatSettings(result.data[0]);\n }\n /**\n * Sends an announcement to a broadcaster's chat.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster the chat belongs to.\n * @param announcement The announcement to send.\n */\n async sendAnnouncement(broadcaster, announcement) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n await this._client.callApi({\n type: 'helix',\n url: 'chat/announcements',\n method: 'POST',\n userId: broadcasterId,\n canOverrideScopedUserContext: true,\n scopes: ['moderator:manage:announcements'],\n query: this._createModeratorActionQuery(broadcasterId),\n jsonBody: {\n message: announcement.message,\n color: announcement.color\n }\n });\n }\n /**\n * Gets the chat colors for a list of users.\n *\n * Returns a Map with user IDs as keys and their colors as values.\n * The value is a color hex code, or `null` if the user did not set a color,\n * and unknown users will not be present in the map.\n *\n * @param users The users to get the chat colors of.\n */\n async getColorsForUsers(users) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'chat/color',\n query: (0, generic_external_1.createSingleKeyQuery)('user_id', users.map(common_1.extractUserId))\n });\n return new Map(response.data.map(data => [data.user_id, data.color || null]));\n }\n /**\n * Gets the chat color for a user.\n *\n * Returns the color as hex code, `null` if the user did not set a color, or `undefined` if the user is unknown.\n *\n * @param user The user to get the chat color of.\n */\n async getColorForUser(user) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'chat/color',\n userId: (0, common_1.extractUserId)(user),\n query: (0, generic_external_1.createSingleKeyQuery)('user_id', (0, common_1.extractUserId)(user))\n });\n if (!response.data.length) {\n return undefined;\n }\n return response.data[0].color || null;\n }\n /**\n * Changes the chat color for a user.\n *\n * @param user The user to change the color of.\n * @param color The color to set.\n *\n * Note that hex codes can only be used by users that have a Prime or Turbo subscription.\n */\n async setColorForUser(user, color) {\n await this._client.callApi({\n type: 'helix',\n url: 'chat/color',\n method: 'PUT',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:manage:chat_color'],\n query: (0, chat_external_1.createChatColorUpdateQuery)(user, color)\n });\n }\n /**\n * Sends a shoutout to the specified broadcaster.\n * The broadcaster may send a shoutout once every 2 minutes. They may send the same broadcaster a shoutout once every 60 minutes.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param from The ID of the broadcaster that\u2019s sending the shoutout.\n * @param to The ID of the broadcaster that\u2019s receiving the shoutout.\n */\n async shoutoutUser(from, to) {\n const fromId = (0, common_1.extractUserId)(from);\n await this._client.callApi({\n type: 'helix',\n url: 'chat/shoutouts',\n method: 'POST',\n userId: fromId,\n canOverrideScopedUserContext: true,\n scopes: ['moderator:manage:shoutouts'],\n query: (0, chat_external_1.createShoutoutQuery)(from, to, this._getUserContextIdWithDefault(fromId))\n });\n }\n _createModeratorActionQuery(broadcasterId) {\n return (0, generic_external_1.createModeratorActionQuery)(broadcasterId, this._getUserContextIdWithDefault(broadcasterId));\n }\n};\nHelixChatApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChatApi')\n], HelixChatApi);\nexports.HelixChatApi = HelixChatApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createClipQuery = exports.createClipCreateQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createClipCreateQuery(channel, createAfterDelay) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(channel),\n has_delay: createAfterDelay.toString()\n };\n}\nexports.createClipCreateQuery = createClipCreateQuery;\n/** @internal */\nfunction createClipQuery(params) {\n const { filterType, ids, startDate, endDate, isFeatured } = params;\n return {\n [filterType]: ids,\n started_at: startDate,\n ended_at: endDate,\n is_featured: isFeatured === null || isFeatured === void 0 ? void 0 : isFeatured.toString()\n };\n}\nexports.createClipQuery = createClipQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixClip = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A clip from a Twitch stream.\n */\nlet HelixClip = class HelixClip extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The clip ID.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The URL of the clip.\n */\n get url() {\n return this[common_1.rawDataSymbol].url;\n }\n /**\n * The embed URL of the clip.\n */\n get embedUrl() {\n return this[common_1.rawDataSymbol].embed_url;\n }\n /**\n * The user ID of the broadcaster of the stream where the clip was created.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The display name of the broadcaster of the stream where the clip was created.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets information about the broadcaster of the stream where the clip was created.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The user ID of the creator of the clip.\n */\n get creatorId() {\n return this[common_1.rawDataSymbol].creator_id;\n }\n /**\n * The display name of the creator of the clip.\n */\n get creatorDisplayName() {\n return this[common_1.rawDataSymbol].creator_name;\n }\n /**\n * Gets information about the creator of the clip.\n */\n async getCreator() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].creator_id));\n }\n /**\n * The ID of the video the clip is taken from.\n */\n get videoId() {\n return this[common_1.rawDataSymbol].video_id;\n }\n /**\n * Gets information about the video the clip is taken from.\n */\n async getVideo() {\n return (0, common_1.checkRelationAssertion)(await this._client.videos.getVideoById(this[common_1.rawDataSymbol].video_id));\n }\n /**\n * The ID of the game that was being played when the clip was created.\n */\n get gameId() {\n return this[common_1.rawDataSymbol].game_id;\n }\n /**\n * Gets information about the game that was being played when the clip was created.\n */\n async getGame() {\n return this[common_1.rawDataSymbol].game_id\n ? (0, common_1.checkRelationAssertion)(await this._client.games.getGameById(this[common_1.rawDataSymbol].game_id))\n : null;\n }\n /**\n * The language of the stream where the clip was created.\n */\n get language() {\n return this[common_1.rawDataSymbol].language;\n }\n /**\n * The title of the clip.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The number of views of the clip.\n */\n get views() {\n return this[common_1.rawDataSymbol].view_count;\n }\n /**\n * The date when the clip was created.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * The URL of the thumbnail of the clip.\n */\n get thumbnailUrl() {\n return this[common_1.rawDataSymbol].thumbnail_url;\n }\n /**\n * The duration of the clip in seconds (up to 0.1 precision).\n */\n get duration() {\n return this[common_1.rawDataSymbol].duration;\n }\n /**\n * The offset of the clip from the start of the corresponding VOD, in seconds.\n *\n * This may be null if there is no VOD or if the clip is created from a live broadcast,\n * in which case it may take a few minutes to associate with the VOD.\n */\n get vodOffset() {\n return this[common_1.rawDataSymbol].vod_offset;\n }\n /**\n * Whether the clip is featured.\n */\n get isFeatured() {\n return this[common_1.rawDataSymbol].is_featured;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixClip.prototype, \"_client\", void 0);\nHelixClip = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixClip', 'id')\n], HelixClip);\nexports.HelixClip = HelixClip;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixClipApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst clip_external_1 = require(\"../../interfaces/endpoints/clip.external\");\nconst HelixRequestBatcher_1 = require(\"../../utils/HelixRequestBatcher\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixClip_1 = require(\"./HelixClip\");\n/**\n * The Helix API methods that deal with clips.\n *\n * Can be accessed using `client.clips` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const clipId = await api.clips.createClip({ channel: '125328655' });\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Clips\n */\nlet HelixClipApi = class HelixClipApi extends BaseApi_1.BaseApi {\n constructor() {\n super(...arguments);\n /** @internal */\n this._getClipByIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'clips'\n }, 'id', 'id', this._client, (data) => new HelixClip_1.HelixClip(data, this._client));\n }\n /**\n * Gets clips for the specified broadcaster in descending order of views.\n *\n * @param broadcaster The broadcaster to fetch clips for.\n * @param filter\n *\n * @expandParams\n */\n async getClipsForBroadcaster(broadcaster, filter = {}) {\n return await this._getClips({\n ...filter,\n filterType: 'broadcaster_id',\n ids: (0, common_1.extractUserId)(broadcaster),\n userId: (0, common_1.extractUserId)(broadcaster)\n });\n }\n /**\n * Creates a paginator for clips for the specified broadcaster.\n *\n * @param broadcaster The broadcaster to fetch clips for.\n * @param filter\n *\n * @expandParams\n */\n getClipsForBroadcasterPaginated(broadcaster, filter = {}) {\n return this._getClipsPaginated({\n ...filter,\n filterType: 'broadcaster_id',\n ids: (0, common_1.extractUserId)(broadcaster),\n userId: (0, common_1.extractUserId)(broadcaster)\n });\n }\n /**\n * Gets clips for the specified game in descending order of views.\n *\n * @param gameId The game ID.\n * @param filter\n *\n * @expandParams\n */\n async getClipsForGame(gameId, filter = {}) {\n return await this._getClips({\n ...filter,\n filterType: 'game_id',\n ids: gameId\n });\n }\n /**\n * Creates a paginator for clips for the specified game.\n *\n * @param gameId The game ID.\n * @param filter\n *\n * @expandParams\n */\n getClipsForGamePaginated(gameId, filter = {}) {\n return this._getClipsPaginated({\n ...filter,\n filterType: 'game_id',\n ids: gameId\n });\n }\n /**\n * Gets the clips identified by the given IDs.\n *\n * @param ids The clip IDs.\n */\n async getClipsByIds(ids) {\n const result = await this._getClips({\n filterType: 'id',\n ids\n });\n return result.data;\n }\n /**\n * Gets the clip identified by the given ID.\n *\n * @param id The clip ID.\n */\n async getClipById(id) {\n const clips = await this.getClipsByIds([id]);\n return clips.length ? clips[0] : null;\n }\n /**\n * Gets the clip identified by the given ID, batching multiple calls into fewer requests as the API allows.\n *\n * @param id The clip ID.\n */\n async getClipByIdBatched(id) {\n return await this._getClipByIdBatcher.request(id);\n }\n /**\n * Creates a clip of a running stream.\n *\n * Returns the ID of the clip.\n *\n * @param params\n * @expandParams\n */\n async createClip(params) {\n const { channel, createAfterDelay = false } = params;\n const result = await this._client.callApi({\n type: 'helix',\n url: 'clips',\n method: 'POST',\n userId: (0, common_1.extractUserId)(channel),\n scopes: ['clips:edit'],\n canOverrideScopedUserContext: true,\n query: (0, clip_external_1.createClipCreateQuery)(channel, createAfterDelay)\n });\n return result.data[0].id;\n }\n async _getClips(params) {\n if (!params.ids.length) {\n return { data: [] };\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'clips',\n userId: params.userId,\n query: {\n ...(0, clip_external_1.createClipQuery)(params),\n ...(0, HelixPagination_1.createPaginationQuery)(params)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixClip_1.HelixClip, this._client);\n }\n _getClipsPaginated(params) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'clips',\n userId: params.userId,\n query: (0, clip_external_1.createClipQuery)(params)\n }, this._client, data => new HelixClip_1.HelixClip(data, this._client));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixClipApi.prototype, \"_getClipByIdBatcher\", void 0);\nHelixClipApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixClipApi')\n], HelixClipApi);\nexports.HelixClipApi = HelixClipApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixContentClassificationLabel = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * A content classification label that can be applied to a Twitch stream.\n */\nclass HelixContentClassificationLabel extends common_1.DataObject {\n /**\n * The ID of the content classification label.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The name of the content classification label.\n */\n get name() {\n return this[common_1.rawDataSymbol].name;\n }\n /**\n * The description of the content classification label.\n */\n get description() {\n return this[common_1.rawDataSymbol].description;\n }\n}\nexports.HelixContentClassificationLabel = HelixContentClassificationLabel;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixContentClassificationLabelApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixContentClassificationLabel_1 = require(\"./HelixContentClassificationLabel\");\n/**\n * The Helix API methods that deal with content classification labels.\n *\n * Can be accessed using `client.contentClassificationLabels` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const labels = await api.contentClassificationLabels.getAll();\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Content classification labels\n */\nlet HelixContentClassificationLabelApi = class HelixContentClassificationLabelApi extends BaseApi_1.BaseApi {\n /**\n * Fetches a list of all content classification labels.\n *\n * @param locale The locale for the content classification labels.\n */\n async getAll(locale) {\n const result = await this._client.callApi({\n url: 'content_classification_labels',\n query: {\n locale\n }\n });\n return result.data.map(data => new HelixContentClassificationLabel_1.HelixContentClassificationLabel(data));\n }\n};\nHelixContentClassificationLabelApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixContentClassificationLabelApi')\n], HelixContentClassificationLabelApi);\nexports.HelixContentClassificationLabelApi = HelixContentClassificationLabelApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDropsEntitlementUpdateBody = exports.createDropsEntitlementQuery = void 0;\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createDropsEntitlementQuery(filters, alwaysApp) {\n return {\n user_id: alwaysApp ? (0, shared_utils_1.mapOptional)(filters.user, common_1.extractUserId) : undefined,\n game_id: filters.gameId,\n fulfillment_status: filters.fulfillmentStatus\n };\n}\nexports.createDropsEntitlementQuery = createDropsEntitlementQuery;\n/** @internal */\nfunction createDropsEntitlementUpdateBody(ids, fulfillmentStatus) {\n return {\n fulfillment_status: fulfillmentStatus,\n entitlement_ids: ids\n };\n}\nexports.createDropsEntitlementUpdateBody = createDropsEntitlementUpdateBody;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixDropsEntitlement = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * An entitlement for a drop.\n */\nlet HelixDropsEntitlement = class HelixDropsEntitlement extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the entitlement.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the reward.\n */\n get rewardId() {\n return this[common_1.rawDataSymbol].benefit_id;\n }\n /**\n * The date when the entitlement was granted.\n */\n get grantDate() {\n return new Date(this[common_1.rawDataSymbol].timestamp);\n }\n /**\n * The ID of the entitled user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * Gets more information about the entitled user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * The ID of the game the entitlement was granted for.\n */\n get gameId() {\n return this[common_1.rawDataSymbol].game_id;\n }\n /**\n * Gets more information about the game the entitlement was granted for.\n */\n async getGame() {\n return (0, common_1.checkRelationAssertion)(await this._client.games.getGameById(this[common_1.rawDataSymbol].game_id));\n }\n /**\n * The fulfillment status of the entitlement.\n */\n get fulfillmentStatus() {\n return this[common_1.rawDataSymbol].fulfillment_status;\n }\n /**\n * The date when the entitlement was last updated.\n */\n get updateDate() {\n return new Date(this[common_1.rawDataSymbol].last_updated);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixDropsEntitlement.prototype, \"_client\", void 0);\nHelixDropsEntitlement = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixDropsEntitlement')\n], HelixDropsEntitlement);\nexports.HelixDropsEntitlement = HelixDropsEntitlement;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixEntitlementApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst entitlement_external_1 = require(\"../../interfaces/endpoints/entitlement.external\");\nconst HelixRequestBatcher_1 = require(\"../../utils/HelixRequestBatcher\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixDropsEntitlement_1 = require(\"./HelixDropsEntitlement\");\n/**\n * The Helix API methods that deal with entitlements (drops).\n *\n * Can be accessed using `client.entitlements` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const clipId = await api.entitlements.getDropsEntitlements();\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Entitlements (Drops)\n */\nlet HelixEntitlementApi = class HelixEntitlementApi extends BaseApi_1.BaseApi {\n constructor() {\n super(...arguments);\n /** @internal */ this._getDropsEntitlementByIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'entitlements/drops'\n }, 'id', 'id', this._client, (data) => new HelixDropsEntitlement_1.HelixDropsEntitlement(data, this._client));\n }\n /**\n * Gets the drops entitlements for the given filter.\n *\n * @expandParams\n *\n * @param filter\n * @param alwaysApp Whether an app token should always be used, even if a user filter is given.\n */\n async getDropsEntitlements(filter, alwaysApp = false) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'entitlements/drops',\n userId: (0, shared_utils_1.mapOptional)(filter.user, common_1.extractUserId),\n forceType: filter.user && alwaysApp ? 'app' : undefined,\n query: {\n ...(0, entitlement_external_1.createDropsEntitlementQuery)(filter, alwaysApp),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(response, HelixDropsEntitlement_1.HelixDropsEntitlement, this._client);\n }\n /**\n * Creates a paginator for drops entitlements for the given filter.\n *\n * @expandParams\n *\n * @param filter\n * @param alwaysApp Whether an app token should always be used, even if a user filter is given.\n */\n getDropsEntitlementsPaginated(filter, alwaysApp = false) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'entitlements/drops',\n userId: (0, shared_utils_1.mapOptional)(filter.user, common_1.extractUserId),\n forceType: filter.user && alwaysApp ? 'app' : undefined,\n query: (0, entitlement_external_1.createDropsEntitlementQuery)(filter, alwaysApp)\n }, this._client, data => new HelixDropsEntitlement_1.HelixDropsEntitlement(data, this._client));\n }\n /**\n * Gets the drops entitlements for the given IDs.\n *\n * @param ids The IDs to fetch.\n */\n async getDropsEntitlementsByIds(ids) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'entitlements/drops',\n query: {\n id: ids\n }\n });\n return response.data.map(data => new HelixDropsEntitlement_1.HelixDropsEntitlement(data, this._client));\n }\n /**\n * Gets the drops entitlement for the given ID.\n *\n * @param id The ID to fetch.\n */\n async getDropsEntitlementById(id) {\n var _a;\n const result = await this.getDropsEntitlementsByIds([id]);\n return (_a = result[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Gets the drops entitlement for the given ID, batching multiple calls into fewer requests as the API allows.\n *\n * @param id The ID to fetch.\n */\n async getDropsEntitlementByIdBatched(id) {\n return await this._getDropsEntitlementByIdBatcher.request(id);\n }\n /**\n * Updates the status of a list of drops entitlements.\n *\n * Returns a map that associates each given ID with its update status.\n *\n * @param ids The IDs of the entitlements.\n * @param fulfillmentStatus The fulfillment status to set the entitlements to.\n */\n async updateDropsEntitlements(ids, fulfillmentStatus) {\n const response = await this._client.callApi({\n type: 'helix',\n url: 'entitlements/drops',\n method: 'PATCH',\n jsonBody: (0, entitlement_external_1.createDropsEntitlementUpdateBody)(ids, fulfillmentStatus)\n });\n return new Map(response.data.flatMap(entry => entry.ids.map(id => [id, entry.status])));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixEntitlementApi.prototype, \"_getDropsEntitlementByIdBatcher\", void 0);\nHelixEntitlementApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixEntitlementApi')\n], HelixEntitlementApi);\nexports.HelixEntitlementApi = HelixEntitlementApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createEventSubDropEntitlementGrantCondition = exports.createEventSubModeratorCondition = exports.createEventSubRewardCondition = exports.createEventSubBroadcasterCondition = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createEventSubBroadcasterCondition(broadcaster) {\n return {\n broadcaster_user_id: (0, common_1.extractUserId)(broadcaster)\n };\n}\nexports.createEventSubBroadcasterCondition = createEventSubBroadcasterCondition;\n/** @internal */\nfunction createEventSubRewardCondition(broadcaster, rewardId) {\n return { broadcaster_user_id: (0, common_1.extractUserId)(broadcaster), reward_id: rewardId };\n}\nexports.createEventSubRewardCondition = createEventSubRewardCondition;\n/** @internal */\nfunction createEventSubModeratorCondition(broadcasterId, moderatorId) {\n return {\n broadcaster_user_id: broadcasterId,\n moderator_user_id: moderatorId\n };\n}\nexports.createEventSubModeratorCondition = createEventSubModeratorCondition;\n/** @internal */\nfunction createEventSubDropEntitlementGrantCondition(filter) {\n return {\n organization_id: filter.organizationId,\n category_id: filter.categoryId,\n campaign_id: filter.campaignId\n };\n}\nexports.createEventSubDropEntitlementGrantCondition = createEventSubDropEntitlementGrantCondition;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixEventSubSubscription = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * An EventSub subscription.\n */\nlet HelixEventSubSubscription = class HelixEventSubSubscription extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the subscription.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The status of the subscription.\n */\n get status() {\n return this[common_1.rawDataSymbol].status;\n }\n /**\n * The event type that the subscription is listening to.\n */\n get type() {\n return this[common_1.rawDataSymbol].type;\n }\n /**\n * The cost of the subscription.\n */\n get cost() {\n return this[common_1.rawDataSymbol].cost;\n }\n /**\n * The condition of the subscription.\n */\n get condition() {\n return this[common_1.rawDataSymbol].condition;\n }\n /**\n * The date and time of creation of the subscription.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * End the EventSub subscription.\n */\n async unsubscribe() {\n await this._client.eventSub.deleteSubscription(this[common_1.rawDataSymbol].id);\n }\n /** @private */\n get _transport() {\n return this[common_1.rawDataSymbol].transport;\n }\n /** @private */\n set _status(status) {\n this[common_1.rawDataSymbol].status = status;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixEventSubSubscription.prototype, \"_client\", void 0);\nHelixEventSubSubscription = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixEventSubSubscription', 'id')\n], HelixEventSubSubscription);\nexports.HelixEventSubSubscription = HelixEventSubSubscription;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPaginatedEventSubSubscriptionsRequest = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPaginatedRequestWithTotal_1 = require(\"../../utils/pagination/HelixPaginatedRequestWithTotal\");\nconst HelixEventSubSubscription_1 = require(\"./HelixEventSubSubscription\");\n/**\n * A special case of {@link HelixPaginatedRequestWithTotal} with support for fetching the total cost and cost limit\n * of EventSub subscriptions.\n *\n * @inheritDoc\n */\nlet HelixPaginatedEventSubSubscriptionsRequest = class HelixPaginatedEventSubSubscriptionsRequest extends HelixPaginatedRequestWithTotal_1.HelixPaginatedRequestWithTotal {\n /** @internal */\n constructor(query, userId, client) {\n super({\n url: 'eventsub/subscriptions',\n userId,\n query\n }, client, data => new HelixEventSubSubscription_1.HelixEventSubSubscription(data, client));\n }\n /**\n * Gets the total cost of EventSub subscriptions.\n */\n async getTotalCost() {\n var _a;\n const data = (_a = this._currentData) !== null && _a !== void 0 ? _a : (await this._fetchData({ query: { after: undefined } }));\n return data.total_cost;\n }\n /**\n * Gets the cost limit of EventSub subscriptions.\n */\n async getMaxTotalCost() {\n var _a;\n const data = (_a = this._currentData) !== null && _a !== void 0 ? _a : (await this._fetchData({ query: { after: undefined } }));\n return data.max_total_cost;\n }\n};\nHelixPaginatedEventSubSubscriptionsRequest = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPaginatedEventSubSubscriptionsRequest')\n], HelixPaginatedEventSubSubscriptionsRequest);\nexports.HelixPaginatedEventSubSubscriptionsRequest = HelixPaginatedEventSubSubscriptionsRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixEventSubApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst eventSub_external_1 = require(\"../../interfaces/endpoints/eventSub.external\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixEventSubSubscription_1 = require(\"./HelixEventSubSubscription\");\nconst HelixPaginatedEventSubSubscriptionsRequest_1 = require(\"./HelixPaginatedEventSubSubscriptionsRequest\");\n/**\n * The API methods that deal with EventSub.\n *\n * Can be accessed using `client.eventSub` on an {@link ApiClient} instance.\n *\n * ## Before using these methods...\n *\n * All methods in this class assume that you are already running a working EventSub listener reachable using the given transport.\n *\n * If you don't already have one, we recommend use of the `@twurple/eventsub-http` or `@twurple/eventsub-ws` libraries,\n * which handle subscribing and unsubscribing to these topics automatically.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * await api.eventSub.subscribeToUserFollowsTo('125328655', { callbackUrl: 'https://example.com' });\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle EventSub\n */\nlet HelixEventSubApi = class HelixEventSubApi extends BaseApi_1.BaseApi {\n /**\n * Gets the current EventSub subscriptions for the current client.\n *\n * @param pagination\n *\n * @expandParams\n */\n async getSubscriptions(pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'eventsub/subscriptions',\n query: (0, HelixPagination_1.createPaginationQuery)(pagination)\n });\n return {\n ...(0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixEventSubSubscription_1.HelixEventSubSubscription, this._client),\n totalCost: result.total_cost,\n maxTotalCost: result.max_total_cost\n };\n }\n /**\n * Creates a paginator for the current EventSub subscriptions for the current client.\n */\n getSubscriptionsPaginated() {\n return new HelixPaginatedEventSubSubscriptionsRequest_1.HelixPaginatedEventSubSubscriptionsRequest({}, undefined, this._client);\n }\n /**\n * Gets the current EventSub subscriptions with the given status for the current client.\n *\n * @param status The status of the subscriptions to get.\n * @param pagination\n *\n * @expandParams\n */\n async getSubscriptionsForStatus(status, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'eventsub/subscriptions',\n query: {\n ...(0, HelixPagination_1.createPaginationQuery)(pagination),\n status\n }\n });\n return {\n ...(0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixEventSubSubscription_1.HelixEventSubSubscription, this._client),\n totalCost: result.total_cost,\n maxTotalCost: result.max_total_cost\n };\n }\n /**\n * Creates a paginator for the current EventSub subscriptions with the given status for the current client.\n *\n * @param status The status of the subscriptions to get.\n */\n getSubscriptionsForStatusPaginated(status) {\n return new HelixPaginatedEventSubSubscriptionsRequest_1.HelixPaginatedEventSubSubscriptionsRequest({ status }, undefined, this._client);\n }\n /**\n * Gets the current EventSub subscriptions with the given type for the current client.\n *\n * @param type The type of the subscriptions to get.\n * @param pagination\n *\n * @expandParams\n */\n async getSubscriptionsForType(type, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'eventsub/subscriptions',\n query: {\n ...(0, HelixPagination_1.createPaginationQuery)(pagination),\n type\n }\n });\n return {\n ...(0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixEventSubSubscription_1.HelixEventSubSubscription, this._client),\n totalCost: result.total_cost,\n maxTotalCost: result.max_total_cost\n };\n }\n /**\n * Creates a paginator for the current EventSub subscriptions with the given type for the current client.\n *\n * @param type The type of the subscriptions to get.\n */\n getSubscriptionsForTypePaginated(type) {\n return new HelixPaginatedEventSubSubscriptionsRequest_1.HelixPaginatedEventSubSubscriptionsRequest({ type }, undefined, this._client);\n }\n /**\n * Gets the current EventSub subscriptions for the current user and client.\n *\n * @param user The user to get subscriptions for.\n * @param pagination\n *\n * @expandParams\n */\n async getSubscriptionsForUser(user, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'eventsub/subscriptions',\n userId: (0, common_1.extractUserId)(user),\n query: {\n ...(0, generic_external_1.createSingleKeyQuery)('user_id', (0, common_1.extractUserId)(user)),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return {\n ...(0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixEventSubSubscription_1.HelixEventSubSubscription, this._client),\n totalCost: result.total_cost,\n maxTotalCost: result.max_total_cost\n };\n }\n /**\n * Creates a paginator for the current EventSub subscriptions with the given type for the current client.\n *\n * @param user The user to get subscriptions for.\n */\n getSubscriptionsForUserPaginated(user) {\n const userId = (0, common_1.extractUserId)(user);\n return new HelixPaginatedEventSubSubscriptionsRequest_1.HelixPaginatedEventSubSubscriptionsRequest((0, generic_external_1.createSingleKeyQuery)('user_id', userId), userId, this._client);\n }\n /**\n * Sends an arbitrary request to subscribe to an event.\n *\n * You can only create WebHook transport subscriptions using app tokens\n * and WebSocket transport subscriptions using user tokens.\n *\n * @param type The type of the event.\n * @param version The version of the event.\n * @param condition The condition of the subscription.\n * @param transport The transport of the subscription.\n * @param user The user to create the subscription in context of.\n * @param requiredScopeSet The scope set required by the subscription. Will only be checked for applicable transports.\n * @param canOverrideScopedUserContext Whether the auth user context can be overridden.\n * @param isBatched Whether to enable batching for the subscription. Is only supported for select topics.\n */\n async createSubscription(type, version, condition, transport, user, requiredScopeSet, canOverrideScopedUserContext, isBatched) {\n const usesAppAuth = transport.method === 'webhook';\n const scopes = usesAppAuth ? undefined : requiredScopeSet;\n if (!usesAppAuth && !user) {\n throw new Error(`Transport ${transport.method} can only handle subscriptions with user context`);\n }\n const jsonBody = {\n type,\n version,\n condition,\n transport\n };\n if (isBatched) {\n jsonBody.is_batching_enabled = true;\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'eventsub/subscriptions',\n method: 'POST',\n scopes,\n userId: (0, shared_utils_1.mapOptional)(user, common_1.extractUserId),\n forceType: usesAppAuth ? 'app' : 'user',\n jsonBody\n });\n return new HelixEventSubSubscription_1.HelixEventSubSubscription(result.data[0], this._client);\n }\n /**\n * Deletes a subscription.\n *\n * @param id The ID of the subscription.\n */\n async deleteSubscription(id) {\n await this._client.callApi({\n type: 'helix',\n url: 'eventsub/subscriptions',\n method: 'DELETE',\n query: {\n id\n }\n });\n }\n /**\n * Deletes *all* subscriptions.\n */\n async deleteAllSubscriptions() {\n await this._deleteSubscriptionsWithCondition();\n }\n /**\n * Deletes all broken subscriptions, i.e. all that are not enabled or pending verification.\n */\n async deleteBrokenSubscriptions() {\n await this._deleteSubscriptionsWithCondition(sub => sub.status !== 'enabled' && sub.status !== 'webhook_callback_verification_pending');\n }\n /**\n * Subscribe to events that represent a stream going live.\n *\n * @param broadcaster The broadcaster you want to listen to online events for.\n * @param transport The transport options.\n */\n async subscribeToStreamOnlineEvents(broadcaster, transport) {\n return await this.createSubscription('stream.online', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster);\n }\n /**\n * Subscribe to events that represent a stream going offline.\n *\n * @param broadcaster The broadcaster you want to listen to online events for.\n * @param transport The transport options.\n */\n async subscribeToStreamOfflineEvents(broadcaster, transport) {\n return await this.createSubscription('stream.offline', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster);\n }\n /**\n * Subscribe to events that represent a channel updating their metadata.\n *\n * @param broadcaster The broadcaster you want to listen to update events for.\n * @param transport The transport options.\n */\n async subscribeToChannelUpdateEvents(broadcaster, transport) {\n return await this.createSubscription('channel.update', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster);\n }\n /**\n * Subscribe to events that represent a user following a channel.\n *\n * @param broadcaster The broadcaster you want to listen to follow events for.\n * @param transport The transport options.\n */\n async subscribeToChannelFollowEvents(broadcaster, transport) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n return await this.createSubscription('channel.follow', '2', (0, eventSub_external_1.createEventSubModeratorCondition)(broadcasterId, this._getUserContextIdWithDefault(broadcasterId)), transport, broadcasterId, ['moderator:read:followers'], true);\n }\n /**\n * Subscribe to events that represent a user subscribing to a channel.\n *\n * @param broadcaster The broadcaster you want to listen to subscribe events for.\n * @param transport The transport options.\n */\n async subscribeToChannelSubscriptionEvents(broadcaster, transport) {\n return await this.createSubscription('channel.subscribe', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:subscriptions']);\n }\n /**\n * Subscribe to events that represent a user gifting another user a subscription to a channel.\n *\n * @param broadcaster The broadcaster you want to listen to subscription gift events for.\n * @param transport The transport options.\n */\n async subscribeToChannelSubscriptionGiftEvents(broadcaster, transport) {\n return await this.createSubscription('channel.subscription.gift', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:subscriptions']);\n }\n /**\n * Subscribe to events that represent a user's subscription to a channel being announced.\n *\n * @param broadcaster The broadcaster you want to listen to subscription message events for.\n * @param transport The transport options.\n */\n async subscribeToChannelSubscriptionMessageEvents(broadcaster, transport) {\n return await this.createSubscription('channel.subscription.message', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:subscriptions']);\n }\n /**\n * Subscribe to events that represent a user's subscription to a channel ending.\n *\n * @param broadcaster The broadcaster you want to listen to subscription end events for.\n * @param transport The transport options.\n */\n async subscribeToChannelSubscriptionEndEvents(broadcaster, transport) {\n return await this.createSubscription('channel.subscription.end', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:subscriptions']);\n }\n /**\n * Subscribe to events that represent a user cheering bits to a channel.\n *\n * @param broadcaster The broadcaster you want to listen to cheer events for.\n * @param transport The transport options.\n */\n async subscribeToChannelCheerEvents(broadcaster, transport) {\n return await this.createSubscription('channel.cheer', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['bits:read']);\n }\n /**\n * Subscribe to events that represent a charity campaign starting in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to charity donation events for.\n * @param transport The transport options.\n */\n async subscribeToChannelCharityCampaignStartEvents(broadcaster, transport) {\n return await this.createSubscription('channel.charity_campaign.start', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:charity']);\n }\n /**\n * Subscribe to events that represent a charity campaign ending in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to charity donation events for.\n * @param transport The transport options.\n */\n async subscribeToChannelCharityCampaignStopEvents(broadcaster, transport) {\n return await this.createSubscription('channel.charity_campaign.stop', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:charity']);\n }\n /**\n * Subscribe to events that represent a user donating to a charity campaign in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to charity donation events for.\n * @param transport The transport options.\n */\n async subscribeToChannelCharityDonationEvents(broadcaster, transport) {\n return await this.createSubscription('channel.charity_campaign.donate', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:charity']);\n }\n /**\n * Subscribe to events that represent a charity campaign progressing in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to charity donation events for.\n * @param transport The transport options.\n */\n async subscribeToChannelCharityCampaignProgressEvents(broadcaster, transport) {\n return await this.createSubscription('channel.charity_campaign.progress', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:charity']);\n }\n /**\n * Subscribe to events that represent a user being banned in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to ban events for.\n * @param transport The transport options.\n */\n async subscribeToChannelBanEvents(broadcaster, transport) {\n return await this.createSubscription('channel.ban', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:moderate']);\n }\n /**\n * Subscribe to events that represent a user being unbanned in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to unban events for.\n * @param transport The transport options.\n */\n async subscribeToChannelUnbanEvents(broadcaster, transport) {\n return await this.createSubscription('channel.unban', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:moderate']);\n }\n /**\n * Subscribe to events that represent Shield Mode being activated in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to Shield Mode activation events for.\n * @param transport The transport options.\n */\n async subscribeToChannelShieldModeBeginEvents(broadcaster, transport) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n return await this.createSubscription('channel.shield_mode.begin', '1', (0, eventSub_external_1.createEventSubModeratorCondition)(broadcasterId, this._getUserContextIdWithDefault(broadcasterId)), transport, broadcasterId, ['moderator:read:shield_mode', 'moderator:manage:shield_mode'], true);\n }\n /**\n * Subscribe to events that represent Shield Mode being deactivated in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to Shield Mode deactivation events for.\n * @param transport The transport options.\n */\n async subscribeToChannelShieldModeEndEvents(broadcaster, transport) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n return await this.createSubscription('channel.shield_mode.end', '1', (0, eventSub_external_1.createEventSubModeratorCondition)(broadcasterId, this._getUserContextIdWithDefault(broadcasterId)), transport, broadcasterId, ['moderator:read:shield_mode', 'moderator:manage:shield_mode'], true);\n }\n /**\n * Subscribe to events that represent a moderator being added to a channel.\n *\n * @param broadcaster The broadcaster you want to listen for moderator add events for.\n * @param transport The transport options.\n */\n async subscribeToChannelModeratorAddEvents(broadcaster, transport) {\n return await this.createSubscription('channel.moderator.add', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['moderation:read']);\n }\n /**\n * Subscribe to events that represent a moderator being removed from a channel.\n *\n * @param broadcaster The broadcaster you want to listen for moderator remove events for.\n * @param transport The transport options.\n */\n async subscribeToChannelModeratorRemoveEvents(broadcaster, transport) {\n return await this.createSubscription('channel.moderator.remove', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['moderation:read']);\n }\n /**\n * Subscribe to events that represent a broadcaster raiding another broadcaster.\n *\n * @param broadcaster The broadcaster you want to listen to outgoing raid events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRaidEventsFrom(broadcaster, transport) {\n return await this.createSubscription('channel.raid', '1', (0, generic_external_1.createSingleKeyQuery)('from_broadcaster_user_id', (0, common_1.extractUserId)(broadcaster)), transport, broadcaster);\n }\n /**\n * Subscribe to events that represent a broadcaster being raided by another broadcaster.\n *\n * @param broadcaster The broadcaster you want to listen to incoming raid events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRaidEventsTo(broadcaster, transport) {\n return await this.createSubscription('channel.raid', '1', (0, generic_external_1.createSingleKeyQuery)('to_broadcaster_user_id', (0, common_1.extractUserId)(broadcaster)), transport, broadcaster);\n }\n /**\n * Subscribe to events that represent a Channel Points reward being added to a channel.\n *\n * @param broadcaster The broadcaster you want to listen to reward add events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRewardAddEvents(broadcaster, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward.add', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a Channel Points reward being updated in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to reward update events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRewardUpdateEvents(broadcaster, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward.update', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a specific Channel Points reward being updated.\n *\n * @param broadcaster The broadcaster you want to listen to reward update events for.\n * @param rewardId The ID of the reward you want to listen to update events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRewardUpdateEventsForReward(broadcaster, rewardId, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward.update', '1', (0, eventSub_external_1.createEventSubRewardCondition)(broadcaster, rewardId), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a Channel Points reward being removed from a channel.\n *\n * @param broadcaster The broadcaster you want to listen to reward remove events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRewardRemoveEvents(broadcaster, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward.remove', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a specific Channel Points reward being removed from a channel.\n *\n * @param broadcaster The broadcaster you want to listen to reward remove events for.\n * @param rewardId The ID of the reward you want to listen to remove events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRewardRemoveEventsForReward(broadcaster, rewardId, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward.remove', '1', (0, eventSub_external_1.createEventSubRewardCondition)(broadcaster, rewardId), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a Channel Points reward being redeemed.\n *\n * @param broadcaster The broadcaster you want to listen to redemption events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRedemptionAddEvents(broadcaster, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward_redemption.add', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a specific Channel Points reward being redeemed.\n *\n * @param broadcaster The broadcaster you want to listen to redemption events for.\n * @param rewardId The ID of the reward you want to listen to redemption events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRedemptionAddEventsForReward(broadcaster, rewardId, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward_redemption.add', '1', (0, eventSub_external_1.createEventSubRewardCondition)(broadcaster, rewardId), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a Channel Points redemption being updated.\n *\n * @param broadcaster The broadcaster you want to listen to redemption update events for.\n * @param transport The transport options.\n */\n async subscribeToChannelRedemptionUpdateEvents(broadcaster, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward_redemption.update', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a specific Channel Points reward's redemption being updated.\n *\n * @param broadcaster The broadcaster you want to listen to redemption update events for.\n * @param rewardId The ID of the reward you want to listen to redemption updates for.\n * @param transport The transport options.\n */\n async subscribeToChannelRedemptionUpdateEventsForReward(broadcaster, rewardId, transport) {\n return await this.createSubscription('channel.channel_points_custom_reward_redemption.update', '1', (0, eventSub_external_1.createEventSubRewardCondition)(broadcaster, rewardId), transport, broadcaster, ['channel:read:redemptions', 'channel:manage:redemptions']);\n }\n /**\n * Subscribe to events that represent a poll starting in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to poll begin events for.\n * @param transport The transport options.\n */\n async subscribeToChannelPollBeginEvents(broadcaster, transport) {\n return await this.createSubscription('channel.poll.begin', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:polls', 'channel:manage:polls']);\n }\n /**\n * Subscribe to events that represent a poll being voted on in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to poll progress events for.\n * @param transport The transport options.\n */\n async subscribeToChannelPollProgressEvents(broadcaster, transport) {\n return await this.createSubscription('channel.poll.progress', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:polls', 'channel:manage:polls']);\n }\n /**\n * Subscribe to events that represent a poll ending in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to poll end events for.\n * @param transport The transport options.\n */\n async subscribeToChannelPollEndEvents(broadcaster, transport) {\n return await this.createSubscription('channel.poll.end', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:polls', 'channel:manage:polls']);\n }\n /**\n * Subscribe to events that represent a prediction starting in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to prediction begin events for.\n * @param transport The transport options.\n */\n async subscribeToChannelPredictionBeginEvents(broadcaster, transport) {\n return await this.createSubscription('channel.prediction.begin', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:predictions', 'channel:manage:predictions']);\n }\n /**\n * Subscribe to events that represent a prediction being voted on in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to prediction preogress events for.\n * @param transport The transport options.\n */\n async subscribeToChannelPredictionProgressEvents(broadcaster, transport) {\n return await this.createSubscription('channel.prediction.progress', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:predictions', 'channel:manage:predictions']);\n }\n /**\n * Subscribe to events that represent a prediction being locked in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to prediction lock events for.\n * @param transport The transport options.\n */\n async subscribeToChannelPredictionLockEvents(broadcaster, transport) {\n return await this.createSubscription('channel.prediction.lock', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:predictions', 'channel:manage:predictions']);\n }\n /**\n * Subscribe to events that represent a prediction ending in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to prediction end events for.\n * @param transport The transport options.\n */\n async subscribeToChannelPredictionEndEvents(broadcaster, transport) {\n return await this.createSubscription('channel.prediction.end', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:predictions', 'channel:manage:predictions']);\n }\n /**\n * Subscribe to events that represent the beginning of a creator goal event in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to goal begin events for.\n * @param transport The transport options.\n */\n async subscribeToChannelGoalBeginEvents(broadcaster, transport) {\n return await this.createSubscription('channel.goal.begin', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:goals']);\n }\n /**\n * Subscribe to events that represent progress towards a creator goal.\n *\n * @param broadcaster The broadcaster for which you want to listen to goal progress events.\n * @param transport The transport options.\n */\n async subscribeToChannelGoalProgressEvents(broadcaster, transport) {\n return await this.createSubscription('channel.goal.progress', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:goals']);\n }\n /**\n * Subscribe to events that represent the end of a creator goal event.\n *\n * @param broadcaster The broadcaster for which you want to listen to goal end events.\n * @param transport The transport options.\n */\n async subscribeToChannelGoalEndEvents(broadcaster, transport) {\n return await this.createSubscription('channel.goal.end', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:goals']);\n }\n /**\n * Subscribe to events that represent the beginning of a Hype Train event in a channel.\n *\n * @param broadcaster The broadcaster you want to listen to Hype train begin events for.\n * @param transport The transport options.\n */\n async subscribeToChannelHypeTrainBeginEvents(broadcaster, transport) {\n return await this.createSubscription('channel.hype_train.begin', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:hype_train']);\n }\n /**\n * Subscribe to events that represent progress towards the Hype Train goal.\n *\n * @param broadcaster The broadcaster for which you want to listen to Hype Train progress events.\n * @param transport The transport options.\n */\n async subscribeToChannelHypeTrainProgressEvents(broadcaster, transport) {\n return await this.createSubscription('channel.hype_train.progress', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:hype_train']);\n }\n /**\n * Subscribe to events that represent the end of a Hype Train event.\n *\n * @param broadcaster The broadcaster for which you want to listen to Hype Train end events.\n * @param transport The transport options.\n */\n async subscribeToChannelHypeTrainEndEvents(broadcaster, transport) {\n return await this.createSubscription('channel.hype_train.end', '1', (0, eventSub_external_1.createEventSubBroadcasterCondition)(broadcaster), transport, broadcaster, ['channel:read:hype_train']);\n }\n /**\n * Subscribe to events that represent a broadcaster shouting out another broadcaster.\n *\n * @param broadcaster The broadcaster for which you want to listen to outgoing shoutout events.\n * @param transport The transport options.\n */\n async subscribeToChannelShoutoutCreateEvents(broadcaster, transport) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n return await this.createSubscription('channel.shoutout.create', '1', (0, eventSub_external_1.createEventSubModeratorCondition)(broadcasterId, this._getUserContextIdWithDefault(broadcasterId)), transport, broadcasterId, ['moderator:read:shoutouts', 'moderator:manage:shoutouts'], true);\n }\n /**\n * Subscribe to events that represent a broadcaster being shouting out by another broadcaster.\n *\n * @param broadcaster The broadcaster for which you want to listen to incoming shoutout events.\n * @param transport The transport options.\n */\n async subscribeToChannelShoutoutReceiveEvents(broadcaster, transport) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n return await this.createSubscription('channel.shoutout.receive', '1', (0, eventSub_external_1.createEventSubModeratorCondition)(broadcasterId, this._getUserContextIdWithDefault(broadcasterId)), transport, broadcasterId, ['moderator:read:shoutouts', 'moderator:manage:shoutouts'], true);\n }\n /**\n * Subscribe to events that represent an extension Bits transaction.\n *\n * @param clientId The Client ID for the extension you want to listen to Bits transactions for.\n * @param transport The transport options.\n */\n async subscribeToExtensionBitsTransactionCreateEvents(clientId, transport) {\n return await this.createSubscription('extension.bits_transaction.create', '1', (0, generic_external_1.createSingleKeyQuery)('extension_client_id', clientId), transport);\n }\n /**\n * Subscribe to events that represent a user granting authorization to an application.\n *\n * @param clientId The Client ID for the application you want to listen to authorization grant events for.\n * @param transport The transport options.\n */\n async subscribeToUserAuthorizationGrantEvents(clientId, transport) {\n return await this.createSubscription('user.authorization.grant', '1', (0, generic_external_1.createSingleKeyQuery)('client_id', clientId), transport);\n }\n /**\n * Subscribe to events that represent a user revoking their authorization from an application.\n *\n * @param clientId The Client ID for the application you want to listen to authorization revoke events for.\n * @param transport The transport options.\n */\n async subscribeToUserAuthorizationRevokeEvents(clientId, transport) {\n return await this.createSubscription('user.authorization.revoke', '1', (0, generic_external_1.createSingleKeyQuery)('client_id', clientId), transport);\n }\n /**\n * Subscribe to events that represent a user updating their account details.\n *\n * @param user The user you want to listen to user update events for.\n * @param transport The transport options.\n * @param withEmail Whether to request adding the email address of the user to the notification.\n *\n * Only has an effect with the websocket transport.\n * With the webhook transport, this depends solely on the previous authorization given by the user.\n */\n async subscribeToUserUpdateEvents(user, transport, withEmail) {\n return await this.createSubscription('user.update', '1', (0, generic_external_1.createSingleKeyQuery)('user_id', (0, common_1.extractUserId)(user)), transport, user, withEmail ? ['user:read:email'] : undefined);\n }\n /**\n * Subscribe to events that represent a drop entitlement being granted.\n *\n * @expandParams\n *\n * @param filter\n * @param transport The transport options.\n */\n async subscribeToDropEntitlementGrantEvents(filter, transport) {\n return await this.createSubscription('drop.entitlement.grant', '1', (0, eventSub_external_1.createEventSubDropEntitlementGrantCondition)(filter), transport, undefined, undefined, false, true);\n }\n async _deleteSubscriptionsWithCondition(cond) {\n const subsPaginator = this.getSubscriptionsPaginated();\n for await (const sub of subsPaginator) {\n if (!cond || cond(sub)) {\n await sub.unsubscribe();\n }\n }\n }\n};\nHelixEventSubApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixEventSubApi')\n], HelixEventSubApi);\nexports.HelixEventSubApi = HelixEventSubApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionTransactionQuery = exports.createExtensionProductBody = exports.createReleasedExtensionFilter = void 0;\n/** @internal */\nfunction createReleasedExtensionFilter(extensionId, version) {\n return {\n extension_id: extensionId,\n extension_version: version\n };\n}\nexports.createReleasedExtensionFilter = createReleasedExtensionFilter;\n/** @internal */\nfunction createExtensionProductBody(data) {\n return {\n sku: data.sku,\n cost: {\n amount: data.cost,\n type: 'bits'\n },\n display_name: data.displayName,\n in_development: data.inDevelopment,\n expiration: data.expirationDate,\n is_broadcast: data.broadcast\n };\n}\nexports.createExtensionProductBody = createExtensionProductBody;\n/** @internal */\nfunction createExtensionTransactionQuery(extensionId, filter) {\n return {\n extension_id: extensionId,\n id: filter.transactionIds\n };\n}\nexports.createExtensionTransactionQuery = createExtensionTransactionQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannelReference = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A reference to a Twitch channel.\n */\nlet HelixChannelReference = class HelixChannelReference extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the channel.\n */\n get id() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The display name of the channel.\n */\n get displayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the channel.\n */\n async getChannel() {\n return (0, common_1.checkRelationAssertion)(await this._client.channels.getChannelInfoById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * Gets more information about the broadcaster of the channel.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The ID of the game currently played on the channel.\n */\n get gameId() {\n return this[common_1.rawDataSymbol].game_id;\n }\n /**\n * The name of the game currently played on the channel.\n */\n get gameName() {\n return this[common_1.rawDataSymbol].game_name;\n }\n /**\n * Gets information about the game that is being played on the stream.\n */\n async getGame() {\n return this[common_1.rawDataSymbol].game_id\n ? (0, common_1.checkRelationAssertion)(await this._client.games.getGameById(this[common_1.rawDataSymbol].game_id))\n : null;\n }\n /**\n * The title of the channel.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChannelReference.prototype, \"_client\", void 0);\nHelixChannelReference = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannelReference', 'id')\n], HelixChannelReference);\nexports.HelixChannelReference = HelixChannelReference;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixExtensionBitsProduct = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * An extension's product to purchase with Bits.\n */\nlet HelixExtensionBitsProduct = class HelixExtensionBitsProduct extends common_1.DataObject {\n /**\n * The product's unique identifier.\n */\n get sku() {\n return this[common_1.rawDataSymbol].sku;\n }\n /**\n * The product's cost, in bits.\n */\n get cost() {\n return this[common_1.rawDataSymbol].cost.amount;\n }\n /**\n * The product's display name.\n */\n get displayName() {\n return this[common_1.rawDataSymbol].display_name;\n }\n /**\n * Whether the product is in development.\n */\n get inDevelopment() {\n return this[common_1.rawDataSymbol].in_development;\n }\n /**\n * Whether the product's purchases is broadcast to all users.\n */\n get isBroadcast() {\n return this[common_1.rawDataSymbol].is_broadcast;\n }\n /**\n * The product's expiration date. If the product never expires, this is null.\n */\n get expirationDate() {\n return (0, shared_utils_1.mapNullable)(this[common_1.rawDataSymbol].expiration, exp => new Date(exp));\n }\n};\nHelixExtensionBitsProduct = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixExtensionBitsProduct', 'sku')\n], HelixExtensionBitsProduct);\nexports.HelixExtensionBitsProduct = HelixExtensionBitsProduct;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixExtensionTransaction = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A bits transaction made inside an extension.\n */\nlet HelixExtensionTransaction = class HelixExtensionTransaction extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the transaction.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The time when the transaction was made.\n */\n get transactionDate() {\n return new Date(this[common_1.rawDataSymbol].timestamp);\n }\n /**\n * The ID of the broadcaster that runs the extension on their channel.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster that runs the extension on their channel.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * The display name of the broadcaster that runs the extension on their channel.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets information about the broadcaster that runs the extension on their channel.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The ID of the user that made the transaction.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user that made the transaction.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user that made the transaction.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets information about the user that made the transaction.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * The product type. Currently always BITS_IN_EXTENSION.\n */\n get productType() {\n return this[common_1.rawDataSymbol].product_type;\n }\n /**\n * The product SKU.\n */\n get productSku() {\n return this[common_1.rawDataSymbol].product_data.sku;\n }\n /**\n * The cost of the product, in bits.\n */\n get productCost() {\n return this[common_1.rawDataSymbol].product_data.cost.amount;\n }\n /**\n * The display name of the product.\n */\n get productDisplayName() {\n return this[common_1.rawDataSymbol].product_data.displayName;\n }\n /**\n * Whether the product is in development.\n */\n get productInDevelopment() {\n return this[common_1.rawDataSymbol].product_data.inDevelopment;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixExtensionTransaction.prototype, \"_client\", void 0);\nHelixExtensionTransaction = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixExtensionTransaction', 'id')\n], HelixExtensionTransaction);\nexports.HelixExtensionTransaction = HelixExtensionTransaction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixExtensionsApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst extensions_external_1 = require(\"../../interfaces/endpoints/extensions.external\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixChannelReference_1 = require(\"../channel/HelixChannelReference\");\nconst HelixExtensionBitsProduct_1 = require(\"./HelixExtensionBitsProduct\");\nconst HelixExtensionTransaction_1 = require(\"./HelixExtensionTransaction\");\n/**\n * The Helix API methods that deal with extensions.\n *\n * Can be accessed using `client.extensions` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const transactions = await api.extionsions.getExtensionTransactions('abcd');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Extensions\n */\nlet HelixExtensionsApi = class HelixExtensionsApi extends BaseApi_1.BaseApi {\n /**\n * Gets a released extension by ID.\n *\n * @param extensionId The ID of the extension.\n * @param version The version of the extension. If not given, gets the latest version.\n */\n async getReleasedExtension(extensionId, version) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'extensions/released',\n query: (0, extensions_external_1.createReleasedExtensionFilter)(extensionId, version)\n });\n return new common_1.HelixExtension(result.data[0]);\n }\n /**\n * Gets a list of channels that are currently live and have the given extension installed.\n *\n * @param extensionId The ID of the extension.\n * @param pagination\n *\n * @expandParams\n */\n async getLiveChannelsWithExtension(extensionId, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'extensions/live',\n query: {\n ...(0, generic_external_1.createSingleKeyQuery)('extension_id', extensionId),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixChannelReference_1.HelixChannelReference, this._client);\n }\n /**\n * Creates a paginator for channels that are currently live and have the given extension installed.\n *\n * @param extensionId The ID of the extension.\n */\n getLiveChannelsWithExtensionPaginated(extensionId) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'extensions/live',\n query: (0, generic_external_1.createSingleKeyQuery)('extension_id', extensionId)\n }, this._client, data => new HelixChannelReference_1.HelixChannelReference(data, this._client));\n }\n /**\n * Gets an extension's Bits products.\n *\n * This only works if the provided token belongs to an extension's client ID,\n * and will return the products for that extension.\n *\n * @param includeDisabled Whether to include disabled/expired products.\n */\n async getExtensionBitsProducts(includeDisabled) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'bits/extensions',\n forceType: 'app',\n query: (0, generic_external_1.createSingleKeyQuery)('should_include_all', includeDisabled === null || includeDisabled === void 0 ? void 0 : includeDisabled.toString())\n });\n return result.data.map(data => new HelixExtensionBitsProduct_1.HelixExtensionBitsProduct(data));\n }\n /**\n * Creates or updates a Bits product of an extension.\n *\n * This only works if the provided token belongs to an extension's client ID,\n * and will create/update a product for that extension.\n *\n * @param data\n *\n * @expandParams\n */\n async putExtensionBitsProduct(data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'bits/extensions',\n method: 'PUT',\n forceType: 'app',\n jsonBody: (0, extensions_external_1.createExtensionProductBody)(data)\n });\n return new HelixExtensionBitsProduct_1.HelixExtensionBitsProduct(result.data[0]);\n }\n /**\n * Gets a list of transactions for the given extension.\n *\n * @param extensionId The ID of the extension to get transactions for.\n * @param filter Additional filters.\n */\n async getExtensionTransactions(extensionId, filter = {}) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'extensions/transactions',\n forceType: 'app',\n query: {\n ...(0, extensions_external_1.createExtensionTransactionQuery)(extensionId, filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixExtensionTransaction_1.HelixExtensionTransaction, this._client);\n }\n /**\n * Creates a paginator for transactions for the given extension.\n *\n * @param extensionId The ID of the extension to get transactions for.\n * @param filter Additional filters.\n */\n getExtensionTransactionsPaginated(extensionId, filter = {}) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'extensions/transactions',\n forceType: 'app',\n query: (0, extensions_external_1.createExtensionTransactionQuery)(extensionId, filter)\n }, this._client, data => new HelixExtensionTransaction_1.HelixExtensionTransaction(data, this._client));\n }\n};\nHelixExtensionsApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixExtensionsApi')\n], HelixExtensionsApi);\nexports.HelixExtensionsApi = HelixExtensionsApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixGame = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A game as displayed on Twitch.\n */\nlet HelixGame = class HelixGame extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the game.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The name of the game.\n */\n get name() {\n return this[common_1.rawDataSymbol].name;\n }\n /**\n * The URL of the box art of the game.\n */\n get boxArtUrl() {\n return this[common_1.rawDataSymbol].box_art_url;\n }\n /**\n * The IGDB ID of the game, or null if the game doesn't have an IGDB ID assigned at Twitch.\n */\n get igdbId() {\n return this[common_1.rawDataSymbol].igdb_id || null;\n }\n /**\n * Builds the URL of the box art of the game using the given dimensions.\n *\n * @param width The width of the box art.\n * @param height The height of the box art.\n */\n getBoxArtUrl(width, height) {\n return this[common_1.rawDataSymbol].box_art_url\n .replace('{width}', width.toString())\n .replace('{height}', height.toString());\n }\n /**\n * Gets streams that are currently playing the game.\n *\n * @param pagination\n * @expandParams\n */\n async getStreams(pagination) {\n return await this._client.streams.getStreams({ ...pagination, game: this[common_1.rawDataSymbol].id });\n }\n /**\n * Creates a paginator for streams that are currently playing the game.\n */\n getStreamsPaginated() {\n return this._client.streams.getStreamsPaginated({ game: this[common_1.rawDataSymbol].id });\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixGame.prototype, \"_client\", void 0);\nHelixGame = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixGame', 'id')\n], HelixGame);\nexports.HelixGame = HelixGame;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixGameApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixRequestBatcher_1 = require(\"../../utils/HelixRequestBatcher\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixGame_1 = require(\"./HelixGame\");\n/**\n * The Helix API methods that deal with games.\n *\n * Can be accessed using `client.games` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const game = await api.games.getGameByName('Hearthstone');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Games\n */\nlet HelixGameApi = class HelixGameApi extends BaseApi_1.BaseApi {\n constructor() {\n super(...arguments);\n /** @internal */\n this._getGameByIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'games'\n }, 'id', 'id', this._client, (data) => new HelixGame_1.HelixGame(data, this._client));\n /** @internal */\n this._getGameByNameBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'games'\n }, 'name', 'name', this._client, (data) => new HelixGame_1.HelixGame(data, this._client));\n /** @internal */\n this._getGameByIgdbIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'games'\n }, 'igdb_id', 'igdb_id', this._client, (data) => new HelixGame_1.HelixGame(data, this._client));\n }\n /**\n * Gets the game data for the given list of game IDs.\n *\n * @param ids The game IDs you want to look up.\n */\n async getGamesByIds(ids) {\n return await this._getGames('id', ids);\n }\n /**\n * Gets the game data for the given list of game names.\n *\n * @param names The game names you want to look up.\n */\n async getGamesByNames(names) {\n return await this._getGames('name', names);\n }\n /**\n * Gets the game data for the given list of IGDB IDs.\n *\n * @param igdbIds The IGDB IDs you want to look up.\n */\n async getGamesByIgdbIds(igdbIds) {\n return await this._getGames('igdb_id', igdbIds);\n }\n /**\n * Gets the game data for the given game ID.\n *\n * @param id The game ID you want to look up.\n */\n async getGameById(id) {\n var _a;\n const games = await this._getGames('id', [id]);\n return (_a = games[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Gets the game data for the given game name.\n *\n * @param name The game name you want to look up.\n */\n async getGameByName(name) {\n var _a;\n const games = await this._getGames('name', [name]);\n return (_a = games[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Gets the game data for the given IGDB ID.\n *\n * @param igdbId The IGDB ID you want to look up.\n */\n async getGameByIgdbId(igdbId) {\n var _a;\n const games = await this._getGames('igdb_id', [igdbId]);\n return (_a = games[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Gets the game data for the given game ID, batching multiple calls into fewer requests as the API allows.\n *\n * @param id The game ID you want to look up.\n */\n async getGameByIdBatched(id) {\n return await this._getGameByIdBatcher.request(id);\n }\n /**\n * Gets the game data for the given game name, batching multiple calls into fewer requests as the API allows.\n *\n * @param name The game name you want to look up.\n */\n async getGameByNameBatched(name) {\n return await this._getGameByNameBatcher.request(name);\n }\n /**\n * Gets the game data for the given IGDB ID, batching multiple calls into fewer requests as the API allows.\n *\n * @param igdbId The IGDB ID you want to look up.\n */\n async getGameByIgdbIdBatched(igdbId) {\n return await this._getGameByIgdbIdBatcher.request(igdbId);\n }\n /**\n * Gets a list of the most viewed games at the moment.\n *\n * @param pagination\n *\n * @expandParams\n */\n async getTopGames(pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'games/top',\n query: (0, HelixPagination_1.createPaginationQuery)(pagination)\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixGame_1.HelixGame, this._client);\n }\n /**\n * Creates a paginator for the most viewed games at the moment.\n */\n getTopGamesPaginated() {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'games/top'\n }, this._client, data => new HelixGame_1.HelixGame(data, this._client));\n }\n /** @internal */\n async _getGames(filterType, filterValues) {\n if (!filterValues.length) {\n return [];\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'games',\n query: {\n [filterType]: filterValues\n }\n });\n return result.data.map(entry => new HelixGame_1.HelixGame(entry, this._client));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixGameApi.prototype, \"_getGameByIdBatcher\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixGameApi.prototype, \"_getGameByNameBatcher\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixGameApi.prototype, \"_getGameByIgdbIdBatcher\", void 0);\nHelixGameApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixGameApi')\n], HelixGameApi);\nexports.HelixGameApi = HelixGameApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixGoal = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A creator goal.\n */\nlet HelixGoal = class HelixGoal extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the goal.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the broadcaster the goal belongs to.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The display name of the broadcaster the goal belongs to.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * The name of the broadcaster the goal belongs to.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * Gets more information about the broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The type of the goal.\n */\n get type() {\n return this[common_1.rawDataSymbol].type;\n }\n /**\n * The description of the goal.\n */\n get description() {\n return this[common_1.rawDataSymbol].description;\n }\n /**\n * The current value of the goal.\n */\n get currentAmount() {\n return this[common_1.rawDataSymbol].current_amount;\n }\n /**\n * The target value of the goal.\n */\n get targetAmount() {\n return this[common_1.rawDataSymbol].target_amount;\n }\n /**\n * The date and time when the goal was created.\n */\n get creationDate() {\n return this[common_1.rawDataSymbol].created_at;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixGoal.prototype, \"_client\", void 0);\nHelixGoal = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixGoal', 'id')\n], HelixGoal);\nexports.HelixGoal = HelixGoal;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixGoalApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixGoal_1 = require(\"./HelixGoal\");\n/**\n * The Helix API methods that deal with creator goals.\n *\n * Can be accessed using `client.goals` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const { data: goals } = await api.helix.goals.getGoals('61369223');\n *\n * @meta category helix\n * @meta categorizedTitle Goals\n */\nlet HelixGoalApi = class HelixGoalApi extends BaseApi_1.BaseApi {\n async getGoals(broadcaster) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'goals',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:goals'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return result.data.map(data => new HelixGoal_1.HelixGoal(data, this._client));\n }\n};\nHelixGoalApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixGoalApi')\n], HelixGoalApi);\nexports.HelixGoalApi = HelixGoalApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixHypeTrainContribution = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A Hype Train contributor.\n */\nlet HelixHypeTrainContribution = class HelixHypeTrainContribution extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user contributing to the Hype Train.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user;\n }\n /**\n * Gets additional information about the user contributing to the Hype Train.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user));\n }\n /**\n * The Hype Train event type.\n */\n get type() {\n return this[common_1.rawDataSymbol].type;\n }\n /**\n * The total contribution amount in subs or bits.\n */\n get total() {\n return this[common_1.rawDataSymbol].total;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixHypeTrainContribution.prototype, \"_client\", void 0);\nHelixHypeTrainContribution = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixHypeTrainContribution', 'userId')\n], HelixHypeTrainContribution);\nexports.HelixHypeTrainContribution = HelixHypeTrainContribution;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixHypeTrainEvent = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixHypeTrainContribution_1 = require(\"./HelixHypeTrainContribution\");\n/**\n * A Hype Train event.\n */\nlet HelixHypeTrainEvent = class HelixHypeTrainEvent extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The unique ID of the Hype Train event.\n */\n get eventId() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The type of the Hype Train event.\n */\n get eventType() {\n return this[common_1.rawDataSymbol].event_type;\n }\n /**\n * The date of the Hype Train event.\n */\n get eventDate() {\n return new Date(this[common_1.rawDataSymbol].event_timestamp);\n }\n /**\n * The version of the Hype Train event.\n */\n get eventVersion() {\n return this[common_1.rawDataSymbol].version;\n }\n /**\n * The unique ID of the Hype Train.\n */\n get id() {\n return this[common_1.rawDataSymbol].event_data.id;\n }\n /**\n * The user ID of the broadcaster where the Hype Train event was triggered.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].event_data.broadcaster_id;\n }\n /**\n * Gets more information about the broadcaster where the Hype Train event was triggered.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].event_data.broadcaster_id));\n }\n /**\n * The level of the Hype Train event.\n */\n get level() {\n return this[common_1.rawDataSymbol].event_data.level;\n }\n /**\n * The time when the Hype Train started.\n */\n get startDate() {\n return new Date(this[common_1.rawDataSymbol].event_data.started_at);\n }\n /**\n * The time when the Hype Train is set to expire.\n */\n get expiryDate() {\n return new Date(this[common_1.rawDataSymbol].event_data.expires_at);\n }\n /**\n * The time when the Hype Train cooldown will end.\n */\n get cooldownDate() {\n return new Date(this[common_1.rawDataSymbol].event_data.cooldown_end_time);\n }\n /**\n * The total amount of progress points of the Hype Train event.\n */\n get total() {\n return this[common_1.rawDataSymbol].event_data.total;\n }\n /**\n * The progress points goal to reach the next Hype Train level.\n */\n get goal() {\n return this[common_1.rawDataSymbol].event_data.goal;\n }\n /**\n * The last contribution to the Hype Train event.\n */\n get lastContribution() {\n return new HelixHypeTrainContribution_1.HelixHypeTrainContribution(this[common_1.rawDataSymbol].event_data.last_contribution, this._client);\n }\n /**\n * Array list of the top contributions to the Hype Train event for bits and subs.\n */\n get topContributions() {\n return this[common_1.rawDataSymbol].event_data.top_contributions.map(cont => new HelixHypeTrainContribution_1.HelixHypeTrainContribution(cont, this._client));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixHypeTrainEvent.prototype, \"_client\", void 0);\nHelixHypeTrainEvent = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixHypeTrainEvent', 'id')\n], HelixHypeTrainEvent);\nexports.HelixHypeTrainEvent = HelixHypeTrainEvent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixHypeTrainApi = void 0;\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixHypeTrainEvent_1 = require(\"./HelixHypeTrainEvent\");\n/**\n * The Helix API methods that deal with Hype Trains.\n *\n * Can be accessed using `client.hypeTrain` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const { data: events } = await api.hypeTrain.getHypeTrainEventsForBroadcaster('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Hype Trains\n */\nclass HelixHypeTrainApi extends BaseApi_1.BaseApi {\n /**\n * Gets the events of the current or latest Hype Train for the specified broadcaster.\n *\n * @param broadcaster The broadcaster to fetch Hype Train events for.\n * @param pagination\n *\n * @expandParams\n */\n async getHypeTrainEventsForBroadcaster(broadcaster, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'hypetrain/events',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:hype_train'],\n query: {\n ...(0, api_call_1.createBroadcasterQuery)(broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixHypeTrainEvent_1.HelixHypeTrainEvent, this._client);\n }\n /**\n * Creates a paginator for the events of the current or latest Hype Train for the specified broadcaster.\n *\n * @param broadcaster The broadcaster to fetch Hype Train events for.\n */\n getHypeTrainEventsForBroadcasterPaginated(broadcaster) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'hypetrain/events',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:hype_train'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n }, this._client, (data) => new HelixHypeTrainEvent_1.HelixHypeTrainEvent(data, this._client));\n }\n}\nexports.HelixHypeTrainApi = HelixHypeTrainApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createUpdateShieldModeStatusBody = exports.createBanUserBody = exports.createAutoModSettingsBody = exports.createAutoModProcessBody = exports.createModeratorModifyQuery = exports.createModerationUserListQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createModerationUserListQuery(channel, filter) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(channel),\n user_id: filter === null || filter === void 0 ? void 0 : filter.userId\n };\n}\nexports.createModerationUserListQuery = createModerationUserListQuery;\n/** @internal */\nfunction createModeratorModifyQuery(broadcaster, user) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n user_id: (0, common_1.extractUserId)(user)\n };\n}\nexports.createModeratorModifyQuery = createModeratorModifyQuery;\n/** @internal */\nfunction createAutoModProcessBody(user, msgId, allow) {\n return {\n user_id: (0, common_1.extractUserId)(user),\n msg_id: msgId,\n action: allow ? 'ALLOW' : 'DENY'\n };\n}\nexports.createAutoModProcessBody = createAutoModProcessBody;\n/** @internal */\nfunction createAutoModSettingsBody(data) {\n return {\n overall_level: data.overallLevel,\n aggression: data.aggression,\n bullying: data.bullying,\n disability: data.disability,\n misogyny: data.misogyny,\n race_ethnicity_or_religion: data.raceEthnicityOrReligion,\n sex_based_terms: data.sexBasedTerms,\n sexuality_sex_or_gender: data.sexualitySexOrGender,\n swearing: data.swearing\n };\n}\nexports.createAutoModSettingsBody = createAutoModSettingsBody;\n/** @internal */\nfunction createBanUserBody(data) {\n return {\n data: {\n duration: data.duration,\n reason: data.reason,\n user_id: (0, common_1.extractUserId)(data.user)\n }\n };\n}\nexports.createBanUserBody = createBanUserBody;\n/** @internal */\nfunction createUpdateShieldModeStatusBody(activate) {\n return {\n is_active: activate\n };\n}\nexports.createUpdateShieldModeStatusBody = createUpdateShieldModeStatusBody;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixAutoModSettings = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * The AutoMod settings of a channel.\n */\nlet HelixAutoModSettings = class HelixAutoModSettings extends common_1.DataObject {\n /**\n * The ID of the broadcaster for which the AutoMod settings were fetched.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The ID of a user that has permission to moderate the broadcaster's chat room.\n */\n get moderatorId() {\n return this[common_1.rawDataSymbol].moderator_id;\n }\n /**\n * The default AutoMod level for the broadcaster. This is null if the broadcaster changed individual settings.\n */\n get overallLevel() {\n return this[common_1.rawDataSymbol].overall_level ? this[common_1.rawDataSymbol].overall_level : null;\n }\n /**\n * The AutoMod level for discrimination against disability.\n */\n get disability() {\n return this[common_1.rawDataSymbol].disability;\n }\n /**\n * The AutoMod level for hostility involving aggression.\n */\n get aggression() {\n return this[common_1.rawDataSymbol].aggression;\n }\n /**\n * The AutoMod level for discrimination based on sexuality, sex, or gender.\n */\n get sexualitySexOrGender() {\n return this[common_1.rawDataSymbol].sexuality_sex_or_gender;\n }\n /**\n * The AutoMod level for discrimination against women.\n */\n get misogyny() {\n return this[common_1.rawDataSymbol].misogyny;\n }\n /**\n * The AutoMod level for hostility involving name calling or insults.\n */\n get bullying() {\n return this[common_1.rawDataSymbol].bullying;\n }\n /**\n * The AutoMod level for profanity.\n */\n get swearing() {\n return this[common_1.rawDataSymbol].swearing;\n }\n /**\n * The AutoMod level for racial discrimination.\n */\n get raceEthnicityOrReligion() {\n return this[common_1.rawDataSymbol].race_ethnicity_or_religion;\n }\n /**\n * The AutoMod level for sexual content.\n */\n get sexBasedTerms() {\n return this[common_1.rawDataSymbol].sex_based_terms;\n }\n};\nHelixAutoModSettings = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixAutoModSettings', 'broadcasterId')\n], HelixAutoModSettings);\nexports.HelixAutoModSettings = HelixAutoModSettings;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixAutoModStatus = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * The status of a message that says whether it is permitted by AutoMod or not.\n */\nlet HelixAutoModStatus = class HelixAutoModStatus extends common_1.DataObject {\n /**\n * The developer-generated ID that was sent with the request data.\n */\n get messageId() {\n return this[common_1.rawDataSymbol].msg_id;\n }\n /**\n * Whether the message is permitted by AutoMod or not.\n */\n get isPermitted() {\n return this[common_1.rawDataSymbol].is_permitted;\n }\n};\nHelixAutoModStatus = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixAutoModStatus', 'messageId')\n], HelixAutoModStatus);\nexports.HelixAutoModStatus = HelixAutoModStatus;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBanUser = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * Information about a user who has been banned/timed out.\n *\n * @hideProtected\n */\nlet HelixBanUser = class HelixBanUser extends common_1.DataObject {\n /** @internal */\n constructor(data, expiryTimestamp, client) {\n super(data);\n this._expiryTimestamp = expiryTimestamp;\n this._client = client;\n }\n /**\n * The date and time that the ban/timeout was created.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * The date and time that the timeout will end. Is `null` if the user was banned instead of put in a timeout.\n */\n get expiryDate() {\n return (0, shared_utils_1.mapNullable)(this._expiryTimestamp, ts => new Date(ts));\n }\n /**\n * The ID of the moderator that banned or put the user in the timeout.\n */\n get moderatorId() {\n return this[common_1.rawDataSymbol].moderator_id;\n }\n /**\n * Gets more information about the moderator that banned or put the user in the timeout.\n */\n async getModerator() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].moderator_id));\n }\n /**\n * The ID of the user that was banned or put in a timeout.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * Gets more information about the user that was banned or put in a timeout.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixBanUser.prototype, \"_client\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixBanUser.prototype, \"_expiryTimestamp\", void 0);\nHelixBanUser = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixBanUser', 'userId')\n], HelixBanUser);\nexports.HelixBanUser = HelixBanUser;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBan = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixBanUser_1 = require(\"./HelixBanUser\");\n/**\n * Information about the ban of a user.\n *\n * @inheritDoc\n */\nlet HelixBan = class HelixBan extends HelixBanUser_1.HelixBanUser {\n /** @internal */\n constructor(data, client) {\n super(data, data.expires_at || null, client);\n }\n /**\n * The name of the user that was banned or put in a timeout.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user that was banned or put in a timeout.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * The name of the moderator that banned or put the user in the timeout.\n */\n get moderatorName() {\n return this[common_1.rawDataSymbol].moderator_login;\n }\n /**\n * The display name of the moderator that banned or put the user in the timeout.\n */\n get moderatorDisplayName() {\n return this[common_1.rawDataSymbol].moderator_name;\n }\n /**\n * The reason why the user was banned or timed out. Returns `null` if no reason was given.\n */\n get reason() {\n return this[common_1.rawDataSymbol].reason || null;\n }\n};\nHelixBan = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixBan', 'userId')\n], HelixBan);\nexports.HelixBan = HelixBan;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBlockedTerm = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * Information about a word or phrase blocked in a broadcaster's channel.\n */\nlet HelixBlockedTerm = class HelixBlockedTerm extends common_1.DataObject {\n /**\n * The ID of the broadcaster that owns the list of blocked terms.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The date and time of when the term was blocked.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * The date and time of when the blocked term is set to expire. After the block expires, users will be able to use the term in the broadcaster\u2019s chat room.\n * Is `null` if the term was added manually or permanently blocked by AutoMod.\n */\n get expirationDate() {\n return this[common_1.rawDataSymbol].expires_at ? new Date(this[common_1.rawDataSymbol].expires_at) : null;\n }\n /**\n * An ID that uniquely identifies this blocked term.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the moderator that blocked the word or phrase from being used in the broadcaster\u2019s chat room.\n */\n get moderatorId() {\n return this[common_1.rawDataSymbol].moderator_id;\n }\n /**\n * The blocked word or phrase.\n */\n get text() {\n return this[common_1.rawDataSymbol].text;\n }\n /**\n * The date and time of when the term was updated.\n */\n get updatedDate() {\n return new Date(this[common_1.rawDataSymbol].updated_at);\n }\n};\nHelixBlockedTerm = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixBlockedTerm', 'id')\n], HelixBlockedTerm);\nexports.HelixBlockedTerm = HelixBlockedTerm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixModerator = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * Information about the moderator status of a user.\n */\nlet HelixModerator = class HelixModerator extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets more information about the user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixModerator.prototype, \"_client\", void 0);\nHelixModerator = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixModerator', 'userId')\n], HelixModerator);\nexports.HelixModerator = HelixModerator;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixShieldModeStatus = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * Information about the Shield Mode status of a channel.\n */\nlet HelixShieldModeStatus = class HelixShieldModeStatus extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * Whether Shield Mode is active.\n */\n get isActive() {\n return this[common_1.rawDataSymbol].is_active;\n }\n /**\n * The ID of the moderator that last activated Shield Mode.\n */\n get moderatorId() {\n return this[common_1.rawDataSymbol].moderator_id;\n }\n /**\n * The name of the moderator that last activated Shield Mode.\n */\n get moderatorName() {\n return this[common_1.rawDataSymbol].moderator_login;\n }\n /**\n * The display name of the moderator that last activated Shield Mode.\n */\n get moderatorDisplayName() {\n return this[common_1.rawDataSymbol].moderator_name;\n }\n /**\n * Gets more information about the moderator that last activated Shield Mode.\n */\n async getModerator() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].moderator_id));\n }\n /**\n * The date when Shield Mode was last activated. `null` indicates Shield Mode hasn't been previously activated.\n */\n get lastActivationDate() {\n return this[common_1.rawDataSymbol].last_activated_at === '' ? null : new Date(this[common_1.rawDataSymbol].last_activated_at);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixShieldModeStatus.prototype, \"_client\", void 0);\nHelixShieldModeStatus = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixShieldModeStatus')\n], HelixShieldModeStatus);\nexports.HelixShieldModeStatus = HelixShieldModeStatus;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixModerationApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst moderation_external_1 = require(\"../../interfaces/endpoints/moderation.external\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixAutoModSettings_1 = require(\"./HelixAutoModSettings\");\nconst HelixAutoModStatus_1 = require(\"./HelixAutoModStatus\");\nconst HelixBan_1 = require(\"./HelixBan\");\nconst HelixBanUser_1 = require(\"./HelixBanUser\");\nconst HelixBlockedTerm_1 = require(\"./HelixBlockedTerm\");\nconst HelixModerator_1 = require(\"./HelixModerator\");\nconst HelixShieldModeStatus_1 = require(\"./HelixShieldModeStatus\");\n/**\n * The Helix API methods that deal with moderation.\n *\n * Can be accessed using `client.moderation` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const { data: users } = await api.moderation.getBannedUsers('61369223');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Moderation\n */\nlet HelixModerationApi = class HelixModerationApi extends BaseApi_1.BaseApi {\n /**\n * Gets a list of banned users in a given channel.\n *\n * @param channel The channel to get the banned users from.\n * @param filter Additional filters for the result set.\n *\n * @expandParams\n */\n async getBannedUsers(channel, filter) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/banned',\n userId: (0, common_1.extractUserId)(channel),\n scopes: ['moderation:read'],\n query: {\n ...(0, moderation_external_1.createModerationUserListQuery)(channel, filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixBan_1.HelixBan, this._client);\n }\n /**\n * Creates a paginator for banned users in a given channel.\n *\n * @param channel The channel to get the banned users from.\n */\n getBannedUsersPaginated(channel) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'moderation/banned',\n userId: (0, common_1.extractUserId)(channel),\n scopes: ['moderation:read'],\n query: (0, api_call_1.createBroadcasterQuery)(channel)\n }, this._client, data => new HelixBan_1.HelixBan(data, this._client), 50 // possibly a relatively consistent workaround for twitchdev/issues#18\n );\n }\n /**\n * Checks whether a given user is banned in a given channel.\n *\n * @param channel The channel to check for a ban of the given user.\n * @param user The user to check for a ban in the given channel.\n */\n async checkUserBan(channel, user) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this.getBannedUsers(channel, { userId });\n return result.data.some(ban => ban.userId === userId);\n }\n /**\n * Gets a list of moderators in a given channel.\n *\n * @param channel The channel to get moderators from.\n * @param filter Additional filters for the result set.\n *\n * @expandParams\n */\n async getModerators(channel, filter) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/moderators',\n userId: (0, common_1.extractUserId)(channel),\n scopes: ['moderation:read', 'channel:manage:moderators'],\n query: {\n ...(0, moderation_external_1.createModerationUserListQuery)(channel, filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixModerator_1.HelixModerator, this._client);\n }\n /**\n * Creates a paginator for moderators in a given channel.\n *\n * @param channel The channel to get moderators from.\n */\n getModeratorsPaginated(channel) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'moderation/moderators',\n userId: (0, common_1.extractUserId)(channel),\n scopes: ['moderation:read', 'channel:manage:moderators'],\n query: (0, api_call_1.createBroadcasterQuery)(channel)\n }, this._client, data => new HelixModerator_1.HelixModerator(data, this._client));\n }\n /**\n * Checks whether a given user is a moderator of a given channel.\n *\n * @param channel The channel to check.\n * @param user The user to check.\n */\n async checkUserMod(channel, user) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this.getModerators(channel, { userId });\n return result.data.some(mod => mod.userId === userId);\n }\n /**\n * Adds a moderator to the broadcaster\u2019s chat room.\n *\n * @param broadcaster The broadcaster that owns the chat room. This ID must match the user ID in the access token.\n * @param user The user to add as a moderator in the broadcaster\u2019s chat room.\n */\n async addModerator(broadcaster, user) {\n await this._client.callApi({\n type: 'helix',\n url: 'moderation/moderators',\n method: 'POST',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:moderators'],\n query: (0, moderation_external_1.createModeratorModifyQuery)(broadcaster, user)\n });\n }\n /**\n * Removes a moderator from the broadcaster\u2019s chat room.\n *\n * @param broadcaster The broadcaster that owns the chat room. This ID must match the user ID in the access token.\n * @param user The user to remove as a moderator from the broadcaster\u2019s chat room.\n */\n async removeModerator(broadcaster, user) {\n await this._client.callApi({\n type: 'helix',\n url: 'moderation/moderators',\n method: 'DELETE',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:moderators'],\n query: (0, moderation_external_1.createModeratorModifyQuery)(broadcaster, user)\n });\n }\n /**\n * Determines whether a string message meets the channel's AutoMod requirements.\n *\n * @param channel The channel in which the messages to check are posted.\n * @param data An array of message data objects.\n */\n async checkAutoModStatus(channel, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/enforcements/status',\n method: 'POST',\n userId: (0, common_1.extractUserId)(channel),\n scopes: ['moderation:read'],\n query: (0, api_call_1.createBroadcasterQuery)(channel),\n jsonBody: {\n data\n }\n });\n return result.data.map(statusData => new HelixAutoModStatus_1.HelixAutoModStatus(statusData));\n }\n /**\n * Processes a message held by AutoMod.\n *\n * @param user The user who is processing the message.\n * @param msgId The ID of the message.\n * @param allow Whether to allow the message - `true` allows, and `false` denies.\n */\n async processHeldAutoModMessage(user, msgId, allow) {\n await this._client.callApi({\n type: 'helix',\n url: 'moderation/automod/message',\n method: 'POST',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['moderator:manage:automod'],\n jsonBody: (0, moderation_external_1.createAutoModProcessBody)(user, msgId, allow)\n });\n }\n /**\n * Gets the AutoMod settings for a broadcaster.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster to get the AutoMod settings for.\n */\n async getAutoModSettings(broadcaster) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/automod/settings',\n userId: broadcasterId,\n scopes: ['moderator:read:automod_settings'],\n canOverrideScopedUserContext: true,\n query: this._createModeratorActionQuery(broadcasterId)\n });\n return result.data.map(data => new HelixAutoModSettings_1.HelixAutoModSettings(data));\n }\n /**\n * Updates the AutoMod settings for a broadcaster.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster for which the AutoMod settings are updated.\n * @param data The updated AutoMod settings that replace the current AutoMod settings.\n */\n async updateAutoModSettings(broadcaster, data) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/automod/settings',\n method: 'PUT',\n userId: broadcasterId,\n scopes: ['moderator:manage:automod_settings'],\n canOverrideScopedUserContext: true,\n query: this._createModeratorActionQuery(broadcasterId),\n jsonBody: (0, moderation_external_1.createAutoModSettingsBody)(data)\n });\n return result.data.map(settingsData => new HelixAutoModSettings_1.HelixAutoModSettings(settingsData));\n }\n /**\n * Bans or times out a user in a channel.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster in whose channel the user will be banned/timed out.\n * @param data\n *\n * @expandParams\n *\n * @returns The result data from the ban/timeout request.\n */\n async banUser(broadcaster, data) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/bans',\n method: 'POST',\n userId: broadcasterId,\n scopes: ['moderator:manage:banned_users'],\n canOverrideScopedUserContext: true,\n query: this._createModeratorActionQuery(broadcasterId),\n jsonBody: (0, moderation_external_1.createBanUserBody)(data)\n });\n return result.data.map(banData => new HelixBanUser_1.HelixBanUser(banData, banData.end_time, this._client));\n }\n /**\n * Unbans/removes the timeout for a user in a channel.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster in whose channel the user will be unbanned/removed from timeout.\n * @param user The user who will be unbanned/removed from timeout.\n */\n async unbanUser(broadcaster, user) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n await this._client.callApi({\n type: 'helix',\n url: 'moderation/bans',\n method: 'DELETE',\n userId: broadcasterId,\n scopes: ['moderator:manage:banned_users'],\n canOverrideScopedUserContext: true,\n query: {\n ...this._createModeratorActionQuery(broadcasterId),\n ...(0, generic_external_1.createSingleKeyQuery)('user_id', (0, common_1.extractUserId)(user))\n }\n });\n }\n /**\n * Gets the broadcaster\u2019s list of non-private, blocked words or phrases.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster to get their channel's blocked terms for.\n * @param pagination\n *\n * @expandParams\n *\n * @returns A paginated list of blocked term data in the broadcaster's channel.\n */\n async getBlockedTerms(broadcaster, pagination) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/blocked_terms',\n userId: broadcasterId,\n scopes: ['moderator:read:blocked_terms'],\n canOverrideScopedUserContext: true,\n query: {\n ...this._createModeratorActionQuery(broadcasterId),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixBlockedTerm_1.HelixBlockedTerm, this._client);\n }\n /**\n * Adds a blocked term to the broadcaster's channel.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster in whose channel the term will be blocked.\n * @param text The word or phrase to block from being used in the broadcaster's channel.\n *\n * @returns Information about the term that has been blocked.\n */\n async addBlockedTerm(broadcaster, text) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/blocked_terms',\n method: 'POST',\n userId: broadcasterId,\n scopes: ['moderator:manage:blocked_terms'],\n canOverrideScopedUserContext: true,\n query: this._createModeratorActionQuery(broadcasterId),\n jsonBody: {\n text\n }\n });\n return result.data.map(blockedTermData => new HelixBlockedTerm_1.HelixBlockedTerm(blockedTermData));\n }\n /**\n * Removes a blocked term from the broadcaster's channel.\n *\n * @param broadcaster The broadcaster in whose channel the term will be unblocked.\n * @param moderator A user that has permission to unblock terms in the broadcaster's channel.\n * The token of this user will be used to remove the blocked term.\n * @param id The ID of the term that should be unblocked.\n */\n async removeBlockedTerm(broadcaster, moderator, id) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n await this._client.callApi({\n type: 'helix',\n url: 'moderation/blocked_terms',\n method: 'DELETE',\n userId: broadcasterId,\n scopes: ['moderator:manage:blocked_terms'],\n canOverrideScopedUserContext: true,\n query: {\n ...this._createModeratorActionQuery(broadcasterId),\n id\n }\n });\n }\n /**\n * Removes a single chat message or all chat messages from the broadcaster\u2019s chat room.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster the chat belongs to.\n * @param messageId The ID of the message to remove. If not specified, the request removes all messages in the broadcaster\u2019s chat room.\n */\n async deleteChatMessages(broadcaster, messageId) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n await this._client.callApi({\n type: 'helix',\n url: 'moderation/chat',\n method: 'DELETE',\n userId: broadcasterId,\n scopes: ['moderator:manage:chat_messages'],\n canOverrideScopedUserContext: true,\n query: {\n ...this._createModeratorActionQuery(broadcasterId),\n ...(0, generic_external_1.createSingleKeyQuery)('message_id', messageId)\n }\n });\n }\n /**\n * Gets the broadcaster's Shield Mode activation status.\n *\n * @param broadcaster The broadcaster whose Shield Mode activation status you want to get.\n */\n async getShieldModeStatus(broadcaster) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/shield_mode',\n method: 'GET',\n userId: broadcasterId,\n scopes: ['moderator:read:shield_mode', 'moderator:manage:shield_mode'],\n canOverrideScopedUserContext: true,\n query: this._createModeratorActionQuery(broadcasterId)\n });\n return new HelixShieldModeStatus_1.HelixShieldModeStatus(result.data[0], this._client);\n }\n /**\n * Activates or deactivates the broadcaster's Shield Mode.\n *\n * This uses the token of the broadcaster by default.\n * If you want to execute this in the context of another user (who has to be moderator of the channel)\n * you can do so using [user context overrides](/docs/auth/concepts/context-switching).\n *\n * @param broadcaster The broadcaster whose Shield Mode you want to activate or deactivate.\n * @param activate The desired Shield Mode status on the broadcaster's channel.\n */\n async updateShieldModeStatus(broadcaster, activate) {\n const broadcasterId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'moderation/shield_mode',\n method: 'PUT',\n userId: broadcasterId,\n scopes: ['moderator:manage:shield_mode'],\n canOverrideScopedUserContext: true,\n query: this._createModeratorActionQuery(broadcasterId),\n jsonBody: (0, moderation_external_1.createUpdateShieldModeStatusBody)(activate)\n });\n return new HelixShieldModeStatus_1.HelixShieldModeStatus(result.data[0], this._client);\n }\n _createModeratorActionQuery(broadcasterId) {\n return (0, generic_external_1.createModeratorActionQuery)(broadcasterId, this._getUserContextIdWithDefault(broadcasterId));\n }\n};\nHelixModerationApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixModerationApi')\n], HelixModerationApi);\nexports.HelixModerationApi = HelixModerationApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPollEndBody = exports.createPollBody = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createPollBody(broadcaster, data) {\n var _a;\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n title: data.title,\n choices: data.choices.map(title => ({ title })),\n duration: data.duration,\n channel_points_voting_enabled: data.channelPointsPerVote != null,\n channel_points_per_vote: (_a = data.channelPointsPerVote) !== null && _a !== void 0 ? _a : 0\n };\n}\nexports.createPollBody = createPollBody;\n/** @internal */\nfunction createPollEndBody(broadcaster, id, showResult) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n id,\n status: showResult ? 'TERMINATED' : 'ARCHIVED'\n };\n}\nexports.createPollEndBody = createPollEndBody;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPollChoice = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A choice in a channel poll.\n */\nlet HelixPollChoice = class HelixPollChoice extends common_1.DataObject {\n /**\n * The ID of the choice.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The title of the choice.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The total votes the choice received.\n */\n get totalVotes() {\n return this[common_1.rawDataSymbol].votes;\n }\n /**\n * The votes the choice received by spending channel points.\n */\n get channelPointsVotes() {\n return this[common_1.rawDataSymbol].channel_points_votes;\n }\n};\nHelixPollChoice = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPollChoice', 'id')\n], HelixPollChoice);\nexports.HelixPollChoice = HelixPollChoice;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPoll = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPollChoice_1 = require(\"./HelixPollChoice\");\n/**\n * A channel poll.\n */\nlet HelixPoll = class HelixPoll extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the poll.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The title of the poll.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * Whether voting with channel points is enabled for the poll.\n */\n get isChannelPointsVotingEnabled() {\n return this[common_1.rawDataSymbol].channel_points_voting_enabled;\n }\n /**\n * The amount of channel points that a vote costs.\n */\n get channelPointsPerVote() {\n return this[common_1.rawDataSymbol].channel_points_per_vote;\n }\n /**\n * The status of the poll.\n */\n get status() {\n return this[common_1.rawDataSymbol].status;\n }\n /**\n * The duration of the poll, in seconds.\n */\n get durationInSeconds() {\n return this[common_1.rawDataSymbol].duration;\n }\n /**\n * The date when the poll started.\n */\n get startDate() {\n return new Date(this[common_1.rawDataSymbol].started_at);\n }\n /**\n * The date when the poll ended or will end.\n */\n get endDate() {\n return new Date(this.startDate.getTime() + this[common_1.rawDataSymbol].duration * 1000);\n }\n /**\n * The choices of the poll.\n */\n get choices() {\n return this[common_1.rawDataSymbol].choices.map(data => new HelixPollChoice_1.HelixPollChoice(data));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixPoll.prototype, \"_client\", void 0);\nHelixPoll = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPoll', 'id')\n], HelixPoll);\nexports.HelixPoll = HelixPoll;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPollApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst poll_external_1 = require(\"../../interfaces/endpoints/poll.external\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixPoll_1 = require(\"./HelixPoll\");\n/**\n * The Helix API methods that deal with polls.\n *\n * Can be accessed using `client.polls` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const { data: polls } = await api.helix.polls.getPolls('61369223');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Polls\n */\nlet HelixPollApi = class HelixPollApi extends BaseApi_1.BaseApi {\n /**\n * Gets a list of polls for the given broadcaster.\n *\n * @param broadcaster The broadcaster to get polls for.\n * @param pagination\n *\n * @expandParams\n */\n async getPolls(broadcaster, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'polls',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:polls'],\n query: {\n ...(0, api_call_1.createBroadcasterQuery)(broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixPoll_1.HelixPoll, this._client);\n }\n /**\n * Creates a paginator for polls for the given broadcaster.\n *\n * @param broadcaster The broadcaster to get polls for.\n */\n getPollsPaginated(broadcaster) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'polls',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:polls'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n }, this._client, data => new HelixPoll_1.HelixPoll(data, this._client), 20);\n }\n /**\n * Gets polls by IDs.\n *\n * @param broadcaster The broadcaster to get the polls for.\n * @param ids The IDs of the polls.\n */\n async getPollsByIds(broadcaster, ids) {\n if (!ids.length) {\n return [];\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'polls',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:polls'],\n query: (0, generic_external_1.createGetByIdsQuery)(broadcaster, ids)\n });\n return result.data.map(data => new HelixPoll_1.HelixPoll(data, this._client));\n }\n /**\n * Gets a poll by ID.\n *\n * @param broadcaster The broadcaster to get the poll for.\n * @param id The ID of the poll.\n */\n async getPollById(broadcaster, id) {\n const polls = await this.getPollsByIds(broadcaster, [id]);\n return polls.length ? polls[0] : null;\n }\n /**\n * Creates a new poll.\n *\n * @param broadcaster The broadcaster to create the poll for.\n * @param data\n *\n * @expandParams\n */\n async createPoll(broadcaster, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'polls',\n method: 'POST',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:polls'],\n jsonBody: (0, poll_external_1.createPollBody)(broadcaster, data)\n });\n return new HelixPoll_1.HelixPoll(result.data[0], this._client);\n }\n /**\n * Ends a poll.\n *\n * @param broadcaster The broadcaster to end the poll for.\n * @param id The ID of the poll to end.\n * @param showResult Whether to allow the result to be viewed publicly.\n */\n async endPoll(broadcaster, id, showResult = true) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'polls',\n method: 'PATCH',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:polls'],\n jsonBody: (0, poll_external_1.createPollEndBody)(broadcaster, id, showResult)\n });\n return new HelixPoll_1.HelixPoll(result.data[0], this._client);\n }\n};\nHelixPollApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPollApi')\n], HelixPollApi);\nexports.HelixPollApi = HelixPollApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createEndPredictionBody = exports.createPredictionBody = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createPredictionBody(broadcaster, data) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n title: data.title,\n outcomes: data.outcomes.map(title => ({ title })),\n prediction_window: data.autoLockAfter\n };\n}\nexports.createPredictionBody = createPredictionBody;\n/** @internal */\nfunction createEndPredictionBody(broadcaster, id, status, outcomeId) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n id,\n status,\n winning_outcome_id: outcomeId\n };\n}\nexports.createEndPredictionBody = createEndPredictionBody;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPredictor = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A user that took part in a prediction.\n */\nlet HelixPredictor = class HelixPredictor extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The user ID of the predictor.\n */\n get userId() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The name of the predictor.\n */\n get userName() {\n return this[common_1.rawDataSymbol].login;\n }\n /**\n * The display name of the predictor.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].name;\n }\n /**\n * Gets more information about the predictor.\n */\n async getUser() {\n return await this._client.users.getUserById(this[common_1.rawDataSymbol].id);\n }\n /**\n * The amount of channel points the predictor used for the prediction.\n */\n get channelPointsUsed() {\n return this[common_1.rawDataSymbol].channel_points_used;\n }\n /**\n * The amount of channel points the predictor won for the prediction, or null if the prediction is not resolved yet, was cancelled or lost.\n */\n get channelPointsWon() {\n return this[common_1.rawDataSymbol].channel_points_won;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixPredictor.prototype, \"_client\", void 0);\nHelixPredictor = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPredictor', 'userId')\n], HelixPredictor);\nexports.HelixPredictor = HelixPredictor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPredictionOutcome = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPredictor_1 = require(\"./HelixPredictor\");\n/**\n * A possible outcome in a channel prediction.\n */\nlet HelixPredictionOutcome = class HelixPredictionOutcome extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the outcome.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The title of the outcome.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The number of users that guessed the outcome.\n */\n get users() {\n return this[common_1.rawDataSymbol].users;\n }\n /**\n * The total number of channel points that were spent on guessing the outcome.\n */\n get totalChannelPoints() {\n return this[common_1.rawDataSymbol].channel_points;\n }\n /**\n * The color of the outcome.\n */\n get color() {\n return this[common_1.rawDataSymbol].color;\n }\n /**\n * The top predictors of the outcome.\n */\n get topPredictors() {\n var _a, _b;\n return (_b = (_a = this[common_1.rawDataSymbol].top_predictors) === null || _a === void 0 ? void 0 : _a.map(data => new HelixPredictor_1.HelixPredictor(data, this._client))) !== null && _b !== void 0 ? _b : [];\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixPredictionOutcome.prototype, \"_client\", void 0);\nHelixPredictionOutcome = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPredictionOutcome', 'id')\n], HelixPredictionOutcome);\nexports.HelixPredictionOutcome = HelixPredictionOutcome;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPrediction = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPredictionOutcome_1 = require(\"./HelixPredictionOutcome\");\n/**\n * A channel prediction.\n */\nlet HelixPrediction = class HelixPrediction extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the prediction.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The title of the prediction.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The status of the prediction.\n */\n get status() {\n return this[common_1.rawDataSymbol].status;\n }\n /**\n * The time after which the prediction will be automatically locked, in seconds from creation.\n */\n get autoLockAfter() {\n return this[common_1.rawDataSymbol].prediction_window;\n }\n /**\n * The date when the prediction started.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * The date when the prediction ended, or null if it didn't end yet.\n */\n get endDate() {\n return this[common_1.rawDataSymbol].ended_at ? new Date(this[common_1.rawDataSymbol].ended_at) : null;\n }\n /**\n * The date when the prediction was locked, or null if it wasn't locked yet.\n */\n get lockDate() {\n return this[common_1.rawDataSymbol].locked_at ? new Date(this[common_1.rawDataSymbol].locked_at) : null;\n }\n /**\n * The possible outcomes of the prediction.\n */\n get outcomes() {\n return this[common_1.rawDataSymbol].outcomes.map(data => new HelixPredictionOutcome_1.HelixPredictionOutcome(data, this._client));\n }\n /**\n * The ID of the winning outcome, or null if the prediction is currently running or was canceled.\n */\n get winningOutcomeId() {\n // can apparently be empty string\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return this[common_1.rawDataSymbol].winning_outcome_id || null;\n }\n /**\n * The winning outcome, or null if the prediction is currently running or was canceled.\n */\n get winningOutcome() {\n if (!this[common_1.rawDataSymbol].winning_outcome_id) {\n return null;\n }\n const found = this[common_1.rawDataSymbol].outcomes.find(o => o.id === this[common_1.rawDataSymbol].winning_outcome_id);\n if (!found) {\n throw new common_1.HellFreezesOverError('Winning outcome not found in outcomes array');\n }\n return new HelixPredictionOutcome_1.HelixPredictionOutcome(found, this._client);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixPrediction.prototype, \"_client\", void 0);\nHelixPrediction = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPrediction', 'id')\n], HelixPrediction);\nexports.HelixPrediction = HelixPrediction;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPredictionApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst prediction_external_1 = require(\"../../interfaces/endpoints/prediction.external\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixPrediction_1 = require(\"./HelixPrediction\");\n/**\n * The Helix API methods that deal with predictions.\n *\n * Can be accessed using `client.predictions` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const { data: predictions } = await api.helix.predictions.getPredictions('61369223');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Predictions\n */\nlet HelixPredictionApi = class HelixPredictionApi extends BaseApi_1.BaseApi {\n /**\n * Gets a list of predictions for the given broadcaster.\n *\n * @param broadcaster The broadcaster to get predictions for.\n * @param pagination\n *\n * @expandParams\n */\n async getPredictions(broadcaster, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'predictions',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:predictions'],\n query: {\n ...(0, api_call_1.createBroadcasterQuery)(broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixPrediction_1.HelixPrediction, this._client);\n }\n /**\n * Creates a paginator for predictions for the given broadcaster.\n *\n * @param broadcaster The broadcaster to get predictions for.\n */\n getPredictionsPaginated(broadcaster) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'predictions',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:predictions'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n }, this._client, data => new HelixPrediction_1.HelixPrediction(data, this._client), 20);\n }\n /**\n * Gets predictions by IDs.\n *\n * @param broadcaster The broadcaster to get the predictions for.\n * @param ids The IDs of the predictions.\n */\n async getPredictionsByIds(broadcaster, ids) {\n if (!ids.length) {\n return [];\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'predictions',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:predictions'],\n query: (0, generic_external_1.createGetByIdsQuery)(broadcaster, ids)\n });\n return result.data.map(data => new HelixPrediction_1.HelixPrediction(data, this._client));\n }\n /**\n * Gets a prediction by ID.\n *\n * @param broadcaster The broadcaster to get the prediction for.\n * @param id The ID of the prediction.\n */\n async getPredictionById(broadcaster, id) {\n const predictions = await this.getPredictionsByIds(broadcaster, [id]);\n return predictions.length ? predictions[0] : null;\n }\n /**\n * Creates a new prediction.\n *\n * @param broadcaster The broadcaster to create the prediction for.\n * @param data\n *\n * @expandParams\n */\n async createPrediction(broadcaster, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'predictions',\n method: 'POST',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:predictions'],\n jsonBody: (0, prediction_external_1.createPredictionBody)(broadcaster, data)\n });\n return new HelixPrediction_1.HelixPrediction(result.data[0], this._client);\n }\n /**\n * Locks a prediction.\n *\n * @param broadcaster The broadcaster to lock the prediction for.\n * @param id The ID of the prediction to lock.\n */\n async lockPrediction(broadcaster, id) {\n return await this._endPrediction(broadcaster, id, 'LOCKED');\n }\n /**\n * Resolves a prediction.\n *\n * @param broadcaster The broadcaster to resolve the prediction for.\n * @param id The ID of the prediction to resolve.\n * @param outcomeId The ID of the winning outcome.\n */\n async resolvePrediction(broadcaster, id, outcomeId) {\n return await this._endPrediction(broadcaster, id, 'RESOLVED', outcomeId);\n }\n /**\n * Cancels a prediction.\n *\n * @param broadcaster The broadcaster to cancel the prediction for.\n * @param id The ID of the prediction to cancel.\n */\n async cancelPrediction(broadcaster, id) {\n return await this._endPrediction(broadcaster, id, 'CANCELED');\n }\n async _endPrediction(broadcaster, id, status, outcomeId) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'predictions',\n method: 'PATCH',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:predictions'],\n jsonBody: (0, prediction_external_1.createEndPredictionBody)(broadcaster, id, status, outcomeId)\n });\n return new HelixPrediction_1.HelixPrediction(result.data[0], this._client);\n }\n};\nHelixPredictionApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPredictionApi')\n], HelixPredictionApi);\nexports.HelixPredictionApi = HelixPredictionApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRaidStartQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createRaidStartQuery(from, to) {\n return {\n from_broadcaster_id: (0, common_1.extractUserId)(from),\n to_broadcaster_id: (0, common_1.extractUserId)(to)\n };\n}\nexports.createRaidStartQuery = createRaidStartQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixRaid = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A result of a successful raid initiation.\n */\nlet HelixRaid = class HelixRaid extends common_1.DataObject {\n /**\n * The date when the raid was initiated.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * Whether the raid target channel is intended for mature audiences.\n */\n get targetIsMature() {\n return this[common_1.rawDataSymbol].is_mature;\n }\n};\nHelixRaid = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixRaid')\n], HelixRaid);\nexports.HelixRaid = HelixRaid;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixRaidApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst raid_external_1 = require(\"../../interfaces/endpoints/raid.external\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixRaid_1 = require(\"./HelixRaid\");\n/**\n * The Helix API methods that deal with raids.\n *\n * Can be accessed using `client.raids` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const raid = await api.raids.startRaid('125328655', '61369223');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Raids\n */\nlet HelixRaidApi = class HelixRaidApi extends BaseApi_1.BaseApi {\n /**\n * Initiate a raid from a live broadcaster to another live broadcaster.\n *\n * @param from The raiding broadcaster.\n * @param to The raid target.\n */\n async startRaid(from, to) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'raids',\n method: 'POST',\n userId: (0, common_1.extractUserId)(from),\n scopes: ['channel:manage:raids'],\n query: (0, raid_external_1.createRaidStartQuery)(from, to)\n });\n return new HelixRaid_1.HelixRaid(result.data[0]);\n }\n /**\n * Cancels an initiated raid.\n *\n * @param from The raiding broadcaster.\n */\n async cancelRaid(from) {\n await this._client.callApi({\n type: 'helix',\n url: 'raids',\n method: 'DELETE',\n userId: (0, common_1.extractUserId)(from),\n scopes: ['channel:manage:raids'],\n query: (0, api_call_1.createBroadcasterQuery)(from)\n });\n }\n};\nHelixRaidApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixRaidApi')\n], HelixRaidApi);\nexports.HelixRaidApi = HelixRaidApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createScheduleSegmentUpdateBody = exports.createScheduleSegmentModifyQuery = exports.createScheduleSegmentBody = exports.createScheduleSettingsUpdateQuery = exports.createScheduleQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createScheduleQuery(broadcaster, filter) {\n var _a;\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n start_time: filter === null || filter === void 0 ? void 0 : filter.startDate,\n utc_offset: (_a = filter === null || filter === void 0 ? void 0 : filter.utcOffset) === null || _a === void 0 ? void 0 : _a.toString()\n };\n}\nexports.createScheduleQuery = createScheduleQuery;\n/** @internal */\nfunction createScheduleSettingsUpdateQuery(broadcaster, settings) {\n if (settings.vacation) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n is_vacation_enabled: 'true',\n vacation_start_time: settings.vacation.startDate,\n vacation_end_time: settings.vacation.endDate,\n timezone: settings.vacation.timezone\n };\n }\n else {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n is_vacation_enabled: 'false'\n };\n }\n}\nexports.createScheduleSettingsUpdateQuery = createScheduleSettingsUpdateQuery;\n/** @internal */\nfunction createScheduleSegmentBody(data) {\n return {\n start_time: data.startDate,\n timezone: data.timezone,\n is_recurring: data.isRecurring,\n duration: data.duration,\n category_id: data.categoryId,\n title: data.title\n };\n}\nexports.createScheduleSegmentBody = createScheduleSegmentBody;\n/** @internal */\nfunction createScheduleSegmentModifyQuery(broadcaster, segmentId) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n id: segmentId\n };\n}\nexports.createScheduleSegmentModifyQuery = createScheduleSegmentModifyQuery;\n/** @internal */\nfunction createScheduleSegmentUpdateBody(data) {\n return {\n start_time: data.startDate,\n timezone: data.timezone,\n is_canceled: data.isCanceled,\n duration: data.duration,\n category_id: data.categoryId,\n title: data.title\n };\n}\nexports.createScheduleSegmentUpdateBody = createScheduleSegmentUpdateBody;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixScheduleSegment = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A segment of a schedule.\n */\nlet HelixScheduleSegment = class HelixScheduleSegment extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the segment.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The date when the segment starts.\n */\n get startDate() {\n return new Date(this[common_1.rawDataSymbol].start_time);\n }\n /**\n * The date when the segment ends.\n */\n get endDate() {\n return new Date(this[common_1.rawDataSymbol].end_time);\n }\n /**\n * The title of the segment.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The date up to which the segment is canceled.\n */\n get cancelEndDate() {\n return (0, shared_utils_1.mapNullable)(this[common_1.rawDataSymbol].canceled_until, v => new Date(v));\n }\n /**\n * The ID of the category the segment is scheduled for, or null if no category is specified.\n */\n get categoryId() {\n var _a, _b;\n return (_b = (_a = this[common_1.rawDataSymbol].category) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * The name of the category the segment is scheduled for, or null if no category is specified.\n */\n get categoryName() {\n var _a, _b;\n return (_b = (_a = this[common_1.rawDataSymbol].category) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Gets more information about the category the segment is scheduled for, or null if no category is specified.\n */\n async getCategory() {\n var _a;\n const categoryId = (_a = this[common_1.rawDataSymbol].category) === null || _a === void 0 ? void 0 : _a.id;\n return categoryId ? await this._client.games.getGameById(categoryId) : null;\n }\n /**\n * Whether the segment is recurring every week.\n */\n get isRecurring() {\n return this[common_1.rawDataSymbol].is_recurring;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixScheduleSegment.prototype, \"_client\", void 0);\nHelixScheduleSegment = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixScheduleSegment', 'id')\n], HelixScheduleSegment);\nexports.HelixScheduleSegment = HelixScheduleSegment;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPaginatedScheduleSegmentRequest = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst schedule_external_1 = require(\"../../interfaces/endpoints/schedule.external\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixScheduleSegment_1 = require(\"./HelixScheduleSegment\");\n/**\n * A paginator specifically for schedule segments.\n */\nlet HelixPaginatedScheduleSegmentRequest = class HelixPaginatedScheduleSegmentRequest extends HelixPaginatedRequest_1.HelixPaginatedRequest {\n /** @internal */\n constructor(broadcaster, client, filter) {\n super({\n url: 'schedule',\n query: (0, schedule_external_1.createScheduleQuery)(broadcaster, filter)\n }, client, data => new HelixScheduleSegment_1.HelixScheduleSegment(data, client), 25);\n }\n // sadly, this hack is necessary to work around the weird data model of schedules\n // while still keeping the pagination code as generic as possible\n /** @internal */\n async _fetchData(additionalOptions = {}) {\n var _a;\n const origData = (await super._fetchData(additionalOptions));\n return {\n data: (_a = origData.data.segments) !== null && _a !== void 0 ? _a : [],\n pagination: origData.pagination\n };\n }\n};\nHelixPaginatedScheduleSegmentRequest = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPaginatedScheduleSegmentRequest')\n], HelixPaginatedScheduleSegmentRequest);\nexports.HelixPaginatedScheduleSegmentRequest = HelixPaginatedScheduleSegmentRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixSchedule = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixScheduleSegment_1 = require(\"./HelixScheduleSegment\");\n/**\n * A schedule of a channel.\n */\nlet HelixSchedule = class HelixSchedule extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The segments of the schedule.\n */\n get segments() {\n var _a, _b;\n return (_b = (_a = this[common_1.rawDataSymbol].segments) === null || _a === void 0 ? void 0 : _a.map(data => new HelixScheduleSegment_1.HelixScheduleSegment(data, this._client))) !== null && _b !== void 0 ? _b : [];\n }\n /**\n * The ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The date when the current vacation started, or null if the schedule is not in vacation mode.\n */\n get vacationStartDate() {\n var _a;\n const timestamp = (_a = this[common_1.rawDataSymbol].vacation) === null || _a === void 0 ? void 0 : _a.start_time;\n return timestamp ? new Date(timestamp) : null;\n }\n /**\n * The date when the current vacation ends, or null if the schedule is not in vacation mode.\n */\n get vacationEndDate() {\n var _a;\n const timestamp = (_a = this[common_1.rawDataSymbol].vacation) === null || _a === void 0 ? void 0 : _a.end_time;\n return timestamp ? new Date(timestamp) : null;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixSchedule.prototype, \"_client\", void 0);\nHelixSchedule = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixSchedule', 'broadcasterId')\n], HelixSchedule);\nexports.HelixSchedule = HelixSchedule;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixScheduleApi = void 0;\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst schedule_external_1 = require(\"../../interfaces/endpoints/schedule.external\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixPaginatedScheduleSegmentRequest_1 = require(\"./HelixPaginatedScheduleSegmentRequest\");\nconst HelixSchedule_1 = require(\"./HelixSchedule\");\nconst HelixScheduleSegment_1 = require(\"./HelixScheduleSegment\");\n/**\n * The Helix API methods that deal with schedules.\n *\n * Can be accessed using `client.schedule` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const { data: schedule } = await api.helix.schedule.getSchedule('61369223');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Schedule\n */\nclass HelixScheduleApi extends BaseApi_1.BaseApi {\n /**\n * Gets the schedule for a given broadcaster.\n *\n * @param broadcaster The broadcaster to get the schedule of.\n * @param filter\n *\n * @expandParams\n */\n async getSchedule(broadcaster, filter) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'schedule',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: {\n ...(0, schedule_external_1.createScheduleQuery)(broadcaster, filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return {\n data: new HelixSchedule_1.HelixSchedule(result.data, this._client),\n cursor: result.pagination.cursor\n };\n }\n /**\n * Creates a paginator for schedule segments for a given broadcaster.\n *\n * @param broadcaster The broadcaster to get the schedule segments of.\n * @param filter\n *\n * @expandParams\n */\n getScheduleSegmentsPaginated(broadcaster, filter) {\n return new HelixPaginatedScheduleSegmentRequest_1.HelixPaginatedScheduleSegmentRequest(broadcaster, this._client, filter);\n }\n /**\n * Gets a set of schedule segments by IDs.\n *\n * @param broadcaster The broadcaster to get schedule segments of.\n * @param ids The IDs of the schedule segments.\n */\n async getScheduleSegmentsByIds(broadcaster, ids) {\n var _a, _b;\n const result = await this._client.callApi({\n type: 'helix',\n url: 'schedule',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: (0, generic_external_1.createGetByIdsQuery)(broadcaster, ids)\n });\n return (_b = (_a = result.data.segments) === null || _a === void 0 ? void 0 : _a.map(data => new HelixScheduleSegment_1.HelixScheduleSegment(data, this._client))) !== null && _b !== void 0 ? _b : [];\n }\n /**\n * Gets a single schedule segment by ID.\n *\n * @param broadcaster The broadcaster to get a schedule segment of.\n * @param id The ID of the schedule segment.\n */\n async getScheduleSegmentById(broadcaster, id) {\n const segments = await this.getScheduleSegmentsByIds(broadcaster, [id]);\n return segments.length ? segments[0] : null;\n }\n /**\n * Gets the schedule for a given broadcaster in iCal format.\n *\n * @param broadcaster The broadcaster to get the schedule for.\n */\n async getScheduleAsIcal(broadcaster) {\n return await this._client.callApi({\n type: 'helix',\n url: 'schedule/icalendar',\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n }\n /**\n * Updates the schedule settings of a given broadcaster.\n *\n * @param broadcaster The broadcaster to update the schedule settings for.\n * @param settings\n *\n * @expandParams\n */\n async updateScheduleSettings(broadcaster, settings) {\n await this._client.callApi({\n type: 'helix',\n url: 'schedule/settings',\n method: 'PATCH',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:schedule'],\n query: (0, schedule_external_1.createScheduleSettingsUpdateQuery)(broadcaster, settings)\n });\n }\n /**\n * Creates a new segment in a given broadcaster's schedule.\n *\n * @param broadcaster The broadcaster to create a new schedule segment for.\n * @param data\n *\n * @expandParams\n */\n async createScheduleSegment(broadcaster, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'schedule/segment',\n method: 'POST',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:schedule'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster),\n jsonBody: (0, schedule_external_1.createScheduleSegmentBody)(data)\n });\n return new HelixScheduleSegment_1.HelixScheduleSegment(result.data.segments[0], this._client);\n }\n /**\n * Updates a segment in a given broadcaster's schedule.\n *\n * @param broadcaster The broadcaster to create a new schedule segment for.\n * @param segmentId The ID of the segment to update.\n * @param data\n *\n * @expandParams\n */\n async updateScheduleSegment(broadcaster, segmentId, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'schedule/segment',\n method: 'PATCH',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:schedule'],\n query: (0, schedule_external_1.createScheduleSegmentModifyQuery)(broadcaster, segmentId),\n jsonBody: (0, schedule_external_1.createScheduleSegmentUpdateBody)(data)\n });\n return new HelixScheduleSegment_1.HelixScheduleSegment(result.data.segments[0], this._client);\n }\n /**\n * Deletes a segment in a given broadcaster's schedule.\n *\n * @param broadcaster The broadcaster to create a new schedule segment for.\n * @param segmentId The ID of the segment to update.\n */\n async deleteScheduleSegment(broadcaster, segmentId) {\n await this._client.callApi({\n type: 'helix',\n url: 'schedule/segment',\n method: 'DELETE',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:schedule'],\n query: (0, schedule_external_1.createScheduleSegmentModifyQuery)(broadcaster, segmentId)\n });\n }\n}\nexports.HelixScheduleApi = HelixScheduleApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSearchChannelsQuery = void 0;\n/** @internal */\nfunction createSearchChannelsQuery(query, filter) {\n var _a;\n return {\n query,\n live_only: (_a = filter.liveOnly) === null || _a === void 0 ? void 0 : _a.toString()\n };\n}\nexports.createSearchChannelsQuery = createSearchChannelsQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixChannelSearchResult = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * The result of a channel search.\n */\nlet HelixChannelSearchResult = class HelixChannelSearchResult extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The language of the channel.\n */\n get language() {\n return this[common_1.rawDataSymbol].broadcaster_language;\n }\n /**\n * The ID of the channel.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The name of the channel.\n */\n get name() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the channel.\n */\n get displayName() {\n return this[common_1.rawDataSymbol].display_name;\n }\n /**\n * Gets additional information about the owner of the channel.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].id));\n }\n /**\n * The ID of the game currently played on the channel.\n */\n get gameId() {\n return this[common_1.rawDataSymbol].game_id;\n }\n /**\n * The name of the game currently played on the channel.\n */\n get gameName() {\n return this[common_1.rawDataSymbol].game_name;\n }\n /**\n * Gets information about the game that is being played on the stream.\n */\n async getGame() {\n return this[common_1.rawDataSymbol].game_id\n ? (0, common_1.checkRelationAssertion)(await this._client.games.getGameById(this[common_1.rawDataSymbol].game_id))\n : null;\n }\n /**\n * Whether the channel is currently live.\n */\n get isLive() {\n return this[common_1.rawDataSymbol].is_live;\n }\n /**\n * The tags applied to the channel.\n */\n get tags() {\n return this[common_1.rawDataSymbol].tags;\n }\n /**\n * The thumbnail URL of the stream.\n */\n get thumbnailUrl() {\n return this[common_1.rawDataSymbol].thumbnail_url;\n }\n /**\n * The start date of the stream. Returns `null` if the stream is not live.\n */\n get startDate() {\n return this[common_1.rawDataSymbol].is_live ? new Date(this[common_1.rawDataSymbol].started_at) : null;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixChannelSearchResult.prototype, \"_client\", void 0);\nHelixChannelSearchResult = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixChannelSearchResult', 'id')\n], HelixChannelSearchResult);\nexports.HelixChannelSearchResult = HelixChannelSearchResult;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixSearchApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst search_external_1 = require(\"../../interfaces/endpoints/search.external\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixGame_1 = require(\"../game/HelixGame\");\nconst HelixChannelSearchResult_1 = require(\"./HelixChannelSearchResult\");\n/**\n * The Helix API methods that run searches.\n *\n * Can be accessed using `client.search` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const channels = await api.search.searchChannels('pear');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Search\n */\nlet HelixSearchApi = class HelixSearchApi extends BaseApi_1.BaseApi {\n /**\n * Search categories/games for an exact or partial match.\n *\n * @param query The search term.\n * @param pagination\n *\n * @expandParams\n */\n async searchCategories(query, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'search/categories',\n query: {\n query,\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixGame_1.HelixGame, this._client);\n }\n /**\n * Creates a paginator for a category/game search.\n *\n * @param query The search term.\n */\n searchCategoriesPaginated(query) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'search/categories',\n query: {\n query\n }\n }, this._client, data => new HelixGame_1.HelixGame(data, this._client));\n }\n /**\n * Search channels for an exact or partial match.\n *\n * @param query The search term.\n * @param filter\n *\n * @expandParams\n */\n async searchChannels(query, filter = {}) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'search/channels',\n query: {\n ...(0, search_external_1.createSearchChannelsQuery)(query, filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixChannelSearchResult_1.HelixChannelSearchResult, this._client);\n }\n /**\n * Creates a paginator for a channel search.\n *\n * @param query The search term.\n * @param filter\n *\n * @expandParams\n */\n searchChannelsPaginated(query, filter = {}) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'search/channels',\n query: (0, search_external_1.createSearchChannelsQuery)(query, filter)\n }, this._client, data => new HelixChannelSearchResult_1.HelixChannelSearchResult(data, this._client));\n }\n};\nHelixSearchApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixSearchApi')\n], HelixSearchApi);\nexports.HelixSearchApi = HelixSearchApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamNotLiveError = void 0;\nconst common_1 = require(\"@twurple/common\");\n/**\n * Thrown whenever you try something that requires your own stream to be live.\n */\nclass StreamNotLiveError extends common_1.CustomError {\n /** @private */\n constructor(options) {\n super('Your stream needs to be live to do this', options);\n }\n}\nexports.StreamNotLiveError = StreamNotLiveError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createVideoQuery = exports.createStreamMarkerBody = exports.createStreamQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createStreamQuery(filter) {\n return {\n game_id: filter.game,\n language: filter.language,\n type: filter.type,\n user_id: filter.userId,\n user_login: filter.userName\n };\n}\nexports.createStreamQuery = createStreamQuery;\n/** @internal */\nfunction createStreamMarkerBody(broadcaster, description) {\n return {\n user_id: (0, common_1.extractUserId)(broadcaster),\n description\n };\n}\nexports.createStreamMarkerBody = createStreamMarkerBody;\n/** @internal */\nfunction createVideoQuery(id) {\n return {\n video_id: id\n };\n}\nexports.createVideoQuery = createVideoQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixStream = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A Twitch stream.\n */\nlet HelixStream = class HelixStream extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The stream ID.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The user ID.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The user's name.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The user's display name.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets information about the user broadcasting the stream.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * The game ID, or an empty string if the stream doesn't currently have a game.\n */\n get gameId() {\n return this[common_1.rawDataSymbol].game_id;\n }\n /**\n * The game name, or an empty string if the stream doesn't currently have a game.\n */\n get gameName() {\n return this[common_1.rawDataSymbol].game_name;\n }\n /**\n * Gets information about the game that is being played on the stream.\n *\n * Returns null if the stream doesn't currently have a game.\n */\n async getGame() {\n return this[common_1.rawDataSymbol].game_id\n ? (0, common_1.checkRelationAssertion)(await this._client.games.getGameById(this[common_1.rawDataSymbol].game_id))\n : null;\n }\n /**\n * The type of the stream.\n */\n get type() {\n return this[common_1.rawDataSymbol].type;\n }\n /**\n * The title of the stream.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The number of viewers the stream currently has.\n */\n get viewers() {\n return this[common_1.rawDataSymbol].viewer_count;\n }\n /**\n * The time when the stream started.\n */\n get startDate() {\n return new Date(this[common_1.rawDataSymbol].started_at);\n }\n /**\n * The language of the stream.\n */\n get language() {\n return this[common_1.rawDataSymbol].language;\n }\n /**\n * The URL of the thumbnail of the stream.\n *\n * This URL includes the placeholders `{width}` and `{height}`\n * which you must replace with the desired dimensions of the thumbnail (in pixels).\n *\n * You can also use {@link HelixStream#getThumbnailUrl} to do this replacement.\n */\n get thumbnailUrl() {\n return this[common_1.rawDataSymbol].thumbnail_url;\n }\n /**\n * Builds the thumbnail URL of the stream using the given dimensions.\n *\n * @param width The width of the thumbnail.\n * @param height The height of the thumbnail.\n */\n getThumbnailUrl(width, height) {\n return this[common_1.rawDataSymbol].thumbnail_url\n .replace('{width}', width.toString())\n .replace('{height}', height.toString());\n }\n /**\n * The tags applied to the stream.\n */\n get tags() {\n return this[common_1.rawDataSymbol].tags;\n }\n /**\n * Whether the stream is set to be targeted to mature audiences only.\n */\n get isMature() {\n return this[common_1.rawDataSymbol].is_mature;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixStream.prototype, \"_client\", void 0);\nHelixStream = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixStream', 'id')\n], HelixStream);\nexports.HelixStream = HelixStream;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixStreamMarker = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A stream marker.\n */\nlet HelixStreamMarker = class HelixStreamMarker extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the marker.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The date and time when the marker was created.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * The description of the marker.\n */\n get description() {\n return this[common_1.rawDataSymbol].description;\n }\n /**\n * The position in the stream when the marker was created, in seconds.\n */\n get positionInSeconds() {\n return this[common_1.rawDataSymbol].position_seconds;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixStreamMarker.prototype, \"_client\", void 0);\nHelixStreamMarker = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixStreamMarker', 'id')\n], HelixStreamMarker);\nexports.HelixStreamMarker = HelixStreamMarker;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixStreamMarkerWithVideo = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixStreamMarker_1 = require(\"./HelixStreamMarker\");\n/**\n * A stream marker, also containing some video data.\n *\n * @inheritDoc\n */\nlet HelixStreamMarkerWithVideo = class HelixStreamMarkerWithVideo extends HelixStreamMarker_1.HelixStreamMarker {\n /** @internal */\n constructor(data, _videoId, client) {\n super(data, client);\n this._videoId = _videoId;\n }\n /**\n * The URL of the video, which will start playing at the position of the stream marker.\n */\n get url() {\n return this[common_1.rawDataSymbol].URL;\n }\n /**\n * The ID of the video.\n */\n get videoId() {\n return this._videoId;\n }\n /**\n * Gets the video data of the video the marker was set in.\n */\n async getVideo() {\n return (0, common_1.checkRelationAssertion)(await this._client.videos.getVideoById(this._videoId));\n }\n};\nHelixStreamMarkerWithVideo = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixStreamMarkerWithVideo', 'id')\n], HelixStreamMarkerWithVideo);\nexports.HelixStreamMarkerWithVideo = HelixStreamMarkerWithVideo;\n", "\"use strict\";\nvar HelixStreamApi_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixStreamApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst StreamNotLiveError_1 = require(\"../../errors/StreamNotLiveError\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst stream_external_1 = require(\"../../interfaces/endpoints/stream.external\");\nconst HelixRequestBatcher_1 = require(\"../../utils/HelixRequestBatcher\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixStream_1 = require(\"./HelixStream\");\nconst HelixStreamMarker_1 = require(\"./HelixStreamMarker\");\nconst HelixStreamMarkerWithVideo_1 = require(\"./HelixStreamMarkerWithVideo\");\n/**\n * The Helix API methods that deal with streams.\n *\n * Can be accessed using `client.streams` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const stream = await api.streams.getStreamByUserId('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Streams\n */\nlet HelixStreamApi = HelixStreamApi_1 = class HelixStreamApi extends BaseApi_1.BaseApi {\n constructor() {\n super(...arguments);\n /** @internal */\n this._getStreamByUserIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'streams'\n }, 'user_id', 'user_id', this._client, (data) => new HelixStream_1.HelixStream(data, this._client));\n /** @internal */\n this._getStreamByUserNameBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'streams'\n }, 'user_login', 'user_login', this._client, (data) => new HelixStream_1.HelixStream(data, this._client));\n }\n /**\n * Gets a list of streams.\n *\n * @param filter\n * @expandParams\n */\n async getStreams(filter = {}) {\n const result = await this._client.callApi({\n url: 'streams',\n type: 'helix',\n query: {\n ...(0, stream_external_1.createStreamQuery)(filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixStream_1.HelixStream, this._client);\n }\n /**\n * Creates a paginator for streams.\n *\n * @param filter\n * @expandParams\n */\n getStreamsPaginated(filter = {}) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'streams',\n query: (0, stream_external_1.createStreamQuery)(filter)\n }, this._client, data => new HelixStream_1.HelixStream(data, this._client));\n }\n /**\n * Gets the current streams for the given usernames.\n *\n * @param users The username to get the streams for.\n */\n async getStreamsByUserNames(users) {\n const result = await this.getStreams({ userName: users.map(common_1.extractUserName) });\n return result.data;\n }\n /**\n * Gets the current stream for the given username.\n *\n * @param user The username to get the stream for.\n */\n async getStreamByUserName(user) {\n var _a;\n const result = await this.getStreamsByUserNames([user]);\n return (_a = result[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Gets the current stream for the given username, batching multiple calls into fewer requests as the API allows.\n *\n * @param user The username to get the stream for.\n */\n async getStreamByUserNameBatched(user) {\n return await this._getStreamByUserNameBatcher.request((0, common_1.extractUserName)(user));\n }\n /**\n * Gets the current streams for the given user IDs.\n *\n * @param users The user IDs to get the streams for.\n */\n async getStreamsByUserIds(users) {\n const result = await this.getStreams({ userId: users.map(common_1.extractUserId) });\n return result.data;\n }\n /**\n * Gets the current stream for the given user ID.\n *\n * @param user The user ID to get the stream for.\n */\n async getStreamByUserId(user) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this._client.callApi({\n url: 'streams',\n type: 'helix',\n userId,\n query: (0, stream_external_1.createStreamQuery)({ userId })\n });\n return (0, shared_utils_1.mapNullable)(result.data[0], data => new HelixStream_1.HelixStream(data, this._client));\n }\n /**\n * Gets the current stream for the given user ID, batching multiple calls into fewer requests as the API allows.\n *\n * @param user The user ID to get the stream for.\n */\n async getStreamByUserIdBatched(user) {\n return await this._getStreamByUserIdBatcher.request((0, common_1.extractUserId)(user));\n }\n /**\n * Gets a list of all stream markers for a user.\n *\n * @param user The user to list the stream markers for.\n * @param pagination\n *\n * @expandParams\n */\n async getStreamMarkersForUser(user, pagination) {\n var _a;\n const result = await this._client.callApi({\n url: 'streams/markers',\n type: 'helix',\n query: {\n ...(0, generic_external_1.createUserQuery)(user),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n },\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:broadcast'],\n canOverrideScopedUserContext: true\n });\n return {\n data: (0, shared_utils_1.flatten)(result.data.map(data => HelixStreamApi_1._mapGetStreamMarkersResult(data, this._client))),\n cursor: (_a = result.pagination) === null || _a === void 0 ? void 0 : _a.cursor\n };\n }\n /**\n * Creates a paginator for all stream markers for a user.\n *\n * @param user The user to list the stream markers for.\n */\n getStreamMarkersForUserPaginated(user) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'streams/markers',\n query: (0, generic_external_1.createUserQuery)(user),\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:broadcast'],\n canOverrideScopedUserContext: true\n }, this._client, data => HelixStreamApi_1._mapGetStreamMarkersResult(data, this._client));\n }\n /**\n * Gets a list of all stream markers for a video.\n *\n * @param user The user the video belongs to.\n * @param videoId The video to list the stream markers for.\n * @param pagination\n *\n * @expandParams\n */\n async getStreamMarkersForVideo(user, videoId, pagination) {\n var _a;\n const result = await this._client.callApi({\n url: 'streams/markers',\n type: 'helix',\n query: {\n ...(0, stream_external_1.createVideoQuery)(videoId),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n },\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:broadcast'],\n canOverrideScopedUserContext: true\n });\n return {\n data: (0, shared_utils_1.flatten)(result.data.map(data => HelixStreamApi_1._mapGetStreamMarkersResult(data, this._client))),\n cursor: (_a = result.pagination) === null || _a === void 0 ? void 0 : _a.cursor\n };\n }\n /**\n * Creates a paginator for all stream markers for a video.\n *\n * @param user The user the video belongs to.\n * @param videoId The video to list the stream markers for.\n */\n getStreamMarkersForVideoPaginated(user, videoId) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'streams/markers',\n query: (0, stream_external_1.createVideoQuery)(videoId),\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:broadcast'],\n canOverrideScopedUserContext: true\n }, this._client, data => HelixStreamApi_1._mapGetStreamMarkersResult(data, this._client));\n }\n /**\n * Creates a new stream marker.\n *\n * Only works while the specified user's stream is live.\n *\n * @param broadcaster The broadcaster to create a stream marker for.\n * @param description The description of the marker.\n */\n async createStreamMarker(broadcaster, description) {\n try {\n const result = await this._client.callApi({\n url: 'streams/markers',\n method: 'POST',\n type: 'helix',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:manage:broadcast'],\n canOverrideScopedUserContext: true,\n jsonBody: (0, stream_external_1.createStreamMarkerBody)(broadcaster, description)\n });\n return new HelixStreamMarker_1.HelixStreamMarker(result.data[0], this._client);\n }\n catch (e) {\n if (e instanceof api_call_1.HttpStatusCodeError && e.statusCode === 404) {\n throw new StreamNotLiveError_1.StreamNotLiveError({ cause: e });\n }\n throw e;\n }\n }\n /**\n * Gets the stream key of a stream.\n *\n * @param broadcaster The broadcaster to get the stream key for.\n */\n async getStreamKey(broadcaster) {\n const userId = (0, common_1.extractUserId)(broadcaster);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'streams/key',\n userId,\n scopes: ['channel:read:stream_key'],\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return result.data[0].stream_key;\n }\n /**\n * Gets the streams that are currently live and are followed by the given user.\n *\n * @param user The user to check followed streams for.\n * @param pagination\n *\n * @expandParams\n */\n async getFollowedStreams(user, pagination) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'streams/followed',\n userId,\n scopes: ['user:read:follows'],\n query: {\n ...(0, generic_external_1.createSingleKeyQuery)('user_id', userId),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixStream_1.HelixStream, this._client);\n }\n /**\n * Creates a paginator for the streams that are currently live and are followed by the given user.\n *\n * @param user The user to check followed streams for.\n */\n getFollowedStreamsPaginated(user) {\n const userId = (0, common_1.extractUserId)(user);\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'streams/followed',\n userId,\n scopes: ['user:read:follows'],\n query: (0, generic_external_1.createSingleKeyQuery)('user_id', userId)\n }, this._client, data => new HelixStream_1.HelixStream(data, this._client));\n }\n static _mapGetStreamMarkersResult(data, client) {\n return data.videos.reduce((result, video) => [\n ...result,\n ...video.markers.map(marker => new HelixStreamMarkerWithVideo_1.HelixStreamMarkerWithVideo(marker, video.video_id, client))\n ], []);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixStreamApi.prototype, \"_getStreamByUserIdBatcher\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixStreamApi.prototype, \"_getStreamByUserNameBatcher\", void 0);\nHelixStreamApi = HelixStreamApi_1 = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixStreamApi')\n], HelixStreamApi);\nexports.HelixStreamApi = HelixStreamApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSubscriptionCheckQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createSubscriptionCheckQuery(broadcaster, user) {\n return {\n broadcaster_id: (0, common_1.extractUserId)(broadcaster),\n user_id: (0, common_1.extractUserId)(user)\n };\n}\nexports.createSubscriptionCheckQuery = createSubscriptionCheckQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixUserSubscription = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * The user info about a (paid) subscription to a broadcaster.\n */\nlet HelixUserSubscription = class HelixUserSubscription extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The user ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster.\n */\n async getBroadcaster() {\n return await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id);\n }\n /**\n * Whether the subscription has been gifted by another user.\n */\n get isGift() {\n return this[common_1.rawDataSymbol].is_gift;\n }\n /**\n * The tier of the subscription.\n */\n get tier() {\n return this[common_1.rawDataSymbol].tier;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixUserSubscription.prototype, \"_client\", void 0);\nHelixUserSubscription = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixUserSubscription', 'broadcasterId')\n], HelixUserSubscription);\nexports.HelixUserSubscription = HelixUserSubscription;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixSubscription = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixUserSubscription_1 = require(\"./HelixUserSubscription\");\n/**\n * A (paid) subscription of a user to a broadcaster.\n *\n * @inheritDoc\n */\nlet HelixSubscription = class HelixSubscription extends HelixUserSubscription_1.HelixUserSubscription {\n /**\n * The user ID of the broadcaster.\n */\n get broadcasterId() {\n return this[common_1.rawDataSymbol].broadcaster_id;\n }\n /**\n * The name of the broadcaster.\n */\n get broadcasterName() {\n return this[common_1.rawDataSymbol].broadcaster_login;\n }\n /**\n * The display name of the broadcaster.\n */\n get broadcasterDisplayName() {\n return this[common_1.rawDataSymbol].broadcaster_name;\n }\n /**\n * Gets more information about the broadcaster.\n */\n async getBroadcaster() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].broadcaster_id));\n }\n /**\n * The user ID of the gifter.\n */\n get gifterId() {\n return this[common_1.rawDataSymbol].is_gift ? this[common_1.rawDataSymbol].gifter_id : null;\n }\n /**\n * The name of the gifter.\n */\n get gifterName() {\n return this[common_1.rawDataSymbol].is_gift ? this[common_1.rawDataSymbol].gifter_login : null;\n }\n /**\n * The display name of the gifter.\n */\n get gifterDisplayName() {\n return this[common_1.rawDataSymbol].is_gift ? this[common_1.rawDataSymbol].gifter_name : null;\n }\n /**\n * Gets more information about the gifter.\n */\n async getGifter() {\n return this[common_1.rawDataSymbol].is_gift\n ? (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].gifter_id))\n : null;\n }\n /**\n * The user ID of the subscribed user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the subscribed user.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the subscribed user.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets more information about the subscribed user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n};\nHelixSubscription = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixSubscription', 'userId')\n], HelixSubscription);\nexports.HelixSubscription = HelixSubscription;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPaginatedSubscriptionsRequest = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixPaginatedRequestWithTotal_1 = require(\"../../utils/pagination/HelixPaginatedRequestWithTotal\");\nconst HelixSubscription_1 = require(\"./HelixSubscription\");\n/**\n * A special case of {@link HelixPaginatedRequestWithTotal}\n * with support for fetching the total sub points of a broadcaster.\n *\n * @inheritDoc\n */\nlet HelixPaginatedSubscriptionsRequest = class HelixPaginatedSubscriptionsRequest extends HelixPaginatedRequestWithTotal_1.HelixPaginatedRequestWithTotal {\n /** @internal */\n constructor(broadcaster, client) {\n super({\n url: 'subscriptions',\n scopes: ['channel:read:subscriptions'],\n userId: (0, common_1.extractUserId)(broadcaster),\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n }, client, data => new HelixSubscription_1.HelixSubscription(data, client));\n }\n /**\n * Gets the total sub points of the broadcaster.\n */\n async getPoints() {\n var _a;\n const data = (_a = this._currentData) !== null && _a !== void 0 ? _a : (await this._fetchData({ query: { after: undefined } }));\n return data.points;\n }\n};\nHelixPaginatedSubscriptionsRequest = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPaginatedSubscriptionsRequest')\n], HelixPaginatedSubscriptionsRequest);\nexports.HelixPaginatedSubscriptionsRequest = HelixPaginatedSubscriptionsRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixSubscriptionApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst subscription_external_1 = require(\"../../interfaces/endpoints/subscription.external\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixPaginatedSubscriptionsRequest_1 = require(\"./HelixPaginatedSubscriptionsRequest\");\nconst HelixSubscription_1 = require(\"./HelixSubscription\");\nconst HelixUserSubscription_1 = require(\"./HelixUserSubscription\");\n/**\n * The Helix API methods that deal with subscriptions.\n *\n * Can be accessed using `client.subscriptions` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const subscription = await api.subscriptions.getSubscriptionForUser('61369223', '125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Subscriptions\n */\nlet HelixSubscriptionApi = class HelixSubscriptionApi extends BaseApi_1.BaseApi {\n /**\n * Gets a list of all subscriptions to a given broadcaster.\n *\n * @param broadcaster The broadcaster to list subscriptions to.\n * @param pagination\n *\n * @expandParams\n */\n async getSubscriptions(broadcaster, pagination) {\n const result = await this._client.callApi({\n url: 'subscriptions',\n scopes: ['channel:read:subscriptions'],\n type: 'helix',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: {\n ...(0, api_call_1.createBroadcasterQuery)(broadcaster),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return {\n ...(0, HelixPaginatedResult_1.createPaginatedResultWithTotal)(result, HelixSubscription_1.HelixSubscription, this._client),\n points: result.points\n };\n }\n /**\n * Creates a paginator for all subscriptions to a given broadcaster.\n *\n * @param broadcaster The broadcaster to list subscriptions to.\n */\n getSubscriptionsPaginated(broadcaster) {\n return new HelixPaginatedSubscriptionsRequest_1.HelixPaginatedSubscriptionsRequest(broadcaster, this._client);\n }\n /**\n * Gets the subset of the given user list that is subscribed to the given broadcaster.\n *\n * @param broadcaster The broadcaster to find subscriptions to.\n * @param users The users that should be checked for subscriptions.\n */\n async getSubscriptionsForUsers(broadcaster, users) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'subscriptions',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['channel:read:subscriptions'],\n query: (0, generic_external_1.createChannelUsersCheckQuery)(broadcaster, users)\n });\n return result.data.map(data => new HelixSubscription_1.HelixSubscription(data, this._client));\n }\n /**\n * Gets the subscription data for a given user to a given broadcaster.\n *\n * This checks with the authorization of a broadcaster.\n * If you only have the authorization of a user, check {@link HelixSubscriptionApi#checkUserSubscription}}.\n *\n * @param broadcaster The broadcaster to check.\n * @param user The user to check.\n */\n async getSubscriptionForUser(broadcaster, user) {\n const list = await this.getSubscriptionsForUsers(broadcaster, [user]);\n return list.length ? list[0] : null;\n }\n /**\n * Checks if a given user is subscribed to a given broadcaster. Returns null if not subscribed.\n *\n * This checks with the authorization of a user.\n * If you only have the authorization of a broadcaster, check {@link HelixSubscriptionApi#getSubscriptionForUser}}.\n *\n * @param user The user to check.\n * @param broadcaster The broadcaster to check the user's subscription for.\n */\n async checkUserSubscription(user, broadcaster) {\n try {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'subscriptions/user',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:subscriptions'],\n query: (0, subscription_external_1.createSubscriptionCheckQuery)(broadcaster, user)\n });\n return new HelixUserSubscription_1.HelixUserSubscription(result.data[0], this._client);\n }\n catch (e) {\n if (e instanceof api_call_1.HttpStatusCodeError && e.statusCode === 404) {\n return null;\n }\n throw e;\n }\n }\n};\nHelixSubscriptionApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixSubscriptionApi')\n], HelixSubscriptionApi);\nexports.HelixSubscriptionApi = HelixSubscriptionApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixTeam = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A Stream Team.\n */\nlet HelixTeam = class HelixTeam extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the team.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The name of the team.\n */\n get name() {\n return this[common_1.rawDataSymbol].team_name;\n }\n /**\n * The display name of the team.\n */\n get displayName() {\n return this[common_1.rawDataSymbol].team_display_name;\n }\n /**\n * The URL of the background image of the team.\n */\n get backgroundImageUrl() {\n return this[common_1.rawDataSymbol].background_image_url;\n }\n /**\n * The URL of the banner of the team.\n */\n get bannerUrl() {\n return this[common_1.rawDataSymbol].banner;\n }\n /**\n * The date when the team was created.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * The date when the team was last updated.\n */\n get updateDate() {\n return new Date(this[common_1.rawDataSymbol].updated_at);\n }\n /**\n * The info of the team.\n *\n * May contain HTML tags.\n */\n get info() {\n return this[common_1.rawDataSymbol].info;\n }\n /**\n * The URL of the thumbnail of the team's logo.\n */\n get logoThumbnailUrl() {\n return this[common_1.rawDataSymbol].thumbnail_url;\n }\n /**\n * Gets the relations to the members of the team.\n */\n async getUserRelations() {\n const teamWithUsers = await this._client.teams.getTeamById(this.id);\n return teamWithUsers.userRelations;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixTeam.prototype, \"_client\", void 0);\nHelixTeam = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixTeam', 'id')\n], HelixTeam);\nexports.HelixTeam = HelixTeam;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixTeamWithUsers = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixUserRelation_1 = require(\"../../relations/HelixUserRelation\");\nconst HelixTeam_1 = require(\"./HelixTeam\");\n/**\n * A Stream Team with its member relations.\n *\n * @inheritDoc\n */\nlet HelixTeamWithUsers = class HelixTeamWithUsers extends HelixTeam_1.HelixTeam {\n /**\n * The relations to the members of the team.\n */\n get userRelations() {\n return this[common_1.rawDataSymbol].users.map(data => new HelixUserRelation_1.HelixUserRelation(data, this._client));\n }\n};\nHelixTeamWithUsers = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixTeamWithUsers', 'id')\n], HelixTeamWithUsers);\nexports.HelixTeamWithUsers = HelixTeamWithUsers;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixTeamApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixTeam_1 = require(\"./HelixTeam\");\nconst HelixTeamWithUsers_1 = require(\"./HelixTeamWithUsers\");\n/**\n * The Helix API methods that deal with teams.\n *\n * Can be accessed using `client.teams` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const tags = await api.teams.getChannelTeams('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Teams\n */\nlet HelixTeamApi = class HelixTeamApi extends BaseApi_1.BaseApi {\n /**\n * Gets a list of all teams a broadcaster is a member of.\n *\n * @param broadcaster The broadcaster to get the teams of.\n */\n async getTeamsForBroadcaster(broadcaster) {\n var _a, _b;\n const result = await this._client.callApi({\n type: 'helix',\n url: 'teams/channel',\n userId: (0, common_1.extractUserId)(broadcaster),\n query: (0, api_call_1.createBroadcasterQuery)(broadcaster)\n });\n return (_b = (_a = result.data) === null || _a === void 0 ? void 0 : _a.map(data => new HelixTeam_1.HelixTeam(data, this._client))) !== null && _b !== void 0 ? _b : [];\n }\n /**\n * Gets a team by ID.\n *\n * Returns null if there is no team with the given ID.\n *\n * @param id The ID of the team.\n */\n async getTeamById(id) {\n try {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'teams',\n query: {\n id\n }\n });\n return new HelixTeamWithUsers_1.HelixTeamWithUsers(result.data[0], this._client);\n }\n catch (e) {\n // Twitch, please...\n if (e instanceof api_call_1.HttpStatusCodeError && e.statusCode === 500) {\n return null;\n }\n throw e;\n }\n }\n /**\n * Gets a team by name.\n *\n * Returns null if there is no team with the given name.\n *\n * @param name The name of the team.\n */\n async getTeamByName(name) {\n try {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'teams',\n query: {\n name\n }\n });\n return new HelixTeamWithUsers_1.HelixTeamWithUsers(result.data[0], this._client);\n }\n catch (e) {\n // ...but this one is fine\n if (e instanceof api_call_1.HttpStatusCodeError && e.statusCode === 404) {\n return null;\n }\n throw e;\n }\n }\n};\nHelixTeamApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixTeamApi')\n], HelixTeamApi);\nexports.HelixTeamApi = HelixTeamApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createUserBlockDeleteQuery = exports.createUserBlockCreateQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createUserBlockCreateQuery(target, additionalInfo) {\n return {\n target_user_id: (0, common_1.extractUserId)(target),\n source_context: additionalInfo.sourceContext,\n reason: additionalInfo.reason\n };\n}\nexports.createUserBlockCreateQuery = createUserBlockCreateQuery;\n/** @internal */\nfunction createUserBlockDeleteQuery(target) {\n return {\n target_user_id: (0, common_1.extractUserId)(target)\n };\n}\nexports.createUserBlockDeleteQuery = createUserBlockDeleteQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBaseExtension = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @protected */\nclass HelixBaseExtension extends common_1.DataObject {\n /**\n * The ID of the extension.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The version of the extension.\n */\n get version() {\n return this[common_1.rawDataSymbol].version;\n }\n /**\n * The name of the extension.\n */\n get name() {\n return this[common_1.rawDataSymbol].name;\n }\n}\nexports.HelixBaseExtension = HelixBaseExtension;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixInstalledExtension = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixBaseExtension_1 = require(\"./HelixBaseExtension\");\n/**\n * A Twitch Extension that is installed in a slot of a channel.\n *\n * @inheritDoc\n */\nlet HelixInstalledExtension = class HelixInstalledExtension extends HelixBaseExtension_1.HelixBaseExtension {\n /** @internal */\n constructor(slotType, slotId, data) {\n super(data);\n this._slotType = slotType;\n this._slotId = slotId;\n }\n /**\n * The type of the slot the extension is in.\n */\n get slotType() {\n return this._slotType;\n }\n /**\n * The ID of the slot the extension is in.\n */\n get slotId() {\n return this._slotId;\n }\n};\nHelixInstalledExtension = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixInstalledExtension', 'id')\n], HelixInstalledExtension);\nexports.HelixInstalledExtension = HelixInstalledExtension;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixInstalledExtensionList = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixInstalledExtension_1 = require(\"./HelixInstalledExtension\");\n/**\n * A list of extensions installed in a channel.\n */\nlet HelixInstalledExtensionList = class HelixInstalledExtensionList extends common_1.DataObject {\n getExtensionAtSlot(type, slotId) {\n const data = this[common_1.rawDataSymbol][type][slotId];\n return data.active ? new HelixInstalledExtension_1.HelixInstalledExtension(type, slotId, data) : null;\n }\n getExtensionsForSlotType(type) {\n return [...Object.entries(this[common_1.rawDataSymbol][type])]\n .filter((entry) => entry[1].active)\n .map(([slotId, slotData]) => new HelixInstalledExtension_1.HelixInstalledExtension(type, slotId, slotData));\n }\n getAllExtensions() {\n return [...Object.entries(this[common_1.rawDataSymbol])].flatMap(([type, typeEntries]) => [...Object.entries(typeEntries)]\n .filter((entry) => entry[1].active)\n .map(([slotId, slotData]) => new HelixInstalledExtension_1.HelixInstalledExtension(type, slotId, slotData)));\n }\n};\nHelixInstalledExtensionList = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixInstalledExtensionList')\n], HelixInstalledExtensionList);\nexports.HelixInstalledExtensionList = HelixInstalledExtensionList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixUserExtension = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixBaseExtension_1 = require(\"./HelixBaseExtension\");\n/**\n * A Twitch Extension that was installed by a user.\n *\n * @inheritDoc\n */\nlet HelixUserExtension = class HelixUserExtension extends HelixBaseExtension_1.HelixBaseExtension {\n /**\n * Whether the user has configured the extension to be able to activate it.\n */\n get canActivate() {\n return this[common_1.rawDataSymbol].can_activate;\n }\n /**\n * The available types of the extension.\n */\n get types() {\n return this[common_1.rawDataSymbol].type;\n }\n};\nHelixUserExtension = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixUserExtension', 'id')\n], HelixUserExtension);\nexports.HelixUserExtension = HelixUserExtension;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixUser = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A Twitch user.\n */\nlet HelixUser = class HelixUser extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the user.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The name of the user.\n */\n get name() {\n return this[common_1.rawDataSymbol].login;\n }\n /**\n * The display name of the user.\n */\n get displayName() {\n return this[common_1.rawDataSymbol].display_name;\n }\n /**\n * The description of the user.\n */\n get description() {\n return this[common_1.rawDataSymbol].description;\n }\n /**\n * The type of the user.\n */\n get type() {\n return this[common_1.rawDataSymbol].type;\n }\n /**\n * The type of the broadcaster.\n */\n get broadcasterType() {\n return this[common_1.rawDataSymbol].broadcaster_type;\n }\n /**\n * The URL of the profile picture of the user.\n */\n get profilePictureUrl() {\n return this[common_1.rawDataSymbol].profile_image_url;\n }\n /**\n * The URL of the offline video placeholder of the user.\n */\n get offlinePlaceholderUrl() {\n return this[common_1.rawDataSymbol].offline_image_url;\n }\n /**\n * The date when the user was created, i.e. when they registered on Twitch.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * Gets the channel's stream data.\n */\n async getStream() {\n return await this._client.streams.getStreamByUserId(this);\n }\n /**\n * Gets a list of broadcasters the user follows.\n */\n async getFollowedChannels() {\n return await this._client.channels.getFollowedChannels(this);\n }\n /**\n * Gets the follow data of the user to the given broadcaster, or `null` if the user doesn't follow the broadcaster.\n *\n * This requires user authentication.\n * For broadcaster authentication, you can use `getChannelFollower` while switching `this` and the parameter.\n *\n * @param broadcaster The broadcaster to check the follow to.\n */\n async getFollowedChannel(broadcaster) {\n var _a;\n const result = await this._client.channels.getFollowedChannels(this, broadcaster);\n return (_a = result.data[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Checks whether the user is following the given broadcaster.\n *\n * This requires user authentication.\n * For broadcaster authentication, you can use `isFollowedBy` while switching `this` and the parameter.\n *\n * @param broadcaster The broadcaster to check the user's follow to.\n */\n async follows(broadcaster) {\n return (await this.getFollowedChannel(broadcaster)) !== null;\n }\n /**\n * Gets a list of users that follow the broadcaster.\n */\n async getChannelFollowers() {\n return await this._client.channels.getChannelFollowers(this);\n }\n /**\n * Gets the follow data of the given user to the broadcaster, or `null` if the user doesn't follow the broadcaster.\n *\n * This requires broadcaster authentication.\n * For user authentication, you can use `getFollowedChannel` while switching `this` and the parameter.\n *\n * @param user The user to check the follow from.\n */\n async getChannelFollower(user) {\n var _a;\n const result = await this._client.channels.getChannelFollowers(this, user);\n return (_a = result.data[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Checks whether the given user is following the broadcaster.\n *\n * This requires broadcaster authentication.\n * For user authentication, you can use `follows` while switching `this` and the parameter.\n *\n * @param user The user to check the broadcaster's follow from.\n */\n async isFollowedBy(user) {\n return (await this.getChannelFollower(user)) !== null;\n }\n /**\n * Gets the subscription data for the user to the given broadcaster, or `null` if the user is not subscribed.\n *\n * This requires user authentication.\n * For broadcaster authentication, you can use `getSubscriber` while switching `this` and the parameter.\n *\n * @param broadcaster The broadcaster you want to get the subscription data for.\n */\n async getSubscriptionTo(broadcaster) {\n return await this._client.subscriptions.checkUserSubscription(this, broadcaster);\n }\n /**\n * Checks whether the user is subscribed to the given broadcaster.\n *\n * This requires user authentication.\n * For broadcaster authentication, you can use `hasSubscriber` while switching `this` and the parameter.\n *\n * @param broadcaster The broadcaster you want to check the subscription for.\n */\n async isSubscribedTo(broadcaster) {\n return (await this.getSubscriptionTo(broadcaster)) !== null;\n }\n /**\n * Gets the subscription data for the given user to the broadcaster, or `null` if the user is not subscribed.\n *\n * This requires broadcaster authentication.\n * For user authentication, you can use `getSubscriptionTo` while switching `this` and the parameter.\n *\n * @param user The user you want to get the subscription data for.\n */\n async getSubscriber(user) {\n return await this._client.subscriptions.getSubscriptionForUser(this, user);\n }\n /**\n * Checks whether the given user is subscribed to the broadcaster.\n *\n * This requires broadcaster authentication.\n * For user authentication, you can use `isSubscribedTo` while switching `this` and the parameter.\n *\n * @param user The user you want to check the subscription for.\n */\n async hasSubscriber(user) {\n return (await this.getSubscriber(user)) !== null;\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixUser.prototype, \"_client\", void 0);\nHelixUser = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixUser', 'id')\n], HelixUser);\nexports.HelixUser = HelixUser;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixPrivilegedUser = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixUser_1 = require(\"./HelixUser\");\n/**\n * A user you have extended privilges for, i.e. yourself.\n *\n * @inheritDoc\n */\nlet HelixPrivilegedUser = class HelixPrivilegedUser extends HelixUser_1.HelixUser {\n /**\n * The email address of the user.\n */\n get email() {\n return this[common_1.rawDataSymbol].email;\n }\n /**\n * Changes the description of the user.\n *\n * @param description The new description.\n */\n async setDescription(description) {\n return await this._client.users.updateAuthenticatedUser(this, { description });\n }\n};\nHelixPrivilegedUser = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixPrivilegedUser', 'id')\n], HelixPrivilegedUser);\nexports.HelixPrivilegedUser = HelixPrivilegedUser;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixUserBlock = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * An user blocked by a previously given user.\n */\nlet HelixUserBlock = class HelixUserBlock extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the blocked user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the blocked user.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the blocked user.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].display_name;\n }\n /**\n * Gets additional information about the blocked user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixUserBlock.prototype, \"_client\", void 0);\nHelixUserBlock = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixUserBlock', 'userId')\n], HelixUserBlock);\nexports.HelixUserBlock = HelixUserBlock;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixUserApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst generic_external_1 = require(\"../../interfaces/endpoints/generic.external\");\nconst user_external_1 = require(\"../../interfaces/endpoints/user.external\");\nconst HelixRequestBatcher_1 = require(\"../../utils/HelixRequestBatcher\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixInstalledExtensionList_1 = require(\"./extensions/HelixInstalledExtensionList\");\nconst HelixUserExtension_1 = require(\"./extensions/HelixUserExtension\");\nconst HelixPrivilegedUser_1 = require(\"./HelixPrivilegedUser\");\nconst HelixUser_1 = require(\"./HelixUser\");\nconst HelixUserBlock_1 = require(\"./HelixUserBlock\");\n/**\n * The Helix API methods that deal with users.\n *\n * Can be accessed using `client.users` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const user = await api.users.getUserById('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Users\n */\nlet HelixUserApi = class HelixUserApi extends BaseApi_1.BaseApi {\n constructor() {\n super(...arguments);\n /** @internal */\n this._getUserByIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'users'\n }, 'id', 'id', this._client, (data) => new HelixUser_1.HelixUser(data, this._client));\n /** @internal */\n this._getUserByNameBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'users'\n }, 'login', 'login', this._client, (data) => new HelixUser_1.HelixUser(data, this._client));\n }\n /**\n * Gets the user data for the given list of user IDs.\n *\n * @param userIds The user IDs you want to look up.\n */\n async getUsersByIds(userIds) {\n return await this._getUsers('id', userIds.map(common_1.extractUserId));\n }\n /**\n * Gets the user data for the given list of usernames.\n *\n * @param userNames The usernames you want to look up.\n */\n async getUsersByNames(userNames) {\n return await this._getUsers('login', userNames.map(common_1.extractUserName));\n }\n /**\n * Gets the user data for the given user ID.\n *\n * @param user The user ID you want to look up.\n */\n async getUserById(user) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users',\n userId,\n query: {\n id: userId\n }\n });\n return (0, shared_utils_1.mapNullable)(result.data[0], data => new HelixUser_1.HelixUser(data, this._client));\n }\n /**\n * Gets the user data for the given user ID, batching multiple calls into fewer requests as the API allows.\n *\n * @param user The user ID you want to look up.\n */\n async getUserByIdBatched(user) {\n return await this._getUserByIdBatcher.request((0, common_1.extractUserId)(user));\n }\n /**\n * Gets the user data for the given username.\n *\n * @param userName The username you want to look up.\n */\n async getUserByName(userName) {\n const users = await this._getUsers('login', [(0, common_1.extractUserName)(userName)]);\n return users.length ? users[0] : null;\n }\n /**\n * Gets the user data for the given username, batching multiple calls into fewer requests as the API allows.\n *\n * @param user The username you want to look up.\n */\n async getUserByNameBatched(user) {\n return await this._getUserByNameBatcher.request((0, common_1.extractUserName)(user));\n }\n /**\n * Gets the user data of the given authenticated user.\n *\n * @param user The user to get data for.\n * @param withEmail Whether you need the user's email address.\n */\n async getAuthenticatedUser(user, withEmail = false) {\n var _a;\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users',\n forceType: 'user',\n userId: (0, common_1.extractUserId)(user),\n scopes: withEmail ? ['user:read:email'] : undefined\n });\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!((_a = result.data) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new common_1.HellFreezesOverError('Could not get authenticated user');\n }\n return new HelixPrivilegedUser_1.HelixPrivilegedUser(result.data[0], this._client);\n }\n /**\n * Updates the given authenticated user's data.\n *\n * @param user The user to update.\n * @param data The data to update.\n */\n async updateAuthenticatedUser(user, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users',\n method: 'PUT',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:edit'],\n query: {\n description: data.description\n }\n });\n return new HelixPrivilegedUser_1.HelixPrivilegedUser(result.data[0], this._client);\n }\n /**\n * Gets a list of users blocked by the given user.\n *\n * @param user The user to get blocks for.\n * @param pagination\n *\n * @expandParams\n */\n async getBlocks(user, pagination) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users/blocks',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:blocked_users'],\n query: {\n ...(0, api_call_1.createBroadcasterQuery)(user),\n ...(0, HelixPagination_1.createPaginationQuery)(pagination)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixUserBlock_1.HelixUserBlock, this._client);\n }\n /**\n * Creates a paginator for users blocked by the given user.\n *\n * @param user The user to get blocks for.\n */\n getBlocksPaginated(user) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'users/blocks',\n userId: (0, common_1.extractUserId)(user),\n scopes: ['user:read:blocked_users'],\n query: (0, api_call_1.createBroadcasterQuery)(user)\n }, this._client, data => new HelixUserBlock_1.HelixUserBlock(data, this._client));\n }\n /**\n * Blocks the given user.\n *\n * @param broadcaster The user to add the block to.\n * @param target The user to block.\n * @param additionalInfo Additional info to give context to the block.\n *\n * @expandParams\n */\n async createBlock(broadcaster, target, additionalInfo = {}) {\n await this._client.callApi({\n type: 'helix',\n url: 'users/blocks',\n method: 'PUT',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['user:manage:blocked_users'],\n query: (0, user_external_1.createUserBlockCreateQuery)(target, additionalInfo)\n });\n }\n /**\n * Unblocks the given user.\n *\n * @param broadcaster The user to remove the block from.\n * @param target The user to unblock.\n */\n async deleteBlock(broadcaster, target) {\n await this._client.callApi({\n type: 'helix',\n url: 'users/blocks',\n method: 'DELETE',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['user:manage:blocked_users'],\n query: (0, user_external_1.createUserBlockDeleteQuery)(target)\n });\n }\n /**\n * Gets a list of all extensions for the given authenticated user.\n *\n * @param broadcaster The broadcaster to get the list of extensions for.\n * @param withInactive Whether to include inactive extensions.\n */\n async getExtensionsForAuthenticatedUser(broadcaster, withInactive = false) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users/extensions/list',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: withInactive ? ['user:edit:broadcast'] : ['user:read:broadcast', 'user:edit:broadcast']\n });\n return result.data.map(data => new HelixUserExtension_1.HelixUserExtension(data));\n }\n /**\n * Gets a list of all installed extensions for the given user.\n *\n * @param user The user to get the installed extensions for.\n * @param withDev Whether to include extensions that are in development.\n */\n async getActiveExtensions(user, withDev = false) {\n const userId = (0, common_1.extractUserId)(user);\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users/extensions',\n userId,\n scopes: withDev ? ['user:read:broadcast', 'user:edit:broadcast'] : undefined,\n query: (0, generic_external_1.createSingleKeyQuery)('user_id', userId)\n });\n return new HelixInstalledExtensionList_1.HelixInstalledExtensionList(result.data);\n }\n /**\n * Updates the installed extensions for the given authenticated user.\n *\n * @param broadcaster The user to update the installed extensions for.\n * @param data The extension installation payload.\n *\n * The format is shown on the [Twitch documentation](https://dev.twitch.tv/docs/api/reference#update-user-extensions).\n * Don't use the \"data\" wrapper though.\n */\n async updateActiveExtensionsForAuthenticatedUser(broadcaster, data) {\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users/extensions',\n method: 'PUT',\n userId: (0, common_1.extractUserId)(broadcaster),\n scopes: ['user:edit:broadcast'],\n jsonBody: { data }\n });\n return new HelixInstalledExtensionList_1.HelixInstalledExtensionList(result.data);\n }\n async _getUsers(lookupType, param) {\n if (param.length === 0) {\n return [];\n }\n const query = { [lookupType]: param };\n const result = await this._client.callApi({\n type: 'helix',\n url: 'users',\n query\n });\n return result.data.map(userData => new HelixUser_1.HelixUser(userData, this._client));\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixUserApi.prototype, \"_getUserByIdBatcher\", void 0);\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixUserApi.prototype, \"_getUserByNameBatcher\", void 0);\nHelixUserApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixUserApi')\n], HelixUserApi);\nexports.HelixUserApi = HelixUserApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixVideo = void 0;\nconst tslib_1 = require(\"tslib\");\nconst cache_decorators_1 = require(\"@d-fischer/cache-decorators\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A video on Twitch.\n */\nlet HelixVideo = class HelixVideo extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The ID of the video.\n */\n get id() {\n return this[common_1.rawDataSymbol].id;\n }\n /**\n * The ID of the user who created the video.\n */\n get userId() {\n return this[common_1.rawDataSymbol].user_id;\n }\n /**\n * The name of the user who created the video.\n */\n get userName() {\n return this[common_1.rawDataSymbol].user_login;\n }\n /**\n * The display name of the user who created the video.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].user_name;\n }\n /**\n * Gets information about the user who created the video.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].user_id));\n }\n /**\n * The title of the video.\n */\n get title() {\n return this[common_1.rawDataSymbol].title;\n }\n /**\n * The description of the video.\n */\n get description() {\n return this[common_1.rawDataSymbol].description;\n }\n /**\n * The date when the video was created.\n */\n get creationDate() {\n return new Date(this[common_1.rawDataSymbol].created_at);\n }\n /**\n * The date when the video was published.\n */\n get publishDate() {\n return new Date(this[common_1.rawDataSymbol].published_at);\n }\n /**\n * The URL of the video.\n */\n get url() {\n return this[common_1.rawDataSymbol].url;\n }\n /**\n * The URL of the thumbnail of the video.\n */\n get thumbnailUrl() {\n return this[common_1.rawDataSymbol].thumbnail_url;\n }\n /**\n * Builds the thumbnail URL of the video using the given dimensions.\n *\n * @param width The width of the thumbnail.\n * @param height The height of the thumbnail.\n */\n getThumbnailUrl(width, height) {\n return this[common_1.rawDataSymbol].thumbnail_url\n .replace('%{width}', width.toString())\n .replace('%{height}', height.toString());\n }\n /**\n * Whether the video is public or not.\n */\n get isPublic() {\n return this[common_1.rawDataSymbol].viewable === 'public';\n }\n /**\n * The number of views of the video.\n */\n get views() {\n return this[common_1.rawDataSymbol].view_count;\n }\n /**\n * The language of the video.\n */\n get language() {\n return this[common_1.rawDataSymbol].language;\n }\n /**\n * The type of the video.\n */\n get type() {\n return this[common_1.rawDataSymbol].type;\n }\n /**\n * The duration of the video, as formatted by Twitch.\n */\n get duration() {\n return this[common_1.rawDataSymbol].duration;\n }\n /**\n * The duration of the video, in seconds.\n */\n get durationInSeconds() {\n const parts = this[common_1.rawDataSymbol].duration.match(/\\d+[hms]/g);\n if (!parts) {\n throw new common_1.HellFreezesOverError(`Could not parse duration string: ${this[common_1.rawDataSymbol].duration}`);\n }\n return parts\n .map(part => {\n const partialMatch = /(\\d+)([hms])/.exec(part);\n if (!partialMatch) {\n throw new common_1.HellFreezesOverError(`Could not parse partial duration string: ${part}`);\n }\n const [, num, unit] = partialMatch;\n return parseInt(num, 10) * { h: 3600, m: 60, s: 1 }[unit];\n })\n .reduce((a, b) => a + b);\n }\n /**\n * The ID of the stream this video belongs to.\n *\n * Returns null if the video is not an archived stream.\n */\n get streamId() {\n return this[common_1.rawDataSymbol].stream_id;\n }\n /**\n * The raw data of muted segments of the video.\n */\n get mutedSegmentData() {\n var _a, _b;\n return (_b = (_a = this[common_1.rawDataSymbol].muted_segments) === null || _a === void 0 ? void 0 : _a.slice()) !== null && _b !== void 0 ? _b : [];\n }\n /**\n * Checks whether the video is muted at a given offset or range.\n *\n * @param offset The start of your range, in seconds from the start of the video,\n * or if no duration is given, the exact offset that is checked.\n * @param duration The duration of your range, in seconds.\n * @param partial Whether the range check is only partial.\n *\n * By default, this function returns true only if the passed range is entirely contained in a muted segment.\n */\n isMutedAt(offset, duration, partial = false) {\n if (this[common_1.rawDataSymbol].muted_segments === null) {\n return false;\n }\n if (duration == null) {\n return this[common_1.rawDataSymbol].muted_segments.some(seg => seg.offset <= offset && offset <= seg.offset + seg.duration);\n }\n const end = offset + duration;\n if (partial) {\n return this[common_1.rawDataSymbol].muted_segments.some(seg => {\n const segEnd = seg.offset + seg.duration;\n return offset < segEnd && seg.offset < end;\n });\n }\n return this[common_1.rawDataSymbol].muted_segments.some(seg => {\n const segEnd = seg.offset + seg.duration;\n return seg.offset <= offset && end <= segEnd;\n });\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixVideo.prototype, \"_client\", void 0);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], HelixVideo.prototype, \"durationInSeconds\", null);\nHelixVideo = tslib_1.__decorate([\n cache_decorators_1.Cacheable,\n (0, common_1.rtfm)('api', 'HelixVideo', 'id')\n], HelixVideo);\nexports.HelixVideo = HelixVideo;\n", "\"use strict\";\nvar HelixVideoApi_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixVideoApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\nconst HelixRequestBatcher_1 = require(\"../../utils/HelixRequestBatcher\");\nconst HelixPaginatedRequest_1 = require(\"../../utils/pagination/HelixPaginatedRequest\");\nconst HelixPaginatedResult_1 = require(\"../../utils/pagination/HelixPaginatedResult\");\nconst HelixPagination_1 = require(\"../../utils/pagination/HelixPagination\");\nconst BaseApi_1 = require(\"../BaseApi\");\nconst HelixVideo_1 = require(\"./HelixVideo\");\n/**\n * The Helix API methods that deal with videos.\n *\n * Can be accessed using `client.videos` on an {@link ApiClient} instance.\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * const { data: videos } = await api.videos.getVideosByUser('125328655');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Videos\n */\nlet HelixVideoApi = HelixVideoApi_1 = class HelixVideoApi extends BaseApi_1.BaseApi {\n constructor() {\n super(...arguments);\n /** @internal */\n this._getVideoByIdBatcher = new HelixRequestBatcher_1.HelixRequestBatcher({\n url: 'videos'\n }, 'id', 'id', this._client, (data) => new HelixVideo_1.HelixVideo(data, this._client));\n }\n /**\n * Gets the video data for the given list of video IDs.\n *\n * @param ids The video IDs you want to look up.\n */\n async getVideosByIds(ids) {\n const result = await this._getVideos('id', ids);\n return result.data;\n }\n /**\n * Gets the video data for the given video ID.\n *\n * @param id The video ID you want to look up.\n */\n async getVideoById(id) {\n const videos = await this.getVideosByIds([id]);\n return videos.length ? videos[0] : null;\n }\n /**\n * Gets the video data for the given video ID, batching multiple calls into fewer requests as the API allows.\n *\n * @param id The video ID you want to look up.\n */\n async getVideoByIdBatched(id) {\n return await this._getVideoByIdBatcher.request(id);\n }\n /**\n * Gets the videos of the given user.\n *\n * @param user The user you want to get videos from.\n * @param filter\n *\n * @expandParams\n */\n async getVideosByUser(user, filter = {}) {\n const userId = (0, common_1.extractUserId)(user);\n return await this._getVideos('user_id', [userId], filter);\n }\n /**\n * Creates a paginator for videos of the given user.\n *\n * @param user The user you want to get videos from.\n * @param filter\n *\n * @expandParams\n */\n getVideosByUserPaginated(user, filter = {}) {\n const userId = (0, common_1.extractUserId)(user);\n return this._getVideosPaginated('user_id', [userId], filter);\n }\n /**\n * Gets the videos of the given game.\n *\n * @param gameId The game you want to get videos from.\n * @param filter\n *\n * @expandParams\n */\n async getVideosByGame(gameId, filter = {}) {\n return await this._getVideos('game_id', [gameId], filter);\n }\n /**\n * Creates a paginator for videos of the given game.\n *\n * @param gameId The game you want to get videos from.\n * @param filter\n *\n * @expandParams\n */\n getVideosByGamePaginated(gameId, filter = {}) {\n return this._getVideosPaginated('game_id', [gameId], filter);\n }\n /**\n * Deletes videos by its IDs.\n *\n * @param broadcaster The broadcaster to delete the videos for.\n * @param ids The IDs of the videos to delete.\n */\n async deleteVideosByIds(broadcaster, ids) {\n await this._client.callApi({\n type: 'helix',\n url: 'videos',\n method: 'DELETE',\n scopes: ['channel:manage:videos'],\n userId: (0, common_1.extractUserId)(broadcaster),\n query: {\n id: ids\n }\n });\n }\n /** @internal */\n async _getVideos(filterType, filterValues, filter = {}) {\n if (!filterValues.length) {\n return { data: [] };\n }\n const result = await this._client.callApi({\n type: 'helix',\n url: 'videos',\n userId: filterType === 'user_id' ? filterValues[0] : undefined,\n query: {\n ...HelixVideoApi_1._makeVideosQuery(filterType, filterValues, filter),\n ...(0, HelixPagination_1.createPaginationQuery)(filter)\n }\n });\n return (0, HelixPaginatedResult_1.createPaginatedResult)(result, HelixVideo_1.HelixVideo, this._client);\n }\n /** @internal */\n _getVideosPaginated(filterType, filterValues, filter = {}) {\n return new HelixPaginatedRequest_1.HelixPaginatedRequest({\n url: 'videos',\n userId: filterType === 'user_id' ? filterValues[0] : undefined,\n query: HelixVideoApi_1._makeVideosQuery(filterType, filterValues, filter)\n }, this._client, data => new HelixVideo_1.HelixVideo(data, this._client));\n }\n /** @internal */\n static _makeVideosQuery(filterType, filterValues, filter = {}) {\n const { language, period, orderBy, type } = filter;\n return {\n [filterType]: filterValues,\n language,\n period,\n sort: orderBy,\n type\n };\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixVideoApi.prototype, \"_getVideoByIdBatcher\", void 0);\nHelixVideoApi = HelixVideoApi_1 = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixVideoApi')\n], HelixVideoApi);\nexports.HelixVideoApi = HelixVideoApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createWhisperQuery = void 0;\nconst common_1 = require(\"@twurple/common\");\n/** @internal */\nfunction createWhisperQuery(from, to) {\n return {\n from_user_id: (0, common_1.extractUserId)(from),\n to_user_id: (0, common_1.extractUserId)(to)\n };\n}\nexports.createWhisperQuery = createWhisperQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixWhisperApi = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst whisper_external_1 = require(\"../../interfaces/endpoints/whisper.external\");\nconst BaseApi_1 = require(\"../BaseApi\");\n/**\n * The API methods that deal with whispers.\n *\n * Can be accessed using 'client.whispers' on an {@link ApiClient} instance\n *\n * ## Example\n * ```ts\n * const api = new ApiClient({ authProvider });\n * await api.whispers.sendWhisper('61369223', '86753099', 'Howdy, partner!');\n * ```\n *\n * @meta category helix\n * @meta categorizedTitle Whispers\n */\nlet HelixWhisperApi = class HelixWhisperApi extends BaseApi_1.BaseApi {\n /**\n * Sends a whisper message to the specified user.\n *\n * NOTE: The API may silently drop whispers that it suspects of violating Twitch policies. (The API does not indicate that it dropped the whisper; it returns a 204 status code as if it succeeded).\n *\n * @param from The user sending the whisper. This user must have a verified phone number and must match the user in the access token.\n * @param to The user to receive the whisper.\n * @param message The whisper message to send. The message must not be empty.\n *\n * The maximum message lengths are:\n *\n * 500 characters if the user you're sending the message to hasn't whispered you before.\n * 10,000 characters if the user you're sending the message to has whispered you before.\n *\n * Messages that exceed the maximum length are truncated.\n */\n async sendWhisper(from, to, message) {\n await this._client.callApi({\n type: 'helix',\n url: 'whispers',\n method: 'POST',\n userId: (0, common_1.extractUserId)(from),\n scopes: ['user:manage:whispers'],\n query: (0, whisper_external_1.createWhisperQuery)(from, to),\n jsonBody: {\n message\n }\n });\n }\n};\nHelixWhisperApi = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixWhisperApi')\n], HelixWhisperApi);\nexports.HelixWhisperApi = HelixWhisperApi;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ApiReportedRequest = void 0;\n/**\n * Reporting details for an API request.\n */\nclass ApiReportedRequest {\n /** @internal */\n constructor(_options, _httpStatus, _resolvedUserId) {\n this._options = _options;\n this._httpStatus = _httpStatus;\n this._resolvedUserId = _resolvedUserId;\n }\n /**\n * The options used to call the API.\n */\n get options() {\n return this._options;\n }\n /**\n * The HTTP status code returned by Twitch for the request.\n */\n get httpStatus() {\n return this._httpStatus;\n }\n /**\n * The ID of the user that was used for authentication, or `null` if an app access token was used.\n */\n get resolvedUserId() {\n return this._resolvedUserId;\n }\n}\nexports.ApiReportedRequest = ApiReportedRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseApiClient = void 0;\nconst tslib_1 = require(\"tslib\");\nconst cache_decorators_1 = require(\"@d-fischer/cache-decorators\");\nconst rate_limiter_1 = require(\"@d-fischer/rate-limiter\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst typed_event_emitter_1 = require(\"@d-fischer/typed-event-emitter\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst auth_1 = require(\"@twurple/auth\");\nconst common_1 = require(\"@twurple/common\");\nconst retry = require(\"retry\");\nconst HelixBitsApi_1 = require(\"../endpoints/bits/HelixBitsApi\");\nconst HelixChannelApi_1 = require(\"../endpoints/channel/HelixChannelApi\");\nconst HelixChannelPointsApi_1 = require(\"../endpoints/channelPoints/HelixChannelPointsApi\");\nconst HelixCharityApi_1 = require(\"../endpoints/charity/HelixCharityApi\");\nconst HelixChatApi_1 = require(\"../endpoints/chat/HelixChatApi\");\nconst HelixClipApi_1 = require(\"../endpoints/clip/HelixClipApi\");\nconst HelixContentClassificationLabelApi_1 = require(\"../endpoints/contentClassificationLabels/HelixContentClassificationLabelApi\");\nconst HelixEntitlementApi_1 = require(\"../endpoints/entitlements/HelixEntitlementApi\");\nconst HelixEventSubApi_1 = require(\"../endpoints/eventSub/HelixEventSubApi\");\nconst HelixExtensionsApi_1 = require(\"../endpoints/extensions/HelixExtensionsApi\");\nconst HelixGameApi_1 = require(\"../endpoints/game/HelixGameApi\");\nconst HelixGoalApi_1 = require(\"../endpoints/goals/HelixGoalApi\");\nconst HelixHypeTrainApi_1 = require(\"../endpoints/hypeTrain/HelixHypeTrainApi\");\nconst HelixModerationApi_1 = require(\"../endpoints/moderation/HelixModerationApi\");\nconst HelixPollApi_1 = require(\"../endpoints/poll/HelixPollApi\");\nconst HelixPredictionApi_1 = require(\"../endpoints/prediction/HelixPredictionApi\");\nconst HelixRaidApi_1 = require(\"../endpoints/raids/HelixRaidApi\");\nconst HelixScheduleApi_1 = require(\"../endpoints/schedule/HelixScheduleApi\");\nconst HelixSearchApi_1 = require(\"../endpoints/search/HelixSearchApi\");\nconst HelixStreamApi_1 = require(\"../endpoints/stream/HelixStreamApi\");\nconst HelixSubscriptionApi_1 = require(\"../endpoints/subscriptions/HelixSubscriptionApi\");\nconst HelixTeamApi_1 = require(\"../endpoints/team/HelixTeamApi\");\nconst HelixUserApi_1 = require(\"../endpoints/user/HelixUserApi\");\nconst HelixVideoApi_1 = require(\"../endpoints/video/HelixVideoApi\");\nconst HelixWhisperApi_1 = require(\"../endpoints/whisper/HelixWhisperApi\");\nconst ApiReportedRequest_1 = require(\"../reporting/ApiReportedRequest\");\n/** @private */\nlet BaseApiClient = class BaseApiClient extends typed_event_emitter_1.EventEmitter {\n /** @internal */\n constructor(config, logger, rateLimiter) {\n super();\n this.onRequest = this.registerEvent();\n this._config = config;\n this._logger = logger;\n this._rateLimiter = rateLimiter;\n }\n /**\n * Requests scopes from the auth provider for the given user.\n *\n * @param user The user to request scopes for.\n * @param scopes The scopes to request.\n */\n async requestScopesForUser(user, scopes) {\n await this._config.authProvider.getAccessTokenForUser(user, ...scopes.map(scope => [scope]));\n }\n /**\n * Gets information about your access token.\n */\n async getTokenInfo() {\n try {\n const data = await this.callApi({ type: 'auth', url: 'validate' });\n return new auth_1.TokenInfo(data);\n }\n catch (e) {\n if (e instanceof api_call_1.HttpStatusCodeError && e.statusCode === 401) {\n throw new auth_1.InvalidTokenError({ cause: e });\n }\n throw e;\n }\n }\n /**\n * Makes a call to the Twitch API using your access token.\n *\n * @param options The configuration of the call.\n */\n async callApi(options) {\n var _a;\n const { authProvider } = this._config;\n const shouldAuth = (_a = options.auth) !== null && _a !== void 0 ? _a : true;\n if (!shouldAuth) {\n return await (0, api_call_1.callTwitchApi)(options, authProvider.clientId, undefined, undefined, this._config.fetchOptions);\n }\n let forceUser = false;\n if (options.forceType) {\n switch (options.forceType) {\n case 'app': {\n if (!authProvider.getAppAccessToken) {\n throw new Error('Tried to make an API call that requires an app access token but your auth provider does not support that');\n }\n const accessToken = await authProvider.getAppAccessToken();\n return await this._callApiUsingInitialToken(options, accessToken);\n }\n case 'user': {\n forceUser = true;\n break;\n }\n default: {\n throw new common_1.HellFreezesOverError(`Unknown forced token type: ${options.forceType}`);\n }\n }\n }\n if (options.scopes) {\n forceUser = true;\n }\n if (forceUser) {\n const contextUserId = options.canOverrideScopedUserContext\n ? this._getUserIdFromRequestContext(options.userId)\n : options.userId;\n if (!contextUserId) {\n throw new Error('Tried to make an API call with a user context but no context user ID');\n }\n const accessToken = await authProvider.getAccessTokenForUser(contextUserId, options.scopes);\n if (!accessToken) {\n throw new Error(`Tried to make an API call with a user context for user ID ${contextUserId} but no token was found`);\n }\n if ((0, auth_1.accessTokenIsExpired)(accessToken) && authProvider.refreshAccessTokenForUser) {\n const newAccessToken = await authProvider.refreshAccessTokenForUser(contextUserId);\n return await this._callApiUsingInitialToken(options, newAccessToken, true);\n }\n return await this._callApiUsingInitialToken(options, accessToken);\n }\n const requestContextUserId = this._getUserIdFromRequestContext(options.userId);\n const accessToken = requestContextUserId === null\n ? await authProvider.getAnyAccessToken()\n : await authProvider.getAnyAccessToken(requestContextUserId !== null && requestContextUserId !== void 0 ? requestContextUserId : options.userId);\n if ((0, auth_1.accessTokenIsExpired)(accessToken) && accessToken.userId && authProvider.refreshAccessTokenForUser) {\n const newAccessToken = await authProvider.refreshAccessTokenForUser(accessToken.userId);\n return await this._callApiUsingInitialToken(options, newAccessToken, true);\n }\n return await this._callApiUsingInitialToken(options, accessToken);\n }\n /**\n * The Helix bits API methods.\n */\n get bits() {\n return new HelixBitsApi_1.HelixBitsApi(this);\n }\n /**\n * The Helix channels API methods.\n */\n get channels() {\n return new HelixChannelApi_1.HelixChannelApi(this);\n }\n /**\n * The Helix channel points API methods.\n */\n get channelPoints() {\n return new HelixChannelPointsApi_1.HelixChannelPointsApi(this);\n }\n /**\n * The Helix charity API methods.\n */\n get charity() {\n return new HelixCharityApi_1.HelixCharityApi(this);\n }\n /**\n * The Helix chat API methods.\n */\n get chat() {\n return new HelixChatApi_1.HelixChatApi(this);\n }\n /**\n * The Helix clips API methods.\n */\n get clips() {\n return new HelixClipApi_1.HelixClipApi(this);\n }\n /**\n * The Helix content classification label API methods.\n */\n get contentClassificationLabels() {\n return new HelixContentClassificationLabelApi_1.HelixContentClassificationLabelApi(this);\n }\n /**\n * The Helix entitlement API methods.\n */\n get entitlements() {\n return new HelixEntitlementApi_1.HelixEntitlementApi(this);\n }\n /**\n * The Helix EventSub API methods.\n */\n get eventSub() {\n return new HelixEventSubApi_1.HelixEventSubApi(this);\n }\n /**\n * The Helix extensions API methods.\n */\n get extensions() {\n return new HelixExtensionsApi_1.HelixExtensionsApi(this);\n }\n /**\n * The Helix game API methods.\n */\n get games() {\n return new HelixGameApi_1.HelixGameApi(this);\n }\n /**\n * The Helix Hype Train API methods.\n */\n get hypeTrain() {\n return new HelixHypeTrainApi_1.HelixHypeTrainApi(this);\n }\n /**\n * The Helix goal API methods.\n */\n get goals() {\n return new HelixGoalApi_1.HelixGoalApi(this);\n }\n /**\n * The Helix moderation API methods.\n */\n get moderation() {\n return new HelixModerationApi_1.HelixModerationApi(this);\n }\n /**\n * The Helix poll API methods.\n */\n get polls() {\n return new HelixPollApi_1.HelixPollApi(this);\n }\n /**\n * The Helix prediction API methods.\n */\n get predictions() {\n return new HelixPredictionApi_1.HelixPredictionApi(this);\n }\n /**\n * The Helix raid API methods.\n */\n get raids() {\n return new HelixRaidApi_1.HelixRaidApi(this);\n }\n /**\n * The Helix schedule API methods.\n */\n get schedule() {\n return new HelixScheduleApi_1.HelixScheduleApi(this);\n }\n /**\n * The Helix search API methods.\n */\n get search() {\n return new HelixSearchApi_1.HelixSearchApi(this);\n }\n /**\n * The Helix stream API methods.\n */\n get streams() {\n return new HelixStreamApi_1.HelixStreamApi(this);\n }\n /**\n * The Helix subscription API methods.\n */\n get subscriptions() {\n return new HelixSubscriptionApi_1.HelixSubscriptionApi(this);\n }\n /**\n * The Helix team API methods.\n */\n get teams() {\n return new HelixTeamApi_1.HelixTeamApi(this);\n }\n /**\n * The Helix user API methods.\n */\n get users() {\n return new HelixUserApi_1.HelixUserApi(this);\n }\n /**\n * The Helix video API methods.\n */\n get videos() {\n return new HelixVideoApi_1.HelixVideoApi(this);\n }\n /**\n * The API methods that deal with whispers.\n */\n get whispers() {\n return new HelixWhisperApi_1.HelixWhisperApi(this);\n }\n /**\n * Statistics on the rate limiter for the Helix API.\n */\n get rateLimiterStats() {\n if (this._rateLimiter instanceof rate_limiter_1.ResponseBasedRateLimiter) {\n return this._rateLimiter.stats;\n }\n return null;\n }\n /** @private */\n get _authProvider() {\n return this._config.authProvider;\n }\n /** @internal */\n get _batchDelay() {\n var _a;\n return (_a = this._config.batchDelay) !== null && _a !== void 0 ? _a : 0;\n }\n // null means app access, undefined means none specified\n /** @internal */\n _getUserIdFromRequestContext(contextUserId) {\n return contextUserId;\n }\n async _callApiUsingInitialToken(options, accessToken, wasRefreshed = false) {\n var _a;\n const { authProvider } = this._config;\n const authorizationType = authProvider.authorizationType;\n let response = await this._callApiInternal(options, authProvider.clientId, accessToken.accessToken, authorizationType);\n if (response.status === 401 && !wasRefreshed) {\n if (accessToken.userId) {\n if (authProvider.refreshAccessTokenForUser) {\n const token = await authProvider.refreshAccessTokenForUser(accessToken.userId);\n response = await this._callApiInternal(options, authProvider.clientId, token.accessToken, authorizationType);\n }\n }\n else {\n if (authProvider.getAppAccessToken) {\n const token = await authProvider.getAppAccessToken(true);\n response = await this._callApiInternal(options, authProvider.clientId, token.accessToken, authorizationType);\n }\n }\n }\n this.emit(this.onRequest, new ApiReportedRequest_1.ApiReportedRequest(options, response.status, (_a = accessToken.userId) !== null && _a !== void 0 ? _a : null));\n await (0, api_call_1.handleTwitchApiResponseError)(response, options);\n return await (0, api_call_1.transformTwitchApiResponse)(response);\n }\n async _callApiInternal(options, clientId, accessToken, authorizationType) {\n var _a, _b, _c;\n const { fetchOptions } = this._config;\n const type = (_a = options.type) !== null && _a !== void 0 ? _a : 'helix';\n this._logger.debug(`Calling ${type} API: ${(_b = options.method) !== null && _b !== void 0 ? _b : 'GET'} ${options.url}`);\n this._logger.trace(`Query: ${JSON.stringify(options.query)}`);\n if (options.jsonBody) {\n this._logger.trace(`Request body: ${JSON.stringify(options.jsonBody)}`);\n }\n const op = retry.operation({\n retries: 3,\n minTimeout: 500,\n factor: 2\n });\n const { promise, resolve, reject } = (0, shared_utils_1.promiseWithResolvers)();\n op.attempt(async () => {\n try {\n const response = type === 'helix'\n ? await this._rateLimiter.request({\n options,\n clientId,\n accessToken,\n authorizationType,\n fetchOptions\n })\n : await (0, api_call_1.callTwitchApiRaw)(options, clientId, accessToken, authorizationType, fetchOptions);\n if (!response.ok && response.status >= 500 && response.status < 600) {\n await (0, api_call_1.handleTwitchApiResponseError)(response, options);\n }\n resolve(response);\n }\n catch (e) {\n if (op.retry(e)) {\n return;\n }\n reject(op.mainError());\n }\n });\n const result = await promise;\n this._logger.debug(`Called ${type} API: ${(_c = options.method) !== null && _c !== void 0 ? _c : 'GET'} ${options.url} - result: ${result.status}`);\n return result;\n }\n};\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"bits\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"channels\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"channelPoints\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"charity\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"chat\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"clips\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"contentClassificationLabels\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"entitlements\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"eventSub\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"extensions\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"games\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"hypeTrain\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"goals\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"moderation\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"polls\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"predictions\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"raids\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"schedule\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"search\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"streams\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"subscriptions\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"teams\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"users\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"videos\", null);\ntslib_1.__decorate([\n (0, cache_decorators_1.CachedGetter)()\n], BaseApiClient.prototype, \"whispers\", null);\nBaseApiClient = tslib_1.__decorate([\n cache_decorators_1.Cacheable,\n (0, common_1.rtfm)('api', 'ApiClient')\n], BaseApiClient);\nexports.BaseApiClient = BaseApiClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoContextApiClient = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst BaseApiClient_1 = require(\"./BaseApiClient\");\n/** @private */\nlet NoContextApiClient = class NoContextApiClient extends BaseApiClient_1.BaseApiClient {\n /** @internal */\n _getUserIdFromRequestContext() {\n return null;\n }\n};\nNoContextApiClient = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'ApiClient')\n], NoContextApiClient);\nexports.NoContextApiClient = NoContextApiClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserContextApiClient = void 0;\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@twurple/common\");\nconst BaseApiClient_1 = require(\"./BaseApiClient\");\n/** @private */\nlet UserContextApiClient = class UserContextApiClient extends BaseApiClient_1.BaseApiClient {\n /** @internal */\n constructor(config, logger, rateLimiter, _userId) {\n super(config, logger, rateLimiter);\n this._userId = _userId;\n }\n /** @internal */\n _getUserIdFromRequestContext() {\n return this._userId;\n }\n};\nUserContextApiClient = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'ApiClient')\n], UserContextApiClient);\nexports.UserContextApiClient = UserContextApiClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ApiClient = void 0;\nconst tslib_1 = require(\"tslib\");\nconst detect_node_1 = require(\"@d-fischer/detect-node\");\nconst logger_1 = require(\"@d-fischer/logger\");\nconst rate_limiter_1 = require(\"@d-fischer/rate-limiter\");\nconst api_call_1 = require(\"@twurple/api-call\");\nconst common_1 = require(\"@twurple/common\");\nconst ConfigError_1 = require(\"../errors/ConfigError\");\nconst HelixRateLimiter_1 = require(\"../utils/HelixRateLimiter\");\nconst BaseApiClient_1 = require(\"./BaseApiClient\");\nconst NoContextApiClient_1 = require(\"./NoContextApiClient\");\nconst UserContextApiClient_1 = require(\"./UserContextApiClient\");\n/**\n * An API client for the Twitch Helix API and other miscellaneous endpoints.\n *\n * @meta category main\n * @hideProtected\n */\nlet ApiClient = class ApiClient extends BaseApiClient_1.BaseApiClient {\n /**\n * Creates a new API client instance.\n *\n * @param config Configuration for the client instance.\n */\n constructor(config) {\n if (!config.authProvider) {\n throw new ConfigError_1.ConfigError('No auth provider given. Please supply the `authProvider` option.');\n }\n const rateLimitLoggerOptions = { name: 'twurple:api:rate-limiter', ...config.logger };\n super(config, (0, logger_1.createLogger)({ name: 'twurple:api:client', ...config.logger }), detect_node_1.isNode\n ? new rate_limiter_1.PartitionedRateLimiter({\n getPartitionKey: req => { var _a; return (_a = req.userId) !== null && _a !== void 0 ? _a : null; },\n createChild: () => new HelixRateLimiter_1.HelixRateLimiter({ logger: rateLimitLoggerOptions })\n })\n : new rate_limiter_1.PartitionedTimeBasedRateLimiter({\n logger: rateLimitLoggerOptions,\n bucketSize: 800,\n timeFrame: 64000,\n doRequest: async ({ options, clientId, accessToken, authorizationType, fetchOptions }) => await (0, api_call_1.callTwitchApiRaw)(options, clientId, accessToken, authorizationType, fetchOptions),\n getPartitionKey: req => { var _a; return (_a = req.userId) !== null && _a !== void 0 ? _a : null; }\n }));\n }\n /**\n * Creates a contextualized ApiClient that can be used to call the API in the context of a given user.\n *\n * @param user The user to use as context.\n * @param runner The callback to execute.\n *\n * A parameter is passed that should be used in place of the normal `ApiClient`\n * to ensure that all requests are executed in the given user's context.\n *\n * Please note that requests which require scope authorization ignore this context.\n *\n * The return value of your callback will be propagated to the return value of this method.\n */\n async asUser(user, runner) {\n const ctx = new UserContextApiClient_1.UserContextApiClient(this._config, this._logger, this._rateLimiter, (0, common_1.extractUserId)(user));\n return await runner(ctx);\n }\n /**\n * Creates a contextualized ApiClient that can be used to call the API in the context of a given intent.\n *\n * @param intents A list of intents. The first one that is found in your auth provider will be used.\n * @param runner The callback to execute.\n *\n * A parameter is passed that should be used in place of the normal `ApiClient`\n * to ensure that all requests are executed in the given user's context.\n *\n * Please note that requests which require scope authorization ignore this context.\n *\n * The return value of your callback will be propagated to the return value of this method.\n */\n async asIntent(intents, runner) {\n if (!this._authProvider.getAccessTokenForIntent) {\n throw new Error('Trying to use intents with an auth provider that does not support them');\n }\n for (const intent of intents) {\n const user = await this._authProvider.getAccessTokenForIntent(intent);\n if (user) {\n const ctx = new UserContextApiClient_1.UserContextApiClient(this._config, this._logger, this._rateLimiter, user.userId);\n return await runner(ctx);\n }\n }\n throw new Error(`Intents [${intents.join(', ')}] not found in auth provider`);\n }\n /**\n * Creates a contextualized ApiClient that can be used to call the API without the context of any user.\n *\n * This usually means that an app access token is used.\n *\n * @param runner The callback to execute.\n *\n * A parameter is passed that should be used in place of the normal `ApiClient`\n * to ensure that all requests are executed without user context.\n *\n * Please note that requests which require scope authorization ignore this context erasure.\n *\n * The return value of your callback will be propagated to the return value of this method.\n */\n async withoutUser(runner) {\n const ctx = new NoContextApiClient_1.NoContextApiClient(this._config, this._logger, this._rateLimiter);\n return await runner(ctx);\n }\n};\nApiClient = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'ApiClient')\n], ApiClient);\nexports.ApiClient = ApiClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixFollow = void 0;\nconst tslib_1 = require(\"tslib\");\nconst shared_utils_1 = require(\"@d-fischer/shared-utils\");\nconst common_1 = require(\"@twurple/common\");\n/**\n * A relation of a user following a broadcaster.\n */\nlet HelixFollow = class HelixFollow extends common_1.DataObject {\n /** @internal */\n constructor(data, client) {\n super(data);\n this._client = client;\n }\n /**\n * The user ID of the following user.\n */\n get userId() {\n return this[common_1.rawDataSymbol].from_id;\n }\n /**\n * The name of the following user.\n */\n get userName() {\n return this[common_1.rawDataSymbol].from_login;\n }\n /**\n * The display name of the following user.\n */\n get userDisplayName() {\n return this[common_1.rawDataSymbol].from_name;\n }\n /**\n * Gets the data of the following user.\n */\n async getUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].from_id));\n }\n /**\n * The user ID of the followed broadcaster.\n */\n get followedUserId() {\n return this[common_1.rawDataSymbol].to_id;\n }\n /**\n * The name of the followed user.\n */\n get followedUserName() {\n return this[common_1.rawDataSymbol].to_login;\n }\n /**\n * The display name of the followed user.\n */\n get followedUserDisplayName() {\n return this[common_1.rawDataSymbol].to_name;\n }\n /**\n * Gets the data of the followed broadcaster.\n */\n async getFollowedUser() {\n return (0, common_1.checkRelationAssertion)(await this._client.users.getUserById(this[common_1.rawDataSymbol].to_id));\n }\n /**\n * The date when the user followed the broadcaster.\n */\n get followDate() {\n return new Date(this[common_1.rawDataSymbol].followed_at);\n }\n};\ntslib_1.__decorate([\n (0, shared_utils_1.Enumerable)(false)\n], HelixFollow.prototype, \"_client\", void 0);\nHelixFollow = tslib_1.__decorate([\n (0, common_1.rtfm)('api', 'HelixFollow')\n], HelixFollow);\nexports.HelixFollow = HelixFollow;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HelixBanUser = exports.HelixModerator = exports.HelixBan = exports.HelixModerationApi = exports.HelixHypeTrainEvent = exports.HelixHypeTrainContribution = exports.HelixHypeTrainApi = exports.HelixGoal = exports.HelixGoalApi = exports.HelixGame = exports.HelixGameApi = exports.HelixExtensionTransaction = exports.HelixExtensionBitsProduct = exports.HelixExtensionsApi = exports.HelixPaginatedEventSubSubscriptionsRequest = exports.HelixEventSubSubscription = exports.HelixEventSubApi = exports.HelixDropsEntitlement = exports.HelixEntitlementApi = exports.HelixContentClassificationLabel = exports.HelixContentClassificationLabelApi = exports.HelixClip = exports.HelixClipApi = exports.HelixPrivilegedChatSettings = exports.HelixEmoteFromSet = exports.HelixChannelEmote = exports.HelixEmote = exports.HelixChatChatter = exports.HelixChatSettings = exports.HelixChatBadgeVersion = exports.HelixChatBadgeSet = exports.HelixChatApi = exports.HelixCharityCampaignAmount = exports.HelixCharityCampaignDonation = exports.HelixCharityCampaign = exports.HelixCharityApi = exports.HelixCustomRewardRedemption = exports.HelixCustomReward = exports.HelixChannelPointsApi = exports.HelixChannelReference = exports.HelixFollowedChannel = exports.HelixChannelFollower = exports.HelixChannelEditor = exports.HelixChannel = exports.HelixChannelApi = exports.HelixCheermoteList = exports.HelixBitsLeaderboardEntry = exports.HelixBitsLeaderboard = exports.HelixBitsApi = exports.ApiClient = void 0;\nexports.HellFreezesOverError = exports.HelixExtension = exports.extractUserName = exports.extractUserId = exports.HelixPaginatedRequestWithTotal = exports.HelixPaginatedRequest = exports.ApiReportedRequest = exports.StreamNotLiveError = exports.ConfigError = exports.HelixWhisperApi = exports.HelixVideo = exports.HelixVideoApi = exports.HelixUserExtension = exports.HelixInstalledExtensionList = exports.HelixInstalledExtension = exports.HelixBaseExtension = exports.HelixUser = exports.HelixPrivilegedUser = exports.HelixFollow = exports.HelixUserBlock = exports.HelixUserApi = exports.HelixTeamWithUsers = exports.HelixTeam = exports.HelixTeamApi = exports.HelixUserSubscription = exports.HelixSubscription = exports.HelixSubscriptionApi = exports.HelixPaginatedSubscriptionsRequest = exports.HelixStreamMarkerWithVideo = exports.HelixStreamMarker = exports.HelixStream = exports.HelixStreamApi = exports.HelixChannelSearchResult = exports.HelixSearchApi = exports.HelixPaginatedScheduleSegmentRequest = exports.HelixScheduleSegment = exports.HelixSchedule = exports.HelixScheduleApi = exports.HelixUserRelation = exports.HelixRaid = exports.HelixRaidApi = exports.HelixPredictor = exports.HelixPredictionOutcome = exports.HelixPrediction = exports.HelixPredictionApi = exports.HelixPollChoice = exports.HelixPoll = exports.HelixPollApi = exports.HelixShieldModeStatus = exports.HelixBlockedTerm = void 0;\nvar ApiClient_1 = require(\"./client/ApiClient\");\nObject.defineProperty(exports, \"ApiClient\", { enumerable: true, get: function () { return ApiClient_1.ApiClient; } });\nvar HelixBitsApi_1 = require(\"./endpoints/bits/HelixBitsApi\");\nObject.defineProperty(exports, \"HelixBitsApi\", { enumerable: true, get: function () { return HelixBitsApi_1.HelixBitsApi; } });\nvar HelixBitsLeaderboard_1 = require(\"./endpoints/bits/HelixBitsLeaderboard\");\nObject.defineProperty(exports, \"HelixBitsLeaderboard\", { enumerable: true, get: function () { return HelixBitsLeaderboard_1.HelixBitsLeaderboard; } });\nvar HelixBitsLeaderboardEntry_1 = require(\"./endpoints/bits/HelixBitsLeaderboardEntry\");\nObject.defineProperty(exports, \"HelixBitsLeaderboardEntry\", { enumerable: true, get: function () { return HelixBitsLeaderboardEntry_1.HelixBitsLeaderboardEntry; } });\nvar HelixCheermoteList_1 = require(\"./endpoints/bits/HelixCheermoteList\");\nObject.defineProperty(exports, \"HelixCheermoteList\", { enumerable: true, get: function () { return HelixCheermoteList_1.HelixCheermoteList; } });\nvar HelixChannelApi_1 = require(\"./endpoints/channel/HelixChannelApi\");\nObject.defineProperty(exports, \"HelixChannelApi\", { enumerable: true, get: function () { return HelixChannelApi_1.HelixChannelApi; } });\nvar HelixChannel_1 = require(\"./endpoints/channel/HelixChannel\");\nObject.defineProperty(exports, \"HelixChannel\", { enumerable: true, get: function () { return HelixChannel_1.HelixChannel; } });\nvar HelixChannelEditor_1 = require(\"./endpoints/channel/HelixChannelEditor\");\nObject.defineProperty(exports, \"HelixChannelEditor\", { enumerable: true, get: function () { return HelixChannelEditor_1.HelixChannelEditor; } });\nvar HelixChannelFollower_1 = require(\"./endpoints/channel/HelixChannelFollower\");\nObject.defineProperty(exports, \"HelixChannelFollower\", { enumerable: true, get: function () { return HelixChannelFollower_1.HelixChannelFollower; } });\nvar HelixFollowedChannel_1 = require(\"./endpoints/channel/HelixFollowedChannel\");\nObject.defineProperty(exports, \"HelixFollowedChannel\", { enumerable: true, get: function () { return HelixFollowedChannel_1.HelixFollowedChannel; } });\nvar HelixChannelReference_1 = require(\"./endpoints/channel/HelixChannelReference\");\nObject.defineProperty(exports, \"HelixChannelReference\", { enumerable: true, get: function () { return HelixChannelReference_1.HelixChannelReference; } });\nvar HelixChannelPointsApi_1 = require(\"./endpoints/channelPoints/HelixChannelPointsApi\");\nObject.defineProperty(exports, \"HelixChannelPointsApi\", { enumerable: true, get: function () { return HelixChannelPointsApi_1.HelixChannelPointsApi; } });\nvar HelixCustomReward_1 = require(\"./endpoints/channelPoints/HelixCustomReward\");\nObject.defineProperty(exports, \"HelixCustomReward\", { enumerable: true, get: function () { return HelixCustomReward_1.HelixCustomReward; } });\nvar HelixCustomRewardRedemption_1 = require(\"./endpoints/channelPoints/HelixCustomRewardRedemption\");\nObject.defineProperty(exports, \"HelixCustomRewardRedemption\", { enumerable: true, get: function () { return HelixCustomRewardRedemption_1.HelixCustomRewardRedemption; } });\nvar HelixCharityApi_1 = require(\"./endpoints/charity/HelixCharityApi\");\nObject.defineProperty(exports, \"HelixCharityApi\", { enumerable: true, get: function () { return HelixCharityApi_1.HelixCharityApi; } });\nvar HelixCharityCampaign_1 = require(\"./endpoints/charity/HelixCharityCampaign\");\nObject.defineProperty(exports, \"HelixCharityCampaign\", { enumerable: true, get: function () { return HelixCharityCampaign_1.HelixCharityCampaign; } });\nvar HelixCharityCampaignDonation_1 = require(\"./endpoints/charity/HelixCharityCampaignDonation\");\nObject.defineProperty(exports, \"HelixCharityCampaignDonation\", { enumerable: true, get: function () { return HelixCharityCampaignDonation_1.HelixCharityCampaignDonation; } });\nvar HelixCharityCampaignAmount_1 = require(\"./endpoints/charity/HelixCharityCampaignAmount\");\nObject.defineProperty(exports, \"HelixCharityCampaignAmount\", { enumerable: true, get: function () { return HelixCharityCampaignAmount_1.HelixCharityCampaignAmount; } });\nvar HelixChatApi_1 = require(\"./endpoints/chat/HelixChatApi\");\nObject.defineProperty(exports, \"HelixChatApi\", { enumerable: true, get: function () { return HelixChatApi_1.HelixChatApi; } });\nvar HelixChatBadgeSet_1 = require(\"./endpoints/chat/HelixChatBadgeSet\");\nObject.defineProperty(exports, \"HelixChatBadgeSet\", { enumerable: true, get: function () { return HelixChatBadgeSet_1.HelixChatBadgeSet; } });\nvar HelixChatBadgeVersion_1 = require(\"./endpoints/chat/HelixChatBadgeVersion\");\nObject.defineProperty(exports, \"HelixChatBadgeVersion\", { enumerable: true, get: function () { return HelixChatBadgeVersion_1.HelixChatBadgeVersion; } });\nvar HelixChatSettings_1 = require(\"./endpoints/chat/HelixChatSettings\");\nObject.defineProperty(exports, \"HelixChatSettings\", { enumerable: true, get: function () { return HelixChatSettings_1.HelixChatSettings; } });\nvar HelixChatChatter_1 = require(\"./endpoints/chat/HelixChatChatter\");\nObject.defineProperty(exports, \"HelixChatChatter\", { enumerable: true, get: function () { return HelixChatChatter_1.HelixChatChatter; } });\nvar HelixEmote_1 = require(\"./endpoints/chat/HelixEmote\");\nObject.defineProperty(exports, \"HelixEmote\", { enumerable: true, get: function () { return HelixEmote_1.HelixEmote; } });\nvar HelixChannelEmote_1 = require(\"./endpoints/chat/HelixChannelEmote\");\nObject.defineProperty(exports, \"HelixChannelEmote\", { enumerable: true, get: function () { return HelixChannelEmote_1.HelixChannelEmote; } });\nvar HelixEmoteFromSet_1 = require(\"./endpoints/chat/HelixEmoteFromSet\");\nObject.defineProperty(exports, \"HelixEmoteFromSet\", { enumerable: true, get: function () { return HelixEmoteFromSet_1.HelixEmoteFromSet; } });\nvar HelixPrivilegedChatSettings_1 = require(\"./endpoints/chat/HelixPrivilegedChatSettings\");\nObject.defineProperty(exports, \"HelixPrivilegedChatSettings\", { enumerable: true, get: function () { return HelixPrivilegedChatSettings_1.HelixPrivilegedChatSettings; } });\nvar HelixClipApi_1 = require(\"./endpoints/clip/HelixClipApi\");\nObject.defineProperty(exports, \"HelixClipApi\", { enumerable: true, get: function () { return HelixClipApi_1.HelixClipApi; } });\nvar HelixClip_1 = require(\"./endpoints/clip/HelixClip\");\nObject.defineProperty(exports, \"HelixClip\", { enumerable: true, get: function () { return HelixClip_1.HelixClip; } });\nvar HelixContentClassificationLabelApi_1 = require(\"./endpoints/contentClassificationLabels/HelixContentClassificationLabelApi\");\nObject.defineProperty(exports, \"HelixContentClassificationLabelApi\", { enumerable: true, get: function () { return HelixContentClassificationLabelApi_1.HelixContentClassificationLabelApi; } });\nvar HelixContentClassificationLabel_1 = require(\"./endpoints/contentClassificationLabels/HelixContentClassificationLabel\");\nObject.defineProperty(exports, \"HelixContentClassificationLabel\", { enumerable: true, get: function () { return HelixContentClassificationLabel_1.HelixContentClassificationLabel; } });\nvar HelixEntitlementApi_1 = require(\"./endpoints/entitlements/HelixEntitlementApi\");\nObject.defineProperty(exports, \"HelixEntitlementApi\", { enumerable: true, get: function () { return HelixEntitlementApi_1.HelixEntitlementApi; } });\nvar HelixDropsEntitlement_1 = require(\"./endpoints/entitlements/HelixDropsEntitlement\");\nObject.defineProperty(exports, \"HelixDropsEntitlement\", { enumerable: true, get: function () { return HelixDropsEntitlement_1.HelixDropsEntitlement; } });\nvar HelixEventSubApi_1 = require(\"./endpoints/eventSub/HelixEventSubApi\");\nObject.defineProperty(exports, \"HelixEventSubApi\", { enumerable: true, get: function () { return HelixEventSubApi_1.HelixEventSubApi; } });\nvar HelixEventSubSubscription_1 = require(\"./endpoints/eventSub/HelixEventSubSubscription\");\nObject.defineProperty(exports, \"HelixEventSubSubscription\", { enumerable: true, get: function () { return HelixEventSubSubscription_1.HelixEventSubSubscription; } });\nvar HelixPaginatedEventSubSubscriptionsRequest_1 = require(\"./endpoints/eventSub/HelixPaginatedEventSubSubscriptionsRequest\");\nObject.defineProperty(exports, \"HelixPaginatedEventSubSubscriptionsRequest\", { enumerable: true, get: function () { return HelixPaginatedEventSubSubscriptionsRequest_1.HelixPaginatedEventSubSubscriptionsRequest; } });\nvar HelixExtensionsApi_1 = require(\"./endpoints/extensions/HelixExtensionsApi\");\nObject.defineProperty(exports, \"HelixExtensionsApi\", { enumerable: true, get: function () { return HelixExtensionsApi_1.HelixExtensionsApi; } });\nvar HelixExtensionBitsProduct_1 = require(\"./endpoints/extensions/HelixExtensionBitsProduct\");\nObject.defineProperty(exports, \"HelixExtensionBitsProduct\", { enumerable: true, get: function () { return HelixExtensionBitsProduct_1.HelixExtensionBitsProduct; } });\nvar HelixExtensionTransaction_1 = require(\"./endpoints/extensions/HelixExtensionTransaction\");\nObject.defineProperty(exports, \"HelixExtensionTransaction\", { enumerable: true, get: function () { return HelixExtensionTransaction_1.HelixExtensionTransaction; } });\nvar HelixGameApi_1 = require(\"./endpoints/game/HelixGameApi\");\nObject.defineProperty(exports, \"HelixGameApi\", { enumerable: true, get: function () { return HelixGameApi_1.HelixGameApi; } });\nvar HelixGame_1 = require(\"./endpoints/game/HelixGame\");\nObject.defineProperty(exports, \"HelixGame\", { enumerable: true, get: function () { return HelixGame_1.HelixGame; } });\nvar HelixGoalApi_1 = require(\"./endpoints/goals/HelixGoalApi\");\nObject.defineProperty(exports, \"HelixGoalApi\", { enumerable: true, get: function () { return HelixGoalApi_1.HelixGoalApi; } });\nvar HelixGoal_1 = require(\"./endpoints/goals/HelixGoal\");\nObject.defineProperty(exports, \"HelixGoal\", { enumerable: true, get: function () { return HelixGoal_1.HelixGoal; } });\nvar HelixHypeTrainApi_1 = require(\"./endpoints/hypeTrain/HelixHypeTrainApi\");\nObject.defineProperty(exports, \"HelixHypeTrainApi\", { enumerable: true, get: function () { return HelixHypeTrainApi_1.HelixHypeTrainApi; } });\nvar HelixHypeTrainContribution_1 = require(\"./endpoints/hypeTrain/HelixHypeTrainContribution\");\nObject.defineProperty(exports, \"HelixHypeTrainContribution\", { enumerable: true, get: function () { return HelixHypeTrainContribution_1.HelixHypeTrainContribution; } });\nvar HelixHypeTrainEvent_1 = require(\"./endpoints/hypeTrain/HelixHypeTrainEvent\");\nObject.defineProperty(exports, \"HelixHypeTrainEvent\", { enumerable: true, get: function () { return HelixHypeTrainEvent_1.HelixHypeTrainEvent; } });\nvar HelixModerationApi_1 = require(\"./endpoints/moderation/HelixModerationApi\");\nObject.defineProperty(exports, \"HelixModerationApi\", { enumerable: true, get: function () { return HelixModerationApi_1.HelixModerationApi; } });\nvar HelixBan_1 = require(\"./endpoints/moderation/HelixBan\");\nObject.defineProperty(exports, \"HelixBan\", { enumerable: true, get: function () { return HelixBan_1.HelixBan; } });\nvar HelixModerator_1 = require(\"./endpoints/moderation/HelixModerator\");\nObject.defineProperty(exports, \"HelixModerator\", { enumerable: true, get: function () { return HelixModerator_1.HelixModerator; } });\nvar HelixBanUser_1 = require(\"./endpoints/moderation/HelixBanUser\");\nObject.defineProperty(exports, \"HelixBanUser\", { enumerable: true, get: function () { return HelixBanUser_1.HelixBanUser; } });\nvar HelixBlockedTerm_1 = require(\"./endpoints/moderation/HelixBlockedTerm\");\nObject.defineProperty(exports, \"HelixBlockedTerm\", { enumerable: true, get: function () { return HelixBlockedTerm_1.HelixBlockedTerm; } });\nvar HelixShieldModeStatus_1 = require(\"./endpoints/moderation/HelixShieldModeStatus\");\nObject.defineProperty(exports, \"HelixShieldModeStatus\", { enumerable: true, get: function () { return HelixShieldModeStatus_1.HelixShieldModeStatus; } });\nvar HelixPollApi_1 = require(\"./endpoints/poll/HelixPollApi\");\nObject.defineProperty(exports, \"HelixPollApi\", { enumerable: true, get: function () { return HelixPollApi_1.HelixPollApi; } });\nvar HelixPoll_1 = require(\"./endpoints/poll/HelixPoll\");\nObject.defineProperty(exports, \"HelixPoll\", { enumerable: true, get: function () { return HelixPoll_1.HelixPoll; } });\nvar HelixPollChoice_1 = require(\"./endpoints/poll/HelixPollChoice\");\nObject.defineProperty(exports, \"HelixPollChoice\", { enumerable: true, get: function () { return HelixPollChoice_1.HelixPollChoice; } });\nvar HelixPredictionApi_1 = require(\"./endpoints/prediction/HelixPredictionApi\");\nObject.defineProperty(exports, \"HelixPredictionApi\", { enumerable: true, get: function () { return HelixPredictionApi_1.HelixPredictionApi; } });\nvar HelixPrediction_1 = require(\"./endpoints/prediction/HelixPrediction\");\nObject.defineProperty(exports, \"HelixPrediction\", { enumerable: true, get: function () { return HelixPrediction_1.HelixPrediction; } });\nvar HelixPredictionOutcome_1 = require(\"./endpoints/prediction/HelixPredictionOutcome\");\nObject.defineProperty(exports, \"HelixPredictionOutcome\", { enumerable: true, get: function () { return HelixPredictionOutcome_1.HelixPredictionOutcome; } });\nvar HelixPredictor_1 = require(\"./endpoints/prediction/HelixPredictor\");\nObject.defineProperty(exports, \"HelixPredictor\", { enumerable: true, get: function () { return HelixPredictor_1.HelixPredictor; } });\nvar HelixRaidApi_1 = require(\"./endpoints/raids/HelixRaidApi\");\nObject.defineProperty(exports, \"HelixRaidApi\", { enumerable: true, get: function () { return HelixRaidApi_1.HelixRaidApi; } });\nvar HelixRaid_1 = require(\"./endpoints/raids/HelixRaid\");\nObject.defineProperty(exports, \"HelixRaid\", { enumerable: true, get: function () { return HelixRaid_1.HelixRaid; } });\nvar HelixUserRelation_1 = require(\"./relations/HelixUserRelation\");\nObject.defineProperty(exports, \"HelixUserRelation\", { enumerable: true, get: function () { return HelixUserRelation_1.HelixUserRelation; } });\nvar HelixScheduleApi_1 = require(\"./endpoints/schedule/HelixScheduleApi\");\nObject.defineProperty(exports, \"HelixScheduleApi\", { enumerable: true, get: function () { return HelixScheduleApi_1.HelixScheduleApi; } });\nvar HelixSchedule_1 = require(\"./endpoints/schedule/HelixSchedule\");\nObject.defineProperty(exports, \"HelixSchedule\", { enumerable: true, get: function () { return HelixSchedule_1.HelixSchedule; } });\nvar HelixScheduleSegment_1 = require(\"./endpoints/schedule/HelixScheduleSegment\");\nObject.defineProperty(exports, \"HelixScheduleSegment\", { enumerable: true, get: function () { return HelixScheduleSegment_1.HelixScheduleSegment; } });\nvar HelixPaginatedScheduleSegmentRequest_1 = require(\"./endpoints/schedule/HelixPaginatedScheduleSegmentRequest\");\nObject.defineProperty(exports, \"HelixPaginatedScheduleSegmentRequest\", { enumerable: true, get: function () { return HelixPaginatedScheduleSegmentRequest_1.HelixPaginatedScheduleSegmentRequest; } });\nvar HelixSearchApi_1 = require(\"./endpoints/search/HelixSearchApi\");\nObject.defineProperty(exports, \"HelixSearchApi\", { enumerable: true, get: function () { return HelixSearchApi_1.HelixSearchApi; } });\nvar HelixChannelSearchResult_1 = require(\"./endpoints/search/HelixChannelSearchResult\");\nObject.defineProperty(exports, \"HelixChannelSearchResult\", { enumerable: true, get: function () { return HelixChannelSearchResult_1.HelixChannelSearchResult; } });\nvar HelixStreamApi_1 = require(\"./endpoints/stream/HelixStreamApi\");\nObject.defineProperty(exports, \"HelixStreamApi\", { enumerable: true, get: function () { return HelixStreamApi_1.HelixStreamApi; } });\nvar HelixStream_1 = require(\"./endpoints/stream/HelixStream\");\nObject.defineProperty(exports, \"HelixStream\", { enumerable: true, get: function () { return HelixStream_1.HelixStream; } });\nvar HelixStreamMarker_1 = require(\"./endpoints/stream/HelixStreamMarker\");\nObject.defineProperty(exports, \"HelixStreamMarker\", { enumerable: true, get: function () { return HelixStreamMarker_1.HelixStreamMarker; } });\nvar HelixStreamMarkerWithVideo_1 = require(\"./endpoints/stream/HelixStreamMarkerWithVideo\");\nObject.defineProperty(exports, \"HelixStreamMarkerWithVideo\", { enumerable: true, get: function () { return HelixStreamMarkerWithVideo_1.HelixStreamMarkerWithVideo; } });\nvar HelixPaginatedSubscriptionsRequest_1 = require(\"./endpoints/subscriptions/HelixPaginatedSubscriptionsRequest\");\nObject.defineProperty(exports, \"HelixPaginatedSubscriptionsRequest\", { enumerable: true, get: function () { return HelixPaginatedSubscriptionsRequest_1.HelixPaginatedSubscriptionsRequest; } });\nvar HelixSubscriptionApi_1 = require(\"./endpoints/subscriptions/HelixSubscriptionApi\");\nObject.defineProperty(exports, \"HelixSubscriptionApi\", { enumerable: true, get: function () { return HelixSubscriptionApi_1.HelixSubscriptionApi; } });\nvar HelixSubscription_1 = require(\"./endpoints/subscriptions/HelixSubscription\");\nObject.defineProperty(exports, \"HelixSubscription\", { enumerable: true, get: function () { return HelixSubscription_1.HelixSubscription; } });\nvar HelixUserSubscription_1 = require(\"./endpoints/subscriptions/HelixUserSubscription\");\nObject.defineProperty(exports, \"HelixUserSubscription\", { enumerable: true, get: function () { return HelixUserSubscription_1.HelixUserSubscription; } });\nvar HelixTeamApi_1 = require(\"./endpoints/team/HelixTeamApi\");\nObject.defineProperty(exports, \"HelixTeamApi\", { enumerable: true, get: function () { return HelixTeamApi_1.HelixTeamApi; } });\nvar HelixTeam_1 = require(\"./endpoints/team/HelixTeam\");\nObject.defineProperty(exports, \"HelixTeam\", { enumerable: true, get: function () { return HelixTeam_1.HelixTeam; } });\nvar HelixTeamWithUsers_1 = require(\"./endpoints/team/HelixTeamWithUsers\");\nObject.defineProperty(exports, \"HelixTeamWithUsers\", { enumerable: true, get: function () { return HelixTeamWithUsers_1.HelixTeamWithUsers; } });\nvar HelixUserApi_1 = require(\"./endpoints/user/HelixUserApi\");\nObject.defineProperty(exports, \"HelixUserApi\", { enumerable: true, get: function () { return HelixUserApi_1.HelixUserApi; } });\nvar HelixUserBlock_1 = require(\"./endpoints/user/HelixUserBlock\");\nObject.defineProperty(exports, \"HelixUserBlock\", { enumerable: true, get: function () { return HelixUserBlock_1.HelixUserBlock; } });\nvar HelixFollow_1 = require(\"./endpoints/user/HelixFollow\");\nObject.defineProperty(exports, \"HelixFollow\", { enumerable: true, get: function () { return HelixFollow_1.HelixFollow; } });\nvar HelixPrivilegedUser_1 = require(\"./endpoints/user/HelixPrivilegedUser\");\nObject.defineProperty(exports, \"HelixPrivilegedUser\", { enumerable: true, get: function () { return HelixPrivilegedUser_1.HelixPrivilegedUser; } });\nvar HelixUser_1 = require(\"./endpoints/user/HelixUser\");\nObject.defineProperty(exports, \"HelixUser\", { enumerable: true, get: function () { return HelixUser_1.HelixUser; } });\nvar HelixBaseExtension_1 = require(\"./endpoints/user/extensions/HelixBaseExtension\");\nObject.defineProperty(exports, \"HelixBaseExtension\", { enumerable: true, get: function () { return HelixBaseExtension_1.HelixBaseExtension; } });\nvar HelixInstalledExtension_1 = require(\"./endpoints/user/extensions/HelixInstalledExtension\");\nObject.defineProperty(exports, \"HelixInstalledExtension\", { enumerable: true, get: function () { return HelixInstalledExtension_1.HelixInstalledExtension; } });\nvar HelixInstalledExtensionList_1 = require(\"./endpoints/user/extensions/HelixInstalledExtensionList\");\nObject.defineProperty(exports, \"HelixInstalledExtensionList\", { enumerable: true, get: function () { return HelixInstalledExtensionList_1.HelixInstalledExtensionList; } });\nvar HelixUserExtension_1 = require(\"./endpoints/user/extensions/HelixUserExtension\");\nObject.defineProperty(exports, \"HelixUserExtension\", { enumerable: true, get: function () { return HelixUserExtension_1.HelixUserExtension; } });\nvar HelixVideoApi_1 = require(\"./endpoints/video/HelixVideoApi\");\nObject.defineProperty(exports, \"HelixVideoApi\", { enumerable: true, get: function () { return HelixVideoApi_1.HelixVideoApi; } });\nvar HelixVideo_1 = require(\"./endpoints/video/HelixVideo\");\nObject.defineProperty(exports, \"HelixVideo\", { enumerable: true, get: function () { return HelixVideo_1.HelixVideo; } });\nvar HelixWhisperApi_1 = require(\"./endpoints/whisper/HelixWhisperApi\");\nObject.defineProperty(exports, \"HelixWhisperApi\", { enumerable: true, get: function () { return HelixWhisperApi_1.HelixWhisperApi; } });\nvar ConfigError_1 = require(\"./errors/ConfigError\");\nObject.defineProperty(exports, \"ConfigError\", { enumerable: true, get: function () { return ConfigError_1.ConfigError; } });\nvar StreamNotLiveError_1 = require(\"./errors/StreamNotLiveError\");\nObject.defineProperty(exports, \"StreamNotLiveError\", { enumerable: true, get: function () { return StreamNotLiveError_1.StreamNotLiveError; } });\nvar ApiReportedRequest_1 = require(\"./reporting/ApiReportedRequest\");\nObject.defineProperty(exports, \"ApiReportedRequest\", { enumerable: true, get: function () { return ApiReportedRequest_1.ApiReportedRequest; } });\nvar HelixPaginatedRequest_1 = require(\"./utils/pagination/HelixPaginatedRequest\");\nObject.defineProperty(exports, \"HelixPaginatedRequest\", { enumerable: true, get: function () { return HelixPaginatedRequest_1.HelixPaginatedRequest; } });\nvar HelixPaginatedRequestWithTotal_1 = require(\"./utils/pagination/HelixPaginatedRequestWithTotal\");\nObject.defineProperty(exports, \"HelixPaginatedRequestWithTotal\", { enumerable: true, get: function () { return HelixPaginatedRequestWithTotal_1.HelixPaginatedRequestWithTotal; } });\nvar common_1 = require(\"@twurple/common\");\nObject.defineProperty(exports, \"extractUserId\", { enumerable: true, get: function () { return common_1.extractUserId; } });\nObject.defineProperty(exports, \"extractUserName\", { enumerable: true, get: function () { return common_1.extractUserName; } });\nObject.defineProperty(exports, \"HelixExtension\", { enumerable: true, get: function () { return common_1.HelixExtension; } });\nObject.defineProperty(exports, \"HellFreezesOverError\", { enumerable: true, get: function () { return common_1.HellFreezesOverError; } });\n", "const BTTVEmote = require('./BTTVEmote');\nconst Channel = require('./Channel');\nconst Collection = require('../util/Collection');\nconst Constants = require('../util/Constants');\nconst FFZEmote = require('./FFZEmote');\nconst SevenTVEmote = require('./SevenTVEmote');\nconst TwitchEmote = require('./TwitchEmote');\n\nconst axios = require('axios');\nconst { ApiClient } = require('@twurple/api');\nconst { AppTokenAuthProvider } = require('@twurple/auth');\n\nclass EmoteFetcher {\n /**\n * Fetches and caches emotes.\n * @param {string} clientId The client id for the twitch api.\n * @param {string} clientSecret The client secret for the twitch api.\n * @param {Object} options Additional options.\n * @param {ApiClient} options.apiClient - Bring your own Twurple ApiClient.\n */\n constructor(clientId, clientSecret, options) {\n if (options && options.apiClient) {\n this.apiClient = options.apiClient;\n } else if (clientId !== undefined && clientSecret !== undefined) {\n const authProvider = new AppTokenAuthProvider(clientId, clientSecret);\n\n /**\n * Twitch api client.\n */\n this.apiClient = new ApiClient({ authProvider });\n }\n\n /**\n * Cached emotes.\n * Collectionped by emote code to Emote instance.\n * @type {Collection<string, Emote>}\n */\n this.emotes = new Collection();\n\n /**\n * Cached channels.\n * Collectionped by name to Channel instance.\n * @type {Collection<string, Channel>}\n */\n this.channels = new Collection();\n\n /**\n * Save if we fetched FFZ's modifier emotes once.\n * @type {boolean}\n */\n this.ffzModifiersFetched = false;\n }\n\n /**\n * The global channel for Twitch, BTTV and 7TV.\n * @readonly\n * @type {?Channel}\n */\n get globalChannel() {\n return this.channels.get(null);\n }\n\n /**\n * Sets up a channel\n * @private\n * @param {int} channel_id - ID of the channel.\n * @param {string} [format=null] - The type file format to use (webp/avif).\n * @returns {Channel}\n */\n _setupChannel(channel_id, format = null) {\n let channel = this.channels.get(channel_id);\n if (!channel) {\n channel = new Channel(this, channel_id);\n this.channels.set(channel_id, channel);\n }\n if (format) channel.format = format;\n return channel;\n }\n\n /**\n * Gets the raw Twitch emotes data for a channel.\n * @private\n * @param {int} id - ID of the channel.\n * @returns {Promise<Object[]>}\n */\n _getRawTwitchEmotes(id) {\n if (!this.apiClient) {\n throw new Error('Client id or client secret not provided.');\n }\n\n if (id) {\n return this.apiClient.chat.getChannelEmotes(id);\n } else {\n return this.apiClient.chat.getGlobalEmotes();\n }\n }\n\n /**\n * Converts and caches a raw twitch emote.\n * @private\n * @param {int} channel_id - ID of the channel.\n * @param {Object} data - Raw data.\n * @param {TwitchEmote} [existing_emote=null] - Existing emote to cache.\n * @returns {TwitchEmote}\n */\n _cacheTwitchEmote(channel_id, data, existing_emote = null) {\n const channel = this._setupChannel(channel_id);\n const emote = existing_emote || new TwitchEmote(channel, data.id, data);\n this.emotes.set(emote.code, emote);\n channel.emotes.set(emote.code, emote);\n return emote;\n }\n\n /**\n * Gets the raw BTTV emotes data for a channel.\n * Use `null` for the global emotes channel.\n * @private\n * @param {int} [id=null] - ID of the channel.\n * @returns {Promise<Object[]>}\n */\n _getRawBTTVEmotes(id) {\n const endpoint = !id\n ? Constants.BTTV.Global\n : Constants.BTTV.Channel(id); // eslint-disable-line new-cap\n\n return axios.get(endpoint).then(req => {\n // Global emotes\n if (req.data instanceof Array) return req.data;\n // Channel emotes\n return [...req.data.channelEmotes, ...req.data.sharedEmotes];\n });\n }\n\n /**\n * Converts and caches a raw BTTV emote.\n * @private\n * @param {int} channel_id - ID of the channel.\n * @param {Object} data - Raw data.\n * @param {BTTVEmote} [existing_emote=null] - Existing emote to cache.\n * @returns {BTTVEmote}\n */\n _cacheBTTVEmote(channel_id, data, existing_emote = null) {\n const channel = this._setupChannel(channel_id);\n const emote = existing_emote || new BTTVEmote(channel, data.id, data);\n this.emotes.set(emote.code, emote);\n channel.emotes.set(emote.code, emote);\n return emote;\n }\n\n /**\n * Gets the raw FFZ emote data from a set.\n * @private\n * @param {int} id - ID of the set.\n * @returns {Promise<Object[]>}\n */\n _getRawFFZEmoteSet(id) {\n const endpoint = Constants.FFZ.Set(id); // eslint-disable-line new-cap\n\n return axios.get(endpoint).then(req => {\n return req.data.set.emoticons;\n });\n }\n\n /**\n * Gets the raw FFZ emotes data for a channel.\n * @private\n * @param {int} id - ID of the channel.\n * @returns {Promise<Object[]>}\n */\n _getRawFFZEmotes(id) {\n const endpoint = Constants.FFZ.Channel(id); // eslint-disable-line new-cap\n\n return axios.get(endpoint).then(req => {\n const emotes = [];\n for (const key of Object.keys(req.data.sets)) {\n const set = req.data.sets[key];\n emotes.push(...set.emoticons);\n }\n\n return emotes;\n });\n }\n\n /**\n * Converts and caches a raw FFZ emote.\n * @private\n * @param {int} channel_id - ID of the channel.\n * @param {Object} data - Raw data.\n * @param {FFZEmote} [existing_emote=null] - Existing emote to cache.\n * @returns {FFZEmote}\n */\n _cacheFFZEmote(channel_id, data, existing_emote = null) {\n const channel = this._setupChannel(channel_id);\n const emote = existing_emote || new FFZEmote(channel, data.id, data);\n this.emotes.set(emote.code, emote);\n channel.emotes.set(emote.code, emote);\n return emote;\n }\n\n /**\n * Gets the raw 7TV emotes data for a channel.\n * @private\n * @param {int} [id=null] - ID of the channel.\n * @returns {Promise<Object[]>}\n */\n _getRawSevenTVEmotes(id) {\n const endpoint = !id\n ? Constants.SevenTV.Global\n : Constants.SevenTV.Channel(id); // eslint-disable-line new-cap\n\n return axios.get(endpoint).then(req => req.data);\n }\n\n /**\n * Converts and caches a raw 7TV emote.\n * @private\n * @param {int} channel_id - ID of the channel.\n * @param {Object} data - Raw data.\n * @param {string} format - The type file format to use (webp/avif).\n * @param {SevenTVEmote} [existing_emote=null] - Existing emote to cache.\n * @returns {SevenTVEmote}\n */\n _cacheSevenTVEmote(channel_id, data, format, existing_emote = null) {\n const channel = this._setupChannel(channel_id, format);\n const emote = existing_emote || new SevenTVEmote(channel, data.id, data);\n this.emotes.set(emote.code, emote);\n channel.emotes.set(emote.code, emote);\n return emote;\n }\n\n /**\n * Fetches the Twitch emotes for a channel.\n * Use `null` for the global emotes channel.\n * @param {int} [channel=null] - ID of the channel.\n * @returns {Promise<Collection<string, TwitchEmote>>}\n */\n fetchTwitchEmotes(channel = null) {\n return this._getRawTwitchEmotes(channel).then(rawEmotes => {\n for (const emote of rawEmotes) {\n this._cacheTwitchEmote(channel, {\n code: emote.name, id: emote.id, formats: emote.formats\n });\n }\n\n return this.channels.get(channel).emotes.filter(e => e.type === 'twitch');\n });\n }\n\n /**\n * Fetches the BTTV emotes for a channel.\n * Use `null` for the global emotes channel.\n * @param {int} [channel=null] - ID of the channel.\n * @returns {Promise<Collection<string, BTTVEmote>>}\n */\n fetchBTTVEmotes(channel = null) {\n return this._getRawBTTVEmotes(channel).then(rawEmotes => {\n for (const data of rawEmotes) {\n this._cacheBTTVEmote(channel, data);\n }\n\n return this.channels.get(channel).emotes.filter(e => e.type === 'bttv');\n });\n }\n\n /**\n * Fetches the FFZ emotes for a channel.\n * @param {int} [channel=null] - ID of the channel.\n * @returns {Promise<Collection<string, FFZEmote>>}\n */\n async fetchFFZEmotes(channel = null) {\n // Fetch modifier emotes at least once\n if (!this.ffzModifiersFetched) {\n this.ffzModifiersFetched = true;\n\n await this._getRawFFZEmoteSet(Constants.FFZ.sets.Modifiers).then(rawEmotes => {\n for (const data of rawEmotes) {\n this._cacheFFZEmote(null, data);\n }\n });\n }\n\n // If no channel specified, fetch the Global set\n if (!channel) {\n return this._getRawFFZEmoteSet(Constants.FFZ.sets.Global).then(rawEmotes => {\n for (const data of rawEmotes) {\n this._cacheFFZEmote(channel, data);\n }\n\n return this.channels.get(channel).emotes.filter(e => e.type === 'ffz');\n });\n }\n\n return this._getRawFFZEmotes(channel).then(rawEmotes => {\n for (const data of rawEmotes) {\n this._cacheFFZEmote(channel, data);\n }\n\n return this.channels.get(channel).emotes.filter(e => e.type === 'ffz');\n });\n }\n\n /**\n * Fetches the 7TV emotes for a channel.\n * @param {int} [channel=null] - ID of the channel.\n * @param {('webp'|'avif')} [format='webp'] - The type file format to use (webp/avif).\n * @returns {Promise<Collection<string, SevenTVEmote>>}\n */\n fetchSevenTVEmotes(channel = null, format = 'webp') {\n return this._getRawSevenTVEmotes(channel).then(rawEmotes => {\n if ('emotes' in rawEmotes) {\n // From an emote set (like \"global\")\n for (const data of rawEmotes.emotes) {\n this._cacheSevenTVEmote(channel, data.data, format);\n }\n } else {\n // From users\n for (const data of rawEmotes.emote_set.emotes) {\n this._cacheSevenTVEmote(channel, data.data, format);\n }\n }\n\n return this.channels.get(channel).emotes.filter(e => e.type === '7tv');\n });\n }\n\n /**\n * Converts emote Objects to emotes\n * @param {Object} [emotesArray] - An array of emote objects\n * @returns {Emote[]}\n */\n fromObject(emotesArray) {\n const emotes = [];\n const classMap = {\n bttv: { class: BTTVEmote, cache: (emoteObject, channel_id, existing_emote) => this._cacheBTTVEmote(channel_id, null, existing_emote) },\n ffz: { class: FFZEmote, cache: (emoteObject, channel_id, existing_emote) => this._cacheFFZEmote(channel_id, null, existing_emote) },\n '7tv': { class: SevenTVEmote, cache: (emoteObject, channel_id, existing_emote) => this._cacheSevenTVEmote(channel_id, null, emoteObject.imageType, existing_emote) },\n twitch: { class: TwitchEmote, cache: (emoteObject, channel_id, existing_emote) => this._cacheTwitchEmote(channel_id, null, existing_emote) }\n };\n for (const emoteObject of emotesArray) {\n const { type } = emoteObject;\n if (!Object.keys(classMap).includes(type)) {\n throw new TypeError(`Unknown type: ${type}`);\n }\n\n const emoteClass = classMap[type].class;\n this._setupChannel(emoteObject.channel_id, type === '7tv' ? emoteObject.imageType : null);\n const emote = emoteClass.fromObject(emoteObject, this.channels.get(emoteObject.channel_id));\n classMap[type].cache(emoteObject, emoteObject.channel_id, emote);\n emotes.push(emote);\n }\n return emotes;\n }\n}\n\nmodule.exports = EmoteFetcher;\n", "const Constants = require('../util/Constants');\n\nclass EmoteParser {\n /**\n * A parser to replace text with emotes.\n * @param {EmoteFetcher} fetcher - The fetcher to use the cache of.\n * @param {Object} [options={}] - Options for the parser.\n * @param {string} [options.template] - The template to be used.\n * The strings that can be interpolated are:\n * - `{link}` The link of the emote.\n * - `{name}` The name of the emote.\n * - `{size}` The size of the image.\n * - `{creator}` The channel/owner name of the emote.\n * @param {string} [options.type='markdown'] - The type of the parser.\n * Can be one of `markdown`, `html`, `bbcode`, or `plain`.\n * If the `template` option is provided, this is ignored.\n * @param {RegExp} [options.match=/:(.+?):/g] - The regular expression that matches an emote.\n * Must be a global regex, with one capture group for the emote code.\n */\n constructor(fetcher, options = {}) {\n /**\n * The emote fetcher being used.\n * @type {EmoteFetcher}\n */\n this.fetcher = fetcher;\n\n /**\n * The parser options.\n * @type {Object}\n */\n this.options = Object.assign({\n template: '',\n type: 'markdown',\n match: /:(.+?):/g\n }, options);\n\n this._validateOptions(this.options);\n }\n\n _validateOptions(options) {\n if (options.template && typeof options.template !== 'string') {\n throw new TypeError('Template must be a string');\n }\n\n if (!['markdown', 'html', 'bbcode', 'plain'].includes(options.type)) {\n throw new TypeError('Parse type must be one of `markdown`, `html`, `bbcode`, or `plain`');\n }\n\n if (!(options.match instanceof RegExp) || !options.match.global) {\n throw new TypeError('Match must be a global RegExp.');\n }\n }\n\n /**\n * Parses text.\n * @param {string} text - Text to parse.\n * @param {number} size - Size for emotes.\n * @returns {string}\n */\n parse(text, size = 0) {\n const parsed = text.replace(this.options.match, (matched, id) => {\n const emote = this.fetcher.emotes.get(id);\n if (!emote) return matched;\n if (emote.modifier) return '';\n\n const template = this.options.template || Constants.Templates[this.options.type];\n const link = emote.toLink(size);\n const res = template\n .replace(/{link}/g, link)\n .replace(/{name}/g, emote.code)\n .replace(/{size}/g, size)\n .replace(/{creator}/g, emote.ownerName || 'global');\n\n return res;\n });\n\n return parsed;\n }\n}\n\nmodule.exports = EmoteParser;\n", "module.exports = {\n BTTVEmote: require('./struct/BTTVEmote'),\n Channel: require('./struct/Channel'),\n Collection: require('./util/Collection'),\n Constants: require('./util/Constants'),\n Emote: require('./struct/Emote'),\n EmoteFetcher: require('./struct/EmoteFetcher'),\n EmoteParser: require('./struct/EmoteParser'),\n FFZEmote: require('./struct/FFZEmote'),\n SevenTVEmote: require('./struct/SevenTVEmote'),\n TwitchEmote: require('./struct/TwitchEmote')\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["require_Emote", "__commonJSMin", "exports", "module", "Emote", "_Emote", "__name", "channel", "id", "data", "require_Constants", "__commonJSMin", "exports", "module", "id", "size", "require_BTTVEmote", "__commonJSMin", "exports", "module", "Emote", "Constants", "BTTVEmote", "_BTTVEmote", "__name", "channel", "id", "data", "size", "emoteObject", "require_Collection", "__commonJSMin", "exports", "module", "Collection", "__name", "propOrFunc", "value", "item", "func", "thisArg", "results", "i", "key", "array", "require_Channel", "__commonJSMin", "exports", "module", "Collection", "Channel", "__name", "fetcher", "id", "require_FFZEmote", "__commonJSMin", "exports", "module", "Emote", "Constants", "FFZEmote", "_FFZEmote", "__name", "channel", "id", "data", "size", "emoteObject", "sizes_obj", "acc", "curr", "require_SevenTVEmote", "__commonJSMin", "exports", "module", "Emote", "Constants", "SevenTVEmote", "_SevenTVEmote", "__name", "channel", "id", "data", "el", "size", "emoteObject", "sizes", "require_TwitchEmote", "__commonJSMin", "exports", "module", "Emote", "Constants", "TwitchEmote", "_TwitchEmote", "__name", "channel", "id", "data", "size", "emoteObject", "bind", "fn", "thisArg", "__name", "toString", "getPrototypeOf", "kindOf", "cache", "thing", "str", "kindOfTest", "type", "typeOfTest", "isArray", "isUndefined", "isBuffer", "val", "isFunction", "isArrayBuffer", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isBoolean", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFileList", "isStream", "isFormData", "kind", "isURLSearchParams", "trim", "forEach", "obj", "allOwnKeys", "l", "keys", "len", "key", "findKey", "_key", "_global", "isContextDefined", "context", "merge", "caseless", "assignValue", "targetKey", "extend", "a", "b", "stripBOM", "content", "inherits", "constructor", "superConstructor", "props", "descriptors", "toFlatObject", "sourceObj", "destObj", "filter", "propFilter", "i", "prop", "merged", "endsWith", "searchString", "position", "lastIndex", "toArray", "arr", "isTypedArray", "TypedArray", "forEachEntry", "iterator", "pair", "matchAll", "regExp", "matches", "isHTMLForm", "toCamelCase", "m", "p1", "p2", "hasOwnProperty", "isRegExp", "reduceDescriptors", "reducer", "reducedDescriptors", "descriptor", "name", "ret", "freezeMethods", "value", "toObjectSet", "arrayOrString", "delimiter", "define", "noop", "toFiniteNumber", "defaultValue", "ALPHA", "DIGIT", "ALPHABET", "generateString", "size", "alphabet", "length", "isSpecCompliantForm", "toJSONObject", "stack", "visit", "source", "target", "reducedValue", "isAsyncFn", "isThenable", "utils", "AxiosError", "message", "code", "config", "request", "response", "error", "customProps", "axiosError", "httpAdapter", "isVisitable", "removeBrackets", "renderKey", "path", "dots", "token", "isFlatArray", "predicates", "toFormData", "formData", "options", "option", "metaTokens", "visitor", "defaultVisitor", "indexes", "useBlob", "convertValue", "el", "index", "exposedHelpers", "build", "encode", "charMap", "match", "AxiosURLSearchParams", "params", "encoder", "_encode", "buildURL", "url", "serializeFn", "serializedParams", "hashmarkIndex", "InterceptorManager", "fulfilled", "rejected", "id", "h", "InterceptorManager$1", "transitionalDefaults", "URLSearchParams$1", "FormData$1", "Blob$1", "isStandardBrowserEnv", "product", "isStandardBrowserWebWorkerEnv", "platform", "URLSearchParams", "FormData", "Blob", "toURLEncodedForm", "data", "helpers", "parsePropPath", "arrayToObject", "formDataToJSON", "buildPath", "isNumericKey", "isLast", "stringifySafely", "rawValue", "parser", "e", "defaults", "headers", "contentType", "hasJSONContentType", "isObjectPayload", "_FormData", "transitional", "forcedJSONParsing", "JSONRequested", "strictJSONParsing", "status", "method", "defaults$1", "ignoreDuplicateOf", "parseHeaders", "rawHeaders", "parsed", "line", "$internals", "normalizeHeader", "header", "normalizeValue", "parseTokens", "tokens", "tokensRE", "isValidHeaderName", "matchHeaderValue", "isHeaderNameFilter", "formatHeader", "w", "char", "buildAccessors", "accessorName", "methodName", "arg1", "arg2", "arg3", "AxiosHeaders", "valueOrRewrite", "rewrite", "self", "setHeader", "_value", "_header", "_rewrite", "lHeader", "setHeaders", "matcher", "deleted", "deleteHeader", "format", "normalized", "targets", "asStrings", "first", "computed", "accessors", "defineAccessor", "mapped", "headerValue", "AxiosHeaders$1", "transformData", "fns", "isCancel", "CanceledError", "settle", "resolve", "reject", "validateStatus", "cookies", "expires", "domain", "secure", "cookie", "isAbsoluteURL", "combineURLs", "baseURL", "relativeURL", "buildFullPath", "requestedURL", "isURLSameOrigin", "msie", "urlParsingNode", "originURL", "resolveURL", "href", "requestURL", "parseProtocol", "speedometer", "samplesCount", "min", "bytes", "timestamps", "head", "tail", "firstSampleTS", "chunkLength", "now", "startedAt", "bytesCount", "passed", "progressEventReducer", "listener", "isDownloadStream", "bytesNotified", "_speedometer", "loaded", "total", "progressBytes", "rate", "inRange", "isXHRAdapterSupported", "xhrAdapter", "requestData", "requestHeaders", "responseType", "onCanceled", "done", "username", "password", "fullPath", "onloadend", "responseHeaders", "err", "timeoutErrorMessage", "xsrfValue", "cancel", "protocol", "knownAdapters", "renderReason", "reason", "isResolvedHandle", "adapter", "adapters", "nameOrAdapter", "rejectedReasons", "reasons", "state", "throwIfCancellationRequested", "dispatchRequest", "headersToObject", "mergeConfig", "config1", "config2", "getMergedValue", "mergeDeepProperties", "valueFromConfig2", "defaultToConfig2", "mergeDirectKeys", "mergeMap", "configValue", "VERSION", "validators", "deprecatedWarnings", "validator", "version", "formatMessage", "opt", "desc", "opts", "assertOptions", "schema", "allowUnknown", "Axios", "instanceConfig", "configOrUrl", "paramsSerializer", "contextHeaders", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "promise", "chain", "newConfig", "onFulfilled", "onRejected", "generateHTTPMethod", "isForm", "Axios$1", "CancelToken", "_CancelToken", "executor", "resolvePromise", "onfulfilled", "_resolve", "c", "CancelToken$1", "spread", "callback", "isAxiosError", "payload", "HttpStatusCode", "HttpStatusCode$1", "createInstance", "defaultConfig", "instance", "axios", "promises", "tslib_es6_exports", "__export", "__addDisposableResource", "__assign", "__asyncDelegator", "__asyncGenerator", "__asyncValues", "__await", "__awaiter", "__classPrivateFieldGet", "__classPrivateFieldIn", "__classPrivateFieldSet", "__createBinding", "__decorate", "__disposeResources", "__esDecorate", "__exportStar", "__extends", "__generator", "__importDefault", "__importStar", "__makeTemplateObject", "__metadata", "__param", "__propKey", "__read", "__rest", "__runInitializers", "__setFunctionName", "__spread", "__spreadArray", "__spreadArrays", "__values", "tslib_es6_default", "d", "b", "extendStatics", "__", "__name", "s", "p", "i", "decorators", "target", "key", "desc", "c", "r", "paramIndex", "decorator", "ctor", "descriptorIn", "contextIn", "initializers", "extraInitializers", "accept", "f", "kind", "descriptor", "done", "context", "result", "thisArg", "value", "useValue", "x", "name", "prefix", "metadataKey", "metadataValue", "_arguments", "P", "generator", "adopt", "resolve", "reject", "fulfilled", "step", "e", "rejected", "body", "_", "t", "y", "g", "verb", "n", "v", "op", "m", "o", "ar", "error", "il", "k", "a", "j", "jl", "to", "from", "pack", "l", "q", "resume", "settle", "fulfill", "cooked", "raw", "mod", "__setModuleDefault", "receiver", "state", "env", "async", "dispose", "fail", "_SuppressedError", "next", "rec", "init_tslib_es6", "__esmMin", "k2", "suppressed", "message", "require_browser", "__commonJSMin", "exports", "module", "require_LogLevel", "__commonJSMin", "exports", "_a", "detect_node_1", "LogLevel", "resolveLogLevel", "level", "eligibleLevels", "k", "strLevel", "__name", "debugFunction", "require_Enumerable", "__commonJSMin", "exports", "Enumerable", "enumerable", "target", "key", "val", "__name", "require_flatten", "__commonJSMin", "exports", "tslib_1", "flatten", "arr", "_a", "__name", "require_partitionedFlatMap", "__commonJSMin", "exports", "tslib_1", "partitionedFlatMap", "arr", "keyMapper", "valueMapper", "e_1", "_a", "_b", "result", "arr_1", "arr_1_1", "entry", "key", "values", "e_1_1", "__name", "require_resolveConfigValue", "__commonJSMin", "exports", "tslib_1", "resolveConfigValue", "value", "_a", "__name", "resolveConfigValueSync", "require_deprecateClass", "__commonJSMin", "exports", "tslib_1", "deprecateClass", "Base", "msg", "deprecateNoticeShown", "_super", "class_1", "args", "_i", "__name", "require_match", "__commonJSMin", "exports", "matched", "__name", "x", "match", "predicate", "fn", "eq", "y", "require_fib", "__commonJSMin", "exports", "tslib_1", "fibWithLimit", "limit", "current", "next", "_a", "_b", "__name", "require_arrayToObject", "__commonJSMin", "exports", "tslib_1", "arrayToObject", "arr", "fn", "__name", "require_entriesToObject", "__commonJSMin", "exports", "tslib_1", "arrayToObject_1", "entriesToObject", "obj", "_a", "_b", "_c", "key", "val", "__name", "require_forEachObjectEntry", "__commonJSMin", "exports", "tslib_1", "forEachObjectEntry", "obj", "fn", "_a", "_b", "key", "value", "__name", "require_groupBy", "__commonJSMin", "exports", "tslib_1", "groupBy", "arr", "keyFn", "e_1", "_a", "_b", "key_1", "__name", "value", "result", "arr_1", "arr_1_1", "item", "groupKey", "e_1_1", "require_indexBy", "__commonJSMin", "exports", "arrayToObject_1", "indexBy", "arr", "keyFn", "key_1", "__name", "value", "val", "_a", "require_mapObject", "__commonJSMin", "exports", "tslib_1", "mapObject", "obj", "fn", "mapped", "_a", "_b", "_c", "key", "value", "__name", "require_pick", "__commonJSMin", "exports", "tslib_1", "pick", "obj", "keys", "_a", "_b", "key", "_c", "value", "__name", "require_omit", "__commonJSMin", "exports", "pick_1", "omit", "obj", "keys", "key", "__name", "require_mapOptional", "__commonJSMin", "exports", "isNullish", "value", "__name", "mapNullable", "cb", "mapOptional", "require_delay", "__commonJSMin", "exports", "tslib_1", "delay", "ms", "_a", "resolve", "__name", "require_withResolvers", "__commonJSMin", "exports", "promiseWithResolvers", "resolve", "reject", "promise", "_resolve", "_reject", "__name", "require_padLeft", "__commonJSMin", "exports", "padLeft", "str", "length", "padding", "paddingStr", "__name", "require_splitWithLimit", "__commonJSMin", "exports", "tslib_1", "splitWithLimit", "str", "delim", "count", "parts", "__name", "require_utf8", "__commonJSMin", "exports", "tslib_1", "utf8Length", "str", "__name", "utf8Substring", "start", "end", "require_lib", "__commonJSMin", "exports", "Enumerable_1", "flatten_1", "partitionedFlatMap_1", "resolveConfigValue_1", "deprecateClass_1", "match_1", "fib_1", "arrayToObject_1", "entriesToObject_1", "forEachObjectEntry_1", "groupBy_1", "indexBy_1", "mapObject_1", "omit_1", "pick_1", "mapOptional_1", "delay_1", "withResolvers_1", "padLeft_1", "splitWithLimit_1", "utf8_1", "require_getMinLogLevelFromEnv", "__commonJSMin", "exports", "_a", "_b", "LogLevel_1", "data", "part", "namespace", "strLevel", "v", "_c", "_d", "b", "defaultIndex", "nsParts", "defaultLevel", "isPrefix", "value", "prefix", "item", "__name", "getMinLogLevelFromEnv", "name", "nameSplit", "_i", "data_1", "level", "require_BaseLogger", "__commonJSMin", "exports", "shared_utils_1", "detect_node_1", "getMinLogLevelFromEnv_1", "LogLevel_1", "BaseLogger", "_a", "name", "minLevel", "_b", "emoji", "colors", "_c", "timestamps", "_d", "_e", "lv", "__name", "message", "require_BrowserLogger", "__commonJSMin", "exports", "tslib_1", "LogLevel_1", "BaseLogger_1", "BrowserLogger", "_super", "__name", "level", "message", "logFn", "formattedMessage", "require_CustomLoggerWrapper", "__commonJSMin", "exports", "shared_utils_1", "getMinLogLevelFromEnv_1", "LogLevel_1", "CustomLoggerWrapper", "_a", "name", "minLevel", "custom", "_b", "lv", "__name", "level", "message", "require_NodeLogger", "__commonJSMin", "exports", "_a", "_b", "_c", "tslib_1", "LogLevel_1", "BaseLogger_1", "colors", "bgColors", "createGenericWrapper", "color", "ending", "inner", "str", "__name", "createColorWrapper", "createBgWrapper", "fgWrapper", "NodeLogger", "_super", "level", "message", "logFn", "builtMessage", "emoji", "useColors", "require_createLogger", "__commonJSMin", "exports", "detect_node_1", "BrowserLogger_1", "CustomLoggerWrapper_1", "NodeLogger_1", "createLogger", "options", "__name", "require_lib", "__commonJSMin", "exports", "createLogger_1", "LogLevel_1", "require_CustomError", "__commonJSMin", "exports", "tslib_1", "CustomError", "_super", "params", "_i", "_newTarget", "_this", "_a", "__name", "require_RetryAfterError", "__commonJSMin", "exports", "tslib_1", "CustomError_1", "RetryAfterError", "_super", "after", "_this", "__name", "require_RateLimitReachedError", "__commonJSMin", "exports", "tslib_1", "CustomError_1", "RateLimitReachedError", "_super", "__name", "require_NullRateLimiter", "__commonJSMin", "exports", "tslib_1", "NullRateLimiter", "_callback", "__name", "req", "_a", "require_implementation", "__commonJSMin", "exports", "module", "ERROR_MESSAGE", "slice", "toStr", "funcType", "__name", "that", "target", "args", "bound", "binder", "result", "boundLength", "boundArgs", "i", "Empty", "require_function_bind", "__commonJSMin", "exports", "module", "implementation", "require_shams", "__commonJSMin", "exports", "module", "__name", "obj", "sym", "symObj", "symVal", "syms", "descriptor", "require_has_symbols", "__commonJSMin", "exports", "module", "origSymbol", "hasSymbolSham", "__name", "require_has_proto", "__commonJSMin", "exports", "module", "test", "$Object", "__name", "require_src", "__commonJSMin", "exports", "module", "bind", "require_get_intrinsic", "__commonJSMin", "exports", "module", "undefined", "$SyntaxError", "$Function", "$TypeError", "getEvalledConstructor", "__name", "expressionSyntax", "$gOPD", "throwTypeError", "ThrowTypeError", "hasSymbols", "hasProto", "getProto", "x", "needsEval", "TypedArray", "INTRINSICS", "e", "errorProto", "doEval", "name", "value", "fn", "gen", "LEGACY_ALIASES", "bind", "hasOwn", "$concat", "$spliceApply", "$replace", "$strSlice", "$exec", "rePropName", "reEscapeChar", "stringToPath", "string", "first", "last", "result", "match", "number", "quote", "subString", "getBaseIntrinsic", "allowMissing", "intrinsicName", "alias", "parts", "intrinsicBaseName", "intrinsic", "intrinsicRealName", "skipFurtherCaching", "i", "isOwn", "part", "desc", "require_call_bind", "__commonJSMin", "exports", "module", "bind", "GetIntrinsic", "$apply", "$call", "$reflectApply", "$gOPD", "$defineProperty", "$max", "__name", "originalFunction", "func", "desc", "applyBind", "require_isArguments", "__commonJSMin", "exports", "module", "toStr", "__name", "value", "str", "isArgs", "require_implementation", "__commonJSMin", "exports", "module", "keysShim", "has", "toStr", "isArgs", "isEnumerable", "hasDontEnumBug", "hasProtoEnumBug", "dontEnums", "equalsConstructorPrototype", "__name", "o", "ctor", "excludedKeys", "hasAutomationEqualityBug", "k", "equalsConstructorPrototypeIfNotBuggy", "object", "isObject", "isFunction", "isArguments", "isString", "theKeys", "skipProto", "i", "j", "name", "skipConstructor", "require_object_keys", "__commonJSMin", "exports", "module", "slice", "isArgs", "origKeys", "keysShim", "__name", "o", "originalKeys", "keysWorksWithArguments", "args", "object", "require_has_property_descriptors", "__commonJSMin", "exports", "module", "GetIntrinsic", "$defineProperty", "hasPropertyDescriptors", "__name", "require_define_properties", "__commonJSMin", "exports", "module", "keys", "hasSymbols", "toStr", "concat", "origDefineProperty", "isFunction", "__name", "fn", "hasPropertyDescriptors", "supportsDescriptors", "defineProperty", "object", "name", "value", "predicate", "defineProperties", "map", "predicates", "props", "i", "require_requirePromise", "__commonJSMin", "exports", "module", "__name", "require_PromiseResolve", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBind", "$resolve", "$PromiseResolve", "__name", "C", "x", "require_Type", "__commonJSMin", "exports", "module", "__name", "x", "require_Type", "__commonJSMin", "exports", "module", "ES5Type", "__name", "x", "require_shams", "__commonJSMin", "exports", "module", "hasSymbols", "__name", "require_callBound", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBind", "$indexOf", "__name", "name", "allowMissing", "intrinsic", "require_is_arguments", "__commonJSMin", "exports", "module", "hasToStringTag", "callBound", "$toString", "isStandardArguments", "__name", "value", "isLegacyArguments", "supportsStandardArguments", "require_object_inspect", "__commonJSMin", "exports", "module", "hasMap", "mapSizeDescriptor", "mapSize", "mapForEach", "hasSet", "setSizeDescriptor", "setSize", "setForEach", "hasWeakMap", "weakMapHas", "hasWeakSet", "weakSetHas", "hasWeakRef", "weakRefDeref", "booleanValueOf", "objectToString", "functionToString", "$match", "$slice", "$replace", "$toUpperCase", "$toLowerCase", "$test", "$concat", "$join", "$arrSlice", "$floor", "bigIntValueOf", "gOPS", "symToString", "hasShammedSymbols", "toStringTag", "isEnumerable", "gPO", "O", "addNumericSeparator", "num", "str", "sepRegex", "int", "intStr", "dec", "__name", "utilInspect", "inspectCustom", "inspectSymbol", "isSymbol", "inspect_", "obj", "options", "depth", "seen", "opts", "has", "customInspect", "numericSeparator", "inspectString", "bigIntStr", "maxDepth", "isArray", "indent", "getIndent", "indexOf", "inspect", "value", "from", "noIndent", "newOpts", "isRegExp", "name", "nameOf", "keys", "arrObjKeys", "symString", "markBoxed", "isElement", "s", "attrs", "i", "wrapQuotes", "quote", "xs", "singleLineValues", "indentedJoin", "isError", "parts", "isMap", "mapParts", "key", "collectionOf", "isSet", "setParts", "isWeakMap", "weakCollectionOf", "isWeakSet", "isWeakRef", "isNumber", "isBigInt", "isBoolean", "isString", "isDate", "ys", "isPlainObject", "protoTag", "stringTag", "toStr", "constructorTag", "tag", "defaultStyle", "quoteChar", "hasOwn", "f", "m", "x", "l", "remaining", "trailer", "lowbyte", "c", "n", "type", "size", "entries", "joinedEntries", "baseIndent", "lineJoiner", "isArr", "syms", "symMap", "k", "j", "require_side_channel", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBound", "inspect", "$TypeError", "$WeakMap", "$Map", "$weakMapGet", "$weakMapSet", "$weakMapHas", "$mapGet", "$mapSet", "$mapHas", "listGetNode", "__name", "list", "key", "prev", "curr", "listGet", "objects", "node", "listSet", "value", "listHas", "$wm", "$m", "$o", "channel", "require_internal_slot", "__commonJSMin", "exports", "module", "GetIntrinsic", "has", "channel", "$TypeError", "SLOT", "O", "slot", "slots", "V", "require_stop_iteration_iterator", "__commonJSMin", "exports", "module", "SLOT", "$SyntaxError", "$StopIteration", "__name", "origIterator", "siIterator", "iterator", "done", "e", "require_isarray", "__commonJSMin", "exports", "module", "toString", "arr", "require_is_string", "__commonJSMin", "exports", "module", "strValue", "tryStringObject", "__name", "value", "toStr", "strClass", "hasToStringTag", "require_is_map", "__commonJSMin", "exports", "module", "$Map", "$Set", "exported", "__name", "x", "$mapHas", "$setHas", "require_is_set", "__commonJSMin", "exports", "module", "$Map", "$Set", "exported", "__name", "x", "$mapHas", "$setHas", "require_es_get_iterator", "__commonJSMin", "exports", "module", "isArguments", "getStopIterationIterator", "$iterator", "__name", "iterable", "isArray", "isString", "GetIntrinsic", "$Map", "$Set", "callBound", "$arrayPush", "$charCodeAt", "$stringSlice", "advanceStringIndex", "S", "index", "length", "first", "second", "getArrayIterator", "arraylike", "i", "done", "value", "getNonCollectionIterator", "noPrimordialCollections", "nextIndex", "isMap", "isSet", "$mapForEach", "$setForEach", "$mapIterator", "$setIterator", "$mapAtAtIterator", "$setAtAtIterator", "getCollectionIterator", "entries", "v", "k", "values", "require_iterate_iterator", "__commonJSMin", "exports", "module", "$TypeError", "__name", "iterator", "callback", "values", "result", "require_iterate_value", "__commonJSMin", "exports", "module", "getIterator", "$TypeError", "iterate", "__name", "iterable", "iterator", "require_CheckObjectCoercible", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "__name", "value", "optMessage", "require_RequireObjectCoercible", "__commonJSMin", "exports", "module", "require_isNaN", "__commonJSMin", "exports", "module", "__name", "a", "require_isFinite", "__commonJSMin", "exports", "module", "$isNaN", "x", "require_isInteger", "__commonJSMin", "exports", "module", "GetIntrinsic", "$abs", "$floor", "$isNaN", "$isFinite", "__name", "argument", "absValue", "require_ArrayCreate", "__commonJSMin", "exports", "module", "GetIntrinsic", "$ArrayPrototype", "$RangeError", "$SyntaxError", "$TypeError", "isInteger", "MAX_ARRAY_LENGTH", "hasProto", "$setProto", "O", "proto", "__name", "length", "A", "require_IsPropertyKey", "__commonJSMin", "exports", "module", "__name", "argument", "require_Type", "__commonJSMin", "exports", "module", "ES5Type", "__name", "x", "require_Get", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "inspect", "IsPropertyKey", "Type", "__name", "O", "P", "require_IsArray", "__commonJSMin", "exports", "module", "GetIntrinsic", "$Array", "toStr", "__name", "argument", "require_IsArray", "__commonJSMin", "exports", "module", "require_GetIntrinsic", "__commonJSMin", "exports", "module", "require_isPropertyDescriptor", "__commonJSMin", "exports", "module", "GetIntrinsic", "has", "$TypeError", "__name", "ES", "Desc", "allowed", "key", "require_DefineOwnProperty", "__commonJSMin", "exports", "module", "hasPropertyDescriptors", "GetIntrinsic", "$defineProperty", "hasArrayLengthDefineBug", "isArray", "callBound", "$isEnumerable", "__name", "IsDataDescriptor", "SameValue", "FromPropertyDescriptor", "O", "P", "desc", "V", "require_isMatchRecord", "__commonJSMin", "exports", "module", "has", "__name", "record", "require_assertRecord", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "$SyntaxError", "has", "isInteger", "isMatchRecord", "predicates", "__name", "Desc", "allowed", "key", "isData", "IsAccessor", "value", "Type", "recordType", "argumentName", "predicate", "require_fromPropertyDescriptor", "__commonJSMin", "exports", "module", "__name", "Desc", "obj", "require_FromPropertyDescriptor", "__commonJSMin", "exports", "module", "assertRecord", "fromPropertyDescriptor", "Type", "__name", "Desc", "require_IsAccessorDescriptor", "__commonJSMin", "exports", "module", "has", "Type", "assertRecord", "__name", "Desc", "require_IsDataDescriptor", "__commonJSMin", "exports", "module", "has", "Type", "assertRecord", "__name", "Desc", "require_SameValue", "__commonJSMin", "exports", "module", "$isNaN", "__name", "x", "y", "require_ToBoolean", "__commonJSMin", "exports", "module", "__name", "value", "require_is_callable", "__commonJSMin", "exports", "module", "fnToStr", "reflectApply", "badArrayLike", "isCallableMarker", "_", "constructorRegex", "isES6ClassFn", "__name", "value", "fnStr", "tryFunctionObject", "toStr", "objectClass", "fnClass", "genClass", "ddaClass", "ddaClass2", "ddaClass3", "hasToStringTag", "isIE68", "isDDA", "all", "str", "e", "strClass", "require_IsCallable", "__commonJSMin", "exports", "module", "require_ToPropertyDescriptor", "__commonJSMin", "exports", "module", "has", "GetIntrinsic", "$TypeError", "Type", "ToBoolean", "IsCallable", "__name", "Obj", "desc", "getter", "setter", "require_DefinePropertyOrThrow", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "isPropertyDescriptor", "DefineOwnProperty", "FromPropertyDescriptor", "IsAccessorDescriptor", "IsDataDescriptor", "IsPropertyKey", "SameValue", "ToPropertyDescriptor", "Type", "__name", "O", "P", "desc", "Desc", "require_IsConstructor", "__commonJSMin", "exports", "module", "GetIntrinsic", "$construct", "DefinePropertyOrThrow", "isConstructorMarker", "badArrayLike", "__name", "argument", "err", "require_ArraySpeciesCreate", "__commonJSMin", "exports", "module", "GetIntrinsic", "$species", "$TypeError", "ArrayCreate", "Get", "IsArray", "IsConstructor", "Type", "isInteger", "__name", "originalArray", "length", "isArray", "C", "require_Call", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBound", "$TypeError", "IsArray", "$apply", "__name", "F", "V", "argumentsList", "require_gopd", "__commonJSMin", "exports", "module", "GetIntrinsic", "$gOPD", "require_isPrimitive", "__commonJSMin", "exports", "module", "__name", "value", "require_IsExtensible", "__commonJSMin", "exports", "module", "GetIntrinsic", "$preventExtensions", "$isExtensible", "isPrimitive", "__name", "obj", "require_isFullyPopulatedPropertyDescriptor", "__commonJSMin", "exports", "module", "__name", "ES", "Desc", "require_IsGenericDescriptor", "__commonJSMin", "exports", "module", "assertRecord", "IsAccessorDescriptor", "IsDataDescriptor", "Type", "__name", "Desc", "require_ValidateAndApplyPropertyDescriptor", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "DefineOwnProperty", "isFullyPopulatedPropertyDescriptor", "isPropertyDescriptor", "FromPropertyDescriptor", "IsAccessorDescriptor", "IsDataDescriptor", "IsGenericDescriptor", "IsPropertyKey", "SameValue", "Type", "__name", "O", "P", "extensible", "Desc", "current", "oType", "configurable", "enumerable", "require_OrdinaryDefineOwnProperty", "__commonJSMin", "exports", "module", "GetIntrinsic", "$gOPD", "$SyntaxError", "$TypeError", "isPropertyDescriptor", "IsAccessorDescriptor", "IsDataDescriptor", "IsExtensible", "IsPropertyKey", "ToPropertyDescriptor", "SameValue", "Type", "ValidateAndApplyPropertyDescriptor", "__name", "O", "P", "Desc", "creatingNormalDataProperty", "settingExistingDataProperty", "desc", "current", "extensible", "require_CreateDataProperty", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "IsPropertyKey", "OrdinaryDefineOwnProperty", "Type", "__name", "O", "P", "V", "newDesc", "require_CreateDataPropertyOrThrow", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "CreateDataProperty", "IsPropertyKey", "Type", "__name", "O", "P", "V", "success", "require_HasProperty", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "IsPropertyKey", "Type", "__name", "O", "P", "require_mod", "__commonJSMin", "exports", "module", "$floor", "__name", "number", "modulo", "remain", "require_modulo", "__commonJSMin", "exports", "module", "mod", "__name", "x", "y", "require_isPrimitive", "__commonJSMin", "exports", "module", "__name", "value", "require_is_date_object", "__commonJSMin", "exports", "module", "getDay", "tryDateObject", "__name", "value", "toStr", "dateClass", "hasToStringTag", "require_is_symbol", "__commonJSMin", "exports", "module", "toStr", "hasSymbols", "symToStr", "symStringRegex", "isSymbolObject", "__name", "value", "require_es2015", "__commonJSMin", "exports", "module", "hasSymbols", "isPrimitive", "isCallable", "isDate", "isSymbol", "ordinaryToPrimitive", "__name", "O", "hint", "methodNames", "method", "result", "i", "GetMethod", "P", "func", "input", "exoticToPrim", "require_ToPrimitive", "__commonJSMin", "exports", "module", "toPrimitive", "__name", "input", "require_is_regex", "__commonJSMin", "exports", "module", "callBound", "hasToStringTag", "has", "$exec", "isRegexMarker", "badStringifier", "throwRegexMarker", "__name", "$toString", "gOPD", "regexClass", "value", "descriptor", "hasLastIndexDataProperty", "e", "require_safe_regex_test", "__commonJSMin", "exports", "module", "callBound", "GetIntrinsic", "isRegex", "$exec", "$TypeError", "__name", "regex", "s", "require_ToString", "__commonJSMin", "exports", "module", "GetIntrinsic", "$String", "$TypeError", "__name", "argument", "require_implementation", "__commonJSMin", "exports", "module", "RequireObjectCoercible", "ToString", "callBound", "$replace", "mvsIsWS", "leftWhitespace", "rightWhitespace", "__name", "S", "require_polyfill", "__commonJSMin", "exports", "module", "implementation", "zeroWidthSpace", "mongolianVowelSeparator", "__name", "require_shim", "__commonJSMin", "exports", "module", "define", "getPolyfill", "__name", "polyfill", "require_string_prototype", "__commonJSMin", "exports", "module", "callBind", "define", "RequireObjectCoercible", "implementation", "getPolyfill", "shim", "bound", "boundMethod", "__name", "receiver", "require_StringToNumber", "__commonJSMin", "exports", "module", "GetIntrinsic", "$Number", "$RegExp", "$TypeError", "$parseInteger", "callBound", "regexTester", "$strSlice", "isBinary", "isOctal", "isInvalidHexLiteral", "nonWS", "nonWSregex", "hasNonWS", "$trim", "Type", "__name", "StringToNumber", "argument", "trimmed", "require_ToNumber", "__commonJSMin", "exports", "module", "GetIntrinsic", "$TypeError", "$Number", "isPrimitive", "ToPrimitive", "StringToNumber", "__name", "argument", "value", "require_floor", "__commonJSMin", "exports", "module", "Type", "$floor", "__name", "x", "require_truncate", "__commonJSMin", "exports", "module", "GetIntrinsic", "floor", "$TypeError", "__name", "x", "result", "require_ToUint32", "__commonJSMin", "exports", "module", "modulo", "ToNumber", "truncate", "isFinite", "two32", "__name", "argument", "number", "int", "int32bit", "require_ToObject", "__commonJSMin", "exports", "module", "GetIntrinsic", "$Object", "RequireObjectCoercible", "__name", "value", "require_implementation", "__commonJSMin", "exports", "module", "ArraySpeciesCreate", "Call", "CreateDataPropertyOrThrow", "Get", "HasProperty", "IsCallable", "ToUint32", "ToObject", "ToString", "callBound", "isString", "boxedString", "splitString", "strSplit", "__name", "callbackfn", "O", "self", "len", "T", "A", "k", "Pk", "kPresent", "kValue", "mappedValue", "require_es_array_method_boxes_properly", "__commonJSMin", "exports", "module", "__name", "method", "properlyBoxesNonStrict", "properlyBoxesStrict", "threwException", "_", "__", "O", "require_polyfill", "__commonJSMin", "exports", "module", "arrayMethodBoxesProperly", "implementation", "__name", "method", "require_shim", "__commonJSMin", "exports", "module", "define", "getPolyfill", "__name", "polyfill", "require_array_prototype", "__commonJSMin", "exports", "module", "define", "RequireObjectCoercible", "callBound", "implementation", "getPolyfill", "polyfill", "shim", "$slice", "boundMapShim", "__name", "array", "callbackfn", "require_implementation", "__commonJSMin", "exports", "module", "requirePromise", "PromiseResolve", "Type", "iterate", "map", "GetIntrinsic", "callBind", "all", "reject", "__name", "iterable", "C", "values", "item", "onFulfill", "value", "onReject", "reason", "itemPromise", "e", "require_polyfill", "__commonJSMin", "exports", "module", "requirePromise", "implementation", "__name", "require_shim", "__commonJSMin", "exports", "module", "requirePromise", "getPolyfill", "define", "__name", "polyfill", "require_promise", "__commonJSMin", "exports", "module", "callBind", "define", "requirePromise", "implementation", "getPolyfill", "shim", "bound", "rebindable", "__name", "iterable", "require_ResponseBasedRateLimiter", "__commonJSMin", "exports", "tslib_1", "logger_1", "promise_allsettled_1", "shared_utils_1", "RateLimitReachedError_1", "RetryAfterError_1", "ResponseBasedRateLimiter", "_a", "logger", "__name", "req", "options", "_this", "resolve", "reject", "reqSpec", "_b", "_c", "_d", "_e", "v", "reqSpecs", "promises", "settledPromises", "rejectedPromises", "now", "retryAt", "retryAfter", "params", "delay", "result", "retry", "e_1", "p", "carry", "entry", "amount", "require_PartitionedRateLimiter", "__commonJSMin", "exports", "tslib_1", "ResponseBasedRateLimiter_1", "PartitionedRateLimiter", "options", "__name", "req", "partitionKey", "partitionChild", "_a", "e_1", "_b", "_c", "child", "e_1_1", "e_2", "e_2_1", "e_3", "e_3_1", "result", "require_PartitionedTimeBasedRateLimiter", "__commonJSMin", "exports", "tslib_1", "logger_1", "RateLimitReachedError_1", "PartitionedTimeBasedRateLimiter", "_a", "logger", "bucketSize", "timeFrame", "doRequest", "getPartitionKey", "__name", "req", "options", "_this", "resolve", "reject", "_b", "reqSpec", "partitionKey", "usedFromBucket", "queue", "e_1", "_c", "e_1_1", "newQueue", "e_2", "newUsed", "require_TimeBasedRateLimiter", "__commonJSMin", "exports", "tslib_1", "logger_1", "RateLimitReachedError_1", "TimeBasedRateLimiter", "_a", "logger", "bucketSize", "timeFrame", "doRequest", "__name", "req", "options", "_this", "resolve", "reject", "reqSpec", "e_1", "_b", "require_TimedPassthruRateLimiter", "__commonJSMin", "exports", "tslib_1", "TimeBasedRateLimiter_1", "TimedPassthruRateLimiter", "_super", "child", "config", "req", "options", "_a", "__name", "require_lib", "__commonJSMin", "exports", "RetryAfterError_1", "RateLimitReachedError_1", "NullRateLimiter_1", "PartitionedRateLimiter_1", "PartitionedTimeBasedRateLimiter_1", "ResponseBasedRateLimiter_1", "TimeBasedRateLimiter_1", "TimedPassthruRateLimiter_1", "require_browser", "__commonJSMin", "exports", "module", "getGlobal", "__name", "globalObject", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "__name", "url", "options", "require_utils", "__commonJSMin", "exports", "module", "has", "isArray", "hexTable", "array", "i", "compactQueue", "__name", "queue", "item", "obj", "compacted", "j", "arrayToObject", "source", "options", "merge", "target", "mergeTarget", "targetItem", "acc", "key", "value", "assign", "decode", "str", "decoder", "charset", "strWithoutPlus", "encode", "defaultEncoder", "string", "$0", "out", "c", "compact", "refs", "keys", "val", "isRegExp", "isBuffer", "combine", "a", "b", "require_formats", "__commonJSMin", "exports", "module", "replace", "percentTwenties", "util", "Format", "value", "require_stringify", "__commonJSMin", "exports", "module", "utils", "formats", "has", "arrayPrefixGenerators", "__name", "prefix", "key", "isArray", "push", "pushToArray", "arr", "valueOrArray", "toISO", "defaultFormat", "defaults", "date", "isNonNullishPrimitive", "v", "stringify", "object", "generateArrayPrefix", "strictNullHandling", "skipNulls", "encoder", "filter", "sort", "allowDots", "serializeDate", "formatter", "encodeValuesOnly", "charset", "obj", "keyValue", "values", "objKeys", "keys", "i", "normalizeStringifyOptions", "opts", "format", "options", "arrayFormat", "joined", "require_parse", "__commonJSMin", "exports", "module", "utils", "has", "isArray", "defaults", "interpretNumericEntities", "__name", "str", "$0", "numberStr", "parseArrayValue", "val", "options", "maybeMap", "fn", "mapped", "i", "isoSentinel", "charsetSentinel", "parseValues", "obj", "cleanStr", "limit", "parts", "skipIndex", "charset", "part", "bracketEqualsPos", "pos", "key", "encodedVal", "parseObject", "chain", "valuesParsed", "leaf", "root", "cleanRoot", "index", "parseKeys", "givenKey", "brackets", "child", "segment", "parent", "keys", "normalizeParseOptions", "opts", "tempObj", "newObj", "require_lib", "__commonJSMin", "exports", "module", "stringify", "parse", "formats", "require_dist", "__commonJSMin", "exports", "klona", "x", "k", "tmp", "str", "val", "key", "__name", "require_DataObject", "__commonJSMin", "exports", "klona_1", "getRawData", "obj", "__name", "DataObject", "data", "require_CustomError", "__commonJSMin", "exports", "CustomError", "__name", "message", "options", "_a", "require_RelationAssertionError", "__commonJSMin", "exports", "CustomError_1", "RelationAssertionError", "__name", "require_relations", "__commonJSMin", "exports", "RelationAssertionError_1", "checkRelationAssertion", "value", "__name", "require_rtfm", "__commonJSMin", "exports", "rtfm", "pkg", "name", "idKey", "clazz", "fn", "__name", "require_HelixExtension", "__commonJSMin", "exports", "tslib_1", "DataObject_1", "rtfm_1", "HelixExtension", "__name", "size", "_a", "_b", "require_HellFreezesOverError", "__commonJSMin", "exports", "CustomError_1", "HellFreezesOverError", "__name", "message", "require_userResolvers", "__commonJSMin", "exports", "extractUserId", "user", "__name", "extractUserName", "require_lib", "__commonJSMin", "exports", "DataObject_1", "relations_1", "rtfm_1", "HelixExtension_1", "CustomError_1", "HellFreezesOverError_1", "RelationAssertionError_1", "userResolvers_1", "require_HttpStatusCodeError", "__commonJSMin", "exports", "common_1", "HttpStatusCodeError", "__name", "_statusCode", "statusText", "_url", "_method", "_body", "isJson", "require_transform", "__commonJSMin", "exports", "qs_1", "HttpStatusCodeError_1", "handleTwitchApiResponseError", "response", "options", "_a", "isJson", "text", "params", "fullUrl", "__name", "transformTwitchApiResponse", "require_url", "__commonJSMin", "exports", "getTwitchApiUrl", "url", "type", "__name", "require_apiCall", "__commonJSMin", "exports", "cross_fetch_1", "qs_1", "transform_1", "url_1", "callTwitchApiRaw", "options", "clientId", "accessToken", "authorizationType", "fetchOptions", "_a", "_b", "type", "url", "params", "headers", "body", "requestOptions", "__name", "callTwitchApi", "response", "require_queries_external", "__commonJSMin", "exports", "common_1", "createBroadcasterQuery", "user", "__name", "require_lib", "__commonJSMin", "exports", "apiCall_1", "queries_external_1", "transform_1", "HttpStatusCodeError_1", "require_ConfigError", "__commonJSMin", "exports", "common_1", "ConfigError", "__name", "require_HelixRateLimiter", "__commonJSMin", "exports", "rate_limiter_1", "api_call_1", "HelixRateLimiter", "__name", "options", "clientId", "accessToken", "authorizationType", "fetchOptions", "res", "headers", "require_createCacheKey", "__commonJSMin", "exports", "createSingleCacheKey", "param", "objKey", "__name", "createCacheKey", "propName", "params", "prefix", "require_Cacheable", "__commonJSMin", "exports", "createCacheKey_1", "Cacheable", "cls", "cacheKey", "entry", "value", "timeInSeconds", "prefix", "internalCacheKey", "val", "key", "now", "propName", "__name", "require_Cached", "__commonJSMin", "exports", "createCacheKey_1", "Cached", "timeInSeconds", "cacheFailures", "target", "propName", "descriptor", "origFn", "params", "cacheKey", "cachedValue", "result", "__name", "require_CachedGetter", "__commonJSMin", "exports", "createCacheKey_1", "CachedGetter", "timeInSeconds", "target", "propName", "descriptor", "origFn", "cacheKey", "cachedValue", "result", "__name", "require_ClearsCache", "__commonJSMin", "exports", "ClearsCache", "cacheName", "numberOfArguments", "target", "propName", "descriptor", "origFn", "params", "result", "args", "__name", "require_lib", "__commonJSMin", "exports", "Cacheable_1", "Cached_1", "CachedGetter_1", "ClearsCache_1", "createCacheKey_1", "require_Listener", "__commonJSMin", "exports", "Listener", "__name", "owner", "event", "listener", "_internal", "require_EventEmitter", "__commonJSMin", "exports", "Listener_1", "EventEmitter", "__name", "event", "listener", "idOrEvent", "eventBinder", "handler", "args", "internal", "listenerMap", "id", "listeners", "idx", "require_lib", "__commonJSMin", "exports", "EventEmitter_1", "Listener_1", "require_AccessToken", "__commonJSMin", "exports", "shared_utils_1", "EXPIRY_GRACE_PERIOD", "getExpiryMillis", "token", "_", "__name", "getExpiryDateOfAccessToken", "accessTokenIsExpired", "_a", "require_InvalidTokenError", "__commonJSMin", "exports", "common_1", "InvalidTokenError", "__name", "options", "require_InvalidTokenTypeError", "__commonJSMin", "exports", "common_1", "InvalidTokenTypeError", "__name", "require_helpers_external", "__commonJSMin", "exports", "createExchangeCodeQuery", "clientId", "clientSecret", "code", "redirectUri", "__name", "createGetAppTokenQuery", "createRefreshTokenQuery", "refreshToken", "createRevokeTokenQuery", "accessToken", "require_TokenInfo", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "TokenInfo", "__name", "data", "_a", "v", "require_helpers", "__commonJSMin", "exports", "api_call_1", "InvalidTokenError_1", "InvalidTokenTypeError_1", "helpers_external_1", "TokenInfo_1", "createAccessTokenFromData", "data", "_a", "_b", "__name", "exchangeCode", "clientId", "clientSecret", "code", "redirectUri", "getAppToken", "refreshUserToken", "refreshToken", "revokeToken", "accessToken", "getTokenInfo", "e", "getValidTokenFromProviderForUser", "provider", "userId", "scopes", "logger", "lastTokenError", "foundUser", "tokenInfo", "newToken", "getValidTokenFromProviderForIntent", "intent", "scopeEquivalencies", "compareScopes", "scopesToCompare", "requestedScopes", "scope", "scopesStr", "compareScopeSets", "requestedScopeSets", "loadAndCompareTokenInfo", "token", "loadedScopes", "userInfo", "val", "require_TokenFetcher", "__commonJSMin", "exports", "shared_utils_1", "TokenFetcher", "__name", "executor", "scopeSets", "_a", "filteredScopeSets", "val", "promise", "resolve", "reject", "e", "require_AppTokenAuthProvider", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "AccessToken_1", "helpers_1", "TokenFetcher_1", "AppTokenAuthProvider", "__name", "clientId", "clientSecret", "impliedScopes", "scopes", "forceNew", "scopeSets", "scope", "require_CachedRefreshFailureError", "__commonJSMin", "exports", "common_1", "CachedRefreshFailureError", "__name", "userId", "require_IntermediateUserRemovalError", "__commonJSMin", "exports", "common_1", "IntermediateUserRemovalError", "__name", "userId", "require_UnknownIntentError", "__commonJSMin", "exports", "common_1", "UnknownIntentError", "__name", "intent", "require_RefreshingAuthProvider", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "typed_event_emitter_1", "common_1", "AccessToken_1", "CachedRefreshFailureError_1", "IntermediateUserRemovalError_1", "InvalidTokenError_1", "InvalidTokenTypeError_1", "UnknownIntentError_1", "helpers_1", "TokenFetcher_1", "RefreshingAuthProvider", "__name", "refreshConfig", "_a", "scopes", "user", "initialToken", "intents", "userId", "tokenWithInfo", "tokenInfo", "e", "refreshedToken", "tokenToAdd", "token", "code", "intent", "previousTokenData", "tokenData", "scopeSets", "fetcher", "newToken", "forceNew", "previousToken", "scope", "refreshToken", "require_StaticAuthProvider", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "helpers_1", "StaticAuthProvider", "__name", "clientId", "accessToken", "scopes", "user", "scopeSets", "intent", "_a", "requestedScopeSets", "userId", "require_lib", "__commonJSMin", "exports", "AccessToken_1", "helpers_1", "TokenFetcher_1", "TokenInfo_1", "AppTokenAuthProvider_1", "RefreshingAuthProvider_1", "StaticAuthProvider_1", "CachedRefreshFailureError_1", "IntermediateUserRemovalError_1", "InvalidTokenError_1", "InvalidTokenTypeError_1", "UnknownIntentError_1", "require_retry_operation", "__commonJSMin", "exports", "module", "RetryOperation", "timeouts", "options", "__name", "err", "currentTime", "timeout", "self", "fn", "timeoutOps", "counts", "mainError", "mainErrorCount", "error", "message", "count", "require_retry", "__commonJSMin", "exports", "RetryOperation", "options", "timeouts", "opts", "key", "i", "a", "b", "attempt", "random", "timeout", "obj", "methods", "method", "original", "__name", "op", "args", "callback", "err", "require_retry", "__commonJSMin", "exports", "module", "require_bits_external", "__commonJSMin", "exports", "createBitsLeaderboardQuery", "params", "count", "period", "startDate", "contextUserId", "__name", "require_BaseApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "BaseApi", "__name", "client", "userId", "_a", "require_HelixBitsLeaderboardEntry", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixBitsLeaderboardEntry", "__name", "data", "client", "require_HelixBitsLeaderboard", "__commonJSMin", "exports", "tslib_1", "cache_decorators_1", "shared_utils_1", "common_1", "HelixBitsLeaderboardEntry_1", "HelixBitsLeaderboard", "__name", "data", "client", "entry", "require_HelixCheermoteList", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixCheermoteList", "__name", "data", "action", "name", "bits", "format", "background", "state", "scale", "correctTier", "a", "b", "tier", "require_HelixBitsApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "api_call_1", "common_1", "bits_external_1", "BaseApi_1", "HelixBitsLeaderboard_1", "HelixCheermoteList_1", "HelixBitsApi", "__name", "broadcaster", "params", "result", "require_channel_external", "__commonJSMin", "exports", "shared_utils_1", "common_1", "createChannelUpdateBody", "data", "_a", "__name", "createChannelCommercialBody", "broadcaster", "length", "createChannelVipUpdateQuery", "user", "createChannelFollowerQuery", "createFollowedChannelQuery", "require_generic_external", "__commonJSMin", "exports", "common_1", "createSingleKeyQuery", "key", "value", "__name", "createUserQuery", "user", "createModeratorActionQuery", "broadcaster", "moderatorId", "createGetByIdsQuery", "rewardIds", "createChannelUsersCheckQuery", "users", "require_HelixUserRelation", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixUserRelation", "__name", "data", "client", "require_HelixRequestBatcher", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "HelixRequestBatcher", "__name", "_callOptions", "_queryParamName", "_matchKey", "client", "_mapper", "_limitPerRequest", "id", "promise", "resolve", "reject", "ids", "_a", "data", "dataById", "resolver", "_b", "result", "e_", "require_HelixPaginatedRequest", "__commonJSMin", "exports", "_a", "tslib_1", "shared_utils_1", "common_1", "HelixPaginatedRequest", "__name", "_callOptions", "client", "_mapper", "_limitPerPage", "result", "data", "additionalOptions", "acc", "elem", "mapped", "require_HelixPaginatedRequestWithTotal", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixPaginatedRequest_1", "HelixPaginatedRequestWithTotal", "__name", "_a", "require_HelixPaginatedResult", "__commonJSMin", "exports", "createPaginatedResult", "response", "type", "client", "_a", "dataCache", "_b", "data", "__name", "createPaginatedResultWithTotal", "require_HelixPagination", "__commonJSMin", "exports", "createPaginationQuery", "after", "before", "limit", "__name", "require_HelixChannel", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixChannel", "__name", "data", "client", "require_HelixChannelEditor", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixChannelEditor", "__name", "data", "client", "require_HelixChannelFollower", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixChannelFollower", "__name", "data", "client", "require_HelixFollowedChannel", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixFollowedChannel", "__name", "data", "client", "require_HelixChannelApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "api_call_1", "common_1", "channel_external_1", "generic_external_1", "HelixUserRelation_1", "HelixRequestBatcher_1", "HelixPaginatedRequest_1", "HelixPaginatedRequestWithTotal_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixChannel_1", "HelixChannelEditor_1", "HelixChannelFollower_1", "HelixFollowedChannel_1", "HelixChannelApi", "__name", "data", "user", "userId", "result", "users", "userIds", "broadcaster", "length", "pagination", "response", "rel", "require_channelPoints_external", "__commonJSMin", "exports", "common_1", "createCustomRewardsQuery", "broadcaster", "onlyManageable", "__name", "createCustomRewardChangeQuery", "rewardId", "createCustomRewardBody", "data", "_a", "_b", "_c", "result", "createRewardRedemptionsByIdsQuery", "redemptionIds", "createRedemptionsForBroadcasterQuery", "status", "filter", "require_HelixCustomReward", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixCustomReward", "__name", "data", "client", "scale", "_a", "_b", "urlProp", "require_HelixCustomRewardRedemption", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixCustomRewardRedemption", "__name", "data", "client", "newStatus", "require_HelixChannelPointsApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "channelPoints_external_1", "generic_external_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixCustomReward_1", "HelixCustomRewardRedemption_1", "HelixChannelPointsApi", "__name", "broadcaster", "onlyManageable", "data", "rewardIds", "rewardId", "rewards", "result", "redemptionIds", "redemptionId", "redemptions", "status", "filter", "require_HelixCharityCampaignAmount", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixCharityCampaignAmount", "__name", "require_HelixCharityCampaign", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixCharityCampaignAmount_1", "HelixCharityCampaign", "__name", "data", "client", "require_HelixCharityCampaignDonation", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixCharityCampaignAmount_1", "HelixCharityCampaignDonation", "__name", "data", "client", "require_HelixCharityApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixCharityCampaign_1", "HelixCharityCampaignDonation_1", "HelixCharityApi", "__name", "broadcaster", "response", "pagination", "require_chat_external", "__commonJSMin", "exports", "common_1", "createChatSettingsUpdateBody", "settings", "__name", "createChatColorUpdateQuery", "user", "color", "createShoutoutQuery", "from", "to", "moderatorId", "require_HelixEmote", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixEmote", "__name", "scale", "themeMode", "format", "require_HelixChannelEmote", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixEmote_1", "HelixChannelEmote", "__name", "data", "client", "require_HelixChatBadgeVersion", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixChatBadgeVersion", "__name", "scale", "require_HelixChatBadgeSet", "__commonJSMin", "exports", "tslib_1", "cache_decorators_1", "common_1", "HelixChatBadgeVersion_1", "HelixChatBadgeSet", "__name", "data", "versionId", "_a", "v", "require_HelixChatChatter", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixChatChatter", "__name", "data", "client", "require_HelixChatSettings", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixChatSettings", "__name", "require_HelixEmoteFromSet", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixEmote_1", "HelixEmoteFromSet", "__name", "data", "client", "require_HelixPrivilegedChatSettings", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixChatSettings_1", "HelixPrivilegedChatSettings", "__name", "require_HelixChatApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "chat_external_1", "generic_external_1", "HelixPaginatedRequestWithTotal_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixChannelEmote_1", "HelixChatBadgeSet_1", "HelixChatChatter_1", "HelixChatSettings_1", "HelixEmote_1", "HelixEmoteFromSet_1", "HelixPrivilegedChatSettings_1", "HelixChatApi", "__name", "broadcaster", "pagination", "broadcasterId", "result", "data", "setIds", "settings", "announcement", "users", "response", "user", "color", "from", "to", "fromId", "require_clip_external", "__commonJSMin", "exports", "common_1", "createClipCreateQuery", "channel", "createAfterDelay", "__name", "createClipQuery", "params", "filterType", "ids", "startDate", "endDate", "isFeatured", "require_HelixClip", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixClip", "__name", "data", "client", "require_HelixClipApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "clip_external_1", "HelixRequestBatcher_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixClip_1", "HelixClipApi", "__name", "data", "broadcaster", "filter", "gameId", "ids", "id", "clips", "params", "channel", "createAfterDelay", "result", "require_HelixContentClassificationLabel", "__commonJSMin", "exports", "common_1", "HelixContentClassificationLabel", "__name", "require_HelixContentClassificationLabelApi", "__commonJSMin", "exports", "tslib_1", "common_1", "BaseApi_1", "HelixContentClassificationLabel_1", "HelixContentClassificationLabelApi", "__name", "locale", "data", "require_entitlement_external", "__commonJSMin", "exports", "shared_utils_1", "common_1", "createDropsEntitlementQuery", "filters", "alwaysApp", "__name", "createDropsEntitlementUpdateBody", "ids", "fulfillmentStatus", "require_HelixDropsEntitlement", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixDropsEntitlement", "__name", "data", "client", "require_HelixEntitlementApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "entitlement_external_1", "HelixRequestBatcher_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixDropsEntitlement_1", "HelixEntitlementApi", "__name", "data", "filter", "alwaysApp", "response", "ids", "id", "_a", "fulfillmentStatus", "entry", "require_eventSub_external", "__commonJSMin", "exports", "common_1", "createEventSubBroadcasterCondition", "broadcaster", "__name", "createEventSubRewardCondition", "rewardId", "createEventSubModeratorCondition", "broadcasterId", "moderatorId", "createEventSubDropEntitlementGrantCondition", "filter", "require_HelixEventSubSubscription", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixEventSubSubscription", "__name", "data", "client", "status", "require_HelixPaginatedEventSubSubscriptionsRequest", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixPaginatedRequestWithTotal_1", "HelixEventSubSubscription_1", "HelixPaginatedEventSubSubscriptionsRequest", "__name", "query", "userId", "client", "data", "_a", "require_HelixEventSubApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "eventSub_external_1", "generic_external_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixEventSubSubscription_1", "HelixPaginatedEventSubSubscriptionsRequest_1", "HelixEventSubApi", "__name", "pagination", "result", "status", "type", "user", "userId", "version", "condition", "transport", "requiredScopeSet", "canOverrideScopedUserContext", "isBatched", "usesAppAuth", "scopes", "jsonBody", "id", "sub", "broadcaster", "broadcasterId", "rewardId", "clientId", "withEmail", "filter", "cond", "subsPaginator", "require_extensions_external", "__commonJSMin", "exports", "createReleasedExtensionFilter", "extensionId", "version", "__name", "createExtensionProductBody", "data", "createExtensionTransactionQuery", "filter", "require_HelixChannelReference", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixChannelReference", "__name", "data", "client", "require_HelixExtensionBitsProduct", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixExtensionBitsProduct", "__name", "exp", "require_HelixExtensionTransaction", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixExtensionTransaction", "__name", "data", "client", "require_HelixExtensionsApi", "__commonJSMin", "exports", "tslib_1", "common_1", "extensions_external_1", "generic_external_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixChannelReference_1", "HelixExtensionBitsProduct_1", "HelixExtensionTransaction_1", "HelixExtensionsApi", "__name", "extensionId", "version", "result", "pagination", "data", "includeDisabled", "filter", "require_HelixGame", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixGame", "__name", "data", "client", "width", "height", "pagination", "require_HelixGameApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixRequestBatcher_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixGame_1", "HelixGameApi", "__name", "data", "ids", "names", "igdbIds", "id", "_a", "name", "igdbId", "pagination", "result", "filterType", "filterValues", "entry", "require_HelixGoal", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixGoal", "__name", "data", "client", "require_HelixGoalApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "BaseApi_1", "HelixGoal_1", "HelixGoalApi", "__name", "broadcaster", "data", "require_HelixHypeTrainContribution", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixHypeTrainContribution", "__name", "data", "client", "require_HelixHypeTrainEvent", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixHypeTrainContribution_1", "HelixHypeTrainEvent", "__name", "data", "client", "cont", "require_HelixHypeTrainApi", "__commonJSMin", "exports", "api_call_1", "common_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixHypeTrainEvent_1", "HelixHypeTrainApi", "__name", "broadcaster", "pagination", "result", "data", "require_moderation_external", "__commonJSMin", "exports", "common_1", "createModerationUserListQuery", "channel", "filter", "__name", "createModeratorModifyQuery", "broadcaster", "user", "createAutoModProcessBody", "msgId", "allow", "createAutoModSettingsBody", "data", "createBanUserBody", "createUpdateShieldModeStatusBody", "activate", "require_HelixAutoModSettings", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixAutoModSettings", "__name", "require_HelixAutoModStatus", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixAutoModStatus", "__name", "require_HelixBanUser", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixBanUser", "__name", "data", "expiryTimestamp", "client", "ts", "require_HelixBan", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixBanUser_1", "HelixBan", "__name", "data", "client", "require_HelixBlockedTerm", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixBlockedTerm", "__name", "require_HelixModerator", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixModerator", "__name", "data", "client", "require_HelixShieldModeStatus", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixShieldModeStatus", "__name", "data", "client", "require_HelixModerationApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "generic_external_1", "moderation_external_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixAutoModSettings_1", "HelixAutoModStatus_1", "HelixBan_1", "HelixBanUser_1", "HelixBlockedTerm_1", "HelixModerator_1", "HelixShieldModeStatus_1", "HelixModerationApi", "__name", "channel", "filter", "result", "data", "user", "userId", "ban", "mod", "broadcaster", "statusData", "msgId", "allow", "broadcasterId", "settingsData", "banData", "pagination", "text", "blockedTermData", "moderator", "id", "messageId", "activate", "require_poll_external", "__commonJSMin", "exports", "common_1", "createPollBody", "broadcaster", "data", "_a", "title", "__name", "createPollEndBody", "id", "showResult", "require_HelixPollChoice", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixPollChoice", "__name", "require_HelixPoll", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixPollChoice_1", "HelixPoll", "__name", "data", "client", "require_HelixPollApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "generic_external_1", "poll_external_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixPoll_1", "HelixPollApi", "__name", "broadcaster", "pagination", "result", "data", "ids", "id", "polls", "showResult", "require_prediction_external", "__commonJSMin", "exports", "common_1", "createPredictionBody", "broadcaster", "data", "title", "__name", "createEndPredictionBody", "id", "status", "outcomeId", "require_HelixPredictor", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixPredictor", "__name", "data", "client", "require_HelixPredictionOutcome", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixPredictor_1", "HelixPredictionOutcome", "__name", "data", "client", "_a", "_b", "require_HelixPrediction", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixPredictionOutcome_1", "HelixPrediction", "__name", "data", "client", "found", "o", "require_HelixPredictionApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "generic_external_1", "prediction_external_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixPrediction_1", "HelixPredictionApi", "__name", "broadcaster", "pagination", "result", "data", "ids", "id", "predictions", "outcomeId", "status", "require_raid_external", "__commonJSMin", "exports", "common_1", "createRaidStartQuery", "from", "to", "__name", "require_HelixRaid", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixRaid", "__name", "require_HelixRaidApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "raid_external_1", "BaseApi_1", "HelixRaid_1", "HelixRaidApi", "__name", "from", "to", "result", "require_schedule_external", "__commonJSMin", "exports", "common_1", "createScheduleQuery", "broadcaster", "filter", "_a", "__name", "createScheduleSettingsUpdateQuery", "settings", "createScheduleSegmentBody", "data", "createScheduleSegmentModifyQuery", "segmentId", "createScheduleSegmentUpdateBody", "require_HelixScheduleSegment", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixScheduleSegment", "__name", "data", "client", "v", "_a", "_b", "categoryId", "require_HelixPaginatedScheduleSegmentRequest", "__commonJSMin", "exports", "tslib_1", "common_1", "schedule_external_1", "HelixPaginatedRequest_1", "HelixScheduleSegment_1", "HelixPaginatedScheduleSegmentRequest", "__name", "broadcaster", "client", "filter", "data", "additionalOptions", "_a", "origData", "require_HelixSchedule", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixScheduleSegment_1", "HelixSchedule", "__name", "data", "client", "_a", "_b", "timestamp", "require_HelixScheduleApi", "__commonJSMin", "exports", "api_call_1", "common_1", "generic_external_1", "schedule_external_1", "HelixPagination_1", "BaseApi_1", "HelixPaginatedScheduleSegmentRequest_1", "HelixSchedule_1", "HelixScheduleSegment_1", "HelixScheduleApi", "__name", "broadcaster", "filter", "result", "ids", "_a", "_b", "data", "id", "segments", "settings", "segmentId", "require_search_external", "__commonJSMin", "exports", "createSearchChannelsQuery", "query", "filter", "_a", "__name", "require_HelixChannelSearchResult", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixChannelSearchResult", "__name", "data", "client", "require_HelixSearchApi", "__commonJSMin", "exports", "tslib_1", "common_1", "search_external_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixGame_1", "HelixChannelSearchResult_1", "HelixSearchApi", "__name", "query", "pagination", "result", "data", "filter", "require_StreamNotLiveError", "__commonJSMin", "exports", "common_1", "StreamNotLiveError", "__name", "options", "require_stream_external", "__commonJSMin", "exports", "common_1", "createStreamQuery", "filter", "__name", "createStreamMarkerBody", "broadcaster", "description", "createVideoQuery", "id", "require_HelixStream", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixStream", "__name", "data", "client", "width", "height", "require_HelixStreamMarker", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixStreamMarker", "__name", "data", "client", "require_HelixStreamMarkerWithVideo", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixStreamMarker_1", "HelixStreamMarkerWithVideo", "__name", "data", "_videoId", "client", "require_HelixStreamApi", "__commonJSMin", "exports", "HelixStreamApi_1", "tslib_1", "shared_utils_1", "api_call_1", "common_1", "StreamNotLiveError_1", "generic_external_1", "stream_external_1", "HelixRequestBatcher_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixStream_1", "HelixStreamMarker_1", "HelixStreamMarkerWithVideo_1", "HelixStreamApi", "__name", "data", "filter", "result", "users", "user", "_a", "userId", "pagination", "videoId", "broadcaster", "description", "e", "client", "video", "marker", "require_subscription_external", "__commonJSMin", "exports", "common_1", "createSubscriptionCheckQuery", "broadcaster", "user", "__name", "require_HelixUserSubscription", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixUserSubscription", "__name", "data", "client", "require_HelixSubscription", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixUserSubscription_1", "HelixSubscription", "__name", "require_HelixPaginatedSubscriptionsRequest", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "HelixPaginatedRequestWithTotal_1", "HelixSubscription_1", "HelixPaginatedSubscriptionsRequest", "__name", "broadcaster", "client", "data", "_a", "require_HelixSubscriptionApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "generic_external_1", "subscription_external_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixPaginatedSubscriptionsRequest_1", "HelixSubscription_1", "HelixUserSubscription_1", "HelixSubscriptionApi", "__name", "broadcaster", "pagination", "result", "users", "data", "user", "list", "e", "require_HelixTeam", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixTeam", "__name", "data", "client", "require_HelixTeamWithUsers", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixUserRelation_1", "HelixTeam_1", "HelixTeamWithUsers", "__name", "data", "require_HelixTeamApi", "__commonJSMin", "exports", "tslib_1", "api_call_1", "common_1", "BaseApi_1", "HelixTeam_1", "HelixTeamWithUsers_1", "HelixTeamApi", "__name", "broadcaster", "_a", "_b", "data", "id", "result", "e", "name", "require_user_external", "__commonJSMin", "exports", "common_1", "createUserBlockCreateQuery", "target", "additionalInfo", "__name", "createUserBlockDeleteQuery", "require_HelixBaseExtension", "__commonJSMin", "exports", "common_1", "HelixBaseExtension", "__name", "require_HelixInstalledExtension", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixBaseExtension_1", "HelixInstalledExtension", "__name", "slotType", "slotId", "data", "require_HelixInstalledExtensionList", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixInstalledExtension_1", "HelixInstalledExtensionList", "__name", "type", "slotId", "data", "entry", "slotData", "typeEntries", "require_HelixUserExtension", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixBaseExtension_1", "HelixUserExtension", "__name", "require_HelixUser", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixUser", "__name", "data", "client", "broadcaster", "_a", "user", "require_HelixPrivilegedUser", "__commonJSMin", "exports", "tslib_1", "common_1", "HelixUser_1", "HelixPrivilegedUser", "__name", "description", "require_HelixUserBlock", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixUserBlock", "__name", "data", "client", "require_HelixUserApi", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "api_call_1", "common_1", "generic_external_1", "user_external_1", "HelixRequestBatcher_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixInstalledExtensionList_1", "HelixUserExtension_1", "HelixPrivilegedUser_1", "HelixUser_1", "HelixUserBlock_1", "HelixUserApi", "__name", "data", "userIds", "userNames", "user", "userId", "result", "userName", "users", "withEmail", "_a", "pagination", "broadcaster", "target", "additionalInfo", "withInactive", "withDev", "lookupType", "param", "query", "userData", "require_HelixVideo", "__commonJSMin", "exports", "tslib_1", "cache_decorators_1", "shared_utils_1", "common_1", "HelixVideo", "__name", "data", "client", "width", "height", "parts", "part", "partialMatch", "num", "unit", "a", "b", "_a", "_b", "offset", "duration", "partial", "seg", "end", "segEnd", "require_HelixVideoApi", "__commonJSMin", "exports", "HelixVideoApi_1", "tslib_1", "shared_utils_1", "common_1", "HelixRequestBatcher_1", "HelixPaginatedRequest_1", "HelixPaginatedResult_1", "HelixPagination_1", "BaseApi_1", "HelixVideo_1", "HelixVideoApi", "__name", "data", "ids", "id", "videos", "user", "filter", "userId", "gameId", "broadcaster", "filterType", "filterValues", "result", "language", "period", "orderBy", "type", "require_whisper_external", "__commonJSMin", "exports", "common_1", "createWhisperQuery", "from", "to", "__name", "require_HelixWhisperApi", "__commonJSMin", "exports", "tslib_1", "common_1", "whisper_external_1", "BaseApi_1", "HelixWhisperApi", "__name", "from", "to", "message", "require_ApiReportedRequest", "__commonJSMin", "exports", "ApiReportedRequest", "__name", "_options", "_httpStatus", "_resolvedUserId", "require_BaseApiClient", "__commonJSMin", "exports", "tslib_1", "cache_decorators_1", "rate_limiter_1", "shared_utils_1", "typed_event_emitter_1", "api_call_1", "auth_1", "common_1", "retry", "HelixBitsApi_1", "HelixChannelApi_1", "HelixChannelPointsApi_1", "HelixCharityApi_1", "HelixChatApi_1", "HelixClipApi_1", "HelixContentClassificationLabelApi_1", "HelixEntitlementApi_1", "HelixEventSubApi_1", "HelixExtensionsApi_1", "HelixGameApi_1", "HelixGoalApi_1", "HelixHypeTrainApi_1", "HelixModerationApi_1", "HelixPollApi_1", "HelixPredictionApi_1", "HelixRaidApi_1", "HelixScheduleApi_1", "HelixSearchApi_1", "HelixStreamApi_1", "HelixSubscriptionApi_1", "HelixTeamApi_1", "HelixUserApi_1", "HelixVideoApi_1", "HelixWhisperApi_1", "ApiReportedRequest_1", "BaseApiClient", "__name", "config", "logger", "rateLimiter", "user", "scopes", "scope", "data", "options", "_a", "authProvider", "forceUser", "accessToken", "contextUserId", "newAccessToken", "requestContextUserId", "wasRefreshed", "authorizationType", "response", "token", "clientId", "_b", "_c", "fetchOptions", "type", "op", "promise", "resolve", "reject", "e", "result", "require_NoContextApiClient", "__commonJSMin", "exports", "tslib_1", "common_1", "BaseApiClient_1", "NoContextApiClient", "__name", "require_UserContextApiClient", "__commonJSMin", "exports", "tslib_1", "common_1", "BaseApiClient_1", "UserContextApiClient", "__name", "config", "logger", "rateLimiter", "_userId", "require_ApiClient", "__commonJSMin", "exports", "tslib_1", "detect_node_1", "logger_1", "rate_limiter_1", "api_call_1", "common_1", "ConfigError_1", "HelixRateLimiter_1", "BaseApiClient_1", "NoContextApiClient_1", "UserContextApiClient_1", "ApiClient", "__name", "config", "rateLimitLoggerOptions", "req", "_a", "options", "clientId", "accessToken", "authorizationType", "fetchOptions", "user", "runner", "ctx", "intents", "intent", "require_HelixFollow", "__commonJSMin", "exports", "tslib_1", "shared_utils_1", "common_1", "HelixFollow", "__name", "data", "client", "require_lib", "__commonJSMin", "exports", "ApiClient_1", "HelixBitsApi_1", "HelixBitsLeaderboard_1", "HelixBitsLeaderboardEntry_1", "HelixCheermoteList_1", "HelixChannelApi_1", "HelixChannel_1", "HelixChannelEditor_1", "HelixChannelFollower_1", "HelixFollowedChannel_1", "HelixChannelReference_1", "HelixChannelPointsApi_1", "HelixCustomReward_1", "HelixCustomRewardRedemption_1", "HelixCharityApi_1", "HelixCharityCampaign_1", "HelixCharityCampaignDonation_1", "HelixCharityCampaignAmount_1", "HelixChatApi_1", "HelixChatBadgeSet_1", "HelixChatBadgeVersion_1", "HelixChatSettings_1", "HelixChatChatter_1", "HelixEmote_1", "HelixChannelEmote_1", "HelixEmoteFromSet_1", "HelixPrivilegedChatSettings_1", "HelixClipApi_1", "HelixClip_1", "HelixContentClassificationLabelApi_1", "HelixContentClassificationLabel_1", "HelixEntitlementApi_1", "HelixDropsEntitlement_1", "HelixEventSubApi_1", "HelixEventSubSubscription_1", "HelixPaginatedEventSubSubscriptionsRequest_1", "HelixExtensionsApi_1", "HelixExtensionBitsProduct_1", "HelixExtensionTransaction_1", "HelixGameApi_1", "HelixGame_1", "HelixGoalApi_1", "HelixGoal_1", "HelixHypeTrainApi_1", "HelixHypeTrainContribution_1", "HelixHypeTrainEvent_1", "HelixModerationApi_1", "HelixBan_1", "HelixModerator_1", "HelixBanUser_1", "HelixBlockedTerm_1", "HelixShieldModeStatus_1", "HelixPollApi_1", "HelixPoll_1", "HelixPollChoice_1", "HelixPredictionApi_1", "HelixPrediction_1", "HelixPredictionOutcome_1", "HelixPredictor_1", "HelixRaidApi_1", "HelixRaid_1", "HelixUserRelation_1", "HelixScheduleApi_1", "HelixSchedule_1", "HelixScheduleSegment_1", "HelixPaginatedScheduleSegmentRequest_1", "HelixSearchApi_1", "HelixChannelSearchResult_1", "HelixStreamApi_1", "HelixStream_1", "HelixStreamMarker_1", "HelixStreamMarkerWithVideo_1", "HelixPaginatedSubscriptionsRequest_1", "HelixSubscriptionApi_1", "HelixSubscription_1", "HelixUserSubscription_1", "HelixTeamApi_1", "HelixTeam_1", "HelixTeamWithUsers_1", "HelixUserApi_1", "HelixUserBlock_1", "HelixFollow_1", "HelixPrivilegedUser_1", "HelixUser_1", "HelixBaseExtension_1", "HelixInstalledExtension_1", "HelixInstalledExtensionList_1", "HelixUserExtension_1", "HelixVideoApi_1", "HelixVideo_1", "HelixWhisperApi_1", "ConfigError_1", "StreamNotLiveError_1", "ApiReportedRequest_1", "HelixPaginatedRequest_1", "HelixPaginatedRequestWithTotal_1", "common_1", "require_EmoteFetcher", "__commonJSMin", "exports", "module", "BTTVEmote", "Channel", "Collection", "Constants", "FFZEmote", "SevenTVEmote", "TwitchEmote", "axios", "ApiClient", "AppTokenAuthProvider", "EmoteFetcher", "__name", "clientId", "clientSecret", "options", "authProvider", "channel_id", "format", "channel", "id", "data", "existing_emote", "emote", "endpoint", "req", "emotes", "key", "set", "rawEmotes", "e", "emotesArray", "classMap", "emoteObject", "type", "emoteClass", "require_EmoteParser", "__commonJSMin", "exports", "module", "Constants", "EmoteParser", "__name", "fetcher", "options", "text", "size", "matched", "id", "emote", "template", "link", "require_src", "__commonJSMin", "exports", "module"]
7
+ }