@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,951 @@
1
+ /**
2
+ * TieredStorageOrchestrator - Unified Tiering System
3
+ *
4
+ * Orchestrates the complete tiered storage system with:
5
+ * - HOT tier: Cloudflare Cache API (FREE, sync-fast)
6
+ * - WARM tier: Durable Object SQLite blobs (persistent, sync)
7
+ * - COLD tier: R2 object storage (cheap, async)
8
+ *
9
+ * ## Features
10
+ * - Unified read/write interface across all tiers
11
+ * - Automatic promotion based on access patterns
12
+ * - Automatic demotion based on TTL/LRU policies
13
+ * - Cost-optimized tier selection
14
+ * - Comprehensive statistics and monitoring
15
+ * - Storage index for fast tier location lookups
16
+ * - DO lifecycle hooks (hibernate/wake)
17
+ * - Circuit breaker pattern for tier failures
18
+ * - Integrated metrics aggregation
19
+ * - Bounded storage index with LRU/LFU eviction
20
+ * - Detailed performance metrics and memory tracking
21
+ *
22
+ * ## Performance Characteristics
23
+ *
24
+ * ### Storage Index Operations
25
+ *
26
+ * | Operation | Time Complexity | Typical Latency |
27
+ * |---------------|-----------------|-----------------|
28
+ * | Lookup (get) | O(1) average | 50-100ns |
29
+ * | Update (set) | O(1) amortized | 100-200ns |
30
+ * | Delete | O(1) | 50-100ns |
31
+ * | Eviction | O(n*k) | 1-10ms/batch |
32
+ * | Maintenance | O(n * storage) | 100ms-10s |
33
+ *
34
+ * Where:
35
+ * - n = total index entries
36
+ * - k = eviction batch size (typically 10-20)
37
+ *
38
+ * ### Memory Usage
39
+ *
40
+ * The storage index uses approximately:
41
+ * - 120 bytes per entry (base overhead)
42
+ * - 2 bytes per character in key (JS UTF-16 strings)
43
+ * - ~10% additional for Map internal structures
44
+ *
45
+ * **Example Memory Usage:**
46
+ * | Entries | Avg Key Length | Estimated Memory |
47
+ * |---------|----------------|------------------|
48
+ * | 1,000 | 20 chars | ~160 KB |
49
+ * | 10,000 | 20 chars | ~1.6 MB |
50
+ * | 100,000 | 20 chars | ~16 MB |
51
+ * | 10,000 | 100 chars | ~3.2 MB |
52
+ *
53
+ * ### Eviction Policies
54
+ *
55
+ * - **LRU (default)**: Evicts least recently accessed entries first.
56
+ * Best for: Most workloads with temporal locality.
57
+ *
58
+ * - **LFU**: Evicts least frequently accessed entries first.
59
+ * Best for: Workloads with stable hot sets.
60
+ *
61
+ * - **FIFO**: Evicts oldest entries by creation time.
62
+ * Best for: Predictable eviction patterns, debugging.
63
+ *
64
+ * ### Hot Path Optimizations
65
+ *
66
+ * 1. **Single-entry lookup cache**: Avoids redundant Map lookups when
67
+ * the same key is accessed multiple times in quick succession
68
+ * (e.g., read -> check promotion -> update index).
69
+ *
70
+ * 2. **Partial selection for eviction**: Uses O(n*k) partial selection
71
+ * instead of O(n log n) full sort when evicting k entries from n.
72
+ *
73
+ * 3. **Batch eviction**: Amortizes eviction overhead across multiple
74
+ * entries (configurable via indexEvictionBatchSize).
75
+ *
76
+ * ### Configuration Guidelines
77
+ *
78
+ * For Cloudflare Workers (128MB limit):
79
+ * ```typescript
80
+ * const orchestrator = createTieredStorageOrchestrator({
81
+ * // ... other config
82
+ * maxIndexEntries: 50000, // ~8MB for 20-char keys
83
+ * maxIndexMemoryBytes: 8 * 1024 * 1024, // 8MB hard limit
84
+ * indexEvictionPolicy: 'lru',
85
+ * indexEvictionBatchSize: 100, // Evict 100 at a time
86
+ * indexMemoryWarningThreshold: 0.8, // Warn at 80%
87
+ * })
88
+ * ```
89
+ *
90
+ * @module storage/tiered-orchestrator
91
+ */
92
+ import type { CacheLayer, CacheLayerStats } from './cache-layer';
93
+ import type { R2StorageLayer, R2StorageLayerStats } from './r2-layer';
94
+ import type { SWRCacheLayer, SWRCacheStats, ExecutionContext } from './swr-cache';
95
+ /**
96
+ * Storage tier identifiers
97
+ * - hot: Cloudflare Cache API (FREE, fastest, ephemeral)
98
+ * - warm: Durable Object Storage (fast, persistent, limited)
99
+ * - cold: R2 (durable, unlimited, slower)
100
+ */
101
+ export type StorageTier = 'hot' | 'warm' | 'cold';
102
+ /**
103
+ * Tier health status
104
+ */
105
+ export type TierHealth = 'healthy' | 'degraded' | 'unavailable';
106
+ /**
107
+ * Circuit breaker state
108
+ */
109
+ export type CircuitBreakerState = 'closed' | 'open' | 'half-open';
110
+ /**
111
+ * Circuit breaker configuration
112
+ */
113
+ export interface CircuitBreakerConfig {
114
+ enabled: boolean;
115
+ failureThreshold: number;
116
+ resetTimeoutMs?: number;
117
+ fallbackEnabled?: boolean;
118
+ }
119
+ /**
120
+ * Circuit breaker state info
121
+ */
122
+ export interface CircuitBreakerStateInfo {
123
+ state: CircuitBreakerState;
124
+ failures: number;
125
+ lastFailure?: number;
126
+ lastSuccess?: number;
127
+ openedAt?: number;
128
+ }
129
+ /**
130
+ * Entry in the storage index tracking data locations
131
+ */
132
+ export interface StorageIndexEntry {
133
+ key: string;
134
+ tier: StorageTier;
135
+ size: number;
136
+ lastAccess: number;
137
+ accessCount: number;
138
+ created: number;
139
+ modified: number;
140
+ dirty: boolean;
141
+ }
142
+ /**
143
+ * Hibernate state for DO lifecycle
144
+ */
145
+ export interface HibernateState {
146
+ hotKeys: string[];
147
+ indexSnapshot: Map<string, StorageIndexEntry>;
148
+ timestamp: number;
149
+ }
150
+ /**
151
+ * Result of hibernate operation
152
+ */
153
+ export interface HibernateResult {
154
+ success: boolean;
155
+ persistedCount: number;
156
+ syncedToCold: number;
157
+ hotKeys: string[];
158
+ indexSnapshot: Map<string, StorageIndexEntry>;
159
+ timestamp: number;
160
+ }
161
+ /**
162
+ * Options for wake operation
163
+ */
164
+ export interface WakeOptions {
165
+ prefetchThreshold?: number;
166
+ validateIndex?: boolean;
167
+ }
168
+ /**
169
+ * Result of wake operation
170
+ */
171
+ export interface WakeResult {
172
+ restoredCount: number;
173
+ prefetchedCount: number;
174
+ indexValidated: boolean;
175
+ indexRepairs: number;
176
+ }
177
+ /**
178
+ * Alarm task type
179
+ */
180
+ export type AlarmType = 'demotion' | 'sync';
181
+ /**
182
+ * Alarm configuration
183
+ */
184
+ export interface AlarmConfig {
185
+ type: AlarmType;
186
+ delayMs: number;
187
+ skipIfExists?: boolean;
188
+ rescheduleMs?: number;
189
+ }
190
+ /**
191
+ * Result of alarm handling
192
+ */
193
+ export interface AlarmResult {
194
+ demotionCount?: number;
195
+ syncedCount?: number;
196
+ nextAlarmMs?: number;
197
+ }
198
+ /**
199
+ * Aggregated metrics from all components
200
+ */
201
+ export interface AggregatedMetrics {
202
+ timestamp: number;
203
+ period: string;
204
+ tiers: {
205
+ hot: {
206
+ reads: number;
207
+ writes: number;
208
+ hitRatio: number;
209
+ bytesRead: number;
210
+ bytesWritten: number;
211
+ };
212
+ warm: {
213
+ reads: number;
214
+ writes: number;
215
+ bytesStored: number;
216
+ bytesRead: number;
217
+ bytesWritten: number;
218
+ };
219
+ cold: {
220
+ reads: number;
221
+ writes: number;
222
+ bytesStored: number;
223
+ bytesRead: number;
224
+ bytesWritten: number;
225
+ };
226
+ };
227
+ migrations: {
228
+ promotions: number;
229
+ demotions: number;
230
+ failures: number;
231
+ };
232
+ circuitBreakers: Record<StorageTier, CircuitBreakerStateInfo>;
233
+ latency?: {
234
+ p50: number;
235
+ p95: number;
236
+ p99: number;
237
+ };
238
+ estimatedCost?: {
239
+ r2: number;
240
+ do: number;
241
+ cache: number;
242
+ total: number;
243
+ };
244
+ errors: {
245
+ totalErrors: number;
246
+ byTier: Record<StorageTier, number>;
247
+ };
248
+ }
249
+ /**
250
+ * Auto-promoter configuration
251
+ */
252
+ export interface AutoPromoterConfig {
253
+ coldToWarm: {
254
+ accessThreshold: number;
255
+ timeWindowMs?: number;
256
+ };
257
+ warmToHot: {
258
+ accessThreshold: number;
259
+ timeWindowMs?: number;
260
+ };
261
+ }
262
+ /**
263
+ * Auto-demoter configuration
264
+ */
265
+ export interface AutoDemoterConfig {
266
+ hotToWarm: {
267
+ ttlMs: number;
268
+ maxEntries?: number;
269
+ };
270
+ warmToCold: {
271
+ ttlMs: number;
272
+ maxEntries?: number;
273
+ };
274
+ }
275
+ /**
276
+ * VFS interface for PGLite integration
277
+ */
278
+ export interface VFSInterface {
279
+ readPage: (pageId: string) => Promise<Uint8Array | null>;
280
+ writePage: (pageId: string, data: Uint8Array) => Promise<void>;
281
+ deletePage: (pageId: string) => Promise<void>;
282
+ }
283
+ /**
284
+ * Metrics configuration
285
+ */
286
+ export interface MetricsConfig {
287
+ trackLatency?: boolean;
288
+ trackCost?: boolean;
289
+ costConfig?: {
290
+ r2StoragePerGBMonth: number;
291
+ r2ClassAOperations: number;
292
+ r2ClassBOperations: number;
293
+ doStoragePerGBMonth: number;
294
+ cacheOperations: number;
295
+ };
296
+ }
297
+ /**
298
+ * Observable error with context
299
+ */
300
+ export interface ObservableError {
301
+ context: string;
302
+ error: Error;
303
+ tier?: StorageTier;
304
+ key?: string;
305
+ timestamp: number;
306
+ retryCount?: number;
307
+ correlationId?: string;
308
+ }
309
+ /**
310
+ * Error observer callback type
311
+ */
312
+ export type ErrorObserver = (error: ObservableError) => void;
313
+ /**
314
+ * Circuit breaker change event
315
+ */
316
+ export interface CircuitBreakerChangeEvent {
317
+ tier: StorageTier;
318
+ state: CircuitBreakerState;
319
+ failures: number;
320
+ error?: Error | undefined;
321
+ }
322
+ /**
323
+ * Circuit breaker change observer callback type
324
+ */
325
+ export type CircuitBreakerChangeObserver = (event: CircuitBreakerChangeEvent) => void;
326
+ /**
327
+ * Logger interface for debug logging
328
+ */
329
+ export interface Logger {
330
+ debug: (msg: string) => void;
331
+ info: (msg: string) => void;
332
+ warn: (msg: string) => void;
333
+ error: (msg: string) => void;
334
+ }
335
+ /**
336
+ * Demotion strategy function
337
+ */
338
+ export type DemotionStrategy = (entries: StorageIndexEntry[], count: number) => string[];
339
+ /**
340
+ * Index eviction policy
341
+ */
342
+ export type IndexEvictionPolicy = 'lru' | 'lfu' | 'fifo';
343
+ /**
344
+ * Callback for index eviction events
345
+ */
346
+ export type IndexEvictionCallback = (evictedKeys: string[]) => void;
347
+ /**
348
+ * Configuration for the TieredStorageOrchestrator
349
+ */
350
+ export interface TieredOrchestratorConfig {
351
+ cacheLayer?: CacheLayer;
352
+ swrCacheLayer?: SWRCacheLayer;
353
+ doStorage: DurableObjectStorage;
354
+ r2Layer: R2StorageLayer;
355
+ pageSize?: number;
356
+ coldToWarmThreshold?: number;
357
+ warmToHotThreshold?: number;
358
+ promotionWindowMs?: number;
359
+ hotTtlMs?: number;
360
+ warmTtlMs?: number;
361
+ maxHotPages?: number;
362
+ autoPromote?: boolean;
363
+ autoDemote?: boolean;
364
+ writeThrough?: boolean;
365
+ doPrefix?: string;
366
+ circuitBreaker?: CircuitBreakerConfig;
367
+ metrics?: MetricsConfig;
368
+ logger?: Logger;
369
+ maxIndexEntries?: number;
370
+ maxIndexMemoryBytes?: number;
371
+ indexEvictionPolicy?: IndexEvictionPolicy;
372
+ indexEvictionBatchSize?: number;
373
+ indexMemoryWarningThreshold?: number;
374
+ indexMaintenanceIntervalMs?: number;
375
+ onIndexEviction?: IndexEvictionCallback;
376
+ }
377
+ /**
378
+ * Options for read operations
379
+ */
380
+ export interface ReadOptions {
381
+ skipPromotion?: boolean;
382
+ skipTracking?: boolean;
383
+ ctx?: ExecutionContext;
384
+ }
385
+ /**
386
+ * Options for write operations
387
+ */
388
+ export interface WriteOptions {
389
+ tier?: StorageTier;
390
+ metadata?: Record<string, string>;
391
+ writeThrough?: boolean;
392
+ skipIndex?: boolean;
393
+ }
394
+ /**
395
+ * Result of a read operation with tier information
396
+ */
397
+ export interface ReadResult {
398
+ data: Uint8Array | null;
399
+ tier?: StorageTier | undefined;
400
+ stale?: boolean | undefined;
401
+ revalidating?: boolean | undefined;
402
+ fallback?: boolean | undefined;
403
+ }
404
+ /**
405
+ * Promotion/demotion event
406
+ */
407
+ export interface TierMigrationEvent {
408
+ key: string;
409
+ fromTier: StorageTier;
410
+ toTier: StorageTier;
411
+ success: boolean;
412
+ timestamp: number;
413
+ error?: string;
414
+ reason: 'access_pattern' | 'ttl_expired' | 'lru_eviction' | 'manual' | 'write_through';
415
+ }
416
+ export type TierMigrationCallback = (event: TierMigrationEvent) => void;
417
+ /**
418
+ * Performance metrics for index operations
419
+ *
420
+ * Tracks timing and operation counts for performance analysis:
421
+ * - lookupCount: Total number of index lookups (get operations)
422
+ * - updateCount: Total number of index updates (set/modify operations)
423
+ * - evictionCount: Total number of entries evicted
424
+ * - avgLookupTimeNs: Average lookup time in nanoseconds
425
+ * - avgUpdateTimeNs: Average update time in nanoseconds
426
+ * - evictionTimeNs: Total time spent on eviction in nanoseconds
427
+ * - maintenanceTimeNs: Total time spent on maintenance in nanoseconds
428
+ * - peakEntries: Peak number of entries observed
429
+ * - peakMemoryBytes: Peak memory usage observed
430
+ */
431
+ export interface IndexPerformanceMetrics {
432
+ lookupCount: number;
433
+ updateCount: number;
434
+ evictionCount: number;
435
+ totalLookupTimeNs: number;
436
+ totalUpdateTimeNs: number;
437
+ totalEvictionTimeNs: number;
438
+ totalMaintenanceTimeNs: number;
439
+ avgLookupTimeNs: number;
440
+ avgUpdateTimeNs: number;
441
+ peakEntries: number;
442
+ peakMemoryBytes: number;
443
+ evictionBatches: number;
444
+ entriesPerEvictionBatch: number;
445
+ cacheHitCount: number;
446
+ cacheMissCount: number;
447
+ }
448
+ /**
449
+ * Statistics for the orchestrator
450
+ */
451
+ export interface OrchestratorStats {
452
+ index: {
453
+ totalEntries: number;
454
+ byTier: Record<StorageTier, number>;
455
+ totalSize: number;
456
+ dirtyEntries: number;
457
+ memoryBytes: number;
458
+ /** Performance metrics for index operations */
459
+ performance: IndexPerformanceMetrics;
460
+ };
461
+ hot: CacheLayerStats | SWRCacheStats;
462
+ warm: {
463
+ reads: number;
464
+ writes: number;
465
+ deletes: number;
466
+ bytesRead: number;
467
+ bytesWritten: number;
468
+ };
469
+ cold: R2StorageLayerStats;
470
+ promotions: {
471
+ coldToWarm: number;
472
+ warmToHot: number;
473
+ failed: number;
474
+ };
475
+ demotions: {
476
+ hotToWarm: number;
477
+ warmToCold: number;
478
+ failed: number;
479
+ };
480
+ health: Record<StorageTier, TierHealth>;
481
+ errors: Record<StorageTier, number>;
482
+ }
483
+ interface InternalConfig {
484
+ pageSize: number;
485
+ coldToWarmThreshold: number;
486
+ warmToHotThreshold: number;
487
+ promotionWindowMs: number;
488
+ hotTtlMs: number;
489
+ warmTtlMs: number;
490
+ maxHotPages: number;
491
+ autoPromote: boolean;
492
+ autoDemote: boolean;
493
+ writeThrough: boolean;
494
+ doPrefix: string;
495
+ circuitBreaker?: CircuitBreakerConfig | undefined;
496
+ metrics?: MetricsConfig | undefined;
497
+ logger?: Logger | undefined;
498
+ maxIndexEntries?: number | undefined;
499
+ maxIndexMemoryBytes?: number | undefined;
500
+ indexEvictionPolicy: IndexEvictionPolicy;
501
+ indexEvictionBatchSize: number;
502
+ indexMemoryWarningThreshold: number;
503
+ indexMaintenanceIntervalMs?: number | undefined;
504
+ onIndexEviction?: IndexEvictionCallback | undefined;
505
+ }
506
+ /**
507
+ * TieredStorageOrchestrator - Unified Tiering System
508
+ *
509
+ * ## Performance Characteristics
510
+ *
511
+ * ### Index Operations
512
+ * - **Lookup (get)**: O(1) average via Map, ~50-100ns typical
513
+ * - **Update (set/modify)**: O(1) average for existing keys, O(1) amortized for new keys
514
+ * - **Eviction**: O(n*k) where n=index size, k=batch size; optimized for k << n
515
+ *
516
+ * ### Memory Usage
517
+ * - **Per-entry overhead**: ~120 bytes base + 2 bytes per character in key
518
+ * - **Example**: 10,000 entries with 20-char keys = ~1.6MB
519
+ * - **Warning threshold**: Configurable, default 80% of maxIndexMemoryBytes
520
+ *
521
+ * ### Eviction Policies
522
+ * - **LRU (default)**: Evicts least recently accessed entries
523
+ * - **LFU**: Evicts least frequently accessed entries
524
+ * - **FIFO**: Evicts oldest entries by creation time
525
+ *
526
+ * ### Hot Path Optimizations
527
+ * - Index entry caching for repeated lookups within promotion checks
528
+ * - Batch eviction to amortize overhead across multiple entries
529
+ * - Partial selection algorithm for eviction (avoids full sort when k << n)
530
+ *
531
+ * @class TieredStorageOrchestrator
532
+ */
533
+ export declare class TieredStorageOrchestrator {
534
+ private cacheLayer?;
535
+ private swrCacheLayer?;
536
+ private doStorage;
537
+ private r2Layer;
538
+ private config;
539
+ private storageIndex;
540
+ private indexMemoryBytes;
541
+ private maintenanceTimer?;
542
+ private memoryWarningEmitted;
543
+ /**
544
+ * Estimated memory per index entry (key string avg ~20 chars + StorageIndexEntry object)
545
+ *
546
+ * Breakdown:
547
+ * - Map entry overhead: ~40 bytes (key reference + value reference + internal structure)
548
+ * - StorageIndexEntry object: ~80 bytes (8 bytes per field * 9 fields + object overhead)
549
+ * - Total base: ~120 bytes per entry
550
+ * - Key string: 2 bytes per character (JS strings are UTF-16)
551
+ */
552
+ private static readonly ENTRY_MEMORY_OVERHEAD;
553
+ private performanceMetrics;
554
+ private lastLookupKey;
555
+ private lastLookupEntry;
556
+ private warmStats;
557
+ private promotionStats;
558
+ private demotionStats;
559
+ private tierHealth;
560
+ private circuitBreakers;
561
+ private latencyMeasurements;
562
+ private demotionStrategies;
563
+ private autoPromoterConfig;
564
+ private autoDemoterConfig;
565
+ private migrationCallbacks;
566
+ private errorObservers;
567
+ private circuitBreakerObservers;
568
+ private errorCounts;
569
+ private keyRetryCounters;
570
+ private correlationCounter;
571
+ private eventSubscribers;
572
+ private entryPriorities;
573
+ private pinnedEntries;
574
+ private memoryLimits;
575
+ constructor(config: TieredOrchestratorConfig);
576
+ onMigration(callback: TierMigrationCallback): void;
577
+ onError(callback: ErrorObserver): void;
578
+ onCircuitBreakerChange(callback: CircuitBreakerChangeObserver): void;
579
+ private notifyError;
580
+ private notifyCircuitBreakerChange;
581
+ private notifyMigration;
582
+ private doKey;
583
+ /**
584
+ * High-resolution timer for performance measurement
585
+ * Uses performance.now() when available, falls back to Date.now() * 1e6
586
+ */
587
+ private getNowNs;
588
+ /**
589
+ * Update the storage index with entry information
590
+ *
591
+ * Performance characteristics:
592
+ * - O(1) for existing keys (direct Map update)
593
+ * - O(1) amortized for new keys (may trigger eviction)
594
+ * - Tracks timing for performance metrics
595
+ *
596
+ * @param key - The storage key
597
+ * @param tier - The storage tier where data resides
598
+ * @param size - Size of the data in bytes
599
+ * @param dirty - Whether the entry has uncommitted changes
600
+ */
601
+ private updateIndex;
602
+ /**
603
+ * Enforce index bounds by evicting entries if necessary
604
+ */
605
+ private enforceIndexBounds;
606
+ /**
607
+ * Select the k entries with the smallest scores (partial selection)
608
+ *
609
+ * Uses a simple O(n*k) algorithm which is efficient when k << n.
610
+ * For large k values, this degrades gracefully but still avoids
611
+ * the memory overhead of creating and sorting a full array copy.
612
+ */
613
+ private selectSmallestEntries;
614
+ /**
615
+ * Evict entries from the index based on configured policy
616
+ *
617
+ * ## Performance Characteristics
618
+ *
619
+ * **Time Complexity**: O(n*k) where n=index size, k=entries to evict
620
+ * - Uses partial selection instead of full sort O(n log n)
621
+ * - Efficient when k << n (typical case: k=10-20, n=10000+)
622
+ *
623
+ * **Space Complexity**: O(k) for the result buffer
624
+ * - Does not create intermediate arrays of size n
625
+ *
626
+ * **Memory optimization**: Uses partial selection instead of full sort.
627
+ * This is more efficient when evicting a small batch from a large index.
628
+ *
629
+ * @param count - Number of entries to evict
630
+ */
631
+ private evictIndexEntries;
632
+ /**
633
+ * Check and emit memory warning if threshold exceeded
634
+ */
635
+ private checkMemoryWarning;
636
+ /**
637
+ * Start periodic index maintenance
638
+ */
639
+ private startIndexMaintenance;
640
+ /**
641
+ * Stop periodic index maintenance
642
+ */
643
+ stopIndexMaintenance(): void;
644
+ /**
645
+ * Run index maintenance - clean up stale entries
646
+ *
647
+ * ## Performance Characteristics
648
+ *
649
+ * **Time Complexity**: O(n * storage_ops) where n = index entries
650
+ * - Each entry may require 1-2 storage lookups
651
+ * - Storage ops are async and may have network latency
652
+ *
653
+ * **When to Run**:
654
+ * - Periodically via indexMaintenanceIntervalMs config
655
+ * - After suspected data loss or corruption
656
+ * - During low-traffic periods to avoid impacting hot path
657
+ *
658
+ * @returns Object with count of removed stale entries and timing info
659
+ */
660
+ runIndexMaintenance(): Promise<{
661
+ removed: number;
662
+ durationMs: number;
663
+ }>;
664
+ /**
665
+ * Optimized index lookup with single-entry cache
666
+ *
667
+ * The hot path often involves looking up the same key multiple times
668
+ * in quick succession (read -> check promotion -> update index).
669
+ * This cache avoids redundant Map lookups.
670
+ *
671
+ * @param key - The key to look up
672
+ * @returns The index entry or undefined if not found
673
+ */
674
+ private getIndexEntryOptimized;
675
+ /**
676
+ * Check if a key should be promoted to a higher tier
677
+ *
678
+ * Uses optimized lookup to avoid redundant Map accesses.
679
+ *
680
+ * @param key - The storage key
681
+ * @param currentTier - The current tier of the data
682
+ * @returns Promotion decision with target tier if applicable
683
+ */
684
+ private shouldPromote;
685
+ private isCircuitOpen;
686
+ private recordCircuitBreakerFailure;
687
+ private recordCircuitBreakerSuccess;
688
+ read(key: string, options?: ReadOptions): Promise<ReadResult>;
689
+ write(key: string, data: Uint8Array, options?: WriteOptions): Promise<void>;
690
+ delete(key: string): Promise<void>;
691
+ promoteToWarm(key: string, data?: Uint8Array): Promise<TierMigrationEvent>;
692
+ promoteToHot(key: string, data?: Uint8Array): Promise<TierMigrationEvent>;
693
+ demoteFromHot(key: string, reason?: TierMigrationEvent['reason']): Promise<TierMigrationEvent>;
694
+ demoteFromWarm(key: string, reason?: TierMigrationEvent['reason']): Promise<TierMigrationEvent>;
695
+ runDemotionCycle(maxDemotions?: number): Promise<TierMigrationEvent[]>;
696
+ evictLRUFromHot(count: number): Promise<TierMigrationEvent[]>;
697
+ syncDirtyToCold(): Promise<number>;
698
+ getIndexEntry(key: string): StorageIndexEntry | undefined;
699
+ hasInIndex(key: string): boolean;
700
+ getTier(key: string): StorageTier | undefined;
701
+ /**
702
+ * Get detailed memory usage breakdown for the storage index
703
+ *
704
+ * ## Memory Components
705
+ *
706
+ * - **entryOverhead**: Fixed overhead per entry (~120 bytes)
707
+ * - **keyStorage**: Memory for key strings (2 bytes per char in JS)
708
+ * - **mapOverhead**: Estimated Map internal structures (~10% of entry memory)
709
+ *
710
+ * @returns Detailed memory breakdown in bytes
711
+ */
712
+ getIndexMemoryBreakdown(): {
713
+ totalBytes: number;
714
+ entryOverhead: number;
715
+ keyStorage: number;
716
+ mapOverheadEstimate: number;
717
+ bytesPerEntry: number;
718
+ entries: number;
719
+ peakBytes: number;
720
+ utilizationPercent: number | null;
721
+ memoryBudgetBytes: number | null;
722
+ };
723
+ /**
724
+ * Estimate memory for a given number of entries with average key length
725
+ *
726
+ * Useful for capacity planning:
727
+ * ```typescript
728
+ * // How much memory for 10,000 entries with ~30 char keys?
729
+ * const estimate = orchestrator.estimateIndexMemory(10000, 30)
730
+ * console.log(`Estimated: ${estimate / 1024 / 1024}MB`)
731
+ * ```
732
+ *
733
+ * @param entryCount - Number of entries to estimate for
734
+ * @param avgKeyLength - Average key length in characters (default: 20)
735
+ * @returns Estimated memory usage in bytes
736
+ */
737
+ estimateIndexMemory(entryCount: number, avgKeyLength?: number): number;
738
+ /**
739
+ * Get the current memory usage as a percentage of the configured limit
740
+ *
741
+ * @returns Percentage (0-100) or null if no limit configured
742
+ */
743
+ getIndexMemoryUtilization(): number | null;
744
+ /**
745
+ * Check if the index is approaching memory limits
746
+ *
747
+ * @param threshold - Warning threshold as decimal (default: 0.8 = 80%)
748
+ * @returns Object with warning status and details
749
+ */
750
+ checkIndexMemoryStatus(threshold?: number): {
751
+ isNearLimit: boolean;
752
+ currentBytes: number;
753
+ limitBytes: number | null;
754
+ utilizationPercent: number | null;
755
+ warningThreshold: number;
756
+ };
757
+ /**
758
+ * Get comprehensive statistics including performance metrics
759
+ *
760
+ * ## Performance Metrics Included
761
+ *
762
+ * - **lookupCount**: Total number of index lookups
763
+ * - **updateCount**: Total number of index updates
764
+ * - **evictionCount**: Total entries evicted
765
+ * - **avgLookupTimeNs**: Average lookup time in nanoseconds
766
+ * - **avgUpdateTimeNs**: Average update time in nanoseconds
767
+ * - **peakEntries**: Maximum index size observed
768
+ * - **peakMemoryBytes**: Maximum memory usage observed
769
+ * - **cacheHitCount/cacheMissCount**: Hot path cache effectiveness
770
+ *
771
+ * @returns Complete orchestrator statistics
772
+ */
773
+ getStats(): OrchestratorStats;
774
+ /**
775
+ * Reset all statistics counters
776
+ *
777
+ * Resets:
778
+ * - Warm tier stats (reads, writes, deletes, bytes)
779
+ * - Promotion/demotion counters
780
+ * - Performance metrics (lookup/update/eviction counts and timing)
781
+ *
782
+ * Does NOT reset:
783
+ * - Peak values (peakEntries, peakMemoryBytes)
784
+ * - Current index state
785
+ */
786
+ resetStats(): void;
787
+ /**
788
+ * Reset only performance metrics while preserving operational stats
789
+ *
790
+ * Useful for:
791
+ * - Starting a new measurement window
792
+ * - Benchmarking specific operations
793
+ * - A/B testing configuration changes
794
+ *
795
+ * @param preservePeaks - If true, keeps peakEntries and peakMemoryBytes (default: false)
796
+ */
797
+ resetPerformanceMetrics(preservePeaks?: boolean): void;
798
+ /**
799
+ * Get a human-readable performance summary
800
+ *
801
+ * @returns Formatted string with key performance metrics
802
+ */
803
+ getPerformanceSummary(): string;
804
+ /**
805
+ * Clear the index and all associated tracking
806
+ */
807
+ clearIndex(): void;
808
+ resetHealth(tier?: StorageTier): void;
809
+ getConfig(): InternalConfig;
810
+ onHibernate(): Promise<HibernateResult>;
811
+ onWake(hibernateState: HibernateState | null, options?: WakeOptions): Promise<WakeResult>;
812
+ scheduleAlarm(alarmConfig: AlarmConfig): Promise<void>;
813
+ handleAlarm(alarmConfig: AlarmConfig & {
814
+ rescheduleMs?: number;
815
+ }): Promise<AlarmResult>;
816
+ getCircuitBreakerState(tier: StorageTier): CircuitBreakerStateInfo;
817
+ setCircuitBreakerState(tier: StorageTier, state: CircuitBreakerState): void;
818
+ getAggregatedMetrics(): AggregatedMetrics;
819
+ exportMetrics(format: 'prometheus' | 'json'): string | AggregatedMetrics;
820
+ createVFSInterface(_options?: {
821
+ pageSize?: number;
822
+ promotionThreshold?: number;
823
+ }): VFSInterface;
824
+ configureAutoPromoter(config: AutoPromoterConfig): void;
825
+ getAutoPromoterConfig(): AutoPromoterConfig;
826
+ configureAutoDemoter(config: AutoDemoterConfig): void;
827
+ getAutoDemoterConfig(): AutoDemoterConfig;
828
+ setDemotionStrategy(tier: StorageTier, strategy: DemotionStrategy): void;
829
+ runDemotionWithStrategy(tier: StorageTier, count: number): Promise<TierMigrationEvent[]>;
830
+ runConsistencyCheck(): Promise<{
831
+ inconsistencies: number;
832
+ repairs: {
833
+ key: string;
834
+ issue: string;
835
+ action: string;
836
+ }[];
837
+ }>;
838
+ setIndexEntryTimestamp(key: string, field: 'created' | 'lastAccess' | 'modified', timestamp: number): void;
839
+ getAccessPatternMetrics(key: string): {
840
+ isBurst: boolean;
841
+ accessRate: number;
842
+ recentAccesses: number;
843
+ };
844
+ evictByMemoryPressure(bytesToFree: number): Promise<TierMigrationEvent[]>;
845
+ setEntryPriority(key: string, priority: 'low' | 'normal' | 'high'): void;
846
+ getEntryPriority(key: string): 'low' | 'normal' | 'high';
847
+ batchPromoteToWarm(keys: string[]): Promise<TierMigrationEvent[]>;
848
+ batchDemoteFromWarm(keys: string[]): Promise<TierMigrationEvent[]>;
849
+ healthCheck(): Promise<{
850
+ overall: 'healthy' | 'degraded' | 'unhealthy';
851
+ tiers: Record<StorageTier, {
852
+ status: string;
853
+ latency: number;
854
+ error?: string;
855
+ }>;
856
+ latency: Record<StorageTier, number>;
857
+ }>;
858
+ getMemoryUsage(): {
859
+ hot: number;
860
+ warm: number;
861
+ cold: number;
862
+ total: number;
863
+ limit: number;
864
+ utilizationPercent: number;
865
+ };
866
+ setMemoryLimit(limits: Partial<Record<StorageTier, number>>): void;
867
+ getMemoryLimits(): Partial<Record<StorageTier, number>>;
868
+ prefetch(keys: string[], options?: {
869
+ targetTier?: StorageTier;
870
+ maxConcurrency?: number;
871
+ }): Promise<{
872
+ prefetchedCount: number;
873
+ failedKeys: string[];
874
+ }>;
875
+ subscribeToEvents(callback: TierMigrationCallback, options?: {
876
+ filter?: {
877
+ type?: 'promotion' | 'demotion';
878
+ };
879
+ }): () => void;
880
+ createSnapshot(): Promise<{
881
+ version: number;
882
+ timestamp: number;
883
+ index: StorageIndexEntry[];
884
+ stats: OrchestratorStats;
885
+ }>;
886
+ restoreFromSnapshot(snapshot: {
887
+ version: number;
888
+ timestamp: number;
889
+ index: StorageIndexEntry[];
890
+ stats: Record<string, unknown>;
891
+ }): Promise<void>;
892
+ warmup(options: {
893
+ strategy: 'all' | 'most-accessed' | 'recent';
894
+ targetTier: StorageTier;
895
+ maxBytes?: number;
896
+ limit?: number;
897
+ }): Promise<{
898
+ warmedUp: number;
899
+ bytesTransferred: number;
900
+ keys: string[];
901
+ }>;
902
+ garbageCollect(options?: {
903
+ compactCold?: boolean;
904
+ }): Promise<{
905
+ removedEntries: number;
906
+ compactionStats?: {
907
+ bytesReclaimed: number;
908
+ };
909
+ }>;
910
+ pinToTier(key: string, _tier: StorageTier): void;
911
+ unpinFromTier(key: string): void;
912
+ isPinned(key: string): boolean;
913
+ getCostBreakdown(): {
914
+ storage: {
915
+ r2: number;
916
+ do: number;
917
+ cache: number;
918
+ };
919
+ operations: {
920
+ r2Writes: number;
921
+ r2Reads: number;
922
+ doWrites: number;
923
+ doReads: number;
924
+ };
925
+ total: number;
926
+ projectedMonthly: number;
927
+ };
928
+ optimizeTierPlacement(): Promise<{
929
+ promotions: Array<{
930
+ key: string;
931
+ currentTier: StorageTier;
932
+ suggestedTier: StorageTier;
933
+ reason: string;
934
+ }>;
935
+ demotions: Array<{
936
+ key: string;
937
+ currentTier: StorageTier;
938
+ suggestedTier: StorageTier;
939
+ reason: string;
940
+ }>;
941
+ estimatedSavings: number;
942
+ }>;
943
+ ensureDurability(key: string): Promise<{
944
+ durable: boolean;
945
+ tier: StorageTier | null;
946
+ copied: boolean;
947
+ }>;
948
+ }
949
+ export declare function createTieredStorageOrchestrator(config: TieredOrchestratorConfig): TieredStorageOrchestrator;
950
+ export {};
951
+ //# sourceMappingURL=tiered-orchestrator.d.ts.map