@igstack/app-catalog-backend-core 0.15.0 → 0.17.0

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.
Files changed (70) hide show
  1. package/dist/db/client.d.mts +54 -1
  2. package/dist/db/client.d.mts.map +1 -1
  3. package/dist/db/client.mjs +88 -7
  4. package/dist/db/client.mjs.map +1 -1
  5. package/dist/db/index.d.mts +1 -1
  6. package/dist/db/syncAppCatalog.mjs +2 -1
  7. package/dist/db/syncAppCatalog.mjs.map +1 -1
  8. package/dist/generated/prisma/internal/class.mjs +4 -4
  9. package/dist/generated/prisma/internal/class.mjs.map +1 -1
  10. package/dist/generated/prisma/internal/prismaNamespace.d.mts +1 -0
  11. package/dist/generated/prisma/internal/prismaNamespace.d.mts.map +1 -1
  12. package/dist/generated/prisma/models/DbResource.d.mts +43 -1
  13. package/dist/generated/prisma/models/DbResource.d.mts.map +1 -1
  14. package/dist/index.d.mts +2 -2
  15. package/dist/index.mjs +2 -2
  16. package/dist/middleware/database.d.mts +1 -0
  17. package/dist/middleware/database.d.mts.map +1 -1
  18. package/dist/middleware/database.mjs +10 -13
  19. package/dist/middleware/database.mjs.map +1 -1
  20. package/dist/modules/appCatalog/freshness.mjs +5 -3
  21. package/dist/modules/appCatalog/freshness.mjs.map +1 -1
  22. package/dist/modules/appCatalog/service.mjs +5 -1
  23. package/dist/modules/appCatalog/service.mjs.map +1 -1
  24. package/dist/modules/assets/assetCache.mjs +25 -0
  25. package/dist/modules/assets/assetCache.mjs.map +1 -0
  26. package/dist/modules/assets/assetRestController.d.mts.map +1 -1
  27. package/dist/modules/assets/assetRestController.mjs +17 -6
  28. package/dist/modules/assets/assetRestController.mjs.map +1 -1
  29. package/dist/modules/assets/assetUtils.mjs +1 -0
  30. package/dist/modules/assets/assetUtils.mjs.map +1 -1
  31. package/dist/modules/assets/screenshotRestController.d.mts.map +1 -1
  32. package/dist/modules/assets/screenshotRestController.mjs +7 -2
  33. package/dist/modules/assets/screenshotRestController.mjs.map +1 -1
  34. package/dist/modules/assets/upsertAsset.mjs +7 -1
  35. package/dist/modules/assets/upsertAsset.mjs.map +1 -1
  36. package/dist/modules/icons/iconRestController.d.mts.map +1 -1
  37. package/dist/modules/icons/iconRestController.mjs +7 -2
  38. package/dist/modules/icons/iconRestController.mjs.map +1 -1
  39. package/dist/modules/lighthouseKeeper/tools.d.mts.map +1 -1
  40. package/dist/modules/lighthouseKeeper/tools.mjs +5 -5
  41. package/dist/modules/lighthouseKeeper/tools.mjs.map +1 -1
  42. package/dist/types/common/appCatalogTypes.d.mts +8 -0
  43. package/dist/types/common/appCatalogTypes.d.mts.map +1 -1
  44. package/package.json +4 -4
  45. package/prisma/schema.prisma +5 -2
  46. package/src/__tests__/assetMime.test.ts +74 -0
  47. package/src/__tests__/dbSchema.test.ts +129 -0
  48. package/src/__tests__/dbSchemaAdapter.test.ts +118 -0
  49. package/src/__tests__/freshness.test.ts +56 -17
  50. package/src/__tests__/iconCache.test.ts +81 -0
  51. package/src/db/client.ts +118 -12
  52. package/src/db/index.ts +10 -1
  53. package/src/db/syncAppCatalog.ts +3 -0
  54. package/src/generated/prisma/internal/class.ts +4 -4
  55. package/src/generated/prisma/internal/prismaNamespace.ts +1 -0
  56. package/src/generated/prisma/internal/prismaNamespaceBrowser.ts +1 -0
  57. package/src/generated/prisma/models/DbResource.ts +44 -1
  58. package/src/index.ts +4 -0
  59. package/src/middleware/database.ts +20 -19
  60. package/src/modules/admin/chat/createDatabaseTools.ts +6 -2
  61. package/src/modules/appCatalog/freshness.ts +29 -11
  62. package/src/modules/appCatalog/service.ts +9 -4
  63. package/src/modules/assets/assetCache.ts +30 -0
  64. package/src/modules/assets/assetRestController.ts +25 -2
  65. package/src/modules/assets/assetUtils.ts +1 -0
  66. package/src/modules/assets/screenshotRestController.ts +13 -1
  67. package/src/modules/assets/upsertAsset.ts +8 -0
  68. package/src/modules/icons/iconRestController.ts +11 -1
  69. package/src/modules/lighthouseKeeper/tools.ts +6 -7
  70. package/src/types/common/appCatalogTypes.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DbResource.d.mts","names":[],"sources":["../../../../src/generated/prisma/models/DbResource.ts"],"mappings":"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"}
