@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.
- package/README.md +868 -0
- package/dist/cdc/change-stream.d.ts +44 -0
- package/dist/cdc/change-stream.d.ts.map +1 -0
- package/dist/cdc/change-stream.js +95 -0
- package/dist/cdc/change-stream.js.map +1 -0
- package/dist/cdc/filter.d.ts +58 -0
- package/dist/cdc/filter.d.ts.map +1 -0
- package/dist/cdc/filter.js +520 -0
- package/dist/cdc/filter.js.map +1 -0
- package/dist/cdc/index.d.ts +47 -0
- package/dist/cdc/index.d.ts.map +1 -0
- package/dist/cdc/index.js +50 -0
- package/dist/cdc/index.js.map +1 -0
- package/dist/cdc/resume-token.d.ts +60 -0
- package/dist/cdc/resume-token.d.ts.map +1 -0
- package/dist/cdc/resume-token.js +228 -0
- package/dist/cdc/resume-token.js.map +1 -0
- package/dist/cdc/transport/index.d.ts +7 -0
- package/dist/cdc/transport/index.d.ts.map +1 -0
- package/dist/cdc/transport/index.js +7 -0
- package/dist/cdc/transport/index.js.map +1 -0
- package/dist/cdc/transport/sse.d.ts +120 -0
- package/dist/cdc/transport/sse.d.ts.map +1 -0
- package/dist/cdc/transport/sse.js +590 -0
- package/dist/cdc/transport/sse.js.map +1 -0
- package/dist/cdc/transport/websocket.d.ts +130 -0
- package/dist/cdc/transport/websocket.d.ts.map +1 -0
- package/dist/cdc/transport/websocket.js +688 -0
- package/dist/cdc/transport/websocket.js.map +1 -0
- package/dist/cdc/types.d.ts +306 -0
- package/dist/cdc/types.d.ts.map +1 -0
- package/dist/cdc/types.js +8 -0
- package/dist/cdc/types.js.map +1 -0
- package/dist/config/index.d.ts +25 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +25 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/memory.d.ts +139 -0
- package/dist/config/memory.d.ts.map +1 -0
- package/dist/config/memory.js +157 -0
- package/dist/config/memory.js.map +1 -0
- package/dist/config/storage.d.ts +157 -0
- package/dist/config/storage.d.ts.map +1 -0
- package/dist/config/storage.js +178 -0
- package/dist/config/storage.js.map +1 -0
- package/dist/config/streaming.d.ts +117 -0
- package/dist/config/streaming.d.ts.map +1 -0
- package/dist/config/streaming.js +132 -0
- package/dist/config/streaming.js.map +1 -0
- package/dist/config/timeouts.d.ts +168 -0
- package/dist/config/timeouts.d.ts.map +1 -0
- package/dist/config/timeouts.js +192 -0
- package/dist/config/timeouts.js.map +1 -0
- package/dist/extensions/config.d.ts +89 -0
- package/dist/extensions/config.d.ts.map +1 -0
- package/dist/extensions/config.js +216 -0
- package/dist/extensions/config.js.map +1 -0
- package/dist/extensions/geo.d.ts +452 -0
- package/dist/extensions/geo.d.ts.map +1 -0
- package/dist/extensions/geo.js +583 -0
- package/dist/extensions/geo.js.map +1 -0
- package/dist/extensions/index.d.ts +167 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +99 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +226 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +456 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/pgmq-lite.d.ts +330 -0
- package/dist/extensions/pgmq-lite.d.ts.map +1 -0
- package/dist/extensions/pgmq-lite.js +648 -0
- package/dist/extensions/pgmq-lite.js.map +1 -0
- package/dist/extensions/plugins.d.ts +260 -0
- package/dist/extensions/plugins.d.ts.map +1 -0
- package/dist/extensions/plugins.js +535 -0
- package/dist/extensions/plugins.js.map +1 -0
- package/dist/extensions/registry.d.ts +93 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +182 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/vector.d.ts +106 -0
- package/dist/extensions/vector.d.ts.map +1 -0
- package/dist/extensions/vector.js +129 -0
- package/dist/extensions/vector.js.map +1 -0
- package/dist/iceberg/analytics.d.ts +279 -0
- package/dist/iceberg/analytics.d.ts.map +1 -0
- package/dist/iceberg/analytics.js +448 -0
- package/dist/iceberg/analytics.js.map +1 -0
- package/dist/iceberg/catalog-api.d.ts +39 -0
- package/dist/iceberg/catalog-api.d.ts.map +1 -0
- package/dist/iceberg/catalog-api.js +388 -0
- package/dist/iceberg/catalog-api.js.map +1 -0
- package/dist/iceberg/catalog.d.ts +401 -0
- package/dist/iceberg/catalog.d.ts.map +1 -0
- package/dist/iceberg/catalog.js +677 -0
- package/dist/iceberg/catalog.js.map +1 -0
- package/dist/iceberg/duckdb-wasm.d.ts +447 -0
- package/dist/iceberg/duckdb-wasm.d.ts.map +1 -0
- package/dist/iceberg/duckdb-wasm.js +600 -0
- package/dist/iceberg/duckdb-wasm.js.map +1 -0
- package/dist/iceberg/index.d.ts +92 -0
- package/dist/iceberg/index.d.ts.map +1 -0
- package/dist/iceberg/index.js +119 -0
- package/dist/iceberg/index.js.map +1 -0
- package/dist/iceberg/metadata.d.ts +214 -0
- package/dist/iceberg/metadata.d.ts.map +1 -0
- package/dist/iceberg/metadata.js +535 -0
- package/dist/iceberg/metadata.js.map +1 -0
- package/dist/iceberg/optimizer.d.ts +296 -0
- package/dist/iceberg/optimizer.d.ts.map +1 -0
- package/dist/iceberg/optimizer.js +889 -0
- package/dist/iceberg/optimizer.js.map +1 -0
- package/dist/iceberg/parquet.d.ts +447 -0
- package/dist/iceberg/parquet.d.ts.map +1 -0
- package/dist/iceberg/parquet.js +1225 -0
- package/dist/iceberg/parquet.js.map +1 -0
- package/dist/iceberg/r2-organization.d.ts +422 -0
- package/dist/iceberg/r2-organization.d.ts.map +1 -0
- package/dist/iceberg/r2-organization.js +672 -0
- package/dist/iceberg/r2-organization.js.map +1 -0
- package/dist/iceberg/scheduler-do-example.d.ts +158 -0
- package/dist/iceberg/scheduler-do-example.d.ts.map +1 -0
- package/dist/iceberg/scheduler-do-example.js +261 -0
- package/dist/iceberg/scheduler-do-example.js.map +1 -0
- package/dist/iceberg/scheduler.d.ts +434 -0
- package/dist/iceberg/scheduler.d.ts.map +1 -0
- package/dist/iceberg/scheduler.js +818 -0
- package/dist/iceberg/scheduler.js.map +1 -0
- package/dist/iceberg/schema.d.ts +149 -0
- package/dist/iceberg/schema.d.ts.map +1 -0
- package/dist/iceberg/schema.js +525 -0
- package/dist/iceberg/schema.js.map +1 -0
- package/dist/iceberg/snapshot-manager.d.ts +406 -0
- package/dist/iceberg/snapshot-manager.d.ts.map +1 -0
- package/dist/iceberg/snapshot-manager.js +934 -0
- package/dist/iceberg/snapshot-manager.js.map +1 -0
- package/dist/iceberg/sql-router.d.ts +194 -0
- package/dist/iceberg/sql-router.d.ts.map +1 -0
- package/dist/iceberg/sql-router.js +180 -0
- package/dist/iceberg/sql-router.js.map +1 -0
- package/dist/iceberg/test-fixtures.d.ts +151 -0
- package/dist/iceberg/test-fixtures.d.ts.map +1 -0
- package/dist/iceberg/test-fixtures.js +446 -0
- package/dist/iceberg/test-fixtures.js.map +1 -0
- package/dist/iceberg/time-travel-api.d.ts +102 -0
- package/dist/iceberg/time-travel-api.d.ts.map +1 -0
- package/dist/iceberg/time-travel-api.js +437 -0
- package/dist/iceberg/time-travel-api.js.map +1 -0
- package/dist/iceberg/time-travel.d.ts +293 -0
- package/dist/iceberg/time-travel.d.ts.map +1 -0
- package/dist/iceberg/time-travel.js +689 -0
- package/dist/iceberg/time-travel.js.map +1 -0
- package/dist/iceberg/transformer.d.ts +356 -0
- package/dist/iceberg/transformer.d.ts.map +1 -0
- package/dist/iceberg/transformer.js +770 -0
- package/dist/iceberg/transformer.js.map +1 -0
- package/dist/iceberg/types.d.ts +318 -0
- package/dist/iceberg/types.d.ts.map +1 -0
- package/dist/iceberg/types.js +9 -0
- package/dist/iceberg/types.js.map +1 -0
- package/dist/iceberg/writer.d.ts +144 -0
- package/dist/iceberg/writer.d.ts.map +1 -0
- package/dist/iceberg/writer.js +452 -0
- package/dist/iceberg/writer.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/lineage/index.d.ts +11 -0
- package/dist/lineage/index.d.ts.map +1 -0
- package/dist/lineage/index.js +11 -0
- package/dist/lineage/index.js.map +1 -0
- package/dist/lineage/integration.d.ts +134 -0
- package/dist/lineage/integration.d.ts.map +1 -0
- package/dist/lineage/integration.js +258 -0
- package/dist/lineage/integration.js.map +1 -0
- package/dist/lineage/tracker.d.ts +189 -0
- package/dist/lineage/tracker.d.ts.map +1 -0
- package/dist/lineage/tracker.js +1352 -0
- package/dist/lineage/tracker.js.map +1 -0
- package/dist/lineage/types.d.ts +318 -0
- package/dist/lineage/types.d.ts.map +1 -0
- package/dist/lineage/types.js +9 -0
- package/dist/lineage/types.js.map +1 -0
- package/dist/middleware/index.d.ts +11 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +16 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/rate-limit.d.ts +397 -0
- package/dist/middleware/rate-limit.d.ts.map +1 -0
- package/dist/middleware/rate-limit.js +507 -0
- package/dist/middleware/rate-limit.js.map +1 -0
- package/dist/migration-tooling/external-migration.d.ts +601 -0
- package/dist/migration-tooling/external-migration.d.ts.map +1 -0
- package/dist/migration-tooling/external-migration.js +1612 -0
- package/dist/migration-tooling/external-migration.js.map +1 -0
- package/dist/migration-tooling/index.d.ts +19 -0
- package/dist/migration-tooling/index.d.ts.map +1 -0
- package/dist/migration-tooling/index.js +19 -0
- package/dist/migration-tooling/index.js.map +1 -0
- package/dist/migrations/auto-migrator.d.ts +289 -0
- package/dist/migrations/auto-migrator.d.ts.map +1 -0
- package/dist/migrations/auto-migrator.js +396 -0
- package/dist/migrations/auto-migrator.js.map +1 -0
- package/dist/migrations/bulk-orchestrator.d.ts +403 -0
- package/dist/migrations/bulk-orchestrator.d.ts.map +1 -0
- package/dist/migrations/bulk-orchestrator.js +646 -0
- package/dist/migrations/bulk-orchestrator.js.map +1 -0
- package/dist/migrations/compatibility.d.ts +216 -0
- package/dist/migrations/compatibility.d.ts.map +1 -0
- package/dist/migrations/compatibility.js +651 -0
- package/dist/migrations/compatibility.js.map +1 -0
- package/dist/migrations/do-migrations.d.ts +101 -0
- package/dist/migrations/do-migrations.d.ts.map +1 -0
- package/dist/migrations/do-migrations.js +1060 -0
- package/dist/migrations/do-migrations.js.map +1 -0
- package/dist/migrations/do-migrations.types.d.ts +550 -0
- package/dist/migrations/do-migrations.types.d.ts.map +1 -0
- package/dist/migrations/do-migrations.types.js +15 -0
- package/dist/migrations/do-migrations.types.js.map +1 -0
- package/dist/migrations/drizzle-compat.d.ts +163 -0
- package/dist/migrations/drizzle-compat.d.ts.map +1 -0
- package/dist/migrations/drizzle-compat.js +273 -0
- package/dist/migrations/drizzle-compat.js.map +1 -0
- package/dist/migrations/index.d.ts +109 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +127 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/migration-api.d.ts +161 -0
- package/dist/migrations/migration-api.d.ts.map +1 -0
- package/dist/migrations/migration-api.js +499 -0
- package/dist/migrations/migration-api.js.map +1 -0
- package/dist/migrations/progress-tracker-do.d.ts +195 -0
- package/dist/migrations/progress-tracker-do.d.ts.map +1 -0
- package/dist/migrations/progress-tracker-do.js +339 -0
- package/dist/migrations/progress-tracker-do.js.map +1 -0
- package/dist/migrations/progress-tracker-kv.d.ts +103 -0
- package/dist/migrations/progress-tracker-kv.d.ts.map +1 -0
- package/dist/migrations/progress-tracker-kv.js +231 -0
- package/dist/migrations/progress-tracker-kv.js.map +1 -0
- package/dist/migrations/progress-tracker.d.ts +320 -0
- package/dist/migrations/progress-tracker.d.ts.map +1 -0
- package/dist/migrations/progress-tracker.js +443 -0
- package/dist/migrations/progress-tracker.js.map +1 -0
- package/dist/migrations/registry.d.ts +231 -0
- package/dist/migrations/registry.d.ts.map +1 -0
- package/dist/migrations/registry.js +376 -0
- package/dist/migrations/registry.js.map +1 -0
- package/dist/migrations/runner.d.ts +197 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/runner.js +1167 -0
- package/dist/migrations/runner.js.map +1 -0
- package/dist/migrations/schema-generator.d.ts +111 -0
- package/dist/migrations/schema-generator.d.ts.map +1 -0
- package/dist/migrations/schema-generator.js +335 -0
- package/dist/migrations/schema-generator.js.map +1 -0
- package/dist/migrations/testing.d.ts +321 -0
- package/dist/migrations/testing.d.ts.map +1 -0
- package/dist/migrations/testing.js +645 -0
- package/dist/migrations/testing.js.map +1 -0
- package/dist/migrations/types.d.ts +503 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/migrations/types.js +11 -0
- package/dist/migrations/types.js.map +1 -0
- package/dist/migrations/validator.d.ts +215 -0
- package/dist/migrations/validator.d.ts.map +1 -0
- package/dist/migrations/validator.js +494 -0
- package/dist/migrations/validator.js.map +1 -0
- package/dist/observability/alerting.d.ts +116 -0
- package/dist/observability/alerting.d.ts.map +1 -0
- package/dist/observability/alerting.js +353 -0
- package/dist/observability/alerting.js.map +1 -0
- package/dist/observability/analytics-engine.d.ts +357 -0
- package/dist/observability/analytics-engine.d.ts.map +1 -0
- package/dist/observability/analytics-engine.js +430 -0
- package/dist/observability/analytics-engine.js.map +1 -0
- package/dist/observability/cost-metrics.d.ts +269 -0
- package/dist/observability/cost-metrics.d.ts.map +1 -0
- package/dist/observability/cost-metrics.js +560 -0
- package/dist/observability/cost-metrics.js.map +1 -0
- package/dist/observability/cross-do-tracing.d.ts +305 -0
- package/dist/observability/cross-do-tracing.d.ts.map +1 -0
- package/dist/observability/cross-do-tracing.js +431 -0
- package/dist/observability/cross-do-tracing.js.map +1 -0
- package/dist/observability/error-rate-collector.d.ts +163 -0
- package/dist/observability/error-rate-collector.d.ts.map +1 -0
- package/dist/observability/error-rate-collector.js +306 -0
- package/dist/observability/error-rate-collector.js.map +1 -0
- package/dist/observability/exporters.d.ts +231 -0
- package/dist/observability/exporters.d.ts.map +1 -0
- package/dist/observability/exporters.js +479 -0
- package/dist/observability/exporters.js.map +1 -0
- package/dist/observability/health-check.d.ts +106 -0
- package/dist/observability/health-check.d.ts.map +1 -0
- package/dist/observability/health-check.js +243 -0
- package/dist/observability/health-check.js.map +1 -0
- package/dist/observability/index.d.ts +297 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +455 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/instrumentation.d.ts +222 -0
- package/dist/observability/instrumentation.d.ts.map +1 -0
- package/dist/observability/instrumentation.js +532 -0
- package/dist/observability/instrumentation.js.map +1 -0
- package/dist/observability/memory-metrics.d.ts +227 -0
- package/dist/observability/memory-metrics.d.ts.map +1 -0
- package/dist/observability/memory-metrics.js +688 -0
- package/dist/observability/memory-metrics.js.map +1 -0
- package/dist/observability/metrics-endpoint.d.ts +91 -0
- package/dist/observability/metrics-endpoint.d.ts.map +1 -0
- package/dist/observability/metrics-endpoint.js +246 -0
- package/dist/observability/metrics-endpoint.js.map +1 -0
- package/dist/observability/metrics.d.ts +88 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +253 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/observability-features.d.ts +488 -0
- package/dist/observability/observability-features.d.ts.map +1 -0
- package/dist/observability/observability-features.js +773 -0
- package/dist/observability/observability-features.js.map +1 -0
- package/dist/observability/prometheus.d.ts +39 -0
- package/dist/observability/prometheus.d.ts.map +1 -0
- package/dist/observability/prometheus.js +120 -0
- package/dist/observability/prometheus.js.map +1 -0
- package/dist/observability/propagation.d.ts +126 -0
- package/dist/observability/propagation.d.ts.map +1 -0
- package/dist/observability/propagation.js +234 -0
- package/dist/observability/propagation.js.map +1 -0
- package/dist/observability/query-latency.d.ts +243 -0
- package/dist/observability/query-latency.d.ts.map +1 -0
- package/dist/observability/query-latency.js +292 -0
- package/dist/observability/query-latency.js.map +1 -0
- package/dist/observability/query-performance.d.ts +169 -0
- package/dist/observability/query-performance.d.ts.map +1 -0
- package/dist/observability/query-performance.js +290 -0
- package/dist/observability/query-performance.js.map +1 -0
- package/dist/observability/storage-tier-metrics.d.ts +174 -0
- package/dist/observability/storage-tier-metrics.d.ts.map +1 -0
- package/dist/observability/storage-tier-metrics.js +306 -0
- package/dist/observability/storage-tier-metrics.js.map +1 -0
- package/dist/observability/tier-cost-optimizer.d.ts +155 -0
- package/dist/observability/tier-cost-optimizer.d.ts.map +1 -0
- package/dist/observability/tier-cost-optimizer.js +536 -0
- package/dist/observability/tier-cost-optimizer.js.map +1 -0
- package/dist/observability/tracer.d.ts +149 -0
- package/dist/observability/tracer.d.ts.map +1 -0
- package/dist/observability/tracer.js +435 -0
- package/dist/observability/tracer.js.map +1 -0
- package/dist/observability/types.d.ts +402 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +103 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/pglite/workers-pglite.d.ts +138 -0
- package/dist/pglite/workers-pglite.d.ts.map +1 -0
- package/dist/pglite/workers-pglite.js +143 -0
- package/dist/pglite/workers-pglite.js.map +1 -0
- package/dist/pglite-assets/pglite.data +0 -0
- package/dist/pglite-assets/pglite.wasm +0 -0
- package/dist/playground/index.d.ts +52 -0
- package/dist/playground/index.d.ts.map +1 -0
- package/dist/playground/index.js +55 -0
- package/dist/playground/index.js.map +1 -0
- package/dist/playground/keyboard-shortcuts.d.ts +116 -0
- package/dist/playground/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/playground/keyboard-shortcuts.js +588 -0
- package/dist/playground/keyboard-shortcuts.js.map +1 -0
- package/dist/playground/playground.d.ts +82 -0
- package/dist/playground/playground.d.ts.map +1 -0
- package/dist/playground/playground.js +271 -0
- package/dist/playground/playground.js.map +1 -0
- package/dist/playground/query-executor.d.ts +115 -0
- package/dist/playground/query-executor.d.ts.map +1 -0
- package/dist/playground/query-executor.js +558 -0
- package/dist/playground/query-executor.js.map +1 -0
- package/dist/playground/query-history.d.ts +92 -0
- package/dist/playground/query-history.d.ts.map +1 -0
- package/dist/playground/query-history.js +259 -0
- package/dist/playground/query-history.js.map +1 -0
- package/dist/playground/result-formatter.d.ts +59 -0
- package/dist/playground/result-formatter.d.ts.map +1 -0
- package/dist/playground/result-formatter.js +341 -0
- package/dist/playground/result-formatter.js.map +1 -0
- package/dist/playground/sample-datasets.d.ts +77 -0
- package/dist/playground/sample-datasets.d.ts.map +1 -0
- package/dist/playground/sample-datasets.js +641 -0
- package/dist/playground/sample-datasets.js.map +1 -0
- package/dist/playground/sample-queries.d.ts +73 -0
- package/dist/playground/sample-queries.d.ts.map +1 -0
- package/dist/playground/sample-queries.js +1095 -0
- package/dist/playground/sample-queries.js.map +1 -0
- package/dist/playground/schema-explorer.d.ts +55 -0
- package/dist/playground/schema-explorer.d.ts.map +1 -0
- package/dist/playground/schema-explorer.js +473 -0
- package/dist/playground/schema-explorer.js.map +1 -0
- package/dist/playground/types.d.ts +430 -0
- package/dist/playground/types.d.ts.map +1 -0
- package/dist/playground/types.js +10 -0
- package/dist/playground/types.js.map +1 -0
- package/dist/readonly/cache-reader.d.ts +145 -0
- package/dist/readonly/cache-reader.d.ts.map +1 -0
- package/dist/readonly/cache-reader.js +198 -0
- package/dist/readonly/cache-reader.js.map +1 -0
- package/dist/readonly/config.d.ts +74 -0
- package/dist/readonly/config.d.ts.map +1 -0
- package/dist/readonly/config.js +67 -0
- package/dist/readonly/config.js.map +1 -0
- package/dist/readonly/index.d.ts +22 -0
- package/dist/readonly/index.d.ts.map +1 -0
- package/dist/readonly/index.js +17 -0
- package/dist/readonly/index.js.map +1 -0
- package/dist/readonly/pglite-wrapper.d.ts +82 -0
- package/dist/readonly/pglite-wrapper.d.ts.map +1 -0
- package/dist/readonly/pglite-wrapper.js +123 -0
- package/dist/readonly/pglite-wrapper.js.map +1 -0
- package/dist/readonly/worker.d.ts +142 -0
- package/dist/readonly/worker.d.ts.map +1 -0
- package/dist/readonly/worker.js +187 -0
- package/dist/readonly/worker.js.map +1 -0
- package/dist/readonly/write-blocker.d.ts +47 -0
- package/dist/readonly/write-blocker.d.ts.map +1 -0
- package/dist/readonly/write-blocker.js +136 -0
- package/dist/readonly/write-blocker.js.map +1 -0
- package/dist/recovery/disaster-recovery.d.ts +326 -0
- package/dist/recovery/disaster-recovery.d.ts.map +1 -0
- package/dist/recovery/disaster-recovery.js +799 -0
- package/dist/recovery/disaster-recovery.js.map +1 -0
- package/dist/recovery/index.d.ts +12 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +12 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/recovery/parquet-parser.d.ts +321 -0
- package/dist/recovery/parquet-parser.d.ts.map +1 -0
- package/dist/recovery/parquet-parser.js +797 -0
- package/dist/recovery/parquet-parser.js.map +1 -0
- package/dist/retention/index.d.ts +50 -0
- package/dist/retention/index.d.ts.map +1 -0
- package/dist/retention/index.js +50 -0
- package/dist/retention/index.js.map +1 -0
- package/dist/retention/policy.d.ts +344 -0
- package/dist/retention/policy.d.ts.map +1 -0
- package/dist/retention/policy.js +472 -0
- package/dist/retention/policy.js.map +1 -0
- package/dist/retention/purger.d.ts +187 -0
- package/dist/retention/purger.d.ts.map +1 -0
- package/dist/retention/purger.js +411 -0
- package/dist/retention/purger.js.map +1 -0
- package/dist/rls/auth-integration.d.ts +280 -0
- package/dist/rls/auth-integration.d.ts.map +1 -0
- package/dist/rls/auth-integration.js +399 -0
- package/dist/rls/auth-integration.js.map +1 -0
- package/dist/rls/generator.d.ts +249 -0
- package/dist/rls/generator.d.ts.map +1 -0
- package/dist/rls/generator.js +495 -0
- package/dist/rls/generator.js.map +1 -0
- package/dist/rls/index.d.ts +26 -0
- package/dist/rls/index.d.ts.map +1 -0
- package/dist/rls/index.js +58 -0
- package/dist/rls/index.js.map +1 -0
- package/dist/rls/policy.d.ts +116 -0
- package/dist/rls/policy.d.ts.map +1 -0
- package/dist/rls/policy.js +77 -0
- package/dist/rls/policy.js.map +1 -0
- package/dist/rls/validator.d.ts +155 -0
- package/dist/rls/validator.d.ts.map +1 -0
- package/dist/rls/validator.js +792 -0
- package/dist/rls/validator.js.map +1 -0
- package/dist/routing/adaptive-router.d.ts +317 -0
- package/dist/routing/adaptive-router.d.ts.map +1 -0
- package/dist/routing/adaptive-router.js +554 -0
- package/dist/routing/adaptive-router.js.map +1 -0
- package/dist/routing/circuit-breaker.d.ts +339 -0
- package/dist/routing/circuit-breaker.d.ts.map +1 -0
- package/dist/routing/circuit-breaker.js +620 -0
- package/dist/routing/circuit-breaker.js.map +1 -0
- package/dist/routing/cost-metrics.d.ts +133 -0
- package/dist/routing/cost-metrics.d.ts.map +1 -0
- package/dist/routing/cost-metrics.js +259 -0
- package/dist/routing/cost-metrics.js.map +1 -0
- package/dist/routing/do-connection-pool.d.ts +243 -0
- package/dist/routing/do-connection-pool.d.ts.map +1 -0
- package/dist/routing/do-connection-pool.js +572 -0
- package/dist/routing/do-connection-pool.js.map +1 -0
- package/dist/routing/index.d.ts +59 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +59 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/query-complexity-estimator.d.ts +73 -0
- package/dist/routing/query-complexity-estimator.d.ts.map +1 -0
- package/dist/routing/query-complexity-estimator.js +327 -0
- package/dist/routing/query-complexity-estimator.js.map +1 -0
- package/dist/routing/request-coalescing.d.ts +178 -0
- package/dist/routing/request-coalescing.d.ts.map +1 -0
- package/dist/routing/request-coalescing.js +325 -0
- package/dist/routing/request-coalescing.js.map +1 -0
- package/dist/routing/runtime-router.d.ts +107 -0
- package/dist/routing/runtime-router.d.ts.map +1 -0
- package/dist/routing/runtime-router.js +246 -0
- package/dist/routing/runtime-router.js.map +1 -0
- package/dist/routing/tenant-router.d.ts +848 -0
- package/dist/routing/tenant-router.d.ts.map +1 -0
- package/dist/routing/tenant-router.js +1056 -0
- package/dist/routing/tenant-router.js.map +1 -0
- package/dist/routing/websocket-pool.d.ts +119 -0
- package/dist/routing/websocket-pool.d.ts.map +1 -0
- package/dist/routing/websocket-pool.js +436 -0
- package/dist/routing/websocket-pool.js.map +1 -0
- package/dist/storage/cache-layer.d.ts +159 -0
- package/dist/storage/cache-layer.d.ts.map +1 -0
- package/dist/storage/cache-layer.js +245 -0
- package/dist/storage/cache-layer.js.map +1 -0
- package/dist/storage/cost-aware-tiering.d.ts +258 -0
- package/dist/storage/cost-aware-tiering.d.ts.map +1 -0
- package/dist/storage/cost-aware-tiering.js +526 -0
- package/dist/storage/cost-aware-tiering.js.map +1 -0
- package/dist/storage/index.d.ts +87 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +78 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/interfaces.d.ts +856 -0
- package/dist/storage/interfaces.d.ts.map +1 -0
- package/dist/storage/interfaces.js +69 -0
- package/dist/storage/interfaces.js.map +1 -0
- package/dist/storage/r2-layer.d.ts +226 -0
- package/dist/storage/r2-layer.d.ts.map +1 -0
- package/dist/storage/r2-layer.js +307 -0
- package/dist/storage/r2-layer.js.map +1 -0
- package/dist/storage/r2-overflow.d.ts +344 -0
- package/dist/storage/r2-overflow.d.ts.map +1 -0
- package/dist/storage/r2-overflow.js +730 -0
- package/dist/storage/r2-overflow.js.map +1 -0
- package/dist/storage/r2-page-vfs.d.ts +374 -0
- package/dist/storage/r2-page-vfs.d.ts.map +1 -0
- package/dist/storage/r2-page-vfs.js +754 -0
- package/dist/storage/r2-page-vfs.js.map +1 -0
- package/dist/storage/swr-cache.d.ts +181 -0
- package/dist/storage/swr-cache.d.ts.map +1 -0
- package/dist/storage/swr-cache.js +295 -0
- package/dist/storage/swr-cache.js.map +1 -0
- package/dist/storage/tiered-orchestrator.d.ts +951 -0
- package/dist/storage/tiered-orchestrator.d.ts.map +1 -0
- package/dist/storage/tiered-orchestrator.js +1731 -0
- package/dist/storage/tiered-orchestrator.js.map +1 -0
- package/dist/storage/tiered-vfs-swr.d.ts +279 -0
- package/dist/storage/tiered-vfs-swr.d.ts.map +1 -0
- package/dist/storage/tiered-vfs-swr.js +584 -0
- package/dist/storage/tiered-vfs-swr.js.map +1 -0
- package/dist/storage/tiered-vfs.d.ts +405 -0
- package/dist/storage/tiered-vfs.d.ts.map +1 -0
- package/dist/storage/tiered-vfs.js +833 -0
- package/dist/storage/tiered-vfs.js.map +1 -0
- package/dist/streaming/backpressure-controller.d.ts +173 -0
- package/dist/streaming/backpressure-controller.d.ts.map +1 -0
- package/dist/streaming/backpressure-controller.js +344 -0
- package/dist/streaming/backpressure-controller.js.map +1 -0
- package/dist/streaming/buffer-pool.d.ts +241 -0
- package/dist/streaming/buffer-pool.d.ts.map +1 -0
- package/dist/streaming/buffer-pool.js +381 -0
- package/dist/streaming/buffer-pool.js.map +1 -0
- package/dist/streaming/cdc-iceberg-connector.d.ts +272 -0
- package/dist/streaming/cdc-iceberg-connector.d.ts.map +1 -0
- package/dist/streaming/cdc-iceberg-connector.js +408 -0
- package/dist/streaming/cdc-iceberg-connector.js.map +1 -0
- package/dist/streaming/index.d.ts +111 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +128 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/live-cdc-stream.d.ts +400 -0
- package/dist/streaming/live-cdc-stream.d.ts.map +1 -0
- package/dist/streaming/live-cdc-stream.js +703 -0
- package/dist/streaming/live-cdc-stream.js.map +1 -0
- package/dist/streaming/memory-bounded-stream.d.ts +207 -0
- package/dist/streaming/memory-bounded-stream.d.ts.map +1 -0
- package/dist/streaming/memory-bounded-stream.js +340 -0
- package/dist/streaming/memory-bounded-stream.js.map +1 -0
- package/dist/streaming/query-streamer.d.ts +379 -0
- package/dist/streaming/query-streamer.d.ts.map +1 -0
- package/dist/streaming/query-streamer.js +495 -0
- package/dist/streaming/query-streamer.js.map +1 -0
- package/dist/streaming/response-streaming.d.ts +203 -0
- package/dist/streaming/response-streaming.d.ts.map +1 -0
- package/dist/streaming/response-streaming.js +449 -0
- package/dist/streaming/response-streaming.js.map +1 -0
- package/dist/types/branded.d.ts +859 -0
- package/dist/types/branded.d.ts.map +1 -0
- package/dist/types/branded.js +891 -0
- package/dist/types/branded.js.map +1 -0
- package/dist/types/utilities.d.ts +757 -0
- package/dist/types/utilities.d.ts.map +1 -0
- package/dist/types/utilities.js +447 -0
- package/dist/types/utilities.js.map +1 -0
- package/dist/wal/replay-engine.d.ts +344 -0
- package/dist/wal/replay-engine.d.ts.map +1 -0
- package/dist/wal/replay-engine.js +975 -0
- package/dist/wal/replay-engine.js.map +1 -0
- package/dist/worker/__mocks__/capnweb.d.ts +13 -0
- package/dist/worker/__mocks__/capnweb.d.ts.map +1 -0
- package/dist/worker/__mocks__/capnweb.js +15 -0
- package/dist/worker/__mocks__/capnweb.js.map +1 -0
- package/dist/worker/__mocks__/cloudflare-workers.d.ts +31 -0
- package/dist/worker/__mocks__/cloudflare-workers.d.ts.map +1 -0
- package/dist/worker/__mocks__/cloudflare-workers.js +33 -0
- package/dist/worker/__mocks__/cloudflare-workers.js.map +1 -0
- package/dist/worker/__mocks__/pglite.data.d.ts +3 -0
- package/dist/worker/__mocks__/pglite.data.d.ts.map +1 -0
- package/dist/worker/__mocks__/pglite.data.js +20 -0
- package/dist/worker/__mocks__/pglite.data.js.map +1 -0
- package/dist/worker/__mocks__/pglite.wasm.d.ts +3 -0
- package/dist/worker/__mocks__/pglite.wasm.d.ts.map +1 -0
- package/dist/worker/__mocks__/pglite.wasm.js +30 -0
- package/dist/worker/__mocks__/pglite.wasm.js.map +1 -0
- package/dist/worker/auth-rate-limiter.d.ts +270 -0
- package/dist/worker/auth-rate-limiter.d.ts.map +1 -0
- package/dist/worker/auth-rate-limiter.js +332 -0
- package/dist/worker/auth-rate-limiter.js.map +1 -0
- package/dist/worker/auth.d.ts +345 -0
- package/dist/worker/auth.d.ts.map +1 -0
- package/dist/worker/auth.js +837 -0
- package/dist/worker/auth.js.map +1 -0
- package/dist/worker/cdc-backpressure.d.ts +338 -0
- package/dist/worker/cdc-backpressure.d.ts.map +1 -0
- package/dist/worker/cdc-backpressure.js +619 -0
- package/dist/worker/cdc-backpressure.js.map +1 -0
- package/dist/worker/cdc-sse.d.ts +277 -0
- package/dist/worker/cdc-sse.d.ts.map +1 -0
- package/dist/worker/cdc-sse.js +528 -0
- package/dist/worker/cdc-sse.js.map +1 -0
- package/dist/worker/cdc-websocket.d.ts +252 -0
- package/dist/worker/cdc-websocket.d.ts.map +1 -0
- package/dist/worker/cdc-websocket.js +940 -0
- package/dist/worker/cdc-websocket.js.map +1 -0
- package/dist/worker/cdc.d.ts +95 -0
- package/dist/worker/cdc.d.ts.map +1 -0
- package/dist/worker/cdc.js +211 -0
- package/dist/worker/cdc.js.map +1 -0
- package/dist/worker/concerns/auth-concern.d.ts +50 -0
- package/dist/worker/concerns/auth-concern.d.ts.map +1 -0
- package/dist/worker/concerns/auth-concern.js +131 -0
- package/dist/worker/concerns/auth-concern.js.map +1 -0
- package/dist/worker/concerns/cdc-concern.d.ts +99 -0
- package/dist/worker/concerns/cdc-concern.d.ts.map +1 -0
- package/dist/worker/concerns/cdc-concern.js +137 -0
- package/dist/worker/concerns/cdc-concern.js.map +1 -0
- package/dist/worker/concerns/index.d.ts +22 -0
- package/dist/worker/concerns/index.d.ts.map +1 -0
- package/dist/worker/concerns/index.js +13 -0
- package/dist/worker/concerns/index.js.map +1 -0
- package/dist/worker/concerns/query-execution-concern.d.ts +104 -0
- package/dist/worker/concerns/query-execution-concern.d.ts.map +1 -0
- package/dist/worker/concerns/query-execution-concern.js +95 -0
- package/dist/worker/concerns/query-execution-concern.js.map +1 -0
- package/dist/worker/concerns/storage-orchestration-concern.d.ts +78 -0
- package/dist/worker/concerns/storage-orchestration-concern.d.ts.map +1 -0
- package/dist/worker/concerns/storage-orchestration-concern.js +240 -0
- package/dist/worker/concerns/storage-orchestration-concern.js.map +1 -0
- package/dist/worker/do-auth-manager.d.ts +108 -0
- package/dist/worker/do-auth-manager.d.ts.map +1 -0
- package/dist/worker/do-auth-manager.js +212 -0
- package/dist/worker/do-auth-manager.js.map +1 -0
- package/dist/worker/do-pglite-manager.d.ts +137 -0
- package/dist/worker/do-pglite-manager.d.ts.map +1 -0
- package/dist/worker/do-pglite-manager.js +228 -0
- package/dist/worker/do-pglite-manager.js.map +1 -0
- package/dist/worker/do.d.ts +556 -0
- package/dist/worker/do.d.ts.map +1 -0
- package/dist/worker/do.js +1441 -0
- package/dist/worker/do.js.map +1 -0
- package/dist/worker/entry.d.ts +23 -0
- package/dist/worker/entry.d.ts.map +1 -0
- package/dist/worker/entry.js +362 -0
- package/dist/worker/entry.js.map +1 -0
- package/dist/worker/errors.d.ts +106 -0
- package/dist/worker/errors.d.ts.map +1 -0
- package/dist/worker/errors.js +178 -0
- package/dist/worker/errors.js.map +1 -0
- package/dist/worker/health-check-manager.d.ts +141 -0
- package/dist/worker/health-check-manager.d.ts.map +1 -0
- package/dist/worker/health-check-manager.js +145 -0
- package/dist/worker/health-check-manager.js.map +1 -0
- package/dist/worker/index.d.ts +60 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +67 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/memory-pressure.d.ts +892 -0
- package/dist/worker/memory-pressure.d.ts.map +1 -0
- package/dist/worker/memory-pressure.js +1990 -0
- package/dist/worker/memory-pressure.js.map +1 -0
- package/dist/worker/migration-manager.d.ts +153 -0
- package/dist/worker/migration-manager.d.ts.map +1 -0
- package/dist/worker/migration-manager.js +461 -0
- package/dist/worker/migration-manager.js.map +1 -0
- package/dist/worker/plugin-manager.d.ts +147 -0
- package/dist/worker/plugin-manager.d.ts.map +1 -0
- package/dist/worker/plugin-manager.js +408 -0
- package/dist/worker/plugin-manager.js.map +1 -0
- package/dist/worker/proxy.d.ts +330 -0
- package/dist/worker/proxy.d.ts.map +1 -0
- package/dist/worker/proxy.js +504 -0
- package/dist/worker/proxy.js.map +1 -0
- package/dist/worker/query-execution-manager.d.ts +107 -0
- package/dist/worker/query-execution-manager.d.ts.map +1 -0
- package/dist/worker/query-execution-manager.js +155 -0
- package/dist/worker/query-execution-manager.js.map +1 -0
- package/dist/worker/query-executor.d.ts +163 -0
- package/dist/worker/query-executor.d.ts.map +1 -0
- package/dist/worker/query-executor.js +413 -0
- package/dist/worker/query-executor.js.map +1 -0
- package/dist/worker/query-stats-manager.d.ts +117 -0
- package/dist/worker/query-stats-manager.d.ts.map +1 -0
- package/dist/worker/query-stats-manager.js +162 -0
- package/dist/worker/query-stats-manager.js.map +1 -0
- package/dist/worker/result-handler.d.ts +192 -0
- package/dist/worker/result-handler.d.ts.map +1 -0
- package/dist/worker/result-handler.js +346 -0
- package/dist/worker/result-handler.js.map +1 -0
- package/dist/worker/routes.d.ts +135 -0
- package/dist/worker/routes.d.ts.map +1 -0
- package/dist/worker/routes.js +460 -0
- package/dist/worker/routes.js.map +1 -0
- package/dist/worker/rpc-methods-manager.d.ts +142 -0
- package/dist/worker/rpc-methods-manager.d.ts.map +1 -0
- package/dist/worker/rpc-methods-manager.js +195 -0
- package/dist/worker/rpc-methods-manager.js.map +1 -0
- package/dist/worker/rpc.d.ts +259 -0
- package/dist/worker/rpc.d.ts.map +1 -0
- package/dist/worker/rpc.js +398 -0
- package/dist/worker/rpc.js.map +1 -0
- package/dist/worker/schema-version.d.ts +209 -0
- package/dist/worker/schema-version.d.ts.map +1 -0
- package/dist/worker/schema-version.js +450 -0
- package/dist/worker/schema-version.js.map +1 -0
- package/dist/worker/session-manager.d.ts +282 -0
- package/dist/worker/session-manager.d.ts.map +1 -0
- package/dist/worker/session-manager.js +523 -0
- package/dist/worker/session-manager.js.map +1 -0
- package/dist/worker/shutdown-manager.d.ts +188 -0
- package/dist/worker/shutdown-manager.d.ts.map +1 -0
- package/dist/worker/shutdown-manager.js +347 -0
- package/dist/worker/shutdown-manager.js.map +1 -0
- package/dist/worker/sql-transform.d.ts +61 -0
- package/dist/worker/sql-transform.d.ts.map +1 -0
- package/dist/worker/sql-transform.js +312 -0
- package/dist/worker/sql-transform.js.map +1 -0
- package/dist/worker/types.d.ts +738 -0
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js +6 -0
- package/dist/worker/types.js.map +1 -0
- package/dist/worker/user-routes.d.ts +76 -0
- package/dist/worker/user-routes.d.ts.map +1 -0
- package/dist/worker/user-routes.js +188 -0
- package/dist/worker/user-routes.js.map +1 -0
- package/dist/worker/wal-facade.d.ts +138 -0
- package/dist/worker/wal-facade.d.ts.map +1 -0
- package/dist/worker/wal-facade.js +184 -0
- package/dist/worker/wal-facade.js.map +1 -0
- package/dist/worker/wal-r2.d.ts +271 -0
- package/dist/worker/wal-r2.d.ts.map +1 -0
- package/dist/worker/wal-r2.js +689 -0
- package/dist/worker/wal-r2.js.map +1 -0
- package/dist/worker/wal-replay.d.ts +361 -0
- package/dist/worker/wal-replay.d.ts.map +1 -0
- package/dist/worker/wal-replay.js +628 -0
- package/dist/worker/wal-replay.js.map +1 -0
- package/dist/worker/wal-retention.d.ts +389 -0
- package/dist/worker/wal-retention.d.ts.map +1 -0
- package/dist/worker/wal-retention.js +763 -0
- package/dist/worker/wal-retention.js.map +1 -0
- package/dist/worker/wal.d.ts +278 -0
- package/dist/worker/wal.d.ts.map +1 -0
- package/dist/worker/wal.js +467 -0
- package/dist/worker/wal.js.map +1 -0
- package/dist/worker/websocket.d.ts +85 -0
- package/dist/worker/websocket.d.ts.map +1 -0
- package/dist/worker/websocket.js +227 -0
- package/dist/worker/websocket.js.map +1 -0
- package/package.json +108 -0
- package/src/cdc/change-stream.ts +137 -0
- package/src/cdc/filter.ts +646 -0
- package/src/cdc/index.ts +112 -0
- package/src/cdc/resume-token.ts +280 -0
- package/src/cdc/transport/index.ts +7 -0
- package/src/cdc/transport/sse.ts +723 -0
- package/src/cdc/transport/websocket.ts +873 -0
- package/src/cdc/types.ts +346 -0
- package/src/config/index.ts +25 -0
- package/src/config/memory.ts +177 -0
- package/src/config/storage.ts +204 -0
- package/src/config/streaming.ts +147 -0
- package/src/config/timeouts.ts +221 -0
- package/src/extensions/config.test.ts +187 -0
- package/src/extensions/config.ts +278 -0
- package/src/extensions/geo.test.ts +455 -0
- package/src/extensions/geo.ts +858 -0
- package/src/extensions/index.test.ts +259 -0
- package/src/extensions/index.ts +227 -0
- package/src/extensions/loader.test.ts +555 -0
- package/src/extensions/loader.ts +588 -0
- package/src/extensions/pgmq-lite.test.ts +727 -0
- package/src/extensions/pgmq-lite.ts +770 -0
- package/src/extensions/plugins.test.ts +528 -0
- package/src/extensions/plugins.ts +718 -0
- package/src/extensions/registry.test.ts +202 -0
- package/src/extensions/registry.ts +267 -0
- package/src/extensions/vector.test.ts +195 -0
- package/src/extensions/vector.ts +217 -0
- package/src/iceberg/SCHEDULER.md +580 -0
- package/src/iceberg/analytics.test.ts +703 -0
- package/src/iceberg/analytics.ts +727 -0
- package/src/iceberg/catalog-api.test.ts +838 -0
- package/src/iceberg/catalog-api.ts +520 -0
- package/src/iceberg/catalog.test.ts +680 -0
- package/src/iceberg/catalog.ts +1007 -0
- package/src/iceberg/iceberg.test.ts +705 -0
- package/src/iceberg/index.ts +406 -0
- package/src/iceberg/metadata.test.ts +632 -0
- package/src/iceberg/metadata.ts +649 -0
- package/src/iceberg/optimizer.test.ts +868 -0
- package/src/iceberg/optimizer.ts +1287 -0
- package/src/iceberg/parquet.test.ts +899 -0
- package/src/iceberg/parquet.ts +1640 -0
- package/src/iceberg/r2-organization.test.ts +615 -0
- package/src/iceberg/r2-organization.ts +951 -0
- package/src/iceberg/scheduler-do-example.ts +364 -0
- package/src/iceberg/scheduler.test.ts +861 -0
- package/src/iceberg/scheduler.ts +1201 -0
- package/src/iceberg/schema.test.ts +547 -0
- package/src/iceberg/schema.ts +616 -0
- package/src/iceberg/snapshot-manager.test.ts +919 -0
- package/src/iceberg/snapshot-manager.ts +1369 -0
- package/src/iceberg/sql-router.test.ts +334 -0
- package/src/iceberg/sql-router.ts +337 -0
- package/src/iceberg/test-fixtures.ts +605 -0
- package/src/iceberg/time-travel-api.test.ts +1029 -0
- package/src/iceberg/time-travel-api.ts +731 -0
- package/src/iceberg/time-travel.test.ts +1218 -0
- package/src/iceberg/time-travel.ts +1052 -0
- package/src/iceberg/transformer.test.ts +689 -0
- package/src/iceberg/transformer.ts +1029 -0
- package/src/iceberg/types.ts +373 -0
- package/src/iceberg/writer.test.ts +716 -0
- package/src/iceberg/writer.ts +590 -0
- package/src/index.ts +212 -0
- package/src/lineage/index.ts +42 -0
- package/src/lineage/integration.ts +334 -0
- package/src/lineage/tracker.ts +1618 -0
- package/src/lineage/types.ts +354 -0
- package/src/middleware/index.ts +36 -0
- package/src/middleware/rate-limit-concurrent.test.ts +794 -0
- package/src/middleware/rate-limit.test.ts +1568 -0
- package/src/middleware/rate-limit.ts +840 -0
- package/src/migration-tooling/external-migration.test.ts +1864 -0
- package/src/migration-tooling/external-migration.ts +2355 -0
- package/src/migration-tooling/index.ts +19 -0
- package/src/migrations/ARCHITECTURE.md +474 -0
- package/src/migrations/PROGRESS_TRACKING.md +485 -0
- package/src/migrations/auto-migrator.test.ts +732 -0
- package/src/migrations/auto-migrator.ts +531 -0
- package/src/migrations/bulk-orchestrator.test.ts +801 -0
- package/src/migrations/bulk-orchestrator.ts +1039 -0
- package/src/migrations/compatibility.test.ts +958 -0
- package/src/migrations/compatibility.ts +902 -0
- package/src/migrations/do-migrations.test.ts +2620 -0
- package/src/migrations/do-migrations.ts +1289 -0
- package/src/migrations/do-migrations.types.ts +715 -0
- package/src/migrations/drizzle-compat.test.ts +210 -0
- package/src/migrations/drizzle-compat.ts +337 -0
- package/src/migrations/index.ts +334 -0
- package/src/migrations/migration-api.test.ts +438 -0
- package/src/migrations/migration-api.ts +704 -0
- package/src/migrations/progress-tracker-do.ts +518 -0
- package/src/migrations/progress-tracker-kv.ts +305 -0
- package/src/migrations/progress-tracker.test.ts +937 -0
- package/src/migrations/progress-tracker.ts +665 -0
- package/src/migrations/registry.test.ts +331 -0
- package/src/migrations/registry.ts +468 -0
- package/src/migrations/rollback.test.ts +644 -0
- package/src/migrations/runner.test.ts +807 -0
- package/src/migrations/runner.test.ts.backup +759 -0
- package/src/migrations/runner.ts +1459 -0
- package/src/migrations/schema-generator.test.ts +649 -0
- package/src/migrations/schema-generator.ts +513 -0
- package/src/migrations/testing.ts +1037 -0
- package/src/migrations/types.ts +573 -0
- package/src/migrations/validator.test.ts +660 -0
- package/src/migrations/validator.ts +741 -0
- package/src/observability/alerting.test.ts +1133 -0
- package/src/observability/alerting.ts +455 -0
- package/src/observability/analytics-engine.ts +733 -0
- package/src/observability/cost-metrics.ts +804 -0
- package/src/observability/cross-do-tracing.test.ts +516 -0
- package/src/observability/cross-do-tracing.ts +588 -0
- package/src/observability/dashboards/postgres-do-overview.json +1656 -0
- package/src/observability/error-rate-collector.test.ts +977 -0
- package/src/observability/error-rate-collector.ts +518 -0
- package/src/observability/exporters.test.ts +365 -0
- package/src/observability/exporters.ts +650 -0
- package/src/observability/health-check.test.ts +353 -0
- package/src/observability/health-check.ts +341 -0
- package/src/observability/index.test.ts +298 -0
- package/src/observability/index.ts +885 -0
- package/src/observability/instrumentation.test.ts +428 -0
- package/src/observability/instrumentation.ts +788 -0
- package/src/observability/memory-metrics.test.ts +355 -0
- package/src/observability/memory-metrics.ts +990 -0
- package/src/observability/metrics-endpoint.test.ts +402 -0
- package/src/observability/metrics-endpoint.ts +374 -0
- package/src/observability/metrics.test.ts +291 -0
- package/src/observability/metrics.ts +315 -0
- package/src/observability/observability-features.ts +1296 -0
- package/src/observability/prometheus.test.ts +292 -0
- package/src/observability/prometheus.ts +170 -0
- package/src/observability/propagation.test.ts +417 -0
- package/src/observability/propagation.ts +294 -0
- package/src/observability/query-latency.ts +586 -0
- package/src/observability/query-performance.test.ts +406 -0
- package/src/observability/query-performance.ts +491 -0
- package/src/observability/storage-tier-metrics.test.ts +633 -0
- package/src/observability/storage-tier-metrics.ts +570 -0
- package/src/observability/tier-cost-optimizer.ts +740 -0
- package/src/observability/tracer.test.ts +346 -0
- package/src/observability/tracer.ts +585 -0
- package/src/observability/types.test.ts +726 -0
- package/src/observability/types.ts +434 -0
- package/src/pglite/auto-demotion.test.ts +477 -0
- package/src/pglite/auto-demotion.ts +385 -0
- package/src/pglite/auto-promotion.test.ts +824 -0
- package/src/pglite/auto-promotion.ts +547 -0
- package/src/pglite/cache-layer.test.ts +469 -0
- package/src/pglite/cache-layer.ts +271 -0
- package/src/pglite/cold-start-manager.ts +1260 -0
- package/src/pglite/cold-start-optimizer.test.ts +937 -0
- package/src/pglite/cold-start-optimizer.ts +1895 -0
- package/src/pglite/dovfs-adapter.ts +1122 -0
- package/src/pglite/dovfs.ts +1258 -0
- package/src/pglite/etag-cache.test.ts +844 -0
- package/src/pglite/etag-cache.ts +526 -0
- package/src/pglite/index.ts +442 -0
- package/src/pglite/init.test.ts +455 -0
- package/src/pglite/init.ts +574 -0
- package/src/pglite/lifecycle.test.ts +599 -0
- package/src/pglite/lifecycle.ts +704 -0
- package/src/pglite/parallel-loader.test.ts +586 -0
- package/src/pglite/parallel-loader.ts +481 -0
- package/src/pglite/production-pglite.test.ts +666 -0
- package/src/pglite/production-pglite.ts +537 -0
- package/src/pglite/query-executor.ts +614 -0
- package/src/pglite/r2-layer.test.ts +501 -0
- package/src/pglite/r2-layer.ts +322 -0
- package/src/pglite/tiered-init.test.ts +725 -0
- package/src/pglite/tiered-init.ts +556 -0
- package/src/pglite/tiered-vfs.test.ts +726 -0
- package/src/pglite/tiered-vfs.ts +33 -0
- package/src/pglite/tiering-stats.test.ts +531 -0
- package/src/pglite/tiering-stats.ts +407 -0
- package/src/pglite/transaction-hooks.ts +343 -0
- package/src/pglite/warm-loader.test.ts +1701 -0
- package/src/pglite/warm-loader.ts +528 -0
- package/src/pglite/workers-pglite.ts +224 -0
- package/src/pglite-assets/pglite.data +0 -0
- package/src/pglite-assets/pglite.wasm +0 -0
- package/src/pglite.d.ts +47 -0
- package/src/playground/index.ts +137 -0
- package/src/playground/keyboard-shortcuts.ts +677 -0
- package/src/playground/playground.ts +323 -0
- package/src/playground/query-executor.ts +669 -0
- package/src/playground/query-history.ts +328 -0
- package/src/playground/result-formatter.ts +420 -0
- package/src/playground/sample-datasets.ts +674 -0
- package/src/playground/sample-queries.ts +1168 -0
- package/src/playground/schema-explorer.ts +558 -0
- package/src/playground/types.ts +518 -0
- package/src/readonly/cache-reader.test.ts +460 -0
- package/src/readonly/cache-reader.ts +313 -0
- package/src/readonly/config.test.ts +187 -0
- package/src/readonly/config.ts +128 -0
- package/src/readonly/index.ts +50 -0
- package/src/readonly/pglite-wrapper.test.ts +278 -0
- package/src/readonly/pglite-wrapper.ts +184 -0
- package/src/readonly/worker.test.ts +533 -0
- package/src/readonly/worker.ts +341 -0
- package/src/readonly/write-blocker.test.ts +459 -0
- package/src/readonly/write-blocker.ts +175 -0
- package/src/recovery/disaster-recovery.test.ts +618 -0
- package/src/recovery/disaster-recovery.ts +1181 -0
- package/src/recovery/index.ts +43 -0
- package/src/recovery/parquet-parser.ts +974 -0
- package/src/retention/index.ts +74 -0
- package/src/retention/policy.test.ts +571 -0
- package/src/retention/policy.ts +774 -0
- package/src/retention/purger.test.ts +465 -0
- package/src/retention/purger.ts +558 -0
- package/src/rls/auth-integration.test.ts +752 -0
- package/src/rls/auth-integration.ts +533 -0
- package/src/rls/generator.test.ts +829 -0
- package/src/rls/generator.ts +573 -0
- package/src/rls/index.ts +128 -0
- package/src/rls/policy.ts +208 -0
- package/src/rls/rls.test.ts +1071 -0
- package/src/rls/validator.test.ts +930 -0
- package/src/rls/validator.ts +895 -0
- package/src/routing/adaptive-router.test.ts +884 -0
- package/src/routing/adaptive-router.ts +845 -0
- package/src/routing/circuit-breaker.test.ts +1505 -0
- package/src/routing/circuit-breaker.ts +852 -0
- package/src/routing/cost-metrics.test.ts +565 -0
- package/src/routing/cost-metrics.ts +408 -0
- package/src/routing/do-connection-pool.test.ts +1109 -0
- package/src/routing/do-connection-pool.ts +828 -0
- package/src/routing/index.ts +158 -0
- package/src/routing/query-complexity-estimator.test.ts +356 -0
- package/src/routing/query-complexity-estimator.ts +444 -0
- package/src/routing/request-coalescing.test.ts +738 -0
- package/src/routing/request-coalescing.ts +475 -0
- package/src/routing/runtime-router.test.ts +436 -0
- package/src/routing/runtime-router.ts +357 -0
- package/src/routing/tenant-router.test.ts +2493 -0
- package/src/routing/tenant-router.ts +1908 -0
- package/src/routing/websocket-pool.test.ts +551 -0
- package/src/routing/websocket-pool.ts +577 -0
- package/src/storage/access-pattern-tracker.test.ts +874 -0
- package/src/storage/cache-layer.test.ts +560 -0
- package/src/storage/cache-layer.ts +328 -0
- package/src/storage/cost-aware-tiering.test.ts +652 -0
- package/src/storage/cost-aware-tiering.ts +794 -0
- package/src/storage/do-sqlite-blobs.test.ts +937 -0
- package/src/storage/index.ts +272 -0
- package/src/storage/interfaces.ts +974 -0
- package/src/storage/r2-layer.test.ts +653 -0
- package/src/storage/r2-layer.ts +434 -0
- package/src/storage/r2-overflow.ts +920 -0
- package/src/storage/r2-page-vfs.test.ts +2348 -0
- package/src/storage/r2-page-vfs.ts +1054 -0
- package/src/storage/swr-cache.test.ts +832 -0
- package/src/storage/swr-cache.ts +398 -0
- package/src/storage/swr-tiered-integration.test.ts +617 -0
- package/src/storage/tiered-orchestrator.test.ts +2441 -0
- package/src/storage/tiered-orchestrator.ts +2081 -0
- package/src/storage/tiered-vfs-swr.test.ts +736 -0
- package/src/storage/tiered-vfs-swr.ts +735 -0
- package/src/storage/tiered-vfs.test.ts +793 -0
- package/src/storage/tiered-vfs.ts +1082 -0
- package/src/streaming/backpressure-controller.ts +452 -0
- package/src/streaming/buffer-pool.ts +484 -0
- package/src/streaming/cdc-iceberg-connector.ts +605 -0
- package/src/streaming/index.ts +225 -0
- package/src/streaming/live-cdc-stream.ts +985 -0
- package/src/streaming/memory-bounded-stream.ts +443 -0
- package/src/streaming/query-streamer.ts +662 -0
- package/src/streaming/response-streaming.ts +557 -0
- package/src/types/branded.ts +1075 -0
- package/src/types/branded.ts.backup +273 -0
- package/src/types/utilities.ts +1023 -0
- package/src/types/wasm.d.ts +30 -0
- package/src/validation/typed-errors.test.ts +420 -0
- package/src/wal/replay-engine.ts +1264 -0
- package/src/worker/__mocks__/capnweb.ts +15 -0
- package/src/worker/__mocks__/pglite.data.ts +22 -0
- package/src/worker/__mocks__/pglite.wasm.ts +33 -0
- package/src/worker/auth-rate-limiter.test.ts +272 -0
- package/src/worker/auth-rate-limiter.ts +448 -0
- package/src/worker/auth.security-red.test.ts +1236 -0
- package/src/worker/auth.security.test.ts +822 -0
- package/src/worker/auth.test.ts +469 -0
- package/src/worker/auth.ts +1104 -0
- package/src/worker/cdc-backpressure.test.ts +726 -0
- package/src/worker/cdc-backpressure.ts +866 -0
- package/src/worker/cdc-sse.test.ts +780 -0
- package/src/worker/cdc-sse.ts +728 -0
- package/src/worker/cdc-websocket.ts +1229 -0
- package/src/worker/cdc-ws.test.ts +1009 -0
- package/src/worker/cdc.test.ts +327 -0
- package/src/worker/cdc.ts +289 -0
- package/src/worker/concerns/auth-concern.ts +179 -0
- package/src/worker/concerns/cdc-concern.ts +247 -0
- package/src/worker/concerns/index.ts +58 -0
- package/src/worker/concerns/query-execution-concern.ts +194 -0
- package/src/worker/concerns/storage-orchestration-concern.ts +373 -0
- package/src/worker/discriminated-types.test.ts +280 -0
- package/src/worker/do-auth-manager.ts +257 -0
- package/src/worker/do-decomposition.test.ts +1236 -0
- package/src/worker/do-pglite-manager.ts +302 -0
- package/src/worker/do.test.ts +2254 -0
- package/src/worker/do.ts +1878 -0
- package/src/worker/entry.ts +417 -0
- package/src/worker/errors.ts +285 -0
- package/src/worker/health-check-manager.test.ts +261 -0
- package/src/worker/health-check-manager.ts +231 -0
- package/src/worker/index.ts +389 -0
- package/src/worker/memory-pressure.test.ts +1460 -0
- package/src/worker/memory-pressure.ts +2650 -0
- package/src/worker/migration-manager.ts +582 -0
- package/src/worker/neon-compat.test.ts +332 -0
- package/src/worker/plugin-manager.ts +485 -0
- package/src/worker/postgres.do-rpc.d.ts +76 -0
- package/src/worker/proxy.ts +694 -0
- package/src/worker/query-execution-manager.test.ts +303 -0
- package/src/worker/query-execution-manager.ts +219 -0
- package/src/worker/query-executor.test.ts +282 -0
- package/src/worker/query-executor.ts +560 -0
- package/src/worker/query-stats-manager.ts +229 -0
- package/src/worker/result-handler.test.ts +364 -0
- package/src/worker/result-handler.ts +510 -0
- package/src/worker/routes.test.ts +795 -0
- package/src/worker/routes.ts +650 -0
- package/src/worker/rpc-methods-manager.test.ts +326 -0
- package/src/worker/rpc-methods-manager.ts +276 -0
- package/src/worker/rpc.ts +524 -0
- package/src/worker/schema-version.ts +605 -0
- package/src/worker/session-manager.test.ts +506 -0
- package/src/worker/session-manager.ts +732 -0
- package/src/worker/shutdown-manager.ts +469 -0
- package/src/worker/sql-transform.test.ts +286 -0
- package/src/worker/sql-transform.ts +368 -0
- package/src/worker/supabase-compat.test.ts +621 -0
- package/src/worker/types.test.ts +292 -0
- package/src/worker/types.ts +873 -0
- package/src/worker/user-routes.test.ts +703 -0
- package/src/worker/user-routes.ts +303 -0
- package/src/worker/wal-facade.ts +235 -0
- package/src/worker/wal-r2.test.ts +570 -0
- package/src/worker/wal-r2.ts +930 -0
- package/src/worker/wal-replay.test.ts +845 -0
- package/src/worker/wal-replay.ts +897 -0
- package/src/worker/wal-retention.test.ts +758 -0
- package/src/worker/wal-retention.ts +1075 -0
- package/src/worker/wal.test.ts +618 -0
- package/src/worker/wal.ts +697 -0
- package/src/worker/websocket.test.ts +296 -0
- package/src/worker/websocket.ts +284 -0
|
@@ -0,0 +1,757 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Utilities for postgres.do
|
|
3
|
+
*
|
|
4
|
+
* Reusable type patterns and utilities for improved type safety and inference.
|
|
5
|
+
* This module provides foundational type utilities used throughout the codebase.
|
|
6
|
+
*
|
|
7
|
+
* ## Type Categories
|
|
8
|
+
*
|
|
9
|
+
* 1. **Nullable Types** - Safe handling of null/undefined
|
|
10
|
+
* 2. **Constructor Types** - Class instantiation patterns
|
|
11
|
+
* 3. **Result Types** - Success/failure discriminated unions
|
|
12
|
+
* 4. **Deep Types** - Recursive type transformations
|
|
13
|
+
* 5. **Async Types** - Promise and awaitable patterns
|
|
14
|
+
* 6. **Record Utilities** - Object manipulation types
|
|
15
|
+
* 7. **Function Utilities** - Function signature types
|
|
16
|
+
*
|
|
17
|
+
* @module types/utilities
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Makes a type nullable (T | null).
|
|
21
|
+
*
|
|
22
|
+
* @typeParam T - The base type to make nullable
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* type MaybeUser = Nullable<User>
|
|
27
|
+
* // Equivalent to: User | null
|
|
28
|
+
*
|
|
29
|
+
* function findUser(id: string): Nullable<User> {
|
|
30
|
+
* return users.get(id) ?? null
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export type Nullable<T> = T | null;
|
|
35
|
+
/**
|
|
36
|
+
* Makes a type optional (T | undefined).
|
|
37
|
+
*
|
|
38
|
+
* @typeParam T - The base type to make optional
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* type MaybeConfig = Optional<Config>
|
|
43
|
+
* // Equivalent to: Config | undefined
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export type Optional<T> = T | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Makes a type nullable and optional (T | null | undefined).
|
|
49
|
+
* Also known as "Maybe" in some type systems.
|
|
50
|
+
*
|
|
51
|
+
* @typeParam T - The base type
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* type MaybeValue = Maybe<string>
|
|
56
|
+
* // Equivalent to: string | null | undefined
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export type Maybe<T> = T | null | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Excludes null and undefined from a type.
|
|
62
|
+
* Useful for asserting non-nullable values.
|
|
63
|
+
*
|
|
64
|
+
* @typeParam T - The type to make non-nullable
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* type Value = Maybe<string>
|
|
69
|
+
* type DefiniteValue = NonNullish<Value>
|
|
70
|
+
* // Result: string
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export type NonNullish<T> = Exclude<T, null | undefined>;
|
|
74
|
+
/**
|
|
75
|
+
* Represents a constructor function that creates instances of type T.
|
|
76
|
+
*
|
|
77
|
+
* @typeParam T - The type of instances created (defaults to object)
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* // Mixin pattern
|
|
82
|
+
* function withLogging<T extends Constructor>(Base: T) {
|
|
83
|
+
* return class extends Base {
|
|
84
|
+
* log(message: string) {
|
|
85
|
+
* console.log(message)
|
|
86
|
+
* }
|
|
87
|
+
* }
|
|
88
|
+
* }
|
|
89
|
+
*
|
|
90
|
+
* const LoggingUser = withLogging(User)
|
|
91
|
+
* const user = new LoggingUser()
|
|
92
|
+
* user.log('Hello')
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export type Constructor<T = object> = new (...args: unknown[]) => T;
|
|
96
|
+
/**
|
|
97
|
+
* Constructor with specific argument types.
|
|
98
|
+
*
|
|
99
|
+
* @typeParam T - The type of instances created
|
|
100
|
+
* @typeParam Args - Tuple of constructor argument types
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* type UserConstructor = ConstructorWithArgs<User, [string, number]>
|
|
105
|
+
* // Represents: new (name: string, age: number) => User
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export type ConstructorWithArgs<T, Args extends unknown[]> = new (...args: Args) => T;
|
|
109
|
+
/**
|
|
110
|
+
* Abstract constructor for abstract class patterns.
|
|
111
|
+
*
|
|
112
|
+
* @typeParam T - The type of instances created
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* abstract class BaseService {
|
|
117
|
+
* abstract process(): void
|
|
118
|
+
* }
|
|
119
|
+
*
|
|
120
|
+
* function createService<T extends AbstractConstructor<BaseService>>(
|
|
121
|
+
* ServiceClass: T
|
|
122
|
+
* ): InstanceType<T> {
|
|
123
|
+
* // ...
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export type AbstractConstructor<T = object> = abstract new (...args: unknown[]) => T;
|
|
128
|
+
/**
|
|
129
|
+
* Represents a successful result with a value.
|
|
130
|
+
*
|
|
131
|
+
* @typeParam T - The type of the success value
|
|
132
|
+
*/
|
|
133
|
+
export interface Success<T> {
|
|
134
|
+
readonly success: true;
|
|
135
|
+
readonly value: T;
|
|
136
|
+
readonly error?: never;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Represents a failed result with an error.
|
|
140
|
+
*
|
|
141
|
+
* @typeParam E - The type of the error (defaults to Error)
|
|
142
|
+
*/
|
|
143
|
+
export interface Failure<E = Error> {
|
|
144
|
+
readonly success: false;
|
|
145
|
+
readonly value?: never;
|
|
146
|
+
readonly error: E;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Result type for operations that can succeed or fail.
|
|
150
|
+
* Use this for explicit error handling without exceptions.
|
|
151
|
+
*
|
|
152
|
+
* @typeParam T - The success value type
|
|
153
|
+
* @typeParam E - The error type (defaults to Error)
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* function parseJson<T>(json: string): Result<T, SyntaxError> {
|
|
158
|
+
* try {
|
|
159
|
+
* return { success: true, value: JSON.parse(json) }
|
|
160
|
+
* } catch (e) {
|
|
161
|
+
* return { success: false, error: e as SyntaxError }
|
|
162
|
+
* }
|
|
163
|
+
* }
|
|
164
|
+
*
|
|
165
|
+
* const result = parseJson<User>('{"name":"John"}')
|
|
166
|
+
* if (result.success) {
|
|
167
|
+
* console.log(result.value.name) // TypeScript knows value exists
|
|
168
|
+
* } else {
|
|
169
|
+
* console.error(result.error.message) // TypeScript knows error exists
|
|
170
|
+
* }
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export type Result<T, E = Error> = Success<T> | Failure<E>;
|
|
174
|
+
/**
|
|
175
|
+
* Async result for operations that return promises.
|
|
176
|
+
*
|
|
177
|
+
* @typeParam T - The success value type
|
|
178
|
+
* @typeParam E - The error type
|
|
179
|
+
*/
|
|
180
|
+
export type AsyncResult<T, E = Error> = Promise<Result<T, E>>;
|
|
181
|
+
/**
|
|
182
|
+
* Creates a success result.
|
|
183
|
+
*
|
|
184
|
+
* @param value - The success value
|
|
185
|
+
* @returns A Success result
|
|
186
|
+
*/
|
|
187
|
+
export declare function success<T>(value: T): Success<T>;
|
|
188
|
+
/**
|
|
189
|
+
* Creates a failure result.
|
|
190
|
+
*
|
|
191
|
+
* @param error - The error
|
|
192
|
+
* @returns A Failure result
|
|
193
|
+
*/
|
|
194
|
+
export declare function failure<E = Error>(error: E): Failure<E>;
|
|
195
|
+
/**
|
|
196
|
+
* Type guard to check if a Result is a Success.
|
|
197
|
+
*
|
|
198
|
+
* @param result - The result to check
|
|
199
|
+
* @returns true if the result is a Success
|
|
200
|
+
*/
|
|
201
|
+
export declare function isSuccess<T, E>(result: Result<T, E>): result is Success<T>;
|
|
202
|
+
/**
|
|
203
|
+
* Type guard to check if a Result is a Failure.
|
|
204
|
+
*
|
|
205
|
+
* @param result - The result to check
|
|
206
|
+
* @returns true if the result is a Failure
|
|
207
|
+
*/
|
|
208
|
+
export declare function isFailure<T, E>(result: Result<T, E>): result is Failure<E>;
|
|
209
|
+
/**
|
|
210
|
+
* Recursively makes all properties of T optional.
|
|
211
|
+
*
|
|
212
|
+
* @typeParam T - The type to make deeply partial
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* interface Config {
|
|
217
|
+
* database: {
|
|
218
|
+
* host: string
|
|
219
|
+
* port: number
|
|
220
|
+
* }
|
|
221
|
+
* }
|
|
222
|
+
*
|
|
223
|
+
* type PartialConfig = DeepPartial<Config>
|
|
224
|
+
* // All nested properties are optional:
|
|
225
|
+
* // { database?: { host?: string; port?: number } }
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
export type DeepPartial<T> = T extends object ? {
|
|
229
|
+
[P in keyof T]?: DeepPartial<T[P]>;
|
|
230
|
+
} : T;
|
|
231
|
+
/**
|
|
232
|
+
* Recursively makes all properties of T required.
|
|
233
|
+
*
|
|
234
|
+
* @typeParam T - The type to make deeply required
|
|
235
|
+
*/
|
|
236
|
+
export type DeepRequired<T> = T extends object ? {
|
|
237
|
+
[P in keyof T]-?: DeepRequired<T[P]>;
|
|
238
|
+
} : T;
|
|
239
|
+
/**
|
|
240
|
+
* Recursively makes all properties of T readonly.
|
|
241
|
+
*
|
|
242
|
+
* @typeParam T - The type to make deeply readonly
|
|
243
|
+
*
|
|
244
|
+
* @example
|
|
245
|
+
* ```typescript
|
|
246
|
+
* const config: DeepReadonly<Config> = { ... }
|
|
247
|
+
* config.database.host = 'new' // Error: Cannot assign to readonly property
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export type DeepReadonly<T> = T extends object ? {
|
|
251
|
+
readonly [P in keyof T]: DeepReadonly<T[P]>;
|
|
252
|
+
} : T;
|
|
253
|
+
/**
|
|
254
|
+
* Recursively makes all properties of T mutable (removes readonly).
|
|
255
|
+
*
|
|
256
|
+
* @typeParam T - The type to make deeply mutable
|
|
257
|
+
*/
|
|
258
|
+
export type DeepMutable<T> = T extends object ? {
|
|
259
|
+
-readonly [P in keyof T]: DeepMutable<T[P]>;
|
|
260
|
+
} : T;
|
|
261
|
+
/**
|
|
262
|
+
* Extracts the resolved type from a Promise.
|
|
263
|
+
*
|
|
264
|
+
* @typeParam T - The Promise type
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* ```typescript
|
|
268
|
+
* type Result = Awaited<Promise<string>>
|
|
269
|
+
* // Result: string
|
|
270
|
+
* ```
|
|
271
|
+
*/
|
|
272
|
+
export type Awaited<T> = T extends Promise<infer U> ? U : T;
|
|
273
|
+
/**
|
|
274
|
+
* Represents a value that might be a Promise.
|
|
275
|
+
*
|
|
276
|
+
* @typeParam T - The base type
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```typescript
|
|
280
|
+
* function process(value: MaybePromise<string>): Promise<string> {
|
|
281
|
+
* return Promise.resolve(value)
|
|
282
|
+
* }
|
|
283
|
+
*
|
|
284
|
+
* process('sync') // Works
|
|
285
|
+
* process(Promise.resolve('async')) // Also works
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
289
|
+
/**
|
|
290
|
+
* Alias for MaybePromise - common in async APIs.
|
|
291
|
+
*/
|
|
292
|
+
export type Awaitable<T> = MaybePromise<T>;
|
|
293
|
+
/**
|
|
294
|
+
* Makes a function return type async (wrapped in Promise).
|
|
295
|
+
*
|
|
296
|
+
* @typeParam F - The function type
|
|
297
|
+
*/
|
|
298
|
+
export type AsyncFunction<F extends (...args: unknown[]) => unknown> = (...args: Parameters<F>) => Promise<ReturnType<F>>;
|
|
299
|
+
/**
|
|
300
|
+
* A record with string keys and values of type T.
|
|
301
|
+
*
|
|
302
|
+
* @typeParam T - The value type
|
|
303
|
+
*
|
|
304
|
+
* @example
|
|
305
|
+
* ```typescript
|
|
306
|
+
* type Headers = StringRecord<string>
|
|
307
|
+
* // Equivalent to: Record<string, string>
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
export type StringRecord<T> = Record<string, T>;
|
|
311
|
+
/**
|
|
312
|
+
* Extract keys of T that have values of type V.
|
|
313
|
+
*
|
|
314
|
+
* @typeParam T - The object type
|
|
315
|
+
* @typeParam V - The value type to match
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* ```typescript
|
|
319
|
+
* interface User {
|
|
320
|
+
* id: number
|
|
321
|
+
* name: string
|
|
322
|
+
* email: string
|
|
323
|
+
* }
|
|
324
|
+
*
|
|
325
|
+
* type StringKeys = KeysOfType<User, string>
|
|
326
|
+
* // Result: 'name' | 'email'
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export type KeysOfType<T, V> = {
|
|
330
|
+
[K in keyof T]: T[K] extends V ? K : never;
|
|
331
|
+
}[keyof T];
|
|
332
|
+
/**
|
|
333
|
+
* Pick properties from T where value extends V.
|
|
334
|
+
*
|
|
335
|
+
* @typeParam T - The source object type
|
|
336
|
+
* @typeParam V - The value type to filter by
|
|
337
|
+
*/
|
|
338
|
+
export type PickByType<T, V> = Pick<T, KeysOfType<T, V>>;
|
|
339
|
+
/**
|
|
340
|
+
* Omit properties from T where value extends V.
|
|
341
|
+
*
|
|
342
|
+
* @typeParam T - The source object type
|
|
343
|
+
* @typeParam V - The value type to filter by
|
|
344
|
+
*/
|
|
345
|
+
export type OmitByType<T, V> = Omit<T, KeysOfType<T, V>>;
|
|
346
|
+
/**
|
|
347
|
+
* Make specific properties of T required while keeping others unchanged.
|
|
348
|
+
*
|
|
349
|
+
* @typeParam T - The base type
|
|
350
|
+
* @typeParam K - Keys to make required
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* ```typescript
|
|
354
|
+
* interface Config {
|
|
355
|
+
* host?: string
|
|
356
|
+
* port?: number
|
|
357
|
+
* debug?: boolean
|
|
358
|
+
* }
|
|
359
|
+
*
|
|
360
|
+
* type RequiredHostConfig = RequireKeys<Config, 'host'>
|
|
361
|
+
* // Result: { host: string; port?: number; debug?: boolean }
|
|
362
|
+
* ```
|
|
363
|
+
*/
|
|
364
|
+
export type RequireKeys<T, K extends keyof T> = T & Required<Pick<T, K>>;
|
|
365
|
+
/**
|
|
366
|
+
* Make specific properties of T optional while keeping others unchanged.
|
|
367
|
+
*
|
|
368
|
+
* @typeParam T - The base type
|
|
369
|
+
* @typeParam K - Keys to make optional
|
|
370
|
+
*/
|
|
371
|
+
export type OptionalKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
372
|
+
/**
|
|
373
|
+
* Get the value type of a Record or object literal.
|
|
374
|
+
*
|
|
375
|
+
* @typeParam T - The object type
|
|
376
|
+
*/
|
|
377
|
+
export type ValueOf<T> = T[keyof T];
|
|
378
|
+
/**
|
|
379
|
+
* Any function type (use sparingly, prefer specific types).
|
|
380
|
+
*/
|
|
381
|
+
export type AnyFunction = (...args: any[]) => any;
|
|
382
|
+
/**
|
|
383
|
+
* A function that takes no arguments and returns void.
|
|
384
|
+
*/
|
|
385
|
+
export type VoidFunction = () => void;
|
|
386
|
+
/**
|
|
387
|
+
* A function that takes no arguments and returns T.
|
|
388
|
+
*/
|
|
389
|
+
export type Thunk<T> = () => T;
|
|
390
|
+
/**
|
|
391
|
+
* A predicate function that tests a value.
|
|
392
|
+
*
|
|
393
|
+
* @typeParam T - The type being tested
|
|
394
|
+
*/
|
|
395
|
+
export type Predicate<T> = (value: T) => boolean;
|
|
396
|
+
/**
|
|
397
|
+
* A type guard predicate function.
|
|
398
|
+
*
|
|
399
|
+
* @typeParam T - The input type
|
|
400
|
+
* @typeParam U - The narrowed type (must extend T)
|
|
401
|
+
*/
|
|
402
|
+
export type TypeGuard<T, U extends T> = (value: T) => value is U;
|
|
403
|
+
/**
|
|
404
|
+
* Extract the first parameter type of a function.
|
|
405
|
+
*/
|
|
406
|
+
export type FirstParameter<F extends AnyFunction> = Parameters<F>[0];
|
|
407
|
+
/**
|
|
408
|
+
* Extract the last parameter type of a function.
|
|
409
|
+
*/
|
|
410
|
+
export type LastParameter<F extends AnyFunction> = Parameters<F> extends [...unknown[], infer L] ? L : never;
|
|
411
|
+
/**
|
|
412
|
+
* Type guard to check if a value is not null or undefined.
|
|
413
|
+
*
|
|
414
|
+
* @param value - The value to check
|
|
415
|
+
* @returns true if value is neither null nor undefined
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* ```typescript
|
|
419
|
+
* const values = [1, null, 2, undefined, 3]
|
|
420
|
+
* const defined = values.filter(isDefined)
|
|
421
|
+
* // defined: number[] = [1, 2, 3]
|
|
422
|
+
* ```
|
|
423
|
+
*/
|
|
424
|
+
export declare function isDefined<T>(value: T | null | undefined): value is T;
|
|
425
|
+
/**
|
|
426
|
+
* Type guard to check if a value is a string.
|
|
427
|
+
*
|
|
428
|
+
* @param value - The value to check
|
|
429
|
+
* @returns true if value is a string
|
|
430
|
+
*/
|
|
431
|
+
export declare function isString(value: unknown): value is string;
|
|
432
|
+
/**
|
|
433
|
+
* Type guard to check if a value is a number (and not NaN).
|
|
434
|
+
*
|
|
435
|
+
* @param value - The value to check
|
|
436
|
+
* @returns true if value is a finite number
|
|
437
|
+
*/
|
|
438
|
+
export declare function isNumber(value: unknown): value is number;
|
|
439
|
+
/**
|
|
440
|
+
* Type guard to check if a value is a boolean.
|
|
441
|
+
*
|
|
442
|
+
* @param value - The value to check
|
|
443
|
+
* @returns true if value is a boolean
|
|
444
|
+
*/
|
|
445
|
+
export declare function isBoolean(value: unknown): value is boolean;
|
|
446
|
+
/**
|
|
447
|
+
* Type guard to check if a value is a plain object.
|
|
448
|
+
*
|
|
449
|
+
* @param value - The value to check
|
|
450
|
+
* @returns true if value is a plain object (not null, array, or other types)
|
|
451
|
+
*/
|
|
452
|
+
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
453
|
+
/**
|
|
454
|
+
* Type guard to check if a value is an array.
|
|
455
|
+
*
|
|
456
|
+
* @param value - The value to check
|
|
457
|
+
* @returns true if value is an array
|
|
458
|
+
*/
|
|
459
|
+
export declare function isArray<T = unknown>(value: unknown): value is T[];
|
|
460
|
+
/**
|
|
461
|
+
* Type guard to check if a value is a function.
|
|
462
|
+
*
|
|
463
|
+
* @param value - The value to check
|
|
464
|
+
* @returns true if value is a function
|
|
465
|
+
*/
|
|
466
|
+
export declare function isFunction(value: unknown): value is AnyFunction;
|
|
467
|
+
/**
|
|
468
|
+
* Type guard to check if a value is a Promise.
|
|
469
|
+
*
|
|
470
|
+
* @param value - The value to check
|
|
471
|
+
* @returns true if value is a Promise
|
|
472
|
+
*/
|
|
473
|
+
export declare function isPromise<T = unknown>(value: unknown): value is Promise<T>;
|
|
474
|
+
/**
|
|
475
|
+
* Type guard to check if a value is an Error.
|
|
476
|
+
*
|
|
477
|
+
* @param value - The value to check
|
|
478
|
+
* @returns true if value is an Error
|
|
479
|
+
*/
|
|
480
|
+
export declare function isError(value: unknown): value is Error;
|
|
481
|
+
/**
|
|
482
|
+
* Assert that a value is defined (not null or undefined).
|
|
483
|
+
* Throws an error if the assertion fails.
|
|
484
|
+
*
|
|
485
|
+
* @param value - The value to check
|
|
486
|
+
* @param message - Optional error message
|
|
487
|
+
* @throws Error if value is null or undefined
|
|
488
|
+
*
|
|
489
|
+
* @example
|
|
490
|
+
* ```typescript
|
|
491
|
+
* const user = users.get(id)
|
|
492
|
+
* assertDefined(user, `User ${id} not found`)
|
|
493
|
+
* // user is now narrowed to non-nullable type
|
|
494
|
+
* console.log(user.name)
|
|
495
|
+
* ```
|
|
496
|
+
*/
|
|
497
|
+
export declare function assertDefined<T>(value: T | null | undefined, message?: string): asserts value is T;
|
|
498
|
+
/**
|
|
499
|
+
* Assert that a condition is true.
|
|
500
|
+
* Throws an error if the condition is false.
|
|
501
|
+
*
|
|
502
|
+
* @param condition - The condition to check
|
|
503
|
+
* @param message - Optional error message
|
|
504
|
+
* @throws Error if condition is false
|
|
505
|
+
*/
|
|
506
|
+
export declare function assert(condition: boolean, message?: string): asserts condition;
|
|
507
|
+
/**
|
|
508
|
+
* Marks code that should be unreachable.
|
|
509
|
+
* Useful in exhaustive switch statements.
|
|
510
|
+
*
|
|
511
|
+
* @param value - The value that should never exist
|
|
512
|
+
* @param message - Optional error message
|
|
513
|
+
* @throws Error always
|
|
514
|
+
*
|
|
515
|
+
* @example
|
|
516
|
+
* ```typescript
|
|
517
|
+
* type Status = 'active' | 'inactive'
|
|
518
|
+
*
|
|
519
|
+
* function handleStatus(status: Status) {
|
|
520
|
+
* switch (status) {
|
|
521
|
+
* case 'active':
|
|
522
|
+
* return 'Active'
|
|
523
|
+
* case 'inactive':
|
|
524
|
+
* return 'Inactive'
|
|
525
|
+
* default:
|
|
526
|
+
* // TypeScript ensures all cases are handled
|
|
527
|
+
* return assertNever(status)
|
|
528
|
+
* }
|
|
529
|
+
* }
|
|
530
|
+
* ```
|
|
531
|
+
*/
|
|
532
|
+
export declare function assertNever(value: never, message?: string): never;
|
|
533
|
+
/**
|
|
534
|
+
* Capitalize the first letter of a string type.
|
|
535
|
+
*/
|
|
536
|
+
export type Capitalize<S extends string> = S extends `${infer F}${infer R}` ? `${Uppercase<F>}${R}` : S;
|
|
537
|
+
/**
|
|
538
|
+
* Uncapitalize the first letter of a string type.
|
|
539
|
+
*/
|
|
540
|
+
export type Uncapitalize<S extends string> = S extends `${infer F}${infer R}` ? `${Lowercase<F>}${R}` : S;
|
|
541
|
+
/**
|
|
542
|
+
* Join string literals with a delimiter.
|
|
543
|
+
*/
|
|
544
|
+
export type Join<T extends string[], D extends string> = T extends [] ? '' : T extends [infer F extends string] ? F : T extends [infer F extends string, ...infer R extends string[]] ? `${F}${D}${Join<R, D>}` : never;
|
|
545
|
+
/**
|
|
546
|
+
* Get the first element type of a tuple.
|
|
547
|
+
*/
|
|
548
|
+
export type Head<T extends unknown[]> = T extends [infer H, ...unknown[]] ? H : never;
|
|
549
|
+
/**
|
|
550
|
+
* Get all but the first element type of a tuple.
|
|
551
|
+
*/
|
|
552
|
+
export type Tail<T extends unknown[]> = T extends [unknown, ...infer R] ? R : never;
|
|
553
|
+
/**
|
|
554
|
+
* Get the last element type of a tuple.
|
|
555
|
+
*/
|
|
556
|
+
export type Last<T extends unknown[]> = T extends [...unknown[], infer L] ? L : never;
|
|
557
|
+
/**
|
|
558
|
+
* Get the length of a tuple.
|
|
559
|
+
*/
|
|
560
|
+
export type Length<T extends unknown[]> = T['length'];
|
|
561
|
+
/**
|
|
562
|
+
* Type-safe conversion of Uint8Array to BodyInit for Response/Request constructors.
|
|
563
|
+
*
|
|
564
|
+
* The Fetch API accepts Uint8Array as BodyInit in most environments, but TypeScript
|
|
565
|
+
* doesn't reflect this in its type definitions. This helper provides a type-safe
|
|
566
|
+
* conversion without using `as unknown as BodyInit`.
|
|
567
|
+
*
|
|
568
|
+
* @param data - The Uint8Array to convert
|
|
569
|
+
* @returns The data as a type compatible with Response/Request body
|
|
570
|
+
*
|
|
571
|
+
* @example
|
|
572
|
+
* ```typescript
|
|
573
|
+
* const data = new Uint8Array([1, 2, 3])
|
|
574
|
+
* const response = new Response(toBodyInit(data))
|
|
575
|
+
* ```
|
|
576
|
+
*/
|
|
577
|
+
export declare function toBodyInit(data: Uint8Array): BodyInit;
|
|
578
|
+
/**
|
|
579
|
+
* Type-safe extraction of ArrayBuffer from various typed array sources.
|
|
580
|
+
*
|
|
581
|
+
* Handles the common case of needing a clean ArrayBuffer from various input types,
|
|
582
|
+
* avoiding SharedArrayBuffer issues in Workers.
|
|
583
|
+
*
|
|
584
|
+
* @param source - The source to extract ArrayBuffer from
|
|
585
|
+
* @returns A non-shared ArrayBuffer copy
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
* ```typescript
|
|
589
|
+
* const typedArray = new Uint8Array([1, 2, 3])
|
|
590
|
+
* const buffer = toArrayBuffer(typedArray)
|
|
591
|
+
* ```
|
|
592
|
+
*/
|
|
593
|
+
export declare function toArrayBuffer(source: ArrayBufferLike | ArrayBufferView): ArrayBuffer;
|
|
594
|
+
/**
|
|
595
|
+
* Type guard for checking if a value is an ArrayBufferView (typed array or DataView).
|
|
596
|
+
*
|
|
597
|
+
* @param value - The value to check
|
|
598
|
+
* @returns true if value is an ArrayBufferView
|
|
599
|
+
*/
|
|
600
|
+
export declare function isArrayBufferView(value: unknown): value is ArrayBufferView;
|
|
601
|
+
/**
|
|
602
|
+
* Type guard for checking if a value is a Uint8Array.
|
|
603
|
+
*
|
|
604
|
+
* @param value - The value to check
|
|
605
|
+
* @returns true if value is a Uint8Array
|
|
606
|
+
*/
|
|
607
|
+
export declare function isUint8Array(value: unknown): value is Uint8Array;
|
|
608
|
+
/**
|
|
609
|
+
* Type-safe narrowing for Cloudflare storage types.
|
|
610
|
+
*
|
|
611
|
+
* When reading from KV or DO storage with generic types, the returned value
|
|
612
|
+
* needs to be narrowed. This helper provides runtime validation with proper
|
|
613
|
+
* type narrowing.
|
|
614
|
+
*
|
|
615
|
+
* @typeParam T - The expected type
|
|
616
|
+
* @param value - The value from storage
|
|
617
|
+
* @param validator - A type guard function for T
|
|
618
|
+
* @returns The value as T if valid, undefined otherwise
|
|
619
|
+
*
|
|
620
|
+
* @example
|
|
621
|
+
* ```typescript
|
|
622
|
+
* interface Config { host: string; port: number }
|
|
623
|
+
* const isConfig = (v: unknown): v is Config =>
|
|
624
|
+
* isPlainObject(v) && isString((v as Config).host)
|
|
625
|
+
*
|
|
626
|
+
* const config = narrowStorageValue<Config>(await storage.get('config'), isConfig)
|
|
627
|
+
* ```
|
|
628
|
+
*/
|
|
629
|
+
export declare function narrowStorageValue<T>(value: unknown, validator: (v: unknown) => v is T): T | undefined;
|
|
630
|
+
/**
|
|
631
|
+
* Assert that a storage value matches the expected type.
|
|
632
|
+
*
|
|
633
|
+
* @typeParam T - The expected type
|
|
634
|
+
* @param value - The value from storage
|
|
635
|
+
* @param validator - A type guard function for T
|
|
636
|
+
* @param message - Error message if validation fails
|
|
637
|
+
* @returns The value as T
|
|
638
|
+
* @throws Error if validation fails
|
|
639
|
+
*/
|
|
640
|
+
export declare function assertStorageValue<T>(value: unknown, validator: (v: unknown) => v is T, message?: string): T;
|
|
641
|
+
/**
|
|
642
|
+
* Helper type to create discriminated unions with a type field.
|
|
643
|
+
*
|
|
644
|
+
* @typeParam T - The discriminator value
|
|
645
|
+
* @typeParam P - The payload type
|
|
646
|
+
*
|
|
647
|
+
* @example
|
|
648
|
+
* ```typescript
|
|
649
|
+
* type UserMessage = DiscriminatedMessage<'user', { userId: string }>
|
|
650
|
+
* type SystemMessage = DiscriminatedMessage<'system', { code: number }>
|
|
651
|
+
* type Message = UserMessage | SystemMessage
|
|
652
|
+
*
|
|
653
|
+
* function handleMessage(msg: Message) {
|
|
654
|
+
* if (msg.type === 'user') {
|
|
655
|
+
* console.log(msg.userId) // TypeScript knows this is UserMessage
|
|
656
|
+
* }
|
|
657
|
+
* }
|
|
658
|
+
* ```
|
|
659
|
+
*/
|
|
660
|
+
export type DiscriminatedMessage<T extends string, P = object> = {
|
|
661
|
+
readonly type: T;
|
|
662
|
+
} & P;
|
|
663
|
+
/**
|
|
664
|
+
* Create a type guard for a discriminated union member.
|
|
665
|
+
*
|
|
666
|
+
* @typeParam U - The union type
|
|
667
|
+
* @typeParam T - The discriminator value to match
|
|
668
|
+
* @param type - The discriminator value
|
|
669
|
+
* @returns A type guard function
|
|
670
|
+
*
|
|
671
|
+
* @example
|
|
672
|
+
* ```typescript
|
|
673
|
+
* type Message = { type: 'text'; content: string } | { type: 'image'; url: string }
|
|
674
|
+
*
|
|
675
|
+
* const isTextMessage = createDiscriminatorGuard<Message, 'text'>('text')
|
|
676
|
+
* if (isTextMessage(msg)) {
|
|
677
|
+
* console.log(msg.content) // TypeScript knows this is text message
|
|
678
|
+
* }
|
|
679
|
+
* ```
|
|
680
|
+
*/
|
|
681
|
+
export declare function createDiscriminatorGuard<U extends {
|
|
682
|
+
type: string;
|
|
683
|
+
}, T extends U['type']>(type: T): (value: U) => value is Extract<U, {
|
|
684
|
+
type: T;
|
|
685
|
+
}>;
|
|
686
|
+
/**
|
|
687
|
+
* Safely cast a value through unknown with explicit intent.
|
|
688
|
+
*
|
|
689
|
+
* This function makes type casting explicit and searchable in the codebase.
|
|
690
|
+
* Use it when you need to bypass TypeScript's type system due to limitations
|
|
691
|
+
* in type definitions (e.g., third-party types that don't match runtime behavior).
|
|
692
|
+
*
|
|
693
|
+
* @typeParam T - The target type
|
|
694
|
+
* @param value - The value to cast
|
|
695
|
+
* @returns The value cast to type T
|
|
696
|
+
*
|
|
697
|
+
* @example
|
|
698
|
+
* ```typescript
|
|
699
|
+
* // Instead of: value as unknown as TargetType
|
|
700
|
+
* const result = unsafeCast<TargetType>(value)
|
|
701
|
+
* ```
|
|
702
|
+
*/
|
|
703
|
+
export declare function unsafeCast<T>(value: unknown): T;
|
|
704
|
+
/**
|
|
705
|
+
* Cast with runtime validation.
|
|
706
|
+
*
|
|
707
|
+
* Performs a cast with a runtime type check, throwing if validation fails.
|
|
708
|
+
*
|
|
709
|
+
* @typeParam T - The target type
|
|
710
|
+
* @param value - The value to cast
|
|
711
|
+
* @param validator - Type guard to validate the cast
|
|
712
|
+
* @param errorMessage - Optional error message
|
|
713
|
+
* @returns The value cast to type T
|
|
714
|
+
* @throws Error if validation fails
|
|
715
|
+
*
|
|
716
|
+
* @example
|
|
717
|
+
* ```typescript
|
|
718
|
+
* const num = safeCast<number>(input, isNumber, 'Expected number')
|
|
719
|
+
* ```
|
|
720
|
+
*/
|
|
721
|
+
export declare function safeCast<T>(value: unknown, validator: (v: unknown) => v is T, errorMessage?: string): T;
|
|
722
|
+
/**
|
|
723
|
+
* Type-safe property access with default value.
|
|
724
|
+
*
|
|
725
|
+
* @typeParam T - The object type
|
|
726
|
+
* @typeParam K - The key type
|
|
727
|
+
* @typeParam D - The default value type
|
|
728
|
+
* @param obj - The object to access
|
|
729
|
+
* @param key - The property key
|
|
730
|
+
* @param defaultValue - Default value if property is undefined
|
|
731
|
+
* @returns The property value or default
|
|
732
|
+
*
|
|
733
|
+
* @example
|
|
734
|
+
* ```typescript
|
|
735
|
+
* const config = { host: 'localhost' }
|
|
736
|
+
* const port = getProperty(config, 'port', 3000) // Returns 3000
|
|
737
|
+
* ```
|
|
738
|
+
*/
|
|
739
|
+
export declare function getProperty<T extends object, K extends keyof T, D>(obj: T, key: K, defaultValue: D): NonNullable<T[K]> | D;
|
|
740
|
+
/**
|
|
741
|
+
* Check if an object has a specific property.
|
|
742
|
+
*
|
|
743
|
+
* @typeParam K - The key type
|
|
744
|
+
* @param obj - The object to check
|
|
745
|
+
* @param key - The property key
|
|
746
|
+
* @returns true if the object has the property
|
|
747
|
+
*/
|
|
748
|
+
export declare function hasProperty<K extends string>(obj: unknown, key: K): obj is Record<K, unknown>;
|
|
749
|
+
/**
|
|
750
|
+
* Check if an object has specific properties.
|
|
751
|
+
*
|
|
752
|
+
* @param obj - The object to check
|
|
753
|
+
* @param keys - The property keys to check
|
|
754
|
+
* @returns true if the object has all specified properties
|
|
755
|
+
*/
|
|
756
|
+
export declare function hasProperties<K extends string>(obj: unknown, keys: K[]): obj is Record<K, unknown>;
|
|
757
|
+
//# sourceMappingURL=utilities.d.ts.map
|