@vibeorm/runtime 1.3.0 → 2.0.0-alpha.10

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 (96) hide show
  1. package/README.md +50 -107
  2. package/dist/adapter.d.ts +250 -0
  3. package/dist/adapter.d.ts.map +1 -0
  4. package/dist/bulk-upsert.d.ts +282 -0
  5. package/dist/bulk-upsert.d.ts.map +1 -0
  6. package/dist/client.d.ts +200 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/codecs.d.ts +170 -0
  9. package/dist/codecs.d.ts.map +1 -0
  10. package/dist/computed.d.ts +43 -0
  11. package/dist/computed.d.ts.map +1 -0
  12. package/dist/db-now.d.ts +41 -0
  13. package/dist/db-now.d.ts.map +1 -0
  14. package/dist/diagnostics/index.d.ts +12 -0
  15. package/dist/diagnostics/index.d.ts.map +1 -0
  16. package/dist/diagnostics/insight.d.ts +63 -0
  17. package/dist/diagnostics/insight.d.ts.map +1 -0
  18. package/dist/diagnostics/plan.d.ts +88 -0
  19. package/dist/diagnostics/plan.d.ts.map +1 -0
  20. package/dist/diagnostics/preview.d.ts +43 -0
  21. package/dist/diagnostics/preview.d.ts.map +1 -0
  22. package/dist/diagnostics/types.d.ts +223 -0
  23. package/dist/diagnostics/types.d.ts.map +1 -0
  24. package/dist/diagnostics/workload.d.ts +32 -0
  25. package/dist/diagnostics/workload.d.ts.map +1 -0
  26. package/dist/extensions.d.ts +102 -0
  27. package/dist/extensions.d.ts.map +1 -0
  28. package/dist/index.d.ts +59 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +13070 -0
  31. package/dist/index.js.map +43 -0
  32. package/dist/keyset-iterator.d.ts +73 -0
  33. package/dist/keyset-iterator.d.ts.map +1 -0
  34. package/dist/keyset.d.ts +121 -0
  35. package/dist/keyset.d.ts.map +1 -0
  36. package/dist/model-meta.d.ts +200 -0
  37. package/dist/model-meta.d.ts.map +1 -0
  38. package/dist/nested-writes.d.ts +67 -0
  39. package/dist/nested-writes.d.ts.map +1 -0
  40. package/dist/policy-operation.d.ts +14 -0
  41. package/dist/policy-operation.d.ts.map +1 -0
  42. package/dist/policy.d.ts +17 -0
  43. package/dist/policy.d.ts.map +1 -0
  44. package/dist/query-builder.d.ts +271 -0
  45. package/dist/query-builder.d.ts.map +1 -0
  46. package/dist/relation-key.d.ts +23 -0
  47. package/dist/relation-key.d.ts.map +1 -0
  48. package/dist/relation-loader.d.ts +46 -0
  49. package/dist/relation-loader.d.ts.map +1 -0
  50. package/dist/relation-plan.d.ts +141 -0
  51. package/dist/relation-plan.d.ts.map +1 -0
  52. package/dist/render-cache.d.ts +48 -0
  53. package/dist/render-cache.d.ts.map +1 -0
  54. package/dist/rls-context.d.ts +14 -0
  55. package/dist/rls-context.d.ts.map +1 -0
  56. package/dist/rls-readiness.d.ts +114 -0
  57. package/dist/rls-readiness.d.ts.map +1 -0
  58. package/dist/scoped.d.ts +104 -0
  59. package/dist/scoped.d.ts.map +1 -0
  60. package/dist/strict-args.d.ts +47 -0
  61. package/dist/strict-args.d.ts.map +1 -0
  62. package/dist/telemetry/collector.d.ts +53 -0
  63. package/dist/telemetry/collector.d.ts.map +1 -0
  64. package/dist/telemetry/config.d.ts +53 -0
  65. package/dist/telemetry/config.d.ts.map +1 -0
  66. package/dist/telemetry/fingerprint.d.ts +38 -0
  67. package/dist/telemetry/fingerprint.d.ts.map +1 -0
  68. package/dist/telemetry/index.d.ts +18 -0
  69. package/dist/telemetry/index.d.ts.map +1 -0
  70. package/dist/telemetry/recorder.d.ts +93 -0
  71. package/dist/telemetry/recorder.d.ts.map +1 -0
  72. package/dist/telemetry/statement.d.ts +53 -0
  73. package/dist/telemetry/statement.d.ts.map +1 -0
  74. package/dist/telemetry/types.d.ts +265 -0
  75. package/dist/telemetry/types.d.ts.map +1 -0
  76. package/dist/validators.d.ts +61 -0
  77. package/dist/validators.d.ts.map +1 -0
  78. package/dist/views.d.ts +97 -0
  79. package/dist/views.d.ts.map +1 -0
  80. package/dist/write-scope.d.ts +14 -0
  81. package/dist/write-scope.d.ts.map +1 -0
  82. package/package.json +33 -26
  83. package/src/adapter.ts +0 -146
  84. package/src/client.ts +0 -2172
  85. package/src/coerce.ts +0 -184
  86. package/src/count-loader.ts +0 -152
  87. package/src/errors.ts +0 -492
  88. package/src/id-generators.ts +0 -151
  89. package/src/index.ts +0 -55
  90. package/src/lateral-join-builder.ts +0 -1053
  91. package/src/query-builder.ts +0 -1832
  92. package/src/relation-loader.ts +0 -534
  93. package/src/retry.ts +0 -183
  94. package/src/types.ts +0 -317
  95. package/src/view.ts +0 -629
  96. package/src/where-builder.ts +0 -772
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Runtime side of the extension framework (extensions.md §3).
3
+ *
4
+ * The runtime stays extension-AGNOSTIC: it never imports an extension. What it
5
+ * offers is plumbing —
6
+ * - mounts: generate-time baked surfaces (D9) attached to model delegates
7
+ * and the client on every build, transaction clients included;
8
+ * - a manifest check throwing VIBE_STALE_CLIENT before the first query;
9
+ * - where-operator injection (`{ name: { similarTo: … } }`) compiled through
10
+ * the extension's sql plane into bound fragments;
11
+ * - onConnect session hooks run by `$connect()`.
12
+ */
13
+ import type { Dialect, ExtensionManifestEntry, Provider, VibeExtension } from "@vibeorm/schema";
14
+ import type { SqlDialect, SqlExpr } from "@vibeorm/sql";
15
+ import type { ExtensionOperatorFn, ModelMeta, RuntimeMeta } from "./model-meta.ts";
16
+ /** What a mounted extension surface gets to work with. */
17
+ export type ExtensionMountContext = {
18
+ readonly extension: string;
19
+ readonly dialect: SqlDialect;
20
+ readonly provider: Provider;
21
+ readonly meta: RuntimeMeta;
22
+ /** The mount's model, or `null` for client-scope mounts. */
23
+ readonly model: ModelMeta | null;
24
+ /**
25
+ * Execute a row-returning statement on the CURRENT connection (transaction
26
+ * clients re-mount with their tx adapter). Rows decode through the mount
27
+ * model's codec plan; unknown columns (scores, distances) pass verbatim.
28
+ * Reports to `$on("query")` under `method`.
29
+ */
30
+ readonly executeRows: (params: {
31
+ text: string;
32
+ values: readonly unknown[];
33
+ method?: string;
34
+ }) => Promise<Record<string, unknown>[]>;
35
+ /** Compile a user `where` tree for AND-ing into extension SQL. */
36
+ readonly compileWhere: (params: {
37
+ where: Record<string, unknown>;
38
+ model?: string;
39
+ qualify?: string;
40
+ }) => SqlExpr | undefined;
41
+ };
42
+ /**
43
+ * One baked client surface: the generated client passes these to
44
+ * `createClient` and the runtime attaches `create(ctx)`'s result under
45
+ * `property` on the model delegate (scope "model") or the client (scope
46
+ * "client", `$`-prefixed) — on every client build, so `$transaction` callbacks
47
+ * see the same surface.
48
+ */
49
+ export type ClientExtensionMount = {
50
+ readonly extension: string;
51
+ readonly scope: "model" | "client";
52
+ /** Model name (IR name) — required for scope "model". */
53
+ readonly model?: string;
54
+ readonly property: string;
55
+ readonly create: (ctx: ExtensionMountContext) => unknown;
56
+ };
57
+ /** Extension wiring accepted by `createClient`. */
58
+ export type ClientExtensionsOptions = {
59
+ /**
60
+ * Live extension instances (`[search(), trgm({ … })]`). Provide the where-
61
+ * operator and onConnect planes, and are verified against `manifest`.
62
+ */
63
+ readonly instances?: readonly VibeExtension[];
64
+ /** Manifest baked by the generator — presence turns on the staleness check. */
65
+ readonly manifest?: readonly ExtensionManifestEntry[];
66
+ /** Baked surface mounts emitted by the generator. */
67
+ readonly mounts?: readonly ClientExtensionMount[];
68
+ };
69
+ /**
70
+ * Compare the generated client's baked manifest against the live extension
71
+ * instances. Any drift — missing, added, version or options change — throws
72
+ * `VIBE_STALE_CLIENT` at construction instead of undefined-method surprises
73
+ * at query time.
74
+ */
75
+ export declare function assertExtensionManifest(params: {
76
+ manifest: readonly ExtensionManifestEntry[];
77
+ instances: readonly VibeExtension[] | undefined;
78
+ }): void;
79
+ /**
80
+ * Index the configured extensions' where-operators, pre-bound to the dialect
81
+ * and provider. `null` when none contribute any (the common case — keeps the
82
+ * hot path free of an empty-map lookup).
83
+ */
84
+ export declare function buildExtensionOperatorMap(params: {
85
+ instances: readonly VibeExtension[];
86
+ dialect: Dialect;
87
+ provider: Provider;
88
+ }): ReadonlyMap<string, ExtensionOperatorFn> | null;
89
+ /** A prepared onConnect hook — run by `$connect()` after the adapter connects. */
90
+ export type ConnectHook = (params: {
91
+ execute: (execParams: {
92
+ text: string;
93
+ values?: readonly unknown[];
94
+ }) => Promise<readonly Record<string, unknown>[]>;
95
+ }) => Promise<void>;
96
+ /** Collect the configured extensions' onConnect hooks, options pre-bound. */
97
+ export declare function buildConnectHooks(params: {
98
+ instances: readonly VibeExtension[];
99
+ dialect: Dialect;
100
+ provider: Provider;
101
+ }): readonly ConnectHook[];
102
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @vibeorm/runtime — driver-agnostic query engine and client runtime.
3
+ * P2 core slice: adapter contract (frozen), runtime metadata, the codec table,
4
+ * the query builder and the dynamic client. The typed generated client wraps
5
+ * this surface in P2 proper.
6
+ */
7
+ export { toSqlExecutor } from "./adapter.ts";
8
+ export { dbNow, isDbNow } from "./db-now.ts";
9
+ export type { DbNow } from "./db-now.ts";
10
+ export type { DatabaseAdapter, IsolationLevel, QueryResult, SqlExecutor, TransactionOptions, } from "./adapter.ts";
11
+ export type { AdapterBudgetSupport, StatementTimeoutSupport, TransactionDeadline, TransactionDeadlineEnforcement, TransactionDeadlineSupport, } from "./adapter.ts";
12
+ export { buildRuntimeMeta, generateCuid, generateDefaultValue, generateNanoid, generateUlid, generateUuid, getFieldMeta, getModelMeta, toClientName, } from "./model-meta.ts";
13
+ export type { ComputedFieldMeta, DefaultOrigin, ExtensionOperatorFn, FieldMeta, ModelMeta, RuntimeMeta, } from "./model-meta.ts";
14
+ export { DIALECT_CODECS, MYSQL_CODECS, POSTGRES_CODECS, SQLITE_CODECS, decodeAggregateValue, decodeIsNoop, decodeRow, decodeRows, decodeValue, encodeValue, getCodec, } from "./codecs.ts";
15
+ export type { CodecTable, ScalarCodec, WireFidelity } from "./codecs.ts";
16
+ export { COUNT_ALIAS, buildQuery, compileOrderBy, compileSelect, compileWhere, lateralColumnAlias, resolveResultShape, } from "./query-builder.ts";
17
+ export type { AggregateKey, AggregateSelection, AggregateSpec, BuilderClientOptions, QueryMethod, QueryPlan, RelationStrategy, } from "./query-builder.ts";
18
+ export { DIAGNOSTIC_THRESHOLDS, PLAN_DEFAULTS, analyzeOperationTelemetry, explainOperation, explainSql, parameterTypeTag, parsePostgresPlan, previewOperation, readWorkloadStatistics, recommendFromPlan, } from "./diagnostics/index.ts";
19
+ export type { DiagnosticFinding, DiagnosticFindingCode, ExplainMode, IndexCandidate, IndexFacts, OperationPreview, ParsedPlan, PlanContext, PlanNode, PreviewLimitation, PreviewLimitationCode, PreviewStatement, QueryPlanReport, SlowOperation, SuspectedPattern, TableFacts, TelemetryDiagnosticReport, WorkloadAvailability, WorkloadReport, WorkloadStatement, } from "./diagnostics/index.ts";
20
+ export { resolveRelationLink, resolveRelationSelection } from "./relation-plan.ts";
21
+ export type { RelationArgs, RelationKind, RelationLink, RelationSelection, RelationTreeNode, } from "./relation-plan.ts";
22
+ export { attachLateralRelations, attachRelations } from "./relation-loader.ts";
23
+ export type { RelationExecutor } from "./relation-loader.ts";
24
+ export { createWithNested, hasNestedWrites, updateWithNested } from "./nested-writes.ts";
25
+ export type { StatementRunner, WriteContext } from "./nested-writes.ts";
26
+ export { applyComputedFields, assertComputedManifest } from "./computed.ts";
27
+ export type { ClientComputedOptions } from "./computed.ts";
28
+ export { assertExtensionManifest, buildConnectHooks, buildExtensionOperatorMap, } from "./extensions.ts";
29
+ export type { ClientExtensionMount, ClientExtensionsOptions, ConnectHook, ExtensionMountContext, } from "./extensions.ts";
30
+ export { ViewResult, attachDefineView, createView } from "./views.ts";
31
+ export { applyWriteValidators, validateWriteData } from "./validators.ts";
32
+ export type { StandardIssue, StandardSchemaV1, WriteValidators } from "./validators.ts";
33
+ export { attachPolicy } from "./policy.ts";
34
+ export type { PolicyContextValue } from "./policy.ts";
35
+ export { attachScoped, createScopeRewriter, resolveScopedModels, rewriteScopedCall } from "./scoped.ts";
36
+ export type { RewrittenScopedCall, ScopeRewriter, ScopeValue, ScopedClientConfig, ScopedModelEntry, ScopedModelsMap, ScopedNestedMode, } from "./scoped.ts";
37
+ export type { DefineViewFn, ViewClientShape, ViewDefinition, ViewModelDelegate } from "./views.ts";
38
+ export { assertNativeRlsReady, formatNativeRlsReport, inspectNativeRls, inspectNativeRlsTransaction } from "./rls-readiness.ts";
39
+ export type { NativeRlsCheck, NativeRlsCheckName, NativeRlsCheckStatus, NativeRlsReport, NativeRlsUnsafeObject } from "./rls-readiness.ts";
40
+ export { createClient } from "./client.ts";
41
+ export type { BatchResult, ClientOptions, ClientRow, DynamicClient, ModelDelegate, QueryEvent, } from "./client.ts";
42
+ export { KEYSET_MAX_PAGE_SIZE, KEYSET_TOKEN_PREFIX, KEYSET_TOKEN_VERSION, compileKeysetOrderPlan, decodeKeysetToken, encodeKeysetToken, keysetRowIsAfter, keysetRowValues, } from "./keyset.ts";
43
+ export type { KeysetDirection, KeysetNulls, KeysetOrderInput, KeysetOrderKey, KeysetOrderPlan, KeysetTimestampPrecision, KeysetValueTag, } from "./keyset.ts";
44
+ export { iterateKeyset } from "./keyset-iterator.ts";
45
+ export type { KeysetIterateOptions, KeysetIterator, KeysetPageSource } from "./keyset-iterator.ts";
46
+ export { compileKeysetOrderInputs } from "./query-builder.ts";
47
+ export { affectedRowsAreRowCounts } from "./bulk-upsert.ts";
48
+ export type { UpsertManyResult } from "./bulk-upsert.ts";
49
+ export { SKIP, checkStrictArguments } from "./strict-args.ts";
50
+ export type { Skip } from "./strict-args.ts";
51
+ export { TELEMETRY_DEFAULTS, resolveTelemetryConfig } from "./telemetry/config.ts";
52
+ export type { ResolvedTelemetryConfig, TelemetryDefaults } from "./telemetry/config.ts";
53
+ export { normalizeSql, queryFingerprint } from "./telemetry/fingerprint.ts";
54
+ export { createTelemetryRecorder } from "./telemetry/recorder.ts";
55
+ export type { TelemetryBeginInput, TelemetryOperationScope, TelemetryRecorder, TelemetrySettleInput, TelemetryStatementInput, } from "./telemetry/recorder.ts";
56
+ export { createTelemetryCollector } from "./telemetry/collector.ts";
57
+ export type { TelemetryCollector, TelemetryOperationNode } from "./telemetry/collector.ts";
58
+ export type { TelemetryDelivery, TelemetryDropEvent, TelemetryExportPhase, TelemetryExporter, TelemetryHandle, TelemetryHistogram, TelemetryMetricsSnapshot, TelemetryOperationEvent, TelemetryOperationKind, TelemetryOptions, TelemetryOutcome, TelemetryParentContext, TelemetrySamplerInput, TelemetryStage, TelemetryStatementEvent, TelemetryStatementKind, TelemetryTimingDetail, } from "./telemetry/types.ts";
59
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}