* Extend FIRE page with projection information at retirement date
* Update changelog
---------
Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
* feat(lib): move ConfirmationDialogType to common lib
* fix(lib): move SubscriptionType to enums
* feat(lib): move validateObjectForForm util to common lib
* feat(lib): move GfDialogFooterComponent to ui lib
* feat(lib): move GfDialogHeaderComponent to ui lib
* feat(lib): move SymbolPipe to common lib
* feat(lib): move CreateAccountBalanceDto to common lib
* feat(lib): move IsCurrencyCode validator to common lib
* feat(lib): move UpdateAssetProfileDto to common lib
* feat(lib): move UpdateUserSettingDto to common lib
* feat(lib): move CreateAccessDto to common lib
* feat(lib): move UpdateAccessDto to common lib
* feat(lib): move CreateTagDto to common lib
* feat(lib): move UpdateTagDto to common lib
* feat(lib): move CreatePlatformDto to common lib
* feat(lib): move UpdatePlatformDto to common lib
* feat(lib): move CreateOrderDto to common lib
* feat(lib): move UpdateOrderDto to common lib
* feat(lib): move RuleSettings interface to common lib
* feat(lib): move CreateAccountDto TransferBalanceDto UpdateAccountDto to common lib
* feat(lib): move CreateAccountWithBalancesDto to common lib
* feat(lib): move CreateAssetProfileDto and CreateAssetProfileWithMarketDataDto to common lib
* feat(lib): move AuthDeviceDto to common lib
* feat(lib): move simplewebauthn interfaces to common lib
This includes AssertionCredentialJSON, AttestationCredentialJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON.
* feat(lib): move UpdateMarketDataDto to common lib
* feat(lib): move UpdateBulkMarketDataDto to common lib
* feat(lib): move CreateWatchlistItemDto to common lib
* feat(lib): move DeleteOwnUserDto to common lib
* feat(lib): move UserItem interface to common lib
* feat(lib): move UpdateOwnAccessTokenDto to common lib
* feat(lib): move PropertyDto to common lib
Improve redactAttributes() performance by 2.4x (59%) on real-world scenarios.
Major optimizations:
- Replace JSON.parse(JSON.stringify()) with custom fastClone() function
- Implement iterative traversal with pointer-based queue (no recursion)
- Separate wildcard and conditional attribute mappings for faster processing
- Use Object.keys() instead of for...in for better performance
- Cache type checks to reduce repeated typeof operations
- Use Map for O(1) attribute lookups
Performance improvements:
- Real-world portfolios: 2.4x faster (1.182ms → 0.486ms)
- Wide objects: 3.3x faster (0.485ms → 0.149ms)
- Extreme depth: 1.3x faster (55.914ms → 42.710ms)
Benefits:
- No breaking changes - same API and behavior
- Eliminates recursion risk (no stack overflow)
- Better handling of edge cases (circular refs, Big.js)
- All existing tests pass