gitextract_c6q93roc/ ├── .dockerignore ├── .editorconfig ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ └── feature_request.yml │ ├── actions/ │ │ └── setup-pnpm/ │ │ └── action.yml │ ├── copilot-instructions.md │ ├── dependabot.yml │ ├── pull_request_template.md │ ├── scripts/ │ │ ├── discord_changelog.py │ │ └── i18n_discord.py │ └── workflows/ │ ├── auto-merge.yml │ ├── changelog-updater.yml │ ├── copilot-setup-steps.yml │ ├── deploy-beta.yml │ ├── deploy-prod.yml │ ├── i18n-bot-download.yml │ ├── i18n-bot-upload.yml │ ├── i18n-update.yml │ ├── lint-workflows.yml │ ├── notify-discord-changelog.yml │ ├── notify-discord-i18n.yml │ ├── pr-cleanup.yml │ ├── pr-reports.yml │ └── pr-validation.yml ├── .gitignore ├── .gitmodules ├── .husky/ │ └── pre-commit ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .stylelintrc ├── .svgo.yml ├── .vscode/ │ ├── css.json │ ├── dim.code-snippets │ ├── extensions.json │ ├── launch.json │ ├── settings.json │ └── tasks.json ├── LICENSE.md ├── README.md ├── babel.config.cjs ├── build/ │ ├── deploy-prod.sh │ ├── purge-cloudflare.sh │ ├── rsync-deploy.sh │ ├── test-changelog.js │ └── update-changelog.js ├── config/ │ ├── .well-known/ │ │ ├── android-config.beta.json │ │ ├── android-config.json │ │ └── apple-config.json │ ├── content-security-policy.ts │ ├── cspell/ │ │ ├── bungie-dict.txt │ │ ├── dim-dict.txt │ │ ├── dim-username-dict.txt │ │ └── programming-dict.txt │ ├── dim_travis.rsa.enc │ ├── dim_travis.rsa.pub │ ├── feature-flags.ts │ ├── i18n.json │ ├── manifest-webapp.ts │ ├── notify-webpack-plugin.ts │ └── webpack.ts ├── crowdin.yml ├── cspell.json ├── docker-compose.yml ├── docs/ │ ├── CHANGELOG.md │ ├── CODE_OF_CONDUCT.md │ ├── COMMUNITY_CURATIONS.md │ ├── CONTRIBUTING.md │ ├── Docker.md │ ├── OLD_CHANGELOG/ │ │ ├── OLD_CHANGELOG_3.X.X.md │ │ ├── OLD_CHANGELOG_4.X.X.md │ │ ├── OLD_CHANGELOG_5.X.X.md │ │ └── OLD_CHANGELOG_6.X.X.md │ ├── TRANSLATIONS.md │ └── clean-changelog.rb ├── eslint.config.js ├── i18next-scanner.config.cjs ├── icons/ │ ├── build_icons.cjs │ └── splash.json ├── jest.config.js ├── package.json ├── src/ │ ├── 404.html │ ├── @types/ │ │ └── i18next.d.ts │ ├── Index.tsx │ ├── StorageTest.tsx │ ├── __mocks__/ │ │ └── fileMock.js │ ├── app/ │ │ ├── App.m.scss │ │ ├── App.m.scss.d.ts │ │ ├── App.tsx │ │ ├── Root.tsx │ │ ├── _variables.scss │ │ ├── accounts/ │ │ │ ├── Account.m.scss │ │ │ ├── Account.m.scss.d.ts │ │ │ ├── Account.tsx │ │ │ ├── MenuAccounts.m.scss │ │ │ ├── MenuAccounts.m.scss.d.ts │ │ │ ├── MenuAccounts.tsx │ │ │ ├── SelectAccount.m.scss │ │ │ ├── SelectAccount.m.scss.d.ts │ │ │ ├── SelectAccount.tsx │ │ │ ├── actions.ts │ │ │ ├── bungie-account.ts │ │ │ ├── destiny-account.test.ts │ │ │ ├── destiny-account.ts │ │ │ ├── observers.ts │ │ │ ├── platforms.ts │ │ │ ├── reducer.ts │ │ │ └── selectors.ts │ │ ├── armory/ │ │ │ ├── AllWishlistRolls.m.scss │ │ │ ├── AllWishlistRolls.m.scss.d.ts │ │ │ ├── AllWishlistRolls.tsx │ │ │ ├── Armory.m.scss │ │ │ ├── Armory.m.scss.d.ts │ │ │ ├── Armory.tsx │ │ │ ├── ArmoryPage.tsx │ │ │ ├── ArmorySheet.m.scss │ │ │ ├── ArmorySheet.m.scss.d.ts │ │ │ ├── ArmorySheet.tsx │ │ │ ├── ItemGrid.tsx │ │ │ ├── LazyArmory.ts │ │ │ ├── Links.m.scss │ │ │ ├── Links.m.scss.d.ts │ │ │ ├── Links.tsx │ │ │ ├── WishListEntry.m.scss │ │ │ ├── WishListEntry.m.scss.d.ts │ │ │ ├── WishListEntry.tsx │ │ │ ├── crafting-utils.ts │ │ │ ├── trait-to-enhanced-trait.d.ts │ │ │ ├── wishlist-collapser.test.ts │ │ │ └── wishlist-collapser.ts │ │ ├── bungie-api/ │ │ │ ├── README.md │ │ │ ├── __snapshots__/ │ │ │ │ └── http-client.test.ts.snap │ │ │ ├── authenticated-fetch.ts │ │ │ ├── bungie-api-utils.ts │ │ │ ├── bungie-core-api.ts │ │ │ ├── bungie-service-helper.ts │ │ │ ├── destiny1-api.ts │ │ │ ├── destiny2-api.ts │ │ │ ├── error-toaster.tsx │ │ │ ├── http-client.test.ts │ │ │ ├── http-client.ts │ │ │ ├── oauth-tokens.ts │ │ │ ├── oauth.ts │ │ │ ├── rate-limit-config.ts │ │ │ └── rate-limiter.ts │ │ ├── character-tile/ │ │ │ ├── CharacterHeaderXP.m.scss │ │ │ ├── CharacterHeaderXP.m.scss.d.ts │ │ │ ├── CharacterHeaderXP.tsx │ │ │ ├── CharacterTile.m.scss │ │ │ ├── CharacterTile.m.scss.d.ts │ │ │ ├── CharacterTile.tsx │ │ │ ├── CharacterTileButton.m.scss │ │ │ ├── CharacterTileButton.m.scss.d.ts │ │ │ ├── CharacterTileButton.tsx │ │ │ ├── StoreHeading.m.scss │ │ │ ├── StoreHeading.m.scss.d.ts │ │ │ ├── StoreHeading.tsx │ │ │ ├── StoreIcon.m.scss │ │ │ ├── StoreIcon.m.scss.d.ts │ │ │ └── StoreIcon.tsx │ │ ├── clarity/ │ │ │ ├── about.ts │ │ │ ├── actions.ts │ │ │ ├── descriptions/ │ │ │ │ ├── ClarityDescriptions.tsx │ │ │ │ ├── Description.m.scss │ │ │ │ ├── Description.m.scss.d.ts │ │ │ │ ├── character-stats.ts │ │ │ │ ├── descriptionInterface.ts │ │ │ │ └── loadDescriptions.ts │ │ │ ├── reducer.ts │ │ │ └── selectors.ts │ │ ├── compare/ │ │ │ ├── Compare.m.scss │ │ │ ├── Compare.m.scss.d.ts │ │ │ ├── Compare.tsx │ │ │ ├── CompareButtons.m.scss │ │ │ ├── CompareButtons.m.scss.d.ts │ │ │ ├── CompareColumns.m.scss │ │ │ ├── CompareColumns.m.scss.d.ts │ │ │ ├── CompareColumns.tsx │ │ │ ├── CompareContainer.tsx │ │ │ ├── CompareItem.m.scss │ │ │ ├── CompareItem.m.scss.d.ts │ │ │ ├── CompareItem.tsx │ │ │ ├── CompareStat.m.scss │ │ │ ├── CompareStat.m.scss.d.ts │ │ │ ├── CompareStat.tsx │ │ │ ├── CompareSuggestions.tsx │ │ │ ├── actions.ts │ │ │ ├── compare-buttons.tsx │ │ │ ├── compare-utils.ts │ │ │ ├── reducer.ts │ │ │ ├── selectors.ts │ │ │ └── types.ts │ │ ├── css-variables.ts │ │ ├── debug/ │ │ │ ├── Debug.m.scss │ │ │ ├── Debug.m.scss.d.ts │ │ │ └── Debug.tsx │ │ ├── destiny1/ │ │ │ ├── activities/ │ │ │ │ ├── Activities.m.scss │ │ │ │ ├── Activities.m.scss.d.ts │ │ │ │ └── Activities.tsx │ │ │ ├── d1-bucket-categories.ts │ │ │ ├── d1-buckets.ts │ │ │ ├── d1-definitions.ts │ │ │ ├── d1-factions.ts │ │ │ ├── d1-manifest-types.ts │ │ │ ├── loadout-builder/ │ │ │ │ ├── D1LoadoutBuilder.m.scss │ │ │ │ ├── D1LoadoutBuilder.m.scss.d.ts │ │ │ │ ├── D1LoadoutBuilder.tsx │ │ │ │ ├── ExcludeItemsDropTarget.tsx │ │ │ │ ├── GeneratedSet.m.scss │ │ │ │ ├── GeneratedSet.m.scss.d.ts │ │ │ │ ├── GeneratedSet.tsx │ │ │ │ ├── LoadoutBuilderDropTarget.m.scss │ │ │ │ ├── LoadoutBuilderDropTarget.m.scss.d.ts │ │ │ │ ├── LoadoutBuilderDropTarget.tsx │ │ │ │ ├── LoadoutBuilderItem.m.scss │ │ │ │ ├── LoadoutBuilderItem.m.scss.d.ts │ │ │ │ ├── LoadoutBuilderItem.tsx │ │ │ │ ├── LoadoutBuilderLockPerk.m.scss │ │ │ │ ├── LoadoutBuilderLockPerk.m.scss.d.ts │ │ │ │ ├── LoadoutBuilderLockPerk.tsx │ │ │ │ ├── LoadoutBuilderLocksDialog.m.scss │ │ │ │ ├── LoadoutBuilderLocksDialog.m.scss.d.ts │ │ │ │ ├── LoadoutBuilderLocksDialog.tsx │ │ │ │ ├── calculate.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── loadout-drawer/ │ │ │ │ ├── Buttons.m.scss │ │ │ │ ├── Buttons.m.scss.d.ts │ │ │ │ ├── Buttons.tsx │ │ │ │ ├── D1LoadoutDrawer.m.scss │ │ │ │ ├── D1LoadoutDrawer.m.scss.d.ts │ │ │ │ ├── D1LoadoutDrawer.tsx │ │ │ │ ├── LoadoutDrawerBucket.m.scss │ │ │ │ ├── LoadoutDrawerBucket.m.scss.d.ts │ │ │ │ ├── LoadoutDrawerBucket.tsx │ │ │ │ ├── LoadoutDrawerContents.m.scss │ │ │ │ ├── LoadoutDrawerContents.m.scss.d.ts │ │ │ │ ├── LoadoutDrawerContents.tsx │ │ │ │ ├── LoadoutDrawerItem.m.scss │ │ │ │ ├── LoadoutDrawerItem.m.scss.d.ts │ │ │ │ ├── LoadoutDrawerItem.tsx │ │ │ │ ├── LoadoutDrawerOptions.m.scss │ │ │ │ ├── LoadoutDrawerOptions.m.scss.d.ts │ │ │ │ └── LoadoutDrawerOptions.tsx │ │ │ ├── record-books/ │ │ │ │ ├── RecordBooks.m.scss │ │ │ │ ├── RecordBooks.m.scss.d.ts │ │ │ │ └── RecordBooks.tsx │ │ │ └── vendors/ │ │ │ ├── D1Vendor.tsx │ │ │ ├── D1VendorItem.m.scss │ │ │ ├── D1VendorItem.m.scss.d.ts │ │ │ ├── D1VendorItem.tsx │ │ │ ├── D1VendorItems.tsx │ │ │ ├── D1Vendors.m.scss │ │ │ ├── D1Vendors.m.scss.d.ts │ │ │ ├── D1Vendors.tsx │ │ │ └── vendor.service.ts │ │ ├── destiny2/ │ │ │ ├── d2-bucket-categories.ts │ │ │ ├── d2-buckets.ts │ │ │ ├── d2-definitions.test.ts │ │ │ ├── d2-definitions.ts │ │ │ └── definitions.ts │ │ ├── developer/ │ │ │ └── Developer.tsx │ │ ├── dim-api/ │ │ │ ├── actions.ts │ │ │ ├── api-permission-prompt.m.scss │ │ │ ├── api-permission-prompt.m.scss.d.ts │ │ │ ├── api-permission-prompt.tsx │ │ │ ├── api-types.ts │ │ │ ├── basic-actions.ts │ │ │ ├── dim-api-helper.ts │ │ │ ├── dim-api.ts │ │ │ ├── import.ts │ │ │ ├── reducer.test.ts │ │ │ ├── reducer.ts │ │ │ ├── register-app.ts │ │ │ └── selectors.ts │ │ ├── dim-ui/ │ │ │ ├── AlertIcon.m.scss │ │ │ ├── AlertIcon.m.scss.d.ts │ │ │ ├── AlertIcon.tsx │ │ │ ├── AnimatedNumber.tsx │ │ │ ├── AutoRefresh.tsx │ │ │ ├── BungieImage.tsx │ │ │ ├── CharacterSelect.m.scss │ │ │ ├── CharacterSelect.m.scss.d.ts │ │ │ ├── CharacterSelect.tsx │ │ │ ├── CheckButton.m.scss │ │ │ ├── CheckButton.m.scss.d.ts │ │ │ ├── CheckButton.tsx │ │ │ ├── ClassIcon.tsx │ │ │ ├── ClickOutside.tsx │ │ │ ├── ClickOutsideRoot.tsx │ │ │ ├── ClosableContainer.m.scss │ │ │ ├── ClosableContainer.m.scss.d.ts │ │ │ ├── ClosableContainer.tsx │ │ │ ├── CollapsibleTitle.m.scss │ │ │ ├── CollapsibleTitle.m.scss.d.ts │ │ │ ├── CollapsibleTitle.tsx │ │ │ ├── ConfirmButton.m.scss │ │ │ ├── ConfirmButton.m.scss.d.ts │ │ │ ├── ConfirmButton.tsx │ │ │ ├── Countdown.tsx │ │ │ ├── CustomStatTotal.m.scss │ │ │ ├── CustomStatTotal.m.scss.d.ts │ │ │ ├── CustomStatTotal.tsx │ │ │ ├── CustomStatWeights.m.scss │ │ │ ├── CustomStatWeights.m.scss.d.ts │ │ │ ├── CustomStatWeights.tsx │ │ │ ├── DestinyTooltipText.m.scss │ │ │ ├── DestinyTooltipText.m.scss.d.ts │ │ │ ├── DestinyTooltipText.tsx │ │ │ ├── DiamondProgress.m.scss │ │ │ ├── DiamondProgress.m.scss.d.ts │ │ │ ├── DiamondProgress.tsx │ │ │ ├── Dropdown.m.scss │ │ │ ├── Dropdown.m.scss.d.ts │ │ │ ├── Dropdown.tsx │ │ │ ├── ElementIcon.m.scss │ │ │ ├── ElementIcon.m.scss.d.ts │ │ │ ├── ElementIcon.tsx │ │ │ ├── EnergyIncrements.m.scss │ │ │ ├── EnergyIncrements.m.scss.d.ts │ │ │ ├── EnergyIncrements.tsx │ │ │ ├── ErrorBoundary.tsx │ │ │ ├── ExpandableTextBlock.m.scss │ │ │ ├── ExpandableTextBlock.m.scss.d.ts │ │ │ ├── ExpandableTextBlock.tsx │ │ │ ├── ExternalLink.tsx │ │ │ ├── FileUpload.m.scss │ │ │ ├── FileUpload.m.scss.d.ts │ │ │ ├── FileUpload.tsx │ │ │ ├── FilterPills.m.scss │ │ │ ├── FilterPills.m.scss.d.ts │ │ │ ├── FilterPills.tsx │ │ │ ├── FractionalPowerLevel.m.scss │ │ │ ├── FractionalPowerLevel.m.scss.d.ts │ │ │ ├── FractionalPowerLevel.tsx │ │ │ ├── HelpLink.m.scss │ │ │ ├── HelpLink.m.scss.d.ts │ │ │ ├── HelpLink.tsx │ │ │ ├── ItemCategoryIcon.m.scss │ │ │ ├── ItemCategoryIcon.m.scss.d.ts │ │ │ ├── ItemCategoryIcon.tsx │ │ │ ├── ItemPop.m.scss │ │ │ ├── ItemPop.m.scss.d.ts │ │ │ ├── KeyHelp.m.scss │ │ │ ├── KeyHelp.m.scss.d.ts │ │ │ ├── KeyHelp.tsx │ │ │ ├── Loading.m.scss │ │ │ ├── Loading.m.scss.d.ts │ │ │ ├── Loading.tsx │ │ │ ├── PageLoading.m.scss │ │ │ ├── PageLoading.m.scss.d.ts │ │ │ ├── PageLoading.tsx │ │ │ ├── PageWithMenu.m.scss │ │ │ ├── PageWithMenu.m.scss.d.ts │ │ │ ├── PageWithMenu.tsx │ │ │ ├── PressTip.m.scss │ │ │ ├── PressTip.m.scss.d.ts │ │ │ ├── PressTip.tsx │ │ │ ├── README.md │ │ │ ├── RadioButtons.m.scss │ │ │ ├── RadioButtons.m.scss.d.ts │ │ │ ├── RadioButtons.tsx │ │ │ ├── Select.m.scss │ │ │ ├── Select.m.scss.d.ts │ │ │ ├── Select.tsx │ │ │ ├── SetFilterButton.m.scss │ │ │ ├── SetFilterButton.m.scss.d.ts │ │ │ ├── SetFilterButton.tsx │ │ │ ├── Sheet.m.scss │ │ │ ├── Sheet.m.scss.d.ts │ │ │ ├── Sheet.tsx │ │ │ ├── SheetHorizontalScrollContainer.m.scss │ │ │ ├── SheetHorizontalScrollContainer.m.scss.d.ts │ │ │ ├── SheetHorizontalScrollContainer.tsx │ │ │ ├── ShowPageLoading.tsx │ │ │ ├── SpecialtyModSlotIcon.m.scss │ │ │ ├── SpecialtyModSlotIcon.m.scss.d.ts │ │ │ ├── SpecialtyModSlotIcon.tsx │ │ │ ├── StaticPage.m.scss │ │ │ ├── StaticPage.m.scss.d.ts │ │ │ ├── StaticPage.tsx │ │ │ ├── Switch.m.scss │ │ │ ├── Switch.m.scss.d.ts │ │ │ ├── Switch.tsx │ │ │ ├── TileGrid.m.scss │ │ │ ├── TileGrid.m.scss.d.ts │ │ │ ├── TileGrid.tsx │ │ │ ├── UserGuideLink.tsx │ │ │ ├── VirtualList.m.scss │ │ │ ├── VirtualList.m.scss.d.ts │ │ │ ├── VirtualList.tsx │ │ │ ├── WeaponGroupingIcon.m.scss │ │ │ ├── WeaponGroupingIcon.m.scss.d.ts │ │ │ ├── WeaponGroupingIcon.tsx │ │ │ ├── _tooltip-mixins.scss │ │ │ ├── common.m.scss │ │ │ ├── destiny-symbols/ │ │ │ │ ├── ColorDestinySymbols.m.scss │ │ │ │ ├── ColorDestinySymbols.m.scss.d.ts │ │ │ │ ├── ColorDestinySymbols.tsx │ │ │ │ ├── RichDestinyText.tsx │ │ │ │ ├── SymbolsPicker.m.scss │ │ │ │ ├── SymbolsPicker.m.scss.d.ts │ │ │ │ ├── SymbolsPicker.tsx │ │ │ │ ├── destiny-symbols.test.ts │ │ │ │ ├── destiny-symbols.ts │ │ │ │ └── rich-destiny-text.ts │ │ │ ├── dim-button.scss │ │ │ ├── scroll.ts │ │ │ ├── sheets-open.ts │ │ │ ├── svgs/ │ │ │ │ ├── BucketIcon.tsx │ │ │ │ └── itemCategory.ts │ │ │ ├── table-columns.test.ts │ │ │ ├── table-columns.ts │ │ │ ├── text-complete/ │ │ │ │ ├── text-complete.m.scss │ │ │ │ ├── text-complete.m.scss.d.ts │ │ │ │ └── text-complete.ts │ │ │ ├── useBulkNote.m.scss │ │ │ ├── useBulkNote.m.scss.d.ts │ │ │ ├── useBulkNote.tsx │ │ │ ├── useConfirm.tsx │ │ │ ├── useDialog.m.scss │ │ │ ├── useDialog.m.scss.d.ts │ │ │ ├── useDialog.tsx │ │ │ ├── useFixOverscrollBehavior.ts │ │ │ ├── usePopper.ts │ │ │ ├── usePrompt.m.scss │ │ │ ├── usePrompt.m.scss.d.ts │ │ │ └── usePrompt.tsx │ │ ├── farming/ │ │ │ ├── Farming.m.scss │ │ │ ├── Farming.m.scss.d.ts │ │ │ ├── Farming.tsx │ │ │ ├── actions.ts │ │ │ ├── basic-actions.ts │ │ │ ├── reducer.ts │ │ │ └── selectors.ts │ │ ├── gear-power/ │ │ │ ├── GearPower.m.scss │ │ │ ├── GearPower.m.scss.d.ts │ │ │ ├── GearPower.tsx │ │ │ └── gear-power.ts │ │ ├── google.ts │ │ ├── hotkeys/ │ │ │ ├── GlobalHotkeys.tsx │ │ │ ├── HotkeysCheatSheet.m.scss │ │ │ ├── HotkeysCheatSheet.m.scss.d.ts │ │ │ ├── HotkeysCheatSheet.tsx │ │ │ ├── hotkeys.test.ts │ │ │ ├── hotkeys.ts │ │ │ └── useHotkey.ts │ │ ├── i18n.ts │ │ ├── i18next-t.ts │ │ ├── infuse/ │ │ │ ├── InfusionFinder.m.scss │ │ │ ├── InfusionFinder.m.scss.d.ts │ │ │ ├── InfusionFinder.tsx │ │ │ └── infuse.ts │ │ ├── inventory/ │ │ │ ├── ArtifactXP.m.scss │ │ │ ├── ArtifactXP.m.scss.d.ts │ │ │ ├── ArtifactXP.tsx │ │ │ ├── BadgeInfo.m.scss │ │ │ ├── BadgeInfo.m.scss.d.ts │ │ │ ├── BadgeInfo.tsx │ │ │ ├── ConnectedInventoryItem.tsx │ │ │ ├── DragPerformanceFix.m.scss │ │ │ ├── DragPerformanceFix.m.scss.d.ts │ │ │ ├── DragPerformanceFix.tsx │ │ │ ├── DraggableInventoryItem.m.scss │ │ │ ├── DraggableInventoryItem.m.scss.d.ts │ │ │ ├── DraggableInventoryItem.tsx │ │ │ ├── InventoryItem.m.scss │ │ │ ├── InventoryItem.m.scss.d.ts │ │ │ ├── InventoryItem.tsx │ │ │ ├── ItemDragPreview.tsx │ │ │ ├── ItemIcon.m.scss │ │ │ ├── ItemIcon.m.scss.d.ts │ │ │ ├── ItemIcon.tsx │ │ │ ├── ItemIconPlaceholder.m.scss │ │ │ ├── ItemIconPlaceholder.m.scss.d.ts │ │ │ ├── ItemIconPlaceholder.tsx │ │ │ ├── ItemPopupTrigger.tsx │ │ │ ├── ItemPowerSet.m.scss │ │ │ ├── ItemPowerSet.m.scss.d.ts │ │ │ ├── ItemPowerSet.tsx │ │ │ ├── MoveNotifications.m.scss │ │ │ ├── MoveNotifications.m.scss.d.ts │ │ │ ├── MoveNotifications.tsx │ │ │ ├── NewItemIndicator.m.scss │ │ │ ├── NewItemIndicator.m.scss.d.ts │ │ │ ├── NewItemIndicator.tsx │ │ │ ├── PullFromPostmaster.m.scss │ │ │ ├── PullFromPostmaster.m.scss.d.ts │ │ │ ├── PullFromPostmaster.tsx │ │ │ ├── RatingIcon.m.scss │ │ │ ├── RatingIcon.m.scss.d.ts │ │ │ ├── RatingIcon.tsx │ │ │ ├── SyncTagLock.tsx │ │ │ ├── TagIcon.tsx │ │ │ ├── __snapshots__/ │ │ │ │ └── d2-stores.test.ts.snap │ │ │ ├── actions.ts │ │ │ ├── advanced-write-actions.ts │ │ │ ├── bulk-actions.tsx │ │ │ ├── cross-tab.ts │ │ │ ├── d1-stores.ts │ │ │ ├── d2-stores.test.ts │ │ │ ├── d2-stores.ts │ │ │ ├── dim-item-info.ts │ │ │ ├── drag-events.ts │ │ │ ├── inventory-buckets.ts │ │ │ ├── item-move-service.ts │ │ │ ├── item-types.ts │ │ │ ├── locate-item.ts │ │ │ ├── manual-moves.ts │ │ │ ├── move-item.ts │ │ │ ├── note-hashtags.ts │ │ │ ├── notes-hashtags.test.ts │ │ │ ├── observers.ts │ │ │ ├── reducer.ts │ │ │ ├── rewards.ts │ │ │ ├── selectors.ts │ │ │ ├── spreadsheets.ts │ │ │ ├── store/ │ │ │ │ ├── armor-quality.ts │ │ │ │ ├── catalyst.ts │ │ │ │ ├── character-utils.ts │ │ │ │ ├── crafted.ts │ │ │ │ ├── d1-item-factory.ts │ │ │ │ ├── d1-store-factory.ts │ │ │ │ ├── d2-item-factory.ts │ │ │ │ ├── d2-store-factory.ts │ │ │ │ ├── deepsight.ts │ │ │ │ ├── energy.ts │ │ │ │ ├── enhanced-info.d.ts │ │ │ │ ├── exotic-class-item.ts │ │ │ │ ├── exotic-to-catalyst-record.d.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── item-index.ts │ │ │ │ ├── masterwork.ts │ │ │ │ ├── missing-sources.d.ts │ │ │ │ ├── objectives.ts │ │ │ │ ├── override-sockets.ts │ │ │ │ ├── patterns.ts │ │ │ │ ├── season-d2ai.d.ts │ │ │ │ ├── season.ts │ │ │ │ ├── selectors.ts │ │ │ │ ├── sockets.ts │ │ │ │ ├── stats-conditional.ts │ │ │ │ ├── stats-custom.ts │ │ │ │ ├── stats.ts │ │ │ │ └── well-rested.ts │ │ │ ├── store-types.ts │ │ │ ├── stores-helpers.ts │ │ │ └── subclass.ts │ │ ├── inventory-page/ │ │ │ ├── CategoryStrip.m.scss │ │ │ ├── CategoryStrip.m.scss.d.ts │ │ │ ├── CategoryStrip.tsx │ │ │ ├── D1Reputation.m.scss │ │ │ ├── D1Reputation.m.scss.d.ts │ │ │ ├── D1Reputation.tsx │ │ │ ├── D1ReputationSection.tsx │ │ │ ├── DesktopStores.m.scss │ │ │ ├── DesktopStores.m.scss.d.ts │ │ │ ├── DesktopStores.tsx │ │ │ ├── HeaderShadowDiv.m.scss │ │ │ ├── HeaderShadowDiv.m.scss.d.ts │ │ │ ├── HeaderShadowDiv.tsx │ │ │ ├── Inventory.tsx │ │ │ ├── InventoryCollapsibleTitle.m.scss │ │ │ ├── InventoryCollapsibleTitle.m.scss.d.ts │ │ │ ├── InventoryCollapsibleTitle.tsx │ │ │ ├── PhoneStores.m.scss │ │ │ ├── PhoneStores.m.scss.d.ts │ │ │ ├── PhoneStores.tsx │ │ │ ├── PhoneStoresHeader.m.scss │ │ │ ├── PhoneStoresHeader.m.scss.d.ts │ │ │ ├── PhoneStoresHeader.tsx │ │ │ ├── StoreBucket.m.scss │ │ │ ├── StoreBucket.m.scss.d.ts │ │ │ ├── StoreBucket.scss │ │ │ ├── StoreBucket.tsx │ │ │ ├── StoreBucketDropTarget.m.scss │ │ │ ├── StoreBucketDropTarget.m.scss.d.ts │ │ │ ├── StoreBucketDropTarget.tsx │ │ │ ├── StoreBuckets.m.scss │ │ │ ├── StoreBuckets.m.scss.d.ts │ │ │ ├── StoreBuckets.tsx │ │ │ ├── StoreInventoryItem.tsx │ │ │ ├── Stores.scss │ │ │ └── Stores.tsx │ │ ├── issue-awareness-banner/ │ │ │ ├── Game2Give.m.scss │ │ │ ├── Game2Give.m.scss.d.ts │ │ │ ├── Game2Give.tsx │ │ │ ├── IssueAwarenessBanner.tsx │ │ │ └── useGame2GiveData.tsx │ │ ├── item-actions/ │ │ │ ├── ActionButton.m.scss │ │ │ ├── ActionButton.m.scss.d.ts │ │ │ ├── ActionButton.tsx │ │ │ ├── ActionButtons.m.scss │ │ │ ├── ActionButtons.m.scss.d.ts │ │ │ ├── ActionButtons.tsx │ │ │ ├── ItemAccessoryButtons.tsx │ │ │ ├── ItemActionsDropdown.m.scss │ │ │ ├── ItemActionsDropdown.m.scss.d.ts │ │ │ ├── ItemActionsDropdown.tsx │ │ │ ├── ItemMoveLocations.m.scss │ │ │ ├── ItemMoveLocations.m.scss.d.ts │ │ │ ├── ItemMoveLocations.tsx │ │ │ ├── LockButton.m.scss │ │ │ ├── LockButton.m.scss.d.ts │ │ │ └── LockButton.tsx │ │ ├── item-feed/ │ │ │ ├── Highlights.m.scss │ │ │ ├── Highlights.m.scss.d.ts │ │ │ ├── Highlights.tsx │ │ │ ├── ItemFeed.m.scss │ │ │ ├── ItemFeed.m.scss.d.ts │ │ │ ├── ItemFeed.tsx │ │ │ ├── ItemFeedPage.m.scss │ │ │ ├── ItemFeedPage.m.scss.d.ts │ │ │ ├── ItemFeedPage.tsx │ │ │ ├── ItemFeedSidebar.m.scss │ │ │ ├── ItemFeedSidebar.m.scss.d.ts │ │ │ ├── ItemFeedSidebar.tsx │ │ │ ├── TagButtons.m.scss │ │ │ ├── TagButtons.m.scss.d.ts │ │ │ └── TagButtons.tsx │ │ ├── item-picker/ │ │ │ ├── ItemPicker.m.scss │ │ │ ├── ItemPicker.m.scss.d.ts │ │ │ ├── ItemPicker.tsx │ │ │ ├── ItemPickerContainer.tsx │ │ │ └── item-picker.ts │ │ ├── item-popup/ │ │ │ ├── AmmoIcon.m.scss │ │ │ ├── AmmoIcon.m.scss.d.ts │ │ │ ├── AmmoIcon.tsx │ │ │ ├── ApplyPerkSelection.m.scss │ │ │ ├── ApplyPerkSelection.m.scss.d.ts │ │ │ ├── ApplyPerkSelection.tsx │ │ │ ├── ArchetypeSocket.m.scss │ │ │ ├── ArchetypeSocket.m.scss.d.ts │ │ │ ├── ArchetypeSocket.tsx │ │ │ ├── BreakerType.m.scss │ │ │ ├── BreakerType.m.scss.d.ts │ │ │ ├── BreakerType.tsx │ │ │ ├── DeepSightHarmonizerIcon.m.scss │ │ │ ├── DeepSightHarmonizerIcon.m.scss.d.ts │ │ │ ├── DeepsightHarmonizerIcon.tsx │ │ │ ├── DesktopItemActions.m.scss │ │ │ ├── DesktopItemActions.m.scss.d.ts │ │ │ ├── DesktopItemActions.tsx │ │ │ ├── EmblemPreview.m.scss │ │ │ ├── EmblemPreview.m.scss.d.ts │ │ │ ├── EmblemPreview.tsx │ │ │ ├── EmoteSockets.m.scss │ │ │ ├── EmoteSockets.m.scss.d.ts │ │ │ ├── EmoteSockets.tsx │ │ │ ├── EnergyMeter.m.scss │ │ │ ├── EnergyMeter.m.scss.d.ts │ │ │ ├── EnergyMeter.tsx │ │ │ ├── ItemDescription.m.scss │ │ │ ├── ItemDescription.m.scss.d.ts │ │ │ ├── ItemDescription.tsx │ │ │ ├── ItemDetails.m.scss │ │ │ ├── ItemDetails.m.scss.d.ts │ │ │ ├── ItemDetails.tsx │ │ │ ├── ItemExpiration.tsx │ │ │ ├── ItemMoveAmount.m.scss │ │ │ ├── ItemMoveAmount.m.scss.d.ts │ │ │ ├── ItemMoveAmount.tsx │ │ │ ├── ItemPerks.m.scss │ │ │ ├── ItemPerks.m.scss.d.ts │ │ │ ├── ItemPerks.tsx │ │ │ ├── ItemPerksList.m.scss │ │ │ ├── ItemPerksList.m.scss.d.ts │ │ │ ├── ItemPerksList.tsx │ │ │ ├── ItemPopup.m.scss │ │ │ ├── ItemPopup.m.scss.d.ts │ │ │ ├── ItemPopup.tsx │ │ │ ├── ItemPopupBody.scss │ │ │ ├── ItemPopupContainer.tsx │ │ │ ├── ItemPopupHeader.m.scss │ │ │ ├── ItemPopupHeader.m.scss.d.ts │ │ │ ├── ItemPopupHeader.tsx │ │ │ ├── ItemPopupTabs.m.scss │ │ │ ├── ItemPopupTabs.m.scss.d.ts │ │ │ ├── ItemPopupTabs.tsx │ │ │ ├── ItemSockets.m.scss │ │ │ ├── ItemSockets.m.scss.d.ts │ │ │ ├── ItemSockets.tsx │ │ │ ├── ItemSocketsGeneral.m.scss │ │ │ ├── ItemSocketsGeneral.m.scss.d.ts │ │ │ ├── ItemSocketsGeneral.tsx │ │ │ ├── ItemSocketsWeapons.m.scss │ │ │ ├── ItemSocketsWeapons.m.scss.d.ts │ │ │ ├── ItemSocketsWeapons.tsx │ │ │ ├── ItemStat.m.scss │ │ │ ├── ItemStat.m.scss.d.ts │ │ │ ├── ItemStat.tsx │ │ │ ├── ItemStats.m.scss │ │ │ ├── ItemStats.m.scss.d.ts │ │ │ ├── ItemStats.tsx │ │ │ ├── ItemTagHotkeys.tsx │ │ │ ├── ItemTagSelector.m.scss │ │ │ ├── ItemTagSelector.m.scss.d.ts │ │ │ ├── ItemTagSelector.tsx │ │ │ ├── ItemTalentGrid.m.scss │ │ │ ├── ItemTalentGrid.m.scss.d.ts │ │ │ ├── ItemTalentGrid.tsx │ │ │ ├── KillTracker.tsx │ │ │ ├── MetricCategories.m.scss │ │ │ ├── MetricCategories.m.scss.d.ts │ │ │ ├── MetricCategories.tsx │ │ │ ├── NotesArea.m.scss │ │ │ ├── NotesArea.m.scss.d.ts │ │ │ ├── NotesArea.tsx │ │ │ ├── Plug.m.scss │ │ │ ├── Plug.m.scss.d.ts │ │ │ ├── Plug.tsx │ │ │ ├── PlugTooltip.m.scss │ │ │ ├── PlugTooltip.m.scss.d.ts │ │ │ ├── PlugTooltip.tsx │ │ │ ├── RecoilStat.tsx │ │ │ ├── SetBonus.m.scss │ │ │ ├── SetBonus.m.scss.d.ts │ │ │ ├── SetBonus.tsx │ │ │ ├── Socket.m.scss │ │ │ ├── Socket.m.scss.d.ts │ │ │ ├── Socket.tsx │ │ │ ├── SocketDetails.m.scss │ │ │ ├── SocketDetails.m.scss.d.ts │ │ │ ├── SocketDetails.tsx │ │ │ ├── SocketDetailsSelectedPlug.m.scss │ │ │ ├── SocketDetailsSelectedPlug.m.scss.d.ts │ │ │ ├── SocketDetailsSelectedPlug.tsx │ │ │ ├── WeaponCatalystInfo.m.scss │ │ │ ├── WeaponCatalystInfo.m.scss.d.ts │ │ │ ├── WeaponCatalystInfo.tsx │ │ │ ├── WeaponCraftedInfo.m.scss │ │ │ ├── WeaponCraftedInfo.m.scss.d.ts │ │ │ ├── WeaponCraftedInfo.tsx │ │ │ ├── WeaponDeepsightInfo.m.scss │ │ │ ├── WeaponDeepsightInfo.m.scss.d.ts │ │ │ ├── WeaponDeepsightInfo.tsx │ │ │ ├── item-popup-actions.test.ts │ │ │ ├── item-popup-actions.ts │ │ │ ├── item-popup.ts │ │ │ └── sidecar-popper-modifier.ts │ │ ├── item-triage/ │ │ │ ├── ItemTriage.m.scss │ │ │ ├── ItemTriage.m.scss.d.ts │ │ │ ├── ItemTriage.tsx │ │ │ ├── TriageFactors.m.scss │ │ │ ├── TriageFactors.m.scss.d.ts │ │ │ ├── triage-factors.tsx │ │ │ ├── triage-utils.test.ts │ │ │ └── triage-utils.ts │ │ ├── loadout/ │ │ │ ├── LoadoutView.m.scss │ │ │ ├── LoadoutView.m.scss.d.ts │ │ │ ├── LoadoutView.tsx │ │ │ ├── Loadouts.m.scss │ │ │ ├── Loadouts.m.scss.d.ts │ │ │ ├── Loadouts.tsx │ │ │ ├── LoadoutsRow.m.scss │ │ │ ├── LoadoutsRow.tsx │ │ │ ├── ModPicker.tsx │ │ │ ├── SubclassPlugDrawer.tsx │ │ │ ├── actions.ts │ │ │ ├── armor-upgrade-utils.ts │ │ │ ├── fashion/ │ │ │ │ ├── FashionDrawer.m.scss │ │ │ │ ├── FashionDrawer.m.scss.d.ts │ │ │ │ └── FashionDrawer.tsx │ │ │ ├── ingame/ │ │ │ │ ├── EditInGameLoadout.m.scss │ │ │ │ ├── EditInGameLoadout.m.scss.d.ts │ │ │ │ ├── EditInGameLoadout.tsx │ │ │ │ ├── EditInGameLoadoutIdentifiers.m.scss │ │ │ │ ├── EditInGameLoadoutIdentifiers.m.scss.d.ts │ │ │ │ ├── EditInGameLoadoutIdentifiers.tsx │ │ │ │ ├── InGameLoadoutDetailsSheet.m.scss │ │ │ │ ├── InGameLoadoutDetailsSheet.m.scss.d.ts │ │ │ │ ├── InGameLoadoutDetailsSheet.tsx │ │ │ │ ├── InGameLoadoutIcon.m.scss │ │ │ │ ├── InGameLoadoutIcon.m.scss.d.ts │ │ │ │ ├── InGameLoadoutIcon.tsx │ │ │ │ ├── InGameLoadoutIdentifiersSelectButton.m.scss │ │ │ │ ├── InGameLoadoutIdentifiersSelectButton.m.scss.d.ts │ │ │ │ ├── InGameLoadoutIdentifiersSelectButton.tsx │ │ │ │ ├── InGameLoadoutStrip.m.scss │ │ │ │ ├── InGameLoadoutStrip.m.scss.d.ts │ │ │ │ ├── InGameLoadoutStrip.tsx │ │ │ │ ├── RadioButton.m.scss │ │ │ │ ├── RadioButton.m.scss.d.ts │ │ │ │ ├── RadioButton.tsx │ │ │ │ ├── SelectInGameLoadoutIdentifiers.m.scss │ │ │ │ ├── SelectInGameLoadoutIdentifiers.m.scss.d.ts │ │ │ │ ├── SelectInGameLoadoutIdentifiers.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── ingame-loadout-apply.ts │ │ │ │ ├── ingame-loadout-utils.ts │ │ │ │ ├── reducer.ts │ │ │ │ └── selectors.ts │ │ │ ├── known-values.ts │ │ │ ├── loadout-edit/ │ │ │ │ ├── LoadoutEdit.m.scss │ │ │ │ ├── LoadoutEdit.m.scss.d.ts │ │ │ │ ├── LoadoutEdit.tsx │ │ │ │ ├── LoadoutEditBucket.m.scss │ │ │ │ ├── LoadoutEditBucket.m.scss.d.ts │ │ │ │ ├── LoadoutEditBucket.tsx │ │ │ │ ├── LoadoutEditSection.m.scss │ │ │ │ ├── LoadoutEditSection.m.scss.d.ts │ │ │ │ ├── LoadoutEditSection.tsx │ │ │ │ ├── LoadoutEditSubclass.m.scss │ │ │ │ ├── LoadoutEditSubclass.m.scss.d.ts │ │ │ │ ├── LoadoutEditSubclass.tsx │ │ │ │ └── useEquipDropTargets.tsx │ │ │ ├── loadout-item-utils.ts │ │ │ ├── loadout-menu/ │ │ │ │ ├── LoadoutPopup.m.scss │ │ │ │ ├── LoadoutPopup.m.scss.d.ts │ │ │ │ ├── LoadoutPopup.tsx │ │ │ │ ├── LoadoutPopupRandomize.m.scss │ │ │ │ ├── LoadoutPopupRandomize.m.scss.d.ts │ │ │ │ ├── LoadoutPopupRandomize.tsx │ │ │ │ ├── MaxlightButton.m.scss │ │ │ │ ├── MaxlightButton.m.scss.d.ts │ │ │ │ └── MaxlightButton.tsx │ │ │ ├── loadout-share/ │ │ │ │ ├── LoadoutImportSheet.m.scss │ │ │ │ ├── LoadoutImportSheet.m.scss.d.ts │ │ │ │ ├── LoadoutImportSheet.tsx │ │ │ │ ├── LoadoutShareSheet.m.scss │ │ │ │ ├── LoadoutShareSheet.m.scss.d.ts │ │ │ │ ├── LoadoutShareSheet.tsx │ │ │ │ ├── loadout-import.test.ts │ │ │ │ └── loadout-import.ts │ │ │ ├── loadout-type-converters.ts │ │ │ ├── loadout-types.ts │ │ │ ├── loadout-ui/ │ │ │ │ ├── BucketPlaceholder.m.scss │ │ │ │ ├── BucketPlaceholder.m.scss.d.ts │ │ │ │ ├── BucketPlaceholder.tsx │ │ │ │ ├── EmptySubclass.tsx │ │ │ │ ├── FashionMods.m.scss │ │ │ │ ├── FashionMods.m.scss.d.ts │ │ │ │ ├── FashionMods.tsx │ │ │ │ ├── LoadoutItemCategorySection.m.scss │ │ │ │ ├── LoadoutItemCategorySection.m.scss.d.ts │ │ │ │ ├── LoadoutItemCategorySection.tsx │ │ │ │ ├── LoadoutMods.m.scss │ │ │ │ ├── LoadoutMods.m.scss.d.ts │ │ │ │ ├── LoadoutMods.tsx │ │ │ │ ├── LoadoutParametersDisplay.m.scss │ │ │ │ ├── LoadoutParametersDisplay.m.scss.d.ts │ │ │ │ ├── LoadoutParametersDisplay.tsx │ │ │ │ ├── LoadoutSubclassSection.m.scss │ │ │ │ ├── LoadoutSubclassSection.m.scss.d.ts │ │ │ │ ├── LoadoutSubclassSection.tsx │ │ │ │ ├── OptimizerButton.tsx │ │ │ │ ├── PlugDef.tsx │ │ │ │ ├── Sockets.m.scss │ │ │ │ ├── Sockets.m.scss.d.ts │ │ │ │ ├── Sockets.tsx │ │ │ │ ├── menu-hooks.m.scss │ │ │ │ ├── menu-hooks.m.scss.d.ts │ │ │ │ └── menu-hooks.tsx │ │ │ ├── loadouts-selector.ts │ │ │ ├── mod-assignment-drawer/ │ │ │ │ ├── ModAssignmentDrawer.m.scss │ │ │ │ ├── ModAssignmentDrawer.m.scss.d.ts │ │ │ │ ├── ModAssignmentDrawer.tsx │ │ │ │ └── selectors.ts │ │ │ ├── mod-assignment-utils.test.ts │ │ │ ├── mod-assignment-utils.ts │ │ │ ├── mod-permutations.ts │ │ │ ├── mod-utils.ts │ │ │ ├── mutually-exclusive-mods.d.ts │ │ │ ├── plug-drawer/ │ │ │ │ ├── Footer.m.scss │ │ │ │ ├── Footer.m.scss.d.ts │ │ │ │ ├── Footer.tsx │ │ │ │ ├── PlugDrawer.tsx │ │ │ │ ├── PlugSection.m.scss │ │ │ │ ├── PlugSection.m.scss.d.ts │ │ │ │ ├── PlugSection.tsx │ │ │ │ ├── PlugStackableIcon.m.scss │ │ │ │ ├── PlugStackableIcon.m.scss.d.ts │ │ │ │ ├── PlugStackableIcon.tsx │ │ │ │ ├── SelectablePlug.m.scss │ │ │ │ ├── SelectablePlug.m.scss.d.ts │ │ │ │ ├── SelectablePlug.tsx │ │ │ │ └── types.ts │ │ │ ├── reducer.ts │ │ │ ├── selectors.ts │ │ │ ├── spreadsheets.ts │ │ │ └── stats.ts │ │ ├── loadout-analyzer/ │ │ │ ├── analysis.test.ts │ │ │ ├── analysis.ts │ │ │ ├── finding-display.ts │ │ │ ├── hooks.tsx │ │ │ ├── store.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── loadout-builder/ │ │ │ ├── LoadoutBucketDropTarget.m.scss │ │ │ ├── LoadoutBucketDropTarget.m.scss.d.ts │ │ │ ├── LoadoutBucketDropTarget.tsx │ │ │ ├── LoadoutBuilder.m.scss │ │ │ ├── LoadoutBuilder.m.scss.d.ts │ │ │ ├── LoadoutBuilder.tsx │ │ │ ├── LoadoutBuilderContainer.tsx │ │ │ ├── LoadoutBuilderItem.tsx │ │ │ ├── NoBuildsFoundExplainer.m.scss │ │ │ ├── NoBuildsFoundExplainer.m.scss.d.ts │ │ │ ├── NoBuildsFoundExplainer.tsx │ │ │ ├── README.md │ │ │ ├── example-search.ts │ │ │ ├── filter/ │ │ │ │ ├── EnergyOptions.m.scss │ │ │ │ ├── EnergyOptions.m.scss.d.ts │ │ │ │ ├── EnergyOptions.tsx │ │ │ │ ├── ExoticArmorChoice.m.scss │ │ │ │ ├── ExoticArmorChoice.m.scss.d.ts │ │ │ │ ├── ExoticArmorChoice.tsx │ │ │ │ ├── ExoticPicker.m.scss │ │ │ │ ├── ExoticPicker.m.scss.d.ts │ │ │ │ ├── ExoticPicker.tsx │ │ │ │ ├── ExoticTile.m.scss │ │ │ │ ├── ExoticTile.m.scss.d.ts │ │ │ │ ├── ExoticTile.tsx │ │ │ │ ├── LoadoutOptimizerExotic.m.scss │ │ │ │ ├── LoadoutOptimizerExotic.m.scss.d.ts │ │ │ │ ├── LoadoutOptimizerExotic.tsx │ │ │ │ ├── LoadoutOptimizerMenuItems.m.scss │ │ │ │ ├── LoadoutOptimizerMenuItems.m.scss.d.ts │ │ │ │ ├── LoadoutOptimizerMenuItems.tsx │ │ │ │ ├── LoadoutOptimizerSetBonus.m.scss │ │ │ │ ├── LoadoutOptimizerSetBonus.m.scss.d.ts │ │ │ │ ├── LoadoutOptimizerSetBonus.tsx │ │ │ │ ├── LockedItem.tsx │ │ │ │ ├── NewFeaturedGearFilter.m.scss │ │ │ │ ├── NewFeaturedGearFilter.m.scss.d.ts │ │ │ │ ├── NewFeaturedGearFilter.tsx │ │ │ │ ├── TierlessStatConstraintEditor.m.scss │ │ │ │ ├── TierlessStatConstraintEditor.m.scss.d.ts │ │ │ │ └── TierlessStatConstraintEditor.tsx │ │ │ ├── generated-sets/ │ │ │ │ ├── CompareLoadoutsDrawer.m.scss │ │ │ │ ├── CompareLoadoutsDrawer.m.scss.d.ts │ │ │ │ ├── CompareLoadoutsDrawer.tsx │ │ │ │ ├── GeneratedSet.m.scss │ │ │ │ ├── GeneratedSet.m.scss.d.ts │ │ │ │ ├── GeneratedSet.tsx │ │ │ │ ├── GeneratedSetButtons.m.scss │ │ │ │ ├── GeneratedSetButtons.m.scss.d.ts │ │ │ │ ├── GeneratedSetButtons.tsx │ │ │ │ ├── GeneratedSetItem.m.scss │ │ │ │ ├── GeneratedSetItem.m.scss.d.ts │ │ │ │ ├── GeneratedSetItem.tsx │ │ │ │ ├── GeneratedSets.tsx │ │ │ │ ├── SetStats.m.scss │ │ │ │ ├── SetStats.m.scss.d.ts │ │ │ │ ├── SetStats.tsx │ │ │ │ └── utils.ts │ │ │ ├── item-filter.test.ts │ │ │ ├── item-filter.ts │ │ │ ├── loadout-builder-reducer.ts │ │ │ ├── loadout-builder-vendors.ts │ │ │ ├── loadout-params.test.ts │ │ │ ├── loadout-params.ts │ │ │ ├── process/ │ │ │ │ ├── mappers.test.ts │ │ │ │ ├── mappers.ts │ │ │ │ ├── process-wrapper.ts │ │ │ │ └── useProcess.ts │ │ │ ├── process-worker/ │ │ │ │ ├── ProcessWorker.ts │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── auto-stat-mod-utils.test.ts.snap │ │ │ │ │ └── process-utils.test.ts.snap │ │ │ │ ├── auto-stat-mod-utils.test.ts │ │ │ │ ├── auto-stat-mod-utils.ts │ │ │ │ ├── process-utils.test.ts │ │ │ │ ├── process-utils.ts │ │ │ │ ├── process.ts │ │ │ │ ├── set-tracker.test.ts │ │ │ │ ├── set-tracker.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── types.ts │ │ │ ├── types.ts │ │ │ ├── updated-loadout.ts │ │ │ ├── useEquippedHashes.ts │ │ │ └── utils.ts │ │ ├── loadout-drawer/ │ │ │ ├── LoadoutDrawer.m.scss │ │ │ ├── LoadoutDrawer.m.scss.d.ts │ │ │ ├── LoadoutDrawer.tsx │ │ │ ├── LoadoutDrawerContainer.tsx │ │ │ ├── LoadoutDrawerDropTarget.m.scss │ │ │ ├── LoadoutDrawerDropTarget.m.scss.d.ts │ │ │ ├── LoadoutDrawerDropTarget.tsx │ │ │ ├── LoadoutDrawerFooter.m.scss │ │ │ ├── LoadoutDrawerFooter.m.scss.d.ts │ │ │ ├── LoadoutDrawerFooter.tsx │ │ │ ├── LoadoutDrawerHeader.m.scss │ │ │ ├── LoadoutDrawerHeader.m.scss.d.ts │ │ │ ├── LoadoutDrawerHeader.tsx │ │ │ ├── auto-loadouts.ts │ │ │ ├── loadout-apply-state.ts │ │ │ ├── loadout-apply.ts │ │ │ ├── loadout-drawer-reducer.test.ts │ │ │ ├── loadout-drawer-reducer.ts │ │ │ ├── loadout-events.ts │ │ │ ├── loadout-item-conversion.ts │ │ │ ├── loadout-utils.ts │ │ │ └── postmaster.ts │ │ ├── login/ │ │ │ ├── Login.m.scss │ │ │ ├── Login.m.scss.d.ts │ │ │ └── Login.tsx │ │ ├── main.scss │ │ ├── manifest/ │ │ │ ├── actions.ts │ │ │ ├── d1-manifest-service.ts │ │ │ ├── manifest-service-json.ts │ │ │ ├── reducer.ts │ │ │ └── selectors.ts │ │ ├── material-counts/ │ │ │ ├── MaterialCounts.m.scss │ │ │ ├── MaterialCounts.m.scss.d.ts │ │ │ ├── MaterialCounts.tsx │ │ │ ├── MaterialCountsWrappers.m.scss │ │ │ ├── MaterialCountsWrappers.m.scss.d.ts │ │ │ └── MaterialCountsWrappers.tsx │ │ ├── notifications/ │ │ │ ├── Notification.m.scss │ │ │ ├── Notification.m.scss.d.ts │ │ │ ├── Notification.tsx │ │ │ ├── NotificationButton.m.scss │ │ │ ├── NotificationButton.m.scss.d.ts │ │ │ ├── NotificationButton.tsx │ │ │ ├── NotificationsContainer.m.scss │ │ │ ├── NotificationsContainer.m.scss.d.ts │ │ │ ├── NotificationsContainer.tsx │ │ │ └── notifications.ts │ │ ├── organizer/ │ │ │ ├── Columns.m.scss │ │ │ ├── Columns.m.scss.d.ts │ │ │ ├── Columns.tsx │ │ │ ├── CustomStatColumns.tsx │ │ │ ├── DropDown.m.scss │ │ │ ├── DropDown.m.scss.d.ts │ │ │ ├── DropDown.tsx │ │ │ ├── EnabledColumnsSelector.tsx │ │ │ ├── ItemActions.m.scss │ │ │ ├── ItemActions.m.scss.d.ts │ │ │ ├── ItemActions.tsx │ │ │ ├── ItemTable.m.scss │ │ │ ├── ItemTable.m.scss.d.ts │ │ │ ├── ItemTable.tsx │ │ │ ├── ItemTypeSelector.m.scss │ │ │ ├── ItemTypeSelector.m.scss.d.ts │ │ │ ├── ItemTypeSelector.tsx │ │ │ ├── Organizer.m.scss │ │ │ ├── Organizer.m.scss.d.ts │ │ │ ├── Organizer.tsx │ │ │ └── table-types.ts │ │ ├── progress/ │ │ │ ├── ActivityModifier.m.scss │ │ │ ├── ActivityModifier.m.scss.d.ts │ │ │ ├── ActivityModifier.tsx │ │ │ ├── BountyGuide.m.scss │ │ │ ├── BountyGuide.m.scss.d.ts │ │ │ ├── BountyGuide.tsx │ │ │ ├── Event.m.scss │ │ │ ├── Event.m.scss.d.ts │ │ │ ├── Event.tsx │ │ │ ├── FactionIcon.m.scss │ │ │ ├── FactionIcon.m.scss.d.ts │ │ │ ├── FactionIcon.tsx │ │ │ ├── Milestones.m.scss │ │ │ ├── Milestones.m.scss.d.ts │ │ │ ├── Milestones.tsx │ │ │ ├── Objective.m.scss │ │ │ ├── Objective.m.scss.d.ts │ │ │ ├── Objective.tsx │ │ │ ├── Pathfinder.m.scss │ │ │ ├── Pathfinder.m.scss.d.ts │ │ │ ├── Pathfinder.tsx │ │ │ ├── Progress.m.scss │ │ │ ├── Progress.m.scss.d.ts │ │ │ ├── Progress.tsx │ │ │ ├── Pursuit.tsx │ │ │ ├── PursuitGrid.m.scss │ │ │ ├── PursuitGrid.m.scss.d.ts │ │ │ ├── PursuitGrid.tsx │ │ │ ├── PursuitItem.m.scss │ │ │ ├── PursuitItem.m.scss.d.ts │ │ │ ├── PursuitItem.tsx │ │ │ ├── Pursuits.tsx │ │ │ ├── Raid.tsx │ │ │ ├── RaidDisplay.m.scss │ │ │ ├── RaidDisplay.m.scss.d.ts │ │ │ ├── RaidDisplay.tsx │ │ │ ├── Raids.tsx │ │ │ ├── Ranks.tsx │ │ │ ├── ReputationRank.m.scss │ │ │ ├── ReputationRank.m.scss.d.ts │ │ │ ├── ReputationRank.tsx │ │ │ ├── Reward.m.scss │ │ │ ├── Reward.m.scss.d.ts │ │ │ ├── Reward.tsx │ │ │ ├── SeasonalChallenges.tsx │ │ │ ├── SeasonalRank.m.scss │ │ │ ├── SeasonalRank.m.scss.d.ts │ │ │ ├── SeasonalRank.tsx │ │ │ ├── TrackedTriumphs.m.scss │ │ │ ├── TrackedTriumphs.m.scss.d.ts │ │ │ ├── TrackedTriumphs.tsx │ │ │ ├── WellRestedPerkIcon.tsx │ │ │ ├── engrams.ts │ │ │ ├── milestone-items.ts │ │ │ ├── milestone.scss │ │ │ ├── selectors.ts │ │ │ └── xp.ts │ │ ├── records/ │ │ │ ├── Collectible.tsx │ │ │ ├── CollectiblesGrid.m.scss │ │ │ ├── CollectiblesGrid.m.scss.d.ts │ │ │ ├── CollectiblesGrid.tsx │ │ │ ├── Craftable.tsx │ │ │ ├── Metric.m.scss │ │ │ ├── Metric.m.scss.d.ts │ │ │ ├── Metric.tsx │ │ │ ├── MetricBanner.m.scss │ │ │ ├── MetricBanner.m.scss.d.ts │ │ │ ├── MetricBanner.tsx │ │ │ ├── Metrics.m.scss │ │ │ ├── Metrics.m.scss.d.ts │ │ │ ├── Metrics.tsx │ │ │ ├── PresentationNode.m.scss │ │ │ ├── PresentationNode.m.scss.d.ts │ │ │ ├── PresentationNode.tsx │ │ │ ├── PresentationNodeLeaf.tsx │ │ │ ├── PresentationNodeRoot.m.scss │ │ │ ├── PresentationNodeRoot.m.scss.d.ts │ │ │ ├── PresentationNodeRoot.tsx │ │ │ ├── PresentationNodeSearchResults.m.scss │ │ │ ├── PresentationNodeSearchResults.m.scss.d.ts │ │ │ ├── PresentationNodeSearchResults.tsx │ │ │ ├── Record.m.scss │ │ │ ├── Record.m.scss.d.ts │ │ │ ├── Record.tsx │ │ │ ├── Records.m.scss │ │ │ ├── Records.m.scss.d.ts │ │ │ ├── Records.tsx │ │ │ ├── SetCard.m.scss │ │ │ ├── SetCard.m.scss.d.ts │ │ │ ├── SetCard.tsx │ │ │ ├── _set-card.scss │ │ │ ├── catalysts.ts │ │ │ ├── collectible-matching.ts │ │ │ ├── extra-collectibles.d.ts │ │ │ ├── plugset-helpers.ts │ │ │ ├── presentation-nodes.ts │ │ │ ├── selectors.ts │ │ │ └── universal-ornaments/ │ │ │ ├── UniversalOrnaments.m.scss │ │ │ ├── UniversalOrnaments.m.scss.d.ts │ │ │ ├── UniversalOrnaments.tsx │ │ │ └── universal-ornaments.ts │ │ ├── register-service-worker.test.ts │ │ ├── register-service-worker.ts │ │ ├── routes.ts │ │ ├── safari-touch-fix.ts │ │ ├── search/ │ │ │ ├── FilterHelp.m.scss │ │ │ ├── FilterHelp.m.scss.d.ts │ │ │ ├── FilterHelp.tsx │ │ │ ├── HighlightedText.tsx │ │ │ ├── MainSearchBarActions.m.scss │ │ │ ├── MainSearchBarActions.m.scss.d.ts │ │ │ ├── MainSearchBarActions.tsx │ │ │ ├── MainSearchBarMenu.tsx │ │ │ ├── SearchBar.m.scss │ │ │ ├── SearchBar.m.scss.d.ts │ │ │ ├── SearchBar.tsx │ │ │ ├── SearchFilter.tsx │ │ │ ├── SearchHistory.m.scss │ │ │ ├── SearchHistory.m.scss.d.ts │ │ │ ├── SearchHistory.tsx │ │ │ ├── SearchInput.tsx │ │ │ ├── SearchResults.m.scss │ │ │ ├── SearchResults.m.scss.d.ts │ │ │ ├── SearchResults.tsx │ │ │ ├── __snapshots__/ │ │ │ │ ├── autocomplete.test.ts.snap │ │ │ │ ├── query-parser.test.ts.snap │ │ │ │ ├── search-config.test.ts.snap │ │ │ │ └── search-filter.test.ts.snap │ │ │ ├── armory-search.ts │ │ │ ├── autocomplete.test.ts │ │ │ ├── autocomplete.ts │ │ │ ├── d1-known-values.ts │ │ │ ├── d2-known-values.ts │ │ │ ├── filter-description.tsx │ │ │ ├── filter-types.ts │ │ │ ├── items/ │ │ │ │ ├── item-filter-types.ts │ │ │ │ ├── item-search-filter.ts │ │ │ │ └── search-filters/ │ │ │ │ ├── advanced.ts │ │ │ │ ├── d1-filters.ts │ │ │ │ ├── d2-sources.ts │ │ │ │ ├── data/ │ │ │ │ │ └── d2/ │ │ │ │ │ └── artifact-breaker-weapon-types.d.ts │ │ │ │ ├── dupes-deprecated.ts │ │ │ │ ├── dupes.ts │ │ │ │ ├── freeform.ts │ │ │ │ ├── item-infos.ts │ │ │ │ ├── known-values.ts │ │ │ │ ├── loadouts.ts │ │ │ │ ├── perks-set.ts │ │ │ │ ├── range-numeric.ts │ │ │ │ ├── range-overload.ts │ │ │ │ ├── simple.ts │ │ │ │ ├── sockets.ts │ │ │ │ ├── stats.ts │ │ │ │ ├── stores.ts │ │ │ │ └── wishlist.ts │ │ │ ├── loadouts/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── loadout-search-filter.test.ts.snap │ │ │ │ ├── loadout-filter-types.ts │ │ │ │ ├── loadout-search-filter.test.ts │ │ │ │ ├── loadout-search-filter.ts │ │ │ │ └── search-filters/ │ │ │ │ ├── freeform.ts │ │ │ │ ├── range-overload.ts │ │ │ │ └── simple.ts │ │ │ ├── plug-search.ts │ │ │ ├── power-levels.ts │ │ │ ├── query-parser.test.ts │ │ │ ├── query-parser.ts │ │ │ ├── search-config.test.ts │ │ │ ├── search-config.ts │ │ │ ├── search-filter-values.test.ts │ │ │ ├── search-filter-values.ts │ │ │ ├── search-filter.scss │ │ │ ├── search-filter.test.ts │ │ │ ├── search-filter.ts │ │ │ ├── specialty-modslots.ts │ │ │ ├── suggestions-generation.ts │ │ │ └── text-utils.ts │ │ ├── settings/ │ │ │ ├── CharacterOrderEditor.m.scss │ │ │ ├── CharacterOrderEditor.m.scss.d.ts │ │ │ ├── CharacterOrderEditor.tsx │ │ │ ├── Checkbox.tsx │ │ │ ├── CustomStatsSettings.m.scss │ │ │ ├── CustomStatsSettings.m.scss.d.ts │ │ │ ├── CustomStatsSettings.tsx │ │ │ ├── LanguageSetting.tsx │ │ │ ├── Select.m.scss │ │ │ ├── Select.m.scss.d.ts │ │ │ ├── Select.tsx │ │ │ ├── SettingsPage.m.scss │ │ │ ├── SettingsPage.m.scss.d.ts │ │ │ ├── SettingsPage.tsx │ │ │ ├── SortOrderEditor.m.scss │ │ │ ├── SortOrderEditor.m.scss.d.ts │ │ │ ├── SortOrderEditor.tsx │ │ │ ├── Spreadsheets.m.scss │ │ │ ├── Spreadsheets.m.scss.d.ts │ │ │ ├── Spreadsheets.tsx │ │ │ ├── Troubleshooting.tsx │ │ │ ├── WishListSettings.m.scss │ │ │ ├── WishListSettings.m.scss.d.ts │ │ │ ├── WishListSettings.tsx │ │ │ ├── actions.ts │ │ │ ├── character-sort.ts │ │ │ ├── hooks.ts │ │ │ ├── initial-settings.ts │ │ │ ├── item-sort.ts │ │ │ ├── settings.ts │ │ │ ├── vault-grouping.test.ts │ │ │ └── vault-grouping.ts │ │ ├── shell/ │ │ │ ├── About.m.scss │ │ │ ├── About.m.scss.d.ts │ │ │ ├── About.tsx │ │ │ ├── AppInstallBanner.m.scss │ │ │ ├── AppInstallBanner.m.scss.d.ts │ │ │ ├── AppInstallBanner.tsx │ │ │ ├── DefaultAccount.tsx │ │ │ ├── Destiny.m.scss │ │ │ ├── Destiny.m.scss.d.ts │ │ │ ├── Destiny.tsx │ │ │ ├── ErrorPanel.m.scss │ │ │ ├── ErrorPanel.m.scss.d.ts │ │ │ ├── ErrorPanel.tsx │ │ │ ├── GATracker.tsx │ │ │ ├── Header.m.scss │ │ │ ├── Header.m.scss.d.ts │ │ │ ├── Header.tsx │ │ │ ├── HeaderWarningBanner.m.scss │ │ │ ├── HeaderWarningBanner.m.scss.d.ts │ │ │ ├── HeaderWarningBanner.tsx │ │ │ ├── LocationSwitcher.tsx │ │ │ ├── MenuBadge.m.scss │ │ │ ├── MenuBadge.m.scss.d.ts │ │ │ ├── MenuBadge.tsx │ │ │ ├── PostmasterWarningBanner.tsx │ │ │ ├── Privacy.m.scss │ │ │ ├── Privacy.m.scss.d.ts │ │ │ ├── Privacy.tsx │ │ │ ├── RefreshButton.m.scss │ │ │ ├── RefreshButton.m.scss.d.ts │ │ │ ├── RefreshButton.tsx │ │ │ ├── ScrollToTop.tsx │ │ │ ├── SneakyUpdates.tsx │ │ │ ├── actions.ts │ │ │ ├── alerts.ts │ │ │ ├── app-install.ts │ │ │ ├── formatters.ts │ │ │ ├── icons/ │ │ │ │ ├── AppIcon.scss │ │ │ │ ├── AppIcon.tsx │ │ │ │ ├── Library.js │ │ │ │ ├── custom/ │ │ │ │ │ ├── Artifice.ts │ │ │ │ │ ├── Engram.ts │ │ │ │ │ ├── Enhanced.ts │ │ │ │ │ ├── Epic.ts │ │ │ │ │ ├── FeaturedBanner.ts │ │ │ │ │ ├── Hunter.ts │ │ │ │ │ ├── HunterProportional.ts │ │ │ │ │ ├── MasterworkHammer.ts │ │ │ │ │ ├── Power.ts │ │ │ │ │ ├── PowerAlt.ts │ │ │ │ │ ├── Shaped.ts │ │ │ │ │ ├── StatBarsIcon.ts │ │ │ │ │ ├── Titan.ts │ │ │ │ │ ├── TitanProportional.ts │ │ │ │ │ ├── TunedStatIcon.ts │ │ │ │ │ ├── Warlock.ts │ │ │ │ │ ├── WarlockProportional.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── font-awesome-icon-variables.scss │ │ │ │ ├── font-awesome.scss │ │ │ │ └── index.ts │ │ │ ├── item-comparators.ts │ │ │ ├── links.ts │ │ │ ├── loading-tracker.ts │ │ │ ├── reducer.ts │ │ │ ├── refresh-events.ts │ │ │ └── selectors.ts │ │ ├── storage/ │ │ │ ├── DimApiSettings.m.scss │ │ │ ├── DimApiSettings.m.scss.d.ts │ │ │ ├── DimApiSettings.tsx │ │ │ ├── DimApiWarningBanner.tsx │ │ │ ├── ImportExport.tsx │ │ │ ├── LocalStorageInfo.m.scss │ │ │ ├── LocalStorageInfo.m.scss.d.ts │ │ │ ├── LocalStorageInfo.tsx │ │ │ ├── export-data.ts │ │ │ ├── human-bytes.ts │ │ │ └── idb-keyval.ts │ │ ├── store/ │ │ │ ├── observerMiddleware.ts │ │ │ ├── reducers.ts │ │ │ ├── store.ts │ │ │ ├── thunk-dispatch.ts │ │ │ └── types.ts │ │ ├── store-stats/ │ │ │ ├── AccountCurrencies.m.scss │ │ │ ├── AccountCurrencies.m.scss.d.ts │ │ │ ├── AccountCurrencies.tsx │ │ │ ├── CharacterStats.m.scss │ │ │ ├── CharacterStats.m.scss.d.ts │ │ │ ├── CharacterStats.tsx │ │ │ ├── ClarityCharacterStat.m.scss │ │ │ ├── ClarityCharacterStat.m.scss.d.ts │ │ │ ├── ClarityCharacterStat.tsx │ │ │ ├── D1CharacterStats.m.scss │ │ │ ├── D1CharacterStats.m.scss.d.ts │ │ │ ├── D1CharacterStats.tsx │ │ │ ├── StatTooltip.m.scss │ │ │ ├── StatTooltip.m.scss.d.ts │ │ │ ├── StatTooltip.tsx │ │ │ ├── StoreStats.m.scss │ │ │ ├── StoreStats.m.scss.d.ts │ │ │ ├── StoreStats.tsx │ │ │ ├── VaultCapacity.m.scss │ │ │ ├── VaultCapacity.m.scss.d.ts │ │ │ └── VaultCapacity.tsx │ │ ├── stream-deck/ │ │ │ ├── OpenOnStreamDeckButton/ │ │ │ │ ├── OpenOnStreamDeckButton.m.scss │ │ │ │ ├── OpenOnStreamDeckButton.m.scss.d.ts │ │ │ │ └── OpenOnStreamDeckButton.tsx │ │ │ ├── StreamDeckButton/ │ │ │ │ ├── StreamDeckButton.m.scss │ │ │ │ ├── StreamDeckButton.m.scss.d.ts │ │ │ │ └── StreamDeckButton.tsx │ │ │ ├── StreamDeckSettings/ │ │ │ │ ├── StreamDeckSettings.m.scss │ │ │ │ ├── StreamDeckSettings.m.scss.d.ts │ │ │ │ └── StreamDeckSettings.tsx │ │ │ ├── actions.ts │ │ │ ├── async-module.ts │ │ │ ├── interfaces.ts │ │ │ ├── msg-handlers.ts │ │ │ ├── reducer.ts │ │ │ ├── selectors.ts │ │ │ ├── stream-deck.ts │ │ │ ├── useStreamDeckSelection.ts │ │ │ └── util/ │ │ │ ├── authorization.ts │ │ │ ├── packager.ts │ │ │ └── version.ts │ │ ├── strip-sockets/ │ │ │ ├── StripSockets.m.scss │ │ │ ├── StripSockets.m.scss.d.ts │ │ │ ├── StripSockets.tsx │ │ │ ├── strip-sockets-actions.ts │ │ │ └── strip-sockets.ts │ │ ├── themes/ │ │ │ ├── _theme-classic.scss │ │ │ ├── _theme-dimdark.scss │ │ │ ├── _theme-europa.scss │ │ │ ├── _theme-neomuna.scss │ │ │ ├── _theme-pyramid.scss │ │ │ ├── _theme-throneworld.scss │ │ │ ├── _theme-vexnet.scss │ │ │ └── _theme.scss │ │ ├── utils/ │ │ │ ├── __snapshots__/ │ │ │ │ └── csv.test.ts.snap │ │ │ ├── action-queue.ts │ │ │ ├── app-badge.ts │ │ │ ├── browsers.ts │ │ │ ├── cancel.ts │ │ │ ├── collections.test.ts │ │ │ ├── collections.ts │ │ │ ├── comparators.ts │ │ │ ├── csv.test.ts │ │ │ ├── csv.ts │ │ │ ├── dim-error.ts │ │ │ ├── download.ts │ │ │ ├── empty.ts │ │ │ ├── errors.ts │ │ │ ├── functions.ts │ │ │ ├── hooks.ts │ │ │ ├── intl.test.ts │ │ │ ├── intl.ts │ │ │ ├── item-utils.ts │ │ │ ├── log.ts │ │ │ ├── measure-memory.ts │ │ │ ├── media-queries.ts │ │ │ ├── memoize.test.ts │ │ │ ├── memoize.ts │ │ │ ├── observable.ts │ │ │ ├── parallel-cores.ts │ │ │ ├── perk-utils.ts │ │ │ ├── plug-descriptions.ts │ │ │ ├── promises.test.ts │ │ │ ├── promises.ts │ │ │ ├── react.ts │ │ │ ├── seasons.ts │ │ │ ├── selectors.ts │ │ │ ├── sentry.ts │ │ │ ├── socket-utils.ts │ │ │ ├── stats-set.test.ts │ │ │ ├── stats-set.ts │ │ │ ├── stats.ts │ │ │ ├── system-info.ts │ │ │ ├── temp-container.scss │ │ │ ├── temp-container.ts │ │ │ ├── textarea-caret.ts │ │ │ ├── time.test.ts │ │ │ ├── time.ts │ │ │ ├── undo-redo-history.test.ts │ │ │ ├── undo-redo-history.ts │ │ │ ├── useWhatChanged.ts │ │ │ └── util-types.ts │ │ ├── vendors/ │ │ │ ├── Cost.m.scss │ │ │ ├── Cost.m.scss.d.ts │ │ │ ├── Cost.tsx │ │ │ ├── Vendor.m.scss │ │ │ ├── Vendor.m.scss.d.ts │ │ │ ├── Vendor.tsx │ │ │ ├── VendorItem.m.scss │ │ │ ├── VendorItem.m.scss.d.ts │ │ │ ├── VendorItemComponent.tsx │ │ │ ├── VendorItems.m.scss │ │ │ ├── VendorItems.m.scss.d.ts │ │ │ ├── VendorItems.tsx │ │ │ ├── Vendors.m.scss │ │ │ ├── Vendors.m.scss.d.ts │ │ │ ├── Vendors.tsx │ │ │ ├── VendorsMenu.m.scss │ │ │ ├── VendorsMenu.m.scss.d.ts │ │ │ ├── VendorsMenu.tsx │ │ │ ├── actions.ts │ │ │ ├── d2-vendors.test.ts │ │ │ ├── d2-vendors.ts │ │ │ ├── focusing-item-outputs.d.ts │ │ │ ├── hooks.ts │ │ │ ├── reducer.ts │ │ │ ├── selectors.ts │ │ │ ├── single-vendor/ │ │ │ │ ├── ArtifactUnlocks.m.scss │ │ │ │ ├── ArtifactUnlocks.m.scss.d.ts │ │ │ │ ├── ArtifactUnlocks.tsx │ │ │ │ ├── SingleVendor.m.scss │ │ │ │ ├── SingleVendor.m.scss.d.ts │ │ │ │ ├── SingleVendor.tsx │ │ │ │ ├── SingleVendorPage.m.scss │ │ │ │ ├── SingleVendorPage.m.scss.d.ts │ │ │ │ ├── SingleVendorPage.tsx │ │ │ │ ├── SingleVendorSheet.m.scss │ │ │ │ ├── SingleVendorSheet.m.scss.d.ts │ │ │ │ ├── SingleVendorSheet.tsx │ │ │ │ ├── SingleVendorSheetContainer.tsx │ │ │ │ └── single-vendor-sheet.ts │ │ │ ├── specialVendorStrings.d.ts │ │ │ └── vendor-item.ts │ │ ├── whats-new/ │ │ │ ├── BungieAlerts.m.scss │ │ │ ├── BungieAlerts.m.scss.d.ts │ │ │ ├── BungieAlerts.tsx │ │ │ ├── ChangeLog.scss │ │ │ ├── ChangeLog.tsx │ │ │ ├── WhatsNew.tsx │ │ │ ├── WhatsNewLink.m.scss │ │ │ ├── WhatsNewLink.m.scss.d.ts │ │ │ ├── WhatsNewLink.tsx │ │ │ └── versions.ts │ │ └── wishlists/ │ │ ├── WishListPerkThumb.m.scss │ │ ├── WishListPerkThumb.m.scss.d.ts │ │ ├── WishListPerkThumb.tsx │ │ ├── actions.ts │ │ ├── observers.ts │ │ ├── reducer.ts │ │ ├── selectors.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ ├── wishlist-fetch.ts │ │ ├── wishlist-file.test.ts │ │ ├── wishlist-file.ts │ │ └── wishlists.ts │ ├── authReturn.ts │ ├── backup.html │ ├── backup.ts │ ├── browsercheck-utils.js │ ├── browsercheck.js │ ├── browsercheck.test.ts │ ├── browserconfig.xml │ ├── build-browsercheck-utils.js │ ├── bungie-api-ts.d.ts │ ├── data/ │ │ ├── d1/ │ │ │ ├── manifests/ │ │ │ │ ├── d1-manifest-de.json │ │ │ │ ├── d1-manifest-de.json.br │ │ │ │ ├── d1-manifest-en.json │ │ │ │ ├── d1-manifest-en.json.br │ │ │ │ ├── d1-manifest-es.json │ │ │ │ ├── d1-manifest-es.json.br │ │ │ │ ├── d1-manifest-fr.json │ │ │ │ ├── d1-manifest-fr.json.br │ │ │ │ ├── d1-manifest-it.json │ │ │ │ ├── d1-manifest-it.json.br │ │ │ │ ├── d1-manifest-ja.json │ │ │ │ ├── d1-manifest-ja.json.br │ │ │ │ ├── d1-manifest-pt-br.json │ │ │ │ └── d1-manifest-pt-br.json.br │ │ │ └── missing_sources.json │ │ ├── d2/ │ │ │ ├── README.md │ │ │ ├── artifact-breaker-weapon-types.json │ │ │ ├── bad-vendors.json │ │ │ ├── bright-engram-bonus.json │ │ │ ├── bright-engrams.json │ │ │ ├── catalyst-triumph-icons.json │ │ │ ├── craftable-hashes.json │ │ │ ├── crafting-enhanced-intrinsics.ts │ │ │ ├── crafting-mementos.json │ │ │ ├── d2-event-info-v2.ts │ │ │ ├── d2-event-info.ts │ │ │ ├── d2-season-info.ts │ │ │ ├── d2-trials-objectives.json │ │ │ ├── deprecated-mods.json │ │ │ ├── dummy-catalyst-mapping.json │ │ │ ├── empty-plug-hashes.ts │ │ │ ├── energy-mods-change.json │ │ │ ├── energy-mods.json │ │ │ ├── engram-rarity-icons.json │ │ │ ├── events.json │ │ │ ├── exotic-synergy.json │ │ │ ├── exotic-to-catalyst-record.json │ │ │ ├── exotics-with-catalysts.ts │ │ │ ├── extended-breaker.json │ │ │ ├── extended-foundry.json │ │ │ ├── extended-ich.json │ │ │ ├── focusing-item-outputs.json │ │ │ ├── generated-enums.ts │ │ │ ├── ghost-perks.json │ │ │ ├── item-def-workaround-replacements.json │ │ │ ├── legacy-triumphs.json │ │ │ ├── lightcap-to-season.json │ │ │ ├── masterworks-with-cond-stats.json │ │ │ ├── missing-faction-tokens.json │ │ │ ├── missing-source-info.ts │ │ │ ├── mods-with-bad-descriptions.json │ │ │ ├── mutually-exclusive-mods.json │ │ │ ├── objective-richTexts.ts │ │ │ ├── objective-triumph.json │ │ │ ├── powerful-rewards.json │ │ │ ├── pursuits.json │ │ │ ├── raid-mod-plug-category-hashes.json │ │ │ ├── reduced-cost-mod-mappings.ts │ │ │ ├── season-tags.json │ │ │ ├── season-to-source.json │ │ │ ├── seasonal-armor-mods.json │ │ │ ├── seasonal-challenges.json │ │ │ ├── seasons.json │ │ │ ├── seasons_backup.json │ │ │ ├── source-info-v2.ts │ │ │ ├── source-info.ts │ │ │ ├── source-to-season-v2.json │ │ │ ├── sources.json │ │ │ ├── special-vendors-strings.json │ │ │ ├── spider-mats.json │ │ │ ├── spider-purchaseables-to-mats.json │ │ │ ├── subclass-plug-category-hashes.json │ │ │ ├── trait-definition-ids.json │ │ │ ├── trait-to-enhanced-trait.json │ │ │ ├── universal-ornament-aux-sets.json │ │ │ ├── universal-ornament-plugset-hashes.json │ │ │ ├── unreferenced-collections-items.json │ │ │ ├── unstackable-mods.json │ │ │ ├── voice-dim-valid-perks.json │ │ │ ├── watermark-to-event.json │ │ │ ├── watermark-to-season.json │ │ │ └── weapon-from-quest.json │ │ └── font/ │ │ ├── d2-font-glyphs.ts │ │ ├── dim-custom-symbols.ts │ │ └── symbol-name-sources.ts │ ├── earlyErrorReport.js │ ├── fa-subset.js │ ├── global.d.ts │ ├── htaccess │ ├── images/ │ │ └── holofoil-anim.apng │ ├── index.html │ ├── locale/ │ │ ├── de.json │ │ ├── en.json │ │ ├── es.json │ │ ├── esMX.json │ │ ├── fr.json │ │ ├── it.json │ │ ├── ja.json │ │ ├── ko.json │ │ ├── locales.test.ts │ │ ├── pl.json │ │ ├── ptBR.json │ │ ├── ru.json │ │ ├── zhCHS.json │ │ └── zhCHT.json │ ├── nuke.php │ ├── return.html │ ├── robots.txt │ ├── service-worker.ts │ └── testing/ │ ├── data/ │ │ ├── d1profiles-2022-10-24.json │ │ ├── linkedaccounts-2025-07-15.json │ │ ├── profile-2025-12-02.json │ │ └── vendors-2025-12-02.json │ ├── global.d.ts │ ├── jest-setup.cjs │ ├── precache-manifest.test.ts │ ├── test-item-utils.ts │ ├── test-utils.ts │ └── utils/ │ └── i18next.ts └── tsconfig.json