@sunfall/arc-db 0.1.0-alpha.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/LICENSE +21 -0
- package/dist/change-feed-dispatcher.d.ts +21 -0
- package/dist/change-feed-dispatcher.d.ts.map +1 -0
- package/dist/change-feed-dispatcher.js +53 -0
- package/dist/change-feed-dispatcher.js.map +1 -0
- package/dist/collection-change-feed-runtime.d.ts +32 -0
- package/dist/collection-change-feed-runtime.d.ts.map +1 -0
- package/dist/collection-change-feed-runtime.js +50 -0
- package/dist/collection-change-feed-runtime.js.map +1 -0
- package/dist/collection-contract.d.ts +525 -0
- package/dist/collection-contract.d.ts.map +1 -0
- package/dist/collection-contract.js +4 -0
- package/dist/collection-contract.js.map +1 -0
- package/dist/collection-definition-snapshot.d.ts +64 -0
- package/dist/collection-definition-snapshot.d.ts.map +1 -0
- package/dist/collection-definition-snapshot.js +122 -0
- package/dist/collection-definition-snapshot.js.map +1 -0
- package/dist/collection-errors.d.ts +38 -0
- package/dist/collection-errors.d.ts.map +1 -0
- package/dist/collection-errors.js +17 -0
- package/dist/collection-errors.js.map +1 -0
- package/dist/collection-ids.d.ts +6 -0
- package/dist/collection-ids.d.ts.map +1 -0
- package/dist/collection-ids.js +6 -0
- package/dist/collection-ids.js.map +1 -0
- package/dist/collection-index-materialization.d.ts +29 -0
- package/dist/collection-index-materialization.d.ts.map +1 -0
- package/dist/collection-index-materialization.js +118 -0
- package/dist/collection-index-materialization.js.map +1 -0
- package/dist/collection-mutation-queue.d.ts +10 -0
- package/dist/collection-mutation-queue.d.ts.map +1 -0
- package/dist/collection-mutation-queue.js +46 -0
- package/dist/collection-mutation-queue.js.map +1 -0
- package/dist/collection-mutation-workflow.d.ts +18 -0
- package/dist/collection-mutation-workflow.d.ts.map +1 -0
- package/dist/collection-mutation-workflow.js +252 -0
- package/dist/collection-mutation-workflow.js.map +1 -0
- package/dist/collection-persistence.d.ts +48 -0
- package/dist/collection-persistence.d.ts.map +1 -0
- package/dist/collection-persistence.js +323 -0
- package/dist/collection-persistence.js.map +1 -0
- package/dist/collection-policy.d.ts +5 -0
- package/dist/collection-policy.d.ts.map +1 -0
- package/dist/collection-policy.js +7 -0
- package/dist/collection-policy.js.map +1 -0
- package/dist/collection-preload.d.ts +21 -0
- package/dist/collection-preload.d.ts.map +1 -0
- package/dist/collection-preload.js +4 -0
- package/dist/collection-preload.js.map +1 -0
- package/dist/collection-projection-callback-policy.d.ts +14 -0
- package/dist/collection-projection-callback-policy.d.ts.map +1 -0
- package/dist/collection-projection-callback-policy.js +25 -0
- package/dist/collection-projection-callback-policy.js.map +1 -0
- package/dist/collection-reactive-binding.d.ts +72 -0
- package/dist/collection-reactive-binding.d.ts.map +1 -0
- package/dist/collection-reactive-binding.js +95 -0
- package/dist/collection-reactive-binding.js.map +1 -0
- package/dist/collection-registry.d.ts +56 -0
- package/dist/collection-registry.d.ts.map +1 -0
- package/dist/collection-registry.js +123 -0
- package/dist/collection-registry.js.map +1 -0
- package/dist/collection-row-ingress.d.ts +16 -0
- package/dist/collection-row-ingress.d.ts.map +1 -0
- package/dist/collection-row-ingress.js +110 -0
- package/dist/collection-row-ingress.js.map +1 -0
- package/dist/collection-runtime.d.ts +20 -0
- package/dist/collection-runtime.d.ts.map +1 -0
- package/dist/collection-runtime.js +256 -0
- package/dist/collection-runtime.js.map +1 -0
- package/dist/collection-snapshot-codec.d.ts +62 -0
- package/dist/collection-snapshot-codec.d.ts.map +1 -0
- package/dist/collection-snapshot-codec.js +563 -0
- package/dist/collection-snapshot-codec.js.map +1 -0
- package/dist/collection-state.d.ts +72 -0
- package/dist/collection-state.d.ts.map +1 -0
- package/dist/collection-state.js +276 -0
- package/dist/collection-state.js.map +1 -0
- package/dist/collection-sync-load-policy.d.ts +17 -0
- package/dist/collection-sync-load-policy.d.ts.map +1 -0
- package/dist/collection-sync-load-policy.js +245 -0
- package/dist/collection-sync-load-policy.js.map +1 -0
- package/dist/collection-value-detachment.d.ts +34 -0
- package/dist/collection-value-detachment.d.ts.map +1 -0
- package/dist/collection-value-detachment.js +248 -0
- package/dist/collection-value-detachment.js.map +1 -0
- package/dist/collection-write-commit.d.ts +32 -0
- package/dist/collection-write-commit.d.ts.map +1 -0
- package/dist/collection-write-commit.js +51 -0
- package/dist/collection-write-commit.js.map +1 -0
- package/dist/flush-policy.d.ts +130 -0
- package/dist/flush-policy.d.ts.map +1 -0
- package/dist/flush-policy.js +96 -0
- package/dist/flush-policy.js.map +1 -0
- package/dist/index.d.ts +481 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +251 -0
- package/dist/index.js.map +1 -0
- package/dist/live-query-collection-materialization.d.ts +47 -0
- package/dist/live-query-collection-materialization.d.ts.map +1 -0
- package/dist/live-query-collection-materialization.js +231 -0
- package/dist/live-query-collection-materialization.js.map +1 -0
- package/dist/live-query-collection.d.ts +23 -0
- package/dist/live-query-collection.d.ts.map +1 -0
- package/dist/live-query-collection.js +94 -0
- package/dist/live-query-collection.js.map +1 -0
- package/dist/live-query-runtime.d.ts +8 -0
- package/dist/live-query-runtime.d.ts.map +1 -0
- package/dist/live-query-runtime.js +228 -0
- package/dist/live-query-runtime.js.map +1 -0
- package/dist/live-query-state.d.ts +11 -0
- package/dist/live-query-state.d.ts.map +1 -0
- package/dist/live-query-state.js +130 -0
- package/dist/live-query-state.js.map +1 -0
- package/dist/query-builder.d.ts +294 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +373 -0
- package/dist/query-builder.js.map +1 -0
- package/dist/query-context-identity.d.ts +19 -0
- package/dist/query-context-identity.d.ts.map +1 -0
- package/dist/query-context-identity.js +41 -0
- package/dist/query-context-identity.js.map +1 -0
- package/dist/query-execution-plan.d.ts +27 -0
- package/dist/query-execution-plan.d.ts.map +1 -0
- package/dist/query-execution-plan.js +69 -0
- package/dist/query-execution-plan.js.map +1 -0
- package/dist/query-plan.d.ts +200 -0
- package/dist/query-plan.d.ts.map +1 -0
- package/dist/query-plan.js +524 -0
- package/dist/query-plan.js.map +1 -0
- package/dist/query-source-adapter.d.ts +25 -0
- package/dist/query-source-adapter.d.ts.map +1 -0
- package/dist/query-source-adapter.js +14 -0
- package/dist/query-source-adapter.js.map +1 -0
- package/dist/runtime-collection-store.d.ts +38 -0
- package/dist/runtime-collection-store.d.ts.map +1 -0
- package/dist/runtime-collection-store.js +149 -0
- package/dist/runtime-collection-store.js.map +1 -0
- package/dist/server-collection.d.ts +84 -0
- package/dist/server-collection.d.ts.map +1 -0
- package/dist/server-collection.js +84 -0
- package/dist/server-collection.js.map +1 -0
- package/dist/sqlite-persistence.d.ts +239 -0
- package/dist/sqlite-persistence.d.ts.map +1 -0
- package/dist/sqlite-persistence.js +345 -0
- package/dist/sqlite-persistence.js.map +1 -0
- package/dist/sync-adapter.d.ts +233 -0
- package/dist/sync-adapter.d.ts.map +1 -0
- package/dist/sync-adapter.js +226 -0
- package/dist/sync-adapter.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { type PlainValue, type ReadableSignal } from "@sunfall/arc-core";
|
|
2
|
+
import { Effect } from "effect";
|
|
3
|
+
import { type AnyQueryAggregateRecord, type AnyQueryContext, type AnyQueryGrouping, type QueryAggregate, type QueryAggregateRecord, type QueryAggregateResult, type QueryContext, type QueryGroupKey, type QueryJoin, type QueryJoinKey, type QueryJoinResult, type QueryJoinedContext, type QueryJoinStrategy, type QueryOrder, QueryEvaluationError as QueryEvaluationErrorConstructor, UnsupportedLiveQuery as UnsupportedLiveQueryConstructor, type QueryEvaluationError, type QueryPlanDiagnostics, type QueryPlanJoinDiagnostics, type QueryPlanSourceDiagnostics, type RejectPlainQueryRecord, type QuerySourcesError, type QuerySourcesRequirements, type QuerySortDirection, type QuerySortValue, type SourceRecord, type UnsupportedLiveQuery as UnsupportedLiveQueryType } from "./query-plan.js";
|
|
4
|
+
import type { AnyCollection, CollectionError, CollectionRuntimeError, CollectionRequirements, CollectionRowValue } from "./collection-contract.js";
|
|
5
|
+
declare const QueryBuilderTypeId: unique symbol;
|
|
6
|
+
/**
|
|
7
|
+
* Immutable builder for collection-backed queries.
|
|
8
|
+
*
|
|
9
|
+
* Builders are cheap descriptions. `execute` reads current collection state
|
|
10
|
+
* synchronously; `Query.onceEffect` and `Query.live` preload sources first.
|
|
11
|
+
*/
|
|
12
|
+
export interface QueryBuilderInterface<TContext extends AnyQueryContext, TResult, E = never, R = never> {
|
|
13
|
+
readonly [QueryBuilderTypeId]: typeof QueryBuilderTypeId;
|
|
14
|
+
readonly Type?: {
|
|
15
|
+
readonly Error: E;
|
|
16
|
+
readonly Requirements: R;
|
|
17
|
+
};
|
|
18
|
+
/** Returns a new query with an additional boolean filter. */
|
|
19
|
+
where(predicate: (row: TContext) => boolean): QueryBuilderInterface<TContext, TResult, E, R>;
|
|
20
|
+
/** Returns a new query that projects each matching context to a result value. */
|
|
21
|
+
select<Next>(projector: (row: TContext) => Next & RejectPlainQueryRecord<Next>): QueryBuilderInterface<TContext, Next, E, R>;
|
|
22
|
+
/** Inner-joins another collection by comparing keys from the left context and right rows. */
|
|
23
|
+
join<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, rightKey: (row: CollectionRowValue<C>) => QueryJoinKey): QueryBuilderInterface<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
24
|
+
/** Inner-joins another collection through one of its declared secondary indexes. */
|
|
25
|
+
joinIndexed<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, index: string): QueryBuilderInterface<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
26
|
+
/** Alias for `join`. */
|
|
27
|
+
innerJoin<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, rightKey: (row: CollectionRowValue<C>) => QueryJoinKey): QueryBuilderInterface<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
28
|
+
/** Alias for `joinIndexed`. */
|
|
29
|
+
innerJoinIndexed<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, index: string): QueryBuilderInterface<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
30
|
+
/** Groups filtered source rows by a key object and evaluates aggregate selectors. */
|
|
31
|
+
groupBy<TKey extends Record<string, unknown>, Aggregates extends QueryAggregateRecord<TContext>>(key: (row: TContext) => QueryGroupKey<TKey>, aggregates: Aggregates): QueryBuilderInterface<QueryAggregateResult<QueryGroupKey<TKey>, Aggregates>, QueryAggregateResult<QueryGroupKey<TKey>, Aggregates>, E, R>;
|
|
32
|
+
/** Adds a stable sort. Multiple `orderBy` calls are evaluated in order. */
|
|
33
|
+
orderBy(selector: (row: TContext) => QuerySortValue, direction?: QuerySortDirection): QueryBuilderInterface<TContext, TResult, E, R>;
|
|
34
|
+
/** Skips the first `count` results after filtering and sorting. */
|
|
35
|
+
offset(count: number): QueryBuilderInterface<TContext, TResult, E, R>;
|
|
36
|
+
/** Limits the number of results after filtering, sorting, and offset. */
|
|
37
|
+
limit(count: number): QueryBuilderInterface<TContext, TResult, E, R>;
|
|
38
|
+
/** Synchronously evaluates the query against the current collection state. */
|
|
39
|
+
execute(): ReadonlyArray<TResult>;
|
|
40
|
+
}
|
|
41
|
+
export declare class QueryBuilder<TContext extends AnyQueryContext, TResult, E = never, R = never> {
|
|
42
|
+
readonly sources: ReadonlyArray<readonly [string, AnyCollection]>;
|
|
43
|
+
readonly filters: ReadonlyArray<(row: TContext) => boolean>;
|
|
44
|
+
readonly projector: ((row: TContext) => TResult) | undefined;
|
|
45
|
+
readonly orders: ReadonlyArray<QueryOrder<TContext>>;
|
|
46
|
+
readonly offsetCount: number;
|
|
47
|
+
readonly limitCount: number | undefined;
|
|
48
|
+
readonly joins: ReadonlyArray<QueryJoin>;
|
|
49
|
+
readonly grouping: AnyQueryGrouping | undefined;
|
|
50
|
+
readonly [QueryBuilderTypeId]: typeof QueryBuilderTypeId;
|
|
51
|
+
readonly Type?: {
|
|
52
|
+
readonly Error: E;
|
|
53
|
+
readonly Requirements: R;
|
|
54
|
+
};
|
|
55
|
+
constructor(sources: ReadonlyArray<readonly [string, AnyCollection]>, filters?: ReadonlyArray<(row: TContext) => boolean>, projector?: ((row: TContext) => TResult) | undefined, orders?: ReadonlyArray<QueryOrder<TContext>>, offsetCount?: number, limitCount?: number | undefined, joins?: ReadonlyArray<QueryJoin>, grouping?: AnyQueryGrouping | undefined);
|
|
56
|
+
private filtersFor;
|
|
57
|
+
private projectorFor;
|
|
58
|
+
private ordersFor;
|
|
59
|
+
/** Returns a new query with an additional boolean filter. */
|
|
60
|
+
where(predicate: (row: TContext) => boolean): QueryBuilder<TContext, TResult, E, R>;
|
|
61
|
+
/** Returns a new query that projects each matching context to a result value. */
|
|
62
|
+
select<Next>(projector: (row: TContext) => Next & RejectPlainQueryRecord<Next>): QueryBuilder<TContext, Next, E, R>;
|
|
63
|
+
/** Inner-joins another collection by comparing keys from the left context and right rows. */
|
|
64
|
+
join<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, rightKey: (row: CollectionRowValue<C>) => QueryJoinKey): QueryBuilder<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
65
|
+
/** Inner-joins another collection through one of its declared secondary indexes. */
|
|
66
|
+
joinIndexed<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, index: string): QueryBuilder<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
67
|
+
/** Alias for `join`. */
|
|
68
|
+
innerJoin<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, rightKey: (row: CollectionRowValue<C>) => QueryJoinKey): QueryBuilder<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
69
|
+
/** Alias for `joinIndexed`. */
|
|
70
|
+
innerJoinIndexed<const Alias extends string, C extends AnyCollection>(alias: Alias, collection: C, leftKey: (row: TContext) => QueryJoinKey, index: string): QueryBuilder<QueryJoinedContext<TContext, Alias, C>, QueryJoinResult<TContext, TResult, QueryJoinedContext<TContext, Alias, C>>, E | CollectionRuntimeError<CollectionError<C>>, R | CollectionRequirements<C>>;
|
|
71
|
+
/** Groups filtered source rows by a key object and evaluates aggregate selectors. */
|
|
72
|
+
groupBy<TKey extends Record<string, unknown>, Aggregates extends QueryAggregateRecord<TContext>>(key: (row: TContext) => QueryGroupKey<TKey>, aggregates: Aggregates): QueryBuilder<QueryAggregateResult<QueryGroupKey<TKey>, Aggregates>, QueryAggregateResult<QueryGroupKey<TKey>, Aggregates>, E, R>;
|
|
73
|
+
/**
|
|
74
|
+
* Adds a stable sort. Multiple `orderBy` calls are evaluated in order.
|
|
75
|
+
*
|
|
76
|
+
* Selectors must return comparable scalar values. Invalid Dates and `NaN`
|
|
77
|
+
* fail as `QueryEvaluationError` with operation `"order"`.
|
|
78
|
+
*/
|
|
79
|
+
orderBy(selector: (row: TContext) => QuerySortValue, direction?: QuerySortDirection): QueryBuilder<TContext, TResult, E, R>;
|
|
80
|
+
/**
|
|
81
|
+
* Skips the first `count` results after filtering and sorting.
|
|
82
|
+
*
|
|
83
|
+
* `count` must be a finite, non-negative safe integer. Invalid windows are
|
|
84
|
+
* rejected when the query is executed or inspected with diagnostics.
|
|
85
|
+
*/
|
|
86
|
+
offset(count: number): QueryBuilder<TContext, TResult, E, R>;
|
|
87
|
+
/**
|
|
88
|
+
* Limits the number of results after filtering, sorting, and offset.
|
|
89
|
+
*
|
|
90
|
+
* `count` must be a finite, non-negative safe integer. Invalid windows are
|
|
91
|
+
* rejected when the query is executed or inspected with diagnostics.
|
|
92
|
+
*/
|
|
93
|
+
limit(count: number): QueryBuilder<TContext, TResult, E, R>;
|
|
94
|
+
/**
|
|
95
|
+
* Synchronously evaluates the query against the current collection state.
|
|
96
|
+
*
|
|
97
|
+
* Plan-validation and callback failures are thrown as `QueryEvaluationError`.
|
|
98
|
+
*/
|
|
99
|
+
execute(): ReadonlyArray<TResult>;
|
|
100
|
+
}
|
|
101
|
+
export type AnyQueryBuilder<TResult = any, E = any, R = any> = QueryBuilder<any, TResult, E, R>;
|
|
102
|
+
export type QueryFactory<TResult, E = never, R = never> = (query: QueryRoot) => QueryBuilderInterface<any, TResult, E, R>;
|
|
103
|
+
/**
|
|
104
|
+
* Root query DSL entrypoint passed to query factories.
|
|
105
|
+
*/
|
|
106
|
+
export interface QueryRoot {
|
|
107
|
+
/**
|
|
108
|
+
* Starts a query from named collection sources.
|
|
109
|
+
*
|
|
110
|
+
* Source names become row context properties, so prototype-reserved keys such
|
|
111
|
+
* as `__proto__`, `constructor`, and `prototype` are rejected during query
|
|
112
|
+
* validation.
|
|
113
|
+
*/
|
|
114
|
+
from<const Sources extends SourceRecord>(sources: Sources): QueryBuilderInterface<QueryContext<Sources>, QueryContext<Sources>, QuerySourcesError<Sources>, QuerySourcesRequirements<Sources>>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Reactive query state derived from source collection load states.
|
|
118
|
+
*/
|
|
119
|
+
export type LiveQueryState<T, E = never> = {
|
|
120
|
+
readonly _tag: "Pending";
|
|
121
|
+
readonly waiting: true;
|
|
122
|
+
readonly data: ReadonlyArray<T>;
|
|
123
|
+
} | {
|
|
124
|
+
readonly _tag: "Success";
|
|
125
|
+
readonly waiting: false;
|
|
126
|
+
readonly data: ReadonlyArray<T>;
|
|
127
|
+
} | {
|
|
128
|
+
readonly _tag: "Failure";
|
|
129
|
+
readonly waiting: false;
|
|
130
|
+
readonly error: E;
|
|
131
|
+
readonly data: ReadonlyArray<T>;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Incrementally evaluated query over one or more collections.
|
|
135
|
+
*
|
|
136
|
+
* `data` updates when source collection versions change. Preload/refetch effects
|
|
137
|
+
* expose the union of source collection error and requirement channels.
|
|
138
|
+
*/
|
|
139
|
+
export interface LiveQuery<T, E = never, R = never> {
|
|
140
|
+
readonly data: ReadableSignal<ReadonlyArray<T>>;
|
|
141
|
+
readonly state: ReadableSignal<LiveQueryState<T, E | QueryEvaluationError>>;
|
|
142
|
+
readonly sources: ReadonlyArray<AnyCollection>;
|
|
143
|
+
evaluate(): ReadonlyArray<T>;
|
|
144
|
+
preloadEffect(): Effect.Effect<void, E | QueryEvaluationError, R>;
|
|
145
|
+
refetchEffect(): Effect.Effect<void, E | QueryEvaluationError, R>;
|
|
146
|
+
}
|
|
147
|
+
/** Equality predicate using `Object.is`, matching signal and collection change checks. Prefer `Query.eq(...)` in new code. */
|
|
148
|
+
export declare const eq: <A>(left: A, right: A) => boolean;
|
|
149
|
+
/** Negated `Object.is` equality predicate. Prefer `Query.neq(...)` in new code. */
|
|
150
|
+
export declare const neq: <A>(left: A, right: A) => boolean;
|
|
151
|
+
/** Greater-than predicate for sortable scalar values. Prefer `Query.gt(...)` in new code. */
|
|
152
|
+
export declare const gt: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
153
|
+
/** Greater-than-or-equal predicate for sortable scalar values. Prefer `Query.gte(...)` in new code. */
|
|
154
|
+
export declare const gte: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
155
|
+
/** Less-than predicate for sortable scalar values. Prefer `Query.lt(...)` in new code. */
|
|
156
|
+
export declare const lt: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
157
|
+
/** Less-than-or-equal predicate for sortable scalar values. Prefer `Query.lte(...)` in new code. */
|
|
158
|
+
export declare const lte: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
159
|
+
/** Boolean conjunction helper for composing filters. Prefer `Query.and(...)` in new code. */
|
|
160
|
+
export declare const and: (...values: ReadonlyArray<boolean>) => boolean;
|
|
161
|
+
/** Boolean disjunction helper for composing filters. Prefer `Query.or(...)` in new code. */
|
|
162
|
+
export declare const or: (...values: ReadonlyArray<boolean>) => boolean;
|
|
163
|
+
/** Boolean negation helper for composing filters. Prefer `Query.not(...)` in new code. */
|
|
164
|
+
export declare const not: (value: boolean) => boolean;
|
|
165
|
+
/** Array membership predicate using JavaScript `includes` semantics. Prefer `Query.includes(...)` in new code. */
|
|
166
|
+
export declare const includes: <A>(values: ReadonlyArray<A>, value: A) => boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Query API for composing derived views over collections.
|
|
169
|
+
*
|
|
170
|
+
* Query factories receive `Query.from`/`query.from` and return an immutable
|
|
171
|
+
* builder. Use `onceEffect` for one-shot reads and `live` for reactive data.
|
|
172
|
+
*/
|
|
173
|
+
export declare namespace Query {
|
|
174
|
+
/** Immutable query builder DSL carrying context, result, error, and requirement types without exposing plan internals. */
|
|
175
|
+
type Builder<TContext extends AnyQueryContext, TResult, E = never, R = never> = QueryBuilderInterface<TContext, TResult, E, R>;
|
|
176
|
+
/** Function that receives the query root DSL and returns a builder. */
|
|
177
|
+
type Factory<TResult, E = never, R = never> = QueryFactory<TResult, E, R>;
|
|
178
|
+
/** Reactive query handle backed by source collection state. */
|
|
179
|
+
type Live<T, E = never, R = never> = LiveQuery<T, E, R>;
|
|
180
|
+
/** Load state emitted by a live query. */
|
|
181
|
+
type LiveState<T, E = never> = LiveQueryState<T, E>;
|
|
182
|
+
/** Error raised when query factory, callback, plan, or order comparable evaluation fails. */
|
|
183
|
+
type EvaluationError = QueryEvaluationError;
|
|
184
|
+
/** Error raised when a query builder cannot be represented as a live query. */
|
|
185
|
+
type UnsupportedLiveQuery = UnsupportedLiveQueryType;
|
|
186
|
+
/** Execution strategy selected for one query join. */
|
|
187
|
+
type JoinStrategy = QueryJoinStrategy;
|
|
188
|
+
/** Scalar join key before stable string normalization. */
|
|
189
|
+
type JoinKey = QueryJoinKey;
|
|
190
|
+
/** Sort direction accepted by `orderBy(...)`. */
|
|
191
|
+
type SortDirection = QuerySortDirection;
|
|
192
|
+
/** Comparable scalar value accepted by Query ordering. */
|
|
193
|
+
type SortValue = QuerySortValue;
|
|
194
|
+
/** Source row-count diagnostics for a query plan. */
|
|
195
|
+
type PlanSourceDiagnostics = QueryPlanSourceDiagnostics;
|
|
196
|
+
/** Join cost and strategy diagnostics for a query plan. */
|
|
197
|
+
type PlanJoinDiagnostics = QueryPlanJoinDiagnostics;
|
|
198
|
+
/** Full diagnostics summary for a compiled query plan. */
|
|
199
|
+
type PlanDiagnostics = QueryPlanDiagnostics;
|
|
200
|
+
/** Root DSL object passed to query factories. */
|
|
201
|
+
type Root = QueryRoot;
|
|
202
|
+
/** Group key object accepted by `groupBy(...)`; nested Promise-shaped values are rejected. */
|
|
203
|
+
type GroupKey<TKey extends Record<string, unknown> = Record<string, unknown>> = QueryGroupKey<TKey>;
|
|
204
|
+
/** Aggregate definition consumed by `groupBy(...)`. */
|
|
205
|
+
type Aggregate<TContext, R, V = unknown> = QueryAggregate<TContext, R, V>;
|
|
206
|
+
/** Named aggregate map consumed by `groupBy(...)`. */
|
|
207
|
+
type Aggregates<TContext> = QueryAggregateRecord<TContext>;
|
|
208
|
+
/** Result type for a grouped query key plus aggregate map. */
|
|
209
|
+
type AggregateResult<TKey extends Record<string, unknown>, Aggregates extends AnyQueryAggregateRecord> = QueryAggregateResult<TKey, Aggregates>;
|
|
210
|
+
/** Error raised when query factory, callback, plan, or order comparable evaluation fails. */
|
|
211
|
+
const EvaluationError: typeof QueryEvaluationErrorConstructor;
|
|
212
|
+
/** Error raised when a query builder cannot be represented as a live query. */
|
|
213
|
+
const UnsupportedLiveQuery: typeof UnsupportedLiveQueryConstructor;
|
|
214
|
+
/** Start a query from one or more named collection sources. */
|
|
215
|
+
const from: <const Sources extends SourceRecord>(sources: Sources) => QueryBuilderInterface<QueryContext<Sources>, QueryContext<Sources>, QuerySourcesError<Sources>, QuerySourcesRequirements<Sources>>;
|
|
216
|
+
/** Equality predicate using `Object.is`, matching signal and collection change checks. */
|
|
217
|
+
const eq: <A>(left: A, right: A) => boolean;
|
|
218
|
+
/** Negated `Object.is` equality predicate. */
|
|
219
|
+
const neq: <A>(left: A, right: A) => boolean;
|
|
220
|
+
/** Greater-than predicate for sortable scalar values. */
|
|
221
|
+
const gt: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
222
|
+
/** Greater-than-or-equal predicate for sortable scalar values. */
|
|
223
|
+
const gte: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
224
|
+
/** Less-than predicate for sortable scalar values. */
|
|
225
|
+
const lt: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
226
|
+
/** Less-than-or-equal predicate for sortable scalar values. */
|
|
227
|
+
const lte: <A extends number | string | Date>(left: A, right: A) => boolean;
|
|
228
|
+
/** Boolean conjunction helper for composing filters. */
|
|
229
|
+
const and: (...values: ReadonlyArray<boolean>) => boolean;
|
|
230
|
+
/** Boolean disjunction helper for composing filters. */
|
|
231
|
+
const or: (...values: ReadonlyArray<boolean>) => boolean;
|
|
232
|
+
/** Boolean negation helper for composing filters. */
|
|
233
|
+
const not: (value: boolean) => boolean;
|
|
234
|
+
/** Array membership predicate using JavaScript `includes` semantics. */
|
|
235
|
+
const includes: <A>(values: ReadonlyArray<A>, value: A) => boolean;
|
|
236
|
+
/** Count non-null aggregate values in `groupBy`. */
|
|
237
|
+
const count: <TContext, A = unknown>(value?: (row: TContext) => A & PlainValue<A>) => QueryAggregate<TContext, number, number>;
|
|
238
|
+
/** Sum numeric aggregate values in `groupBy`. */
|
|
239
|
+
const sum: <TContext>(value: (row: TContext) => number) => QueryAggregate<TContext, number, number>;
|
|
240
|
+
/** Average numeric aggregate values in `groupBy`. */
|
|
241
|
+
const avg: <TContext>(value: (row: TContext) => number) => QueryAggregate<TContext, number, {
|
|
242
|
+
readonly sum: number;
|
|
243
|
+
readonly count: number;
|
|
244
|
+
}>;
|
|
245
|
+
/** Minimum aggregate value in `groupBy`. */
|
|
246
|
+
const min: <TContext, V extends number | string | Date | bigint>(value: (row: TContext) => V) => QueryAggregate<TContext, V | undefined, V | undefined>;
|
|
247
|
+
/** Maximum aggregate value in `groupBy`. */
|
|
248
|
+
const max: <TContext, V extends number | string | Date | bigint>(value: (row: TContext) => V) => QueryAggregate<TContext, V | undefined, V | undefined>;
|
|
249
|
+
/**
|
|
250
|
+
* Build a query without executing or preloading it.
|
|
251
|
+
*
|
|
252
|
+
* Synchronous factory throws, Promise-shaped factory results, Effect-shaped
|
|
253
|
+
* factory results, and other non-builder factory results are normalized and
|
|
254
|
+
* thrown as `QueryEvaluationError` with operation `"evaluate"`.
|
|
255
|
+
*/
|
|
256
|
+
const build: <T, E = never, R = never>(factory: QueryFactory<T, E, R>) => QueryBuilderInterface<any, T, E, R>;
|
|
257
|
+
/**
|
|
258
|
+
* Return query plan diagnostics for joins, filters, ordering, and row counts.
|
|
259
|
+
*
|
|
260
|
+
* Synchronous factory failures, Promise-shaped factory results, Effect-shaped
|
|
261
|
+
* factory results, other non-builder factory results, and plan-validation
|
|
262
|
+
* throws are normalized and thrown as `QueryEvaluationError` with operation
|
|
263
|
+
* `"evaluate"`.
|
|
264
|
+
*/
|
|
265
|
+
const diagnostics: <T, E = never, R = never>(factory: QueryFactory<T, E, R>) => QueryPlanDiagnostics;
|
|
266
|
+
/**
|
|
267
|
+
* Preload source collections once, then execute the query.
|
|
268
|
+
*
|
|
269
|
+
* Source collection errors and requirements are preserved in the returned
|
|
270
|
+
* Effect. Synchronous factory failures, Promise-shaped factory results,
|
|
271
|
+
* Effect-shaped factory results, and other non-builder factory results are
|
|
272
|
+
* normalized as `QueryEvaluationError` with operation `"evaluate"` in the
|
|
273
|
+
* Effect error channel.
|
|
274
|
+
*/
|
|
275
|
+
const onceEffect: <T, E = never, R = never>(factory: QueryFactory<T, E, R>) => Effect.Effect<ReadonlyArray<T>, E | QueryEvaluationError, R>;
|
|
276
|
+
/**
|
|
277
|
+
* Create a reactive live query over collection rows.
|
|
278
|
+
*
|
|
279
|
+
* The returned signals update when source collection versions change.
|
|
280
|
+
* Synchronous factory failures, Promise-shaped factory results, Effect-shaped
|
|
281
|
+
* factory results, and other non-builder factory results are normalized and
|
|
282
|
+
* thrown as `QueryEvaluationError` with operation `"evaluate"`.
|
|
283
|
+
*
|
|
284
|
+
* @example
|
|
285
|
+
* const openTodos = Query.live((query) =>
|
|
286
|
+
* query.from({ todo: todos })
|
|
287
|
+
* .where(({ todo }) => !todo.done)
|
|
288
|
+
* .select(({ todo }) => todo)
|
|
289
|
+
* )
|
|
290
|
+
*/
|
|
291
|
+
const live: <T, E = never, R = never>(factory: QueryFactory<T, E, R>) => LiveQuery<T, E, R>;
|
|
292
|
+
}
|
|
293
|
+
export {};
|
|
294
|
+
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../src/query-builder.ts"],"names":[],"mappings":"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"}
|