@dotdo/postgres 0.1.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 (1129) hide show
  1. package/README.md +868 -0
  2. package/dist/cdc/change-stream.d.ts +44 -0
  3. package/dist/cdc/change-stream.d.ts.map +1 -0
  4. package/dist/cdc/change-stream.js +95 -0
  5. package/dist/cdc/change-stream.js.map +1 -0
  6. package/dist/cdc/filter.d.ts +58 -0
  7. package/dist/cdc/filter.d.ts.map +1 -0
  8. package/dist/cdc/filter.js +520 -0
  9. package/dist/cdc/filter.js.map +1 -0
  10. package/dist/cdc/index.d.ts +47 -0
  11. package/dist/cdc/index.d.ts.map +1 -0
  12. package/dist/cdc/index.js +50 -0
  13. package/dist/cdc/index.js.map +1 -0
  14. package/dist/cdc/resume-token.d.ts +60 -0
  15. package/dist/cdc/resume-token.d.ts.map +1 -0
  16. package/dist/cdc/resume-token.js +228 -0
  17. package/dist/cdc/resume-token.js.map +1 -0
  18. package/dist/cdc/transport/index.d.ts +7 -0
  19. package/dist/cdc/transport/index.d.ts.map +1 -0
  20. package/dist/cdc/transport/index.js +7 -0
  21. package/dist/cdc/transport/index.js.map +1 -0
  22. package/dist/cdc/transport/sse.d.ts +120 -0
  23. package/dist/cdc/transport/sse.d.ts.map +1 -0
  24. package/dist/cdc/transport/sse.js +590 -0
  25. package/dist/cdc/transport/sse.js.map +1 -0
  26. package/dist/cdc/transport/websocket.d.ts +130 -0
  27. package/dist/cdc/transport/websocket.d.ts.map +1 -0
  28. package/dist/cdc/transport/websocket.js +688 -0
  29. package/dist/cdc/transport/websocket.js.map +1 -0
  30. package/dist/cdc/types.d.ts +306 -0
  31. package/dist/cdc/types.d.ts.map +1 -0
  32. package/dist/cdc/types.js +8 -0
  33. package/dist/cdc/types.js.map +1 -0
  34. package/dist/config/index.d.ts +25 -0
  35. package/dist/config/index.d.ts.map +1 -0
  36. package/dist/config/index.js +25 -0
  37. package/dist/config/index.js.map +1 -0
  38. package/dist/config/memory.d.ts +139 -0
  39. package/dist/config/memory.d.ts.map +1 -0
  40. package/dist/config/memory.js +157 -0
  41. package/dist/config/memory.js.map +1 -0
  42. package/dist/config/storage.d.ts +157 -0
  43. package/dist/config/storage.d.ts.map +1 -0
  44. package/dist/config/storage.js +178 -0
  45. package/dist/config/storage.js.map +1 -0
  46. package/dist/config/streaming.d.ts +117 -0
  47. package/dist/config/streaming.d.ts.map +1 -0
  48. package/dist/config/streaming.js +132 -0
  49. package/dist/config/streaming.js.map +1 -0
  50. package/dist/config/timeouts.d.ts +168 -0
  51. package/dist/config/timeouts.d.ts.map +1 -0
  52. package/dist/config/timeouts.js +192 -0
  53. package/dist/config/timeouts.js.map +1 -0
  54. package/dist/extensions/config.d.ts +89 -0
  55. package/dist/extensions/config.d.ts.map +1 -0
  56. package/dist/extensions/config.js +216 -0
  57. package/dist/extensions/config.js.map +1 -0
  58. package/dist/extensions/geo.d.ts +452 -0
  59. package/dist/extensions/geo.d.ts.map +1 -0
  60. package/dist/extensions/geo.js +583 -0
  61. package/dist/extensions/geo.js.map +1 -0
  62. package/dist/extensions/index.d.ts +167 -0
  63. package/dist/extensions/index.d.ts.map +1 -0
  64. package/dist/extensions/index.js +99 -0
  65. package/dist/extensions/index.js.map +1 -0
  66. package/dist/extensions/loader.d.ts +226 -0
  67. package/dist/extensions/loader.d.ts.map +1 -0
  68. package/dist/extensions/loader.js +456 -0
  69. package/dist/extensions/loader.js.map +1 -0
  70. package/dist/extensions/pgmq-lite.d.ts +330 -0
  71. package/dist/extensions/pgmq-lite.d.ts.map +1 -0
  72. package/dist/extensions/pgmq-lite.js +648 -0
  73. package/dist/extensions/pgmq-lite.js.map +1 -0
  74. package/dist/extensions/plugins.d.ts +260 -0
  75. package/dist/extensions/plugins.d.ts.map +1 -0
  76. package/dist/extensions/plugins.js +535 -0
  77. package/dist/extensions/plugins.js.map +1 -0
  78. package/dist/extensions/registry.d.ts +93 -0
  79. package/dist/extensions/registry.d.ts.map +1 -0
  80. package/dist/extensions/registry.js +182 -0
  81. package/dist/extensions/registry.js.map +1 -0
  82. package/dist/extensions/vector.d.ts +106 -0
  83. package/dist/extensions/vector.d.ts.map +1 -0
  84. package/dist/extensions/vector.js +129 -0
  85. package/dist/extensions/vector.js.map +1 -0
  86. package/dist/iceberg/analytics.d.ts +279 -0
  87. package/dist/iceberg/analytics.d.ts.map +1 -0
  88. package/dist/iceberg/analytics.js +448 -0
  89. package/dist/iceberg/analytics.js.map +1 -0
  90. package/dist/iceberg/catalog-api.d.ts +39 -0
  91. package/dist/iceberg/catalog-api.d.ts.map +1 -0
  92. package/dist/iceberg/catalog-api.js +388 -0
  93. package/dist/iceberg/catalog-api.js.map +1 -0
  94. package/dist/iceberg/catalog.d.ts +401 -0
  95. package/dist/iceberg/catalog.d.ts.map +1 -0
  96. package/dist/iceberg/catalog.js +677 -0
  97. package/dist/iceberg/catalog.js.map +1 -0
  98. package/dist/iceberg/duckdb-wasm.d.ts +447 -0
  99. package/dist/iceberg/duckdb-wasm.d.ts.map +1 -0
  100. package/dist/iceberg/duckdb-wasm.js +600 -0
  101. package/dist/iceberg/duckdb-wasm.js.map +1 -0
  102. package/dist/iceberg/index.d.ts +92 -0
  103. package/dist/iceberg/index.d.ts.map +1 -0
  104. package/dist/iceberg/index.js +119 -0
  105. package/dist/iceberg/index.js.map +1 -0
  106. package/dist/iceberg/metadata.d.ts +214 -0
  107. package/dist/iceberg/metadata.d.ts.map +1 -0
  108. package/dist/iceberg/metadata.js +535 -0
  109. package/dist/iceberg/metadata.js.map +1 -0
  110. package/dist/iceberg/optimizer.d.ts +296 -0
  111. package/dist/iceberg/optimizer.d.ts.map +1 -0
  112. package/dist/iceberg/optimizer.js +889 -0
  113. package/dist/iceberg/optimizer.js.map +1 -0
  114. package/dist/iceberg/parquet.d.ts +447 -0
  115. package/dist/iceberg/parquet.d.ts.map +1 -0
  116. package/dist/iceberg/parquet.js +1225 -0
  117. package/dist/iceberg/parquet.js.map +1 -0
  118. package/dist/iceberg/r2-organization.d.ts +422 -0
  119. package/dist/iceberg/r2-organization.d.ts.map +1 -0
  120. package/dist/iceberg/r2-organization.js +672 -0
  121. package/dist/iceberg/r2-organization.js.map +1 -0
  122. package/dist/iceberg/scheduler-do-example.d.ts +158 -0
  123. package/dist/iceberg/scheduler-do-example.d.ts.map +1 -0
  124. package/dist/iceberg/scheduler-do-example.js +261 -0
  125. package/dist/iceberg/scheduler-do-example.js.map +1 -0
  126. package/dist/iceberg/scheduler.d.ts +434 -0
  127. package/dist/iceberg/scheduler.d.ts.map +1 -0
  128. package/dist/iceberg/scheduler.js +818 -0
  129. package/dist/iceberg/scheduler.js.map +1 -0
  130. package/dist/iceberg/schema.d.ts +149 -0
  131. package/dist/iceberg/schema.d.ts.map +1 -0
  132. package/dist/iceberg/schema.js +525 -0
  133. package/dist/iceberg/schema.js.map +1 -0
  134. package/dist/iceberg/snapshot-manager.d.ts +406 -0
  135. package/dist/iceberg/snapshot-manager.d.ts.map +1 -0
  136. package/dist/iceberg/snapshot-manager.js +934 -0
  137. package/dist/iceberg/snapshot-manager.js.map +1 -0
  138. package/dist/iceberg/sql-router.d.ts +194 -0
  139. package/dist/iceberg/sql-router.d.ts.map +1 -0
  140. package/dist/iceberg/sql-router.js +180 -0
  141. package/dist/iceberg/sql-router.js.map +1 -0
  142. package/dist/iceberg/test-fixtures.d.ts +151 -0
  143. package/dist/iceberg/test-fixtures.d.ts.map +1 -0
  144. package/dist/iceberg/test-fixtures.js +446 -0
  145. package/dist/iceberg/test-fixtures.js.map +1 -0
  146. package/dist/iceberg/time-travel-api.d.ts +102 -0
  147. package/dist/iceberg/time-travel-api.d.ts.map +1 -0
  148. package/dist/iceberg/time-travel-api.js +437 -0
  149. package/dist/iceberg/time-travel-api.js.map +1 -0
  150. package/dist/iceberg/time-travel.d.ts +293 -0
  151. package/dist/iceberg/time-travel.d.ts.map +1 -0
  152. package/dist/iceberg/time-travel.js +689 -0
  153. package/dist/iceberg/time-travel.js.map +1 -0
  154. package/dist/iceberg/transformer.d.ts +356 -0
  155. package/dist/iceberg/transformer.d.ts.map +1 -0
  156. package/dist/iceberg/transformer.js +770 -0
  157. package/dist/iceberg/transformer.js.map +1 -0
  158. package/dist/iceberg/types.d.ts +318 -0
  159. package/dist/iceberg/types.d.ts.map +1 -0
  160. package/dist/iceberg/types.js +9 -0
  161. package/dist/iceberg/types.js.map +1 -0
  162. package/dist/iceberg/writer.d.ts +144 -0
  163. package/dist/iceberg/writer.d.ts.map +1 -0
  164. package/dist/iceberg/writer.js +452 -0
  165. package/dist/iceberg/writer.js.map +1 -0
  166. package/dist/index.d.ts +50 -0
  167. package/dist/index.d.ts.map +1 -0
  168. package/dist/index.js +69 -0
  169. package/dist/index.js.map +1 -0
  170. package/dist/lineage/index.d.ts +11 -0
  171. package/dist/lineage/index.d.ts.map +1 -0
  172. package/dist/lineage/index.js +11 -0
  173. package/dist/lineage/index.js.map +1 -0
  174. package/dist/lineage/integration.d.ts +134 -0
  175. package/dist/lineage/integration.d.ts.map +1 -0
  176. package/dist/lineage/integration.js +258 -0
  177. package/dist/lineage/integration.js.map +1 -0
  178. package/dist/lineage/tracker.d.ts +189 -0
  179. package/dist/lineage/tracker.d.ts.map +1 -0
  180. package/dist/lineage/tracker.js +1352 -0
  181. package/dist/lineage/tracker.js.map +1 -0
  182. package/dist/lineage/types.d.ts +318 -0
  183. package/dist/lineage/types.d.ts.map +1 -0
  184. package/dist/lineage/types.js +9 -0
  185. package/dist/lineage/types.js.map +1 -0
  186. package/dist/middleware/index.d.ts +11 -0
  187. package/dist/middleware/index.d.ts.map +1 -0
  188. package/dist/middleware/index.js +16 -0
  189. package/dist/middleware/index.js.map +1 -0
  190. package/dist/middleware/rate-limit.d.ts +397 -0
  191. package/dist/middleware/rate-limit.d.ts.map +1 -0
  192. package/dist/middleware/rate-limit.js +507 -0
  193. package/dist/middleware/rate-limit.js.map +1 -0
  194. package/dist/migration-tooling/external-migration.d.ts +601 -0
  195. package/dist/migration-tooling/external-migration.d.ts.map +1 -0
  196. package/dist/migration-tooling/external-migration.js +1612 -0
  197. package/dist/migration-tooling/external-migration.js.map +1 -0
  198. package/dist/migration-tooling/index.d.ts +19 -0
  199. package/dist/migration-tooling/index.d.ts.map +1 -0
  200. package/dist/migration-tooling/index.js +19 -0
  201. package/dist/migration-tooling/index.js.map +1 -0
  202. package/dist/migrations/auto-migrator.d.ts +289 -0
  203. package/dist/migrations/auto-migrator.d.ts.map +1 -0
  204. package/dist/migrations/auto-migrator.js +396 -0
  205. package/dist/migrations/auto-migrator.js.map +1 -0
  206. package/dist/migrations/bulk-orchestrator.d.ts +403 -0
  207. package/dist/migrations/bulk-orchestrator.d.ts.map +1 -0
  208. package/dist/migrations/bulk-orchestrator.js +646 -0
  209. package/dist/migrations/bulk-orchestrator.js.map +1 -0
  210. package/dist/migrations/compatibility.d.ts +216 -0
  211. package/dist/migrations/compatibility.d.ts.map +1 -0
  212. package/dist/migrations/compatibility.js +651 -0
  213. package/dist/migrations/compatibility.js.map +1 -0
  214. package/dist/migrations/do-migrations.d.ts +101 -0
  215. package/dist/migrations/do-migrations.d.ts.map +1 -0
  216. package/dist/migrations/do-migrations.js +1060 -0
  217. package/dist/migrations/do-migrations.js.map +1 -0
  218. package/dist/migrations/do-migrations.types.d.ts +550 -0
  219. package/dist/migrations/do-migrations.types.d.ts.map +1 -0
  220. package/dist/migrations/do-migrations.types.js +15 -0
  221. package/dist/migrations/do-migrations.types.js.map +1 -0
  222. package/dist/migrations/drizzle-compat.d.ts +163 -0
  223. package/dist/migrations/drizzle-compat.d.ts.map +1 -0
  224. package/dist/migrations/drizzle-compat.js +273 -0
  225. package/dist/migrations/drizzle-compat.js.map +1 -0
  226. package/dist/migrations/index.d.ts +109 -0
  227. package/dist/migrations/index.d.ts.map +1 -0
  228. package/dist/migrations/index.js +127 -0
  229. package/dist/migrations/index.js.map +1 -0
  230. package/dist/migrations/migration-api.d.ts +161 -0
  231. package/dist/migrations/migration-api.d.ts.map +1 -0
  232. package/dist/migrations/migration-api.js +499 -0
  233. package/dist/migrations/migration-api.js.map +1 -0
  234. package/dist/migrations/progress-tracker-do.d.ts +195 -0
  235. package/dist/migrations/progress-tracker-do.d.ts.map +1 -0
  236. package/dist/migrations/progress-tracker-do.js +339 -0
  237. package/dist/migrations/progress-tracker-do.js.map +1 -0
  238. package/dist/migrations/progress-tracker-kv.d.ts +103 -0
  239. package/dist/migrations/progress-tracker-kv.d.ts.map +1 -0
  240. package/dist/migrations/progress-tracker-kv.js +231 -0
  241. package/dist/migrations/progress-tracker-kv.js.map +1 -0
  242. package/dist/migrations/progress-tracker.d.ts +320 -0
  243. package/dist/migrations/progress-tracker.d.ts.map +1 -0
  244. package/dist/migrations/progress-tracker.js +443 -0
  245. package/dist/migrations/progress-tracker.js.map +1 -0
  246. package/dist/migrations/registry.d.ts +231 -0
  247. package/dist/migrations/registry.d.ts.map +1 -0
  248. package/dist/migrations/registry.js +376 -0
  249. package/dist/migrations/registry.js.map +1 -0
  250. package/dist/migrations/runner.d.ts +197 -0
  251. package/dist/migrations/runner.d.ts.map +1 -0
  252. package/dist/migrations/runner.js +1167 -0
  253. package/dist/migrations/runner.js.map +1 -0
  254. package/dist/migrations/schema-generator.d.ts +111 -0
  255. package/dist/migrations/schema-generator.d.ts.map +1 -0
  256. package/dist/migrations/schema-generator.js +335 -0
  257. package/dist/migrations/schema-generator.js.map +1 -0
  258. package/dist/migrations/testing.d.ts +321 -0
  259. package/dist/migrations/testing.d.ts.map +1 -0
  260. package/dist/migrations/testing.js +645 -0
  261. package/dist/migrations/testing.js.map +1 -0
  262. package/dist/migrations/types.d.ts +503 -0
  263. package/dist/migrations/types.d.ts.map +1 -0
  264. package/dist/migrations/types.js +11 -0
  265. package/dist/migrations/types.js.map +1 -0
  266. package/dist/migrations/validator.d.ts +215 -0
  267. package/dist/migrations/validator.d.ts.map +1 -0
  268. package/dist/migrations/validator.js +494 -0
  269. package/dist/migrations/validator.js.map +1 -0
  270. package/dist/observability/alerting.d.ts +116 -0
  271. package/dist/observability/alerting.d.ts.map +1 -0
  272. package/dist/observability/alerting.js +353 -0
  273. package/dist/observability/alerting.js.map +1 -0
  274. package/dist/observability/analytics-engine.d.ts +357 -0
  275. package/dist/observability/analytics-engine.d.ts.map +1 -0
  276. package/dist/observability/analytics-engine.js +430 -0
  277. package/dist/observability/analytics-engine.js.map +1 -0
  278. package/dist/observability/cost-metrics.d.ts +269 -0
  279. package/dist/observability/cost-metrics.d.ts.map +1 -0
  280. package/dist/observability/cost-metrics.js +560 -0
  281. package/dist/observability/cost-metrics.js.map +1 -0
  282. package/dist/observability/cross-do-tracing.d.ts +305 -0
  283. package/dist/observability/cross-do-tracing.d.ts.map +1 -0
  284. package/dist/observability/cross-do-tracing.js +431 -0
  285. package/dist/observability/cross-do-tracing.js.map +1 -0
  286. package/dist/observability/error-rate-collector.d.ts +163 -0
  287. package/dist/observability/error-rate-collector.d.ts.map +1 -0
  288. package/dist/observability/error-rate-collector.js +306 -0
  289. package/dist/observability/error-rate-collector.js.map +1 -0
  290. package/dist/observability/exporters.d.ts +231 -0
  291. package/dist/observability/exporters.d.ts.map +1 -0
  292. package/dist/observability/exporters.js +479 -0
  293. package/dist/observability/exporters.js.map +1 -0
  294. package/dist/observability/health-check.d.ts +106 -0
  295. package/dist/observability/health-check.d.ts.map +1 -0
  296. package/dist/observability/health-check.js +243 -0
  297. package/dist/observability/health-check.js.map +1 -0
  298. package/dist/observability/index.d.ts +297 -0
  299. package/dist/observability/index.d.ts.map +1 -0
  300. package/dist/observability/index.js +455 -0
  301. package/dist/observability/index.js.map +1 -0
  302. package/dist/observability/instrumentation.d.ts +222 -0
  303. package/dist/observability/instrumentation.d.ts.map +1 -0
  304. package/dist/observability/instrumentation.js +532 -0
  305. package/dist/observability/instrumentation.js.map +1 -0
  306. package/dist/observability/memory-metrics.d.ts +227 -0
  307. package/dist/observability/memory-metrics.d.ts.map +1 -0
  308. package/dist/observability/memory-metrics.js +688 -0
  309. package/dist/observability/memory-metrics.js.map +1 -0
  310. package/dist/observability/metrics-endpoint.d.ts +91 -0
  311. package/dist/observability/metrics-endpoint.d.ts.map +1 -0
  312. package/dist/observability/metrics-endpoint.js +246 -0
  313. package/dist/observability/metrics-endpoint.js.map +1 -0
  314. package/dist/observability/metrics.d.ts +88 -0
  315. package/dist/observability/metrics.d.ts.map +1 -0
  316. package/dist/observability/metrics.js +253 -0
  317. package/dist/observability/metrics.js.map +1 -0
  318. package/dist/observability/observability-features.d.ts +488 -0
  319. package/dist/observability/observability-features.d.ts.map +1 -0
  320. package/dist/observability/observability-features.js +773 -0
  321. package/dist/observability/observability-features.js.map +1 -0
  322. package/dist/observability/prometheus.d.ts +39 -0
  323. package/dist/observability/prometheus.d.ts.map +1 -0
  324. package/dist/observability/prometheus.js +120 -0
  325. package/dist/observability/prometheus.js.map +1 -0
  326. package/dist/observability/propagation.d.ts +126 -0
  327. package/dist/observability/propagation.d.ts.map +1 -0
  328. package/dist/observability/propagation.js +234 -0
  329. package/dist/observability/propagation.js.map +1 -0
  330. package/dist/observability/query-latency.d.ts +243 -0
  331. package/dist/observability/query-latency.d.ts.map +1 -0
  332. package/dist/observability/query-latency.js +292 -0
  333. package/dist/observability/query-latency.js.map +1 -0
  334. package/dist/observability/query-performance.d.ts +169 -0
  335. package/dist/observability/query-performance.d.ts.map +1 -0
  336. package/dist/observability/query-performance.js +290 -0
  337. package/dist/observability/query-performance.js.map +1 -0
  338. package/dist/observability/storage-tier-metrics.d.ts +174 -0
  339. package/dist/observability/storage-tier-metrics.d.ts.map +1 -0
  340. package/dist/observability/storage-tier-metrics.js +306 -0
  341. package/dist/observability/storage-tier-metrics.js.map +1 -0
  342. package/dist/observability/tier-cost-optimizer.d.ts +155 -0
  343. package/dist/observability/tier-cost-optimizer.d.ts.map +1 -0
  344. package/dist/observability/tier-cost-optimizer.js +536 -0
  345. package/dist/observability/tier-cost-optimizer.js.map +1 -0
  346. package/dist/observability/tracer.d.ts +149 -0
  347. package/dist/observability/tracer.d.ts.map +1 -0
  348. package/dist/observability/tracer.js +435 -0
  349. package/dist/observability/tracer.js.map +1 -0
  350. package/dist/observability/types.d.ts +402 -0
  351. package/dist/observability/types.d.ts.map +1 -0
  352. package/dist/observability/types.js +103 -0
  353. package/dist/observability/types.js.map +1 -0
  354. package/dist/pglite/workers-pglite.d.ts +138 -0
  355. package/dist/pglite/workers-pglite.d.ts.map +1 -0
  356. package/dist/pglite/workers-pglite.js +143 -0
  357. package/dist/pglite/workers-pglite.js.map +1 -0
  358. package/dist/pglite-assets/pglite.data +0 -0
  359. package/dist/pglite-assets/pglite.wasm +0 -0
  360. package/dist/playground/index.d.ts +52 -0
  361. package/dist/playground/index.d.ts.map +1 -0
  362. package/dist/playground/index.js +55 -0
  363. package/dist/playground/index.js.map +1 -0
  364. package/dist/playground/keyboard-shortcuts.d.ts +116 -0
  365. package/dist/playground/keyboard-shortcuts.d.ts.map +1 -0
  366. package/dist/playground/keyboard-shortcuts.js +588 -0
  367. package/dist/playground/keyboard-shortcuts.js.map +1 -0
  368. package/dist/playground/playground.d.ts +82 -0
  369. package/dist/playground/playground.d.ts.map +1 -0
  370. package/dist/playground/playground.js +271 -0
  371. package/dist/playground/playground.js.map +1 -0
  372. package/dist/playground/query-executor.d.ts +115 -0
  373. package/dist/playground/query-executor.d.ts.map +1 -0
  374. package/dist/playground/query-executor.js +558 -0
  375. package/dist/playground/query-executor.js.map +1 -0
  376. package/dist/playground/query-history.d.ts +92 -0
  377. package/dist/playground/query-history.d.ts.map +1 -0
  378. package/dist/playground/query-history.js +259 -0
  379. package/dist/playground/query-history.js.map +1 -0
  380. package/dist/playground/result-formatter.d.ts +59 -0
  381. package/dist/playground/result-formatter.d.ts.map +1 -0
  382. package/dist/playground/result-formatter.js +341 -0
  383. package/dist/playground/result-formatter.js.map +1 -0
  384. package/dist/playground/sample-datasets.d.ts +77 -0
  385. package/dist/playground/sample-datasets.d.ts.map +1 -0
  386. package/dist/playground/sample-datasets.js +641 -0
  387. package/dist/playground/sample-datasets.js.map +1 -0
  388. package/dist/playground/sample-queries.d.ts +73 -0
  389. package/dist/playground/sample-queries.d.ts.map +1 -0
  390. package/dist/playground/sample-queries.js +1095 -0
  391. package/dist/playground/sample-queries.js.map +1 -0
  392. package/dist/playground/schema-explorer.d.ts +55 -0
  393. package/dist/playground/schema-explorer.d.ts.map +1 -0
  394. package/dist/playground/schema-explorer.js +473 -0
  395. package/dist/playground/schema-explorer.js.map +1 -0
  396. package/dist/playground/types.d.ts +430 -0
  397. package/dist/playground/types.d.ts.map +1 -0
  398. package/dist/playground/types.js +10 -0
  399. package/dist/playground/types.js.map +1 -0
  400. package/dist/readonly/cache-reader.d.ts +145 -0
  401. package/dist/readonly/cache-reader.d.ts.map +1 -0
  402. package/dist/readonly/cache-reader.js +198 -0
  403. package/dist/readonly/cache-reader.js.map +1 -0
  404. package/dist/readonly/config.d.ts +74 -0
  405. package/dist/readonly/config.d.ts.map +1 -0
  406. package/dist/readonly/config.js +67 -0
  407. package/dist/readonly/config.js.map +1 -0
  408. package/dist/readonly/index.d.ts +22 -0
  409. package/dist/readonly/index.d.ts.map +1 -0
  410. package/dist/readonly/index.js +17 -0
  411. package/dist/readonly/index.js.map +1 -0
  412. package/dist/readonly/pglite-wrapper.d.ts +82 -0
  413. package/dist/readonly/pglite-wrapper.d.ts.map +1 -0
  414. package/dist/readonly/pglite-wrapper.js +123 -0
  415. package/dist/readonly/pglite-wrapper.js.map +1 -0
  416. package/dist/readonly/worker.d.ts +142 -0
  417. package/dist/readonly/worker.d.ts.map +1 -0
  418. package/dist/readonly/worker.js +187 -0
  419. package/dist/readonly/worker.js.map +1 -0
  420. package/dist/readonly/write-blocker.d.ts +47 -0
  421. package/dist/readonly/write-blocker.d.ts.map +1 -0
  422. package/dist/readonly/write-blocker.js +136 -0
  423. package/dist/readonly/write-blocker.js.map +1 -0
  424. package/dist/recovery/disaster-recovery.d.ts +326 -0
  425. package/dist/recovery/disaster-recovery.d.ts.map +1 -0
  426. package/dist/recovery/disaster-recovery.js +799 -0
  427. package/dist/recovery/disaster-recovery.js.map +1 -0
  428. package/dist/recovery/index.d.ts +12 -0
  429. package/dist/recovery/index.d.ts.map +1 -0
  430. package/dist/recovery/index.js +12 -0
  431. package/dist/recovery/index.js.map +1 -0
  432. package/dist/recovery/parquet-parser.d.ts +321 -0
  433. package/dist/recovery/parquet-parser.d.ts.map +1 -0
  434. package/dist/recovery/parquet-parser.js +797 -0
  435. package/dist/recovery/parquet-parser.js.map +1 -0
  436. package/dist/retention/index.d.ts +50 -0
  437. package/dist/retention/index.d.ts.map +1 -0
  438. package/dist/retention/index.js +50 -0
  439. package/dist/retention/index.js.map +1 -0
  440. package/dist/retention/policy.d.ts +344 -0
  441. package/dist/retention/policy.d.ts.map +1 -0
  442. package/dist/retention/policy.js +472 -0
  443. package/dist/retention/policy.js.map +1 -0
  444. package/dist/retention/purger.d.ts +187 -0
  445. package/dist/retention/purger.d.ts.map +1 -0
  446. package/dist/retention/purger.js +411 -0
  447. package/dist/retention/purger.js.map +1 -0
  448. package/dist/rls/auth-integration.d.ts +280 -0
  449. package/dist/rls/auth-integration.d.ts.map +1 -0
  450. package/dist/rls/auth-integration.js +399 -0
  451. package/dist/rls/auth-integration.js.map +1 -0
  452. package/dist/rls/generator.d.ts +249 -0
  453. package/dist/rls/generator.d.ts.map +1 -0
  454. package/dist/rls/generator.js +495 -0
  455. package/dist/rls/generator.js.map +1 -0
  456. package/dist/rls/index.d.ts +26 -0
  457. package/dist/rls/index.d.ts.map +1 -0
  458. package/dist/rls/index.js +58 -0
  459. package/dist/rls/index.js.map +1 -0
  460. package/dist/rls/policy.d.ts +116 -0
  461. package/dist/rls/policy.d.ts.map +1 -0
  462. package/dist/rls/policy.js +77 -0
  463. package/dist/rls/policy.js.map +1 -0
  464. package/dist/rls/validator.d.ts +155 -0
  465. package/dist/rls/validator.d.ts.map +1 -0
  466. package/dist/rls/validator.js +792 -0
  467. package/dist/rls/validator.js.map +1 -0
  468. package/dist/routing/adaptive-router.d.ts +317 -0
  469. package/dist/routing/adaptive-router.d.ts.map +1 -0
  470. package/dist/routing/adaptive-router.js +554 -0
  471. package/dist/routing/adaptive-router.js.map +1 -0
  472. package/dist/routing/circuit-breaker.d.ts +339 -0
  473. package/dist/routing/circuit-breaker.d.ts.map +1 -0
  474. package/dist/routing/circuit-breaker.js +620 -0
  475. package/dist/routing/circuit-breaker.js.map +1 -0
  476. package/dist/routing/cost-metrics.d.ts +133 -0
  477. package/dist/routing/cost-metrics.d.ts.map +1 -0
  478. package/dist/routing/cost-metrics.js +259 -0
  479. package/dist/routing/cost-metrics.js.map +1 -0
  480. package/dist/routing/do-connection-pool.d.ts +243 -0
  481. package/dist/routing/do-connection-pool.d.ts.map +1 -0
  482. package/dist/routing/do-connection-pool.js +572 -0
  483. package/dist/routing/do-connection-pool.js.map +1 -0
  484. package/dist/routing/index.d.ts +59 -0
  485. package/dist/routing/index.d.ts.map +1 -0
  486. package/dist/routing/index.js +59 -0
  487. package/dist/routing/index.js.map +1 -0
  488. package/dist/routing/query-complexity-estimator.d.ts +73 -0
  489. package/dist/routing/query-complexity-estimator.d.ts.map +1 -0
  490. package/dist/routing/query-complexity-estimator.js +327 -0
  491. package/dist/routing/query-complexity-estimator.js.map +1 -0
  492. package/dist/routing/request-coalescing.d.ts +178 -0
  493. package/dist/routing/request-coalescing.d.ts.map +1 -0
  494. package/dist/routing/request-coalescing.js +325 -0
  495. package/dist/routing/request-coalescing.js.map +1 -0
  496. package/dist/routing/runtime-router.d.ts +107 -0
  497. package/dist/routing/runtime-router.d.ts.map +1 -0
  498. package/dist/routing/runtime-router.js +246 -0
  499. package/dist/routing/runtime-router.js.map +1 -0
  500. package/dist/routing/tenant-router.d.ts +848 -0
  501. package/dist/routing/tenant-router.d.ts.map +1 -0
  502. package/dist/routing/tenant-router.js +1056 -0
  503. package/dist/routing/tenant-router.js.map +1 -0
  504. package/dist/routing/websocket-pool.d.ts +119 -0
  505. package/dist/routing/websocket-pool.d.ts.map +1 -0
  506. package/dist/routing/websocket-pool.js +436 -0
  507. package/dist/routing/websocket-pool.js.map +1 -0
  508. package/dist/storage/cache-layer.d.ts +159 -0
  509. package/dist/storage/cache-layer.d.ts.map +1 -0
  510. package/dist/storage/cache-layer.js +245 -0
  511. package/dist/storage/cache-layer.js.map +1 -0
  512. package/dist/storage/cost-aware-tiering.d.ts +258 -0
  513. package/dist/storage/cost-aware-tiering.d.ts.map +1 -0
  514. package/dist/storage/cost-aware-tiering.js +526 -0
  515. package/dist/storage/cost-aware-tiering.js.map +1 -0
  516. package/dist/storage/index.d.ts +87 -0
  517. package/dist/storage/index.d.ts.map +1 -0
  518. package/dist/storage/index.js +78 -0
  519. package/dist/storage/index.js.map +1 -0
  520. package/dist/storage/interfaces.d.ts +856 -0
  521. package/dist/storage/interfaces.d.ts.map +1 -0
  522. package/dist/storage/interfaces.js +69 -0
  523. package/dist/storage/interfaces.js.map +1 -0
  524. package/dist/storage/r2-layer.d.ts +226 -0
  525. package/dist/storage/r2-layer.d.ts.map +1 -0
  526. package/dist/storage/r2-layer.js +307 -0
  527. package/dist/storage/r2-layer.js.map +1 -0
  528. package/dist/storage/r2-overflow.d.ts +344 -0
  529. package/dist/storage/r2-overflow.d.ts.map +1 -0
  530. package/dist/storage/r2-overflow.js +730 -0
  531. package/dist/storage/r2-overflow.js.map +1 -0
  532. package/dist/storage/r2-page-vfs.d.ts +374 -0
  533. package/dist/storage/r2-page-vfs.d.ts.map +1 -0
  534. package/dist/storage/r2-page-vfs.js +754 -0
  535. package/dist/storage/r2-page-vfs.js.map +1 -0
  536. package/dist/storage/swr-cache.d.ts +181 -0
  537. package/dist/storage/swr-cache.d.ts.map +1 -0
  538. package/dist/storage/swr-cache.js +295 -0
  539. package/dist/storage/swr-cache.js.map +1 -0
  540. package/dist/storage/tiered-orchestrator.d.ts +951 -0
  541. package/dist/storage/tiered-orchestrator.d.ts.map +1 -0
  542. package/dist/storage/tiered-orchestrator.js +1731 -0
  543. package/dist/storage/tiered-orchestrator.js.map +1 -0
  544. package/dist/storage/tiered-vfs-swr.d.ts +279 -0
  545. package/dist/storage/tiered-vfs-swr.d.ts.map +1 -0
  546. package/dist/storage/tiered-vfs-swr.js +584 -0
  547. package/dist/storage/tiered-vfs-swr.js.map +1 -0
  548. package/dist/storage/tiered-vfs.d.ts +405 -0
  549. package/dist/storage/tiered-vfs.d.ts.map +1 -0
  550. package/dist/storage/tiered-vfs.js +833 -0
  551. package/dist/storage/tiered-vfs.js.map +1 -0
  552. package/dist/streaming/backpressure-controller.d.ts +173 -0
  553. package/dist/streaming/backpressure-controller.d.ts.map +1 -0
  554. package/dist/streaming/backpressure-controller.js +344 -0
  555. package/dist/streaming/backpressure-controller.js.map +1 -0
  556. package/dist/streaming/buffer-pool.d.ts +241 -0
  557. package/dist/streaming/buffer-pool.d.ts.map +1 -0
  558. package/dist/streaming/buffer-pool.js +381 -0
  559. package/dist/streaming/buffer-pool.js.map +1 -0
  560. package/dist/streaming/cdc-iceberg-connector.d.ts +272 -0
  561. package/dist/streaming/cdc-iceberg-connector.d.ts.map +1 -0
  562. package/dist/streaming/cdc-iceberg-connector.js +408 -0
  563. package/dist/streaming/cdc-iceberg-connector.js.map +1 -0
  564. package/dist/streaming/index.d.ts +111 -0
  565. package/dist/streaming/index.d.ts.map +1 -0
  566. package/dist/streaming/index.js +128 -0
  567. package/dist/streaming/index.js.map +1 -0
  568. package/dist/streaming/live-cdc-stream.d.ts +400 -0
  569. package/dist/streaming/live-cdc-stream.d.ts.map +1 -0
  570. package/dist/streaming/live-cdc-stream.js +703 -0
  571. package/dist/streaming/live-cdc-stream.js.map +1 -0
  572. package/dist/streaming/memory-bounded-stream.d.ts +207 -0
  573. package/dist/streaming/memory-bounded-stream.d.ts.map +1 -0
  574. package/dist/streaming/memory-bounded-stream.js +340 -0
  575. package/dist/streaming/memory-bounded-stream.js.map +1 -0
  576. package/dist/streaming/query-streamer.d.ts +379 -0
  577. package/dist/streaming/query-streamer.d.ts.map +1 -0
  578. package/dist/streaming/query-streamer.js +495 -0
  579. package/dist/streaming/query-streamer.js.map +1 -0
  580. package/dist/streaming/response-streaming.d.ts +203 -0
  581. package/dist/streaming/response-streaming.d.ts.map +1 -0
  582. package/dist/streaming/response-streaming.js +449 -0
  583. package/dist/streaming/response-streaming.js.map +1 -0
  584. package/dist/types/branded.d.ts +859 -0
  585. package/dist/types/branded.d.ts.map +1 -0
  586. package/dist/types/branded.js +891 -0
  587. package/dist/types/branded.js.map +1 -0
  588. package/dist/types/utilities.d.ts +757 -0
  589. package/dist/types/utilities.d.ts.map +1 -0
  590. package/dist/types/utilities.js +447 -0
  591. package/dist/types/utilities.js.map +1 -0
  592. package/dist/wal/replay-engine.d.ts +344 -0
  593. package/dist/wal/replay-engine.d.ts.map +1 -0
  594. package/dist/wal/replay-engine.js +975 -0
  595. package/dist/wal/replay-engine.js.map +1 -0
  596. package/dist/worker/__mocks__/capnweb.d.ts +13 -0
  597. package/dist/worker/__mocks__/capnweb.d.ts.map +1 -0
  598. package/dist/worker/__mocks__/capnweb.js +15 -0
  599. package/dist/worker/__mocks__/capnweb.js.map +1 -0
  600. package/dist/worker/__mocks__/cloudflare-workers.d.ts +31 -0
  601. package/dist/worker/__mocks__/cloudflare-workers.d.ts.map +1 -0
  602. package/dist/worker/__mocks__/cloudflare-workers.js +33 -0
  603. package/dist/worker/__mocks__/cloudflare-workers.js.map +1 -0
  604. package/dist/worker/__mocks__/pglite.data.d.ts +3 -0
  605. package/dist/worker/__mocks__/pglite.data.d.ts.map +1 -0
  606. package/dist/worker/__mocks__/pglite.data.js +20 -0
  607. package/dist/worker/__mocks__/pglite.data.js.map +1 -0
  608. package/dist/worker/__mocks__/pglite.wasm.d.ts +3 -0
  609. package/dist/worker/__mocks__/pglite.wasm.d.ts.map +1 -0
  610. package/dist/worker/__mocks__/pglite.wasm.js +30 -0
  611. package/dist/worker/__mocks__/pglite.wasm.js.map +1 -0
  612. package/dist/worker/auth-rate-limiter.d.ts +270 -0
  613. package/dist/worker/auth-rate-limiter.d.ts.map +1 -0
  614. package/dist/worker/auth-rate-limiter.js +332 -0
  615. package/dist/worker/auth-rate-limiter.js.map +1 -0
  616. package/dist/worker/auth.d.ts +345 -0
  617. package/dist/worker/auth.d.ts.map +1 -0
  618. package/dist/worker/auth.js +837 -0
  619. package/dist/worker/auth.js.map +1 -0
  620. package/dist/worker/cdc-backpressure.d.ts +338 -0
  621. package/dist/worker/cdc-backpressure.d.ts.map +1 -0
  622. package/dist/worker/cdc-backpressure.js +619 -0
  623. package/dist/worker/cdc-backpressure.js.map +1 -0
  624. package/dist/worker/cdc-sse.d.ts +277 -0
  625. package/dist/worker/cdc-sse.d.ts.map +1 -0
  626. package/dist/worker/cdc-sse.js +528 -0
  627. package/dist/worker/cdc-sse.js.map +1 -0
  628. package/dist/worker/cdc-websocket.d.ts +252 -0
  629. package/dist/worker/cdc-websocket.d.ts.map +1 -0
  630. package/dist/worker/cdc-websocket.js +940 -0
  631. package/dist/worker/cdc-websocket.js.map +1 -0
  632. package/dist/worker/cdc.d.ts +95 -0
  633. package/dist/worker/cdc.d.ts.map +1 -0
  634. package/dist/worker/cdc.js +211 -0
  635. package/dist/worker/cdc.js.map +1 -0
  636. package/dist/worker/concerns/auth-concern.d.ts +50 -0
  637. package/dist/worker/concerns/auth-concern.d.ts.map +1 -0
  638. package/dist/worker/concerns/auth-concern.js +131 -0
  639. package/dist/worker/concerns/auth-concern.js.map +1 -0
  640. package/dist/worker/concerns/cdc-concern.d.ts +99 -0
  641. package/dist/worker/concerns/cdc-concern.d.ts.map +1 -0
  642. package/dist/worker/concerns/cdc-concern.js +137 -0
  643. package/dist/worker/concerns/cdc-concern.js.map +1 -0
  644. package/dist/worker/concerns/index.d.ts +22 -0
  645. package/dist/worker/concerns/index.d.ts.map +1 -0
  646. package/dist/worker/concerns/index.js +13 -0
  647. package/dist/worker/concerns/index.js.map +1 -0
  648. package/dist/worker/concerns/query-execution-concern.d.ts +104 -0
  649. package/dist/worker/concerns/query-execution-concern.d.ts.map +1 -0
  650. package/dist/worker/concerns/query-execution-concern.js +95 -0
  651. package/dist/worker/concerns/query-execution-concern.js.map +1 -0
  652. package/dist/worker/concerns/storage-orchestration-concern.d.ts +78 -0
  653. package/dist/worker/concerns/storage-orchestration-concern.d.ts.map +1 -0
  654. package/dist/worker/concerns/storage-orchestration-concern.js +240 -0
  655. package/dist/worker/concerns/storage-orchestration-concern.js.map +1 -0
  656. package/dist/worker/do-auth-manager.d.ts +108 -0
  657. package/dist/worker/do-auth-manager.d.ts.map +1 -0
  658. package/dist/worker/do-auth-manager.js +212 -0
  659. package/dist/worker/do-auth-manager.js.map +1 -0
  660. package/dist/worker/do-pglite-manager.d.ts +137 -0
  661. package/dist/worker/do-pglite-manager.d.ts.map +1 -0
  662. package/dist/worker/do-pglite-manager.js +228 -0
  663. package/dist/worker/do-pglite-manager.js.map +1 -0
  664. package/dist/worker/do.d.ts +556 -0
  665. package/dist/worker/do.d.ts.map +1 -0
  666. package/dist/worker/do.js +1441 -0
  667. package/dist/worker/do.js.map +1 -0
  668. package/dist/worker/entry.d.ts +23 -0
  669. package/dist/worker/entry.d.ts.map +1 -0
  670. package/dist/worker/entry.js +362 -0
  671. package/dist/worker/entry.js.map +1 -0
  672. package/dist/worker/errors.d.ts +106 -0
  673. package/dist/worker/errors.d.ts.map +1 -0
  674. package/dist/worker/errors.js +178 -0
  675. package/dist/worker/errors.js.map +1 -0
  676. package/dist/worker/health-check-manager.d.ts +141 -0
  677. package/dist/worker/health-check-manager.d.ts.map +1 -0
  678. package/dist/worker/health-check-manager.js +145 -0
  679. package/dist/worker/health-check-manager.js.map +1 -0
  680. package/dist/worker/index.d.ts +60 -0
  681. package/dist/worker/index.d.ts.map +1 -0
  682. package/dist/worker/index.js +67 -0
  683. package/dist/worker/index.js.map +1 -0
  684. package/dist/worker/memory-pressure.d.ts +892 -0
  685. package/dist/worker/memory-pressure.d.ts.map +1 -0
  686. package/dist/worker/memory-pressure.js +1990 -0
  687. package/dist/worker/memory-pressure.js.map +1 -0
  688. package/dist/worker/migration-manager.d.ts +153 -0
  689. package/dist/worker/migration-manager.d.ts.map +1 -0
  690. package/dist/worker/migration-manager.js +461 -0
  691. package/dist/worker/migration-manager.js.map +1 -0
  692. package/dist/worker/plugin-manager.d.ts +147 -0
  693. package/dist/worker/plugin-manager.d.ts.map +1 -0
  694. package/dist/worker/plugin-manager.js +408 -0
  695. package/dist/worker/plugin-manager.js.map +1 -0
  696. package/dist/worker/proxy.d.ts +330 -0
  697. package/dist/worker/proxy.d.ts.map +1 -0
  698. package/dist/worker/proxy.js +504 -0
  699. package/dist/worker/proxy.js.map +1 -0
  700. package/dist/worker/query-execution-manager.d.ts +107 -0
  701. package/dist/worker/query-execution-manager.d.ts.map +1 -0
  702. package/dist/worker/query-execution-manager.js +155 -0
  703. package/dist/worker/query-execution-manager.js.map +1 -0
  704. package/dist/worker/query-executor.d.ts +163 -0
  705. package/dist/worker/query-executor.d.ts.map +1 -0
  706. package/dist/worker/query-executor.js +413 -0
  707. package/dist/worker/query-executor.js.map +1 -0
  708. package/dist/worker/query-stats-manager.d.ts +117 -0
  709. package/dist/worker/query-stats-manager.d.ts.map +1 -0
  710. package/dist/worker/query-stats-manager.js +162 -0
  711. package/dist/worker/query-stats-manager.js.map +1 -0
  712. package/dist/worker/result-handler.d.ts +192 -0
  713. package/dist/worker/result-handler.d.ts.map +1 -0
  714. package/dist/worker/result-handler.js +346 -0
  715. package/dist/worker/result-handler.js.map +1 -0
  716. package/dist/worker/routes.d.ts +135 -0
  717. package/dist/worker/routes.d.ts.map +1 -0
  718. package/dist/worker/routes.js +460 -0
  719. package/dist/worker/routes.js.map +1 -0
  720. package/dist/worker/rpc-methods-manager.d.ts +142 -0
  721. package/dist/worker/rpc-methods-manager.d.ts.map +1 -0
  722. package/dist/worker/rpc-methods-manager.js +195 -0
  723. package/dist/worker/rpc-methods-manager.js.map +1 -0
  724. package/dist/worker/rpc.d.ts +259 -0
  725. package/dist/worker/rpc.d.ts.map +1 -0
  726. package/dist/worker/rpc.js +398 -0
  727. package/dist/worker/rpc.js.map +1 -0
  728. package/dist/worker/schema-version.d.ts +209 -0
  729. package/dist/worker/schema-version.d.ts.map +1 -0
  730. package/dist/worker/schema-version.js +450 -0
  731. package/dist/worker/schema-version.js.map +1 -0
  732. package/dist/worker/session-manager.d.ts +282 -0
  733. package/dist/worker/session-manager.d.ts.map +1 -0
  734. package/dist/worker/session-manager.js +523 -0
  735. package/dist/worker/session-manager.js.map +1 -0
  736. package/dist/worker/shutdown-manager.d.ts +188 -0
  737. package/dist/worker/shutdown-manager.d.ts.map +1 -0
  738. package/dist/worker/shutdown-manager.js +347 -0
  739. package/dist/worker/shutdown-manager.js.map +1 -0
  740. package/dist/worker/sql-transform.d.ts +61 -0
  741. package/dist/worker/sql-transform.d.ts.map +1 -0
  742. package/dist/worker/sql-transform.js +312 -0
  743. package/dist/worker/sql-transform.js.map +1 -0
  744. package/dist/worker/types.d.ts +738 -0
  745. package/dist/worker/types.d.ts.map +1 -0
  746. package/dist/worker/types.js +6 -0
  747. package/dist/worker/types.js.map +1 -0
  748. package/dist/worker/user-routes.d.ts +76 -0
  749. package/dist/worker/user-routes.d.ts.map +1 -0
  750. package/dist/worker/user-routes.js +188 -0
  751. package/dist/worker/user-routes.js.map +1 -0
  752. package/dist/worker/wal-facade.d.ts +138 -0
  753. package/dist/worker/wal-facade.d.ts.map +1 -0
  754. package/dist/worker/wal-facade.js +184 -0
  755. package/dist/worker/wal-facade.js.map +1 -0
  756. package/dist/worker/wal-r2.d.ts +271 -0
  757. package/dist/worker/wal-r2.d.ts.map +1 -0
  758. package/dist/worker/wal-r2.js +689 -0
  759. package/dist/worker/wal-r2.js.map +1 -0
  760. package/dist/worker/wal-replay.d.ts +361 -0
  761. package/dist/worker/wal-replay.d.ts.map +1 -0
  762. package/dist/worker/wal-replay.js +628 -0
  763. package/dist/worker/wal-replay.js.map +1 -0
  764. package/dist/worker/wal-retention.d.ts +389 -0
  765. package/dist/worker/wal-retention.d.ts.map +1 -0
  766. package/dist/worker/wal-retention.js +763 -0
  767. package/dist/worker/wal-retention.js.map +1 -0
  768. package/dist/worker/wal.d.ts +278 -0
  769. package/dist/worker/wal.d.ts.map +1 -0
  770. package/dist/worker/wal.js +467 -0
  771. package/dist/worker/wal.js.map +1 -0
  772. package/dist/worker/websocket.d.ts +85 -0
  773. package/dist/worker/websocket.d.ts.map +1 -0
  774. package/dist/worker/websocket.js +227 -0
  775. package/dist/worker/websocket.js.map +1 -0
  776. package/package.json +108 -0
  777. package/src/cdc/change-stream.ts +137 -0
  778. package/src/cdc/filter.ts +646 -0
  779. package/src/cdc/index.ts +112 -0
  780. package/src/cdc/resume-token.ts +280 -0
  781. package/src/cdc/transport/index.ts +7 -0
  782. package/src/cdc/transport/sse.ts +723 -0
  783. package/src/cdc/transport/websocket.ts +873 -0
  784. package/src/cdc/types.ts +346 -0
  785. package/src/config/index.ts +25 -0
  786. package/src/config/memory.ts +177 -0
  787. package/src/config/storage.ts +204 -0
  788. package/src/config/streaming.ts +147 -0
  789. package/src/config/timeouts.ts +221 -0
  790. package/src/extensions/config.test.ts +187 -0
  791. package/src/extensions/config.ts +278 -0
  792. package/src/extensions/geo.test.ts +455 -0
  793. package/src/extensions/geo.ts +858 -0
  794. package/src/extensions/index.test.ts +259 -0
  795. package/src/extensions/index.ts +227 -0
  796. package/src/extensions/loader.test.ts +555 -0
  797. package/src/extensions/loader.ts +588 -0
  798. package/src/extensions/pgmq-lite.test.ts +727 -0
  799. package/src/extensions/pgmq-lite.ts +770 -0
  800. package/src/extensions/plugins.test.ts +528 -0
  801. package/src/extensions/plugins.ts +718 -0
  802. package/src/extensions/registry.test.ts +202 -0
  803. package/src/extensions/registry.ts +267 -0
  804. package/src/extensions/vector.test.ts +195 -0
  805. package/src/extensions/vector.ts +217 -0
  806. package/src/iceberg/SCHEDULER.md +580 -0
  807. package/src/iceberg/analytics.test.ts +703 -0
  808. package/src/iceberg/analytics.ts +727 -0
  809. package/src/iceberg/catalog-api.test.ts +838 -0
  810. package/src/iceberg/catalog-api.ts +520 -0
  811. package/src/iceberg/catalog.test.ts +680 -0
  812. package/src/iceberg/catalog.ts +1007 -0
  813. package/src/iceberg/iceberg.test.ts +705 -0
  814. package/src/iceberg/index.ts +406 -0
  815. package/src/iceberg/metadata.test.ts +632 -0
  816. package/src/iceberg/metadata.ts +649 -0
  817. package/src/iceberg/optimizer.test.ts +868 -0
  818. package/src/iceberg/optimizer.ts +1287 -0
  819. package/src/iceberg/parquet.test.ts +899 -0
  820. package/src/iceberg/parquet.ts +1640 -0
  821. package/src/iceberg/r2-organization.test.ts +615 -0
  822. package/src/iceberg/r2-organization.ts +951 -0
  823. package/src/iceberg/scheduler-do-example.ts +364 -0
  824. package/src/iceberg/scheduler.test.ts +861 -0
  825. package/src/iceberg/scheduler.ts +1201 -0
  826. package/src/iceberg/schema.test.ts +547 -0
  827. package/src/iceberg/schema.ts +616 -0
  828. package/src/iceberg/snapshot-manager.test.ts +919 -0
  829. package/src/iceberg/snapshot-manager.ts +1369 -0
  830. package/src/iceberg/sql-router.test.ts +334 -0
  831. package/src/iceberg/sql-router.ts +337 -0
  832. package/src/iceberg/test-fixtures.ts +605 -0
  833. package/src/iceberg/time-travel-api.test.ts +1029 -0
  834. package/src/iceberg/time-travel-api.ts +731 -0
  835. package/src/iceberg/time-travel.test.ts +1218 -0
  836. package/src/iceberg/time-travel.ts +1052 -0
  837. package/src/iceberg/transformer.test.ts +689 -0
  838. package/src/iceberg/transformer.ts +1029 -0
  839. package/src/iceberg/types.ts +373 -0
  840. package/src/iceberg/writer.test.ts +716 -0
  841. package/src/iceberg/writer.ts +590 -0
  842. package/src/index.ts +212 -0
  843. package/src/lineage/index.ts +42 -0
  844. package/src/lineage/integration.ts +334 -0
  845. package/src/lineage/tracker.ts +1618 -0
  846. package/src/lineage/types.ts +354 -0
  847. package/src/middleware/index.ts +36 -0
  848. package/src/middleware/rate-limit-concurrent.test.ts +794 -0
  849. package/src/middleware/rate-limit.test.ts +1568 -0
  850. package/src/middleware/rate-limit.ts +840 -0
  851. package/src/migration-tooling/external-migration.test.ts +1864 -0
  852. package/src/migration-tooling/external-migration.ts +2355 -0
  853. package/src/migration-tooling/index.ts +19 -0
  854. package/src/migrations/ARCHITECTURE.md +474 -0
  855. package/src/migrations/PROGRESS_TRACKING.md +485 -0
  856. package/src/migrations/auto-migrator.test.ts +732 -0
  857. package/src/migrations/auto-migrator.ts +531 -0
  858. package/src/migrations/bulk-orchestrator.test.ts +801 -0
  859. package/src/migrations/bulk-orchestrator.ts +1039 -0
  860. package/src/migrations/compatibility.test.ts +958 -0
  861. package/src/migrations/compatibility.ts +902 -0
  862. package/src/migrations/do-migrations.test.ts +2620 -0
  863. package/src/migrations/do-migrations.ts +1289 -0
  864. package/src/migrations/do-migrations.types.ts +715 -0
  865. package/src/migrations/drizzle-compat.test.ts +210 -0
  866. package/src/migrations/drizzle-compat.ts +337 -0
  867. package/src/migrations/index.ts +334 -0
  868. package/src/migrations/migration-api.test.ts +438 -0
  869. package/src/migrations/migration-api.ts +704 -0
  870. package/src/migrations/progress-tracker-do.ts +518 -0
  871. package/src/migrations/progress-tracker-kv.ts +305 -0
  872. package/src/migrations/progress-tracker.test.ts +937 -0
  873. package/src/migrations/progress-tracker.ts +665 -0
  874. package/src/migrations/registry.test.ts +331 -0
  875. package/src/migrations/registry.ts +468 -0
  876. package/src/migrations/rollback.test.ts +644 -0
  877. package/src/migrations/runner.test.ts +807 -0
  878. package/src/migrations/runner.test.ts.backup +759 -0
  879. package/src/migrations/runner.ts +1459 -0
  880. package/src/migrations/schema-generator.test.ts +649 -0
  881. package/src/migrations/schema-generator.ts +513 -0
  882. package/src/migrations/testing.ts +1037 -0
  883. package/src/migrations/types.ts +573 -0
  884. package/src/migrations/validator.test.ts +660 -0
  885. package/src/migrations/validator.ts +741 -0
  886. package/src/observability/alerting.test.ts +1133 -0
  887. package/src/observability/alerting.ts +455 -0
  888. package/src/observability/analytics-engine.ts +733 -0
  889. package/src/observability/cost-metrics.ts +804 -0
  890. package/src/observability/cross-do-tracing.test.ts +516 -0
  891. package/src/observability/cross-do-tracing.ts +588 -0
  892. package/src/observability/dashboards/postgres-do-overview.json +1656 -0
  893. package/src/observability/error-rate-collector.test.ts +977 -0
  894. package/src/observability/error-rate-collector.ts +518 -0
  895. package/src/observability/exporters.test.ts +365 -0
  896. package/src/observability/exporters.ts +650 -0
  897. package/src/observability/health-check.test.ts +353 -0
  898. package/src/observability/health-check.ts +341 -0
  899. package/src/observability/index.test.ts +298 -0
  900. package/src/observability/index.ts +885 -0
  901. package/src/observability/instrumentation.test.ts +428 -0
  902. package/src/observability/instrumentation.ts +788 -0
  903. package/src/observability/memory-metrics.test.ts +355 -0
  904. package/src/observability/memory-metrics.ts +990 -0
  905. package/src/observability/metrics-endpoint.test.ts +402 -0
  906. package/src/observability/metrics-endpoint.ts +374 -0
  907. package/src/observability/metrics.test.ts +291 -0
  908. package/src/observability/metrics.ts +315 -0
  909. package/src/observability/observability-features.ts +1296 -0
  910. package/src/observability/prometheus.test.ts +292 -0
  911. package/src/observability/prometheus.ts +170 -0
  912. package/src/observability/propagation.test.ts +417 -0
  913. package/src/observability/propagation.ts +294 -0
  914. package/src/observability/query-latency.ts +586 -0
  915. package/src/observability/query-performance.test.ts +406 -0
  916. package/src/observability/query-performance.ts +491 -0
  917. package/src/observability/storage-tier-metrics.test.ts +633 -0
  918. package/src/observability/storage-tier-metrics.ts +570 -0
  919. package/src/observability/tier-cost-optimizer.ts +740 -0
  920. package/src/observability/tracer.test.ts +346 -0
  921. package/src/observability/tracer.ts +585 -0
  922. package/src/observability/types.test.ts +726 -0
  923. package/src/observability/types.ts +434 -0
  924. package/src/pglite/auto-demotion.test.ts +477 -0
  925. package/src/pglite/auto-demotion.ts +385 -0
  926. package/src/pglite/auto-promotion.test.ts +824 -0
  927. package/src/pglite/auto-promotion.ts +547 -0
  928. package/src/pglite/cache-layer.test.ts +469 -0
  929. package/src/pglite/cache-layer.ts +271 -0
  930. package/src/pglite/cold-start-manager.ts +1260 -0
  931. package/src/pglite/cold-start-optimizer.test.ts +937 -0
  932. package/src/pglite/cold-start-optimizer.ts +1895 -0
  933. package/src/pglite/dovfs-adapter.ts +1122 -0
  934. package/src/pglite/dovfs.ts +1258 -0
  935. package/src/pglite/etag-cache.test.ts +844 -0
  936. package/src/pglite/etag-cache.ts +526 -0
  937. package/src/pglite/index.ts +442 -0
  938. package/src/pglite/init.test.ts +455 -0
  939. package/src/pglite/init.ts +574 -0
  940. package/src/pglite/lifecycle.test.ts +599 -0
  941. package/src/pglite/lifecycle.ts +704 -0
  942. package/src/pglite/parallel-loader.test.ts +586 -0
  943. package/src/pglite/parallel-loader.ts +481 -0
  944. package/src/pglite/production-pglite.test.ts +666 -0
  945. package/src/pglite/production-pglite.ts +537 -0
  946. package/src/pglite/query-executor.ts +614 -0
  947. package/src/pglite/r2-layer.test.ts +501 -0
  948. package/src/pglite/r2-layer.ts +322 -0
  949. package/src/pglite/tiered-init.test.ts +725 -0
  950. package/src/pglite/tiered-init.ts +556 -0
  951. package/src/pglite/tiered-vfs.test.ts +726 -0
  952. package/src/pglite/tiered-vfs.ts +33 -0
  953. package/src/pglite/tiering-stats.test.ts +531 -0
  954. package/src/pglite/tiering-stats.ts +407 -0
  955. package/src/pglite/transaction-hooks.ts +343 -0
  956. package/src/pglite/warm-loader.test.ts +1701 -0
  957. package/src/pglite/warm-loader.ts +528 -0
  958. package/src/pglite/workers-pglite.ts +224 -0
  959. package/src/pglite-assets/pglite.data +0 -0
  960. package/src/pglite-assets/pglite.wasm +0 -0
  961. package/src/pglite.d.ts +47 -0
  962. package/src/playground/index.ts +137 -0
  963. package/src/playground/keyboard-shortcuts.ts +677 -0
  964. package/src/playground/playground.ts +323 -0
  965. package/src/playground/query-executor.ts +669 -0
  966. package/src/playground/query-history.ts +328 -0
  967. package/src/playground/result-formatter.ts +420 -0
  968. package/src/playground/sample-datasets.ts +674 -0
  969. package/src/playground/sample-queries.ts +1168 -0
  970. package/src/playground/schema-explorer.ts +558 -0
  971. package/src/playground/types.ts +518 -0
  972. package/src/readonly/cache-reader.test.ts +460 -0
  973. package/src/readonly/cache-reader.ts +313 -0
  974. package/src/readonly/config.test.ts +187 -0
  975. package/src/readonly/config.ts +128 -0
  976. package/src/readonly/index.ts +50 -0
  977. package/src/readonly/pglite-wrapper.test.ts +278 -0
  978. package/src/readonly/pglite-wrapper.ts +184 -0
  979. package/src/readonly/worker.test.ts +533 -0
  980. package/src/readonly/worker.ts +341 -0
  981. package/src/readonly/write-blocker.test.ts +459 -0
  982. package/src/readonly/write-blocker.ts +175 -0
  983. package/src/recovery/disaster-recovery.test.ts +618 -0
  984. package/src/recovery/disaster-recovery.ts +1181 -0
  985. package/src/recovery/index.ts +43 -0
  986. package/src/recovery/parquet-parser.ts +974 -0
  987. package/src/retention/index.ts +74 -0
  988. package/src/retention/policy.test.ts +571 -0
  989. package/src/retention/policy.ts +774 -0
  990. package/src/retention/purger.test.ts +465 -0
  991. package/src/retention/purger.ts +558 -0
  992. package/src/rls/auth-integration.test.ts +752 -0
  993. package/src/rls/auth-integration.ts +533 -0
  994. package/src/rls/generator.test.ts +829 -0
  995. package/src/rls/generator.ts +573 -0
  996. package/src/rls/index.ts +128 -0
  997. package/src/rls/policy.ts +208 -0
  998. package/src/rls/rls.test.ts +1071 -0
  999. package/src/rls/validator.test.ts +930 -0
  1000. package/src/rls/validator.ts +895 -0
  1001. package/src/routing/adaptive-router.test.ts +884 -0
  1002. package/src/routing/adaptive-router.ts +845 -0
  1003. package/src/routing/circuit-breaker.test.ts +1505 -0
  1004. package/src/routing/circuit-breaker.ts +852 -0
  1005. package/src/routing/cost-metrics.test.ts +565 -0
  1006. package/src/routing/cost-metrics.ts +408 -0
  1007. package/src/routing/do-connection-pool.test.ts +1109 -0
  1008. package/src/routing/do-connection-pool.ts +828 -0
  1009. package/src/routing/index.ts +158 -0
  1010. package/src/routing/query-complexity-estimator.test.ts +356 -0
  1011. package/src/routing/query-complexity-estimator.ts +444 -0
  1012. package/src/routing/request-coalescing.test.ts +738 -0
  1013. package/src/routing/request-coalescing.ts +475 -0
  1014. package/src/routing/runtime-router.test.ts +436 -0
  1015. package/src/routing/runtime-router.ts +357 -0
  1016. package/src/routing/tenant-router.test.ts +2493 -0
  1017. package/src/routing/tenant-router.ts +1908 -0
  1018. package/src/routing/websocket-pool.test.ts +551 -0
  1019. package/src/routing/websocket-pool.ts +577 -0
  1020. package/src/storage/access-pattern-tracker.test.ts +874 -0
  1021. package/src/storage/cache-layer.test.ts +560 -0
  1022. package/src/storage/cache-layer.ts +328 -0
  1023. package/src/storage/cost-aware-tiering.test.ts +652 -0
  1024. package/src/storage/cost-aware-tiering.ts +794 -0
  1025. package/src/storage/do-sqlite-blobs.test.ts +937 -0
  1026. package/src/storage/index.ts +272 -0
  1027. package/src/storage/interfaces.ts +974 -0
  1028. package/src/storage/r2-layer.test.ts +653 -0
  1029. package/src/storage/r2-layer.ts +434 -0
  1030. package/src/storage/r2-overflow.ts +920 -0
  1031. package/src/storage/r2-page-vfs.test.ts +2348 -0
  1032. package/src/storage/r2-page-vfs.ts +1054 -0
  1033. package/src/storage/swr-cache.test.ts +832 -0
  1034. package/src/storage/swr-cache.ts +398 -0
  1035. package/src/storage/swr-tiered-integration.test.ts +617 -0
  1036. package/src/storage/tiered-orchestrator.test.ts +2441 -0
  1037. package/src/storage/tiered-orchestrator.ts +2081 -0
  1038. package/src/storage/tiered-vfs-swr.test.ts +736 -0
  1039. package/src/storage/tiered-vfs-swr.ts +735 -0
  1040. package/src/storage/tiered-vfs.test.ts +793 -0
  1041. package/src/storage/tiered-vfs.ts +1082 -0
  1042. package/src/streaming/backpressure-controller.ts +452 -0
  1043. package/src/streaming/buffer-pool.ts +484 -0
  1044. package/src/streaming/cdc-iceberg-connector.ts +605 -0
  1045. package/src/streaming/index.ts +225 -0
  1046. package/src/streaming/live-cdc-stream.ts +985 -0
  1047. package/src/streaming/memory-bounded-stream.ts +443 -0
  1048. package/src/streaming/query-streamer.ts +662 -0
  1049. package/src/streaming/response-streaming.ts +557 -0
  1050. package/src/types/branded.ts +1075 -0
  1051. package/src/types/branded.ts.backup +273 -0
  1052. package/src/types/utilities.ts +1023 -0
  1053. package/src/types/wasm.d.ts +30 -0
  1054. package/src/validation/typed-errors.test.ts +420 -0
  1055. package/src/wal/replay-engine.ts +1264 -0
  1056. package/src/worker/__mocks__/capnweb.ts +15 -0
  1057. package/src/worker/__mocks__/pglite.data.ts +22 -0
  1058. package/src/worker/__mocks__/pglite.wasm.ts +33 -0
  1059. package/src/worker/auth-rate-limiter.test.ts +272 -0
  1060. package/src/worker/auth-rate-limiter.ts +448 -0
  1061. package/src/worker/auth.security-red.test.ts +1236 -0
  1062. package/src/worker/auth.security.test.ts +822 -0
  1063. package/src/worker/auth.test.ts +469 -0
  1064. package/src/worker/auth.ts +1104 -0
  1065. package/src/worker/cdc-backpressure.test.ts +726 -0
  1066. package/src/worker/cdc-backpressure.ts +866 -0
  1067. package/src/worker/cdc-sse.test.ts +780 -0
  1068. package/src/worker/cdc-sse.ts +728 -0
  1069. package/src/worker/cdc-websocket.ts +1229 -0
  1070. package/src/worker/cdc-ws.test.ts +1009 -0
  1071. package/src/worker/cdc.test.ts +327 -0
  1072. package/src/worker/cdc.ts +289 -0
  1073. package/src/worker/concerns/auth-concern.ts +179 -0
  1074. package/src/worker/concerns/cdc-concern.ts +247 -0
  1075. package/src/worker/concerns/index.ts +58 -0
  1076. package/src/worker/concerns/query-execution-concern.ts +194 -0
  1077. package/src/worker/concerns/storage-orchestration-concern.ts +373 -0
  1078. package/src/worker/discriminated-types.test.ts +280 -0
  1079. package/src/worker/do-auth-manager.ts +257 -0
  1080. package/src/worker/do-decomposition.test.ts +1236 -0
  1081. package/src/worker/do-pglite-manager.ts +302 -0
  1082. package/src/worker/do.test.ts +2254 -0
  1083. package/src/worker/do.ts +1878 -0
  1084. package/src/worker/entry.ts +417 -0
  1085. package/src/worker/errors.ts +285 -0
  1086. package/src/worker/health-check-manager.test.ts +261 -0
  1087. package/src/worker/health-check-manager.ts +231 -0
  1088. package/src/worker/index.ts +389 -0
  1089. package/src/worker/memory-pressure.test.ts +1460 -0
  1090. package/src/worker/memory-pressure.ts +2650 -0
  1091. package/src/worker/migration-manager.ts +582 -0
  1092. package/src/worker/neon-compat.test.ts +332 -0
  1093. package/src/worker/plugin-manager.ts +485 -0
  1094. package/src/worker/postgres.do-rpc.d.ts +76 -0
  1095. package/src/worker/proxy.ts +694 -0
  1096. package/src/worker/query-execution-manager.test.ts +303 -0
  1097. package/src/worker/query-execution-manager.ts +219 -0
  1098. package/src/worker/query-executor.test.ts +282 -0
  1099. package/src/worker/query-executor.ts +560 -0
  1100. package/src/worker/query-stats-manager.ts +229 -0
  1101. package/src/worker/result-handler.test.ts +364 -0
  1102. package/src/worker/result-handler.ts +510 -0
  1103. package/src/worker/routes.test.ts +795 -0
  1104. package/src/worker/routes.ts +650 -0
  1105. package/src/worker/rpc-methods-manager.test.ts +326 -0
  1106. package/src/worker/rpc-methods-manager.ts +276 -0
  1107. package/src/worker/rpc.ts +524 -0
  1108. package/src/worker/schema-version.ts +605 -0
  1109. package/src/worker/session-manager.test.ts +506 -0
  1110. package/src/worker/session-manager.ts +732 -0
  1111. package/src/worker/shutdown-manager.ts +469 -0
  1112. package/src/worker/sql-transform.test.ts +286 -0
  1113. package/src/worker/sql-transform.ts +368 -0
  1114. package/src/worker/supabase-compat.test.ts +621 -0
  1115. package/src/worker/types.test.ts +292 -0
  1116. package/src/worker/types.ts +873 -0
  1117. package/src/worker/user-routes.test.ts +703 -0
  1118. package/src/worker/user-routes.ts +303 -0
  1119. package/src/worker/wal-facade.ts +235 -0
  1120. package/src/worker/wal-r2.test.ts +570 -0
  1121. package/src/worker/wal-r2.ts +930 -0
  1122. package/src/worker/wal-replay.test.ts +845 -0
  1123. package/src/worker/wal-replay.ts +897 -0
  1124. package/src/worker/wal-retention.test.ts +758 -0
  1125. package/src/worker/wal-retention.ts +1075 -0
  1126. package/src/worker/wal.test.ts +618 -0
  1127. package/src/worker/wal.ts +697 -0
  1128. package/src/worker/websocket.test.ts +296 -0
  1129. package/src/worker/websocket.ts +284 -0