1
+ {"version":3,"file":"DbResource.d.mts","names":[],"sources":["../../../../src/generated/prisma/models/DbResource.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -23,7 +23,7 @@ import { AssetRestControllerConfig, registerAssetRestController } from "./module
23
23
  import { ScreenshotRestControllerConfig, registerScreenshotRestController } from "./modules/assets/screenshotRestController.mjs";
24
24
  import { SyncAssetsConfig, syncAssets } from "./modules/assets/syncAssets.mjs";
25
25
  import { checkAllLinks, printLinkCheckReport } from "./modules/appCatalog/checkLinks.mjs";
26
- import { connectDb, disconnectDb, getDbClient, setDbClient } from "./db/client.mjs";
26
+ import { buildPgSchemaOptions, connectDb, createCorePrismaClient, disconnectDb, getDbClient, resolveDbSchema, setDbClient, verifyDbSchema } from "./db/client.mjs";
27
27
  import { buildPgSslConfig } from "./db/sslConfig.mjs";
28
28
  import { MakeTFromPrismaModel, ObjectKeys, ScalarFilter, ScalarKeys, TableSyncParamsPrisma, tableSyncPrisma } from "./db/tableSyncPrismaAdapter.mjs";
29
29
  import { TABLE_SYNC_MAGAZINE, TableSyncMagazine, TableSyncMagazineModelNameKey } from "./db/tableSyncMagazine.mjs";
@@ -35,4 +35,4 @@ import { injectCustomScripts } from "./middleware/htmlInjection.mjs";
35
35
  import { runLighthouseKeeperDemo } from "./modules/lighthouseKeeper/demo.mjs";
36
36
  import { APP_CATALOG_AI_SYSTEM_PROMPT, createAppCatalogAITools } from "./modules/lighthouseKeeper/tools.mjs";
37
37
  import { getBuildPipelineId, getFrontendPackageVersion, getVersionInfo } from "./utils/versionUtils.mjs";
38
- export { APP_CATALOG_AI_SYSTEM_PROMPT, AcAppIndexed, AcAppPageIndexed, AcAppUiIndexed, AcAppsMeta, type AcAuthConfig, AcBackendAppDto, AcBackendAppInput, AcBackendAppUIBaseInput, AcBackendAppUIInput, AcBackendCredentialInput, AcBackendDataFreshness, AcBackendDataSourceInput, AcBackendDataSourceInputCommon, AcBackendDataSourceInputDb, AcBackendDataSourceInputKafka, AcBackendDataVersion, AcBackendDeployableInput, AcBackendDeployment, AcBackendDeploymentInput, AcBackendEnvironmentInput, AcBackendPageInput, type AcBackendProvider, AcBackendTagDescriptionDataIndexed, AcBackendTagFixedTagValue, AcBackendTagsDescriptionDataIndexed, AcBackendUiDefaultsInput, AcBackendVersionsRequestParams, AcBackendVersionsReturn, AcContextIndexed, type AcDatabaseConfig, AcDatabaseManager, AcEnvIndexed, type AcFeatureToggles, type AcLifecycleHooks, type AcLighthouseKeeperConfig, type AcMcpServerConfig, AcMetaDictionary, type AcMiddlewareOptions, type AcMiddlewareResult, AcResourceIndexed, type AcStaticControllerContract, type AcTrpcContext, type AcTrpcContextOptions, AccessRequest, AppAccessRequest, AppApprovalMethod, AppCatalogCompanySpecificBackend, AppCatalogData, AppCategory, AppRole, AppVersionInfo, ApprovalMethod, ApprovalMethodConfig, ApprovalMethodType, ApprovalUrl, type AssetRestControllerConfig, type AuthRouter, type BetterAuth, CustomConfig, Freshness, Group, GroupingTagDefinition, GroupingTagValue, type IconRestControllerConfig, type MakeTFromPrismaModel, type MiddlewareContext, type ObjectKeys, Person, PersonTeamConfig, type Resource, Role, type ScalarFilter, type ScalarKeys, type ScreenshotRestControllerConfig, ServiceConfig, SourceReference, type SyncAppCatalogResult, type SyncAssetsConfig, TABLE_SYNC_MAGAZINE, type TRPCRouter, type TableSyncMagazine, type TableSyncMagazineModelNameKey, type TableSyncParamsPrisma, Tag, TierVariant, type UpsertIconInput, VersionInfo, buildPgSslConfig, checkAllLinks, connectDb, createAcMiddleware, createAcTrpcContext, createAppCatalogAITools, createAuth, createAuthRouter, createTrpcRouter, disconnectDb, getAssetByName, getBuildPipelineId, getDbClient, getFrontendPackageVersion, getVersionInfo, injectCustomScripts, printLinkCheckReport, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, runLighthouseKeeperDemo, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, upsertIcon, upsertIcons };
38
+ export { APP_CATALOG_AI_SYSTEM_PROMPT, AcAppIndexed, AcAppPageIndexed, AcAppUiIndexed, AcAppsMeta, type AcAuthConfig, AcBackendAppDto, AcBackendAppInput, AcBackendAppUIBaseInput, AcBackendAppUIInput, AcBackendCredentialInput, AcBackendDataFreshness, AcBackendDataSourceInput, AcBackendDataSourceInputCommon, AcBackendDataSourceInputDb, AcBackendDataSourceInputKafka, AcBackendDataVersion, AcBackendDeployableInput, AcBackendDeployment, AcBackendDeploymentInput, AcBackendEnvironmentInput, AcBackendPageInput, type AcBackendProvider, AcBackendTagDescriptionDataIndexed, AcBackendTagFixedTagValue, AcBackendTagsDescriptionDataIndexed, AcBackendUiDefaultsInput, AcBackendVersionsRequestParams, AcBackendVersionsReturn, AcContextIndexed, type AcDatabaseConfig, AcDatabaseManager, AcEnvIndexed, type AcFeatureToggles, type AcLifecycleHooks, type AcLighthouseKeeperConfig, type AcMcpServerConfig, AcMetaDictionary, type AcMiddlewareOptions, type AcMiddlewareResult, AcResourceIndexed, type AcStaticControllerContract, type AcTrpcContext, type AcTrpcContextOptions, AccessRequest, AppAccessRequest, AppApprovalMethod, AppCatalogCompanySpecificBackend, AppCatalogData, AppCategory, AppRole, AppVersionInfo, ApprovalMethod, ApprovalMethodConfig, ApprovalMethodType, ApprovalUrl, type AssetRestControllerConfig, type AuthRouter, type BetterAuth, CustomConfig, Freshness, Group, GroupingTagDefinition, GroupingTagValue, type IconRestControllerConfig, type MakeTFromPrismaModel, type MiddlewareContext, type ObjectKeys, Person, PersonTeamConfig, type Resource, Role, type ScalarFilter, type ScalarKeys, type ScreenshotRestControllerConfig, ServiceConfig, SourceReference, type SyncAppCatalogResult, type SyncAssetsConfig, TABLE_SYNC_MAGAZINE, type TRPCRouter, type TableSyncMagazine, type TableSyncMagazineModelNameKey, type TableSyncParamsPrisma, Tag, TierVariant, type UpsertIconInput, VersionInfo, buildPgSchemaOptions, buildPgSslConfig, checkAllLinks, connectDb, createAcMiddleware, createAcTrpcContext, createAppCatalogAITools, createAuth, createAuthRouter, createCorePrismaClient, createTrpcRouter, disconnectDb, getAssetByName, getBuildPipelineId, getDbClient, getFrontendPackageVersion, getVersionInfo, injectCustomScripts, printLinkCheckReport, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, resolveDbSchema, runLighthouseKeeperDemo, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, upsertIcon, upsertIcons, verifyDbSchema };
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { buildPgSslConfig } from "./db/sslConfig.mjs";
2
- import { connectDb, disconnectDb, getDbClient, setDbClient } from "./db/client.mjs";
2
+ import { buildPgSchemaOptions, connectDb, createCorePrismaClient, disconnectDb, getDbClient, resolveDbSchema, setDbClient, verifyDbSchema } from "./db/client.mjs";
3
3
  import { createAuthRouter } from "./modules/auth/authRouter.mjs";
4
4
  import { createTrpcRouter } from "./server/controller.mjs";
5
5
  import { createAcTrpcContext } from "./server/acTrpcContext.mjs";
@@ -22,4 +22,4 @@ import { APP_CATALOG_AI_SYSTEM_PROMPT, createAppCatalogAITools } from "./modules
22
22
  import { runLighthouseKeeperDemo } from "./modules/lighthouseKeeper/demo.mjs";
23
23
  import { getBuildPipelineId, getFrontendPackageVersion, getVersionInfo } from "./utils/versionUtils.mjs";
24
24
 
25
- export { APP_CATALOG_AI_SYSTEM_PROMPT, AcDatabaseManager, TABLE_SYNC_MAGAZINE, buildPgSslConfig, checkAllLinks, connectDb, createAcMiddleware, createAcTrpcContext, createAppCatalogAITools, createAuth, createAuthRouter, createTrpcRouter, disconnectDb, getAssetByName, getBuildPipelineId, getDbClient, getFrontendPackageVersion, getVersionInfo, injectCustomScripts, printLinkCheckReport, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, runLighthouseKeeperDemo, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, upsertIcon, upsertIcons };
25
+ export { APP_CATALOG_AI_SYSTEM_PROMPT, AcDatabaseManager, TABLE_SYNC_MAGAZINE, buildPgSchemaOptions, buildPgSslConfig, checkAllLinks, connectDb, createAcMiddleware, createAcTrpcContext, createAppCatalogAITools, createAuth, createAuthRouter, createCorePrismaClient, createTrpcRouter, disconnectDb, getAssetByName, getBuildPipelineId, getDbClient, getFrontendPackageVersion, getVersionInfo, injectCustomScripts, printLinkCheckReport, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, resolveDbSchema, runLighthouseKeeperDemo, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, upsertIcon, upsertIcons, verifyDbSchema };
@@ -18,6 +18,7 @@ declare class AcDatabaseManager {
18
18
  getClient(): PrismaClient;
19
19
  connect(): Promise<void>;
20
20
  disconnect(): Promise<void>;
21
+ private configuredSchema;
21
22
  }
22
23
  //#endregion
23
24
  export { AcDatabaseManager };
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.mts","names":[],"sources":["../../src/middleware/database.ts"],"mappings":";;;;;;AAuBA;;cAAa,iBAAA;EAAA,QACH,MAAA;EAAA,QACA,IAAA;EAAA,QACA,MAAA;cAEI,MAAA,EAAQ,gBAAA;EAyCO;;;;EAjC3B,SAAA,CAAA,GAAa,YAAA;EA4BP,OAAA,CAAA,GAAW,OAAA;EAKX,UAAA,CAAA,GAAc,OAAA;AAAA"}
1
+ {"version":3,"file":"database.d.mts","names":[],"sources":["../../src/middleware/database.ts"],"mappings":";;;;;;AAyBA;;cAAa,iBAAA;EAAA,QACH,MAAA;EAAA,QACA,IAAA;EAAA,QACA,MAAA;cAEI,MAAA,EAAQ,gBAAA;EAoCO;;;;EA5B3B,SAAA,CAAA,GAAa,YAAA;EAsBP,OAAA,CAAA,GAAW,OAAA;EAMX,UAAA,CAAA,GAAc,OAAA;EAAA,QAWZ,gBAAA;AAAA"}
@@ -1,8 +1,4 @@
1
- import { PrismaClient } from "../generated/prisma/client.mjs";
2
- import { buildPgSslConfig } from "../db/sslConfig.mjs";
3
- import { setDbClient } from "../db/client.mjs";
4
- import { PrismaPg } from "@prisma/adapter-pg";
5
- import pg from "pg";
1
+ import { createCorePrismaClient, setDbClient, verifyDbSchema } from "../db/client.mjs";
6
2
 
7
3
  //#region src/middleware/database.ts
8
4
  /**
@@ -29,22 +25,20 @@ var AcDatabaseManager = class {
29
25
  */
30
26
  getClient() {
31
27
  if (!this.client) {
32
- const datasourceUrl = formatConnectionUrl(this.config);
33
- const ssl = buildPgSslConfig();
34
- this.pool = new pg.Pool({
35
- connectionString: datasourceUrl,
36
- ...ssl === void 0 ? {} : { ssl }
37
- });
38
- this.client = new PrismaClient({
39
- adapter: new PrismaPg(this.pool),
28
+ const created = createCorePrismaClient({
29
+ connectionString: formatConnectionUrl(this.config),
30
+ configuredSchema: this.configuredSchema(),
40
31
  log: process.env.NODE_ENV === "development" ? ["warn", "error"] : ["warn", "error"]
41
32
  });
33
+ this.pool = created.pool;
34
+ this.client = created.client;
42
35
  setDbClient(this.client);
43
36
  }
44
37
  return this.client;
45
38
  }
46
39
  async connect() {
47
40
  await this.getClient().$connect();
41
+ if (this.pool) await verifyDbSchema(this.pool, this.configuredSchema());
48
42
  }
49
43
  async disconnect() {
50
44
  if (this.client) {
@@ -56,6 +50,9 @@ var AcDatabaseManager = class {
56
50
  this.pool = null;
57
51
  }
58
52
  }
53
+ configuredSchema() {
54
+ return "url" in this.config ? void 0 : this.config.schema;
55
+ }
59
56
  };
60
57
 
61
58
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"database.mjs","names":[],"sources":["../../src/middleware/database.ts"],"sourcesContent":["import { PrismaClient } from '../generated/prisma/client'\nimport { PrismaPg } from '@prisma/adapter-pg'\nimport pg from 'pg'\nimport type { AcDatabaseConfig } from './types'\nimport { setDbClient } from '../db/client'\nimport { buildPgSslConfig } from '../db/sslConfig'\n\n/**\n * Formats a database connection URL from structured config.\n */\nfunction formatConnectionUrl(config: AcDatabaseConfig): string {\n if ('url' in config) {\n return config.url\n }\n\n const { host, port, database, username, password, schema = 'public' } = config\n return `postgresql://${username}:${encodeURIComponent(password)}@${host}:${port}/${database}?schema=${schema}`\n}\n\n/**\n * Internal database manager used by the middleware.\n * Handles connection URL formatting and lifecycle.\n */\nexport class AcDatabaseManager {\n private client: PrismaClient | null = null\n private pool: pg.Pool | null = null\n private config: AcDatabaseConfig\n\n constructor(config: AcDatabaseConfig) {\n this.config = config\n }\n\n /**\n * Get or create the Prisma client instance.\n * Uses lazy initialization for flexibility.\n */\n getClient(): PrismaClient {\n if (!this.client) {\n const datasourceUrl = formatConnectionUrl(this.config)\n\n // Prisma 7 with adapter: Create pg pool and wrap with adapter.\n // SSL from PGSSLMODE/PGSSLROOTCERT via buildPgSslConfig (node-postgres\n // doesn't apply those correctly to a connection-string pool).\n const ssl = buildPgSslConfig()\n this.pool = new pg.Pool({\n connectionString: datasourceUrl,\n ...(ssl === undefined ? {} : { ssl }),\n })\n const adapter = new PrismaPg(this.pool)\n\n this.client = new PrismaClient({\n adapter,\n log:\n process.env.NODE_ENV === 'development'\n ? ['warn', 'error']\n : ['warn', 'error'],\n })\n\n // Bridge with existing backend-core getDbClient() usage\n setDbClient(this.client)\n }\n return this.client\n }\n\n async connect(): Promise<void> {\n const client = this.getClient()\n await client.$connect()\n }\n\n async disconnect(): Promise<void> {\n if (this.client) {\n await this.client.$disconnect()\n this.client = null\n }\n if (this.pool) {\n await this.pool.end()\n this.pool = null\n }\n }\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAS,oBAAoB,QAAkC;AAC7D,KAAI,SAAS,OACX,QAAO,OAAO;CAGhB,MAAM,EAAE,MAAM,MAAM,UAAU,UAAU,UAAU,SAAS,aAAa;AACxE,QAAO,gBAAgB,SAAS,GAAG,mBAAmB,SAAS,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,UAAU;;;;;;AAOxG,IAAa,oBAAb,MAA+B;CAK7B,YAAY,QAA0B;gBAJA;cACP;AAI7B,OAAK,SAAS;;;;;;CAOhB,YAA0B;AACxB,MAAI,CAAC,KAAK,QAAQ;GAChB,MAAM,gBAAgB,oBAAoB,KAAK,OAAO;GAKtD,MAAM,MAAM,kBAAkB;AAC9B,QAAK,OAAO,IAAI,GAAG,KAAK;IACtB,kBAAkB;IAClB,GAAI,QAAQ,SAAY,EAAE,GAAG,EAAE,KAAK;IACrC,CAAC;AAGF,QAAK,SAAS,IAAI,aAAa;IAC7B,SAHc,IAAI,SAAS,KAAK,KAAK;IAIrC,KACE,QAAQ,IAAI,aAAa,gBACrB,CAAC,QAAQ,QAAQ,GACjB,CAAC,QAAQ,QAAQ;IACxB,CAAC;AAGF,eAAY,KAAK,OAAO;;AAE1B,SAAO,KAAK;;CAGd,MAAM,UAAyB;AAE7B,QADe,KAAK,WAAW,CAClB,UAAU;;CAGzB,MAAM,aAA4B;AAChC,MAAI,KAAK,QAAQ;AACf,SAAM,KAAK,OAAO,aAAa;AAC/B,QAAK,SAAS;;AAEhB,MAAI,KAAK,MAAM;AACb,SAAM,KAAK,KAAK,KAAK;AACrB,QAAK,OAAO"}
1
+ {"version":3,"file":"database.mjs","names":[],"sources":["../../src/middleware/database.ts"],"sourcesContent":["import type { PrismaClient } from '../generated/prisma/client'\nimport type pg from 'pg'\nimport type { AcDatabaseConfig } from './types'\nimport {\n createCorePrismaClient,\n setDbClient,\n verifyDbSchema,\n} from '../db/client'\n\n/**\n * Formats a database connection URL from structured config.\n */\nfunction formatConnectionUrl(config: AcDatabaseConfig): string {\n if ('url' in config) {\n return config.url\n }\n\n const { host, port, database, username, password, schema = 'public' } = config\n return `postgresql://${username}:${encodeURIComponent(password)}@${host}:${port}/${database}?schema=${schema}`\n}\n\n/**\n * Internal database manager used by the middleware.\n * Handles connection URL formatting and lifecycle.\n */\nexport class AcDatabaseManager {\n private client: PrismaClient | null = null\n private pool: pg.Pool | null = null\n private config: AcDatabaseConfig\n\n constructor(config: AcDatabaseConfig) {\n this.config = config\n }\n\n /**\n * Get or create the Prisma client instance.\n * Uses lazy initialization for flexibility.\n */\n getClient(): PrismaClient {\n if (!this.client) {\n // This client - not getDbClient()'s - is the one the app ends up using.\n // The `?schema=` in the url is inert (node-postgres drops unknown URL\n // params), so the schema has to travel via createCorePrismaClient.\n const created = createCorePrismaClient({\n connectionString: formatConnectionUrl(this.config),\n configuredSchema: this.configuredSchema(),\n log:\n process.env.NODE_ENV === 'development'\n ? ['warn', 'error']\n : ['warn', 'error'],\n })\n this.pool = created.pool\n this.client = created.client\n\n // Bridge with existing backend-core getDbClient() usage\n setDbClient(this.client)\n }\n return this.client\n }\n\n async connect(): Promise<void> {\n const client = this.getClient()\n await client.$connect()\n if (this.pool) await verifyDbSchema(this.pool, this.configuredSchema())\n }\n\n async disconnect(): Promise<void> {\n if (this.client) {\n await this.client.$disconnect()\n this.client = null\n }\n if (this.pool) {\n await this.pool.end()\n this.pool = null\n }\n }\n\n private configuredSchema(): string | undefined {\n return 'url' in this.config ? undefined : this.config.schema\n }\n}\n"],"mappings":";;;;;;AAYA,SAAS,oBAAoB,QAAkC;AAC7D,KAAI,SAAS,OACX,QAAO,OAAO;CAGhB,MAAM,EAAE,MAAM,MAAM,UAAU,UAAU,UAAU,SAAS,aAAa;AACxE,QAAO,gBAAgB,SAAS,GAAG,mBAAmB,SAAS,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,UAAU;;;;;;AAOxG,IAAa,oBAAb,MAA+B;CAK7B,YAAY,QAA0B;gBAJA;cACP;AAI7B,OAAK,SAAS;;;;;;CAOhB,YAA0B;AACxB,MAAI,CAAC,KAAK,QAAQ;GAIhB,MAAM,UAAU,uBAAuB;IACrC,kBAAkB,oBAAoB,KAAK,OAAO;IAClD,kBAAkB,KAAK,kBAAkB;IACzC,KACE,QAAQ,IAAI,aAAa,gBACrB,CAAC,QAAQ,QAAQ,GACjB,CAAC,QAAQ,QAAQ;IACxB,CAAC;AACF,QAAK,OAAO,QAAQ;AACpB,QAAK,SAAS,QAAQ;AAGtB,eAAY,KAAK,OAAO;;AAE1B,SAAO,KAAK;;CAGd,MAAM,UAAyB;AAE7B,QADe,KAAK,WAAW,CAClB,UAAU;AACvB,MAAI,KAAK,KAAM,OAAM,eAAe,KAAK,MAAM,KAAK,kBAAkB,CAAC;;CAGzE,MAAM,aAA4B;AAChC,MAAI,KAAK,QAAQ;AACf,SAAM,KAAK,OAAO,aAAa;AAC/B,QAAK,SAAS;;AAEhB,MAAI,KAAK,MAAM;AACb,SAAM,KAAK,KAAK,KAAK;AACrB,QAAK,OAAO;;;CAIhB,AAAQ,mBAAuC;AAC7C,SAAO,SAAS,KAAK,SAAS,SAAY,KAAK,OAAO"}
@@ -4,13 +4,14 @@ const STALE_GRACE_MS = 10080 * 60 * 1e3;
4
4
  /**
5
5
  * Compute the freshness semantic from the stored dates.
6
6
  *
7
- * @param lastCheckedAt ISO string or null — when sources were last verified.
8
- * @param nextCheckAfter ISO string or null — when the next check is due.
7
+ * @param dates the resource's stored freshness timestamps.
9
8
  * @param now current time (defaults to Date.now()); injectable for tests.
10
9
  */
11
- function computeFreshness(lastCheckedAt, nextCheckAfter, now = Date.now()) {
10
+ function computeFreshness(dates, now = Date.now()) {
11
+ const { lastCheckedAt, nextCheckAfter, lastContentChangeAt } = dates;
12
12
  if (!lastCheckedAt) return {
13
13
  lastCheckedAt: null,
14
+ lastContentChangeAt: null,
14
15
  isStale: false
15
16
  };
16
17
  let isStale = false;
@@ -20,6 +21,7 @@ function computeFreshness(lastCheckedAt, nextCheckAfter, now = Date.now()) {
20
21
  }
21
22
  return {
22
23
  lastCheckedAt,
24
+ lastContentChangeAt: lastContentChangeAt ?? null,
23
25
  isStale
24
26
  };
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"freshness.mjs","names":[],"sources":["../../../src/modules/appCatalog/freshness.ts"],"sourcesContent":["/**\n * Freshness semantic for a catalog resource.\n *\n * The backend owns this calculation so the frontend stays dumb: it just renders\n * `lastCheckedAt` and, when `isStale` is true, a muted \"may be out of date\" note.\n *\n * Data source: the autoupdate scan records, per app, when its sources were last\n * verified (`lastCheckedAt`) and when the next check is due (`nextCheckAfter`,\n * adaptive backoff). \"Stale\" means the entry is more than a grace period past\n * its due date — i.e. the automated freshness loop has fallen behind for this\n * app, so a human reader should treat the info with mild caution.\n */\n\nimport type { Freshness } from '../../types/common/appCatalogTypes'\n\nexport type { Freshness }\n\n/** A check is \"stale\" once it is this far past its due date (ms). Default: 7 days. */\nexport const STALE_GRACE_MS = 7 * 24 * 60 * 60 * 1000\n\n/**\n * Compute the freshness semantic from the stored dates.\n *\n * @param lastCheckedAt ISO string or null when sources were last verified.\n * @param nextCheckAfter ISO string or null when the next check is due.\n * @param now current time (defaults to Date.now()); injectable for tests.\n */\nexport function computeFreshness(\n lastCheckedAt: string | null,\n nextCheckAfter: string | null,\n now: number = Date.now(),\n): Freshness {\n // Never checked → no line is shown at all (frontend hides null lastCheckedAt).\n if (!lastCheckedAt) {\n return { lastCheckedAt: null, isStale: false }\n }\n\n let isStale = false\n if (nextCheckAfter) {\n const due = Date.parse(nextCheckAfter)\n if (!Number.isNaN(due)) {\n isStale = now - due > STALE_GRACE_MS\n }\n }\n\n return { lastCheckedAt, isStale }\n}\n"],"mappings":";;AAkBA,MAAa,iBAAiB,QAAc,KAAK;;;;;;;;AASjD,SAAgB,iBACd,eACA,gBACA,MAAc,KAAK,KAAK,EACb;AAEX,KAAI,CAAC,cACH,QAAO;EAAE,eAAe;EAAM,SAAS;EAAO;CAGhD,IAAI,UAAU;AACd,KAAI,gBAAgB;EAClB,MAAM,MAAM,KAAK,MAAM,eAAe;AACtC,MAAI,CAAC,OAAO,MAAM,IAAI,CACpB,WAAU,MAAM,MAAM;;AAI1B,QAAO;EAAE;EAAe;EAAS"}
1
+ {"version":3,"file":"freshness.mjs","names":[],"sources":["../../../src/modules/appCatalog/freshness.ts"],"sourcesContent":["/**\n * Freshness semantic for a catalog resource.\n *\n * The backend owns this calculation so the frontend stays dumb: it just renders\n * `lastContentChangeAt` (falling back to `lastCheckedAt`) and, when `isStale` is\n * true, a muted \"may be out of date\" note.\n *\n * Data source: the autoupdate scan records, per app, when its sources were last\n * verified (`lastCheckedAt`), when their content last actually changed\n * (`lastContentChangeAt`), and when the next check is due (`nextCheckAfter`,\n * adaptive backoff). The two \"last\" dates are deliberately distinct — a source\n * can be re-read many times without changing, so \"checked\" is not \"updated\".\n * \"Stale\" means the entry is more than a grace period past its due date — i.e.\n * the automated freshness loop has fallen behind for this app, so a human reader\n * should treat the info with mild caution.\n */\n\nimport type { Freshness } from '../../types/common/appCatalogTypes'\n\nexport type { Freshness }\n\n/** A check is \"stale\" once it is this far past its due date (ms). Default: 7 days. */\nexport const STALE_GRACE_MS = 7 * 24 * 60 * 60 * 1000\n\n/** The stored dates a resource's freshness is computed from (ISO strings). */\nexport interface FreshnessInput {\n /** When the sources were last verified — only means the schedule advanced. */\n lastCheckedAt?: string | null\n /** When the next check is due (adaptive backoff). */\n nextCheckAfter?: string | null\n /** When the source content last actually changed. Null on pre-existing rows. */\n lastContentChangeAt?: string | null\n}\n\n/**\n * Compute the freshness semantic from the stored dates.\n *\n * @param dates the resource's stored freshness timestamps.\n * @param now current time (defaults to Date.now()); injectable for tests.\n */\nexport function computeFreshness(\n dates: FreshnessInput,\n now: number = Date.now(),\n): Freshness {\n const { lastCheckedAt, nextCheckAfter, lastContentChangeAt } = dates\n\n // Never checked → no line is shown at all (frontend hides null lastCheckedAt).\n if (!lastCheckedAt) {\n return { lastCheckedAt: null, lastContentChangeAt: null, isStale: false }\n }\n\n let isStale = false\n if (nextCheckAfter) {\n const due = Date.parse(nextCheckAfter)\n if (!Number.isNaN(due)) {\n isStale = now - due > STALE_GRACE_MS\n }\n }\n\n return {\n lastCheckedAt,\n lastContentChangeAt: lastContentChangeAt ?? null,\n isStale,\n }\n}\n"],"mappings":";;AAsBA,MAAa,iBAAiB,QAAc,KAAK;;;;;;;AAkBjD,SAAgB,iBACd,OACA,MAAc,KAAK,KAAK,EACb;CACX,MAAM,EAAE,eAAe,gBAAgB,wBAAwB;AAG/D,KAAI,CAAC,cACH,QAAO;EAAE,eAAe;EAAM,qBAAqB;EAAM,SAAS;EAAO;CAG3E,IAAI,UAAU;AACd,KAAI,gBAAgB;EAClB,MAAM,MAAM,KAAK,MAAM,eAAe;AACtC,MAAI,CAAC,OAAO,MAAM,IAAI,CACpB,WAAU,MAAM,MAAM;;AAI1B,QAAO;EACL;EACA,qBAAqB,uBAAuB;EAC5C;EACD"}
@@ -92,7 +92,11 @@ function rowToResource(row) {
92
92
  const aiPrompt = row.aiPrompt == null ? void 0 : row.aiPrompt;
93
93
  const urlIssues = row.urlIssues?.length ? row.urlIssues : void 0;
94
94
  const tiers = row.tiers == null ? void 0 : row.tiers;
95
- const freshness = computeFreshness(row.lastCheckedAt ? row.lastCheckedAt.toISOString() : null, row.nextCheckAfter ? row.nextCheckAfter.toISOString() : null);
95
+ const freshness = computeFreshness({
96
+ lastCheckedAt: row.lastCheckedAt ? row.lastCheckedAt.toISOString() : null,
97
+ nextCheckAfter: row.nextCheckAfter ? row.nextCheckAfter.toISOString() : null,
98
+ lastContentChangeAt: row.lastContentChangeAt ? row.lastContentChangeAt.toISOString() : null
99
+ });
96
100
  return {
97
101
  id: row.id,
98
102
  slug: row.slug,
@@ -1 +1 @@
1
- {"version":3,"file":"service.mjs","names":[],"sources":["../../../src/modules/appCatalog/service.ts"],"sourcesContent":["import { getDbClient } from '../../db/client'\nimport type { Prisma } from '../../generated/prisma/client'\nimport type {\n AppApprovalMethod,\n AppCatalogData,\n AppCategory,\n GroupingTagDefinition,\n Resource,\n} from '../../types/common/appCatalogTypes'\nimport type {\n CustomConfig,\n ServiceConfig,\n} from '../../types/common/approvalMethodTypes'\nimport type { Group, Person } from '../../types/common/personGroupTypes'\nimport { omit } from 'radashi'\nimport { parseSourceSlug } from '../../utils/parseSourceSlug'\nimport { computeFreshness } from './freshness'\n\n/** Prisma query result for DbResource with sourceRefs included (used by rowToResource) */\ntype ResourceRowWithSourceRefs = Prisma.DbResourceGetPayload<{\n include: { sourceRefs: true }\n}>\n\nfunction capitalize(word: string): string {\n if (!word) return word\n return word.charAt(0).toUpperCase() + word.slice(1)\n}\n\nexport async function getGroupingTagDefinitionsFromPrisma(): Promise<\n GroupingTagDefinition[]\n> {\n const prisma = getDbClient()\n\n // Fetch all tag definitions\n const rows = await prisma.dbAppTagDefinition.findMany()\n\n // Fetch all resources to count tag usage\n const resources = await prisma.dbResource.findMany({\n select: { tags: true },\n })\n\n // Count tag values across all resources\n const tagCounts = new Map<string, Map<string, number>>()\n\n for (const resource of resources) {\n const tags = (resource.tags as unknown as string[] | null) ?? []\n for (const tag of tags) {\n const [prefix, value] = tag.split(':')\n if (prefix && value) {\n if (!tagCounts.has(prefix)) {\n tagCounts.set(prefix, new Map())\n }\n const prefixCounts = tagCounts.get(prefix)!\n prefixCounts.set(value, (prefixCounts.get(value) ?? 0) + 1)\n }\n }\n }\n\n // Sort values by count and return definitions\n return rows.map((row) => {\n const definition = omit(row, ['id', 'updatedAt', 'createdAt'])\n const counts = tagCounts.get(definition.prefix) ?? new Map()\n\n // Sort values by count (descending)\n const sortedValues = [...definition.values].sort((a, b) => {\n const countA = counts.get(a.value) ?? 0\n const countB = counts.get(b.value) ?? 0\n return countB - countA\n })\n\n return {\n ...definition,\n values: sortedValues,\n }\n })\n}\n\nexport async function getApprovalMethodsFromPrisma(): Promise<\n AppApprovalMethod[]\n> {\n const prisma = getDbClient()\n\n // Fetch all approval methods\n const rows = await prisma.dbApprovalMethod.findMany()\n\n return rows.map((row) => {\n // Handle discriminated union by explicitly narrowing based on type\n const baseFields = {\n slug: row.slug,\n displayName: row.displayName,\n }\n\n // Provide default empty config if null, as AppApprovalMethod discriminated union requires config\n const config = row.config ?? {}\n\n switch (row.type) {\n case 'service':\n return {\n ...baseFields,\n type: 'service' as const,\n config: config as ServiceConfig,\n }\n case 'custom':\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n case 'noAccessRequired':\n return {\n ...baseFields,\n type: 'noAccessRequired' as const,\n config: config as CustomConfig,\n }\n case 'unknown':\n return {\n ...baseFields,\n type: 'unknown' as const,\n config: config as CustomConfig,\n }\n case 'personTeam':\n // Legacy: map personTeam to custom\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n }\n })\n}\n\nfunction rowToResource(row: ResourceRowWithSourceRefs): Resource {\n const accessRequest =\n row.accessRequest as unknown as Resource['accessRequest']\n const teams = (row.teams as unknown as string[] | null) ?? []\n const tags = (row.tags as unknown as Resource['tags']) ?? []\n const screenshotIds =\n (row.screenshotIds as unknown as Resource['screenshotIds']) ?? []\n const sources = row.sourceRefs.map((ref) => ({\n sourceSlug: ref.sourceSlug,\n url: ref.url,\n parseDate: ref.parseDate ? ref.parseDate.toISOString() : null,\n }))\n const notes = row.notes == null ? undefined : row.notes\n const appUrl = row.appUrl == null ? undefined : row.appUrl\n const iconName = row.iconName == null ? undefined : row.iconName\n const abbreviation = row.abbreviation == null ? undefined : row.abbreviation\n const nicknames = (row.nicknames as unknown as string[] | null)?.length\n ? (row.nicknames as unknown as string[])\n : undefined\n const deprecated =\n row.deprecated == null\n ? undefined\n : (row.deprecated as unknown as Resource['deprecated'])\n const aiPrompt = row.aiPrompt == null ? undefined : row.aiPrompt\n const urlIssues = (row.urlIssues as unknown as string[] | null)?.length\n ? (row.urlIssues as unknown as string[])\n : undefined\n const tiers =\n row.tiers == null ? undefined : (row.tiers as unknown as Resource['tiers'])\n const freshness = computeFreshness(\n row.lastCheckedAt ? row.lastCheckedAt.toISOString() : null,\n row.nextCheckAfter ? row.nextCheckAfter.toISOString() : null,\n )\n\n return {\n id: row.id,\n slug: row.slug,\n type: row.type,\n displayName: row.displayName,\n abbreviation,\n nicknames,\n description: row.description,\n accessRequest,\n teams,\n notes,\n tags,\n appUrl,\n iconName,\n screenshotIds,\n sources,\n deprecated,\n aiPrompt,\n urlIssues,\n tiers,\n // Fields from former SubResource\n parentSlug: row.parentSlug ?? undefined,\n tier: row.tier ?? undefined,\n familySlug: row.familySlug ?? undefined,\n aliases: row.aliases.length ? row.aliases : undefined,\n ownerPersonSlug: row.ownerPersonSlug ?? undefined,\n accessMaintainerGroupSlugs: row.accessMaintainerGroupSlugs.length\n ? row.accessMaintainerGroupSlugs\n : undefined,\n accessComments: row.accessComments ?? undefined,\n extra: row.extra\n ? (row.extra as unknown as Record<string, unknown>)\n : undefined,\n // Only surface freshness once the app has actually been scanned.\n freshness: freshness.lastCheckedAt ? freshness : undefined,\n createdAt: row.createdAt.toISOString(),\n }\n}\n\nexport async function getResourcesFromPrisma(): Promise<Resource[]> {\n const prisma = getDbClient()\n\n const rows = await prisma.dbResource.findMany({\n include: {\n sourceRefs: true,\n },\n })\n\n return rows.map(rowToResource)\n}\n\n/** @deprecated Use getResourcesFromPrisma instead */\nexport const getAppsFromPrisma = getResourcesFromPrisma\n\nexport interface UpdateAppInput {\n id: string\n data: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n sources?: string[]\n aiPrompt?: string | null\n }\n}\n\nexport async function updateApp(input: UpdateAppInput): Promise<Resource> {\n const prisma = getDbClient()\n const { id, data } = input\n\n const updatePayload: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n aiPrompt?: string | null\n } = {}\n if (data.displayName !== undefined)\n updatePayload.displayName = data.displayName\n if (data.abbreviation !== undefined)\n updatePayload.abbreviation = data.abbreviation\n if (data.slug !== undefined) updatePayload.slug = data.slug\n if (data.appUrl !== undefined) updatePayload.appUrl = data.appUrl\n if (data.description !== undefined)\n updatePayload.description = data.description\n if (data.aiPrompt !== undefined) updatePayload.aiPrompt = data.aiPrompt\n\n const updated = await prisma.dbResource.update({\n where: { id },\n data: updatePayload,\n include: { sourceRefs: true },\n })\n\n if (data.sources !== undefined) {\n const urls = [...new Set(data.sources.map((u) => u.trim()).filter(Boolean))]\n const uniqueSourceSlugs = [...new Set(urls.map(parseSourceSlug))]\n\n for (const sourceSlug of uniqueSourceSlugs) {\n await prisma.source.upsert({\n where: { slug: sourceSlug },\n create: { slug: sourceSlug },\n update: {},\n })\n }\n\n await prisma.sourceReference.deleteMany({\n where: { resourceId: updated.id },\n })\n\n if (urls.length > 0) {\n await prisma.sourceReference.createMany({\n data: urls.map((url) => ({\n resourceId: updated.id,\n sourceSlug: parseSourceSlug(url),\n url: url.trim(),\n })),\n })\n }\n\n const refetched = await prisma.dbResource.findUnique({\n where: { id },\n include: { sourceRefs: true },\n })\n if (!refetched) throw new Error('Resource not found after update')\n return rowToResource(refetched)\n }\n\n return rowToResource(updated)\n}\n\nexport function deriveCategories(resources: Resource[]): AppCategory[] {\n const tagSet = new Set<string>()\n for (const resource of resources) {\n for (const tag of resource.tags ?? []) {\n const normalized = tag.trim().toLowerCase()\n if (normalized) tagSet.add(normalized)\n }\n }\n const categories: AppCategory[] = [{ id: 'all', name: 'All' }]\n for (const tag of Array.from(tagSet).sort()) {\n categories.push({ id: tag, name: capitalize(tag) })\n }\n return categories\n}\n\nexport async function getPersonsFromPrisma(): Promise<Person[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbPerson.findMany()\n return rows.map((row) => ({\n slug: row.slug,\n firstName: row.firstName,\n lastName: row.lastName,\n email: row.email ?? undefined,\n }))\n}\n\nexport async function getGroupsFromPrisma(): Promise<Group[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbGroup.findMany({\n include: { memberships: true },\n })\n return rows.map((row) => ({\n slug: row.slug,\n displayName: row.displayName ?? undefined,\n email: row.email ?? undefined,\n memberSlugs: row.memberships.map((m) => m.personSlug),\n }))\n}\n\nexport async function getAppCatalogData(\n getResourcesOptional?: () => Promise<Resource[]>,\n): Promise<AppCatalogData> {\n const resources = getResourcesOptional\n ? await getResourcesOptional()\n : await getResourcesFromPrisma()\n\n return {\n resources,\n tagsDefinitions: await getGroupingTagDefinitionsFromPrisma(),\n approvalMethods: await getApprovalMethodsFromPrisma(),\n persons: await getPersonsFromPrisma(),\n groups: await getGroupsFromPrisma(),\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"service.mjs","names":[],"sources":["../../../src/modules/appCatalog/service.ts"],"sourcesContent":["import { getDbClient } from '../../db/client'\nimport type { Prisma } from '../../generated/prisma/client'\nimport type {\n AppApprovalMethod,\n AppCatalogData,\n AppCategory,\n GroupingTagDefinition,\n Resource,\n} from '../../types/common/appCatalogTypes'\nimport type {\n CustomConfig,\n ServiceConfig,\n} from '../../types/common/approvalMethodTypes'\nimport type { Group, Person } from '../../types/common/personGroupTypes'\nimport { omit } from 'radashi'\nimport { parseSourceSlug } from '../../utils/parseSourceSlug'\nimport { computeFreshness } from './freshness'\n\n/** Prisma query result for DbResource with sourceRefs included (used by rowToResource) */\ntype ResourceRowWithSourceRefs = Prisma.DbResourceGetPayload<{\n include: { sourceRefs: true }\n}>\n\nfunction capitalize(word: string): string {\n if (!word) return word\n return word.charAt(0).toUpperCase() + word.slice(1)\n}\n\nexport async function getGroupingTagDefinitionsFromPrisma(): Promise<\n GroupingTagDefinition[]\n> {\n const prisma = getDbClient()\n\n // Fetch all tag definitions\n const rows = await prisma.dbAppTagDefinition.findMany()\n\n // Fetch all resources to count tag usage\n const resources = await prisma.dbResource.findMany({\n select: { tags: true },\n })\n\n // Count tag values across all resources\n const tagCounts = new Map<string, Map<string, number>>()\n\n for (const resource of resources) {\n const tags = (resource.tags as unknown as string[] | null) ?? []\n for (const tag of tags) {\n const [prefix, value] = tag.split(':')\n if (prefix && value) {\n if (!tagCounts.has(prefix)) {\n tagCounts.set(prefix, new Map())\n }\n const prefixCounts = tagCounts.get(prefix)!\n prefixCounts.set(value, (prefixCounts.get(value) ?? 0) + 1)\n }\n }\n }\n\n // Sort values by count and return definitions\n return rows.map((row) => {\n const definition = omit(row, ['id', 'updatedAt', 'createdAt'])\n const counts = tagCounts.get(definition.prefix) ?? new Map()\n\n // Sort values by count (descending)\n const sortedValues = [...definition.values].sort((a, b) => {\n const countA = counts.get(a.value) ?? 0\n const countB = counts.get(b.value) ?? 0\n return countB - countA\n })\n\n return {\n ...definition,\n values: sortedValues,\n }\n })\n}\n\nexport async function getApprovalMethodsFromPrisma(): Promise<\n AppApprovalMethod[]\n> {\n const prisma = getDbClient()\n\n // Fetch all approval methods\n const rows = await prisma.dbApprovalMethod.findMany()\n\n return rows.map((row) => {\n // Handle discriminated union by explicitly narrowing based on type\n const baseFields = {\n slug: row.slug,\n displayName: row.displayName,\n }\n\n // Provide default empty config if null, as AppApprovalMethod discriminated union requires config\n const config = row.config ?? {}\n\n switch (row.type) {\n case 'service':\n return {\n ...baseFields,\n type: 'service' as const,\n config: config as ServiceConfig,\n }\n case 'custom':\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n case 'noAccessRequired':\n return {\n ...baseFields,\n type: 'noAccessRequired' as const,\n config: config as CustomConfig,\n }\n case 'unknown':\n return {\n ...baseFields,\n type: 'unknown' as const,\n config: config as CustomConfig,\n }\n case 'personTeam':\n // Legacy: map personTeam to custom\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n }\n })\n}\n\nfunction rowToResource(row: ResourceRowWithSourceRefs): Resource {\n const accessRequest =\n row.accessRequest as unknown as Resource['accessRequest']\n const teams = (row.teams as unknown as string[] | null) ?? []\n const tags = (row.tags as unknown as Resource['tags']) ?? []\n const screenshotIds =\n (row.screenshotIds as unknown as Resource['screenshotIds']) ?? []\n const sources = row.sourceRefs.map((ref) => ({\n sourceSlug: ref.sourceSlug,\n url: ref.url,\n parseDate: ref.parseDate ? ref.parseDate.toISOString() : null,\n }))\n const notes = row.notes == null ? undefined : row.notes\n const appUrl = row.appUrl == null ? undefined : row.appUrl\n const iconName = row.iconName == null ? undefined : row.iconName\n const abbreviation = row.abbreviation == null ? undefined : row.abbreviation\n const nicknames = (row.nicknames as unknown as string[] | null)?.length\n ? (row.nicknames as unknown as string[])\n : undefined\n const deprecated =\n row.deprecated == null\n ? undefined\n : (row.deprecated as unknown as Resource['deprecated'])\n const aiPrompt = row.aiPrompt == null ? undefined : row.aiPrompt\n const urlIssues = (row.urlIssues as unknown as string[] | null)?.length\n ? (row.urlIssues as unknown as string[])\n : undefined\n const tiers =\n row.tiers == null ? undefined : (row.tiers as unknown as Resource['tiers'])\n const freshness = computeFreshness({\n lastCheckedAt: row.lastCheckedAt ? row.lastCheckedAt.toISOString() : null,\n nextCheckAfter: row.nextCheckAfter\n ? row.nextCheckAfter.toISOString()\n : null,\n lastContentChangeAt: row.lastContentChangeAt\n ? row.lastContentChangeAt.toISOString()\n : null,\n })\n\n return {\n id: row.id,\n slug: row.slug,\n type: row.type,\n displayName: row.displayName,\n abbreviation,\n nicknames,\n description: row.description,\n accessRequest,\n teams,\n notes,\n tags,\n appUrl,\n iconName,\n screenshotIds,\n sources,\n deprecated,\n aiPrompt,\n urlIssues,\n tiers,\n // Fields from former SubResource\n parentSlug: row.parentSlug ?? undefined,\n tier: row.tier ?? undefined,\n familySlug: row.familySlug ?? undefined,\n aliases: row.aliases.length ? row.aliases : undefined,\n ownerPersonSlug: row.ownerPersonSlug ?? undefined,\n accessMaintainerGroupSlugs: row.accessMaintainerGroupSlugs.length\n ? row.accessMaintainerGroupSlugs\n : undefined,\n accessComments: row.accessComments ?? undefined,\n extra: row.extra\n ? (row.extra as unknown as Record<string, unknown>)\n : undefined,\n // Only surface freshness once the app has actually been scanned.\n freshness: freshness.lastCheckedAt ? freshness : undefined,\n createdAt: row.createdAt.toISOString(),\n }\n}\n\nexport async function getResourcesFromPrisma(): Promise<Resource[]> {\n const prisma = getDbClient()\n\n const rows = await prisma.dbResource.findMany({\n include: {\n sourceRefs: true,\n },\n })\n\n return rows.map(rowToResource)\n}\n\n/** @deprecated Use getResourcesFromPrisma instead */\nexport const getAppsFromPrisma = getResourcesFromPrisma\n\nexport interface UpdateAppInput {\n id: string\n data: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n sources?: string[]\n aiPrompt?: string | null\n }\n}\n\nexport async function updateApp(input: UpdateAppInput): Promise<Resource> {\n const prisma = getDbClient()\n const { id, data } = input\n\n const updatePayload: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n aiPrompt?: string | null\n } = {}\n if (data.displayName !== undefined)\n updatePayload.displayName = data.displayName\n if (data.abbreviation !== undefined)\n updatePayload.abbreviation = data.abbreviation\n if (data.slug !== undefined) updatePayload.slug = data.slug\n if (data.appUrl !== undefined) updatePayload.appUrl = data.appUrl\n if (data.description !== undefined)\n updatePayload.description = data.description\n if (data.aiPrompt !== undefined) updatePayload.aiPrompt = data.aiPrompt\n\n const updated = await prisma.dbResource.update({\n where: { id },\n data: updatePayload,\n include: { sourceRefs: true },\n })\n\n if (data.sources !== undefined) {\n const urls = [...new Set(data.sources.map((u) => u.trim()).filter(Boolean))]\n const uniqueSourceSlugs = [...new Set(urls.map(parseSourceSlug))]\n\n for (const sourceSlug of uniqueSourceSlugs) {\n await prisma.source.upsert({\n where: { slug: sourceSlug },\n create: { slug: sourceSlug },\n update: {},\n })\n }\n\n await prisma.sourceReference.deleteMany({\n where: { resourceId: updated.id },\n })\n\n if (urls.length > 0) {\n await prisma.sourceReference.createMany({\n data: urls.map((url) => ({\n resourceId: updated.id,\n sourceSlug: parseSourceSlug(url),\n url: url.trim(),\n })),\n })\n }\n\n const refetched = await prisma.dbResource.findUnique({\n where: { id },\n include: { sourceRefs: true },\n })\n if (!refetched) throw new Error('Resource not found after update')\n return rowToResource(refetched)\n }\n\n return rowToResource(updated)\n}\n\nexport function deriveCategories(resources: Resource[]): AppCategory[] {\n const tagSet = new Set<string>()\n for (const resource of resources) {\n for (const tag of resource.tags ?? []) {\n const normalized = tag.trim().toLowerCase()\n if (normalized) tagSet.add(normalized)\n }\n }\n const categories: AppCategory[] = [{ id: 'all', name: 'All' }]\n for (const tag of Array.from(tagSet).sort()) {\n categories.push({ id: tag, name: capitalize(tag) })\n }\n return categories\n}\n\nexport async function getPersonsFromPrisma(): Promise<Person[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbPerson.findMany()\n return rows.map((row) => ({\n slug: row.slug,\n firstName: row.firstName,\n lastName: row.lastName,\n email: row.email ?? undefined,\n }))\n}\n\nexport async function getGroupsFromPrisma(): Promise<Group[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbGroup.findMany({\n include: { memberships: true },\n })\n return rows.map((row) => ({\n slug: row.slug,\n displayName: row.displayName ?? undefined,\n email: row.email ?? undefined,\n memberSlugs: row.memberships.map((m) => m.personSlug),\n }))\n}\n\nexport async function getAppCatalogData(\n getResourcesOptional?: () => Promise<Resource[]>,\n): Promise<AppCatalogData> {\n const resources = getResourcesOptional\n ? await getResourcesOptional()\n : await getResourcesFromPrisma()\n\n return {\n resources,\n tagsDefinitions: await getGroupingTagDefinitionsFromPrisma(),\n approvalMethods: await getApprovalMethodsFromPrisma(),\n persons: await getPersonsFromPrisma(),\n groups: await getGroupsFromPrisma(),\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ //#region src/modules/assets/assetCache.ts
2
+ /**
3
+ * Asset URLs are keyed by row id or by icon name, and `upsertAsset` replaces
4
+ * content in place rather than inserting a new row — so the bytes behind a
5
+ * given URL can change. A long `max-age` would then serve the old artwork for
6
+ * the whole window (an icon replacement stayed invisible for a day). Revalidate
7
+ * against the stored checksum instead: unchanged content still costs only a
8
+ * conditional request answered with 304, and a replacement shows up at once.
9
+ *
10
+ * `variant` distinguishes derived renditions of the same row (a resize width,
11
+ * for example) so they do not share one entity tag.
12
+ */
13
+ function setRevalidatingCacheHeaders(res, checksum, variant) {
14
+ const etag = variant === void 0 ? `"${checksum}"` : `"${checksum}-${variant}"`;
15
+ res.setHeader("ETag", etag);
16
+ res.setHeader("Cache-Control", "public, max-age=0, must-revalidate");
17
+ return etag;
18
+ }
19
+ function isNotModified(req, etag) {
20
+ return req.headers["if-none-match"] === etag;
21
+ }
22
+
23
+ //#endregion
24
+ export { isNotModified, setRevalidatingCacheHeaders };
25
+ //# sourceMappingURL=assetCache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetCache.mjs","names":[],"sources":["../../../src/modules/assets/assetCache.ts"],"sourcesContent":["import type { Request, Response } from 'express'\n\n/**\n * Asset URLs are keyed by row id or by icon name, and `upsertAsset` replaces\n * content in place rather than inserting a new row — so the bytes behind a\n * given URL can change. A long `max-age` would then serve the old artwork for\n * the whole window (an icon replacement stayed invisible for a day). Revalidate\n * against the stored checksum instead: unchanged content still costs only a\n * conditional request answered with 304, and a replacement shows up at once.\n *\n * `variant` distinguishes derived renditions of the same row (a resize width,\n * for example) so they do not share one entity tag.\n */\nexport function setRevalidatingCacheHeaders(\n res: Response,\n checksum: string,\n variant?: string | number,\n): string {\n const etag =\n variant === undefined ? `\"${checksum}\"` : `\"${checksum}-${variant}\"`\n\n res.setHeader('ETag', etag)\n res.setHeader('Cache-Control', 'public, max-age=0, must-revalidate')\n\n return etag\n}\n\nexport function isNotModified(req: Request, etag: string): boolean {\n return req.headers['if-none-match'] === etag\n}\n"],"mappings":";;;;;;;;;;;;AAaA,SAAgB,4BACd,KACA,UACA,SACQ;CACR,MAAM,OACJ,YAAY,SAAY,IAAI,SAAS,KAAK,IAAI,SAAS,GAAG,QAAQ;AAEpE,KAAI,UAAU,QAAQ,KAAK;AAC3B,KAAI,UAAU,iBAAiB,qCAAqC;AAEpE,QAAO;;AAGT,SAAgB,cAAc,KAAc,MAAuB;AACjE,QAAO,IAAI,QAAQ,qBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"assetRestController.d.mts","names":[],"sources":["../../../src/modules/assets/assetRestController.ts"],"mappings":";;;UAuBiB,yBAAA;;AAAjB;;EAIE,QAAA;AAAA;;;;;;;;;;iBA0Bc,2BAAA,CACd,MAAA,EAAQ,MAAA,EACR,MAAA,EAAQ,yBAAA"}
1
+ {"version":3,"file":"assetRestController.d.mts","names":[],"sources":["../../../src/modules/assets/assetRestController.ts"],"mappings":";;;UAwBiB,yBAAA;;AAAjB;;EAIE,QAAA;AAAA;;;;;;;;;;iBA0Bc,2BAAA,CACd,MAAA,EAAQ,MAAA,EACR,MAAA,EAAQ,yBAAA"}
@@ -1,6 +1,7 @@
1
1
  import { getDbClient } from "../../db/client.mjs";
2
2
  import { getImageFormat, isRasterImage, resizeImage } from "./assetUtils.mjs";
3
3
  import { upsertAsset } from "./upsertAsset.mjs";
4
+ import { isNotModified, setRevalidatingCacheHeaders } from "./assetCache.mjs";
4
5
  import sharp from "sharp";
5
6
  import multer from "multer";
6
7
 
@@ -63,7 +64,8 @@ function registerAssetRestController(router, config) {
63
64
  mimeType: true,
64
65
  name: true,
65
66
  width: true,
66
- height: true
67
+ height: true,
68
+ checksum: true
67
69
  }
68
70
  });
69
71
  if (!asset) {
@@ -75,7 +77,12 @@ function registerAssetRestController(router, config) {
75
77
  const width = wParam ? Number.parseInt(wParam, 10) : void 0;
76
78
  let outBuffer = asset.content;
77
79
  let outMime = asset.mimeType;
78
- if (resizeEnabled && isRasterImage(asset.mimeType) && !!width && Number.isFinite(width) && width > 0) {
80
+ const shouldResize = resizeEnabled && isRasterImage(asset.mimeType) && !!width && Number.isFinite(width) && width > 0;
81
+ if (isNotModified(req, setRevalidatingCacheHeaders(res, asset.checksum, shouldResize ? `w${width}` : void 0))) {
82
+ res.status(304).end();
83
+ return;
84
+ }
85
+ if (shouldResize) {
79
86
  const fmt = getImageFormat(asset.mimeType) || "jpeg";
80
87
  const buf = await resizeImage(Buffer.from(asset.content), width, void 0, fmt);
81
88
  outBuffer = new Uint8Array(buf);
@@ -83,7 +90,6 @@ function registerAssetRestController(router, config) {
83
90
  }
84
91
  res.setHeader("Content-Type", outMime);
85
92
  res.setHeader("Content-Disposition", `inline; filename="${asset.name}"`);
86
- res.setHeader("Cache-Control", "public, max-age=86400");
87
93
  res.send(outBuffer);
88
94
  } catch (error) {
89
95
  console.error("Error fetching asset:", error);
@@ -127,7 +133,8 @@ function registerAssetRestController(router, config) {
127
133
  mimeType: true,
128
134
  name: true,
129
135
  width: true,
130
- height: true
136
+ height: true,
137
+ checksum: true
131
138
  }
132
139
  });
133
140
  if (!asset) {
@@ -140,7 +147,12 @@ function registerAssetRestController(router, config) {
140
147
  let outBuffer = asset.content;
141
148
  let outMime = asset.mimeType;
142
149
  const isRaster = asset.mimeType.startsWith("image/") && !asset.mimeType.includes("svg");
143
- if (resizeEnabled && isRaster && !!width && Number.isFinite(width) && width > 0) {
150
+ const shouldResize = resizeEnabled && isRaster && !!width && Number.isFinite(width) && width > 0;
151
+ if (isNotModified(req, setRevalidatingCacheHeaders(res, asset.checksum, shouldResize ? `w${width}` : void 0))) {
152
+ res.status(304).end();
153
+ return;
154
+ }
155
+ if (shouldResize) {
144
156
  const fmt = asset.mimeType.includes("png") ? "png" : asset.mimeType.includes("webp") ? "webp" : "jpeg";
145
157
  let buf;
146
158
  const pipeline = sharp(Buffer.from(asset.content)).resize({
@@ -162,7 +174,6 @@ function registerAssetRestController(router, config) {
162
174
  }
163
175
  res.setHeader("Content-Type", outMime);
164
176
  res.setHeader("Content-Disposition", `inline; filename="${asset.name}"`);
165
- res.setHeader("Cache-Control", "public, max-age=86400");
166
177
  res.send(outBuffer);
167
178
  } catch (error) {
168
179
  console.error("Error fetching asset by name:", error);