@env-hopper/backend-core 2.0.1-alpha.2 → 2.0.1-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -5,9 +5,9 @@ import { Prisma, PrismaClient } from "@prisma/client";
5
5
  import * as better_auth0 from "better-auth";
6
6
  import { BetterAuthOptions, BetterAuthPlugin } from "better-auth";
7
7
  import { LanguageModel, Tool, tool } from "ai";
8
+ import { Express, Request, Response, Router } from "express";
8
9
  import * as _prisma_client_runtime_library0 from "@prisma/client/runtime/library";
9
10
  import { DefaultWithOverridesAndTemplate } from "@env-hopper/shared-core";
10
- import { Express, Request, Response, Router } from "express";
11
11
 
12
12
  //#region src/types/common/sharedTypes.d.ts
13
13
  interface EhMetaDictionary {
@@ -1523,6 +1523,11 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1523
1523
  * Creates one if it doesn't exist.
1524
1524
  */
1525
1525
  declare function getDbClient(): PrismaClient;
1526
+ /**
1527
+ * Sets the internal Prisma client instance.
1528
+ * Used by middleware to bridge with existing getDbClient() usage.
1529
+ */
1530
+ declare function setDbClient(client: PrismaClient): void;
1526
1531
  /**
1527
1532
  * Connects to the database.
1528
1533
  * Call this before performing database operations.
@@ -1580,5 +1585,230 @@ interface SyncAppCatalogResult {
1580
1585
  */
1581
1586
  declare function syncAppCatalog(apps: Array<AppForCatalog>): Promise<SyncAppCatalogResult>;
1582
1587
  //#endregion
1583
- export { AccessMethod, type AdminChatHandlerOptions, AppCatalogData, AppCategory, type AppForCatalog, AppRole, Approver, type AssetRestControllerConfig, type AuthConfig, type AuthRouter, AvailabilityMatrixData, AvailabilityVariant, type BetterAuth, BootstrapConfigData, BotAccess, BotProvider, DEFAULT_ADMIN_SYSTEM_PROMPT, type DatabaseClient, DisplayNamable, DocumentationAccess, EhAppCatalogData, EhAppCatalogDto, EhAppCatalogGroupDto, EhAppCatalogPageDto, EhAppIndexed, EhAppPageIndexed, EhAppUiIndexed, EhAppsMeta, EhBackendAppDto, EhBackendAppInput, EhBackendAppUIBaseInput, EhBackendAppUIInput, EhBackendCompanySpecificBackend, EhBackendCredentialInput, EhBackendDataFreshness, EhBackendDataSourceInput, EhBackendDataSourceInputCommon, EhBackendDataSourceInputDb, EhBackendDataSourceInputKafka, EhBackendDataVersion, EhBackendDeployableInput, EhBackendDeployment, EhBackendDeploymentInput, EhBackendEnvironmentInput, EhBackendPageInput, EhBackendTagDescriptionDataIndexed, EhBackendTagFixedTagValue, EhBackendTagsDescriptionDataIndexed, EhBackendUiDefaultsInput, EhBackendVersionsRequestParams, EhBackendVersionsReturn, EhContextIndexed, EhEnvIndexed, EhMetaDictionary, EhResourceIndexed, type EhStaticControllerContract, type EhTrpcContext, type EhTrpcContextOptions, EmailAccess, EnvBaseInfo, EnvInfoExtended, EnvSlug, type IconRestControllerConfig, JumpResourceSlug, LateResolvableParam, type MakeTFromPrismaModel, ManualAccess, type ObjectKeys, RenameRule, RenameRuleParams, ResourceJump, ResourceJumpGroup, ResourceJumpMetaInfo, ResourceJumpsData, ResourceJumpsExtendedData, type ScalarFilter, type ScalarKeys, type ScreenshotRestControllerConfig, SelfServiceAccess, SlugAndDisplayable, Sluggable, type SyncAppCatalogResult, type SyncAssetsConfig, TABLE_SYNC_MAGAZINE, type TRPCRouter, type TableSyncMagazine, type TableSyncMagazineModelNameKey, type TableSyncParamsPrisma, Tag, TicketingAccess, TicketingProvider, type UpsertIconInput, User, type UserWithGroups, connectDb, createAdminChatHandler, createAppCatalogAdminRouter, createAuth, createAuthRouter, createDatabaseTools, createEhTrpcContext, createPrismaDatabaseClient, createScreenshotRouter, createTrpcRouter, disconnectDb, getAdminGroupsFromEnv, getAssetByName, getAuthPluginsFromEnv, getAuthProvidersFromEnv, getDbClient, getUserGroups, isAdmin, isMemberOfAllGroups, isMemberOfAnyGroup, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, requireAdmin, requireGroups, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, tool, upsertIcon, upsertIcons, validateAuthConfig };
1588
+ //#region src/middleware/types.d.ts
1589
+ /**
1590
+ * Database connection configuration.
1591
+ * Supports both connection URL and structured config.
1592
+ */
1593
+ type EhDatabaseConfig = {
1594
+ url: string;
1595
+ } | {
1596
+ host: string;
1597
+ port: number;
1598
+ database: string;
1599
+ username: string;
1600
+ password: string;
1601
+ schema?: string;
1602
+ };
1603
+ /**
1604
+ * Auth configuration for Better Auth integration.
1605
+ */
1606
+ interface EhAuthConfig {
1607
+ /** Base URL for auth callbacks (e.g., 'http://localhost:4000') */
1608
+ baseURL: string;
1609
+ /** Secret for signing sessions (min 32 chars in production) */
1610
+ secret: string;
1611
+ /** OAuth providers configuration */
1612
+ providers?: BetterAuthOptions['socialProviders'];
1613
+ /** Additional Better Auth plugins (e.g., Okta) */
1614
+ plugins?: Array<BetterAuthPlugin>;
1615
+ /** Session expiration in seconds (default: 30 days) */
1616
+ sessionExpiresIn?: number;
1617
+ /** Session refresh threshold in seconds (default: 1 day) */
1618
+ sessionUpdateAge?: number;
1619
+ /** Application name shown in auth UI */
1620
+ appName?: string;
1621
+ }
1622
+ /**
1623
+ * Admin chat (AI) configuration.
1624
+ * When provided, enables the admin/chat endpoint.
1625
+ */
1626
+ interface EhAdminChatConfig {
1627
+ /** AI model instance from @ai-sdk/* packages */
1628
+ model: LanguageModel;
1629
+ /** System prompt for the AI assistant */
1630
+ systemPrompt?: string;
1631
+ /** Custom tools available to the AI */
1632
+ tools?: Record<string, Tool>;
1633
+ /** Validation function called before each request */
1634
+ validateConfig?: () => void;
1635
+ }
1636
+ /**
1637
+ * Feature toggles for enabling/disabling specific functionality.
1638
+ * All features are enabled by default.
1639
+ */
1640
+ interface EhFeatureToggles {
1641
+ /** Enable tRPC endpoints (default: true) */
1642
+ trpc?: boolean;
1643
+ /** Enable auth endpoints (default: true) */
1644
+ auth?: boolean;
1645
+ /** Enable icon REST endpoints (default: true) */
1646
+ icons?: boolean;
1647
+ /** Enable asset REST endpoints (default: true) */
1648
+ assets?: boolean;
1649
+ /** Enable screenshot REST endpoints (default: true) */
1650
+ screenshots?: boolean;
1651
+ /** Enable admin chat endpoint (default: true if adminChat config provided) */
1652
+ adminChat?: boolean;
1653
+ /** Enable legacy icon endpoint at /static/icon/:icon (default: false) */
1654
+ legacyIconEndpoint?: boolean;
1655
+ }
1656
+ /**
1657
+ * Company-specific backend can be provided as:
1658
+ * 1. Direct object implementing the interface
1659
+ * 2. Factory function called per-request (for DI integration)
1660
+ * 3. Async factory function
1661
+ */
1662
+ type EhBackendProvider = EhBackendCompanySpecificBackend | (() => EhBackendCompanySpecificBackend) | (() => Promise<EhBackendCompanySpecificBackend>);
1663
+ /**
1664
+ * Lifecycle hooks for database and middleware events.
1665
+ */
1666
+ interface EhLifecycleHooks {
1667
+ /** Called after database connection is established */
1668
+ onDatabaseConnected?: () => void | Promise<void>;
1669
+ /** Called before database disconnection (for cleanup) */
1670
+ onDatabaseDisconnecting?: () => void | Promise<void>;
1671
+ /** Called after all routes are registered - use to add custom routes */
1672
+ onRoutesRegistered?: (router: Router) => void | Promise<void>;
1673
+ /** Custom error handler for middleware errors */
1674
+ onError?: (error: Error, context: {
1675
+ path: string;
1676
+ }) => void;
1677
+ }
1678
+ /**
1679
+ * Main configuration options for the env-hopper middleware.
1680
+ */
1681
+ interface EhMiddlewareOptions {
1682
+ /**
1683
+ * Base path prefix for all routes (default: '/api')
1684
+ * - tRPC: {basePath}/trpc
1685
+ * - Auth: {basePath}/auth (note: auth basePath is hardcoded, this affects where router mounts)
1686
+ * - Icons: {basePath}/icons
1687
+ * - Assets: {basePath}/assets
1688
+ * - Screenshots: {basePath}/screenshots
1689
+ * - Admin Chat: {basePath}/admin/chat
1690
+ */
1691
+ basePath?: string;
1692
+ /**
1693
+ * Database connection configuration.
1694
+ * Required when icons, assets, or screenshots features are enabled.
1695
+ * Can be omitted when these features are disabled and you manage your own database.
1696
+ */
1697
+ database?: EhDatabaseConfig;
1698
+ /** Auth configuration (required) */
1699
+ auth: EhAuthConfig;
1700
+ /** Company-specific backend implementation (required) */
1701
+ backend: EhBackendProvider;
1702
+ /** AI admin chat configuration (optional) */
1703
+ adminChat?: EhAdminChatConfig;
1704
+ /** Feature toggles (all enabled by default) */
1705
+ features?: EhFeatureToggles;
1706
+ /** Lifecycle hooks */
1707
+ hooks?: EhLifecycleHooks;
1708
+ }
1709
+ /**
1710
+ * Result of middleware initialization.
1711
+ */
1712
+ interface EhMiddlewareResult {
1713
+ /** Express router with all env-hopper routes */
1714
+ router: Router;
1715
+ /** Better Auth instance (for extending auth functionality) */
1716
+ auth: BetterAuth;
1717
+ /** tRPC router (for extending with custom procedures) */
1718
+ trpcRouter: TRPCRouter;
1719
+ /** Connect to database (call during app startup) */
1720
+ connect: () => Promise<void>;
1721
+ /** Disconnect from database (call during app shutdown) */
1722
+ disconnect: () => Promise<void>;
1723
+ /** Add custom routes to the middleware router */
1724
+ addRoutes: (callback: (router: Router) => void) => void;
1725
+ }
1726
+ /**
1727
+ * Internal context passed to feature registration functions.
1728
+ */
1729
+ interface MiddlewareContext {
1730
+ auth: BetterAuth;
1731
+ trpcRouter: TRPCRouter;
1732
+ createContext: () => Promise<{
1733
+ companySpecificBackend: EhBackendCompanySpecificBackend;
1734
+ }>;
1735
+ }
1736
+ //#endregion
1737
+ //#region src/middleware/createEhMiddleware.d.ts
1738
+ /**
1739
+ * Creates a fully-configured env-hopper middleware.
1740
+ *
1741
+ * @example
1742
+ * ```typescript
1743
+ * // Simple usage with inline backend
1744
+ * const eh = await createEhMiddleware({
1745
+ * basePath: '/api',
1746
+ * database: { url: process.env.DATABASE_URL! },
1747
+ * auth: {
1748
+ * baseURL: 'http://localhost:4000',
1749
+ * secret: process.env.AUTH_SECRET!,
1750
+ * },
1751
+ * backend: {
1752
+ * getBootstrapData: async () => loadStaticData(),
1753
+ * getAvailabilityMatrix: async () => ({}),
1754
+ * getNameMigrations: async () => false,
1755
+ * getResourceJumps: async () => ({ resourceJumps: [], envs: [], lateResolvableParams: [] }),
1756
+ * getResourceJumpsExtended: async () => ({ envs: [] }),
1757
+ * },
1758
+ * })
1759
+ *
1760
+ * app.use(eh.router)
1761
+ * await eh.connect()
1762
+ * ```
1763
+ *
1764
+ * @example
1765
+ * ```typescript
1766
+ * // With DI-resolved backend (e.g., tsyringe)
1767
+ * const eh = await createEhMiddleware({
1768
+ * basePath: '/api',
1769
+ * database: {
1770
+ * host: cfg.db.host,
1771
+ * port: cfg.db.port,
1772
+ * database: cfg.db.name,
1773
+ * username: cfg.db.username,
1774
+ * password: cfg.db.password,
1775
+ * schema: cfg.db.schema,
1776
+ * },
1777
+ * auth: {
1778
+ * baseURL: process.env.BETTER_AUTH_URL || 'http://localhost:4000',
1779
+ * secret: process.env.BETTER_AUTH_SECRET!,
1780
+ * providers: getAuthProvidersFromEnv(),
1781
+ * plugins: getAuthPluginsFromEnv(),
1782
+ * },
1783
+ * // Factory function - resolved fresh per request from DI container
1784
+ * backend: () => container.resolve(NateraEhBackend),
1785
+ * hooks: {
1786
+ * onRoutesRegistered: (router) => {
1787
+ * router.get('/health', (_, res) => res.send('ok'))
1788
+ * },
1789
+ * },
1790
+ * })
1791
+ * ```
1792
+ */
1793
+ declare function createEhMiddleware(options: EhMiddlewareOptions): Promise<EhMiddlewareResult>;
1794
+ //#endregion
1795
+ //#region src/middleware/database.d.ts
1796
+ /**
1797
+ * Internal database manager used by the middleware.
1798
+ * Handles connection URL formatting and lifecycle.
1799
+ */
1800
+ declare class EhDatabaseManager {
1801
+ private client;
1802
+ private config;
1803
+ constructor(config: EhDatabaseConfig);
1804
+ /**
1805
+ * Get or create the Prisma client instance.
1806
+ * Uses lazy initialization for flexibility.
1807
+ */
1808
+ getClient(): PrismaClient;
1809
+ connect(): Promise<void>;
1810
+ disconnect(): Promise<void>;
1811
+ }
1812
+ //#endregion
1813
+ export { AccessMethod, type AdminChatHandlerOptions, AppCatalogData, AppCategory, type AppForCatalog, AppRole, Approver, type AssetRestControllerConfig, type AuthConfig, type AuthRouter, AvailabilityMatrixData, AvailabilityVariant, type BetterAuth, BootstrapConfigData, BotAccess, BotProvider, DEFAULT_ADMIN_SYSTEM_PROMPT, type DatabaseClient, DisplayNamable, DocumentationAccess, type EhAdminChatConfig, EhAppCatalogData, EhAppCatalogDto, EhAppCatalogGroupDto, EhAppCatalogPageDto, EhAppIndexed, EhAppPageIndexed, EhAppUiIndexed, EhAppsMeta, type EhAuthConfig, EhBackendAppDto, EhBackendAppInput, EhBackendAppUIBaseInput, EhBackendAppUIInput, EhBackendCompanySpecificBackend, EhBackendCredentialInput, EhBackendDataFreshness, EhBackendDataSourceInput, EhBackendDataSourceInputCommon, EhBackendDataSourceInputDb, EhBackendDataSourceInputKafka, EhBackendDataVersion, EhBackendDeployableInput, EhBackendDeployment, EhBackendDeploymentInput, EhBackendEnvironmentInput, EhBackendPageInput, type EhBackendProvider, EhBackendTagDescriptionDataIndexed, EhBackendTagFixedTagValue, EhBackendTagsDescriptionDataIndexed, EhBackendUiDefaultsInput, EhBackendVersionsRequestParams, EhBackendVersionsReturn, EhContextIndexed, type EhDatabaseConfig, EhDatabaseManager, EhEnvIndexed, type EhFeatureToggles, type EhLifecycleHooks, EhMetaDictionary, type EhMiddlewareOptions, type EhMiddlewareResult, EhResourceIndexed, type EhStaticControllerContract, type EhTrpcContext, type EhTrpcContextOptions, EmailAccess, EnvBaseInfo, EnvInfoExtended, EnvSlug, type IconRestControllerConfig, JumpResourceSlug, LateResolvableParam, type MakeTFromPrismaModel, ManualAccess, type MiddlewareContext, type ObjectKeys, RenameRule, RenameRuleParams, ResourceJump, ResourceJumpGroup, ResourceJumpMetaInfo, ResourceJumpsData, ResourceJumpsExtendedData, type ScalarFilter, type ScalarKeys, type ScreenshotRestControllerConfig, SelfServiceAccess, SlugAndDisplayable, Sluggable, type SyncAppCatalogResult, type SyncAssetsConfig, TABLE_SYNC_MAGAZINE, type TRPCRouter, type TableSyncMagazine, type TableSyncMagazineModelNameKey, type TableSyncParamsPrisma, Tag, TicketingAccess, TicketingProvider, type UpsertIconInput, User, type UserWithGroups, connectDb, createAdminChatHandler, createAppCatalogAdminRouter, createAuth, createAuthRouter, createDatabaseTools, createEhMiddleware, createEhTrpcContext, createPrismaDatabaseClient, createScreenshotRouter, createTrpcRouter, disconnectDb, getAdminGroupsFromEnv, getAssetByName, getAuthPluginsFromEnv, getAuthProvidersFromEnv, getDbClient, getUserGroups, isAdmin, isMemberOfAllGroups, isMemberOfAnyGroup, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, requireAdmin, requireGroups, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, tool, upsertIcon, upsertIcons, validateAuthConfig };
1584
1814
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/common/sharedTypes.ts","../src/types/common/resourceTypes.ts","../src/types/common/app/ui/appUiTypes.ts","../src/types/common/app/appTypes.ts","../src/types/backend/common.ts","../src/types/backend/dataSources.ts","../src/types/backend/api.ts","../src/types/common/env/envTypes.ts","../src/types/common/dataRootTypes.ts","../src/types/common/appCatalogTypes.ts","../src/types/backend/companySpecificBackend.ts","../src/types/backend/deployments.ts","../src/modules/auth/auth.ts","../src/server/ehTrpcContext.ts","../src/server/controller.ts","../src/server/ehStaticControllerContract.ts","../src/modules/auth/registerAuthRoutes.ts","../src/modules/auth/authRouter.ts","../src/modules/auth/authProviders.ts","../src/modules/auth/authorizationUtils.ts","../src/modules/admin/chat/createAdminChatHandler.ts","../src/modules/admin/chat/createDatabaseTools.ts","../src/modules/icons/iconRestController.ts","../src/modules/icons/iconService.ts","../src/modules/assets/assetRestController.ts","../src/modules/assets/screenshotRestController.ts","../src/modules/assets/screenshotRouter.ts","../src/modules/assets/syncAssets.ts","../src/modules/appCatalogAdmin/appCatalogAdminRouter.ts","../src/db/client.ts","../src/db/tableSyncPrismaAdapter.ts","../src/db/tableSyncMagazine.ts","../src/db/syncAppCatalog.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAAiB,gBAAA;iCACgB;;KAGrB,GAAA;;;;;;UCDK,iBAAA;;;uBAGM;;;;UCJN,gBAAA;;;;SAIR,MAAM;;UAGE,cAAA;SACR,MAAM;;;;UCPE,YAAA;;;;YAIL;OACL;SACE,MAAM;;SAEN;;;;UCXQ,wBAAA;mBACE;;UAGF,wBAAA;;;;;;;;UCFA,8BAAA;SACR;;UAGQ,0BAAA;;;;;;;UAQA,6BAAA;ELdA,IAAA,CAAA,EAAA,MAAA;EAIL,IAAA,EAAG,OAAA;;eKcA;eACA;EJhBE,CAAA;;KIoBL,wBAAA,GAA2B,kCACpC,6BAA6B;;;UCbf,8BAAA;YACL;YACA;;UAGK,uBAAA;UACP;UACA;;ANlBO,UMqBA,kBAAA,SAA2B,gBNpBL,CAAA;EAG3B,IAAA,EAAG,MAAA;;;oBMqBK;ALtBpB;UKyBiB,uBAAA;gBACD,MAAM;aACT;AJ5Bb;AAOiB,UIwBA,mBAAA,SACP,uBJxBI,EIwBqB,cJxBrB,CAAA;SIyBL,MAAM;;UAGE,mCAAA;EHnCA,YAAA,EGoCD,KHpCa,CGoCP,kCHpCO,CAAA;;AAKtB,UGkCU,kCAAA,CHlCV;EACQ,MAAA,EAAA,MAAA;EAAN,WAAA,CAAA,EAAA,MAAA;EAEA,cAAA,CAAA,EGkCU,KHlCV,CGkCgB,yBHlChB,CAAA;;UGqCQ,yBAAA;;;AFhDjB;AAIiB,UEiDA,iBAAA,SAA0B,YFjDF,CAAA;OEkDlC;gBACS,MAAM;;ADrDL,UCwDA,gBAAA,CDxDA;EAIA,IAAA,EAAA,MAAA;EAQA,WAAA,EAAA,MAAA;EASL;;;EACoB,kBAAA,CAAA,EAAA,OAAA;EAA6B,kBAAA,CAAA,ECyCtC,KDzCsC,CAAA,MAAA,CAAA;;KC2CjD,eAAA,GAAkB;UAEb,UAAA;EA1DA,WAAA,CAAA,EAAA,MAAA;EAKA,IAAA,EAuDT,mCAtDE;AAIV;AAOiB,UA8CA,gBAAA,CA9CuB;EAClB,OAAA,CAAA,EAAA,MAAA;EAAN,YAAA,CAAA,EAAA,MAAA;;AACqB,UAiDpB,UAAA,CAjDoB;EAGpB,IAAA,EAAA,gBACf,GAAA,WAAA;EACa,OAAA,EAAA,MAAA;EAAN,UAAA,EAAA,MAAA;;;;UCjCQ,YAAA;;;SAGR;;;;KCAG,gBAAA;KACA,OAAA;UAEK,mBAAA;QACT,OAAO,SAAS;QAChB,eAAe;YACX;YACA,MAAM;;IRZD,OAAA,EQcJ,ORdoB;IAIrB,gBAAG,EQWO,gBRXP;;;UQeE,sBAAA;EPhBA,QAAA,EOiBL,KPjBK,COiBC,OPjBgB,CAAA;qBOkBb,MAAM;wBACH,MAAM;UACpB,MAAM;ANrBhB;AAOiB,UMiBA,mBAAA,CNhBF;;;;ACPf;AAIY,KKyBA,oBAAA,GAAuB,MLzBvB,CAAA,MAAA,EAAA,MAAA,CAAA;AACL,UK0BU,SAAA,CL1BV;EACQ,IAAA,EAAA,MAAA;;AAEN,UK2BQ,cAAA,CL3BR;EAAgB,WAAA,EAAA,MAAA;;UK+BR,kBAAA,SAA2B,WAAW;;EJ1CtC,WAAA,EAAA,MAAA;AAIjB;UI2CiB,WAAA,SAAoB;;;EH7CpB,cAAA,CAAA,EGgDE,MHhDF,CAAA,MAAA,EAAA,MAA8B,CAAA;AAI/C;AAQiB,UGuCA,mBAAA,SAA4B,kBHlCzB,CAAA;EAIR,IAAA,EAAA,MAAA;EAA2B,WAAA,EAAA,MAAA;;AACP,UGkCf,YAAA,SAAqB,kBHlCN,CAAA;EAA6B,IAAA,EAAA,MAAA;;eGqC9C;6BACc;AFnD7B;AAKiB,UEiDA,iBAAA,CFjDuB;EAKvB,IAAA,EAAA,MAAA;EAOA,WAAA,EAAA,MAAA;EACK,aAAA,EEuCL,KFvCK,CAAA,MAAA,CAAA;;AACT,UEyCI,iBAAA,CFzCJ;EAAwB,aAAA,EE0CpB,KF1CoB,CE0Cd,YF1Cc,CAAA;EAGpB,IAAA,EEwCT,KFxCS,CEwCH,WFvCZ,CAAA;EACa,oBAAA,EEuCS,KFvCT,CEuCe,mBFvCf,CAAA;EAAN,MAAA,CAAA,EEwCE,KFxCF,CEwCQ,iBFxCR,CAAA;;AAD0B,UE4ClB,yBAAA,CF5CkB;EAAc,IAAA,EE8CzC,KF9CyC,CE8CnC,eF9CmC,CAAA;AAIjD;AAIiB,UE0CA,eAAA,SAAwB,SF1CU,CAAA;EAMlC,IAAA,EAAA,MAAA;EAKA,WAAA,CAAA,EAAA,MAAkB;EAC5B,KAAA,CAAA,EEiCG,IFjCH;;AACS,UEyCC,IAAA,CFzCD;EAF2B,EAAA,EAAA,MAAA;EAAY,WAAA,EAAA,MAAA;AAKvD;;;;;;;;;;;;;UG3CiB,WAAA;;ETfA,IAAA,EAAA,MAAA;EAIL,QAAG,CAAA,EAAA,OAAA,GAAA,OAAA,GAAA,KAAA,GAAA,OAAA;;;;ACDf;;;;ACDiB,UOyBA,iBAAA,CPrBF;EAGE,EAAA,EAAA,MAAA;;;;ECNA,IAAA,CAAA,EAAA,MAAA;;;;;AAQR,UM+BQ,SAAA,CN/BR;EAAgB,IAAA,EAAA,KAAA;;;;ACXzB;AAIA;;UK+CiB,eAAA;;EJjDA,UAAA,EAAA,MAAA;EAIA,KAAA,CAAA,EAAA,MAAA;EAQA,UAAA,CAAA,EAAA,MAAA;EASL,MAAA,CAAA,EAAA,MAAA;;;;;UIuCK,WAAA;;YAEL;IHrDK,IAAA,CAAA,EAAA,MAAA;IAKA,KAAA,EAAA,MAAA;IAKA,IAAA,CAAA,EAAA,MAAA;EAOA,CAAA,CAAA;EACK,OAAA,CAAA,EAAA,MAAA;EAAN,QAAA,CAAA,EAAA,MAAA;;;AAIhB;;AAES,UGyCQ,iBAAA,CHzCR;EADC,IAAA,EAAA,cAAA;EAAyB,GAAA,CAAA,EAAA,MAAA;EAAc,YAAA,EAAA,MAAA;AAIjD;AAIA;AAMA;AAKA;AACO,UG+BU,mBAAA,CH/BV;EACe,IAAA,EAAA,eAAA;EAAN,GAAA,EAAA,MAAA;EAF2B,KAAA,CAAA,EAAA,MAAA;;AAK3C;AASA;AAEA;AAKiB,UGoBA,YAAA,CHpBgB;EAKhB,IAAA,EAAA,QAAU;;UGkBjB;;AF/FV;;;KEqGY,YAAA,GACR,YACA,kBACA,cACA,oBACA,sBACA;ADxGJ;AACA;AAEA;AACe,UC6GE,QAAA,CD7GF;EAAS,IAAA,EAAA,MAAA;EAAhB,KAAA,EAAA,MAAA;;;;;AAGI,UCkHK,OAAA,CDlHL;EAEC,EAAA,EAAA,MAAA;EACS,IAAA,EAAA,MAAA;EAAgB,WAAA,CAAA,EAAA,MAAA;AAItC;;;;AAEqB,UCkHJ,aAAA,CDlHI;EACS,EAAA,EAAA,MAAA;EAAN,IAAA,EAAA,MAAA;EACR,WAAA,EAAA,MAAA;EAAN,WAAA,CAAA,EAAA,MAAA;EAAK,MAAA,CAAA,ECqHJ,YDrHI;EAGE,KAAA,CAAA,ECmHP,KDnHO,CAAA,MAAA,CAAA;EAML,KAAA,CAAA,EC8GF,KD9GE,CC8GI,OD9GJ,CAAA;EAEK,QAAA,CAAA,EC6GJ,QD7Ga;EAIT,KAAA,CAAA,EAAA,MAAA;EAIA,IAAA,CAAA,ECuGR,KDvGQ,CAAA,MAAA,CAAA;EAKA,MAAA,CAAA,EAAA,MAAY;EAMZ,KAAA,CAAA,EC8FP,KD9FO,CAAA;IAKA,GAAA,EAAA,MAAa;IAGf,KAAA,CAAA,EAAA,MAAA;EACc,CAAA,CAAA;EAJS,QAAA,CAAA,EAAA,MAAA;EAAkB,aAAA,CAAA,EC2FtC,KD3FsC,CAAA,MAAA,CAAA;AAOxD;AAMiB,UCkFA,WAAA,CDlFiB;EACX,EAAA,EAAA,MAAA;EAAN,IAAA,EAAA,MAAA;;AACT,UCqFS,cAAA,CDrFT;EACsB,IAAA,ECqFtB,KDrFsB,CCqFhB,aDrFgB,CAAA;EAAN,UAAA,ECsFV,KDtFU,CCsFJ,WDtFI,CAAA;;AACb,UC4FM,gBAAA,CD5FN;EAAK,IAAA,EC6FR,KD7FQ,CC6FF,eD7FE,CAAA;AAGhB;AAMiB,UCuFA,eAAA,CDvFgB;EAYhB,IAAA,EAAA,MAAI;UC6EX,MAAM;;UAGC,oBAAA;EAjKA,IAAA,EAAA,MAAA;EAYA,WAAA,EAAA,MAAA;EAeA,KAAA,EAyIR,KAzIiB,CAyIX,mBAzIW,CAAA;AAS1B;AAWiB,UAwHA,mBAAA,CAtHA;EAYA,IAAA,EAAA,MAAA;EASA,WAAA,EAAA,MAAA;AASjB;;;UCrFiB,+BAAA;0BACS,QAAQ;+BACH,QAAQ;8BACT,qBAAqB,QAAQ;0BACjC,QAAQ;kCACA,QAAQ;kBACxB,QAAQ,MAAM;;;;UCbf,yBAAA;;;;SAIR;;UAGQ,wBAAA;;;;SAIR;AXbT;AAIY,UWYK,wBAAA,CXZF;;;;ECDE,CAAA;;;;ACDjB;AAOA;KSkBY,sBAAA;UAEK,oBAAA;;ER1BA,SAAA,EQ4BJ,sBR5BgB;;AAKtB,UQ0BU,mBAAA,CR1BV;EACQ,OAAA,EAAA,MAAA;EAAN,qBAAA,EAAA,MAAA;EAEA,OAAA,EAAA,MAAA;EAAgB,OAAA,EQ2Bd,oBR3Bc;;;;USNR,UAAA;;;;cAIH;YACF,MAAM;;;;;;AZVD,iBYiBD,UAAA,CZhBiB,MAAA,EYgBE,UZhBI,CAAA,eYgBM,IZhBN,CAAA;EAG3B,OAAG,EAAA,MAAA;;;;ECDE,QAAA,EAAA,CAAA,OAAA,mBAGM,EAAK,yBAAA,kBAAA,CAAA;;;;ICJX,OAAA,EAAA,IAAA;EAOA,CAAA;;;;ICNA,WAAY,EAAA;MAIjB,OAAA,EAAA,IAAA;MACL,MAAA,EAAA,MAAA;IACQ,CAAA;EAAN,CAAA;EAEA,QAAA,EAAA;IAAgB,gBAAA,EAAA,OAAA;;;KSuCb,UAAA,GAAa,kBAAkB;;;UChD1B,aAAA;0BACS;;UAGT,oBAAA;0BACS;;iBAGV,mBAAA;;GAEb,uBAAuB;;;;;;;iBCkCV,gBAAA,QAAwB,2BAAU;;;;;Ad9ClD,CAAA,+CACuC,CAAA;EAG3B,SAAG,kCAAA,CAAA;;;;ECDE,CAAA,CAAA;;;;ICDA,IAAA,EAAA,CAAA,CAAA;EAOA,CAAA,CAAA;;;;MCNA,YAAY,CAAA,EAAA,MAAA,GAAA,SAAA;IAIjB,CAAA;IACL,MAAA,EAAA,KAAA,aAAA;IACQ,IAAA,EAAA,CAAA,CAAA;EAAN,CAAA,CAAA;EAEA,aAAA,kCAAA,CAAA;IAAgB,KAAA,EAAA,IAAA;;;;ECXR,qBAAA,kCACO,CAAA;IAGP,KAAA,EAAA,IAAA;;;;ECFA,wBAAA,kCACQ,CAAA;IAGR,KAAA,EAAA;MAQA,gBAAA,EAAA,MAA6B;MASlC,OAAA,EAAA,MAAA;IAA2B,CAAA;IACpC,MAAA,mBAAA;IAA6B,IAAA,EAAA,CAAA,CAAA;EAA6B,CAAA,CAAA;;;;ICb5C,IAAA,EAAA,CAAA,CAAA;EAKA,CAAA,CAAA;EAKA,IAAA,+BAA2B,CAAA;IAO3B,GAAA,eAAA;IACK,IAAA,EAAA,CAAA,CAAA;IAAN,UAAA,qCAAA;IACH,WAAA,EAAA,KAAA;EAAwB,CAAA,+CAAA,CAAA;IAGpB,IAAA,kCACf,CAAA;MACa,KAAA,EAAA,IAAA;MAAN,MAAA,EAAA;QADC,EAAA,EAAA,MAAA;QAAyB,IAAA,EAAA,MAAA;QAAc,QAAA,EAAA,MAAA;QAIhC,QAAA,EAAA,MAAA;QAIA,SAAA,MAAA;QAMA,SAAA,MAAA;MAKA,CAAA,EAAA;MACV,IAAA,EAAA,CAAA,CAAA;IACe,CAAA,CAAA;IAAN,MAAA,kCAAA,CAAA;MAF2B,KAAA,EAAA;QAAY,EAAA,EAAA,MAAA;MAKtC,CAAA;MASL,MAAA,EAAA;QAEK,EAAU,EAAA,MAAA;QAKV,IAAA,EAAA,MAAgB;QAKhB,OAAU,uCAAA;;;;QC7EV,QAAY,EAAA,MAGpB;;;;QCAG,SAAgB,MAAA;MAChB,CAAA,GAAO,IAAA;MAEF,IAAA,EAAA,CAAA,CAAA;IACF,CAAA,CAAA;IAAS,MAAA,qCAAA,CAAA;MAAhB,KAAA,EAAA;QACe,IAAA,EAAA,MAAA;QAAf,OAAA,EAAA,MAAA;QACI,QAAA,EAAA,MAAA;QACM,QAAA,EAAA,MAAA;MAAN,CAAA;MAEC,MAAA,EAAA;QACS,EAAA,EAAA,MAAA;QAAgB,IAAA,EAAA,MAAA;QAIrB,OAAA,uCAAsB;QACrB,QAAA,EAAA,MAAA;QAAN,QAAA,EAAA,MAAA;QACe,SAAA,kCAAA;QAAN,QAAA,EAAA,MAAA;QACS,KAAA,EAAA,MAAA,GAAA,IAAA;QAAN,MAAA,EAAA,MAAA,GAAA,IAAA;QACR,SAAA,MAAA;QAAN,SAAA,MAAA;MAAK,CAAA;MAGE,IAAA,EAAA,CAAA,CAAA;IAML,CAAA,CAAA;IAEK,MAAA,qCAAS,CAAA;MAIT,KAAA,EAAA;QAIA,EAAA,EAAA,MAAmB;QAKnB,IAAY,CAAA,EAAA,MAAA,GAGV,SAHkB;QAMpB,OAAA,CAAA,EAAoB,MAAA,GAAA,SAAQ;QAK5B,QAAa,CAAA,EAAA,MAAA,GAAA,SAAA;QAGf,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MACc,CAAA;MAJS,MAAA,EAAA;QAAkB,EAAA,EAAA,MAAA;QAOvC,IAAA,EAAA,MAAiB;QAMjB,OAAA,uCAAiB;QACX,QAAA,EAAA,MAAA;QAAN,QAAA,EAAA,MAAA;QACH,SAAA,kCAAA;QAAN,QAAA,EAAA,MAAA;QACsB,KAAA,EAAA,MAAA,GAAA,IAAA;QAAN,MAAA,EAAA,MAAA,GAAA,IAAA;QACP,SAAA,MAAA;QAAN,SAAA,MAAA;MAAK,CAAA;MAGC,IAAA,EAAA,CAAA,CAAA;IAMA,CAAA,CAAA;IAYA,MAAI,qCAAA,CAAA;;;;MCjFJ,MAAW,EAAA;QAYX,EAAA,EAAA,MAAiB;QAeR,IAAA,EAAA,MAAA;QAST,OAAe,uCAAA;QAWf,QAAW,EAAA,MAEhB;QAYK,QAAiB,EAAA,MAAA;QASjB,SAAA,kCAAmB;QASnB,QAAY,EAAA,MAGnB;QAME,KAAY,EAAA,MAAA,GAAA,IAAA;QACpB,MAAA,EAAA,MAAA,GAAA,IAAA;QACA,SAAA,MAAA;QACA,SAAA,MAAA;MACA,CAAA;MACA,IAAA,EAAA,CAAA,CAAA;IACA,CAAA,CAAA;IAAY,UAAA,qCAAA,CAAA;MASC,KAAQ,EAAA;QAQD,GAAA,EAAA,MAAA,EAAA;MASP,CAAA;MAKN,MAAA,qCAAA;MACD,IAAA,EAAA,CAAA,CAAA;IACM,CAAA,CAAA;IAAN,UAAA,kCAAA,CAAA;MACG,KAAA,EAAA;QAEJ,EAAA,EAAA,MAAA;MAEC,CAAA;MAEQ,MAAA,EAAA;QAAK,OAAA,EAAA,MAAA;QAIN,QAAW,EAAA,MAAA;MAKX,CAAA;MACH,IAAA,EAAA,CAAA,CAAA;IAAN,CAAA,CAAA;EACY,CAAA,CAAA,CAAA;EAAN,UAAA,+BAAA,CAAA;IAAK,GAAA,eAAA;IAOF,IAAA,EAAA,CAAA,CAAA;IAIA,UAAA,qCAEF;IAGE,WAAA,EAAA,KAAA;EAMA,CAAA,+CAAmB,CAAA;;;;QC7KnB,EAAA,EAAA,MAAA;QACiB,IAAA,EAAA,MAAA;QAAR,QAAA,EAAA,MAAA;QACa,QAAA,EAAA,MAAA;QAAR,KAAA,EAAA,MAAA,GAAA,IAAA;QACD,MAAA,EAAA,MAAA,GAAA,IAAA;QAA6B,SAAA,MAAA;QAAR,SAAA,MAAA;MACjB,CAAA,EAAA;MAAR,IAAA,EAAA,CAAA,CAAA;IACgB,CAAA,CAAA;IAAR,MAAA,kCAAA,CAAA;MACF,KAAA,EAAA;QAAN,EAAA,EAAA,MAAA;MAAR,CAAA;MAAO,MAAA,EAAA;;;;QCbR,QAAA,EAAA,MAAyB;QAOzB,KAAA,EAAA,MAAA,GAAwB,IAAA;QAOxB,MAAA,EAAA,MAAA,GAAwB,IAAA;QAW7B,SAAA,MAAsB;QAEjB,SAAA,MAAoB;MAKpB,CAAA,GAAA,IAAA;;;;MC7BA,KAAU,EAAA;QAIb,OAAA,EAAA,MAAA;MACI,CAAA;MAAN,MAAA,EAAA;QAAK,EAAA,EAAA,MAAA;QAOD,IAAU,EAAA,MAAA;QAAS,QAAA,EAAA,MAAA;;;;;;SAAU;MAAA,IAAA,EAAA,CAAA,CAAA;IAiCjC,CAAA,CAAA;;;;MChDK,CAAA;MAIA,MAAA,EAAA;QAID,EAAA,EAAA,MAAmB;QACjC,IAAA,EAAA,MAAA;QACC,QAAA,EAAA,MAAA;QAAuB,QAAA,EAAA,MAAA;QAAa,KAAA,EAAA,MAAA,GAAA,IAAA;;;;MCkCvB,CAAA,GAAA,IAAA;MAAwB,IAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAU,IAAA,EAAA,CAAA,CAAA;IAgFtC,CAAA,CAAA;;;;QC9HK,IAAA,CAAA,EAAA,MAAA,GAAA,SAA0B;QAO9B,WAAA,CAAA,EAAA,MAWZ,GAAA,SAXsC;;;;UCEvB,IAAA,EAAkB,KAAA,GAAA,WAAM,GAAe,OAAA,GAAU,cAAA,GAAA,eAAA,GAAA,QAAA;;;;UCEjD,EAAA,EAAgB,MAAA;UACZ,IAAA,EAAA,MAAA;UAAf,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;QACI,CAAA,EAAA,GAAA,SAAA;;;;;;QAAU,IAAA,CAAA,EAAA,MAAA,EAAA,GAAA,SAAA;QAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;QA+DP,KAAU,CAAA,EAAA;;;;QC3DN,QAAA,CAAA,EAAA,MAAuB,GAAA,SAAI;QAiD3B,aAAqB,CAAA,EAAA,MAAA,EAAU,GAAA,SAAA;MA4B/B,CAAA;;;;QC5EC,SAAc,MAAA;QAaf,WAAa,EAAA,MACrB;QAoBQ,IAAA,EAAA,MAAkB;QAWlB,WAAmB,EAAA,MAAA;QAYnB,MAAA,yBAA8B;QAYvB,KAAA,EAAA,MAAO,EAAA;QAQd,KAAY,oBAAO,GAAA,IAAc;QASjC,YAAa,EAAA,MACrB,GAAA,IAAA;;;;QCpGS,MAAA,EAAA,MAAuB,GAAA,IAAA;QAE/B,KAAA,oBAAA,EAAA,GAAA,IAAA;QAIgB,QAAA,EAAA,MAAA,GAAA,IAAA;QAAf,aAAA,EAAA,MAAA,EAAA;MAAM,CAAA;MAkEA,IAAA,EAAA,CAAA,CAAA;IAAgC,CAAA,CAAA;IAQ3B,MAAA,qCAAA,CAAA;MAAc,KAAA,EAAA;QAAQ,EAAA,EAAA,MAAA;MAAA,CAAA;;;;QC7E1B,SAAc,MAAA;QAEsB,WAAA,EAAA,MAAA;QAAN,IAAA,EAAA,MAAA;QAAR,WAAA,EAAA,MAAA;QAEX,MAAA,yBAAA;QAED,KAAA,EAAA,MAAA,EAAA;QAAR,KAAA,oBAAA,GAAA,IAAA;QAIJ,YAAA,EAAA,MAAA,GAAA,IAAA;QAAR,aAAA,EAAA,MAAA,GAAA,IAAA;QAAO,KAAA,EAAA,MAAA,GAAA,IAAA;QAME,IAAA,EAAA,MAAA,EAAA;QAC+B,MAAA,EAAA,MAAA,GAAA,IAAA;QAAR,KAAA,oBAAA,EAAA,GAAA,IAAA;QACD,QAAA,EAAA,MAAA,GAAA,IAAA;QAClC,aAAA,EAAA,MAAA,EAAA;MAAc,CAAA;MA+EF,IAAA,EAAA,CAAA,CAAA;IA8HH,CAAA,CAAA;;;;ICnNI,IAAA,EAAA,CAAA,CAAA;IAeD,UAAA,qCAEN;;;;MCnCO,KAAA,EAAA,IAAe;MAYV,MAAU,EAAA;QAAQ,IAAA,EAAA,CAAA,CAAA,GAAA,IAAA;QAAe,eAAA,EAAA,OAAA;;;;IAAA,YAAA,kCAAA,CAAA;MAAA,KAAA,EAAA,IAAA;MAiCjC,MAAW,EAAA;QAAc,SAAA,EAAA,MAAA,EAAA;MAAN,CAAA;MAAK,IAAA,EAAA,CAAA,CAAA;;;;AAAiB,KT8EnD,UAAA,GAAa,US9EsC,CAAA,OT8EpB,gBS9EoB,CAAA;;;URhD9C,0BAAA;;;;;;;;;;;;AfAA,ceOJ,wBfN0B,EeMA,0BfNA;;;;;;;;iBgBQvB,kBAAA,MAAwB,eAAe;;;;;;;;;iBCEvC,gBAAA,IACX,eAAe,+BACX,2BAAU;;;EjBbF,UAAA,qCACsB;EAG3B,WAAG,EAAA,KAAA;;;;ICDE,MAAA,EAAA;;;;ICDA,IAAA,EAAA,CAAA,CAAA;EAOA,CAAA,CAAA;;;;MCNA,SAAY,EAAA,MAAA,EAAA;IAIjB,CAAA;IACL,IAAA,EAAA,CAAA,CAAA;EACQ,CAAA,CAAA;CAAN,CAAA,CAAA;AAEA,KciEG,UAAA,GAAa,UdjEhB,CAAA,OciEkC,gBdjElC,CAAA;;;iBeMO,uBAAA,CAAA,GAA2B;;;AjBd3C;;;;ACDA;AAOA;;;;ACNA;;;;;;;;;;ACHiB,iBckED,qBAAA,CAAA,CdjEG,EciEsB,KdjEjB,CciEuB,gBdjEvB,CAAA;AAGxB;;;iBc0FgB,kBAAA,CAAA;;;;;;;;;;;;;;;AlB9FhB;AAIA;;;;ACDiB,UkBeA,cAAA,ClBfiB;;;;ECDjB,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,GAAA;AAOjB;;;;ACNA;AAIY,iBgBwBI,aAAA,ChBxBJ,IAAA,EgByBJ,chBzBI,GAAA,IAAA,GAAA,SAAA,CAAA,EgB0BT,KhB1BS,CAAA,MAAA,CAAA;;;;AAIH,iBgByCO,kBAAA,ChBzCP,IAAA,EgB0CD,chB1CC,GAAA,IAAA,GAAA,SAAA,EAAA,aAAA,EgB2CQ,KhB3CR,CAAA,MAAA,CAAA,CAAA,EAAA,OAAA;;;;iBgBoDO,mBAAA,OACR,mDACU;AfjElB;AAIA;;;iBeuEgB,qBAAA,CAAA,GAAyB;AdzEzC;AAIA;AAQA;AASY,iBcgEI,OAAA,CdhEoB,IAAA,EcgEN,cdhEM,GAAA,IAAA,GAAA,SAAA,CAAA,EAAA,OAAA;;;;AACyB,iBcuE7C,YAAA,CdvE6C,IAAA,EcuE1B,cdvE0B,GAAA,IAAA,GAAA,SAAA,CAAA,EAAA,IAAA;;;;ACb5C,iBa6FD,aAAA,Cb7F+B,IAAA,Ea8FvC,cb5FI,GAAA,IAAK,GAAA,SAAA,EAAA,MAAA,Ea6FP,Kb7FO,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA;;;UcRA,uBAAA;;SAER;;;;UAIC,eAAe;;;ApBXzB;AAIA;;;;ACDA;;;;ACDA;AAOA;;;;ACNA;;;;;;;;;;ACHA;AAIA;;;;ACFiB,iBe2ED,sBAAA,Cf3E+B,OACtC,Ee0EuC,uBf1EvB,CAAA,EAAA,CAAA,GAAA,EekFJ,OflFI,EAAA,GAAA,EekFU,QflFV,EAAA,GekFkB,OflFlB,CAAA,IAAA,CAAA;;;;;;;UgBKR,cAAA;;uCAEsB,QAAQ,MAAM;;4BAEzB;;;ErBZX;EAIL,SAAG,EAAA,GAAA,GqBUI,OrBVJ,CqBUY,KrBVZ,CAAA,MAAA,CAAA,CAAA;;qCqBcR,QAAQ;;IpBfE,IAAA,EAAA,MAAA;;;;ACDjB;AAOA;;iBmBegB,0BAAA;uCACuB,QAAQ;ElBtB9B,iBAAY,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GkBuBS,OlBvBT,CAAA,MAAA,CAAA;CAIjB,CAAA,EkBoBR,clBpBQ;;;;;;;;iBkBmGI,mBAAA,CAAA,GAAuB,eAAe;AjB1GtD;AAIA;;;ciBoOa,2BAAA;;;UCnNI,wBAAA;;;;;;;;;;;AtBrBjB;AAIA;;iBsBgCgB,0BAAA,SACN,gBACA;;;UCnCO,eAAA;;WAEN;;;;;;;;;iBAUW,UAAA,QAAkB,kBAAe;EvBftC,EAAA,EAAA,MAAA;EAIL,IAAA,EAAG,MAAA;WuBWwC,+BAAA,CAAA;;;EtBZtC,SAAA,kCAGW;;;;ECJX,SAAA,MAAA;EAOA,SAAA,MAAA;;;;ACNjB;;AAKO,iBoBwCe,WAAA,CpBxCf,KAAA,EoBwCkC,KpBxClC,CoBwCwC,epBxCxC,CAAA,CAAA,EoBwCwD,OpBxCxD,CAAA;EACQ,EAAA,EAAA,MAAA;EAAN,IAAA,EAAA,MAAA;EAEA,OAAA,EoBqCqC,+BAAA,CAAA,KpBrCrC;EAAgB,QAAA,EAAA,MAAA;;;;ECXR,KAAA,EAAA,MAAA,GAAA,IAAA;EAIA,MAAA,EAAA,MAAA,GAAA,IAAA;;;;ACFjB;AAIA;AAQA;AASA;AAAuC,iBkBsCjB,cAAA,ClBtCiB,IAAA,EAAA,MAAA,CAAA,EkBsCU,OlBtCV,CAAA;EACpC,IAAA,EAAA,MAAA;EAA6B,OAAA,YAAA,YAAA,CAAA;EAA6B,QAAA,EAAA,MAAA;;;;UmBK5C,yBAAA;;;;;;;;;;;AxB7BjB;AAIA;;;iBwByCgB,2BAAA,SACN,gBACA;;;UC3CO,8BAAA;;;;;;;;;;;AzBJjB;AAIA;;iByBegB,gCAAA,SACN,gBACA;;;iBChBM,sBAAA,IAA0B,eAAe,uCAAsB;;;;;;;;;;M1BL9D,IAAA,EAAA,MAAgB;MAIlB,QAAA,EAAA,MAAA;;;;MCDE,SAAA,MAAiB;;;;ECDjB,CAAA,CAAA;EAOA,MAAA,kCACR,CAAA;;;;ICPQ,MAAA,EAAA;MAIL,EAAA,EAAA,MAAA;MACL,IAAA,EAAA,MAAA;MACQ,QAAA,EAAA,MAAA;MAAN,QAAA,EAAA,MAAA;MAEA,KAAA,EAAA,MAAA,GAAA,IAAA;MAAgB,MAAA,EAAA,MAAA,GAAA,IAAA;;;;ICXR,IAAA,EAAA,CAAA,CAAA;EAIA,CAAA,CAAA;;;;ICFA,CAAA;IAIA,MAAA,EAAA;MAQA,EAAA,EAAA,MAAA;MASL,IAAA,EAAA,MAAA;MAA2B,QAAA,EAAA,MAAA;MACpC,QAAA,EAAA,MAAA;MAA6B,KAAA,EAAA,MAAA,GAAA,IAAA;MAA6B,MAAA,EAAA,MAAA,GAAA,IAAA;;;;ICb5C,IAAA,EAAA,CAAA,CAAA;EAKA,CAAA,CAAA;EAKA,iBAAA,kCAA2C,CAAA;IAO3C,KAAA,EAAA;MACK,OAAA,EAAA,MAAA;IAAN,CAAA;IACH,MAAA,EAAA;MAAwB,EAAA,EAAA,MAAA;MAGpB,IAAA,EAAA,MAAA;MAEF,QAAA,EAAA,MAAA;MAAN,QAAA,EAAA,MAAA;MADC,KAAA,EAAA,MAAA,GAAA,IAAA;MAAyB,MAAA,EAAA,MAAA,GAAA,IAAA;MAAc,SAAA,MAAA;MAIhC,SAAA,MAAA;IAIA,CAAA,GAAA,IAAA;IAMA,IAAA,EAAA,CAAA,CAAA;EAKA,CAAA,CAAA;CACV,CAAA,CAAA;;;UqBjDU,gBAAA;;;;;;;;;;;;A3BLjB;AAIA;;;;ACDA;;;iB0BwBsB,UAAA,SAAmB,mBAAmB;EzBzB3C,aAAA,EAAA,MAAgB;EAOhB,mBAAc,EAAA,MAAA;;;;iB0BqCf,2BAAA,IAA+B,eAAe,uCAAsB;;;;;;;;;;M5B9CnE,SAAA,MAAgB;MAIlB,SAAA,MAAA;;;;MCDE,MAAA,yBAGW;;;;MCJX,aAAgB,EAAA,MAAA,GAIlB,IAAN;MAGQ,KAAA,EAAA,MAAc,GAAA,IAAA;;;;MCNd,QAAY,EAAA,MAAA,GAAA,IAAA;MAIjB,aAAA,EAAA,MAAA,EAAA;IACL,CAAA,EAAA;IACQ,IAAA,EAAA,CAAA,CAAA;EAAN,CAAA,CAAA;EAEA,OAAA,kCAAA,CAAA;IAAgB,KAAA,EAAA;;;;MCXR,EAAA,EAAA,MAAA;MAIA,SAAA,MAAA;;;;MCFA,WAAA,EAAA,MAAA;MAIA,MAAA,yBAA0B;MAQ1B,KAAA,EAAA,MAAA,EAAA;MASL,KAAA,oBAAwB,GAAA,IAAA;MAAG,YAAA,EAAA,MAAA,GAAA,IAAA;MACpC,aAAA,EAAA,MAAA,GAAA,IAAA;MAA6B,KAAA,EAAA,MAAA,GAAA,IAAA;MAA6B,IAAA,EAAA,MAAA,EAAA;;;;MCb5C,aAAA,EAAA,MAAA,EAAA;IAKA,CAAA,GAAA,IAAA;IAKA,IAAA,EAAA,CAAA,CAAA;EAOA,CAAA,CAAA;EACK,MAAA,qCAAA,CAAA;IAAN,KAAA,EAAA;MACH,IAAA,EAAA,MAAA;MAAwB,WAAA,EAAA,MAAA;MAGpB,WAAA,EAAA,MACf;MACa,MAAA,EAAA;QAAN,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;QADC,IAAA,EAAA,KAAA,GAAA,WAAA,GAAA,OAAA,GAAA,cAAA,GAAA,eAAA,GAAA,QAAA;MAAyB,CAAA;MAAc,KAAA,CAAA,EAAA,MAAA,EAAA,GAAA,SAAA;MAIhC,KAAA,CAAA,EAAA;QAIA,EAAA,EAAA,MAAA;QAMA,IAAA,EAAA,MAAA;QAKA,WAAkB,CAAA,EAAA,MAAA,GAAA,SAAA;MAC5B,CAAA,EAAA,GAAA,SAAA;MACe,QAAA,CAAA,EAAA;QAAN,IAAA,EAAA,MAAA;QAF2B,KAAA,EAAA,MAAA;MAAY,CAAA,GAAA,SAAA;MAKtC,KAAA,CAAA,EAAA,MAAgB,GAAA,SAOV;MAEX,IAAA,CAAA,EAAA,MAAe,EAAA,GAAA,SAAG;MAEb,MAAU,CAAA,EAAA,MAAA,GAEnB,SAAA;MAGS,KAAA,CAAA,EAAA;QAKA,GAAU,EAAA,MAAA;;;;MC7EV,aAAY,CAAA,EAAA,MAGpB,EAAA,GAAA,SAAgB;;;;MCAb,SAAA,MAAgB;MAChB,SAAO,MAAA;MAEF,WAAA,EAAA,MAAmB;MACrB,IAAA,EAAA,MAAA;MAAS,WAAA,EAAA,MAAA;MAAhB,MAAA,yBAAA;MACe,KAAA,EAAA,MAAA,EAAA;MAAf,KAAA,oBAAA,GAAA,IAAA;MACI,YAAA,EAAA,MAAA,GAAA,IAAA;MACM,aAAA,EAAA,MAAA,GAAA,IAAA;MAAN,KAAA,EAAA,MAAA,GAAA,IAAA;MAEC,IAAA,EAAA,MAAA,EAAA;MACS,MAAA,EAAA,MAAA,GAAA,IAAA;MAAgB,KAAA,oBAAA,EAAA,GAAA,IAAA;MAIrB,QAAA,EAAA,MAAA,GAAsB,IAAA;MACrB,aAAA,EAAA,MAAA,EAAA;IAAN,CAAA;IACe,IAAA,EAAA,CAAA,CAAA;EAAN,CAAA,CAAA;EACS,MAAA,qCAAA,CAAA;IAAN,KAAA,EAAA;MACR,EAAA,EAAA,MAAA;MAAN,IAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAAK,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAGE,WAAA,CAAA,EAAmB,MAAA,GAAA,SAAA;MAMxB,MAAA,CAAA,EAAA;QAEc,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;QAIT,IAAA,EAAc,KAAA,GAAA,WAAA,GAAA,OAAA,GAAA,cAAA,GAAA,eAAA,GAAA,QAAA;MAId,CAAA,GAAA,SAAmB;MAKnB,KAAA,CAAY,EAAA,MAAA,EAAA,GAGV,SAHkB;MAMpB,KAAA,CAAA,EAAA;QAKA,EAAA,EAAa,MAAA;QAGf,IAAA,EAAA,MAAA;QACc,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAJS,CAAA,EAAA,GAAA,SAAA;MAAkB,QAAA,CAAA,EAAA;QAOvC,IAAA,EAAA,MAAiB;QAMjB,KAAA,EAAA,MAAiB;MACX,CAAA,GAAA,SAAA;MAAN,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MACH,IAAA,CAAA,EAAA,MAAA,EAAA,GAAA,SAAA;MAAN,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MACsB,KAAA,CAAA,EAAA;QAAN,GAAA,EAAA,MAAA;QACP,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAAN,CAAA,EAAA,GAAA,SAAA;MAAK,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAGC,aAAA,CAAA,EAAA,MAAyB,EAAA,GAAA,SAE5B;IAIG,CAAA;IAYA,MAAI,EAAA;;;;MCjFJ,WAAW,EAAA,MAAA;MAYX,IAAA,EAAA,MAAiB;MAejB,WAAS,EAAA,MAAA;MAST,MAAA,yBAAe;MAWf,KAAA,EAAW,MAAA,EAAA;MAcX,KAAA,oBAAiB,GAAA,IAAA;MASjB,YAAA,EAAmB,MAAA,GAAA,IAAA;MASnB,aAAY,EAAA,MAGnB,GAAA,IAAK;MAMH,KAAA,EAAY,MAAA,GAAA,IAAA;MACpB,IAAA,EAAA,MAAA,EAAA;MACA,MAAA,EAAA,MAAA,GAAA,IAAA;MACA,KAAA,oBAAA,EAAA,GAAA,IAAA;MACA,QAAA,EAAA,MAAA,GAAA,IAAA;MACA,aAAA,EAAA,MAAA,EAAA;IACA,CAAA;IAAY,IAAA,EAAA,CAAA,CAAA;EASC,CAAA,CAAA;EAQA,MAAA,qCAAO,CAAA;IASP,KAAA,EAAA;MAKN,EAAA,EAAA,MAAA;IACD,CAAA;IACM,MAAA,EAAA;MAAN,EAAA,EAAA,MAAA;MACG,SAAA,MAAA;MAEJ,SAAA,MAAA;MAEC,WAAA,EAAA,MAAA;MAEQ,IAAA,EAAA,MAAA;MAAK,WAAA,EAAA,MAAA;MAIN,MAAW,yBAAA;MAKX,KAAA,EAAA,MAAc,EAAA;MACjB,KAAA,oBAAA,GAAA,IAAA;MAAN,YAAA,EAAA,MAAA,GAAA,IAAA;MACY,aAAA,EAAA,MAAA,GAAA,IAAA;MAAN,KAAA,EAAA,MAAA,GAAA,IAAA;MAAK,IAAA,EAAA,MAAA,EAAA;MAOF,MAAA,EAAA,MAAgB,GAAA,IAAA;MAIhB,KAAA,oBAED,EAAA,GAAA,IAAA;MAGC,QAAA,EAAA,MAAoB,GAAA,IAAA;MAMpB,aAAA,EAAmB,MAAA,EAAA;;;;AC7KpC,CAAA,CAAA,CAAA;;;;;;;iBmBDgB,WAAA,CAAA,GAAe;;;;;iBAWT,SAAA,CAAA,GAAa;;A7BnBnC;AAIA;;iB6BwBsB,YAAA,CAAA,GAAgB;;;KCvB1B,oCAAoC,MAAA,CAAO,mBAC/C,MAAA,CAAO,iBAAiB;KACpB,oCAAoC,MAAA,CAAO,mBAC/C,MAAA,CAAO,iBAAiB;KAEpB,sCAAsC,MAAA,CAAO,aAAa,QACpE,MAAA,CAAO,iBAAiB;UAWT,4CACO,uCACG,MAAA,CAAO,gCACX,cAAc,WAAW,6CACrB,cAAc,WAAW;UAE1C;mBACS;eACJ;oBACK;E9B/BH,KAAA,CAAA,E8BgCP,Y9BhCuB,C8BgCV,gB9B/BU,CAAM;EAG3B,UAAG,CAAA,EAAA,OAAA;;K8ByCH,8CAA8C,MAAA,CAAO,aAC/D,YACE,MAAA,CAAO,iBAAiB;iBAGZ,sCACQ,uCACG,MAAA,CAAO,gCACX,cAAc,WAAW,6CACrB,cAAc,WAAW,gCACtC,WAAW,sDAEf,sBACN,eACA,kBACA,cACA;E7B1Da,IAAA,CAAA,uBAAiB,qBAGN,iBAAA,CAAA,CAAA,OAAA,qBAAA,iBAAA,CAAA,cAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,SAAA,SAAA,EAAA,CAAA,SAAA,CAAA;;;;ECJX,CAAA,CAAA;AAOjB,CAAA;;;c6BIa;;;;;;KAOD,iBAAA,UAA2B;KAC3B,6BAAA,SAAsC;;;UChBjC,oBAAA;;;;;;;;;;;AhCLjB;AAIY,iBgCcU,cAAA,ChCdP,IAAA,EgCeP,KhCfO,CgCeD,ahCfC,CAAA,CAAA,EgCgBZ,OhChBY,CgCgBJ,oBhChBI,CAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/common/sharedTypes.ts","../src/types/common/resourceTypes.ts","../src/types/common/app/ui/appUiTypes.ts","../src/types/common/app/appTypes.ts","../src/types/backend/common.ts","../src/types/backend/dataSources.ts","../src/types/backend/api.ts","../src/types/common/env/envTypes.ts","../src/types/common/dataRootTypes.ts","../src/types/common/appCatalogTypes.ts","../src/types/backend/companySpecificBackend.ts","../src/types/backend/deployments.ts","../src/modules/auth/auth.ts","../src/server/ehTrpcContext.ts","../src/server/controller.ts","../src/server/ehStaticControllerContract.ts","../src/modules/auth/registerAuthRoutes.ts","../src/modules/auth/authRouter.ts","../src/modules/auth/authProviders.ts","../src/modules/auth/authorizationUtils.ts","../src/modules/admin/chat/createAdminChatHandler.ts","../src/modules/admin/chat/createDatabaseTools.ts","../src/modules/icons/iconRestController.ts","../src/modules/icons/iconService.ts","../src/modules/assets/assetRestController.ts","../src/modules/assets/screenshotRestController.ts","../src/modules/assets/screenshotRouter.ts","../src/modules/assets/syncAssets.ts","../src/modules/appCatalogAdmin/appCatalogAdminRouter.ts","../src/db/client.ts","../src/db/tableSyncPrismaAdapter.ts","../src/db/tableSyncMagazine.ts","../src/db/syncAppCatalog.ts","../src/middleware/types.ts","../src/middleware/createEhMiddleware.ts","../src/middleware/database.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAAiB,gBAAA;iCACgB;;KAGrB,GAAA;;;;;;UCDK,iBAAA;;;uBAGM;;;;UCJN,gBAAA;;;;SAIR,MAAM;;UAGE,cAAA;SACR,MAAM;;;;UCPE,YAAA;;;;YAIL;OACL;SACE,MAAM;;SAEN;;;;UCXQ,wBAAA;mBACE;;UAGF,wBAAA;;;;;;;;UCFA,8BAAA;SACR;;UAGQ,0BAAA;;;;;;;UAQA,6BAAA;ELdA,IAAA,CAAA,EAAA,MAAA;EAIL,IAAA,EAAG,OAAA;;eKcA;eACA;EJhBE,CAAA;;KIoBL,wBAAA,GAA2B,kCACpC,6BAA6B;;;UCbf,8BAAA;YACL;YACA;;UAGK,uBAAA;UACP;UACA;;ANlBO,UMqBA,kBAAA,SAA2B,gBNpBL,CAAA;EAG3B,IAAA,EAAG,MAAA;;;oBMqBK;ALtBpB;UKyBiB,uBAAA;gBACD,MAAM;aACT;AJ5Bb;AAOiB,UIwBA,mBAAA,SACP,uBJxBI,EIwBqB,cJxBrB,CAAA;SIyBL,MAAM;;UAGE,mCAAA;EHnCA,YAAA,EGoCD,KHpCa,CGoCP,kCHpCO,CAAA;;AAKtB,UGkCU,kCAAA,CHlCV;EACQ,MAAA,EAAA,MAAA;EAAN,WAAA,CAAA,EAAA,MAAA;EAEA,cAAA,CAAA,EGkCU,KHlCV,CGkCgB,yBHlChB,CAAA;;UGqCQ,yBAAA;;;AFhDjB;AAIiB,UEiDA,iBAAA,SAA0B,YFjDF,CAAA;OEkDlC;gBACS,MAAM;;ADrDL,UCwDA,gBAAA,CDxDA;EAIA,IAAA,EAAA,MAAA;EAQA,WAAA,EAAA,MAAA;EASL;;;EACoB,kBAAA,CAAA,EAAA,OAAA;EAA6B,kBAAA,CAAA,ECyCtC,KDzCsC,CAAA,MAAA,CAAA;;KC2CjD,eAAA,GAAkB;UAEb,UAAA;EA1DA,WAAA,CAAA,EAAA,MAAA;EAKA,IAAA,EAuDT,mCAtDE;AAIV;AAOiB,UA8CA,gBAAA,CA9CuB;EAClB,OAAA,CAAA,EAAA,MAAA;EAAN,YAAA,CAAA,EAAA,MAAA;;AACqB,UAiDpB,UAAA,CAjDoB;EAGpB,IAAA,EAAA,gBACf,GAAA,WAAA;EACa,OAAA,EAAA,MAAA;EAAN,UAAA,EAAA,MAAA;;;;UCjCQ,YAAA;;;SAGR;;;;KCAG,gBAAA;KACA,OAAA;UAEK,mBAAA;QACT,OAAO,SAAS;QAChB,eAAe;YACX;YACA,MAAM;;IRZD,OAAA,EQcJ,ORdoB;IAIrB,gBAAG,EQWO,gBRXP;;;UQeE,sBAAA;EPhBA,QAAA,EOiBL,KPjBK,COiBC,OPjBgB,CAAA;qBOkBb,MAAM;wBACH,MAAM;UACpB,MAAM;ANrBhB;AAOiB,UMiBA,mBAAA,CNhBF;;;;ACPf;AAIY,KKyBA,oBAAA,GAAuB,MLzBvB,CAAA,MAAA,EAAA,MAAA,CAAA;AACL,UK0BU,SAAA,CL1BV;EACQ,IAAA,EAAA,MAAA;;AAEN,UK2BQ,cAAA,CL3BR;EAAgB,WAAA,EAAA,MAAA;;UK+BR,kBAAA,SAA2B,WAAW;;EJ1CtC,WAAA,EAAA,MAAA;AAIjB;UI2CiB,WAAA,SAAoB;;;EH7CpB,cAAA,CAAA,EGgDE,MHhDF,CAAA,MAAA,EAAA,MAA8B,CAAA;AAI/C;AAQiB,UGuCA,mBAAA,SAA4B,kBHlCzB,CAAA;EAIR,IAAA,EAAA,MAAA;EAA2B,WAAA,EAAA,MAAA;;AACP,UGkCf,YAAA,SAAqB,kBHlCN,CAAA;EAA6B,IAAA,EAAA,MAAA;;eGqC9C;6BACc;AFnD7B;AAKiB,UEiDA,iBAAA,CFjDuB;EAKvB,IAAA,EAAA,MAAA;EAOA,WAAA,EAAA,MAAA;EACK,aAAA,EEuCL,KFvCK,CAAA,MAAA,CAAA;;AACT,UEyCI,iBAAA,CFzCJ;EAAwB,aAAA,EE0CpB,KF1CoB,CE0Cd,YF1Cc,CAAA;EAGpB,IAAA,EEwCT,KFxCS,CEwCH,WFvCZ,CAAA;EACa,oBAAA,EEuCS,KFvCT,CEuCe,mBFvCf,CAAA;EAAN,MAAA,CAAA,EEwCE,KFxCF,CEwCQ,iBFxCR,CAAA;;AAD0B,UE4ClB,yBAAA,CF5CkB;EAAc,IAAA,EE8CzC,KF9CyC,CE8CnC,eF9CmC,CAAA;AAIjD;AAIiB,UE0CA,eAAA,SAAwB,SF1CU,CAAA;EAMlC,IAAA,EAAA,MAAA;EAKA,WAAA,CAAA,EAAA,MAAkB;EAC5B,KAAA,CAAA,EEiCG,IFjCH;;AACS,UEyCC,IAAA,CFzCD;EAF2B,EAAA,EAAA,MAAA;EAAY,WAAA,EAAA,MAAA;AAKvD;;;;;;;;;;;;;UG3CiB,WAAA;;ETfA,IAAA,EAAA,MAAA;EAIL,QAAG,CAAA,EAAA,OAAA,GAAA,OAAA,GAAA,KAAA,GAAA,OAAA;;;;ACDf;;;;ACDiB,UOyBA,iBAAA,CPrBF;EAGE,EAAA,EAAA,MAAA;;;;ECNA,IAAA,CAAA,EAAA,MAAA;;;;;AAQR,UM+BQ,SAAA,CN/BR;EAAgB,IAAA,EAAA,KAAA;;;;ACXzB;AAIA;;UK+CiB,eAAA;;EJjDA,UAAA,EAAA,MAAA;EAIA,KAAA,CAAA,EAAA,MAAA;EAQA,UAAA,CAAA,EAAA,MAAA;EASL,MAAA,CAAA,EAAA,MAAA;;;;;UIuCK,WAAA;;YAEL;IHrDK,IAAA,CAAA,EAAA,MAAA;IAKA,KAAA,EAAA,MAAA;IAKA,IAAA,CAAA,EAAA,MAAA;EAOA,CAAA,CAAA;EACK,OAAA,CAAA,EAAA,MAAA;EAAN,QAAA,CAAA,EAAA,MAAA;;;AAIhB;;AAES,UGyCQ,iBAAA,CHzCR;EADC,IAAA,EAAA,cAAA;EAAyB,GAAA,CAAA,EAAA,MAAA;EAAc,YAAA,EAAA,MAAA;AAIjD;AAIA;AAMA;AAKA;AACO,UG+BU,mBAAA,CH/BV;EACe,IAAA,EAAA,eAAA;EAAN,GAAA,EAAA,MAAA;EAF2B,KAAA,CAAA,EAAA,MAAA;;AAK3C;AASA;AAEA;AAKiB,UGoBA,YAAA,CHpBgB;EAKhB,IAAA,EAAA,QAAU;;UGkBjB;;AF/FV;;;KEqGY,YAAA,GACR,YACA,kBACA,cACA,oBACA,sBACA;ADxGJ;AACA;AAEA;AACe,UC6GE,QAAA,CD7GF;EAAS,IAAA,EAAA,MAAA;EAAhB,KAAA,EAAA,MAAA;;;;;AAGI,UCkHK,OAAA,CDlHL;EAEC,EAAA,EAAA,MAAA;EACS,IAAA,EAAA,MAAA;EAAgB,WAAA,CAAA,EAAA,MAAA;AAItC;;;;AAEqB,UCkHJ,aAAA,CDlHI;EACS,EAAA,EAAA,MAAA;EAAN,IAAA,EAAA,MAAA;EACR,WAAA,EAAA,MAAA;EAAN,WAAA,CAAA,EAAA,MAAA;EAAK,MAAA,CAAA,ECqHJ,YDrHI;EAGE,KAAA,CAAA,ECmHP,KDnHO,CAAA,MAAA,CAAA;EAML,KAAA,CAAA,EC8GF,KD9GE,CC8GI,OD9GJ,CAAA;EAEK,QAAA,CAAA,EC6GJ,QD7Ga;EAIT,KAAA,CAAA,EAAA,MAAA;EAIA,IAAA,CAAA,ECuGR,KDvGQ,CAAA,MAAA,CAAA;EAKA,MAAA,CAAA,EAAA,MAAY;EAMZ,KAAA,CAAA,EC8FP,KD9FO,CAAA;IAKA,GAAA,EAAA,MAAa;IAGf,KAAA,CAAA,EAAA,MAAA;EACc,CAAA,CAAA;EAJS,QAAA,CAAA,EAAA,MAAA;EAAkB,aAAA,CAAA,EC2FtC,KD3FsC,CAAA,MAAA,CAAA;AAOxD;AAMiB,UCkFA,WAAA,CDlFiB;EACX,EAAA,EAAA,MAAA;EAAN,IAAA,EAAA,MAAA;;AACT,UCqFS,cAAA,CDrFT;EACsB,IAAA,ECqFtB,KDrFsB,CCqFhB,aDrFgB,CAAA;EAAN,UAAA,ECsFV,KDtFU,CCsFJ,WDtFI,CAAA;;AACb,UC4FM,gBAAA,CD5FN;EAAK,IAAA,EC6FR,KD7FQ,CC6FF,eD7FE,CAAA;AAGhB;AAMiB,UCuFA,eAAA,CDvFgB;EAYhB,IAAA,EAAA,MAAI;UC6EX,MAAM;;UAGC,oBAAA;EAjKA,IAAA,EAAA,MAAA;EAYA,WAAA,EAAA,MAAA;EAeA,KAAA,EAyIR,KAzIiB,CAyIX,mBAzIW,CAAA;AAS1B;AAWiB,UAwHA,mBAAA,CAtHA;EAYA,IAAA,EAAA,MAAA;EASA,WAAA,EAAA,MAAA;AASjB;;;UCrFiB,+BAAA;0BACS,QAAQ;+BACH,QAAQ;8BACT,qBAAqB,QAAQ;0BACjC,QAAQ;kCACA,QAAQ;kBACxB,QAAQ,MAAM;;;;UCbf,yBAAA;;;;SAIR;;UAGQ,wBAAA;;;;SAIR;AXbT;AAIY,UWYK,wBAAA,CXZF;;;;ECDE,CAAA;;;;ACDjB;AAOA;KSkBY,sBAAA;UAEK,oBAAA;;ER1BA,SAAA,EQ4BJ,sBR5BgB;;AAKtB,UQ0BU,mBAAA,CR1BV;EACQ,OAAA,EAAA,MAAA;EAAN,qBAAA,EAAA,MAAA;EAEA,OAAA,EAAA,MAAA;EAAgB,OAAA,EQ2Bd,oBR3Bc;;;;USNR,UAAA;;;;cAIH;YACF,MAAM;;;;;;AZVD,iBYiBD,UAAA,CZhBiB,MAAA,EYgBE,UZhBI,CAAA,eYgBM,IZhBN,CAAA;EAG3B,OAAG,EAAA,MAAA;;;;ECDE,QAAA,EAAA,CAAA,OAAA,mBAGM,EAAK,yBAAA,kBAAA,CAAA;;;;ICJX,OAAA,EAAA,IAAA;EAOA,CAAA;;;;ICNA,WAAY,EAAA;MAIjB,OAAA,EAAA,IAAA;MACL,MAAA,EAAA,MAAA;IACQ,CAAA;EAAN,CAAA;EAEA,QAAA,EAAA;IAAgB,gBAAA,EAAA,OAAA;;;KSuCb,UAAA,GAAa,kBAAkB;;;UChD1B,aAAA;0BACS;;UAGT,oBAAA;0BACS;;iBAGV,mBAAA;;GAEb,uBAAuB;;;;;;;iBCkCV,gBAAA,QAAwB,2BAAU;;;;;Ad9ClD,CAAA,+CACuC,CAAA;EAG3B,SAAG,kCAAA,CAAA;;;;ECDE,CAAA,CAAA;;;;ICDA,IAAA,EAAA,CAAA,CAAA;EAOA,CAAA,CAAA;;;;MCNA,YAAY,CAAA,EAAA,MAAA,GAAA,SAAA;IAIjB,CAAA;IACL,MAAA,EAAA,KAAA,aAAA;IACQ,IAAA,EAAA,CAAA,CAAA;EAAN,CAAA,CAAA;EAEA,aAAA,kCAAA,CAAA;IAAgB,KAAA,EAAA,IAAA;;;;ECXR,qBAAA,kCACO,CAAA;IAGP,KAAA,EAAA,IAAA;;;;ECFA,wBAAA,kCACQ,CAAA;IAGR,KAAA,EAAA;MAQA,gBAAA,EAAA,MAA6B;MASlC,OAAA,EAAA,MAAA;IAA2B,CAAA;IACpC,MAAA,mBAAA;IAA6B,IAAA,EAAA,CAAA,CAAA;EAA6B,CAAA,CAAA;;;;ICb5C,IAAA,EAAA,CAAA,CAAA;EAKA,CAAA,CAAA;EAKA,IAAA,+BAA2B,CAAA;IAO3B,GAAA,eAAA;IACK,IAAA,EAAA,CAAA,CAAA;IAAN,UAAA,qCAAA;IACH,WAAA,EAAA,KAAA;EAAwB,CAAA,+CAAA,CAAA;IAGpB,IAAA,kCACf,CAAA;MACa,KAAA,EAAA,IAAA;MAAN,MAAA,EAAA;QADC,EAAA,EAAA,MAAA;QAAyB,IAAA,EAAA,MAAA;QAAc,QAAA,EAAA,MAAA;QAIhC,QAAA,EAAA,MAAA;QAIA,SAAA,MAAA;QAMA,SAAA,MAAA;MAKA,CAAA,EAAA;MACV,IAAA,EAAA,CAAA,CAAA;IACe,CAAA,CAAA;IAAN,MAAA,kCAAA,CAAA;MAF2B,KAAA,EAAA;QAAY,EAAA,EAAA,MAAA;MAKtC,CAAA;MASL,MAAA,EAAA;QAEK,EAAU,EAAA,MAAA;QAKV,IAAA,EAAA,MAAgB;QAKhB,OAAU,uCAAA;;;;QC7EV,QAAY,EAAA,MAGpB;;;;QCAG,SAAgB,MAAA;MAChB,CAAA,GAAO,IAAA;MAEF,IAAA,EAAA,CAAA,CAAA;IACF,CAAA,CAAA;IAAS,MAAA,qCAAA,CAAA;MAAhB,KAAA,EAAA;QACe,IAAA,EAAA,MAAA;QAAf,OAAA,EAAA,MAAA;QACI,QAAA,EAAA,MAAA;QACM,QAAA,EAAA,MAAA;MAAN,CAAA;MAEC,MAAA,EAAA;QACS,EAAA,EAAA,MAAA;QAAgB,IAAA,EAAA,MAAA;QAIrB,OAAA,uCAAsB;QACrB,QAAA,EAAA,MAAA;QAAN,QAAA,EAAA,MAAA;QACe,SAAA,kCAAA;QAAN,QAAA,EAAA,MAAA;QACS,KAAA,EAAA,MAAA,GAAA,IAAA;QAAN,MAAA,EAAA,MAAA,GAAA,IAAA;QACR,SAAA,MAAA;QAAN,SAAA,MAAA;MAAK,CAAA;MAGE,IAAA,EAAA,CAAA,CAAA;IAML,CAAA,CAAA;IAEK,MAAA,qCAAS,CAAA;MAIT,KAAA,EAAA;QAIA,EAAA,EAAA,MAAmB;QAKnB,IAAY,CAAA,EAAA,MAAA,GAGV,SAHkB;QAMpB,OAAA,CAAA,EAAoB,MAAA,GAAA,SAAQ;QAK5B,QAAa,CAAA,EAAA,MAAA,GAAA,SAAA;QAGf,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MACc,CAAA;MAJS,MAAA,EAAA;QAAkB,EAAA,EAAA,MAAA;QAOvC,IAAA,EAAA,MAAiB;QAMjB,OAAA,uCAAiB;QACX,QAAA,EAAA,MAAA;QAAN,QAAA,EAAA,MAAA;QACH,SAAA,kCAAA;QAAN,QAAA,EAAA,MAAA;QACsB,KAAA,EAAA,MAAA,GAAA,IAAA;QAAN,MAAA,EAAA,MAAA,GAAA,IAAA;QACP,SAAA,MAAA;QAAN,SAAA,MAAA;MAAK,CAAA;MAGC,IAAA,EAAA,CAAA,CAAA;IAMA,CAAA,CAAA;IAYA,MAAI,qCAAA,CAAA;;;;MCjFJ,MAAW,EAAA;QAYX,EAAA,EAAA,MAAiB;QAeR,IAAA,EAAA,MAAA;QAST,OAAe,uCAAA;QAWf,QAAW,EAAA,MAEhB;QAYK,QAAiB,EAAA,MAAA;QASjB,SAAA,kCAAmB;QASnB,QAAY,EAAA,MAGnB;QAME,KAAY,EAAA,MAAA,GAAA,IAAA;QACpB,MAAA,EAAA,MAAA,GAAA,IAAA;QACA,SAAA,MAAA;QACA,SAAA,MAAA;MACA,CAAA;MACA,IAAA,EAAA,CAAA,CAAA;IACA,CAAA,CAAA;IAAY,UAAA,qCAAA,CAAA;MASC,KAAQ,EAAA;QAQD,GAAA,EAAA,MAAA,EAAA;MASP,CAAA;MAKN,MAAA,qCAAA;MACD,IAAA,EAAA,CAAA,CAAA;IACM,CAAA,CAAA;IAAN,UAAA,kCAAA,CAAA;MACG,KAAA,EAAA;QAEJ,EAAA,EAAA,MAAA;MAEC,CAAA;MAEQ,MAAA,EAAA;QAAK,OAAA,EAAA,MAAA;QAIN,QAAW,EAAA,MAAA;MAKX,CAAA;MACH,IAAA,EAAA,CAAA,CAAA;IAAN,CAAA,CAAA;EACY,CAAA,CAAA,CAAA;EAAN,UAAA,+BAAA,CAAA;IAAK,GAAA,eAAA;IAOF,IAAA,EAAA,CAAA,CAAA;IAIA,UAAA,qCAEF;IAGE,WAAA,EAAA,KAAA;EAMA,CAAA,+CAAmB,CAAA;;;;QC7KnB,EAAA,EAAA,MAAA;QACiB,IAAA,EAAA,MAAA;QAAR,QAAA,EAAA,MAAA;QACa,QAAA,EAAA,MAAA;QAAR,KAAA,EAAA,MAAA,GAAA,IAAA;QACD,MAAA,EAAA,MAAA,GAAA,IAAA;QAA6B,SAAA,MAAA;QAAR,SAAA,MAAA;MACjB,CAAA,EAAA;MAAR,IAAA,EAAA,CAAA,CAAA;IACgB,CAAA,CAAA;IAAR,MAAA,kCAAA,CAAA;MACF,KAAA,EAAA;QAAN,EAAA,EAAA,MAAA;MAAR,CAAA;MAAO,MAAA,EAAA;;;;QCbR,QAAA,EAAA,MAAyB;QAOzB,KAAA,EAAA,MAAA,GAAwB,IAAA;QAOxB,MAAA,EAAA,MAAA,GAAwB,IAAA;QAW7B,SAAA,MAAsB;QAEjB,SAAA,MAAoB;MAKpB,CAAA,GAAA,IAAA;;;;MC7BA,KAAU,EAAA;QAIb,OAAA,EAAA,MAAA;MACI,CAAA;MAAN,MAAA,EAAA;QAAK,EAAA,EAAA,MAAA;QAOD,IAAU,EAAA,MAAA;QAAS,QAAA,EAAA,MAAA;;;;;;SAAU;MAAA,IAAA,EAAA,CAAA,CAAA;IAiCjC,CAAA,CAAA;;;;MChDK,CAAA;MAIA,MAAA,EAAA;QAID,EAAA,EAAA,MAAmB;QACjC,IAAA,EAAA,MAAA;QACC,QAAA,EAAA,MAAA;QAAuB,QAAA,EAAA,MAAA;QAAa,KAAA,EAAA,MAAA,GAAA,IAAA;;;;MCkCvB,CAAA,GAAA,IAAA;MAAwB,IAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAU,IAAA,EAAA,CAAA,CAAA;IAgFtC,CAAA,CAAA;;;;QC9HK,IAAA,CAAA,EAAA,MAAA,GAAA,SAA0B;QAO9B,WAAA,CAAA,EAAA,MAWZ,GAAA,SAXsC;;;;UCEvB,IAAA,EAAkB,KAAA,GAAA,WAAM,GAAe,OAAA,GAAU,cAAA,GAAA,eAAA,GAAA,QAAA;;;;UCEjD,EAAA,EAAgB,MAAA;UACZ,IAAA,EAAA,MAAA;UAAf,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;QACI,CAAA,EAAA,GAAA,SAAA;;;;;;QAAU,IAAA,CAAA,EAAA,MAAA,EAAA,GAAA,SAAA;QAAA,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;QA+DP,KAAU,CAAA,EAAA;;;;QC3DN,QAAA,CAAA,EAAA,MAAuB,GAAA,SAAI;QAiD3B,aAAqB,CAAA,EAAA,MAAA,EAAU,GAAA,SAAA;MA4B/B,CAAA;;;;QC5EC,SAAc,MAAA;QAaf,WAAa,EAAA,MACrB;QAoBQ,IAAA,EAAA,MAAkB;QAWlB,WAAmB,EAAA,MAAA;QAYnB,MAAA,yBAA8B;QAYvB,KAAA,EAAA,MAAO,EAAA;QAQd,KAAY,oBAAO,GAAA,IAAc;QASjC,YAAa,EAAA,MACrB,GAAA,IAAA;;;;QCpGS,MAAA,EAAA,MAAuB,GAAA,IAAA;QAE/B,KAAA,oBAAA,EAAA,GAAA,IAAA;QAIgB,QAAA,EAAA,MAAA,GAAA,IAAA;QAAf,aAAA,EAAA,MAAA,EAAA;MAAM,CAAA;MAkEA,IAAA,EAAA,CAAA,CAAA;IAAgC,CAAA,CAAA;IAQ3B,MAAA,qCAAA,CAAA;MAAc,KAAA,EAAA;QAAQ,EAAA,EAAA,MAAA;MAAA,CAAA;;;;QC7E1B,SAAc,MAAA;QAEsB,WAAA,EAAA,MAAA;QAAN,IAAA,EAAA,MAAA;QAAR,WAAA,EAAA,MAAA;QAEX,MAAA,yBAAA;QAED,KAAA,EAAA,MAAA,EAAA;QAAR,KAAA,oBAAA,GAAA,IAAA;QAIJ,YAAA,EAAA,MAAA,GAAA,IAAA;QAAR,aAAA,EAAA,MAAA,GAAA,IAAA;QAAO,KAAA,EAAA,MAAA,GAAA,IAAA;QAME,IAAA,EAAA,MAAA,EAAA;QAC+B,MAAA,EAAA,MAAA,GAAA,IAAA;QAAR,KAAA,oBAAA,EAAA,GAAA,IAAA;QACD,QAAA,EAAA,MAAA,GAAA,IAAA;QAClC,aAAA,EAAA,MAAA,EAAA;MAAc,CAAA;MA+EF,IAAA,EAAA,CAAA,CAAA;IA8HH,CAAA,CAAA;;;;ICnNI,IAAA,EAAA,CAAA,CAAA;IAeD,UAAA,qCAEN;;;;MCnCO,KAAA,EAAA,IAAe;MAYV,MAAU,EAAA;QAAQ,IAAA,EAAA,CAAA,CAAA,GAAA,IAAA;QAAe,eAAA,EAAA,OAAA;;;;IAAA,YAAA,kCAAA,CAAA;MAAA,KAAA,EAAA,IAAA;MAiCjC,MAAW,EAAA;QAAc,SAAA,EAAA,MAAA,EAAA;MAAN,CAAA;MAAK,IAAA,EAAA,CAAA,CAAA;;;;AAAiB,KT8EnD,UAAA,GAAa,US9EsC,CAAA,OT8EpB,gBS9EoB,CAAA;;;URhD9C,0BAAA;;;;;;;;;;;;AfAA,ceOJ,wBfN0B,EeMA,0BfNA;;;;;;;;iBgBQvB,kBAAA,MAAwB,eAAe;;;;;;;;;iBCEvC,gBAAA,IACX,eAAe,+BACX,2BAAU;;;EjBbF,UAAA,qCACsB;EAG3B,WAAG,EAAA,KAAA;;;;ICDE,MAAA,EAAA;;;;ICDA,IAAA,EAAA,CAAA,CAAA;EAOA,CAAA,CAAA;;;;MCNA,SAAY,EAAA,MAAA,EAAA;IAIjB,CAAA;IACL,IAAA,EAAA,CAAA,CAAA;EACQ,CAAA,CAAA;CAAN,CAAA,CAAA;AAEA,KciEG,UAAA,GAAa,UdjEhB,CAAA,OciEkC,gBdjElC,CAAA;;;iBeMO,uBAAA,CAAA,GAA2B;;;AjBd3C;;;;ACDA;AAOA;;;;ACNA;;;;;;;;;;ACHiB,iBckED,qBAAA,CAAA,CdjEG,EciEsB,KdjEjB,CciEuB,gBdjEvB,CAAA;AAGxB;;;iBc0FgB,kBAAA,CAAA;;;;;;;;;;;;;;;AlB9FhB;AAIA;;;;ACDiB,UkBeA,cAAA,ClBfiB;;;;ECDjB,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,GAAA;AAOjB;;;;ACNA;AAIY,iBgBwBI,aAAA,ChBxBJ,IAAA,EgByBJ,chBzBI,GAAA,IAAA,GAAA,SAAA,CAAA,EgB0BT,KhB1BS,CAAA,MAAA,CAAA;;;;AAIH,iBgByCO,kBAAA,ChBzCP,IAAA,EgB0CD,chB1CC,GAAA,IAAA,GAAA,SAAA,EAAA,aAAA,EgB2CQ,KhB3CR,CAAA,MAAA,CAAA,CAAA,EAAA,OAAA;;;;iBgBoDO,mBAAA,OACR,mDACU;AfjElB;AAIA;;;iBeuEgB,qBAAA,CAAA,GAAyB;AdzEzC;AAIA;AAQA;AASY,iBcgEI,OAAA,CdhEoB,IAAA,EcgEN,cdhEM,GAAA,IAAA,GAAA,SAAA,CAAA,EAAA,OAAA;;;;AACyB,iBcuE7C,YAAA,CdvE6C,IAAA,EcuE1B,cdvE0B,GAAA,IAAA,GAAA,SAAA,CAAA,EAAA,IAAA;;;;ACb5C,iBa6FD,aAAA,Cb7F+B,IAAA,Ea8FvC,cb5FI,GAAA,IAAK,GAAA,SAAA,EAAA,MAAA,Ea6FP,Kb7FO,CAAA,MAAA,CAAA,CAAA,EAAA,IAAA;;;UcRA,uBAAA;;SAER;;;;UAIC,eAAe;;;ApBXzB;AAIA;;;;ACDA;;;;ACDA;AAOA;;;;ACNA;;;;;;;;;;ACHA;AAIA;;;;ACFiB,iBe2ED,sBAAA,Cf3E+B,OACtC,Ee0EuC,uBf1EvB,CAAA,EAAA,CAAA,GAAA,EekFJ,OflFI,EAAA,GAAA,EekFU,QflFV,EAAA,GekFkB,OflFlB,CAAA,IAAA,CAAA;;;;;;;UgBKR,cAAA;;uCAEsB,QAAQ,MAAM;;4BAEzB;;;ErBZX;EAIL,SAAG,EAAA,GAAA,GqBUI,OrBVJ,CqBUY,KrBVZ,CAAA,MAAA,CAAA,CAAA;;qCqBcR,QAAQ;;IpBfE,IAAA,EAAA,MAAA;;;;ACDjB;AAOA;;iBmBegB,0BAAA;uCACuB,QAAQ;ElBtB9B,iBAAY,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GkBuBS,OlBvBT,CAAA,MAAA,CAAA;CAIjB,CAAA,EkBoBR,clBpBQ;;;;;;;;iBkBmGI,mBAAA,CAAA,GAAuB,eAAe;AjB1GtD;AAIA;;;ciBoOa,2BAAA;;;UCnNI,wBAAA;;;;;;;;;;;AtBrBjB;AAIA;;iBsBgCgB,0BAAA,SACN,gBACA;;;UCnCO,eAAA;;WAEN;;;;;;;;;iBAUW,UAAA,QAAkB,kBAAe;EvBftC,EAAA,EAAA,MAAA;EAIL,IAAA,EAAG,MAAA;WuBWwC,+BAAA,CAAA;;;EtBZtC,SAAA,kCAGW;;;;ECJX,SAAA,MAAA;EAOA,SAAA,MAAA;;;;ACNjB;;AAKO,iBoBwCe,WAAA,CpBxCf,KAAA,EoBwCkC,KpBxClC,CoBwCwC,epBxCxC,CAAA,CAAA,EoBwCwD,OpBxCxD,CAAA;EACQ,EAAA,EAAA,MAAA;EAAN,IAAA,EAAA,MAAA;EAEA,OAAA,EoBqCqC,+BAAA,CAAA,KpBrCrC;EAAgB,QAAA,EAAA,MAAA;;;;ECXR,KAAA,EAAA,MAAA,GAAA,IAAA;EAIA,MAAA,EAAA,MAAA,GAAA,IAAA;;;;ACFjB;AAIA;AAQA;AASA;AAAuC,iBkBsCjB,cAAA,ClBtCiB,IAAA,EAAA,MAAA,CAAA,EkBsCU,OlBtCV,CAAA;EACpC,IAAA,EAAA,MAAA;EAA6B,OAAA,YAAA,YAAA,CAAA;EAA6B,QAAA,EAAA,MAAA;;;;UmBK5C,yBAAA;;;;;;;;;;;AxB7BjB;AAIA;;;iBwByCgB,2BAAA,SACN,gBACA;;;UC3CO,8BAAA;;;;;;;;;;;AzBJjB;AAIA;;iByBegB,gCAAA,SACN,gBACA;;;iBChBM,sBAAA,IAA0B,eAAe,uCAAsB;;;;;;;;;;M1BL9D,IAAA,EAAA,MAAgB;MAIlB,QAAA,EAAA,MAAA;;;;MCDE,SAAA,MAAiB;;;;ECDjB,CAAA,CAAA;EAOA,MAAA,kCACR,CAAA;;;;ICPQ,MAAA,EAAA;MAIL,EAAA,EAAA,MAAA;MACL,IAAA,EAAA,MAAA;MACQ,QAAA,EAAA,MAAA;MAAN,QAAA,EAAA,MAAA;MAEA,KAAA,EAAA,MAAA,GAAA,IAAA;MAAgB,MAAA,EAAA,MAAA,GAAA,IAAA;;;;ICXR,IAAA,EAAA,CAAA,CAAA;EAIA,CAAA,CAAA;;;;ICFA,CAAA;IAIA,MAAA,EAAA;MAQA,EAAA,EAAA,MAAA;MASL,IAAA,EAAA,MAAA;MAA2B,QAAA,EAAA,MAAA;MACpC,QAAA,EAAA,MAAA;MAA6B,KAAA,EAAA,MAAA,GAAA,IAAA;MAA6B,MAAA,EAAA,MAAA,GAAA,IAAA;;;;ICb5C,IAAA,EAAA,CAAA,CAAA;EAKA,CAAA,CAAA;EAKA,iBAAA,kCAA2C,CAAA;IAO3C,KAAA,EAAA;MACK,OAAA,EAAA,MAAA;IAAN,CAAA;IACH,MAAA,EAAA;MAAwB,EAAA,EAAA,MAAA;MAGpB,IAAA,EAAA,MAAA;MAEF,QAAA,EAAA,MAAA;MAAN,QAAA,EAAA,MAAA;MADC,KAAA,EAAA,MAAA,GAAA,IAAA;MAAyB,MAAA,EAAA,MAAA,GAAA,IAAA;MAAc,SAAA,MAAA;MAIhC,SAAA,MAAA;IAIA,CAAA,GAAA,IAAA;IAMA,IAAA,EAAA,CAAA,CAAA;EAKA,CAAA,CAAA;CACV,CAAA,CAAA;;;UqBjDU,gBAAA;;;;;;;;;;;;A3BLjB;AAIA;;;;ACDA;;;iB0BwBsB,UAAA,SAAmB,mBAAmB;EzBzB3C,aAAA,EAAA,MAAgB;EAOhB,mBAAc,EAAA,MAAA;;;;iB0BqCf,2BAAA,IAA+B,eAAe,uCAAsB;;;;;;;;;;M5B9CnE,SAAA,MAAgB;MAIlB,SAAA,MAAA;;;;MCDE,MAAA,yBAGW;;;;MCJX,aAAgB,EAAA,MAAA,GAIlB,IAAN;MAGQ,KAAA,EAAA,MAAc,GAAA,IAAA;;;;MCNd,QAAY,EAAA,MAAA,GAAA,IAAA;MAIjB,aAAA,EAAA,MAAA,EAAA;IACL,CAAA,EAAA;IACQ,IAAA,EAAA,CAAA,CAAA;EAAN,CAAA,CAAA;EAEA,OAAA,kCAAA,CAAA;IAAgB,KAAA,EAAA;;;;MCXR,EAAA,EAAA,MAAA;MAIA,SAAA,MAAA;;;;MCFA,WAAA,EAAA,MAAA;MAIA,MAAA,yBAA0B;MAQ1B,KAAA,EAAA,MAAA,EAAA;MASL,KAAA,oBAAwB,GAAA,IAAA;MAAG,YAAA,EAAA,MAAA,GAAA,IAAA;MACpC,aAAA,EAAA,MAAA,GAAA,IAAA;MAA6B,KAAA,EAAA,MAAA,GAAA,IAAA;MAA6B,IAAA,EAAA,MAAA,EAAA;;;;MCb5C,aAAA,EAAA,MAAA,EAAA;IAKA,CAAA,GAAA,IAAA;IAKA,IAAA,EAAA,CAAA,CAAA;EAOA,CAAA,CAAA;EACK,MAAA,qCAAA,CAAA;IAAN,KAAA,EAAA;MACH,IAAA,EAAA,MAAA;MAAwB,WAAA,EAAA,MAAA;MAGpB,WAAA,EAAA,MACf;MACa,MAAA,EAAA;QAAN,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;QADC,IAAA,EAAA,KAAA,GAAA,WAAA,GAAA,OAAA,GAAA,cAAA,GAAA,eAAA,GAAA,QAAA;MAAyB,CAAA;MAAc,KAAA,CAAA,EAAA,MAAA,EAAA,GAAA,SAAA;MAIhC,KAAA,CAAA,EAAA;QAIA,EAAA,EAAA,MAAA;QAMA,IAAA,EAAA,MAAA;QAKA,WAAkB,CAAA,EAAA,MAAA,GAAA,SAAA;MAC5B,CAAA,EAAA,GAAA,SAAA;MACe,QAAA,CAAA,EAAA;QAAN,IAAA,EAAA,MAAA;QAF2B,KAAA,EAAA,MAAA;MAAY,CAAA,GAAA,SAAA;MAKtC,KAAA,CAAA,EAAA,MAAgB,GAAA,SAOV;MAEX,IAAA,CAAA,EAAA,MAAe,EAAA,GAAA,SAAG;MAEb,MAAU,CAAA,EAAA,MAAA,GAEnB,SAAA;MAGS,KAAA,CAAA,EAAA;QAKA,GAAU,EAAA,MAAA;;;;MC7EV,aAAY,CAAA,EAAA,MAGpB,EAAA,GAAA,SAAgB;;;;MCAb,SAAA,MAAgB;MAChB,SAAO,MAAA;MAEF,WAAA,EAAA,MAAmB;MACrB,IAAA,EAAA,MAAA;MAAS,WAAA,EAAA,MAAA;MAAhB,MAAA,yBAAA;MACe,KAAA,EAAA,MAAA,EAAA;MAAf,KAAA,oBAAA,GAAA,IAAA;MACI,YAAA,EAAA,MAAA,GAAA,IAAA;MACM,aAAA,EAAA,MAAA,GAAA,IAAA;MAAN,KAAA,EAAA,MAAA,GAAA,IAAA;MAEC,IAAA,EAAA,MAAA,EAAA;MACS,MAAA,EAAA,MAAA,GAAA,IAAA;MAAgB,KAAA,oBAAA,EAAA,GAAA,IAAA;MAIrB,QAAA,EAAA,MAAA,GAAsB,IAAA;MACrB,aAAA,EAAA,MAAA,EAAA;IAAN,CAAA;IACe,IAAA,EAAA,CAAA,CAAA;EAAN,CAAA,CAAA;EACS,MAAA,qCAAA,CAAA;IAAN,KAAA,EAAA;MACR,EAAA,EAAA,MAAA;MAAN,IAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAAK,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAGE,WAAA,CAAA,EAAmB,MAAA,GAAA,SAAA;MAMxB,MAAA,CAAA,EAAA;QAEc,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;QAIT,IAAA,EAAc,KAAA,GAAA,WAAA,GAAA,OAAA,GAAA,cAAA,GAAA,eAAA,GAAA,QAAA;MAId,CAAA,GAAA,SAAmB;MAKnB,KAAA,CAAY,EAAA,MAAA,EAAA,GAGV,SAHkB;MAMpB,KAAA,CAAA,EAAA;QAKA,EAAA,EAAa,MAAA;QAGf,IAAA,EAAA,MAAA;QACc,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAJS,CAAA,EAAA,GAAA,SAAA;MAAkB,QAAA,CAAA,EAAA;QAOvC,IAAA,EAAA,MAAiB;QAMjB,KAAA,EAAA,MAAiB;MACX,CAAA,GAAA,SAAA;MAAN,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MACH,IAAA,CAAA,EAAA,MAAA,EAAA,GAAA,SAAA;MAAN,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MACsB,KAAA,CAAA,EAAA;QAAN,GAAA,EAAA,MAAA;QACP,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAAN,CAAA,EAAA,GAAA,SAAA;MAAK,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAGC,aAAA,CAAA,EAAA,MAAyB,EAAA,GAAA,SAE5B;IAIG,CAAA;IAYA,MAAI,EAAA;;;;MCjFJ,WAAW,EAAA,MAAA;MAYX,IAAA,EAAA,MAAiB;MAejB,WAAS,EAAA,MAAA;MAST,MAAA,yBAAe;MAWf,KAAA,EAAW,MAAA,EAAA;MAcX,KAAA,oBAAiB,GAAA,IAAA;MASjB,YAAA,EAAmB,MAAA,GAAA,IAAA;MASnB,aAAY,EAAA,MAGnB,GAAA,IAAK;MAMH,KAAA,EAAY,MAAA,GAAA,IAAA;MACpB,IAAA,EAAA,MAAA,EAAA;MACA,MAAA,EAAA,MAAA,GAAA,IAAA;MACA,KAAA,oBAAA,EAAA,GAAA,IAAA;MACA,QAAA,EAAA,MAAA,GAAA,IAAA;MACA,aAAA,EAAA,MAAA,EAAA;IACA,CAAA;IAAY,IAAA,EAAA,CAAA,CAAA;EASC,CAAA,CAAA;EAQA,MAAA,qCAAO,CAAA;IASP,KAAA,EAAA;MAKN,EAAA,EAAA,MAAA;IACD,CAAA;IACM,MAAA,EAAA;MAAN,EAAA,EAAA,MAAA;MACG,SAAA,MAAA;MAEJ,SAAA,MAAA;MAEC,WAAA,EAAA,MAAA;MAEQ,IAAA,EAAA,MAAA;MAAK,WAAA,EAAA,MAAA;MAIN,MAAW,yBAAA;MAKX,KAAA,EAAA,MAAc,EAAA;MACjB,KAAA,oBAAA,GAAA,IAAA;MAAN,YAAA,EAAA,MAAA,GAAA,IAAA;MACY,aAAA,EAAA,MAAA,GAAA,IAAA;MAAN,KAAA,EAAA,MAAA,GAAA,IAAA;MAAK,IAAA,EAAA,MAAA,EAAA;MAOF,MAAA,EAAA,MAAgB,GAAA,IAAA;MAIhB,KAAA,oBAED,EAAA,GAAA,IAAA;MAGC,QAAA,EAAA,MAAoB,GAAA,IAAA;MAMpB,aAAA,EAAmB,MAAA,EAAA;;;;AC7KpC,CAAA,CAAA,CAAA;;;;;;;iBmBDgB,WAAA,CAAA,GAAe;;;;;iBAWf,WAAA,SAAoB;;A7BnBpC;AAIA;;iB6BuBsB,SAAA,CAAA,GAAa;;A5BxBnC;;;iB4BiCsB,YAAA,CAAA,GAAgB;;;KC/B1B,oCAAoC,MAAA,CAAO,mBAC/C,MAAA,CAAO,iBAAiB;KACpB,oCAAoC,MAAA,CAAO,mBAC/C,MAAA,CAAO,iBAAiB;KAEpB,sCAAsC,MAAA,CAAO,aAAa,QACpE,MAAA,CAAO,iBAAiB;UAWT,4CACO,uCACG,MAAA,CAAO,gCACX,cAAc,WAAW,6CACrB,cAAc,WAAW;UAE1C;mBACS;eACJ;oBACK;E9B/BH,KAAA,CAAA,E8BgCP,Y9BhCuB,C8BgCV,gB9B/BU,CAAM;EAG3B,UAAG,CAAA,EAAA,OAAA;;K8ByCH,8CAA8C,MAAA,CAAO,aAC/D,YACE,MAAA,CAAO,iBAAiB;iBAGZ,sCACQ,uCACG,MAAA,CAAO,gCACX,cAAc,WAAW,6CACrB,cAAc,WAAW,gCACtC,WAAW,sDAEf,sBACN,eACA,kBACA,cACA;E7B1Da,IAAA,CAAA,uBAAiB,qBAGN,iBAAA,CAAA,CAAA,OAAA,qBAAA,iBAAA,CAAA,cAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,SAAA,SAAA,EAAA,CAAA,SAAA,CAAA;;;;ECJX,CAAA,CAAA;AAOjB,CAAA;;;c6BIa;;;;;;KAOD,iBAAA,UAA2B;KAC3B,6BAAA,SAAsC;;;UChBjC,oBAAA;;;;;;;;;;;AhCLjB;AAIY,iBgCcU,cAAA,ChCdP,IAAA,EgCeP,KhCfO,CgCeD,ahCfC,CAAA,CAAA,EgCgBZ,OhChBY,CgCgBJ,oBhChBI,CAAA;;;;;;;KiCOH,gBAAA;;AjCXZ,CAAA,GAAiB;EAIL,IAAA,EAAG,MAAA;;;;ECDE,QAAA,EAAA,MAAA;;;;ACDjB;AAOA;U+BgBiB,YAAA;;;E9BtBA;EAIL,MAAA,EAAA,MAAA;EACL;EACQ,SAAA,CAAA,E8BsBD,iB9BtBC,CAAA,iBAAA,CAAA;EAAN;EAEA,OAAA,CAAA,E8BsBG,K9BtBH,C8BsBS,gB9BtBT,CAAA;EAAgB;;;;ECXR;EAIA,OAAA,CAAA,EAAA,MAAA;;;;ACFjB;AAIA;AAQiB,U4BgCA,iBAAA,C5BhCA;EASL;EAA2B,KAAA,E4ByB9B,a5BzB8B;EACpC;EAA6B,YAAA,CAAA,EAAA,MAAA;EAA6B;U4B4BnD,eAAe;;;A3BzCzB;AAKA;AAKA;AAOA;;AACgB,U2BgCC,gBAAA,C3BhCD;EACH;EAAwB,IAAA,CAAA,EAAA,OAAA;EAGpB;EAEF,IAAA,CAAA,EAAA,OAAA;EAAN;EADC,KAAA,CAAA,EAAA,OAAA;EAAyB;EAAc,MAAA,CAAA,EAAA,OAAA;EAIhC;EAIA,WAAA,CAAA,EAAA,OAAA;EAMA;EAKA,SAAA,CAAA,EAAA,OAAA;EACV;EACe,kBAAA,CAAA,EAAA,OAAA;;;;AAGtB;AASA;AAEA;AAKA;AAKiB,K2BKL,iBAAA,GACR,+B3BNuB,GAAA,CAAA,GAAA,G2BOhB,+B3BPgB,CAAA,GAAA,CAAA,GAAA,G2BQhB,O3BRgB,C2BQR,+B3BRQ,CAAA,CAAA;;;;AC7EV,U0B0FA,gBAAA,C1BvFR;;qC0ByF4B;;EzBzFzB,uBAAgB,CAAA,EAAA,GAAA,GAAA,IAAA,GyB2Fa,OzB3Fb,CAAA,IAAA,CAAA;EAChB;EAEK,kBAAA,CAAA,EAAA,CAAmB,MAAA,EyB0FJ,MzB1FI,EAAA,GAAA,IAAA,GyB0Fc,OzB1Fd,CAAA,IAAA,CAAA;EACrB;EAAS,OAAA,CAAA,EAAA,CAAA,KAAA,EyB2FJ,KzB3FI,EAAA,OAAA,EAAA;IAAhB,IAAA,EAAA,MAAA;EACe,CAAA,EAAA,GAAA,IAAA;;;;;AAIV,UyB4FI,mBAAA,CzB5FJ;EACS;;AAItB;;;;;;;EAIgB,QAAA,CAAA,EAAA,MAAA;EAAN;;AAGV;AAMA;AAEA;EAIiB,QAAA,CAAA,EyBqFJ,gBzBrFkB;EAId;EAKA,IAAA,EyB+ET,YzB/EqB;EAMZ;EAKA,OAAA,EyBuEN,iBzBvEmB;EAGf;EACc,SAAA,CAAA,EyBsEf,iBzBtEe;EAJS;EAAkB,QAAA,CAAA,EyB6E3C,gBzB7E2C;EAOvC;EAMA,KAAA,CAAA,EyBmEP,gBzBnEwB;;;;;AAGJ,UyBsEb,kBAAA,CzBtEa;EAAN;EACP,MAAA,EyBuEP,MzBvEO;EAAN;EAAK,IAAA,EyByER,UzBzEQ;EAGC;EAMA,UAAA,EyBkEH,UzBlEmB;EAYhB;iByBwDA;;oBAEG;ExB3IH;EAYA,SAAA,EAAA,CAAA,QAAiB,EAAA,CAAA,MAAA,EwBiID,MxBjIC,EAAA,GAAA,IAAA,EAAA,GAAA,IAAA;AAelC;AASA;AAWA;AAcA;AASiB,UwB6EA,iBAAA,CxB7EmB;EASnB,IAAA,EwBqET,UxBrEqB;EASjB,UAAA,EwB6DE,UxB7DU;EACpB,aAAA,EAAA,GAAA,GwB6DmB,OxB7DnB,CAAA;IACA,sBAAA,EwB4DqD,+BxB5DrD;EACA,CAAA,CAAA;;;;;;;;;;;;;;;AT1GJ;AAIA;;;;ACDA;;;;ACDA;AAOA;;;;ACNA;;;;;;;;;;ACHA;AAIA;;;;ACFA;AAIA;AAQA;AASA;;;;;;;;ACZA;AAKA;AAKA;AAOA;AACsB,iB4BoCA,kBAAA,C5BpCA,OAAA,E4BqCX,mB5BrCW,CAAA,E4BsCnB,O5BtCmB,C4BsCX,kB5BtCW,CAAA;;;;;;;c6BTT,iBAAA;;;sBAIS;;;AnCxBtB;AAIA;emC4Be;aAkBI;gBAKG;AlCpDtB"}
package/dist/index.js CHANGED
@@ -13,6 +13,8 @@ import { stepCountIs, streamText, tool } from "ai";
13
13
  import multer from "multer";
14
14
  import { readFileSync, readdirSync } from "node:fs";
15
15
  import { extname, join } from "node:path";
16
+ import express, { Router } from "express";
17
+ import * as trpcExpress from "@trpc/server/adapters/express";
16
18
 
17
19
  //#region src/db/client.ts
18
20
  let prismaClient = null;
@@ -25,6 +27,13 @@ function getDbClient() {
25
27
  return prismaClient;
26
28
  }
27
29
  /**
30
+ * Sets the internal Prisma client instance.
31
+ * Used by middleware to bridge with existing getDbClient() usage.
32
+ */
33
+ function setDbClient(client) {
34
+ prismaClient = client;
35
+ }
36
+ /**
28
37
  * Connects to the database.
29
38
  * Call this before performing database operations.
30
39
  */
@@ -1802,5 +1811,284 @@ async function syncScreenshotsFromDirectory(prisma, screenshotsDir) {
1802
1811
  }
1803
1812
 
1804
1813
  //#endregion
1805
- export { DEFAULT_ADMIN_SYSTEM_PROMPT, TABLE_SYNC_MAGAZINE, connectDb, createAdminChatHandler, createAppCatalogAdminRouter, createAuth, createAuthRouter, createDatabaseTools, createEhTrpcContext, createPrismaDatabaseClient, createScreenshotRouter, createTrpcRouter, disconnectDb, getAdminGroupsFromEnv, getAssetByName, getAuthPluginsFromEnv, getAuthProvidersFromEnv, getDbClient, getUserGroups, isAdmin, isMemberOfAllGroups, isMemberOfAnyGroup, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, requireAdmin, requireGroups, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, tool, upsertIcon, upsertIcons, validateAuthConfig };
1814
+ //#region src/middleware/database.ts
1815
+ /**
1816
+ * Formats a database connection URL from structured config.
1817
+ */
1818
+ function formatConnectionUrl(config) {
1819
+ if ("url" in config) return config.url;
1820
+ const { host, port, database, username, password, schema = "public" } = config;
1821
+ return `postgresql://${username}:${encodeURIComponent(password)}@${host}:${port}/${database}?schema=${schema}`;
1822
+ }
1823
+ /**
1824
+ * Internal database manager used by the middleware.
1825
+ * Handles connection URL formatting and lifecycle.
1826
+ */
1827
+ var EhDatabaseManager = class {
1828
+ constructor(config) {
1829
+ this.client = null;
1830
+ this.config = config;
1831
+ }
1832
+ /**
1833
+ * Get or create the Prisma client instance.
1834
+ * Uses lazy initialization for flexibility.
1835
+ */
1836
+ getClient() {
1837
+ if (!this.client) {
1838
+ this.client = new PrismaClient({
1839
+ datasourceUrl: formatConnectionUrl(this.config),
1840
+ log: process.env.NODE_ENV === "development" ? ["warn", "error"] : ["warn", "error"]
1841
+ });
1842
+ setDbClient(this.client);
1843
+ }
1844
+ return this.client;
1845
+ }
1846
+ async connect() {
1847
+ await this.getClient().$connect();
1848
+ }
1849
+ async disconnect() {
1850
+ if (this.client) {
1851
+ await this.client.$disconnect();
1852
+ this.client = null;
1853
+ }
1854
+ }
1855
+ };
1856
+
1857
+ //#endregion
1858
+ //#region src/middleware/backendResolver.ts
1859
+ /**
1860
+ * Type guard to check if an object implements EhBackendCompanySpecificBackend.
1861
+ */
1862
+ function isBackendInstance(obj) {
1863
+ return typeof obj === "object" && obj !== null && typeof obj.getBootstrapData === "function" && typeof obj.getAvailabilityMatrix === "function" && typeof obj.getNameMigrations === "function" && typeof obj.getResourceJumps === "function" && typeof obj.getResourceJumpsExtended === "function";
1864
+ }
1865
+ /**
1866
+ * Normalizes different backend provider types into a consistent async factory function.
1867
+ * Supports:
1868
+ * - Direct object implementing EhBackendCompanySpecificBackend
1869
+ * - Sync factory function that returns the backend
1870
+ * - Async factory function that returns the backend
1871
+ */
1872
+ function createBackendResolver(provider) {
1873
+ if (isBackendInstance(provider)) return async () => provider;
1874
+ if (typeof provider === "function") return async () => {
1875
+ const result = provider();
1876
+ return result instanceof Promise ? result : result;
1877
+ };
1878
+ throw new Error("Invalid backend provider: must be an object implementing EhBackendCompanySpecificBackend or a factory function");
1879
+ }
1880
+
1881
+ //#endregion
1882
+ //#region src/middleware/featureRegistry.ts
1883
+ const FEATURES = [
1884
+ {
1885
+ name: "auth",
1886
+ defaultEnabled: true,
1887
+ register: (router$1, options, ctx) => {
1888
+ const basePath = options.basePath;
1889
+ router$1.get(`${basePath}/auth/session`, async (req, res) => {
1890
+ try {
1891
+ const session = await ctx.auth.api.getSession({ headers: req.headers });
1892
+ if (session) res.json(session);
1893
+ else res.status(401).json({ error: "Not authenticated" });
1894
+ } catch (error) {
1895
+ console.error("[Auth Session Error]", error);
1896
+ res.status(500).json({ error: "Internal server error" });
1897
+ }
1898
+ });
1899
+ const authHandler = toNodeHandler(ctx.auth);
1900
+ router$1.all(`${basePath}/auth/{*any}`, authHandler);
1901
+ }
1902
+ },
1903
+ {
1904
+ name: "icons",
1905
+ defaultEnabled: true,
1906
+ register: (router$1, options) => {
1907
+ registerIconRestController(router$1, { basePath: `${options.basePath}/icons` });
1908
+ }
1909
+ },
1910
+ {
1911
+ name: "assets",
1912
+ defaultEnabled: true,
1913
+ register: (router$1, options) => {
1914
+ registerAssetRestController(router$1, { basePath: `${options.basePath}/assets` });
1915
+ }
1916
+ },
1917
+ {
1918
+ name: "screenshots",
1919
+ defaultEnabled: true,
1920
+ register: (router$1, options) => {
1921
+ registerScreenshotRestController(router$1, { basePath: `${options.basePath}/screenshots` });
1922
+ }
1923
+ },
1924
+ {
1925
+ name: "adminChat",
1926
+ defaultEnabled: false,
1927
+ register: (router$1, options) => {
1928
+ if (options.adminChat) router$1.post(`${options.basePath}/admin/chat`, createAdminChatHandler(options.adminChat));
1929
+ }
1930
+ },
1931
+ {
1932
+ name: "legacyIconEndpoint",
1933
+ defaultEnabled: false,
1934
+ register: (router$1) => {
1935
+ router$1.get("/static/icon/:icon", async (req, res) => {
1936
+ const { icon } = req.params;
1937
+ if (!icon || !/^[a-z0-9-]+$/i.test(icon)) {
1938
+ res.status(400).send("Invalid icon name");
1939
+ return;
1940
+ }
1941
+ try {
1942
+ const dbIcon = await getAssetByName(icon);
1943
+ if (!dbIcon) {
1944
+ res.status(404).send("Icon not found");
1945
+ return;
1946
+ }
1947
+ res.setHeader("Content-Type", dbIcon.mimeType);
1948
+ res.setHeader("Cache-Control", "public, max-age=86400");
1949
+ res.send(dbIcon.content);
1950
+ } catch (error) {
1951
+ console.error("Error fetching icon:", error);
1952
+ res.status(404).send("Icon not found");
1953
+ }
1954
+ });
1955
+ }
1956
+ }
1957
+ ];
1958
+ /**
1959
+ * Registers all enabled features on the router.
1960
+ */
1961
+ function registerFeatures(router$1, options, context) {
1962
+ const toggles = options.features || {};
1963
+ for (const feature of FEATURES) {
1964
+ const isEnabled = toggles[feature.name] ?? feature.defaultEnabled;
1965
+ if (feature.name === "adminChat" && !options.adminChat) continue;
1966
+ if (isEnabled) feature.register(router$1, options, context);
1967
+ }
1968
+ }
1969
+
1970
+ //#endregion
1971
+ //#region src/middleware/createEhMiddleware.ts
1972
+ /**
1973
+ * Creates a fully-configured env-hopper middleware.
1974
+ *
1975
+ * @example
1976
+ * ```typescript
1977
+ * // Simple usage with inline backend
1978
+ * const eh = await createEhMiddleware({
1979
+ * basePath: '/api',
1980
+ * database: { url: process.env.DATABASE_URL! },
1981
+ * auth: {
1982
+ * baseURL: 'http://localhost:4000',
1983
+ * secret: process.env.AUTH_SECRET!,
1984
+ * },
1985
+ * backend: {
1986
+ * getBootstrapData: async () => loadStaticData(),
1987
+ * getAvailabilityMatrix: async () => ({}),
1988
+ * getNameMigrations: async () => false,
1989
+ * getResourceJumps: async () => ({ resourceJumps: [], envs: [], lateResolvableParams: [] }),
1990
+ * getResourceJumpsExtended: async () => ({ envs: [] }),
1991
+ * },
1992
+ * })
1993
+ *
1994
+ * app.use(eh.router)
1995
+ * await eh.connect()
1996
+ * ```
1997
+ *
1998
+ * @example
1999
+ * ```typescript
2000
+ * // With DI-resolved backend (e.g., tsyringe)
2001
+ * const eh = await createEhMiddleware({
2002
+ * basePath: '/api',
2003
+ * database: {
2004
+ * host: cfg.db.host,
2005
+ * port: cfg.db.port,
2006
+ * database: cfg.db.name,
2007
+ * username: cfg.db.username,
2008
+ * password: cfg.db.password,
2009
+ * schema: cfg.db.schema,
2010
+ * },
2011
+ * auth: {
2012
+ * baseURL: process.env.BETTER_AUTH_URL || 'http://localhost:4000',
2013
+ * secret: process.env.BETTER_AUTH_SECRET!,
2014
+ * providers: getAuthProvidersFromEnv(),
2015
+ * plugins: getAuthPluginsFromEnv(),
2016
+ * },
2017
+ * // Factory function - resolved fresh per request from DI container
2018
+ * backend: () => container.resolve(NateraEhBackend),
2019
+ * hooks: {
2020
+ * onRoutesRegistered: (router) => {
2021
+ * router.get('/health', (_, res) => res.send('ok'))
2022
+ * },
2023
+ * },
2024
+ * })
2025
+ * ```
2026
+ */
2027
+ async function createEhMiddleware(options) {
2028
+ var _normalizedOptions$fe, _options$hooks;
2029
+ const basePath = options.basePath ?? "/api";
2030
+ const normalizedOptions = {
2031
+ ...options,
2032
+ basePath
2033
+ };
2034
+ const features = options.features ?? {};
2035
+ const iconsEnabled = features.icons !== false;
2036
+ const assetsEnabled = features.assets !== false;
2037
+ const screenshotsEnabled = features.screenshots !== false;
2038
+ const legacyIconEnabled = features.legacyIconEndpoint === true;
2039
+ if ((iconsEnabled || assetsEnabled || screenshotsEnabled || legacyIconEnabled) && !options.database) throw new Error("Database configuration is required when icons, assets, screenshots, or legacyIconEndpoint features are enabled. Either provide database config or disable these features.");
2040
+ let dbManager = null;
2041
+ if (options.database) {
2042
+ dbManager = new EhDatabaseManager(options.database);
2043
+ dbManager.getClient();
2044
+ }
2045
+ const auth = createAuth({
2046
+ appName: options.auth.appName,
2047
+ baseURL: options.auth.baseURL,
2048
+ secret: options.auth.secret,
2049
+ providers: options.auth.providers,
2050
+ plugins: options.auth.plugins,
2051
+ sessionExpiresIn: options.auth.sessionExpiresIn,
2052
+ sessionUpdateAge: options.auth.sessionUpdateAge
2053
+ });
2054
+ const trpcRouter = createTrpcRouter(auth);
2055
+ const resolveBackend = createBackendResolver(options.backend);
2056
+ const createContext = async () => {
2057
+ return createEhTrpcContext({ companySpecificBackend: await resolveBackend() });
2058
+ };
2059
+ const router$1 = Router();
2060
+ router$1.use(express.json());
2061
+ const middlewareContext = {
2062
+ auth,
2063
+ trpcRouter,
2064
+ createContext
2065
+ };
2066
+ if (((_normalizedOptions$fe = normalizedOptions.features) === null || _normalizedOptions$fe === void 0 ? void 0 : _normalizedOptions$fe.trpc) !== false) router$1.use(`${basePath}/trpc`, trpcExpress.createExpressMiddleware({
2067
+ router: trpcRouter,
2068
+ createContext
2069
+ }));
2070
+ registerFeatures(router$1, normalizedOptions, middlewareContext);
2071
+ if ((_options$hooks = options.hooks) === null || _options$hooks === void 0 ? void 0 : _options$hooks.onRoutesRegistered) await options.hooks.onRoutesRegistered(router$1);
2072
+ return {
2073
+ router: router$1,
2074
+ auth,
2075
+ trpcRouter,
2076
+ async connect() {
2077
+ var _options$hooks2;
2078
+ if (dbManager) await dbManager.connect();
2079
+ if ((_options$hooks2 = options.hooks) === null || _options$hooks2 === void 0 ? void 0 : _options$hooks2.onDatabaseConnected) await options.hooks.onDatabaseConnected();
2080
+ },
2081
+ async disconnect() {
2082
+ var _options$hooks3;
2083
+ if ((_options$hooks3 = options.hooks) === null || _options$hooks3 === void 0 ? void 0 : _options$hooks3.onDatabaseDisconnecting) await options.hooks.onDatabaseDisconnecting();
2084
+ if (dbManager) await dbManager.disconnect();
2085
+ },
2086
+ addRoutes(callback) {
2087
+ callback(router$1);
2088
+ }
2089
+ };
2090
+ }
2091
+
2092
+ //#endregion
2093
+ export { DEFAULT_ADMIN_SYSTEM_PROMPT, EhDatabaseManager, TABLE_SYNC_MAGAZINE, connectDb, createAdminChatHandler, createAppCatalogAdminRouter, createAuth, createAuthRouter, createDatabaseTools, createEhMiddleware, createEhTrpcContext, createPrismaDatabaseClient, createScreenshotRouter, createTrpcRouter, disconnectDb, getAdminGroupsFromEnv, getAssetByName, getAuthPluginsFromEnv, getAuthProvidersFromEnv, getDbClient, getUserGroups, isAdmin, isMemberOfAllGroups, isMemberOfAnyGroup, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, requireAdmin, requireGroups, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, tool, upsertIcon, upsertIcons, validateAuthConfig };
1806
2094
  //# sourceMappingURL=index.js.map