UNPKG

quria

Version:

A user-friendly Destiny 2 API Wrapper written with TypeScript and approved by -Axis Minds- Oryx.

1,529 lines 163 kB
import { OAuthApplicationType, ApplicationStatus, DeveloperRole, BungieMembershipType, IgnoreStatus, BungieCredentialType, ContentPropertyDataTypeEnum, ForumMediaType, ForumPostPopularity, GroupAllianceStatus, GroupType, ChatSecuritySetting, GroupHomepage, MembershipOption, GroupPostPublicity, Capabilities, HostGuidedGamesPermissionLevel, RuntimeGroupMemberType, DestinyProgressionRewardItemState, ItemState, DestinyStatAggregationType, DestinyStatCategory, DestinyProgressionScope, DestinyProgressionStepDisplayEffect, SpecialItemType, DestinyItemType, DestinyItemSubType, DestinyClass, DestinyBreakerType, DamageType, DestinySocketVisibility, SocketTypeActionType, DestinySocketCategoryStyle, TierType, BucketScope, BucketCategory, ItemLocation, EquippingItemBlockAttributes, DestinyAmmunitionType, DestinyGender, DestinyVendorProgressionType, VendorDisplayCategorySortOrder, VendorInteractionType, DestinyVendorInteractionRewardSelection, DestinyVendorReplyType, DestinyItemSortType, DestinyVendorItemRefundPolicy, DestinyGatingScope, ActivityGraphNodeHighlightType, DestinyActivityModeType, DestinyUnlockValueUIStyle, DestinyObjectiveUiStyle, DestinyObjectiveGrantStyle, DestinyActivityNavPointType, DestinyActivityModeCategory, DestinyActivityDifficultyTierType, DestinyActivitySkullDynamicUse, DestinyActivityModifierDisplayCategory, DestinyActivityModifierConnotation, DestinyActivityDifficultyId, DestinyGraphNodeState, DestinyRewardSourceCategory, DestinyPresentationNodeType, DestinyScope, DestinyPresentationDisplayStyle, DestinyPresentationScreenStyle, DestinyRecordValueStyle, DestinyRecordToastStyle, PlugUiStyles, PlugAvailabilityMode, DestinyEnergyType, SocketPlugSources, DestinyTalentNodeStepWeaponPerformances, DestinyTalentNodeStepImpactEffects, DestinyTalentNodeStepGuardianAttributes, DestinyTalentNodeStepLightAbilities, DestinyTalentNodeStepDamageTypes, ItemPerkVisibility, DestinyProgressionRewardItemAcquisitionBehavior, GroupPotentialMemberStatus, ForumRecruitmentIntensityLabel, ForumRecruitmentToneLabel, GroupDateRange, GroupSortBy, IgnoreLength, GroupApplicationResolveState, PlatformErrorCodes, ItemBindStatus, TransferStatuses, ComponentPrivacySetting, DestinyGameVersions, DestinyPresentationNodeState, DestinyRecordState, DestinyCollectibleState, DestinyPartyMemberStates, DestinyGamePrivacySetting, DestinyJoinClosedReasons, DestinyRace, DestinyMilestoneDisplayPreference, DestinyMilestoneType, DestinyActivityDifficultyTier, DestinyActivityRewardDisplayMode, EquipFailureReason, DestinyTalentNodeState, VendorItemStatus, DestinyVendorItemState, DestinySocketArrayType, DestinyStatsGroupType, PeriodType, DestinyStatsCategoryType, UnitType, AwaType, AwaUserSelection, AwaResponseReason, TrendingEntryType, FireteamPlatform, FireteamPlatformInviteResult, PresenceStatus, PresenceOnlineStateFlags, FriendRelationshipState, PlatformFriendType, DestinyActivityTreeType, DestinyActivityTreeChildSortMode, FireteamFinderCodeOptionType, FireteamFinderOptionAvailability, FireteamFinderOptionVisibility, FireteamFinderOptionControlType, FireteamFinderOptionSearchFilterType, FireteamFinderOptionDisplayFormat, FireteamFinderOptionValueProviderType, FireteamFinderOptionValueFlags, FireteamFinderLabelFieldType, OptInFlags, GlobalAlertLevel, GlobalAlertType } from "./enum"; export interface ApiUsage { apiCalls: Series[]; throttledRequests: Series[]; } export interface Series { datapoints: Datapoint[]; target: string; } export interface Datapoint { time: string; count: number | null; } export interface Application { applicationType: OAuthApplicationType; applicationId: number; name: string; redirectUrl: string; link: string; scope: string; origin: string; status: ApplicationStatus; creationDate: string; statusChanged: string; firstPublished: string; team: ApplicationDeveloper[]; overrideAuthorizeViewName: string; } export interface ApplicationDeveloper { role: DeveloperRole; apiEulaVersion: number; user: UserInfoCard; } export interface UserMembership { membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface CrossSaveUserMembership { crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface UserInfoCard { supplementalDisplayName: string; iconPath: string; crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface GeneralUser { membershipId: string; uniqueName: string; normalizedName: string; displayName: string; profilePicture: number; profileTheme: number; userTitle: number; successMessageFlags: string; isDeleted: boolean; about: string; firstAccess: string | null; lastUpdate: string | null; legacyPortalUID: string | null; context: UserToUserContext; psnDisplayName: string; xboxDisplayName: string; fbDisplayName: string; showActivity: boolean | null; locale: string; localeInheritDefault: boolean; lastBanReportId: string | null; showGroupMessaging: boolean; profilePicturePath: string; profilePictureWidePath: string; profileThemeName: string; userTitleDisplay: string; statusText: string; statusDate: string; profileBanExpire: string | null; blizzardDisplayName: string; steamDisplayName: string; stadiaDisplayName: string; twitchDisplayName: string; cachedBungieGlobalDisplayName: string; cachedBungieGlobalDisplayNameCode: number | null; egsDisplayName: string; } export interface UserToUserContext { isFollowing: boolean; ignoreStatus: IgnoreResponse; globalIgnoreEndDate: string | null; } export interface GetCredentialTypesForAccountResponse { credentialType: BungieCredentialType; credentialDisplayName: string; isPublic: boolean; credentialAsString: string; } export interface UserMembershipData { destinyMemberships: GroupUserInfoCard[]; primaryMembershipId: string | null; marathonMembershipId: string | null; bungieNetUser: GeneralUser; } export interface HardLinkedUserMembership { membershipType: BungieMembershipType; membershipId: string; CrossSaveOverriddenType: BungieMembershipType; CrossSaveOverriddenMembershipId: string | null; } export interface UserSearchResponse { searchResults: UserSearchResponseDetail[]; page: number; hasMore: boolean; } export interface UserSearchResponseDetail { bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; bungieNetMembershipId: string | null; destinyMemberships: UserInfoCard[]; } export interface UserSearchPrefixRequest { displayNamePrefix: string; } export interface ExactSearchRequest { displayName: string; displayNameCode: number; } export interface EmailSettings { optInDefinitions: Record<string, EmailOptInDefinition>; subscriptionDefinitions: Record<string, EmailSubscriptionDefinition>; views: Record<string, EmailViewDefinition>; } export interface EmailOptInDefinition { name: string; value: OptInFlags; setByDefault: boolean; dependentSubscriptions: EmailSubscriptionDefinition[]; } export interface EmailSubscriptionDefinition { name: string; localization: Record<string, EMailSettingSubscriptionLocalization>; value: string; } export interface EMailSettingLocalization { title: string; description: string; } export interface EMailSettingSubscriptionLocalization { unknownUserDescription: string; registeredUserDescription: string; unregisteredUserDescription: string; unknownUserActionText: string; knownUserActionText: string; title: string; description: string; } export interface EmailViewDefinition { name: string; viewSettings: EmailViewDefinitionSetting[]; } export interface EmailViewDefinitionSetting { name: string; localization: Record<string, EMailSettingLocalization>; setByDefault: boolean; optInAggregateValue: OptInFlags; subscriptions: EmailSubscriptionDefinition[]; } export interface IgnoreResponse { isIgnored: boolean; ignoreFlags: IgnoreStatus; } export interface UserTheme { userThemeId: number; userThemeName: string; userThemeDescription: string; } export interface GroupTheme { name: string; folder: string; description: string; } export interface ClanBannerSource { } export interface ClanBannerDecal { identifier: string; foregroundPath: string; backgroundPath: string; } export interface GroupUserInfoCard { LastSeenDisplayName: string; LastSeenDisplayNameType: BungieMembershipType; supplementalDisplayName: string; iconPath: string; crossSaveOverride: BungieMembershipType; applicableMembershipTypes: BungieMembershipType[]; isPublic: boolean; membershipType: BungieMembershipType; membershipId: string; displayName: string; bungieGlobalDisplayName: string; bungieGlobalDisplayNameCode: number | null; } export interface GroupResponse { detail: GroupV2; founder: GroupMember; alliedIds: string[]; parentGroup: GroupV2; allianceStatus: GroupAllianceStatus; groupJoinInviteCount: number; currentUserMembershipsInactiveForDestiny: boolean; currentUserMemberMap: Record<string, GroupMember>; currentUserPotentialMemberMap: Record<string, GroupPotentialMember>; } export interface GroupV2 { groupId: string; name: string; groupType: GroupType; membershipIdCreated: string; creationDate: string; modificationDate: string; about: string; tags: string[]; memberCount: number; isPublic: boolean; isPublicTopicAdminOnly: boolean; motto: string; allowChat: boolean; isDefaultPostPublic: boolean; chatSecurity: ChatSecuritySetting; locale: string; avatarImageIndex: number; homepage: GroupHomepage; membershipOption: MembershipOption; defaultPublicity: GroupPostPublicity; theme: string; bannerPath: string; avatarPath: string; conversationId: string; enableInvitationMessagingForAdmins: boolean; banExpireDate: string | null; features: GroupFeatures; remoteGroupId: string | null; clanInfo: GroupV2ClanInfoAndInvestment; } export interface GroupFeatures { maximumMembers: number; maximumMembershipsOfGroupType: number; capabilities: Capabilities; membershipTypes: BungieMembershipType[]; invitePermissionOverride: boolean; updateCulturePermissionOverride: boolean; hostGuidedGamePermissionOverride: HostGuidedGamesPermissionLevel; updateBannerPermissionOverride: boolean; joinLevel: RuntimeGroupMemberType; } export interface GroupV2ClanInfo { clanCallsign: string; clanBannerData: ClanBanner; } export interface ClanBanner { decalId: number; decalColorId: number; decalBackgroundColorId: number; gonfalonId: number; gonfalonColorId: number; gonfalonDetailId: number; gonfalonDetailColorId: number; } export interface GroupV2ClanInfoAndInvestment { d2ClanProgressions: Record<string, DestinyProgression>; clanCallsign: string; clanBannerData: ClanBanner; } export interface GroupUserBase { groupId: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; joinDate: string; } export interface GroupMember { memberType: RuntimeGroupMemberType; isOnline: boolean; lastOnlineStatusChange: string; groupId: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; joinDate: string; } export interface GroupPotentialMember { potentialStatus: GroupPotentialMemberStatus; groupId: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; joinDate: string; } export interface GroupV2Card { groupId: string; name: string; groupType: GroupType; creationDate: string; about: string; motto: string; memberCount: number; locale: string; membershipOption: MembershipOption; capabilities: Capabilities; remoteGroupId: string | null; clanInfo: GroupV2ClanInfo; avatarPath: string; theme: string; } export interface GroupSearchResponse { results: GroupV2Card[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GroupQuery { name: string; groupType: GroupType; creationDate: GroupDateRange; sortBy: GroupSortBy; groupMemberCountFilter: number | null; localeFilter: string; tagText: string; itemsPerPage: number; currentPage: number; requestContinuationToken: string; } export interface GroupNameSearchRequest { groupName: string; groupType: GroupType; } export interface GroupOptionalConversation { groupId: string; conversationId: string; chatEnabled: boolean; chatName: string; chatSecurity: ChatSecuritySetting; } export interface GroupEditAction { name: string; about: string; motto: string; theme: string; avatarImageIndex: number | null; tags: string; isPublic: boolean | null; membershipOption: number | null; isPublicTopicAdminOnly: boolean | null; allowChat: boolean | null; chatSecurity: number | null; callsign: string; locale: string; homepage: number | null; enableInvitationMessagingForAdmins: boolean | null; defaultPublicity: number | null; } export interface GroupOptionsEditAction { InvitePermissionOverride: boolean | null; UpdateCulturePermissionOverride: boolean | null; HostGuidedGamePermissionOverride: number | null; UpdateBannerPermissionOverride: boolean | null; JoinLevel: number | null; } export interface GroupOptionalConversationAddRequest { chatName: string; chatSecurity: ChatSecuritySetting; } export interface GroupOptionalConversationEditRequest { chatEnabled: boolean | null; chatName: string; chatSecurity: number | null; } export interface GroupMemberLeaveResult { group: GroupV2; groupDeleted: boolean; } export interface GroupBanRequest { comment: string; length: IgnoreLength; } export interface GroupBan { groupId: string; lastModifiedBy: UserInfoCard; createdBy: UserInfoCard; dateBanned: string; dateExpires: string; comment: string; bungieNetUserInfo: UserInfoCard; destinyUserInfo: GroupUserInfoCard; } export interface GroupEditHistory { groupId: string; name: string; nameEditors: string | null; about: string; aboutEditors: string | null; motto: string; mottoEditors: string | null; clanCallsign: string; clanCallsignEditors: string | null; editDate: string | null; groupEditors: UserInfoCard[]; } export interface GroupMemberApplication { groupId: string; creationDate: string; resolveState: GroupApplicationResolveState; resolveDate: string | null; resolvedByMembershipId: string | null; requestMessage: string; resolveMessage: string; destinyUserInfo: GroupUserInfoCard; bungieNetUserInfo: UserInfoCard; } export interface GroupApplicationRequest { message: string; } export interface GroupApplicationListRequest { memberships: UserMembership[]; message: string; } export interface GroupMembershipBase { group: GroupV2; } export interface GroupMembership { member: GroupMember; group: GroupV2; } export interface GroupMembershipSearchResponse { results: GroupMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GetGroupsForMemberResponse { areAllMembershipsInactive: Record<string, boolean>; results: GroupMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GroupPotentialMembership { member: GroupPotentialMember; group: GroupV2; } export interface GroupPotentialMembershipSearchResponse { results: GroupPotentialMembership[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface GroupApplicationResponse { resolution: GroupApplicationResolveState; } export interface ContentTypeDescription { cType: string; name: string; contentDescription: string; previewImage: string; priority: number; reminder: string; properties: ContentTypeProperty[]; tagMetadata: TagMetadataDefinition[]; tagMetadataItems: Record<string, TagMetadataItem>; usageExamples: string[]; showInContentEditor: boolean; typeOf: string; bindIdentifierToProperty: string; boundRegex: string; forceIdentifierBinding: boolean; allowComments: boolean; autoEnglishPropertyFallback: boolean; bulkUploadable: boolean; previews: ContentPreview[]; suppressCmsPath: boolean; propertySections: ContentTypePropertySection[]; } export interface ContentTypeProperty { name: string; rootPropertyName: string; readableName: string; value: string; propertyDescription: string; localizable: boolean; fallback: boolean; enabled: boolean; order: number; visible: boolean; isTitle: boolean; required: boolean; maxLength: number; maxByteLength: number; maxFileSize: number; regexp: string; validateAs: string; rssAttribute: string; visibleDependency: string; visibleOn: string; datatype: ContentPropertyDataTypeEnum; attributes: Record<string, string>; childProperties: ContentTypeProperty[]; contentTypeAllowed: string; bindToProperty: string; boundRegex: string; representationSelection: Record<string, string>; defaultValues: ContentTypeDefaultValue[]; isExternalAllowed: boolean; propertySection: string; weight: number; entitytype: string; isCombo: boolean; suppressProperty: boolean; legalContentTypes: string[]; representationValidationString: string; minWidth: number; maxWidth: number; minHeight: number; maxHeight: number; isVideo: boolean; isImage: boolean; } export interface ContentTypeDefaultValue { whenClause: string; whenValue: string; defaultValue: string; } export interface TagMetadataDefinition { description: string; order: number; items: TagMetadataItem[]; datatype: string; name: string; isRequired: boolean; } export interface TagMetadataItem { description: string; tagText: string; groups: string[]; isDefault: boolean; name: string; } export interface ContentPreview { name: string; path: string; itemInSet: boolean; setTag: string; setNesting: number; useSetId: number; } export interface ContentTypePropertySection { name: string; readableName: string; collapsed: boolean; } export interface ContentItemPublicContract { contentId: string; cType: string; cmsPath: string; creationDate: string; modifyDate: string; allowComments: boolean; hasAgeGate: boolean; minimumAge: number; ratingImagePath: string; author: GeneralUser; autoEnglishPropertyFallback: boolean; properties: Record<string, object>; representations: ContentRepresentation[]; tags: string[]; commentSummary: CommentSummary; } export interface ContentRepresentation { name: string; path: string; validationString: string; } export interface CommentSummary { topicId: string; commentCount: number; } export interface NewsArticleRssResponse { CurrentPaginationToken: number; NextPaginationToken: number | null; ResultCountThisPage: number; NewsArticles: NewsArticleRssItem[]; CategoryFilter: string; PagerAction: string; } export interface NewsArticleRssItem { Title: string; Link: string; PubDate: string; UniqueIdentifier: string; Description: string; HtmlContent: string; ImagePath: string; OptionalMobileImagePath: string; } export interface SearchResult { totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface PagedQuery { itemsPerPage: number; currentPage: number; requestContinuationToken: string; } export interface SearchResultOfContentItemPublicContract { results: ContentItemPublicContract[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface PostResponse { lastReplyTimestamp: string; IsPinned: boolean; urlMediaType: ForumMediaType; thumbnail: string; popularity: ForumPostPopularity; isActive: boolean; isAnnouncement: boolean; userRating: number; userHasRated: boolean; userHasMutedPost: boolean; latestReplyPostId: string; latestReplyAuthorId: string; ignoreStatus: IgnoreResponse; locale: string; } export interface PostSearchResponse { relatedPosts: PostResponse[]; authors: GeneralUser[]; groups: GroupResponse[]; searchedTags: TagResponse[]; polls: PollResponse[]; recruitmentDetails: ForumRecruitmentDetail[]; availablePages: number | null; results: PostResponse[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface PollResponse { topicId: string; results: PollResult[]; totalVotes: number; } export interface PollResult { answerText: string; answerSlot: number; lastVoteDate: string; votes: number; requestingUserVoted: boolean; } export interface ForumRecruitmentDetail { topicId: string; microphoneRequired: boolean; intensity: ForumRecruitmentIntensityLabel; tone: ForumRecruitmentToneLabel; approved: boolean; conversationId: string | null; playerSlotsTotal: number; playerSlotsRemaining: number; Fireteam: GeneralUser[]; kickedPlayerIds: string[]; } export interface SearchResultOfPostResponse { results: PostResponse[]; totalResults: number; hasMore: boolean; query: PagedQuery; replacementContinuationToken: string; useTotalResults: boolean; } export interface DestinyProgression { progressionHash: number; dailyProgress: number; dailyLimit: number; weeklyProgress: number; weeklyLimit: number; currentProgress: number; level: number; levelCap: number; stepIndex: number; progressToNextLevel: number; nextLevelAt: number; currentResetCount: number | null; seasonResets: DestinyProgressionResetEntry[]; rewardItemStates: DestinyProgressionRewardItemState[]; rewardItemSocketOverrideStates: Record<string, DestinyProgressionRewardItemSocketOverrideState>; } export interface DestinyProgressionResetEntry { season: number; resets: number; } export interface DestinyProgressionRewardItemSocketOverrideState { rewardItemStats: Record<string, DestinyStat>; itemState: ItemState; } export interface DestinyStat { statHash: number; value: number; } export interface DestinyDefinition { hash: number; index: number; redacted: boolean; } export interface DestinyStatDefinition { displayProperties: DestinyDisplayPropertiesDefinition; aggregationType: DestinyStatAggregationType; hasComputedBlock: boolean; statCategory: DestinyStatCategory; hash: number; index: number; redacted: boolean; } export interface DestinyDisplayPropertiesDefinition { description: string; name: string; icon: string; iconSequences: DestinyIconSequenceDefinition[]; highResIcon: string; hasIcon: boolean; } export interface DestinyIconSequenceDefinition { frames: string[]; } export interface DestinyProgressionDefinition { displayProperties: DestinyProgressionDisplayPropertiesDefinition; scope: DestinyProgressionScope; repeatLastStep: boolean; source: string; steps: DestinyProgressionStepDefinition[]; visible: boolean; factionHash: number | null; color: DestinyColor; rankIcon: string; rewardItems: DestinyProgressionRewardItemQuantity[]; hash: number; index: number; redacted: boolean; } export interface DestinyProgressionDisplayPropertiesDefinition { displayUnitsName: string; description: string; name: string; icon: string; iconSequences: DestinyIconSequenceDefinition[]; highResIcon: string; hasIcon: boolean; } export interface DestinyProgressionStepDefinition { stepName: string; displayEffectType: DestinyProgressionStepDisplayEffect; progressTotal: number; rewardItems: DestinyItemQuantity[]; icon: string; } export interface DestinyItemQuantity { itemHash: number; itemInstanceId: string | null; quantity: number; hasConditionalVisibility: boolean; } export interface DestinyInventoryItemDefinition { displayProperties: DestinyDisplayPropertiesDefinition; tooltipNotifications: DestinyItemTooltipNotification[]; collectibleHash: number | null; iconWatermark: string; iconWatermarkShelved: string; iconWatermarkFeatured: string; secondaryIcon: string; secondaryOverlay: string; secondarySpecial: string; backgroundColor: DestinyColor; isFeaturedItem: boolean; isHolofoil: boolean; isAdept: boolean; screenshot: string; itemTypeDisplayName: string; flavorText: string; uiItemDisplayStyle: string; itemTypeAndTierDisplayName: string; displaySource: string; tooltipStyle: string; action: DestinyItemActionBlockDefinition; crafting: DestinyItemCraftingBlockDefinition; inventory: DestinyItemInventoryBlockDefinition; setData: DestinyItemSetBlockDefinition; stats: DestinyItemStatBlockDefinition; emblemObjectiveHash: number | null; equippingBlock: DestinyEquippingBlockDefinition; translationBlock: DestinyItemTranslationBlockDefinition; preview: DestinyItemPreviewBlockDefinition; quality: DestinyItemQualityBlockDefinition; value: DestinyItemValueBlockDefinition; sourceData: DestinyItemSourceBlockDefinition; objectives: DestinyItemObjectiveBlockDefinition; metrics: DestinyItemMetricBlockDefinition; plug: DestinyItemPlugDefinition; gearset: DestinyItemGearsetBlockDefinition; sack: DestinyItemSackBlockDefinition; sockets: DestinyItemSocketBlockDefinition; summary: DestinyItemSummaryBlockDefinition; talentGrid: DestinyItemTalentGridBlockDefinition; investmentStats: DestinyItemInvestmentStatDefinition[]; perks: DestinyItemPerkEntryDefinition[]; loreHash: number | null; summaryItemHash: number | null; animations: DestinyAnimationReference[]; allowActions: boolean; links: HyperlinkReference[]; doesPostmasterPullHaveSideEffects: boolean; nonTransferrable: boolean; itemCategoryHashes: number[]; specialItemType: SpecialItemType; itemType: DestinyItemType; itemSubType: DestinyItemSubType; classType: DestinyClass; breakerType: DestinyBreakerType; breakerTypeHash: number | null; equippable: boolean; damageTypeHashes: number[]; damageTypes: DamageType[]; defaultDamageType: DamageType; defaultDamageTypeHash: number | null; seasonHash: number | null; isWrapper: boolean; traitIds: string[]; traitHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyItemTooltipNotification { displayString: string; displayStyle: string; } export interface DestinyColor { red: string; green: string; blue: string; alpha: string; } export interface DestinyItemActionBlockDefinition { verbName: string; verbDescription: string; isPositive: boolean; overlayScreenName: string; overlayIcon: string; requiredCooldownSeconds: number; requiredItems: DestinyItemActionRequiredItemDefinition[]; progressionRewards: DestinyProgressionRewardDefinition[]; actionTypeLabel: string; requiredLocation: string; requiredCooldownHash: number; deleteOnAction: boolean; consumeEntireStack: boolean; useOnAcquire: boolean; } export interface DestinyItemActionRequiredItemDefinition { count: number; itemHash: number; deleteOnAction: boolean; } export interface DestinyProgressionRewardDefinition { progressionMappingHash: number; amount: number; applyThrottles: boolean; } export interface DestinyProgressionMappingDefinition { displayProperties: DestinyDisplayPropertiesDefinition; displayUnits: string; hash: number; index: number; redacted: boolean; } export interface DestinyItemCraftingBlockDefinition { outputItemHash: number; requiredSocketTypeHashes: number[]; failedRequirementStrings: string[]; baseMaterialRequirements: number | null; bonusPlugs: DestinyItemCraftingBlockBonusPlugDefinition[]; } export interface DestinyItemCraftingBlockBonusPlugDefinition { socketTypeHash: number; plugItemHash: number; } export interface DestinySocketTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; insertAction: DestinyInsertPlugActionDefinition; plugWhitelist: DestinyPlugWhitelistEntryDefinition[]; socketCategoryHash: number; visibility: DestinySocketVisibility; alwaysRandomizeSockets: boolean; isPreviewEnabled: boolean; hideDuplicateReusablePlugs: boolean; overridesUiAppearance: boolean; avoidDuplicatesOnInitialization: boolean; currencyScalars: DestinySocketTypeScalarMaterialRequirementEntry[]; hash: number; index: number; redacted: boolean; } export interface DestinyInsertPlugActionDefinition { actionExecuteSeconds: number; actionType: SocketTypeActionType; } export interface DestinyPlugWhitelistEntryDefinition { categoryHash: number; categoryIdentifier: string; reinitializationPossiblePlugHashes: number[]; } export interface DestinySocketTypeScalarMaterialRequirementEntry { currencyItemHash: number; scalarValue: number; } export interface DestinySocketCategoryDefinition { displayProperties: DestinyDisplayPropertiesDefinition; uiCategoryStyle: number; categoryStyle: DestinySocketCategoryStyle; hash: number; index: number; redacted: boolean; } export interface DestinyMaterialRequirementSetDefinition { materials: DestinyMaterialRequirement[]; hash: number; index: number; redacted: boolean; } export interface DestinyMaterialRequirement { itemHash: number; deleteOnAction: boolean; count: number; countIsConstant: boolean; omitFromRequirements: boolean; hasVirtualStackSize: boolean; } export interface DestinyItemInventoryBlockDefinition { stackUniqueLabel: string; maxStackSize: number; bucketTypeHash: number; recoveryBucketTypeHash: number; tierTypeHash: number; isInstanceItem: boolean; tierTypeName: string; tierType: TierType; expirationTooltip: string; expiredInActivityMessage: string; expiredInOrbitMessage: string; suppressExpirationWhenObjectivesComplete: boolean; recipeItemHash: number | null; } export interface DestinyInventoryBucketDefinition { displayProperties: DestinyDisplayPropertiesDefinition; scope: BucketScope; category: BucketCategory; bucketOrder: number; itemCount: number; location: ItemLocation; hasTransferDestination: boolean; enabled: boolean; fifo: boolean; hash: number; index: number; redacted: boolean; } export interface DestinyItemTierTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; infusionProcess: DestinyItemTierTypeInfusionBlock; hash: number; index: number; redacted: boolean; } export interface DestinyItemTierTypeInfusionBlock { baseQualityTransferRatio: number; minimumQualityIncrement: number; } export interface DestinyItemSetBlockDefinition { itemList: DestinyItemSetBlockEntryDefinition[]; requireOrderedSetItemAdd: boolean; setIsFeatured: boolean; setType: string; questLineName: string; questLineDescription: string; questStepSummary: string; } export interface DestinyItemSetBlockEntryDefinition { trackingValue: number; itemHash: number; } export interface DestinyItemStatBlockDefinition { disablePrimaryStatDisplay: boolean; statGroupHash: number | null; stats: Record<string, DestinyInventoryItemStatDefinition>; hasDisplayableStats: boolean; primaryBaseStatHash: number; } export interface DestinyInventoryItemStatDefinition { statHash: number; value: number; minimum: number; maximum: number; displayMaximum: number | null; } export interface DestinyStatGroupDefinition { maximumValue: number; uiPosition: number; scaledStats: DestinyStatDisplayDefinition[]; overrides: Record<string, DestinyStatOverrideDefinition>; hash: number; index: number; redacted: boolean; } export interface DestinyStatDisplayDefinition { statHash: number; maximumValue: number; displayAsNumeric: boolean; displayInterpolation: InterpolationPoint[]; } export interface DestinyStatOverrideDefinition { statHash: number; displayProperties: DestinyDisplayPropertiesDefinition; } export interface DestinyEquippingBlockDefinition { gearsetItemHash: number | null; uniqueLabel: string; uniqueLabelHash: number; equipmentSlotTypeHash: number; attributes: EquippingItemBlockAttributes; ammoType: DestinyAmmunitionType; displayStrings: string[]; equipableItemSetHash: number | null; } export interface DestinyEquipmentSlotDefinition { displayProperties: DestinyDisplayPropertiesDefinition; equipmentCategoryHash: number; bucketTypeHash: number; applyCustomArtDyes: boolean; artDyeChannels: DestinyArtDyeReference[]; hash: number; index: number; redacted: boolean; } export interface DestinyArtDyeReference { artDyeChannelHash: number; } export interface DestinyEquipableItemSetDefinition { displayProperties: DestinyDisplayPropertiesDefinition; setItems: number[]; setPerks: DestinyItemSetPerkDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyItemSetPerkDefinition { requiredSetCount: number; sandboxPerkHash: number; } export interface DestinySandboxPerkDefinition { displayProperties: DestinyDisplayPropertiesDefinition; perkIdentifier: string; isDisplayable: boolean; damageType: DamageType; damageTypeHash: number | null; hash: number; index: number; redacted: boolean; } export interface DestinyDamageTypeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; transparentIconPath: string; showIcon: boolean; enumValue: DamageType; color: DestinyColor; hash: number; index: number; redacted: boolean; } export interface DestinyItemTranslationBlockDefinition { weaponPatternIdentifier: string; weaponPatternHash: number; defaultDyes: DyeReference[]; lockedDyes: DyeReference[]; customDyes: DyeReference[]; arrangements: DestinyGearArtArrangementReference[]; hasGeometry: boolean; } export interface DyeReference { channelHash: number; dyeHash: number; } export interface DestinyGearArtArrangementReference { classHash: number; artArrangementHash: number; } export interface DestinyClassDefinition { classType: DestinyClass; displayProperties: DestinyDisplayPropertiesDefinition; genderedClassNames: Record<string, string>; genderedClassNamesByGenderHash: Record<string, string>; mentorVendorHash: number | null; hash: number; index: number; redacted: boolean; } export interface DestinyGenderDefinition { genderType: DestinyGender; displayProperties: DestinyDisplayPropertiesDefinition; hash: number; index: number; redacted: boolean; } export interface DestinyVendorDefinition { displayProperties: DestinyVendorDisplayPropertiesDefinition; vendorProgressionType: DestinyVendorProgressionType; buyString: string; sellString: string; displayItemHash: number; inhibitBuying: boolean; inhibitSelling: boolean; factionHash: number; resetIntervalMinutes: number; resetOffsetMinutes: number; failureStrings: string[]; unlockRanges: DateRange[]; vendorIdentifier: string; vendorPortrait: string; vendorBanner: string; enabled: boolean; visible: boolean; vendorSubcategoryIdentifier: string; consolidateCategories: boolean; actions: DestinyVendorActionDefinition[]; categories: DestinyVendorCategoryEntryDefinition[]; originalCategories: DestinyVendorCategoryEntryDefinition[]; displayCategories: DestinyDisplayCategoryDefinition[]; interactions: DestinyVendorInteractionDefinition[]; inventoryFlyouts: DestinyVendorInventoryFlyoutDefinition[]; itemList: DestinyVendorItemDefinition[]; services: DestinyVendorServiceDefinition[]; acceptedItems: DestinyVendorAcceptedItemDefinition[]; returnWithVendorRequest: boolean; locations: DestinyVendorLocationDefinition[]; groups: DestinyVendorGroupReference[]; ignoreSaleItemHashes: number[]; hash: number; index: number; redacted: boolean; } export interface DestinyVendorDisplayPropertiesDefinition { largeIcon: string; subtitle: string; originalIcon: string; requirementsDisplay: DestinyVendorRequirementDisplayEntryDefinition[]; smallTransparentIcon: string; mapIcon: string; largeTransparentIcon: string; description: string; name: string; icon: string; iconSequences: DestinyIconSequenceDefinition[]; highResIcon: string; hasIcon: boolean; } export interface DestinyVendorRequirementDisplayEntryDefinition { icon: string; name: string; source: string; type: string; } export interface DestinyVendorActionDefinition { description: string; executeSeconds: number; icon: string; name: string; verb: string; isPositive: boolean; actionId: string; actionHash: number; autoPerformAction: boolean; } export interface DestinyVendorCategoryEntryDefinition { categoryIndex: number; sortValue: number; categoryHash: number; quantityAvailable: number; showUnavailableItems: boolean; hideIfNoCurrency: boolean; hideFromRegularPurchase: boolean; buyStringOverride: string; disabledDescription: string; displayTitle: string; overlay: DestinyVendorCategoryOverlayDefinition; vendorItemIndexes: number[]; isPreview: boolean; isDisplayOnly: boolean; resetIntervalMinutesOverride: number; resetOffsetMinutesOverride: number; } export interface DestinyVendorCategoryOverlayDefinition { choiceDescription: string; description: string; icon: string; title: string; currencyItemHash: number | null; } export interface DestinyDisplayCategoryDefinition { index: number; identifier: string; displayCategoryHash: number; displayProperties: DestinyDisplayPropertiesDefinition; displayInBanner: boolean; progressionHash: number | null; sortOrder: VendorDisplayCategorySortOrder; displayStyleHash: number | null; displayStyleIdentifier: string; } export interface DestinyVendorInteractionDefinition { interactionIndex: number; replies: DestinyVendorInteractionReplyDefinition[]; vendorCategoryIndex: number; questlineItemHash: number; sackInteractionList: DestinyVendorInteractionSackEntryDefinition[]; uiInteractionType: number; interactionType: VendorInteractionType; rewardBlockLabel: string; rewardVendorCategoryIndex: number; flavorLineOne: string; flavorLineTwo: string; headerDisplayProperties: DestinyDisplayPropertiesDefinition; instructions: string; } export interface DestinyVendorInteractionReplyDefinition { itemRewardsSelection: DestinyVendorInteractionRewardSelection; reply: string; replyType: DestinyVendorReplyType; } export interface DestinyVendorInteractionSackEntryDefinition { sackType: number; } export interface DestinyVendorInventoryFlyoutDefinition { lockedDescription: string; displayProperties: DestinyDisplayPropertiesDefinition; buckets: DestinyVendorInventoryFlyoutBucketDefinition[]; flyoutId: number; suppressNewness: boolean; equipmentSlotHash: number | null; } export interface DestinyVendorInventoryFlyoutBucketDefinition { collapsible: boolean; inventoryBucketHash: number; sortItemsBy: DestinyItemSortType; } export interface DestinyVendorItemDefinition { vendorItemIndex: number; itemHash: number; quantity: number; failureIndexes: number[]; currencies: DestinyVendorItemQuantity[]; refundPolicy: DestinyVendorItemRefundPolicy; refundTimeLimit: number; creationLevels: DestinyItemCreationEntryLevelDefinition[]; displayCategoryIndex: number; categoryIndex: number; originalCategoryIndex: number; minimumLevel: number; maximumLevel: number; action: DestinyVendorSaleItemActionBlockDefinition; displayCategory: string; inventoryBucketHash: number; visibilityScope: DestinyGatingScope; purchasableScope: DestinyGatingScope; exclusivity: BungieMembershipType; isOffer: boolean | null; isCrm: boolean | null; sortValue: number; expirationTooltip: string; redirectToSaleIndexes: number[]; socketOverrides: DestinyVendorItemSocketOverride[]; unpurchasable: boolean | null; } export interface DestinyVendorItemQuantity { itemHash: number; itemInstanceId: string | null; quantity: number; hasConditionalVisibility: boolean; } export interface DestinyItemCreationEntryLevelDefinition { level: number; } export interface DestinyVendorSaleItemActionBlockDefinition { executeSeconds: number; isPositive: boolean; } export interface DestinyVendorItemSocketOverride { singleItemHash: number | null; randomizedOptionsCount: number; socketTypeHash: number; } export interface DestinyVendorServiceDefinition { name: string; } export interface DestinyVendorAcceptedItemDefinition { acceptedInventoryBucketHash: number; destinationInventoryBucketHash: number; } export interface DestinyVendorLocationDefinition { destinationHash: number; backgroundImagePath: string; } export interface DestinyDestinationDefinition { displayProperties: DestinyDisplayPropertiesDefinition; placeHash: number; defaultFreeroamActivityHash: number; activityGraphEntries: DestinyActivityGraphListEntryDefinition[]; bubbleSettings: DestinyDestinationBubbleSettingDefinition[]; bubbles: DestinyBubbleDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityGraphListEntryDefinition { activityGraphHash: number; } export interface DestinyActivityGraphDefinition { nodes: DestinyActivityGraphNodeDefinition[]; artElements: DestinyActivityGraphArtElementDefinition[]; connections: DestinyActivityGraphConnectionDefinition[]; displayObjectives: DestinyActivityGraphDisplayObjectiveDefinition[]; displayProgressions: DestinyActivityGraphDisplayProgressionDefinition[]; linkedGraphs: DestinyLinkedGraphDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityGraphNodeDefinition { nodeId: number; overrideDisplay: DestinyDisplayPropertiesDefinition; position: DestinyPositionDefinition; featuringStates: DestinyActivityGraphNodeFeaturingStateDefinition[]; activities: DestinyActivityGraphNodeActivityDefinition[]; states: DestinyActivityGraphNodeStateEntry[]; } export interface DestinyPositionDefinition { x: number; y: number; z: number; } export interface DestinyActivityGraphNodeFeaturingStateDefinition { highlightType: ActivityGraphNodeHighlightType; } export interface DestinyActivityGraphNodeActivityDefinition { nodeActivityId: number; activityHash: number; } export interface DestinyActivityDefinition { displayProperties: DestinyDisplayPropertiesDefinition; originalDisplayProperties: DestinyDisplayPropertiesDefinition; selectionScreenDisplayProperties: DestinyDisplayPropertiesDefinition; releaseIcon: string; releaseTime: number; activityLightLevel: number; destinationHash: number; placeHash: number; activityTypeHash: number; tier: number; pgcrImage: string; rewards: DestinyActivityRewardDefinition[]; modifiers: DestinyActivityModifierReferenceDefinition[]; isPlaylist: boolean; challenges: DestinyActivityChallengeDefinition[]; optionalUnlockStrings: DestinyActivityUnlockStringDefinition[]; activityFamilyHashes: number[]; traitHashes: number[]; requirements: DestinyActivityRequirementsBlock; difficultyTierCollectionHash: number | null; selectableSkullCollectionHashes: number[]; playlistItems: DestinyActivityPlaylistItemDefinition[]; activityGraphList: DestinyActivityGraphListEntryDefinition[]; matchmaking: DestinyActivityMatchmakingBlockDefinition; guidedGame: DestinyActivityGuidedBlockDefinition; directActivityModeHash: number | null; directActivityModeType: number | null; loadouts: DestinyActivityLoadoutRequirementSet[]; activityModeHashes: number[]; activityModeTypes: DestinyActivityModeType[]; isPvP: boolean; insertionPoints: DestinyActivityInsertionPointDefinition[]; activityLocationMappings: DestinyEnvironmentLocationMapping[]; hash: number; index: number; redacted: boolean; } export interface DestinyActivityRewardDefinition { rewardText: string; rewardItems: DestinyItemQuantity[]; } export interface DestinyActivityModifierReferenceDefinition { activityModifierHash: number; } export interface DestinyActivityModifierDefinition { displayProperties: DestinyDisplayPropertiesDefinition; displayInNavMode: boolean; displayInActivitySelection: boolean; hash: number; index: number; redacted: boolean; } export interface DestinyActivityChallengeDefinition { objectiveHash: number; dummyRewards: DestinyItemQuantity[]; } export interface DestinyObjectiveDefinition { displayProperties: DestinyDisplayPropertiesDefinition; completionValue: number; scope: DestinyGatingScope; locationHash: number; allowNegativeValue: boolean; allowValueChangeWhenCompleted: boolean; isCountingDownward: boolean; valueStyle: DestinyUnlockValueUIStyle; progressDescription: string; perks: DestinyObjectivePerkEntryDefinition; stats: DestinyObjectiveStatEntryDefinition; minimumVisibilityThreshold: number; allowOvercompletion: boolean; showValueOnComplete: boolean; completedValueStyle: DestinyUnlockValueUIStyle; inProgressValueStyle: DestinyUnlockValueUIStyle; uiLabel: string; uiStyle: DestinyObjectiveUiStyle; hash: number; index: number; redacted: boolean; } export interface DestinyObjectivePerkEntryDefinition { perkHash: number; style: DestinyObjectiveGrantStyle; } export interface DestinyObjectiveStatEntryDefinition { stat: DestinyItemInvestmentStatDefinition; style: DestinyObjectiveGrantStyle; } export interface DestinyItemInvestmentStatDefinition { statTypeHash: number; value: number; isConditionallyActive: boolean; } export interface DestinyLocationDefinition { vendorHash: number; locationReleases: DestinyLocationReleaseDefinition[]; hash: number; index: number; redacted: boolean; } export interface DestinyLocationReleaseDefinition { displayProperties: DestinyDisplayPropertiesDefinition; smallTransparentIcon: string; mapIcon: string; largeTransparentIcon: string; spawnPoint: number; destinationHash: number; activityHash: number; activityGraphHash: number; activityGraphNodeHash: number; activityBubbleName: number; activityPathBundle: number; activityPathDestination: number; navPointType: DestinyActivityNavPointType; worldPosition: number[]; } export interface DestinyActivityUnlockStringDefinition { displayString: string; } export interface DestinyActivityRequirementsBlock { leaderRequirementLabels: DestinyActivityRequirementLabel[]; fireteamRequirementLabels: DestinyActivityRequirementLabel[]; } export interface DestinyActivityRequirementLabel { displayString: string; } export interface DestinyActivityPlaylistItemDefinition { activityHash: number; directActivityModeHash: number | null; directActivityModeType: number | null; activityModeHashes: number[]; activityModeTypes: DestinyActivityModeType[]; } export interface DestinyActivityModeDefinition { displayProperties: DestinyDisplayPropertiesDefinition; pgcrImage: string; modeType: DestinyActivityModeType; activityModeCategory: DestinyActivityModeCategory; isTeamBased: boolean; isAggregateMode: bo