@connexia/infrastructure 1.0.1

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 (318) hide show
  1. package/LICENSE +190 -0
  2. package/dist/config/config-manager.d.ts +29 -0
  3. package/dist/config/config-manager.d.ts.map +1 -0
  4. package/dist/config/config-manager.js +120 -0
  5. package/dist/config/config-manager.js.map +1 -0
  6. package/dist/config/index.d.ts +3 -0
  7. package/dist/config/index.d.ts.map +1 -0
  8. package/dist/config/index.js +2 -0
  9. package/dist/config/index.js.map +1 -0
  10. package/dist/config/schemas.d.ts +557 -0
  11. package/dist/config/schemas.d.ts.map +1 -0
  12. package/dist/config/schemas.js +79 -0
  13. package/dist/config/schemas.js.map +1 -0
  14. package/dist/database/database-config.d.ts +123 -0
  15. package/dist/database/database-config.d.ts.map +1 -0
  16. package/dist/database/database-config.js +42 -0
  17. package/dist/database/database-config.js.map +1 -0
  18. package/dist/database/database-connection.d.ts +29 -0
  19. package/dist/database/database-connection.d.ts.map +1 -0
  20. package/dist/database/database-connection.js +149 -0
  21. package/dist/database/database-connection.js.map +1 -0
  22. package/dist/database/drizzle/drizzle-manager.d.ts +12 -0
  23. package/dist/database/drizzle/drizzle-manager.d.ts.map +1 -0
  24. package/dist/database/drizzle/drizzle-manager.js +26 -0
  25. package/dist/database/drizzle/drizzle-manager.js.map +1 -0
  26. package/dist/database/drizzle/migrate.d.ts +30 -0
  27. package/dist/database/drizzle/migrate.d.ts.map +1 -0
  28. package/dist/database/drizzle/migrate.js +148 -0
  29. package/dist/database/drizzle/migrate.js.map +1 -0
  30. package/dist/database/drizzle/schema/domain.d.ts +2217 -0
  31. package/dist/database/drizzle/schema/domain.d.ts.map +1 -0
  32. package/dist/database/drizzle/schema/domain.js +163 -0
  33. package/dist/database/drizzle/schema/domain.js.map +1 -0
  34. package/dist/database/drizzle/schema/index.d.ts +8 -0
  35. package/dist/database/drizzle/schema/index.d.ts.map +1 -0
  36. package/dist/database/drizzle/schema/index.js +8 -0
  37. package/dist/database/drizzle/schema/index.js.map +1 -0
  38. package/dist/database/drizzle/schema/migrations.d.ts +104 -0
  39. package/dist/database/drizzle/schema/migrations.d.ts.map +1 -0
  40. package/dist/database/drizzle/schema/migrations.js +10 -0
  41. package/dist/database/drizzle/schema/migrations.js.map +1 -0
  42. package/dist/database/drizzle/schema/providers.d.ts +248 -0
  43. package/dist/database/drizzle/schema/providers.d.ts.map +1 -0
  44. package/dist/database/drizzle/schema/providers.js +19 -0
  45. package/dist/database/drizzle/schema/providers.js.map +1 -0
  46. package/dist/database/index.d.ts +5 -0
  47. package/dist/database/index.d.ts.map +1 -0
  48. package/dist/database/index.js +5 -0
  49. package/dist/database/index.js.map +1 -0
  50. package/dist/diagnostics/index.d.ts +3 -0
  51. package/dist/diagnostics/index.d.ts.map +1 -0
  52. package/dist/diagnostics/index.js +2 -0
  53. package/dist/diagnostics/index.js.map +1 -0
  54. package/dist/diagnostics/infrastructure-doctor.d.ts +33 -0
  55. package/dist/diagnostics/infrastructure-doctor.d.ts.map +1 -0
  56. package/dist/diagnostics/infrastructure-doctor.js +57 -0
  57. package/dist/diagnostics/infrastructure-doctor.js.map +1 -0
  58. package/dist/health/health-manager.d.ts +29 -0
  59. package/dist/health/health-manager.d.ts.map +1 -0
  60. package/dist/health/health-manager.js +74 -0
  61. package/dist/health/health-manager.js.map +1 -0
  62. package/dist/health/index.d.ts +3 -0
  63. package/dist/health/index.d.ts.map +1 -0
  64. package/dist/health/index.js +2 -0
  65. package/dist/health/index.js.map +1 -0
  66. package/dist/index.d.ts +30 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +28 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/metrics/index.d.ts +3 -0
  71. package/dist/metrics/index.d.ts.map +1 -0
  72. package/dist/metrics/index.js +2 -0
  73. package/dist/metrics/index.js.map +1 -0
  74. package/dist/metrics/metrics-collector.d.ts +105 -0
  75. package/dist/metrics/metrics-collector.d.ts.map +1 -0
  76. package/dist/metrics/metrics-collector.js +320 -0
  77. package/dist/metrics/metrics-collector.js.map +1 -0
  78. package/dist/providers/bullmq/index.d.ts +8 -0
  79. package/dist/providers/bullmq/index.d.ts.map +1 -0
  80. package/dist/providers/bullmq/index.js +5 -0
  81. package/dist/providers/bullmq/index.js.map +1 -0
  82. package/dist/providers/bullmq/job-runner.d.ts +16 -0
  83. package/dist/providers/bullmq/job-runner.d.ts.map +1 -0
  84. package/dist/providers/bullmq/job-runner.js +17 -0
  85. package/dist/providers/bullmq/job-runner.js.map +1 -0
  86. package/dist/providers/bullmq/queue-provider-bullmq.d.ts +38 -0
  87. package/dist/providers/bullmq/queue-provider-bullmq.d.ts.map +1 -0
  88. package/dist/providers/bullmq/queue-provider-bullmq.js +248 -0
  89. package/dist/providers/bullmq/queue-provider-bullmq.js.map +1 -0
  90. package/dist/providers/bullmq/queue-provider.d.ts +74 -0
  91. package/dist/providers/bullmq/queue-provider.d.ts.map +1 -0
  92. package/dist/providers/bullmq/queue-provider.js +101 -0
  93. package/dist/providers/bullmq/queue-provider.js.map +1 -0
  94. package/dist/providers/bullmq/worker-runtime.d.ts +41 -0
  95. package/dist/providers/bullmq/worker-runtime.d.ts.map +1 -0
  96. package/dist/providers/bullmq/worker-runtime.js +49 -0
  97. package/dist/providers/bullmq/worker-runtime.js.map +1 -0
  98. package/dist/providers/filesystem/artifact-store-filesystem.d.ts +30 -0
  99. package/dist/providers/filesystem/artifact-store-filesystem.d.ts.map +1 -0
  100. package/dist/providers/filesystem/artifact-store-filesystem.js +178 -0
  101. package/dist/providers/filesystem/artifact-store-filesystem.js.map +1 -0
  102. package/dist/providers/filesystem/artifact-store.d.ts +43 -0
  103. package/dist/providers/filesystem/artifact-store.d.ts.map +1 -0
  104. package/dist/providers/filesystem/artifact-store.js +55 -0
  105. package/dist/providers/filesystem/artifact-store.js.map +1 -0
  106. package/dist/providers/filesystem/index.d.ts +4 -0
  107. package/dist/providers/filesystem/index.d.ts.map +1 -0
  108. package/dist/providers/filesystem/index.js +3 -0
  109. package/dist/providers/filesystem/index.js.map +1 -0
  110. package/dist/providers/search/index.d.ts +3 -0
  111. package/dist/providers/search/index.d.ts.map +1 -0
  112. package/dist/providers/search/index.js +2 -0
  113. package/dist/providers/search/index.js.map +1 -0
  114. package/dist/providers/search/search-provider.d.ts +46 -0
  115. package/dist/providers/search/search-provider.d.ts.map +1 -0
  116. package/dist/providers/search/search-provider.js +59 -0
  117. package/dist/providers/search/search-provider.js.map +1 -0
  118. package/dist/providers/valkey/cache-provider-valkey.d.ts +34 -0
  119. package/dist/providers/valkey/cache-provider-valkey.d.ts.map +1 -0
  120. package/dist/providers/valkey/cache-provider-valkey.js +136 -0
  121. package/dist/providers/valkey/cache-provider-valkey.js.map +1 -0
  122. package/dist/providers/valkey/cache-provider.d.ts +40 -0
  123. package/dist/providers/valkey/cache-provider.d.ts.map +1 -0
  124. package/dist/providers/valkey/cache-provider.js +57 -0
  125. package/dist/providers/valkey/cache-provider.js.map +1 -0
  126. package/dist/providers/valkey/index.d.ts +13 -0
  127. package/dist/providers/valkey/index.d.ts.map +1 -0
  128. package/dist/providers/valkey/index.js +9 -0
  129. package/dist/providers/valkey/index.js.map +1 -0
  130. package/dist/providers/valkey/lock-provider-valkey.d.ts +24 -0
  131. package/dist/providers/valkey/lock-provider-valkey.d.ts.map +1 -0
  132. package/dist/providers/valkey/lock-provider-valkey.js +133 -0
  133. package/dist/providers/valkey/lock-provider-valkey.js.map +1 -0
  134. package/dist/providers/valkey/lock-provider.d.ts +29 -0
  135. package/dist/providers/valkey/lock-provider.d.ts.map +1 -0
  136. package/dist/providers/valkey/lock-provider.js +48 -0
  137. package/dist/providers/valkey/lock-provider.js.map +1 -0
  138. package/dist/providers/valkey/pubsub-provider-valkey.d.ts +24 -0
  139. package/dist/providers/valkey/pubsub-provider-valkey.d.ts.map +1 -0
  140. package/dist/providers/valkey/pubsub-provider-valkey.js +139 -0
  141. package/dist/providers/valkey/pubsub-provider-valkey.js.map +1 -0
  142. package/dist/providers/valkey/pubsub-provider.d.ts +21 -0
  143. package/dist/providers/valkey/pubsub-provider.d.ts.map +1 -0
  144. package/dist/providers/valkey/pubsub-provider.js +30 -0
  145. package/dist/providers/valkey/pubsub-provider.js.map +1 -0
  146. package/dist/providers/valkey/session-provider-valkey.d.ts +27 -0
  147. package/dist/providers/valkey/session-provider-valkey.d.ts.map +1 -0
  148. package/dist/providers/valkey/session-provider-valkey.js +148 -0
  149. package/dist/providers/valkey/session-provider-valkey.js.map +1 -0
  150. package/dist/providers/valkey/session-provider.d.ts +34 -0
  151. package/dist/providers/valkey/session-provider.d.ts.map +1 -0
  152. package/dist/providers/valkey/session-provider.js +45 -0
  153. package/dist/providers/valkey/session-provider.js.map +1 -0
  154. package/dist/recovery/circuit-breaker.d.ts +27 -0
  155. package/dist/recovery/circuit-breaker.d.ts.map +1 -0
  156. package/dist/recovery/circuit-breaker.js +78 -0
  157. package/dist/recovery/circuit-breaker.js.map +1 -0
  158. package/dist/recovery/index.d.ts +5 -0
  159. package/dist/recovery/index.d.ts.map +1 -0
  160. package/dist/recovery/index.js +3 -0
  161. package/dist/recovery/index.js.map +1 -0
  162. package/dist/recovery/reconnect-handler.d.ts +23 -0
  163. package/dist/recovery/reconnect-handler.d.ts.map +1 -0
  164. package/dist/recovery/reconnect-handler.js +53 -0
  165. package/dist/recovery/reconnect-handler.js.map +1 -0
  166. package/dist/repositories/drizzle-audit-event-repository.d.ts +22 -0
  167. package/dist/repositories/drizzle-audit-event-repository.d.ts.map +1 -0
  168. package/dist/repositories/drizzle-audit-event-repository.js +172 -0
  169. package/dist/repositories/drizzle-audit-event-repository.js.map +1 -0
  170. package/dist/repositories/drizzle-build-repository.d.ts +21 -0
  171. package/dist/repositories/drizzle-build-repository.d.ts.map +1 -0
  172. package/dist/repositories/drizzle-build-repository.js +167 -0
  173. package/dist/repositories/drizzle-build-repository.js.map +1 -0
  174. package/dist/repositories/drizzle-deployment-repository.d.ts +22 -0
  175. package/dist/repositories/drizzle-deployment-repository.d.ts.map +1 -0
  176. package/dist/repositories/drizzle-deployment-repository.js +175 -0
  177. package/dist/repositories/drizzle-deployment-repository.js.map +1 -0
  178. package/dist/repositories/drizzle-environment-repository.d.ts +19 -0
  179. package/dist/repositories/drizzle-environment-repository.d.ts.map +1 -0
  180. package/dist/repositories/drizzle-environment-repository.js +115 -0
  181. package/dist/repositories/drizzle-environment-repository.js.map +1 -0
  182. package/dist/repositories/drizzle-organization-repository.d.ts +20 -0
  183. package/dist/repositories/drizzle-organization-repository.d.ts.map +1 -0
  184. package/dist/repositories/drizzle-organization-repository.js +139 -0
  185. package/dist/repositories/drizzle-organization-repository.js.map +1 -0
  186. package/dist/repositories/drizzle-project-repository.d.ts +20 -0
  187. package/dist/repositories/drizzle-project-repository.d.ts.map +1 -0
  188. package/dist/repositories/drizzle-project-repository.js +149 -0
  189. package/dist/repositories/drizzle-project-repository.js.map +1 -0
  190. package/dist/repositories/drizzle-secret-repository.d.ts +20 -0
  191. package/dist/repositories/drizzle-secret-repository.d.ts.map +1 -0
  192. package/dist/repositories/drizzle-secret-repository.js +139 -0
  193. package/dist/repositories/drizzle-secret-repository.js.map +1 -0
  194. package/dist/repositories/drizzle-user-repository.d.ts +21 -0
  195. package/dist/repositories/drizzle-user-repository.d.ts.map +1 -0
  196. package/dist/repositories/drizzle-user-repository.js +153 -0
  197. package/dist/repositories/drizzle-user-repository.js.map +1 -0
  198. package/dist/repositories/in-memory-audit-event-repository.d.ts +19 -0
  199. package/dist/repositories/in-memory-audit-event-repository.d.ts.map +1 -0
  200. package/dist/repositories/in-memory-audit-event-repository.js +54 -0
  201. package/dist/repositories/in-memory-audit-event-repository.js.map +1 -0
  202. package/dist/repositories/in-memory-build-repository.d.ts +18 -0
  203. package/dist/repositories/in-memory-build-repository.d.ts.map +1 -0
  204. package/dist/repositories/in-memory-build-repository.js +44 -0
  205. package/dist/repositories/in-memory-build-repository.js.map +1 -0
  206. package/dist/repositories/in-memory-deployment-repository.d.ts +19 -0
  207. package/dist/repositories/in-memory-deployment-repository.d.ts.map +1 -0
  208. package/dist/repositories/in-memory-deployment-repository.js +48 -0
  209. package/dist/repositories/in-memory-deployment-repository.js.map +1 -0
  210. package/dist/repositories/in-memory-organization-repository.d.ts +17 -0
  211. package/dist/repositories/in-memory-organization-repository.d.ts.map +1 -0
  212. package/dist/repositories/in-memory-organization-repository.js +34 -0
  213. package/dist/repositories/in-memory-organization-repository.js.map +1 -0
  214. package/dist/repositories/in-memory-plugin-repository.d.ts +20 -0
  215. package/dist/repositories/in-memory-plugin-repository.d.ts.map +1 -0
  216. package/dist/repositories/in-memory-plugin-repository.js +37 -0
  217. package/dist/repositories/in-memory-plugin-repository.js.map +1 -0
  218. package/dist/repositories/in-memory-project-repository.d.ts +17 -0
  219. package/dist/repositories/in-memory-project-repository.d.ts.map +1 -0
  220. package/dist/repositories/in-memory-project-repository.js +38 -0
  221. package/dist/repositories/in-memory-project-repository.js.map +1 -0
  222. package/dist/repositories/in-memory-recommendation-repository.d.ts +22 -0
  223. package/dist/repositories/in-memory-recommendation-repository.d.ts.map +1 -0
  224. package/dist/repositories/in-memory-recommendation-repository.js +57 -0
  225. package/dist/repositories/in-memory-recommendation-repository.js.map +1 -0
  226. package/dist/repositories/in-memory-user-repository.d.ts +18 -0
  227. package/dist/repositories/in-memory-user-repository.d.ts.map +1 -0
  228. package/dist/repositories/in-memory-user-repository.js +42 -0
  229. package/dist/repositories/in-memory-user-repository.js.map +1 -0
  230. package/dist/repositories/in-memory-workspace-repository.d.ts +20 -0
  231. package/dist/repositories/in-memory-workspace-repository.d.ts.map +1 -0
  232. package/dist/repositories/in-memory-workspace-repository.js +37 -0
  233. package/dist/repositories/in-memory-workspace-repository.js.map +1 -0
  234. package/dist/repositories/index.d.ts +18 -0
  235. package/dist/repositories/index.d.ts.map +1 -0
  236. package/dist/repositories/index.js +18 -0
  237. package/dist/repositories/index.js.map +1 -0
  238. package/dist/runtime/health-runtime.d.ts +65 -0
  239. package/dist/runtime/health-runtime.d.ts.map +1 -0
  240. package/dist/runtime/health-runtime.js +227 -0
  241. package/dist/runtime/health-runtime.js.map +1 -0
  242. package/dist/runtime/index.d.ts +9 -0
  243. package/dist/runtime/index.d.ts.map +1 -0
  244. package/dist/runtime/index.js +9 -0
  245. package/dist/runtime/index.js.map +1 -0
  246. package/dist/runtime/infrastructure-runtime.d.ts +45 -0
  247. package/dist/runtime/infrastructure-runtime.d.ts.map +1 -0
  248. package/dist/runtime/infrastructure-runtime.js +133 -0
  249. package/dist/runtime/infrastructure-runtime.js.map +1 -0
  250. package/dist/runtime/provider-factory.d.ts +42 -0
  251. package/dist/runtime/provider-factory.d.ts.map +1 -0
  252. package/dist/runtime/provider-factory.js +111 -0
  253. package/dist/runtime/provider-factory.js.map +1 -0
  254. package/dist/runtime/provider-lifecycle.d.ts +30 -0
  255. package/dist/runtime/provider-lifecycle.d.ts.map +1 -0
  256. package/dist/runtime/provider-lifecycle.js +149 -0
  257. package/dist/runtime/provider-lifecycle.js.map +1 -0
  258. package/dist/runtime/provider-registry.d.ts +25 -0
  259. package/dist/runtime/provider-registry.d.ts.map +1 -0
  260. package/dist/runtime/provider-registry.js +52 -0
  261. package/dist/runtime/provider-registry.js.map +1 -0
  262. package/dist/runtime/recovery-runtime.d.ts +66 -0
  263. package/dist/runtime/recovery-runtime.d.ts.map +1 -0
  264. package/dist/runtime/recovery-runtime.js +177 -0
  265. package/dist/runtime/recovery-runtime.js.map +1 -0
  266. package/dist/runtime/resource-manager.d.ts +51 -0
  267. package/dist/runtime/resource-manager.d.ts.map +1 -0
  268. package/dist/runtime/resource-manager.js +156 -0
  269. package/dist/runtime/resource-manager.js.map +1 -0
  270. package/dist/runtime/runtime-lifecycle.d.ts +77 -0
  271. package/dist/runtime/runtime-lifecycle.d.ts.map +1 -0
  272. package/dist/runtime/runtime-lifecycle.js +260 -0
  273. package/dist/runtime/runtime-lifecycle.js.map +1 -0
  274. package/dist/security/connection-validator.d.ts +21 -0
  275. package/dist/security/connection-validator.d.ts.map +1 -0
  276. package/dist/security/connection-validator.js +30 -0
  277. package/dist/security/connection-validator.js.map +1 -0
  278. package/dist/security/index.d.ts +3 -0
  279. package/dist/security/index.d.ts.map +1 -0
  280. package/dist/security/index.js +3 -0
  281. package/dist/security/index.js.map +1 -0
  282. package/dist/security/secret-masking.d.ts +4 -0
  283. package/dist/security/secret-masking.d.ts.map +1 -0
  284. package/dist/security/secret-masking.js +39 -0
  285. package/dist/security/secret-masking.js.map +1 -0
  286. package/dist/shared/branding.d.ts +10 -0
  287. package/dist/shared/branding.d.ts.map +1 -0
  288. package/dist/shared/branding.js +11 -0
  289. package/dist/shared/branding.js.map +1 -0
  290. package/dist/shared/constants.d.ts +29 -0
  291. package/dist/shared/constants.d.ts.map +1 -0
  292. package/dist/shared/constants.js +45 -0
  293. package/dist/shared/constants.js.map +1 -0
  294. package/dist/shared/equality.d.ts +6 -0
  295. package/dist/shared/equality.d.ts.map +1 -0
  296. package/dist/shared/equality.js +63 -0
  297. package/dist/shared/equality.js.map +1 -0
  298. package/dist/shared/errors.d.ts +74 -0
  299. package/dist/shared/errors.d.ts.map +1 -0
  300. package/dist/shared/errors.js +110 -0
  301. package/dist/shared/errors.js.map +1 -0
  302. package/dist/shared/hashing.d.ts +8 -0
  303. package/dist/shared/hashing.d.ts.map +1 -0
  304. package/dist/shared/hashing.js +28 -0
  305. package/dist/shared/hashing.js.map +1 -0
  306. package/dist/shared/index.d.ts +11 -0
  307. package/dist/shared/index.d.ts.map +1 -0
  308. package/dist/shared/index.js +10 -0
  309. package/dist/shared/index.js.map +1 -0
  310. package/dist/shared/timing.d.ts +19 -0
  311. package/dist/shared/timing.d.ts.map +1 -0
  312. package/dist/shared/timing.js +45 -0
  313. package/dist/shared/timing.js.map +1 -0
  314. package/dist/shared/types.d.ts +62 -0
  315. package/dist/shared/types.d.ts.map +1 -0
  316. package/dist/shared/types.js +5 -0
  317. package/dist/shared/types.js.map +1 -0
  318. package/package.json +75 -0
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Infrastructure error hierarchy.
3
+ * Structured errors with codes, categories, severity, and correlation IDs.
4
+ */
5
+ export type ErrorSeverity = "critical" | "high" | "medium" | "low" | "info";
6
+ export type ErrorCategory = "database" | "cache" | "queue" | "storage" | "search" | "migration" | "connection" | "transaction" | "configuration" | "health" | "recovery" | "security" | "internal";
7
+ export declare class InfrastructureError extends Error {
8
+ readonly code: string;
9
+ readonly category: ErrorCategory;
10
+ readonly severity: ErrorSeverity;
11
+ readonly timestamp: string;
12
+ readonly correlationId?: string;
13
+ readonly retryable: boolean;
14
+ readonly details?: Record<string, unknown>;
15
+ readonly cause?: Error;
16
+ constructor(message: string, options?: {
17
+ code?: string;
18
+ category?: ErrorCategory;
19
+ severity?: ErrorSeverity;
20
+ correlationId?: string;
21
+ retryable?: boolean;
22
+ details?: Record<string, unknown>;
23
+ cause?: Error;
24
+ });
25
+ toJSON(): Record<string, unknown>;
26
+ withCorrelationId(correlationId: string): this;
27
+ }
28
+ export declare const ERROR_CODES: {
29
+ readonly DB_CONNECTION_FAILED: "DB_001";
30
+ readonly DB_QUERY_FAILED: "DB_002";
31
+ readonly DB_TRANSACTION_FAILED: "DB_003";
32
+ readonly DB_MIGRATION_FAILED: "DB_004";
33
+ readonly DB_POOL_EXHAUSTED: "DB_005";
34
+ readonly DB_SCHEMA_MISMATCH: "DB_006";
35
+ readonly DB_CONSTRAINT_VIOLATION: "DB_007";
36
+ readonly CACHE_CONNECTION_FAILED: "CACHE_001";
37
+ readonly CACHE_OPERATION_FAILED: "CACHE_002";
38
+ readonly CACHE_KEY_EXPIRED: "CACHE_003";
39
+ readonly CACHE_KEY_NOT_FOUND: "CACHE_004";
40
+ readonly QUEUE_CONNECTION_FAILED: "QUEUE_001";
41
+ readonly QUEUE_JOB_FAILED: "QUEUE_002";
42
+ readonly QUEUE_WORKER_FAILED: "QUEUE_003";
43
+ readonly QUEUE_DEAD_LETTER: "QUEUE_004";
44
+ readonly QUEUE_BACKPRESSURE: "QUEUE_005";
45
+ readonly STORAGE_WRITE_FAILED: "STORAGE_001";
46
+ readonly STORAGE_READ_FAILED: "STORAGE_002";
47
+ readonly STORAGE_DELETE_FAILED: "STORAGE_003";
48
+ readonly STORAGE_NOT_FOUND: "STORAGE_004";
49
+ readonly STORAGE_CHECKSUM_MISMATCH: "STORAGE_005";
50
+ readonly SEARCH_INDEX_FAILED: "SEARCH_001";
51
+ readonly SEARCH_QUERY_FAILED: "SEARCH_002";
52
+ readonly MIGRATION_PENDING: "MIG_001";
53
+ readonly MIGRATION_CONFLICT: "MIG_002";
54
+ readonly MIGRATION_ROLLBACK_FAILED: "MIG_003";
55
+ readonly CONNECTION_TIMEOUT: "CONN_001";
56
+ readonly CONNECTION_REFUSED: "CONN_002";
57
+ readonly CONNECTION_LOST: "CONN_003";
58
+ readonly TX_DEADLOCK: "TX_001";
59
+ readonly TX_SERIALIZATION_FAILED: "TX_002";
60
+ readonly TX_TIMEOUT: "TX_003";
61
+ readonly CONFIG_INVALID: "CONFIG_001";
62
+ readonly CONFIG_SECRET_MISSING: "CONFIG_002";
63
+ readonly HEALTH_CHECK_FAILED: "HEALTH_001";
64
+ readonly READINESS_FAILED: "HEALTH_002";
65
+ readonly LIVENESS_FAILED: "HEALTH_003";
66
+ readonly RECOVERY_EXHAUSTED: "RECOV_001";
67
+ readonly CIRCUIT_BREAKER_OPEN: "RECOV_002";
68
+ readonly SECURITY_SECRET_EXPOSED: "SEC_001";
69
+ readonly SECURITY_CREDENTIAL_INVALID: "SEC_002";
70
+ readonly INTERNAL_ERROR: "INTERNAL_001";
71
+ readonly INTERNAL_ASSERTION_FAILED: "INTERNAL_002";
72
+ };
73
+ export type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
74
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5E,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,OAAO,GACP,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,aAAa,GACb,eAAe,GACf,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IAEjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;gBAGrB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,KAAK,CAAC,EAAE,KAAK,CAAC;KACV;IAcR,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAgBjC,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;CAmB/C;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Infrastructure error hierarchy.
3
+ * Structured errors with codes, categories, severity, and correlation IDs.
4
+ */
5
+ export class InfrastructureError extends Error {
6
+ code;
7
+ category;
8
+ severity;
9
+ timestamp;
10
+ correlationId;
11
+ retryable;
12
+ details;
13
+ cause;
14
+ constructor(message, options = {}) {
15
+ super(message);
16
+ this.name = this.constructor.name;
17
+ this.code = options.code ?? "INTERNAL_001";
18
+ this.category = options.category ?? "internal";
19
+ this.severity = options.severity ?? "medium";
20
+ this.timestamp = new Date().toISOString();
21
+ this.correlationId = options.correlationId;
22
+ this.retryable = options.retryable ?? false;
23
+ this.details = options.details;
24
+ this.cause = options.cause;
25
+ }
26
+ toJSON() {
27
+ return {
28
+ name: this.name,
29
+ message: this.message,
30
+ code: this.code,
31
+ category: this.category,
32
+ severity: this.severity,
33
+ timestamp: this.timestamp,
34
+ correlationId: this.correlationId,
35
+ retryable: this.retryable,
36
+ details: this.details,
37
+ cause: this.cause?.message,
38
+ stack: this.stack,
39
+ };
40
+ }
41
+ withCorrelationId(correlationId) {
42
+ const Constructor = this.constructor;
43
+ return new Constructor(this.message, {
44
+ severity: this.severity,
45
+ correlationId,
46
+ retryable: this.retryable,
47
+ details: this.details,
48
+ cause: this.cause,
49
+ });
50
+ }
51
+ }
52
+ export const ERROR_CODES = {
53
+ // Database
54
+ DB_CONNECTION_FAILED: "DB_001",
55
+ DB_QUERY_FAILED: "DB_002",
56
+ DB_TRANSACTION_FAILED: "DB_003",
57
+ DB_MIGRATION_FAILED: "DB_004",
58
+ DB_POOL_EXHAUSTED: "DB_005",
59
+ DB_SCHEMA_MISMATCH: "DB_006",
60
+ DB_CONSTRAINT_VIOLATION: "DB_007",
61
+ // Cache
62
+ CACHE_CONNECTION_FAILED: "CACHE_001",
63
+ CACHE_OPERATION_FAILED: "CACHE_002",
64
+ CACHE_KEY_EXPIRED: "CACHE_003",
65
+ CACHE_KEY_NOT_FOUND: "CACHE_004",
66
+ // Queue
67
+ QUEUE_CONNECTION_FAILED: "QUEUE_001",
68
+ QUEUE_JOB_FAILED: "QUEUE_002",
69
+ QUEUE_WORKER_FAILED: "QUEUE_003",
70
+ QUEUE_DEAD_LETTER: "QUEUE_004",
71
+ QUEUE_BACKPRESSURE: "QUEUE_005",
72
+ // Storage
73
+ STORAGE_WRITE_FAILED: "STORAGE_001",
74
+ STORAGE_READ_FAILED: "STORAGE_002",
75
+ STORAGE_DELETE_FAILED: "STORAGE_003",
76
+ STORAGE_NOT_FOUND: "STORAGE_004",
77
+ STORAGE_CHECKSUM_MISMATCH: "STORAGE_005",
78
+ // Search
79
+ SEARCH_INDEX_FAILED: "SEARCH_001",
80
+ SEARCH_QUERY_FAILED: "SEARCH_002",
81
+ // Migration
82
+ MIGRATION_PENDING: "MIG_001",
83
+ MIGRATION_CONFLICT: "MIG_002",
84
+ MIGRATION_ROLLBACK_FAILED: "MIG_003",
85
+ // Connection
86
+ CONNECTION_TIMEOUT: "CONN_001",
87
+ CONNECTION_REFUSED: "CONN_002",
88
+ CONNECTION_LOST: "CONN_003",
89
+ // Transaction
90
+ TX_DEADLOCK: "TX_001",
91
+ TX_SERIALIZATION_FAILED: "TX_002",
92
+ TX_TIMEOUT: "TX_003",
93
+ // Configuration
94
+ CONFIG_INVALID: "CONFIG_001",
95
+ CONFIG_SECRET_MISSING: "CONFIG_002",
96
+ // Health
97
+ HEALTH_CHECK_FAILED: "HEALTH_001",
98
+ READINESS_FAILED: "HEALTH_002",
99
+ LIVENESS_FAILED: "HEALTH_003",
100
+ // Recovery
101
+ RECOVERY_EXHAUSTED: "RECOV_001",
102
+ CIRCUIT_BREAKER_OPEN: "RECOV_002",
103
+ // Security
104
+ SECURITY_SECRET_EXPOSED: "SEC_001",
105
+ SECURITY_CREDENTIAL_INVALID: "SEC_002",
106
+ // Internal
107
+ INTERNAL_ERROR: "INTERNAL_001",
108
+ INTERNAL_ASSERTION_FAILED: "INTERNAL_002",
109
+ };
110
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Deterministic hashing utilities.
3
+ * Uses SHA-256 for content-addressable identifiers.
4
+ */
5
+ export declare function sha256(content: string | Buffer): string;
6
+ export declare function sha256Object(obj: unknown): string;
7
+ export declare function deterministicStringify(obj: unknown): string;
8
+ //# sourceMappingURL=hashing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashing.d.ts","sourceRoot":"","sources":["../../src/shared/hashing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Deterministic hashing utilities.
3
+ * Uses SHA-256 for content-addressable identifiers.
4
+ */
5
+ import * as crypto from "node:crypto";
6
+ export function sha256(content) {
7
+ return crypto.createHash("sha256").update(content).digest("hex");
8
+ }
9
+ export function sha256Object(obj) {
10
+ return sha256(deterministicStringify(obj));
11
+ }
12
+ export function deterministicStringify(obj) {
13
+ return JSON.stringify(obj, deterministicReplacer);
14
+ }
15
+ function deterministicReplacer(_key, value) {
16
+ if (typeof value === "function" || typeof value === "undefined" || typeof value === "symbol") {
17
+ return undefined;
18
+ }
19
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
20
+ const sorted = {};
21
+ for (const k of Object.keys(value).sort()) {
22
+ sorted[k] = value[k];
23
+ }
24
+ return sorted;
25
+ }
26
+ return value;
27
+ }
28
+ //# sourceMappingURL=hashing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashing.js","sourceRoot":"","sources":["../../src/shared/hashing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,UAAU,MAAM,CAAC,OAAwB;IAC7C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAc;IACzD,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7F,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,MAAM,CAAC,CAAC,CAAC,GAAI,KAAiC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Shared module exports.
3
+ */
4
+ export { INFRASTRUCTURE_VERSION, INFRASTRUCTURE_NAME, PROVIDER_TYPES, type ProviderType, HEALTH_STATUSES, type HealthStatus, LIFECYCLE_STAGES, type LifecycleStage, DEFAULT_TIMEOUTS, POOL_DEFAULTS, } from "./constants.js";
5
+ export { type Brand, brand, unbrand } from "./branding.js";
6
+ export { sha256, sha256Object, deterministicStringify } from "./hashing.js";
7
+ export { deepEqual } from "./equality.js";
8
+ export { Timer, createTimer, sleep, waitFor } from "./timing.js";
9
+ export type { ProviderId, ConnectionId, TransactionId, MigrationId, ArtifactId, QueueId, JobId, LockId, SessionId, CacheKey, ProviderDescriptor, ProviderManifest, HealthCheckResult, ReadinessCheckResult, LivenessCheckResult, } from "./types.js";
10
+ export { InfrastructureError, ERROR_CODES, type ErrorCode, type ErrorSeverity, type ErrorCategory, } from "./errors.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,KAAK,YAAY,EACjB,eAAe,EACf,KAAK,YAAY,EACjB,gBAAgB,EAChB,KAAK,cAAc,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,EACV,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared module exports.
3
+ */
4
+ export { INFRASTRUCTURE_VERSION, INFRASTRUCTURE_NAME, PROVIDER_TYPES, HEALTH_STATUSES, LIFECYCLE_STAGES, DEFAULT_TIMEOUTS, POOL_DEFAULTS, } from "./constants.js";
5
+ export { brand, unbrand } from "./branding.js";
6
+ export { sha256, sha256Object, deterministicStringify } from "./hashing.js";
7
+ export { deepEqual } from "./equality.js";
8
+ export { Timer, createTimer, sleep, waitFor } from "./timing.js";
9
+ export { InfrastructureError, ERROR_CODES, } from "./errors.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EAEd,eAAe,EAEf,gBAAgB,EAEhB,gBAAgB,EAChB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAc,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAkBjE,OAAO,EACL,mBAAmB,EACnB,WAAW,GAIZ,MAAM,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Timing utilities for performance measurement and async operations.
3
+ */
4
+ export declare class Timer {
5
+ private start;
6
+ private readonly label;
7
+ constructor(label: string);
8
+ elapsedMs(): number;
9
+ elapsedUs(): number;
10
+ elapsedNs(): number;
11
+ getLabel(): string;
12
+ }
13
+ export declare function createTimer(label: string): Timer;
14
+ export declare function sleep(ms: number): Promise<void>;
15
+ export declare function waitFor(condition: () => boolean | Promise<boolean>, options?: {
16
+ timeoutMs?: number;
17
+ intervalMs?: number;
18
+ }): Promise<boolean>;
19
+ //# sourceMappingURL=timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../src/shared/timing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,KAAK,EAAE,MAAM;IAKzB,SAAS,IAAI,MAAM;IAKnB,SAAS,IAAI,MAAM;IAKnB,SAAS,IAAI,MAAM;IAKnB,QAAQ,IAAI,MAAM;CAGnB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAC3C,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,OAAO,CAAC,CAUlB"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Timing utilities for performance measurement and async operations.
3
+ */
4
+ export class Timer {
5
+ start;
6
+ label;
7
+ constructor(label) {
8
+ this.label = label;
9
+ this.start = process.hrtime.bigint();
10
+ }
11
+ elapsedMs() {
12
+ const now = process.hrtime.bigint();
13
+ return Number(now - this.start) / 1_000_000;
14
+ }
15
+ elapsedUs() {
16
+ const now = process.hrtime.bigint();
17
+ return Number(now - this.start) / 1_000;
18
+ }
19
+ elapsedNs() {
20
+ const now = process.hrtime.bigint();
21
+ return Number(now - this.start);
22
+ }
23
+ getLabel() {
24
+ return this.label;
25
+ }
26
+ }
27
+ export function createTimer(label) {
28
+ return new Timer(label);
29
+ }
30
+ export function sleep(ms) {
31
+ return new Promise((resolve) => setTimeout(resolve, ms));
32
+ }
33
+ export async function waitFor(condition, options = {}) {
34
+ const timeoutMs = options.timeoutMs ?? 30_000;
35
+ const intervalMs = options.intervalMs ?? 100;
36
+ const start = Date.now();
37
+ while (true) {
38
+ if (await condition())
39
+ return true;
40
+ if (Date.now() - start >= timeoutMs)
41
+ return false;
42
+ await sleep(intervalMs);
43
+ }
44
+ }
45
+ //# sourceMappingURL=timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/shared/timing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,KAAK;IACR,KAAK,CAAS;IACL,KAAK,CAAS;IAE/B,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC9C,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAC1C,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAA2C,EAC3C,UAAuD,EAAE;IAEzD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,MAAM,SAAS,EAAE;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAClD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Shared type definitions for infrastructure platform.
3
+ */
4
+ import type { Brand } from "./branding.js";
5
+ import type { HealthStatus, ProviderType } from "./constants.js";
6
+ export type ProviderId = Brand<string, "ProviderId">;
7
+ export type ConnectionId = Brand<string, "ConnectionId">;
8
+ export type TransactionId = Brand<string, "TransactionId">;
9
+ export type MigrationId = Brand<string, "MigrationId">;
10
+ export type ArtifactId = Brand<string, "ArtifactId">;
11
+ export type QueueId = Brand<string, "QueueId">;
12
+ export type JobId = Brand<string, "JobId">;
13
+ export type LockId = Brand<string, "LockId">;
14
+ export type SessionId = Brand<string, "SessionId">;
15
+ export type CacheKey = Brand<string, "CacheKey">;
16
+ export interface ProviderDescriptor {
17
+ readonly id: ProviderId;
18
+ readonly type: ProviderType;
19
+ readonly name: string;
20
+ readonly version: string;
21
+ readonly capabilities: readonly string[];
22
+ readonly dependencies: readonly ProviderId[];
23
+ readonly config: Record<string, unknown>;
24
+ readonly connect?: () => Promise<void>;
25
+ readonly disconnect?: () => Promise<void>;
26
+ readonly healthCheck?: () => Promise<HealthStatus>;
27
+ }
28
+ export interface ProviderManifest {
29
+ readonly id: ProviderId;
30
+ readonly type: ProviderType;
31
+ readonly name: string;
32
+ readonly version: string;
33
+ readonly capabilities: readonly string[];
34
+ readonly dependencies: readonly ProviderId[];
35
+ readonly configChecksum: string;
36
+ readonly startupTime: string;
37
+ readonly healthEndpoint?: string;
38
+ readonly metricsEndpoint?: string;
39
+ readonly startupDurationMs?: number;
40
+ readonly retryCount?: number;
41
+ readonly failureCount?: number;
42
+ readonly resourceCount?: number;
43
+ readonly doctorStatus?: HealthStatus;
44
+ readonly uptimeMs?: number;
45
+ }
46
+ export interface HealthCheckResult {
47
+ readonly status: HealthStatus;
48
+ readonly latencyMs: number;
49
+ readonly message?: string;
50
+ readonly details?: Record<string, unknown>;
51
+ readonly checkedAt: string;
52
+ }
53
+ export interface ReadinessCheckResult extends HealthCheckResult {
54
+ readonly dependencies: ReadonlyArray<{
55
+ readonly id: ProviderId;
56
+ readonly status: HealthStatus;
57
+ }>;
58
+ }
59
+ export interface LivenessCheckResult extends HealthCheckResult {
60
+ readonly uptimeMs: number;
61
+ }
62
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared type definitions for infrastructure platform.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@connexia/infrastructure",
3
+ "version": "1.0.1",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "dependencies": {
17
+ "@connexia/domain": "^1.0.0",
18
+ "zod": "^3.23.8",
19
+ "drizzle-orm": "^0.33.0",
20
+ "pg": "^8.13.0",
21
+ "ioredis": "^5.4.0",
22
+ "bullmq": "^5.0.0",
23
+ "pino": "^9.0.0",
24
+ "pino-pretty": "^11.0.0",
25
+ "@opentelemetry/api": "^1.8.0",
26
+ "ulid": "^2.3.0",
27
+ "neverthrow": "^7.1.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^22.20.0",
31
+ "@types/pg": "^8.11.0",
32
+ "typescript": "^5.6.3",
33
+ "vitest": "^3.1.1",
34
+ "drizzle-kit": "^0.24.0",
35
+ "tsx": "^4.19.0",
36
+ "@vitest/coverage-v8": "^3.1.1"
37
+ },
38
+ "engines": {
39
+ "node": ">=22.0.0"
40
+ },
41
+ "description": "Infrastructure utilities and database access for Connexia",
42
+ "license": "Apache-2.0",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "https://github.com/connexia/connexia.git",
46
+ "directory": "packages/infrastructure"
47
+ },
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "homepage": "https://github.com/connexia/connexia/tree/main/packages/infrastructure",
52
+ "bugs": {
53
+ "url": "https://github.com/connexia/connexia/issues"
54
+ },
55
+ "keywords": [
56
+ "Connexia",
57
+ "mcp",
58
+ "ai",
59
+ "infrastructure",
60
+ "database",
61
+ "postgres",
62
+ "redis"
63
+ ],
64
+ "scripts": {
65
+ "build": "tsc",
66
+ "clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"",
67
+ "typecheck": "tsc --noEmit",
68
+ "test": "vitest run",
69
+ "test:watch": "vitest",
70
+ "migrate:up": "tsx src/database/drizzle/migrate.ts up",
71
+ "migrate:down": "tsx src/database/drizzle/migrate.ts down",
72
+ "migrate:generate": "tsx src/database/drizzle/migrate.ts generate",
73
+ "db:studio": "drizzle-kit studio"
74
+ }
75
+ }