This commit introduces a critical abstraction layer for App Store component maps as part of resolving issue #23104. The changes include:

  1. Created App Registry Abstraction Layer (packages/lib/apps/registry.ts):

    • Provides getter functions for all App Store component maps
    • Creates a mockable seam for upcoming dynamic loading refactor
    • Maintains full type safety through exported types
  2. Refactored Component Usage:

    • Updated EventTypeAppCardInterface to use getEventTypeAddonMap()
    • Updated EventTypeAppSettingsInterface to use getEventTypeSettingsMap()
    • Updated AppSettings to use getAppSettingsComponentsMap()
    • Updated InstallAppButton to use getInstallAppButtonMap()
    • Updated AppSetupPage to use getAppSetupMap()
  3. Fortified Test Setup (setupVitest.ts):

    • Added comprehensive mocking for all registry functions
    • Enables per-test overrides while defaulting to original implementation
    • Prepares test suite for upcoming dynamic loading changes

Critical for Performance: This is a non-functional change that makes zero alterations to production behavior. All component maps continue to return the same static imports they always have. The abstraction layer created here will be the foundation for the subsequent dynamic loading implementation that will resolve the 10-12 second local development load times.

Test Results: Full test suite passes with 2133/2235 tests passing (existing timezone-related failures unrelated to these changes).

Related to #23104

/claim #23104

Claim

Total prize pool $2,000
Total paid $0
Status Pending
Submitted August 19, 2025
Last updated August 19, 2025

Contributors

VA

Vansh Gilhotra

@Vansh5632

100%

Sponsors

CA

Cal.com, Inc.

@cal

$2,000