@@ -0,0 +1,891 @@
1
+ /**
2
+ * Branded Types for Domain-Specific Identifiers
3
+ *
4
+ * This module provides TypeScript branded types for domain-specific identifiers,
5
+ * preventing accidental mixing of incompatible values at compile time.
6
+ *
7
+ * ## What are Branded Types?
8
+ *
9
+ * Branded types use TypeScript's structural typing system to create nominal-like types.
10
+ * Each branded type carries a unique "brand" that makes it incompatible with other types,
11
+ * even if they have the same underlying primitive type.
12
+ *
13
+ * ## Why Use Branded Types?
14
+ *
15
+ * Without branded types, it's easy to accidentally pass the wrong ID:
16
+ *
17
+ * ```typescript
18
+ * // Without branding - compiles but has a bug!
19
+ * function getUser(userId: string) { ... }
20
+ * function getPage(pageId: string) { ... }
21
+ *
22
+ * const userId = 'user-123'
23
+ * const pageId = 'page-456'
24
+ * getUser(pageId) // Compiles! But wrong.
25
+ * ```
26
+ *
27
+ * With branded types, the compiler catches these mistakes:
28
+ *
29
+ * ```typescript
30
+ * // With branding - compile error!
31
+ * function getUser(userId: TenantId) { ... }
32
+ * function getPage(pageId: BlockId) { ... }
33
+ *
34
+ * const userId = createTenantId('user-123')
35
+ * const pageId = createBlockId('HOT:page-456')
36
+ * getUser(pageId) // Error! Type 'BlockId' is not assignable to type 'TenantId'
37
+ * ```
38
+ *
39
+ * @example Creating and using branded types
40
+ * ```typescript
41
+ * import { createTenantId, createPageNumber, TenantId, unwrap } from '@dotdo/postgres'
42
+ *
43
+ * // Create a branded value (validates input)
44
+ * const tenantId = createTenantId('acme-corp')
45
+ *
46
+ * // Use in type-safe functions
47
+ * function getTenantData(id: TenantId): Promise<TenantData> {
48
+ * // id is guaranteed to be a valid tenant ID
49
+ * }
50
+ *
51
+ * // Unwrap to get the underlying value
52
+ * const rawValue: string = unwrap(tenantId)
53
+ * ```
54
+ *
55
+ * @module types/branded
56
+ */
57
+ // =============================================================================
58
+ // Validation Constants
59
+ // =============================================================================
60
+ /**
61
+ * Common pattern for alphanumeric identifiers.
62
+ *
63
+ * Many ID types share this pattern: must start with an alphanumeric character
64
+ * and contain only alphanumeric characters, underscores, or hyphens.
65
+ *
66
+ * Used by: TenantId, QueryId, ShardId, IngestId, ReplicaId, BatchId
67
+ *
68
+ * @example Valid patterns
69
+ * - `'tenant1'` - starts with letter
70
+ * - `'123abc'` - starts with number
71
+ * - `'my-id'` - contains hyphens
72
+ * - `'my_id'` - contains underscores
73
+ *
74
+ * @example Invalid patterns
75
+ * - `'-invalid'` - starts with hyphen
76
+ * - `'_invalid'` - starts with underscore
77
+ * - `'has spaces'` - contains spaces
78
+ * - `'has.dots'` - contains dots
79
+ */
80
+ export const ALPHANUMERIC_ID_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
81
+ /** Maximum allowed length for tenant IDs (128 characters). */
82
+ export const TENANT_ID_MAX_LENGTH = 128;
83
+ /**
84
+ * Validation pattern for tenant IDs.
85
+ *
86
+ * Must start with alphanumeric and contain only alphanumeric, underscore, or hyphen.
87
+ *
88
+ * @see {@link ALPHANUMERIC_ID_PATTERN} - This is an alias for the common alphanumeric pattern
89
+ */
90
+ export const TENANT_ID_PATTERN = ALPHANUMERIC_ID_PATTERN;
91
+ /** Maximum allowed page number (99,999,999). */
92
+ export const MAX_PAGE_NUMBER = 99999999;
93
+ /**
94
+ * Validation pattern for query IDs.
95
+ *
96
+ * @see {@link ALPHANUMERIC_ID_PATTERN} - This is an alias for the common alphanumeric pattern
97
+ */
98
+ export const QUERY_ID_PATTERN = ALPHANUMERIC_ID_PATTERN;
99
+ /**
100
+ * Validation pattern for snapshot IDs (numeric strings).
101
+ *
102
+ * Matches optional negative sign followed by one or more digits.
103
+ * Used for PostgreSQL 64-bit transaction/snapshot identifiers.
104
+ */
105
+ export const SNAPSHOT_ID_PATTERN = /^-?[0-9]+$/;
106
+ /**
107
+ * Maximum snapshot ID value (2^63 - 1 as string).
108
+ *
109
+ * Represents the maximum value for a signed 64-bit integer.
110
+ * Stored as string to avoid JavaScript number precision issues.
111
+ */
112
+ export const MAX_SNAPSHOT_ID = '9223372036854775807';
113
+ /**
114
+ * Validation pattern for block IDs.
115
+ *
116
+ * Format: `{HOT|WARM|COLD}:{key}`
117
+ * - Tier must be uppercase: HOT, WARM, or COLD
118
+ * - Key can contain alphanumeric, underscore, hyphen, dot, or slash
119
+ *
120
+ * @example Valid block IDs
121
+ * - `'HOT:cache/session-123'`
122
+ * - `'WARM:data/recent.db'`
123
+ * - `'COLD:archive/2024/backup.tar'`
124
+ */
125
+ export const BLOCK_ID_PATTERN = /^(HOT|WARM|COLD):[a-zA-Z0-9_\-/.]+$/;
126
+ /**
127
+ * Validation pattern for shard IDs.
128
+ *
129
+ * @see {@link ALPHANUMERIC_ID_PATTERN} - This is an alias for the common alphanumeric pattern
130
+ */
131
+ export const SHARD_ID_PATTERN = ALPHANUMERIC_ID_PATTERN;
132
+ /** Maximum allowed length for shard IDs (64 characters). */
133
+ export const SHARD_ID_MAX_LENGTH = 64;
134
+ /**
135
+ * Validation pattern for ingest IDs.
136
+ *
137
+ * @see {@link ALPHANUMERIC_ID_PATTERN} - This is an alias for the common alphanumeric pattern
138
+ */
139
+ export const INGEST_ID_PATTERN = ALPHANUMERIC_ID_PATTERN;
140
+ /** Maximum allowed length for ingest IDs (64 characters). */
141
+ export const INGEST_ID_MAX_LENGTH = 64;
142
+ /**
143
+ * Validation pattern for replica IDs.
144
+ *
145
+ * @see {@link ALPHANUMERIC_ID_PATTERN} - This is an alias for the common alphanumeric pattern
146
+ */
147
+ export const REPLICA_ID_PATTERN = ALPHANUMERIC_ID_PATTERN;
148
+ /** Maximum allowed length for replica IDs (64 characters). */
149
+ export const REPLICA_ID_MAX_LENGTH = 64;
150
+ /**
151
+ * Validation pattern for batch IDs.
152
+ *
153
+ * @see {@link ALPHANUMERIC_ID_PATTERN} - This is an alias for the common alphanumeric pattern
154
+ */
155
+ export const BATCH_ID_PATTERN = ALPHANUMERIC_ID_PATTERN;
156
+ /** Maximum allowed length for batch IDs (128 characters). */
157
+ export const BATCH_ID_MAX_LENGTH = 128;
158
+ // =============================================================================
159
+ // Factory Functions
160
+ // =============================================================================
161
+ /**
162
+ * Creates a validated tenant ID from a string.
163
+ *
164
+ * Tenant IDs are used to uniquely identify tenants in multi-tenant deployments.
165
+ * They must start with an alphanumeric character and can only contain
166
+ * alphanumeric characters, underscores, or hyphens.
167
+ *
168
+ * @param value - The raw string to validate and brand
169
+ * @returns A branded TenantId
170
+ * @throws Error if the value is empty, exceeds max length, or has invalid format
171
+ *
172
+ * @example Basic usage
173
+ * ```typescript
174
+ * const tenantId = createTenantId('acme-corp')
175
+ * console.log(unwrap(tenantId)) // 'acme-corp'
176
+ * ```
177
+ *
178
+ * @example Error handling
179
+ * ```typescript
180
+ * try {
181
+ * createTenantId('-invalid') // Throws: starts with hyphen
182
+ * } catch (error) {
183
+ * console.error('Invalid tenant:', error.message)
184
+ * }
185
+ * ```
186
+ *
187
+ * @example Type-safe function parameter
188
+ * ```typescript
189
+ * function loadTenantData(id: TenantId): Promise<Data> {
190
+ * // id is guaranteed to be valid
191
+ * return fetch(`/api/tenants/${unwrap(id)}`)
192
+ * }
193
+ *
194
+ * const tenantId = createTenantId('acme-corp')
195
+ * await loadTenantData(tenantId) // OK
196
+ * await loadTenantData('plain-string') // Compile error!
197
+ * ```
198
+ *
199
+ * @see {@link isTenantId} - Type guard for checking without throwing
200
+ * @see {@link unsafeTenantId} - Skip validation (use with caution)
201
+ */
202
+ export function createTenantId(value) {
203
+ if (!value || value.length === 0) {
204
+ throw new Error('Invalid tenant ID: cannot be empty');
205
+ }
206
+ if (value.length > TENANT_ID_MAX_LENGTH) {
207
+ throw new Error(`Invalid tenant ID: exceeds maximum length of ${TENANT_ID_MAX_LENGTH}`);
208
+ }
209
+ if (!TENANT_ID_PATTERN.test(value)) {
210
+ throw new Error(`Invalid tenant ID: "${value}". Must start with alphanumeric and contain only alphanumeric, underscore, or hyphen`);
211
+ }
212
+ return value;
213
+ }
214
+ /**
215
+ * Creates a validated page number.
216
+ *
217
+ * Page numbers represent storage pages in the tiered storage system.
218
+ * They must be non-negative integers within the allowed range (0 to 99,999,999).
219
+ *
220
+ * @param value - The raw number to validate and brand
221
+ * @returns A branded PageNumber
222
+ * @throws Error if value is negative, non-integer, or exceeds maximum
223
+ *
224
+ * @example Basic usage
225
+ * ```typescript
226
+ * const page = createPageNumber(42)
227
+ * console.log(unwrap(page)) // 42
228
+ * ```
229
+ *
230
+ * @example Boundary values
231
+ * ```typescript
232
+ * createPageNumber(0) // Valid: minimum page
233
+ * createPageNumber(99999999) // Valid: maximum page (MAX_PAGE_NUMBER)
234
+ * createPageNumber(-1) // Throws: negative not allowed
235
+ * createPageNumber(100000000) // Throws: exceeds maximum
236
+ * createPageNumber(1.5) // Throws: must be integer
237
+ * ```
238
+ *
239
+ * @see {@link isPageNumber} - Type guard for checking without throwing
240
+ * @see {@link MAX_PAGE_NUMBER} - Maximum allowed value (99,999,999)
241
+ */
242
+ export function createPageNumber(value) {
243
+ if (!Number.isInteger(value) || value < 0 || value > MAX_PAGE_NUMBER) {
244
+ throw new Error(`Invalid page number: ${value}. Must be integer 0-${MAX_PAGE_NUMBER}`);
245
+ }
246
+ return value;
247
+ }
248
+ /**
249
+ * Creates a validated migration version number.
250
+ *
251
+ * Migration versions represent sequential database schema versions.
252
+ * They must be positive integers (>= 1) since version 0 represents no migrations.
253
+ *
254
+ * @param value - The raw number to validate and brand
255
+ * @returns A branded MigrationVersion
256
+ * @throws Error if value is zero, negative, or non-integer
257
+ *
258
+ * @example Basic usage
259
+ * ```typescript
260
+ * const version = createMigrationVersion(3)
261
+ * console.log(unwrap(version)) // 3
262
+ * ```
263
+ *
264
+ * @example Migration tracking
265
+ * ```typescript
266
+ * async function runMigrations(currentVersion: MigrationVersion) {
267
+ * const migrations = [
268
+ * { version: createMigrationVersion(1), sql: 'CREATE TABLE users...' },
269
+ * { version: createMigrationVersion(2), sql: 'ALTER TABLE users...' },
270
+ * { version: createMigrationVersion(3), sql: 'CREATE INDEX...' },
271
+ * ]
272
+ * for (const m of migrations) {
273
+ * if (unwrap(m.version) > unwrap(currentVersion)) {
274
+ * await db.exec(m.sql)
275
+ * }
276
+ * }
277
+ * }
278
+ * ```
279
+ *
280
+ * @see {@link isMigrationVersion} - Type guard for checking without throwing
281
+ */
282
+ export function createMigrationVersion(value) {
283
+ if (!Number.isInteger(value) || value < 1) {
284
+ throw new Error(`Invalid migration version: ${value}. Must be positive integer`);
285
+ }
286
+ return value;
287
+ }
288
+ /**
289
+ * Creates a validated query ID from a string.
290
+ *
291
+ * Query IDs are used to uniquely identify and track queries for observability,
292
+ * logging, tracing, and cancellation purposes.
293
+ *
294
+ * @param value - The raw string to validate and brand
295
+ * @returns A branded QueryId
296
+ * @throws Error if the value is empty or has invalid format
297
+ *
298
+ * @example Basic usage
299
+ * ```typescript
300
+ * const queryId = createQueryId('query-abc123')
301
+ * console.log(unwrap(queryId)) // 'query-abc123'
302
+ * ```
303
+ *
304
+ * @example With tracing/observability
305
+ * ```typescript
306
+ * const queryId = createQueryId(`q-${Date.now()}-${Math.random().toString(36).slice(2)}`)
307
+ * logger.info('Executing query', { queryId: unwrap(queryId), sql })
308
+ * const result = await db.query(sql)
309
+ * logger.info('Query completed', { queryId: unwrap(queryId), rows: result.length })
310
+ * ```
311
+ *
312
+ * @see {@link isQueryId} - Type guard for checking without throwing
313
+ */
314
+ export function createQueryId(value) {
315
+ if (!value || value.length === 0) {
316
+ throw new Error('Invalid query ID: cannot be empty');
317
+ }
318
+ if (!QUERY_ID_PATTERN.test(value)) {
319
+ throw new Error(`Invalid query ID: "${value}". Must start with alphanumeric and contain only alphanumeric, underscore, or hyphen`);
320
+ }
321
+ return value;
322
+ }
323
+ /**
324
+ * Creates a validated snapshot ID from a numeric string.
325
+ *
326
+ * Snapshot IDs represent PostgreSQL transaction snapshots as 64-bit signed integers.
327
+ * They are stored as strings to avoid JavaScript's number precision limitations
328
+ * for values larger than Number.MAX_SAFE_INTEGER.
329
+ *
330
+ * @param value - The raw string to validate and brand (must be numeric)
331
+ * @returns A branded SnapshotId
332
+ * @throws Error if empty, non-numeric, or exceeds 64-bit signed integer range
333
+ *
334
+ * @example Basic usage
335
+ * ```typescript
336
+ * const snapshotId = createSnapshotId('1234567890')
337
+ * console.log(unwrap(snapshotId)) // '1234567890'
338
+ * ```
339
+ *
340
+ * @example Large values (beyond JS number precision)
341
+ * ```typescript
342
+ * // Safe: stored as string, no precision loss
343
+ * const largeId = createSnapshotId('9223372036854775807') // Max 64-bit signed int
344
+ * ```
345
+ *
346
+ * @example Negative values
347
+ * ```typescript
348
+ * const negativeId = createSnapshotId('-123') // Valid
349
+ * ```
350
+ *
351
+ * @see {@link isSnapshotId} - Type guard for checking without throwing
352
+ * @see {@link MAX_SNAPSHOT_ID} - Maximum allowed value (2^63 - 1)
353
+ */
354
+ export function createSnapshotId(value) {
355
+ if (!value || value.length === 0) {
356
+ throw new Error('Invalid snapshot ID: cannot be empty');
357
+ }
358
+ if (!SNAPSHOT_ID_PATTERN.test(value)) {
359
+ throw new Error(`Invalid snapshot ID: "${value}". Must be a numeric string (64-bit integer)`);
360
+ }
361
+ const absValue = value.startsWith('-') ? value.slice(1) : value;
362
+ if (absValue.length > MAX_SNAPSHOT_ID.length || (absValue.length === MAX_SNAPSHOT_ID.length && absValue > MAX_SNAPSHOT_ID)) {
363
+ throw new Error(`Invalid snapshot ID: "${value}". Exceeds maximum 64-bit integer value`);
364
+ }
365
+ return value;
366
+ }
367
+ /**
368
+ * Creates a validated block ID from a string.
369
+ *
370
+ * Block IDs identify storage blocks in the tiered storage system. The format
371
+ * is `{TIER}:{key}` where TIER indicates the storage tier (HOT, WARM, or COLD).
372
+ *
373
+ * Storage tiers:
374
+ * - **HOT**: Cloudflare Cache API - fastest access, frequently used data
375
+ * - **WARM**: Durable Object SQLite - medium access, recent data
376
+ * - **COLD**: R2 object storage - archival, rarely accessed data
377
+ *
378
+ * @param value - The raw string to validate (format: `{HOT|WARM|COLD}:{key}`)
379
+ * @returns A branded BlockId
380
+ * @throws Error if the value is empty or has invalid format
381
+ *
382
+ * @example Basic usage
383
+ * ```typescript
384
+ * const blockId = createBlockId('HOT:users/page-42')
385
+ * console.log(unwrap(blockId)) // 'HOT:users/page-42'
386
+ * ```
387
+ *
388
+ * @example Different storage tiers
389
+ * ```typescript
390
+ * const hot = createBlockId('HOT:cache/session-123') // Frequently accessed
391
+ * const warm = createBlockId('WARM:data/users.db') // Medium access
392
+ * const cold = createBlockId('COLD:archive/2024.tar') // Rarely accessed
393
+ * ```
394
+ *
395
+ * @example Path-like keys
396
+ * ```typescript
397
+ * const block = createBlockId('COLD:archive/2024/01/backup.bin')
398
+ * ```
399
+ *
400
+ * @see {@link isBlockId} - Type guard for checking without throwing
401
+ */
402
+ export function createBlockId(value) {
403
+ if (!value || value.length === 0) {
404
+ throw new Error('Invalid block ID: cannot be empty');
405
+ }
406
+ if (!BLOCK_ID_PATTERN.test(value)) {
407
+ throw new Error(`Invalid block ID: "${value}". Must be in format "{HOT|WARM|COLD}:{key}" with alphanumeric key`);
408
+ }
409
+ return value;
410
+ }
411
+ /**
412
+ * Creates a validated shard ID from a string.
413
+ *
414
+ * Shard IDs identify data partitions in horizontally sharded deployments.
415
+ * Commonly used for geographic or logical data partitioning strategies.
416
+ *
417
+ * @param value - The raw string to validate and brand
418
+ * @returns A branded ShardId
419
+ * @throws Error if empty, exceeds max length (64), or has invalid format
420
+ *
421
+ * @example Basic usage
422
+ * ```typescript
423
+ * const shardId = createShardId('shard-us-west-1')
424
+ * console.log(unwrap(shardId)) // 'shard-us-west-1'
425
+ * ```
426
+ *
427
+ * @example Geographic sharding
428
+ * ```typescript
429
+ * const shards = [
430
+ * createShardId('shard-us-west'),
431
+ * createShardId('shard-us-east'),
432
+ * createShardId('shard-eu-central'),
433
+ * createShardId('shard-ap-south'),
434
+ * ]
435
+ * ```
436
+ *
437
+ * @example Hash-based sharding
438
+ * ```typescript
439
+ * function getShardForUser(userId: string): ShardId {
440
+ * const hash = hashCode(userId) % 4
441
+ * return createShardId(`shard-${hash}`)
442
+ * }
443
+ * ```
444
+ *
445
+ * @see {@link isShardId} - Type guard for checking without throwing
446
+ * @see {@link SHARD_ID_MAX_LENGTH} - Maximum allowed length (64)
447
+ */
448
+ export function createShardId(value) {
449
+ if (!value || value.length === 0) {
450
+ throw new Error('Invalid shard ID: cannot be empty');
451
+ }
452
+ if (value.length > SHARD_ID_MAX_LENGTH) {
453
+ throw new Error(`Invalid shard ID: exceeds maximum length of ${SHARD_ID_MAX_LENGTH}`);
454
+ }
455
+ if (!SHARD_ID_PATTERN.test(value)) {
456
+ throw new Error(`Invalid shard ID: "${value}". Must start with alphanumeric and contain only alphanumeric, underscore, or hyphen`);
457
+ }
458
+ return value;
459
+ }
460
+ /**
461
+ * Creates a validated ingest ID from a string.
462
+ *
463
+ * Ingest IDs identify data loading operations such as bulk imports, streaming
464
+ * data pipelines, or ETL jobs. Useful for tracking and resuming long-running operations.
465
+ *
466
+ * @param value - The raw string to validate and brand
467
+ * @returns A branded IngestId
468
+ * @throws Error if empty, exceeds max length (64), or has invalid format
469
+ *
470
+ * @example Basic usage
471
+ * ```typescript
472
+ * const ingestId = createIngestId('bulk-import-2024-01')
473
+ * console.log(unwrap(ingestId)) // 'bulk-import-2024-01'
474
+ * ```
475
+ *
476
+ * @example Timestamped ingest job
477
+ * ```typescript
478
+ * const ingestId = createIngestId(`csv-import-${Date.now()}`)
479
+ * await startIngestJob(ingestId, 'data.csv')
480
+ * // Later: check status or resume
481
+ * const status = await getIngestStatus(ingestId)
482
+ * ```
483
+ *
484
+ * @see {@link isIngestId} - Type guard for checking without throwing
485
+ * @see {@link INGEST_ID_MAX_LENGTH} - Maximum allowed length (64)
486
+ */
487
+ export function createIngestId(value) {
488
+ if (!value || value.length === 0) {
489
+ throw new Error('Invalid ingest ID: cannot be empty');
490
+ }
491
+ if (value.length > INGEST_ID_MAX_LENGTH) {
492
+ throw new Error(`Invalid ingest ID: exceeds maximum length of ${INGEST_ID_MAX_LENGTH}`);
493
+ }
494
+ if (!INGEST_ID_PATTERN.test(value)) {
495
+ throw new Error(`Invalid ingest ID: "${value}". Must start with alphanumeric and contain only alphanumeric, underscore, or hyphen`);
496
+ }
497
+ return value;
498
+ }
499
+ /**
500
+ * Creates a validated replica ID from a string.
501
+ *
502
+ * Replica IDs identify database read replicas in replicated deployments.
503
+ * Used for routing read queries and tracking replication lag.
504
+ *
505
+ * @param value - The raw string to validate and brand
506
+ * @returns A branded ReplicaId
507
+ * @throws Error if empty, exceeds max length (64), or has invalid format
508
+ *
509
+ * @example Basic usage
510
+ * ```typescript
511
+ * const replicaId = createReplicaId('replica-eu-1')
512
+ * console.log(unwrap(replicaId)) // 'replica-eu-1'
513
+ * ```
514
+ *
515
+ * @example Regional replicas
516
+ * ```typescript
517
+ * const primary = createReplicaId('primary')
518
+ * const replicas = [
519
+ * createReplicaId('replica-us-east'),
520
+ * createReplicaId('replica-eu-west'),
521
+ * createReplicaId('replica-ap-south'),
522
+ * ]
523
+ * ```
524
+ *
525
+ * @example Read routing
526
+ * ```typescript
527
+ * function selectReplica(region: string): ReplicaId {
528
+ * const mapping: Record<string, ReplicaId> = {
529
+ * 'us': createReplicaId('replica-us-east'),
530
+ * 'eu': createReplicaId('replica-eu-west'),
531
+ * }
532
+ * return mapping[region] ?? createReplicaId('primary')
533
+ * }
534
+ * ```
535
+ *
536
+ * @see {@link isReplicaId} - Type guard for checking without throwing
537
+ * @see {@link REPLICA_ID_MAX_LENGTH} - Maximum allowed length (64)
538
+ */
539
+ export function createReplicaId(value) {
540
+ if (!value || value.length === 0) {
541
+ throw new Error('Invalid replica ID: cannot be empty');
542
+ }
543
+ if (value.length > REPLICA_ID_MAX_LENGTH) {
544
+ throw new Error(`Invalid replica ID: exceeds maximum length of ${REPLICA_ID_MAX_LENGTH}`);
545
+ }
546
+ if (!REPLICA_ID_PATTERN.test(value)) {
547
+ throw new Error(`Invalid replica ID: "${value}". Must start with alphanumeric and contain only alphanumeric, underscore, or hyphen`);
548
+ }
549
+ return value;
550
+ }
551
+ /**
552
+ * Creates a validated batch ID from a string.
553
+ *
554
+ * Batch IDs identify groups of operations processed together. Useful for
555
+ * transactional batches, bulk operations, and audit trails.
556
+ *
557
+ * @param value - The raw string to validate and brand
558
+ * @returns A branded BatchId
559
+ * @throws Error if empty, exceeds max length (128), or has invalid format
560
+ *
561
+ * @example Basic usage
562
+ * ```typescript
563
+ * const batchId = createBatchId('batch-2024-01-21-abc123')
564
+ * console.log(unwrap(batchId)) // 'batch-2024-01-21-abc123'
565
+ * ```
566
+ *
567
+ * @example Daily batch jobs
568
+ * ```typescript
569
+ * const date = new Date().toISOString().slice(0, 10) // '2024-01-21'
570
+ * const batchId = createBatchId(`nightly-sync-${date}`)
571
+ * await runBatchJob(batchId)
572
+ * ```
573
+ *
574
+ * @example Transactional batch
575
+ * ```typescript
576
+ * async function processBatch(operations: Operation[]) {
577
+ * const batchId = createBatchId(`tx-${Date.now()}`)
578
+ * try {
579
+ * for (const op of operations) {
580
+ * await execute(op, batchId)
581
+ * }
582
+ * await commit(batchId)
583
+ * } catch (error) {
584
+ * await rollback(batchId)
585
+ * throw error
586
+ * }
587
+ * }
588
+ * ```
589
+ *
590
+ * @see {@link isBatchId} - Type guard for checking without throwing
591
+ * @see {@link BATCH_ID_MAX_LENGTH} - Maximum allowed length (128)
592
+ */
593
+ export function createBatchId(value) {
594
+ if (!value || value.length === 0) {
595
+ throw new Error('Invalid batch ID: cannot be empty');
596
+ }
597
+ if (value.length > BATCH_ID_MAX_LENGTH) {
598
+ throw new Error(`Invalid batch ID: exceeds maximum length of ${BATCH_ID_MAX_LENGTH}`);
599
+ }
600
+ if (!BATCH_ID_PATTERN.test(value)) {
601
+ throw new Error(`Invalid batch ID: "${value}". Must start with alphanumeric and contain only alphanumeric, underscore, or hyphen`);
602
+ }
603
+ return value;
604
+ }
605
+ // =============================================================================
606
+ // Type Guards
607
+ // =============================================================================
608
+ /**
609
+ * Type guard that checks if a value is a valid TenantId.
610
+ *
611
+ * Use this function to safely narrow an unknown value to TenantId without
612
+ * throwing an exception. Returns false for invalid values instead of throwing.
613
+ *
614
+ * @param value - The value to check (any type)
615
+ * @returns true if value is a valid TenantId, false otherwise
616
+ *
617
+ * @example Basic validation
618
+ * ```typescript
619
+ * if (isTenantId(input)) {
620
+ * // TypeScript knows input is TenantId here
621
+ * await loadTenant(input)
622
+ * }
623
+ * ```
624
+ *
625
+ * @example Filtering array of unknown values
626
+ * ```typescript
627
+ * const inputs: unknown[] = ['valid-tenant', '', 123, '-invalid']
628
+ * const validTenants = inputs.filter(isTenantId)
629
+ * // validTenants: TenantId[] = ['valid-tenant' as TenantId]
630
+ * ```
631
+ *
632
+ * @example Optional value handling
633
+ * ```typescript
634
+ * function getTenant(id: string | undefined): TenantId | undefined {
635
+ * return id && isTenantId(id) ? id : undefined
636
+ * }
637
+ * ```
638
+ *
639
+ * @see {@link createTenantId} - Factory that throws on invalid input
640
+ */
641
+ export function isTenantId(value) {
642
+ return typeof value === 'string' && value.length > 0 && value.length <= TENANT_ID_MAX_LENGTH && TENANT_ID_PATTERN.test(value);
643
+ }
644
+ /**
645
+ * Type guard that checks if a value is a valid PageNumber.
646
+ *
647
+ * Validates that the value is a non-negative integer within the allowed range.
648
+ *
649
+ * @param value - The value to check (any type)
650
+ * @returns true if value is a valid PageNumber, false otherwise
651
+ *
652
+ * @example Basic validation
653
+ * ```typescript
654
+ * if (isPageNumber(pageIndex)) {
655
+ * await loadPage(pageIndex)
656
+ * }
657
+ * ```
658
+ *
659
+ * @see {@link createPageNumber} - Factory that throws on invalid input
660
+ * @see {@link MAX_PAGE_NUMBER} - Maximum allowed value
661
+ */
662
+ export function isPageNumber(value) {
663
+ return typeof value === 'number' && Number.isInteger(value) && value >= 0 && value <= MAX_PAGE_NUMBER;
664
+ }
665
+ /**
666
+ * Type guard that checks if a value is a valid MigrationVersion.
667
+ *
668
+ * Validates that the value is a positive integer (>= 1).
669
+ *
670
+ * @param value - The value to check (any type)
671
+ * @returns true if value is a valid MigrationVersion, false otherwise
672
+ *
673
+ * @example Schema version check
674
+ * ```typescript
675
+ * if (isMigrationVersion(schemaVersion)) {
676
+ * await runMigration(schemaVersion)
677
+ * }
678
+ * ```
679
+ *
680
+ * @see {@link createMigrationVersion} - Factory that throws on invalid input
681
+ */
682
+ export function isMigrationVersion(value) {
683
+ return typeof value === 'number' && Number.isInteger(value) && value >= 1;
684
+ }
685
+ /**
686
+ * Type guard that checks if a value is a valid QueryId.
687
+ *
688
+ * @param value - The value to check (any type)
689
+ * @returns true if value is a valid QueryId, false otherwise
690
+ *
691
+ * @see {@link createQueryId} - Factory that throws on invalid input
692
+ */
693
+ export function isQueryId(value) {
694
+ return typeof value === 'string' && value.length > 0 && QUERY_ID_PATTERN.test(value);
695
+ }
696
+ /**
697
+ * Type guard that checks if a value is a valid SnapshotId.
698
+ *
699
+ * @param value - The value to check
700
+ * @returns true if value is a valid SnapshotId
701
+ */
702
+ export function isSnapshotId(value) {
703
+ if (typeof value !== 'string' || value.length === 0 || !SNAPSHOT_ID_PATTERN.test(value))
704
+ return false;
705
+ const absValue = value.startsWith('-') ? value.slice(1) : value;
706
+ return absValue.length < MAX_SNAPSHOT_ID.length || (absValue.length === MAX_SNAPSHOT_ID.length && absValue <= MAX_SNAPSHOT_ID);
707
+ }
708
+ /**
709
+ * Type guard that checks if a value is a valid BlockId.
710
+ *
711
+ * @param value - The value to check
712
+ * @returns true if value is a valid BlockId
713
+ */
714
+ export function isBlockId(value) {
715
+ return typeof value === 'string' && value.length > 0 && BLOCK_ID_PATTERN.test(value);
716
+ }
717
+ /**
718
+ * Type guard that checks if a value is a valid ShardId.
719
+ *
720
+ * @param value - The value to check
721
+ * @returns true if value is a valid ShardId
722
+ */
723
+ export function isShardId(value) {
724
+ return typeof value === 'string' && value.length > 0 && value.length <= SHARD_ID_MAX_LENGTH && SHARD_ID_PATTERN.test(value);
725
+ }
726
+ /**
727
+ * Type guard that checks if a value is a valid IngestId.
728
+ *
729
+ * @param value - The value to check
730
+ * @returns true if value is a valid IngestId
731
+ */
732
+ export function isIngestId(value) {
733
+ return typeof value === 'string' && value.length > 0 && value.length <= INGEST_ID_MAX_LENGTH && INGEST_ID_PATTERN.test(value);
734
+ }
735
+ /**
736
+ * Type guard that checks if a value is a valid ReplicaId.
737
+ *
738
+ * @param value - The value to check
739
+ * @returns true if value is a valid ReplicaId
740
+ */
741
+ export function isReplicaId(value) {
742
+ return typeof value === 'string' && value.length > 0 && value.length <= REPLICA_ID_MAX_LENGTH && REPLICA_ID_PATTERN.test(value);
743
+ }
744
+ /**
745
+ * Type guard that checks if a value is a valid BatchId.
746
+ *
747
+ * @param value - The value to check
748
+ * @returns true if value is a valid BatchId
749
+ */
750
+ export function isBatchId(value) {
751
+ return typeof value === 'string' && value.length > 0 && value.length <= BATCH_ID_MAX_LENGTH && BATCH_ID_PATTERN.test(value);
752
+ }
753
+ // =============================================================================
754
+ // Utility Functions
755
+ // =============================================================================
756
+ /**
757
+ * Extracts the underlying primitive value from a branded type.
758
+ *
759
+ * Use this when you need to pass a branded value to an API that expects
760
+ * the raw primitive type (e.g., JSON serialization, external APIs).
761
+ *
762
+ * @typeParam T - The underlying primitive type
763
+ * @typeParam Brand - The brand string
764
+ * @param value - The branded value to unwrap
765
+ * @returns The underlying primitive value
766
+ *
767
+ * @example
768
+ * ```typescript
769
+ * const tenantId = createTenantId('acme-corp')
770
+ * const raw: string = unwrap(tenantId) // 'acme-corp'
771
+ * ```
772
+ */
773
+ export function unwrap(value) {
774
+ return value;
775
+ }
776
+ // =============================================================================
777
+ // Unsafe Factory Functions
778
+ // =============================================================================
779
+ /**
780
+ * Creates a TenantId without validation.
781
+ *
782
+ * **WARNING**: Only use this when you are certain the value is valid.
783
+ *
784
+ * @param value - Pre-validated tenant ID string
785
+ * @returns A branded TenantId
786
+ *
787
+ * @see {@link createTenantId} - Safe factory with validation
788
+ */
789
+ export function unsafeTenantId(value) {
790
+ return value;
791
+ }
792
+ /**
793
+ * Creates a PageNumber without validation.
794
+ *
795
+ * **WARNING**: Only use this when you are certain the value is valid.
796
+ *
797
+ * @param value - Pre-validated page number
798
+ * @returns A branded PageNumber
799
+ */
800
+ export function unsafePageNumber(value) {
801
+ return value;
802
+ }
803
+ /**
804
+ * Creates a MigrationVersion without validation.
805
+ *
806
+ * **WARNING**: Only use this when you are certain the value is valid.
807
+ *
808
+ * @param value - Pre-validated migration version
809
+ * @returns A branded MigrationVersion
810
+ */
811
+ export function unsafeMigrationVersion(value) {
812
+ return value;
813
+ }
814
+ /**
815
+ * Creates a QueryId without validation.
816
+ *
817
+ * **WARNING**: Only use this when you are certain the value is valid.
818
+ *
819
+ * @param value - Pre-validated query ID string
820
+ * @returns A branded QueryId
821
+ */
822
+ export function unsafeQueryId(value) {
823
+ return value;
824
+ }
825
+ /**
826
+ * Creates a SnapshotId without validation.
827
+ *
828
+ * **WARNING**: Only use this when you are certain the value is valid.
829
+ *
830
+ * @param value - Pre-validated snapshot ID string
831
+ * @returns A branded SnapshotId
832
+ */
833
+ export function unsafeSnapshotId(value) {
834
+ return value;
835
+ }
836
+ /**
837
+ * Creates a BlockId without validation.
838
+ *
839
+ * **WARNING**: Only use this when you are certain the value is valid.
840
+ *
841
+ * @param value - Pre-validated block ID string
842
+ * @returns A branded BlockId
843
+ */
844
+ export function unsafeBlockId(value) {
845
+ return value;
846
+ }
847
+ /**
848
+ * Creates a ShardId without validation.
849
+ *
850
+ * **WARNING**: Only use this when you are certain the value is valid.
851
+ *
852
+ * @param value - Pre-validated shard ID string
853
+ * @returns A branded ShardId
854
+ */
855
+ export function unsafeShardId(value) {
856
+ return value;
857
+ }
858
+ /**
859
+ * Creates an IngestId without validation.
860
+ *
861
+ * **WARNING**: Only use this when you are certain the value is valid.
862
+ *
863
+ * @param value - Pre-validated ingest ID string
864
+ * @returns A branded IngestId
865
+ */
866
+ export function unsafeIngestId(value) {
867
+ return value;
868
+ }
869
+ /**
870
+ * Creates a ReplicaId without validation.
871
+ *
872
+ * **WARNING**: Only use this when you are certain the value is valid.
873
+ *
874
+ * @param value - Pre-validated replica ID string
875
+ * @returns A branded ReplicaId
876
+ */
877
+ export function unsafeReplicaId(value) {
878
+ return value;
879
+ }
880
+ /**
881
+ * Creates a BatchId without validation.
882
+ *
883
+ * **WARNING**: Only use this when you are certain the value is valid.
884
+ *
885
+ * @param value - Pre-validated batch ID string
886
+ * @returns A branded BatchId
887
+ */
888
+ export function unsafeBatchId(value) {
889
+ return value;
890
+ }
891
+ //# sourceMappingURL=branded.js.map