@rocicorp/zero 0.25.0-canary.11 → 0.25.0-canary.13

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 (164) hide show
  1. package/out/zero/package.json.js +1 -1
  2. package/out/zero/src/pg.js +4 -2
  3. package/out/zero/src/server.js +4 -2
  4. package/out/zero-cache/src/server/otel-diag-logger.js +1 -0
  5. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  6. package/out/zero-client/src/client/bindings.d.ts +2 -3
  7. package/out/zero-client/src/client/bindings.d.ts.map +1 -1
  8. package/out/zero-client/src/client/bindings.js.map +1 -1
  9. package/out/zero-client/src/client/connection-manager.d.ts +3 -3
  10. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  11. package/out/zero-client/src/client/connection-manager.js.map +1 -1
  12. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  13. package/out/zero-client/src/client/connection.js +8 -1
  14. package/out/zero-client/src/client/connection.js.map +1 -1
  15. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  16. package/out/zero-client/src/client/custom.js +4 -3
  17. package/out/zero-client/src/client/custom.js.map +1 -1
  18. package/out/zero-client/src/client/error.d.ts +6 -1
  19. package/out/zero-client/src/client/error.d.ts.map +1 -1
  20. package/out/zero-client/src/client/error.js +2 -2
  21. package/out/zero-client/src/client/error.js.map +1 -1
  22. package/out/zero-client/src/client/make-mutate-property.d.ts +6 -9
  23. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -1
  24. package/out/zero-client/src/client/make-mutate-property.js +3 -8
  25. package/out/zero-client/src/client/make-mutate-property.js.map +1 -1
  26. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -1
  27. package/out/zero-client/src/client/mutator-proxy.d.ts +3 -2
  28. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -1
  29. package/out/zero-client/src/client/mutator-proxy.js +15 -3
  30. package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
  31. package/out/zero-client/src/client/options.d.ts +3 -3
  32. package/out/zero-client/src/client/options.d.ts.map +1 -1
  33. package/out/zero-client/src/client/options.js.map +1 -1
  34. package/out/zero-client/src/client/version.js +1 -1
  35. package/out/zero-client/src/client/zero.d.ts +1 -2
  36. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  37. package/out/zero-client/src/client/zero.js +8 -8
  38. package/out/zero-client/src/client/zero.js.map +1 -1
  39. package/out/zero-client/src/mod.d.ts +5 -7
  40. package/out/zero-client/src/mod.d.ts.map +1 -1
  41. package/out/zero-react/src/components/inspector.d.ts +1 -2
  42. package/out/zero-react/src/components/inspector.d.ts.map +1 -1
  43. package/out/zero-react/src/components/inspector.js.map +1 -1
  44. package/out/zero-react/src/components/zero-inspector.d.ts +1 -2
  45. package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
  46. package/out/zero-react/src/components/zero-inspector.js.map +1 -1
  47. package/out/zero-react/src/use-query.d.ts +1 -2
  48. package/out/zero-react/src/use-query.d.ts.map +1 -1
  49. package/out/zero-react/src/use-query.js.map +1 -1
  50. package/out/zero-react/src/zero-provider.d.ts +4 -5
  51. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  52. package/out/zero-react/src/zero-provider.js.map +1 -1
  53. package/out/zero-schema/src/permissions.d.ts +3 -0
  54. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  55. package/out/zero-schema/src/permissions.js.map +1 -1
  56. package/out/zero-server/src/mod.d.ts +1 -1
  57. package/out/zero-server/src/mod.d.ts.map +1 -1
  58. package/out/zero-server/src/process-mutations.d.ts +10 -6
  59. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  60. package/out/zero-server/src/process-mutations.js +9 -18
  61. package/out/zero-server/src/process-mutations.js.map +1 -1
  62. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  63. package/out/zero-server/src/push-processor.js +10 -8
  64. package/out/zero-server/src/push-processor.js.map +1 -1
  65. package/out/zero-server/src/queries/process-queries.d.ts +14 -2
  66. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  67. package/out/zero-server/src/queries/process-queries.js +18 -15
  68. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  69. package/out/zero-solid/src/use-zero.d.ts +4 -5
  70. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  71. package/out/zero-solid/src/use-zero.js.map +1 -1
  72. package/out/zero-types/src/default-types.d.ts +2 -2
  73. package/out/zero-types/src/default-types.d.ts.map +1 -1
  74. package/out/zql/src/builder/builder.d.ts.map +1 -1
  75. package/out/zql/src/builder/builder.js +0 -1
  76. package/out/zql/src/builder/builder.js.map +1 -1
  77. package/out/zql/src/ivm/data.js +0 -11
  78. package/out/zql/src/ivm/data.js.map +1 -1
  79. package/out/zql/src/ivm/exists.d.ts +2 -2
  80. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  81. package/out/zql/src/ivm/exists.js +34 -20
  82. package/out/zql/src/ivm/exists.js.map +1 -1
  83. package/out/zql/src/ivm/fan-in.d.ts +1 -1
  84. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  85. package/out/zql/src/ivm/fan-in.js +4 -2
  86. package/out/zql/src/ivm/fan-in.js.map +1 -1
  87. package/out/zql/src/ivm/fan-out.d.ts +1 -1
  88. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  89. package/out/zql/src/ivm/fan-out.js +9 -3
  90. package/out/zql/src/ivm/fan-out.js.map +1 -1
  91. package/out/zql/src/ivm/filter-operators.d.ts +4 -6
  92. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  93. package/out/zql/src/ivm/filter-operators.js +14 -27
  94. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  95. package/out/zql/src/ivm/filter.d.ts +1 -1
  96. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  97. package/out/zql/src/ivm/filter.js +4 -2
  98. package/out/zql/src/ivm/filter.js.map +1 -1
  99. package/out/zql/src/ivm/flipped-join.d.ts +0 -1
  100. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  101. package/out/zql/src/ivm/flipped-join.js +0 -2
  102. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  103. package/out/zql/src/ivm/join.d.ts +2 -15
  104. package/out/zql/src/ivm/join.d.ts.map +1 -1
  105. package/out/zql/src/ivm/join.js +10 -83
  106. package/out/zql/src/ivm/join.js.map +1 -1
  107. package/out/zql/src/ivm/memory-source.d.ts +4 -3
  108. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  109. package/out/zql/src/ivm/memory-source.js +24 -23
  110. package/out/zql/src/ivm/memory-source.js.map +1 -1
  111. package/out/zql/src/ivm/operator.d.ts +0 -12
  112. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  113. package/out/zql/src/ivm/operator.js.map +1 -1
  114. package/out/zql/src/ivm/skip.d.ts +0 -1
  115. package/out/zql/src/ivm/skip.d.ts.map +1 -1
  116. package/out/zql/src/ivm/skip.js +3 -11
  117. package/out/zql/src/ivm/skip.js.map +1 -1
  118. package/out/zql/src/ivm/take.d.ts +0 -1
  119. package/out/zql/src/ivm/take.d.ts.map +1 -1
  120. package/out/zql/src/ivm/take.js +0 -17
  121. package/out/zql/src/ivm/take.js.map +1 -1
  122. package/out/zql/src/ivm/union-fan-in.d.ts +0 -1
  123. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  124. package/out/zql/src/ivm/union-fan-in.js +0 -3
  125. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  126. package/out/zql/src/ivm/union-fan-out.d.ts +0 -1
  127. package/out/zql/src/ivm/union-fan-out.d.ts.map +1 -1
  128. package/out/zql/src/ivm/union-fan-out.js +0 -3
  129. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  130. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  131. package/out/zql/src/ivm/view-apply-change.js +1 -2
  132. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  133. package/out/zql/src/mutate/custom.d.ts +2 -2
  134. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  135. package/out/zql/src/mutate/custom.js.map +1 -1
  136. package/out/zql/src/mutate/mutator-registry.d.ts +33 -15
  137. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -1
  138. package/out/zql/src/mutate/mutator-registry.js +2 -8
  139. package/out/zql/src/mutate/mutator-registry.js.map +1 -1
  140. package/out/zql/src/mutate/mutator.d.ts +50 -25
  141. package/out/zql/src/mutate/mutator.d.ts.map +1 -1
  142. package/out/zql/src/mutate/mutator.js +2 -3
  143. package/out/zql/src/mutate/mutator.js.map +1 -1
  144. package/out/zql/src/query/create-builder.d.ts +2 -2
  145. package/out/zql/src/query/create-builder.d.ts.map +1 -1
  146. package/out/zql/src/query/create-builder.js +12 -3
  147. package/out/zql/src/query/create-builder.js.map +1 -1
  148. package/out/zql/src/query/measure-push-operator.d.ts +0 -1
  149. package/out/zql/src/query/measure-push-operator.d.ts.map +1 -1
  150. package/out/zql/src/query/measure-push-operator.js +0 -3
  151. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  152. package/out/zql/src/query/query-internals.d.ts.map +1 -1
  153. package/out/zql/src/query/query-internals.js +2 -2
  154. package/out/zql/src/query/query-internals.js.map +1 -1
  155. package/out/zql/src/query/query-registry.d.ts +126 -58
  156. package/out/zql/src/query/query-registry.d.ts.map +1 -1
  157. package/out/zql/src/query/query-registry.js +13 -21
  158. package/out/zql/src/query/query-registry.js.map +1 -1
  159. package/out/zql/src/query/query.d.ts +18 -5
  160. package/out/zql/src/query/query.d.ts.map +1 -1
  161. package/out/zqlite/src/table-source.d.ts.map +1 -1
  162. package/out/zqlite/src/table-source.js +6 -10
  163. package/out/zqlite/src/table-source.js.map +1 -1
  164. package/package.json +1 -1
@@ -1,9 +1,10 @@
1
1
  import type { StandardSchemaV1 } from '@standard-schema/spec';
2
2
  import { type DeepMerge } from '../../../shared/src/deep-merge.ts';
3
+ import type { Expand } from '../../../shared/src/expand.ts';
3
4
  import type { ReadonlyJSONValue } from '../../../shared/src/json.ts';
5
+ import type { DefaultContext, DefaultSchema } from '../../../zero-types/src/default-types.ts';
4
6
  import type { Schema } from '../../../zero-types/src/schema.ts';
5
- import type { Query } from './query.ts';
6
- declare const customQueryTag: unique symbol;
7
+ import type { PullRow, Query } from './query.ts';
7
8
  /**
8
9
  * CustomQuery is what is returned from defineQueries. It supports a builder
9
10
  * pattern where args is set before calling toQuery(context).
@@ -14,41 +15,67 @@ declare const customQueryTag: unique symbol;
14
15
  * Usage:
15
16
  * queries.foo(args).toQuery(ctx)
16
17
  */
17
- export type CustomQuery<T extends keyof S['tables'] & string, S extends Schema, R, C, Args extends ReadonlyJSONValue | undefined, HasArgs extends boolean = false> = {
18
- readonly [customQueryTag]: true;
19
- } & (HasArgs extends true ? unknown : undefined extends Args ? {
20
- (): CustomQuery<T, S, R, C, Args, true>;
21
- (args?: Args): CustomQuery<T, S, R, C, Args, true>;
18
+ export type CustomQuery<TTable extends keyof TSchema['tables'] & string, TInput extends ReadonlyJSONValue | undefined, TSchema extends Schema = DefaultSchema, TReturn = PullRow<TTable, TSchema>, TContext = DefaultContext, THasArgs extends boolean = false> = {
19
+ /**
20
+ * Type-only phantom property to surface query types in a covariant position.
21
+ */
22
+ '~': Expand<QueryTypes<TTable, TInput, never, TSchema, TReturn, TContext, THasArgs>>;
23
+ } & (THasArgs extends true ? unknown : undefined extends TInput ? {
24
+ (): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, true>;
25
+ (args?: TInput): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, true>;
22
26
  } : {
23
- (args: Args): CustomQuery<T, S, R, C, Args, true>;
24
- }) & (HasArgs extends true ? {
25
- toQuery(ctx: C): Query<T, S, R>;
27
+ (args: TInput): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, true>;
28
+ }) & (THasArgs extends true ? {
29
+ toQuery(ctx: TContext): Query<TTable, TSchema, TReturn>;
26
30
  } : unknown);
27
- declare const queryRegistryTag: unique symbol;
28
- export declare function isQueryRegistry<Q extends QueryDefinitions<Schema, any>>(obj: unknown): obj is QueryRegistry<Q>;
29
- type SchemaFromQueryDefinitions<QD extends QueryDefinitions<Schema, any>> = QD extends QueryDefinitions<infer S, any> ? S : never;
30
- export type QueryRegistry<QD extends QueryDefinitions<Schema, any>> = CustomQueriesInner<QD, SchemaFromQueryDefinitions<QD>>;
31
- type CustomQueriesInner<QD extends QueryDefinitions<Schema, any>, S extends Schema> = {
32
- readonly [K in keyof QD]: QD[K] extends QueryDefinition<infer TTable extends keyof S['tables'] & string, S, infer TReturn, infer TContext, infer TInput, any> ? CustomQuery<TTable, S, TReturn, TContext, TInput> : QD[K] extends QueryDefinitions<S, any> ? CustomQueriesInner<QD[K], S> : never;
33
- } & {
34
- [queryRegistryTag]: true;
31
+ export declare function isQueryRegistry<Q extends QueryDefinitions<S, any>, S extends Schema = DefaultSchema>(obj: unknown): obj is QueryRegistry<Q, S>;
32
+ export type QueryTypes<TTable extends keyof TSchema['tables'] & string, TInput extends ReadonlyJSONValue | undefined, TOutput, TSchema extends Schema, TReturn, TContext, THasArgs extends boolean> = 'Query' & {
33
+ readonly $tableName: TTable;
34
+ readonly $input: TInput;
35
+ readonly $output: TOutput;
36
+ readonly $schema: TSchema;
37
+ readonly $return: TReturn;
38
+ readonly $context: TContext;
39
+ readonly $hasArgs: THasArgs;
35
40
  };
36
- export type ContextTypeOfQueryRegistry<CQ> = CQ extends QueryRegistry<infer QD> ? QD extends QueryDefinitions<Schema, infer C> ? C : never : never;
37
- export declare const defineQueryTag: unique symbol;
38
- type QueryDefinitionFunction<TTable extends keyof TSchema['tables'] & string, TSchema extends Schema, TReturn, TContext, Args extends ReadonlyJSONValue | undefined> = (options: {
39
- args: Args;
41
+ export type QueryDefinitionTypes<TTable extends string, TInput extends ReadonlyJSONValue | undefined, TOutput, TReturn, TContext> = 'QueryDefinition' & {
42
+ readonly $tableName: TTable;
43
+ readonly $input: TInput;
44
+ readonly $output: TOutput;
45
+ readonly $return: TReturn;
46
+ readonly $context: TContext;
47
+ };
48
+ export type QueryRegistryTypes<TSchema extends Schema> = 'QueryRegistry' & {
49
+ readonly $schema: TSchema;
50
+ };
51
+ export type QueryRegistry<QD extends QueryDefinitions<S, any>, S extends Schema> = ToQueryTree<QD, S> & {
52
+ ['~']: Expand<QueryRegistryTypes<S>>;
53
+ };
54
+ type AnyQueryDefinition = QueryDefinition<any, any, any, any, any>;
55
+ type ToQueryTree<QD extends QueryDefinitions<S, any>, S extends Schema> = {
56
+ readonly [K in keyof QD]: QD[K] extends AnyQueryDefinition ? CustomQuery<QD[K]['~']['$tableName'], QD[K]['~']['$input'], S, QD[K]['~']['$return'], QD[K]['~']['$context'], false> : QD[K] extends QueryDefinitions<Schema, any> ? ToQueryTree<QD[K], S> : never;
57
+ };
58
+ export type FromQueryTree<QD extends QueryDefinitions<S, any>, S extends Schema> = {
59
+ readonly [K in keyof QD]: QD[K] extends AnyQueryDefinition ? CustomQuery<QD[K]['~']['$tableName'], ReadonlyJSONValue | undefined, // intentionally left as generic to avoid variance issues
60
+ S, QD[K]['~']['$return'], QD[K]['~']['$context'], false> : QD[K] extends QueryDefinitions<Schema, any> ? FromQueryTree<QD[K], S> : never;
61
+ }[keyof QD];
62
+ type QueryDefinitionFunction<TTable extends string, TOutput extends ReadonlyJSONValue | undefined, TReturn, TContext> = (options: {
63
+ args: TOutput;
40
64
  ctx: TContext;
41
- }) => Query<TTable, TSchema, TReturn>;
65
+ }) => Query<TTable, Schema, TReturn>;
42
66
  /**
43
67
  * A query definition is the return type of `defineQuery()`.
44
68
  */
45
- export type QueryDefinition<TTable extends keyof TSchema['tables'] & string, TSchema extends Schema, TReturn, TContext, TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined> = QueryDefinitionFunction<TTable, TSchema, TReturn, TContext, TOutput> & {
46
- [defineQueryTag]: true;
47
- validator: StandardSchemaV1<TInput, TOutput> | undefined;
69
+ export type QueryDefinition<TTable extends string, TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined, TReturn, TContext = DefaultContext> = QueryDefinitionFunction<TTable, TOutput, TReturn, TContext> & {
70
+ 'validator': StandardSchemaV1<TInput, TOutput> | undefined;
71
+ /**
72
+ * Type-only phantom property to surface query types in a covariant position.
73
+ */
74
+ readonly '~': Expand<QueryDefinitionTypes<TTable, TInput, TOutput, TReturn, TContext>>;
48
75
  };
49
- export declare function isQueryDefinition<TTable extends keyof TSchema['tables'] & string, TSchema extends Schema, TReturn, TContext, TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined>(f: unknown): f is QueryDefinition<TTable, TSchema, TReturn, TContext, TInput, TOutput>;
76
+ export declare function isQueryDefinition<TTable extends keyof TSchema['tables'] & string, TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined, TSchema extends Schema = DefaultSchema, TReturn = PullRow<TTable, TSchema>, TContext = DefaultContext>(f: unknown): f is QueryDefinition<TTable, TInput, TOutput, TReturn, TContext>;
50
77
  export type QueryDefinitions<S extends Schema, Context> = {
51
- readonly [key: string]: QueryDefinition<any, S, any, Context, any, any> | QueryDefinitions<S, Context>;
78
+ readonly [key: string]: QueryDefinition<any, any, any, any, Context> | QueryDefinitions<S, Context>;
52
79
  };
53
80
  /**
54
81
  * Defines a query to be used with {@link defineQueries}.
@@ -95,8 +122,63 @@ export type QueryDefinitions<S extends Schema, Context> = {
95
122
  * @param queryFn - A function that receives `{args, ctx}` and returns a Query.
96
123
  * @returns A {@link QueryDefinition} with validated arguments.
97
124
  */
98
- export declare function defineQuery<TTable extends keyof TSchema['tables'] & string, TSchema extends Schema, TReturn, TContext, TArgs extends ReadonlyJSONValue | undefined>(queryFn: QueryDefinitionFunction<TTable, TSchema, TReturn, TContext, TArgs>): QueryDefinition<TTable, TSchema, TReturn, TContext, TArgs, TArgs>;
99
- export declare function defineQuery<TTable extends keyof TSchema['tables'] & string, TSchema extends Schema, TReturn, TContext, TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined>(validator: StandardSchemaV1<TInput, TOutput>, queryFn: QueryDefinitionFunction<TTable, TSchema, TReturn, TContext, TOutput>): QueryDefinition<TTable, TSchema, TReturn, TContext, TInput, TOutput>;
125
+ export declare function defineQuery<TInput extends ReadonlyJSONValue | undefined, TContext = DefaultContext, TSchema extends Schema = DefaultSchema, TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] & string, TReturn = PullRow<TTable, TSchema>>(queryFn: (options: {
126
+ args: TInput;
127
+ ctx: TContext;
128
+ }) => Query<TTable, TSchema, TReturn>): QueryDefinition<TTable, TInput, TInput, TReturn, TContext> & {};
129
+ export declare function defineQuery<TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined, TContext = DefaultContext, TSchema extends Schema = DefaultSchema, TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] & string, TReturn = PullRow<TTable, TSchema>>(validator: StandardSchemaV1<TInput, TOutput>, queryFn: (options: {
130
+ args: TOutput;
131
+ ctx: TContext;
132
+ }) => Query<TTable, TSchema, TReturn>): QueryDefinition<TTable, TInput, TOutput, TReturn, TContext> & {};
133
+ /**
134
+ * Returns a typed version of {@link defineQuery} with the schema and context
135
+ * types pre-specified. This enables better type inference when defining
136
+ * queries.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * const builder = createBuilder(schema);
141
+ *
142
+ * // With both Schema and Context types
143
+ * const defineAppQuery = defineQueryWithType<AppSchema, AppContext>();
144
+ * const myQuery = defineAppQuery(({ctx}) =>
145
+ * builder.issue.where('userID', ctx.userID),
146
+ * );
147
+ *
148
+ * // With just Context type (Schema inferred)
149
+ * const defineAppQuery = defineQueryWithType<AppContext>();
150
+ * ```
151
+ *
152
+ * @typeParam S - The Zero schema type.
153
+ * @typeParam C - The context type passed to query functions.
154
+ * @returns A function equivalent to {@link defineQuery} but with types
155
+ * pre-bound.
156
+ */
157
+ export declare function defineQueryWithType<S extends Schema, C = unknown>(): TypedDefineQuery<S, C>;
158
+ /**
159
+ * Returns a typed version of {@link defineQuery} with the context type
160
+ * pre-specified.
161
+ *
162
+ * @typeParam C - The context type passed to query functions.
163
+ * @returns A function equivalent to {@link defineQuery} but with the context
164
+ * type pre-bound.
165
+ */
166
+ export declare function defineQueryWithType<C>(): TypedDefineQuery<Schema, C>;
167
+ /**
168
+ * The return type of defineQueryWithType. A function matching the
169
+ * defineQuery overloads but with Schema and Context pre-bound.
170
+ */
171
+ type TypedDefineQuery<TSchema extends Schema, TContext> = {
172
+ <TArgs extends ReadonlyJSONValue | undefined, TReturn, TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] & string>(queryFn: (options: {
173
+ args: TArgs;
174
+ ctx: TContext;
175
+ }) => Query<TTable, TSchema, TReturn>): QueryDefinition<TTable, TArgs, TArgs, TReturn, TContext>;
176
+ <TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined, TReturn, TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] & string>(validator: StandardSchemaV1<TInput, TOutput>, queryFn: (options: {
177
+ args: TOutput;
178
+ ctx: TContext;
179
+ }) => Query<TTable, TSchema, TReturn>): QueryDefinition<TTable, TInput, TOutput, TReturn, TContext>;
180
+ };
181
+ export declare function createCustomQueryBuilder<TTable extends keyof TSchema['tables'] & string, TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined, TSchema extends Schema, TReturn, TContext, THasArgs extends boolean>(queryDef: QueryDefinition<TTable, TInput, TOutput, TReturn, TContext>, name: string, inputArgs: TInput, validatedArgs: TOutput, hasArgs: THasArgs): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, THasArgs>;
100
182
  /**
101
183
  * Converts query definitions created with {@link defineQuery} into callable
102
184
  * {@link CustomQuery} objects that can be invoked with arguments and a context.
@@ -127,37 +209,23 @@ export declare function defineQuery<TTable extends keyof TSchema['tables'] & str
127
209
  * @returns An object with the same structure where each query definition is
128
210
  * converted to a {@link CustomQuery}.
129
211
  */
130
- export declare function defineQueries<QD extends QueryDefinitions<Schema, any>>(defs: QD): QueryRegistry<QD>;
212
+ export declare function defineQueries<const QD, S extends Schema = DefaultSchema>(defs: QD & AssertQueryDefinitions<QD>): QueryRegistry<EnsureQueryDefinitions<QD>, S>;
213
+ export declare function defineQueries<TBase, TOverrides, S extends Schema = DefaultSchema>(base: QueryRegistry<EnsureQueryDefinitions<TBase>, S> | (TBase & AssertQueryDefinitions<TBase>), overrides: TOverrides & AssertQueryDefinitions<TOverrides>): QueryRegistry<DeepMerge<EnsureQueryDefinitions<TBase>, EnsureQueryDefinitions<TOverrides>>, S>;
214
+ type AssertQueryDefinitions<QD> = QD extends QueryDefinitions<any, any> ? unknown : never;
215
+ type EnsureQueryDefinitions<QD> = QD extends QueryDefinitions<any, any> ? QD : never;
131
216
  /**
132
- * Extends an existing query registry with additional or overriding query
133
- * definitions. Properties from overrides replace properties from base with
134
- * the same key.
135
- *
136
- * @param base - An existing query registry to extend.
137
- * @param overrides - New query definitions to add or override.
138
- * @returns A merged query registry with all queries from both base and overrides.
217
+ * Creates a function that can be used to define queries with a specific schema.
139
218
  */
140
- export declare function defineQueries<TBase extends QueryDefinitions<Schema, any>, TOverrides extends QueryDefinitions<Schema, any>>(base: QueryRegistry<TBase>, overrides: TOverrides): QueryRegistry<DeepMerge<TBase, TOverrides>>;
219
+ export declare function defineQueriesWithType<TSchema extends Schema>(): TypedDefineQueries<TSchema>;
141
220
  /**
142
- * Merges two query definition objects into a single query registry.
143
- * Properties from the second parameter replace properties from the first
144
- * with the same key.
145
- *
146
- * @param base - The base query definitions to start with.
147
- * @param overrides - Additional query definitions to merge in, overriding any
148
- * existing definitions with the same key.
149
- * @returns A merged query registry with all queries from both parameters.
221
+ * The return type of defineQueriesWithType. A function matching the
222
+ * defineQueries overloads but with Schema pre-bound.
150
223
  */
151
- export declare function defineQueries<TBase extends QueryDefinitions<Schema, any>, TOverrides extends QueryDefinitions<Schema, any>>(base: TBase, overrides: TOverrides): QueryRegistry<DeepMerge<TBase, TOverrides>>;
152
- export declare function getQuery<S extends Schema, QD extends QueryDefinitions<S, any>>(queries: QueryRegistry<QD>, name: string): CustomQuery<keyof S['tables'] & string, S, unknown, // return
153
- unknown, // context
154
- // context
155
- ReadonlyJSONValue | undefined, // ArgsInput
156
- false> | undefined;
157
- export declare function mustGetQuery<S extends Schema, QD extends QueryDefinitions<S, any>>(queries: QueryRegistry<QD>, name: string): CustomQuery<keyof S['tables'] & string, S, unknown, // return
158
- unknown, // context
159
- // context
160
- ReadonlyJSONValue | undefined, // ArgsInput
161
- false>;
224
+ type TypedDefineQueries<S extends Schema> = {
225
+ <QD>(definitions: QD & AssertQueryDefinitions<QD>): QueryRegistry<EnsureQueryDefinitions<QD>, S>;
226
+ <TBase, TOverrides>(base: QueryRegistry<EnsureQueryDefinitions<TBase>, S> | (TBase & AssertQueryDefinitions<TBase>), overrides: TOverrides & AssertQueryDefinitions<TOverrides>): QueryRegistry<DeepMerge<EnsureQueryDefinitions<TBase>, EnsureQueryDefinitions<TOverrides>>, S>;
227
+ };
228
+ export declare function getQuery<QD extends QueryDefinitions<S, any>, S extends Schema>(queries: QueryRegistry<QD, S>, name: string): FromQueryTree<QD, S> | undefined;
229
+ export declare function mustGetQuery<QD extends QueryDefinitions<S, any>, S extends Schema>(queries: QueryRegistry<QD, S>, name: string): FromQueryTree<QD, S>;
162
230
  export {};
163
231
  //# sourceMappingURL=query-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-registry.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-registry.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query-registry.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,11 @@ import { must } from "../../../shared/src/must.js";
3
3
  import { getValueAtPath } from "../../../shared/src/object-traversal.js";
4
4
  import { asQueryInternals } from "./query-internals.js";
5
5
  import { validateInput } from "./validate-input.js";
6
- const customQueryTag = Symbol();
7
- const queryRegistryTag = Symbol();
8
6
  function isQueryRegistry(obj) {
9
- return typeof obj === "object" && obj !== null && obj[queryRegistryTag] === true;
7
+ return typeof obj === "object" && obj !== null && obj["~"] === "QueryRegistry";
10
8
  }
11
- const defineQueryTag = Symbol();
12
9
  function isQueryDefinition(f) {
13
- return typeof f === "function" && f[defineQueryTag];
10
+ return typeof f === "function" && f["~"] === "QueryDefinition";
14
11
  }
15
12
  function defineQuery(validatorOrQueryFn, queryFn) {
16
13
  let validator;
@@ -24,7 +21,7 @@ function defineQuery(validatorOrQueryFn, queryFn) {
24
21
  }
25
22
  const f = (options) => actualQueryFn(options);
26
23
  f.validator = validator;
27
- f[defineQueryTag] = true;
24
+ f["~"] = "QueryDefinition";
28
25
  return f;
29
26
  }
30
27
  function createCustomQueryBuilder(queryDef, name, inputArgs, validatedArgs, hasArgs) {
@@ -34,13 +31,7 @@ function createCustomQueryBuilder(queryDef, name, inputArgs, validatedArgs, hasA
34
31
  throw new Error("args already set");
35
32
  }
36
33
  const validated = validateInput(name, args, validator, "query");
37
- return createCustomQueryBuilder(
38
- queryDef,
39
- name,
40
- args,
41
- validated,
42
- true
43
- );
34
+ return createCustomQueryBuilder(queryDef, name, args, validated, true);
44
35
  };
45
36
  builder.toQuery = (ctx) => {
46
37
  if (!hasArgs) {
@@ -58,13 +49,13 @@ function createCustomQueryBuilder(queryDef, name, inputArgs, validatedArgs, hasA
58
49
  inputArgs === void 0 ? [] : [inputArgs]
59
50
  );
60
51
  };
61
- builder[customQueryTag] = true;
52
+ builder["~"] = "CustomQuery";
62
53
  return builder;
63
54
  }
64
55
  function defineQueries(defsOrBase, overrides) {
65
56
  function processDefinitions(definitions, path) {
66
57
  const result = {
67
- [queryRegistryTag]: true
58
+ ["~"]: "QueryRegistry"
68
59
  };
69
60
  for (const [key, value] of Object.entries(definitions)) {
70
61
  path.push(key);
@@ -96,25 +87,26 @@ function defineQueries(defsOrBase, overrides) {
96
87
  }
97
88
  const processed = processDefinitions(overrides, []);
98
89
  const merged = deepMerge(base, processed);
99
- merged[queryRegistryTag] = true;
90
+ merged["~"] = "QueryRegistry";
100
91
  return merged;
101
92
  }
102
93
  return processDefinitions(defsOrBase, []);
103
94
  }
104
95
  function getQuery(queries, name) {
105
- return getValueAtPath(queries, name, /[.|]/);
96
+ const q = getValueAtPath(queries, name, /[.|]/);
97
+ return q;
106
98
  }
107
99
  function mustGetQuery(queries, name) {
108
- const v = getQuery(queries, name);
109
- if (!v) {
100
+ const query = getQuery(queries, name);
101
+ if (query === void 0) {
110
102
  throw new Error(`Query not found: ${name}`);
111
103
  }
112
- return v;
104
+ return query;
113
105
  }
114
106
  export {
107
+ createCustomQueryBuilder,
115
108
  defineQueries,
116
109
  defineQuery,
117
- defineQueryTag,
118
110
  getQuery,
119
111
  isQueryDefinition,
120
112
  isQueryRegistry,
@@ -1 +1 @@
1
- {"version":3,"file":"query-registry.js","sources":["../../../../../zql/src/query/query-registry.ts"],"sourcesContent":["// oxlint-disable no-explicit-any\nimport type {StandardSchemaV1} from '@standard-schema/spec';\nimport {deepMerge, type DeepMerge} from '../../../shared/src/deep-merge.ts';\nimport type {ReadonlyJSONValue} from '../../../shared/src/json.ts';\nimport {must} from '../../../shared/src/must.ts';\nimport {getValueAtPath} from '../../../shared/src/object-traversal.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport {asQueryInternals} from './query-internals.ts';\nimport type {Query} from './query.ts';\nimport {validateInput} from './validate-input.ts';\n\nconst customQueryTag = Symbol();\n\n/**\n * CustomQuery is what is returned from defineQueries. It supports a builder\n * pattern where args is set before calling toQuery(context).\n *\n * const queries = defineQueries(...);\n * queries.foo.bar satisfies CustomQuery<...>\n *\n * Usage:\n * queries.foo(args).toQuery(ctx)\n */\nexport type CustomQuery<\n T extends keyof S['tables'] & string,\n S extends Schema,\n R,\n C,\n Args extends ReadonlyJSONValue | undefined,\n HasArgs extends boolean = false,\n> = {\n readonly [customQueryTag]: true;\n} & (HasArgs extends true\n ? unknown\n : undefined extends Args\n ? {\n (): CustomQuery<T, S, R, C, Args, true>;\n (args?: Args): CustomQuery<T, S, R, C, Args, true>;\n }\n : {\n (args: Args): CustomQuery<T, S, R, C, Args, true>;\n }) &\n (HasArgs extends true ? {toQuery(ctx: C): Query<T, S, R>} : unknown);\n\nconst queryRegistryTag = Symbol();\n\nexport function isQueryRegistry<Q extends QueryDefinitions<Schema, any>>(\n obj: unknown,\n): obj is QueryRegistry<Q> {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n (obj as any)[queryRegistryTag] === true\n );\n}\n\ntype SchemaFromQueryDefinitions<QD extends QueryDefinitions<Schema, any>> =\n QD extends QueryDefinitions<infer S, any> ? S : never;\n\nexport type QueryRegistry<QD extends QueryDefinitions<Schema, any>> =\n CustomQueriesInner<QD, SchemaFromQueryDefinitions<QD>>;\n\ntype CustomQueriesInner<\n QD extends QueryDefinitions<Schema, any>,\n S extends Schema,\n> = {\n readonly [K in keyof QD]: QD[K] extends QueryDefinition<\n infer TTable extends keyof S['tables'] & string,\n S,\n infer TReturn,\n infer TContext,\n infer TInput,\n any\n >\n ? CustomQuery<TTable, S, TReturn, TContext, TInput>\n : QD[K] extends QueryDefinitions<S, any>\n ? CustomQueriesInner<QD[K], S>\n : never;\n} & {\n [queryRegistryTag]: true;\n};\n\nexport type ContextTypeOfQueryRegistry<CQ> =\n CQ extends QueryRegistry<infer QD>\n ? QD extends QueryDefinitions<Schema, infer C>\n ? C\n : never\n : never;\n\nexport const defineQueryTag = Symbol();\n\ntype QueryDefinitionFunction<\n TTable extends keyof TSchema['tables'] & string,\n TSchema extends Schema,\n TReturn,\n TContext,\n Args extends ReadonlyJSONValue | undefined,\n> = (options: {args: Args; ctx: TContext}) => Query<TTable, TSchema, TReturn>;\n\n/**\n * A query definition is the return type of `defineQuery()`.\n */\nexport type QueryDefinition<\n TTable extends keyof TSchema['tables'] & string,\n TSchema extends Schema,\n TReturn,\n TContext,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n> = QueryDefinitionFunction<TTable, TSchema, TReturn, TContext, TOutput> & {\n [defineQueryTag]: true;\n validator: StandardSchemaV1<TInput, TOutput> | undefined;\n};\n\nexport function isQueryDefinition<\n TTable extends keyof TSchema['tables'] & string,\n TSchema extends Schema,\n TReturn,\n TContext,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n>(\n f: unknown,\n): f is QueryDefinition<TTable, TSchema, TReturn, TContext, TInput, TOutput> {\n return typeof f === 'function' && (f as any)[defineQueryTag];\n}\n\nexport type QueryDefinitions<S extends Schema, Context> = {\n readonly [key: string]:\n | QueryDefinition<any, S, any, Context, any, any>\n | QueryDefinitions<S, Context>;\n};\n\n/**\n * Defines a query to be used with {@link defineQueries}.\n *\n * The query function receives an object with `args` (the query arguments) and\n * `ctx` (the context). It should return a {@link Query} built using a builder\n * created from {@link createBuilder}.\n *\n * Note: A query defined with `defineQuery` must be passed to\n * {@link defineQueries} to be usable. The query name is derived from its\n * position in the `defineQueries` object.\n *\n * @example\n * ```ts\n * const builder = createBuilder(schema);\n *\n * const queries = defineQueries({\n * // Simple query with no arguments\n * allIssues: defineQuery(() => builder.issue.orderBy('created', 'desc')),\n *\n * // Query with typed arguments\n * issueById: defineQuery(({args}: {args: {id: string}}) =>\n * builder.issue.where('id', args.id).one(),\n * ),\n *\n * // Query with validation using a Standard Schema validator (e.g., Zod)\n * issuesByStatus: defineQuery(\n * z.object({status: z.enum(['open', 'closed'])}),\n * ({args}) => builder.issue.where('status', args.status),\n * ),\n *\n * // Query using context\n * myIssues: defineQuery(({ctx}: {ctx: {userID: string}}) =>\n * builder.issue.where('creatorID', ctx.userID),\n * ),\n * });\n * ```\n *\n * @param queryFn - A function that receives `{args, ctx}` and returns a Query.\n * @returns A {@link QueryDefinition} that can be passed to {@link defineQueries}.\n *\n * @overload\n * @param validator - A Standard Schema validator for the arguments.\n * @param queryFn - A function that receives `{args, ctx}` and returns a Query.\n * @returns A {@link QueryDefinition} with validated arguments.\n */\n// Overload for no validator parameter with default inference for untyped functions\nexport function defineQuery<\n TTable extends keyof TSchema['tables'] & string,\n TSchema extends Schema,\n TReturn,\n TContext,\n TArgs extends ReadonlyJSONValue | undefined,\n>(\n queryFn: QueryDefinitionFunction<TTable, TSchema, TReturn, TContext, TArgs>,\n): QueryDefinition<TTable, TSchema, TReturn, TContext, TArgs, TArgs>;\n\n// Overload for validator parameter - Input and Output can be different\nexport function defineQuery<\n TTable extends keyof TSchema['tables'] & string,\n TSchema extends Schema,\n TReturn,\n TContext,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n>(\n validator: StandardSchemaV1<TInput, TOutput>,\n queryFn: QueryDefinitionFunction<TTable, TSchema, TReturn, TContext, TOutput>,\n): QueryDefinition<TTable, TSchema, TReturn, TContext, TInput, TOutput>;\n\n// Implementation\nexport function defineQuery<\n TTable extends keyof TSchema['tables'] & string,\n TSchema extends Schema,\n TReturn,\n TContext,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n>(\n validatorOrQueryFn:\n | StandardSchemaV1<TInput, TOutput>\n | QueryDefinitionFunction<TTable, TSchema, TReturn, TContext, TOutput>,\n queryFn?: QueryDefinitionFunction<\n TTable,\n TSchema,\n TReturn,\n TContext,\n TOutput\n >,\n): QueryDefinition<TTable, TSchema, TReturn, TContext, TInput, TOutput> {\n // Handle different parameter patterns\n let validator: StandardSchemaV1<TInput, TOutput> | undefined;\n let actualQueryFn: QueryDefinitionFunction<\n TTable,\n TSchema,\n TReturn,\n TContext,\n TOutput\n >;\n\n if (typeof validatorOrQueryFn === 'function') {\n // defineQuery(queryFn) - no validator\n validator = undefined;\n actualQueryFn = validatorOrQueryFn;\n } else {\n // defineQuery(validator, queryFn) - with validator\n validator = validatorOrQueryFn;\n actualQueryFn = must(queryFn);\n }\n\n // We wrap the function to add the tag and validator and ensure we do not mutate it in place.\n const f = (options: {args: TOutput; ctx: TContext}) => actualQueryFn(options);\n f.validator = validator;\n f[defineQueryTag] = true as const;\n return f;\n}\n\nfunction createCustomQueryBuilder<\n T extends keyof S['tables'] & string,\n S extends Schema,\n R,\n C,\n ArgsInput extends ReadonlyJSONValue | undefined,\n ArgsOutput extends ReadonlyJSONValue | undefined,\n HasArgs extends boolean,\n>(\n queryDef: QueryDefinition<T, S, R, C, ArgsInput, ArgsOutput>,\n name: string,\n inputArgs: ArgsInput,\n validatedArgs: ArgsOutput,\n hasArgs: HasArgs,\n): CustomQuery<T, S, R, C, ArgsInput, HasArgs> {\n const {validator} = queryDef;\n\n // The callable function that sets args\n const builder = (args: ArgsInput) => {\n if (hasArgs) {\n throw new Error('args already set');\n }\n const validated = validateInput(name, args, validator, 'query');\n return createCustomQueryBuilder<T, S, R, C, ArgsInput, ArgsOutput, true>(\n queryDef,\n name,\n args,\n validated,\n true,\n );\n };\n\n // Add create method\n builder.toQuery = (ctx: C) => {\n if (!hasArgs) {\n throw new Error('args not set');\n }\n\n return asQueryInternals(\n queryDef({\n args: validatedArgs,\n ctx,\n }),\n ).nameAndArgs(\n name,\n // TODO(arv): Get rid of the array?\n // Send original input args to server (not transformed output)\n inputArgs === undefined\n ? []\n : [inputArgs as unknown as ReadonlyJSONValue],\n );\n };\n\n // Add the tag\n builder[customQueryTag] = true;\n\n return builder as unknown as CustomQuery<T, S, R, C, ArgsInput, HasArgs>;\n}\n\n/**\n * Converts query definitions created with {@link defineQuery} into callable\n * {@link CustomQuery} objects that can be invoked with arguments and a context.\n *\n * Query definitions can be nested for organization. The resulting query names\n * are dot-separated paths (e.g., `users.byId`).\n *\n * @example\n * ```ts\n * const builder = createBuilder(schema);\n *\n * const queries = defineQueries({\n * issues: defineQuery(() => builder.issue.orderBy('created', 'desc')),\n * users: {\n * byId: defineQuery(({args}: {args: {id: string}}) =>\n * builder.user.where('id', args.id),\n * ),\n * },\n * });\n *\n * // Usage:\n * const q = queries.issues().toQuery(ctx);\n * const q2 = queries.users.byId({id: '123'}).toQuery(ctx);\n * ```\n *\n * @param defs - An object containing query definitions or nested objects of\n * query definitions.\n * @returns An object with the same structure where each query definition is\n * converted to a {@link CustomQuery}.\n */\nexport function defineQueries<QD extends QueryDefinitions<Schema, any>>(\n defs: QD,\n): QueryRegistry<QD>;\n\n/**\n * Extends an existing query registry with additional or overriding query\n * definitions. Properties from overrides replace properties from base with\n * the same key.\n *\n * @param base - An existing query registry to extend.\n * @param overrides - New query definitions to add or override.\n * @returns A merged query registry with all queries from both base and overrides.\n */\nexport function defineQueries<\n TBase extends QueryDefinitions<Schema, any>,\n TOverrides extends QueryDefinitions<Schema, any>,\n>(\n base: QueryRegistry<TBase>,\n overrides: TOverrides,\n): QueryRegistry<DeepMerge<TBase, TOverrides>>;\n\n/**\n * Merges two query definition objects into a single query registry.\n * Properties from the second parameter replace properties from the first\n * with the same key.\n *\n * @param base - The base query definitions to start with.\n * @param overrides - Additional query definitions to merge in, overriding any\n * existing definitions with the same key.\n * @returns A merged query registry with all queries from both parameters.\n */\nexport function defineQueries<\n TBase extends QueryDefinitions<Schema, any>,\n TOverrides extends QueryDefinitions<Schema, any>,\n>(\n base: TBase,\n overrides: TOverrides,\n): QueryRegistry<DeepMerge<TBase, TOverrides>>;\n\nexport function defineQueries<QD extends QueryDefinitions<Schema, any>>(\n defsOrBase: QD | QueryRegistry<QD>,\n overrides?: QueryDefinitions<Schema, unknown>,\n): QueryRegistry<any> {\n function processDefinitions(\n definitions: QueryDefinitions<Schema, unknown>,\n path: string[],\n ): Record<string | symbol, any> {\n const result: Record<string | symbol, any> = {\n [queryRegistryTag]: true,\n };\n\n for (const [key, value] of Object.entries(definitions)) {\n path.push(key);\n const defaultName = path.join('.');\n\n if (isQueryDefinition(value)) {\n result[key] = createCustomQueryBuilder(\n value,\n defaultName,\n undefined,\n undefined,\n false,\n );\n } else {\n // Nested definitions\n result[key] = processDefinitions(\n value as QueryDefinitions<Schema, unknown>,\n path,\n );\n }\n path.pop();\n }\n\n return result;\n }\n\n if (overrides !== undefined) {\n // Merge base and overrides\n\n let base: Record<string | symbol, any>;\n if (!isQueryRegistry(defsOrBase)) {\n base = processDefinitions(defsOrBase as QD, []);\n } else {\n base = defsOrBase;\n }\n\n const processed = processDefinitions(overrides, []);\n\n const merged = deepMerge(base, processed) as QueryRegistry<any>;\n merged[queryRegistryTag] = true;\n return merged;\n }\n\n return processDefinitions(defsOrBase as QD, []) as QueryRegistry<QD>;\n}\n\nexport function getQuery<S extends Schema, QD extends QueryDefinitions<S, any>>(\n queries: QueryRegistry<QD>,\n name: string,\n):\n | CustomQuery<\n keyof S['tables'] & string,\n S,\n unknown, // return\n unknown, // context\n ReadonlyJSONValue | undefined, // ArgsInput\n false\n >\n | undefined {\n return getValueAtPath(queries, name, /[.|]/) as\n | CustomQuery<\n keyof S['tables'] & string,\n S,\n unknown, // return\n unknown, // context\n ReadonlyJSONValue | undefined, // ArgsInput\n false\n >\n | undefined;\n}\n\nexport function mustGetQuery<\n S extends Schema,\n QD extends QueryDefinitions<S, any>,\n>(\n queries: QueryRegistry<QD>,\n name: string,\n): CustomQuery<\n keyof S['tables'] & string,\n S,\n unknown, // return\n unknown, // context\n ReadonlyJSONValue | undefined, // ArgsInput\n false\n> {\n const v = getQuery(queries, name);\n if (!v) {\n throw new Error(`Query not found: ${name}`);\n }\n return v;\n}\n"],"names":[],"mappings":";;;;;AAWA,MAAM,iBAAiB,OAAA;AAiCvB,MAAM,mBAAmB,OAAA;AAElB,SAAS,gBACd,KACyB;AACzB,SACE,OAAO,QAAQ,YACf,QAAQ,QACP,IAAY,gBAAgB,MAAM;AAEvC;AAmCO,MAAM,iBAAiB,OAAA;AAyBvB,SAAS,kBAQd,GAC2E;AAC3E,SAAO,OAAO,MAAM,cAAe,EAAU,cAAc;AAC7D;AA8EO,SAAS,YAQd,oBAGA,SAOsE;AAEtE,MAAI;AACJ,MAAI;AAQJ,MAAI,OAAO,uBAAuB,YAAY;AAE5C,gBAAY;AACZ,oBAAgB;AAAA,EAClB,OAAO;AAEL,gBAAY;AACZ,oBAAgB,KAAK,OAAO;AAAA,EAC9B;AAGA,QAAM,IAAI,CAAC,YAA4C,cAAc,OAAO;AAC5E,IAAE,YAAY;AACd,IAAE,cAAc,IAAI;AACpB,SAAO;AACT;AAEA,SAAS,yBASP,UACA,MACA,WACA,eACA,SAC6C;AAC7C,QAAM,EAAC,cAAa;AAGpB,QAAM,UAAU,CAAC,SAAoB;AACnC,QAAI,SAAS;AACX,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACpC;AACA,UAAM,YAAY,cAAc,MAAM,MAAM,WAAW,OAAO;AAC9D,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAGA,UAAQ,UAAU,CAAC,QAAW;AAC5B,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,QACP,MAAM;AAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EACD;AAAA,MACA;AAAA;AAAA;AAAA,MAGA,cAAc,SACV,CAAA,IACA,CAAC,SAAyC;AAAA,IAAA;AAAA,EAElD;AAGA,UAAQ,cAAc,IAAI;AAE1B,SAAO;AACT;AAuEO,SAAS,cACd,YACA,WACoB;AACpB,WAAS,mBACP,aACA,MAC8B;AAC9B,UAAM,SAAuC;AAAA,MAC3C,CAAC,gBAAgB,GAAG;AAAA,IAAA;AAGtB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,GAAG;AACtD,WAAK,KAAK,GAAG;AACb,YAAM,cAAc,KAAK,KAAK,GAAG;AAEjC,UAAI,kBAAkB,KAAK,GAAG;AAC5B,eAAO,GAAG,IAAI;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,OAAO;AAEL,eAAO,GAAG,IAAI;AAAA,UACZ;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AACA,WAAK,IAAA;AAAA,IACP;AAEA,WAAO;AAAA,EACT;AAEA,MAAI,cAAc,QAAW;AAG3B,QAAI;AACJ,QAAI,CAAC,gBAAgB,UAAU,GAAG;AAChC,aAAO,mBAAmB,YAAkB,EAAE;AAAA,IAChD,OAAO;AACL,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,mBAAmB,WAAW,EAAE;AAElD,UAAM,SAAS,UAAU,MAAM,SAAS;AACxC,WAAO,gBAAgB,IAAI;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,mBAAmB,YAAkB,EAAE;AAChD;AAEO,SAAS,SACd,SACA,MAUY;AACZ,SAAO,eAAe,SAAS,MAAM,MAAM;AAU7C;AAEO,SAAS,aAId,SACA,MAQA;AACA,QAAM,IAAI,SAAS,SAAS,IAAI;AAChC,MAAI,CAAC,GAAG;AACN,UAAM,IAAI,MAAM,oBAAoB,IAAI,EAAE;AAAA,EAC5C;AACA,SAAO;AACT;"}
1
+ {"version":3,"file":"query-registry.js","sources":["../../../../../zql/src/query/query-registry.ts"],"sourcesContent":["// oxlint-disable no-explicit-any\nimport type {StandardSchemaV1} from '@standard-schema/spec';\nimport {deepMerge, type DeepMerge} from '../../../shared/src/deep-merge.ts';\nimport type {Expand} from '../../../shared/src/expand.ts';\nimport type {ReadonlyJSONValue} from '../../../shared/src/json.ts';\nimport {must} from '../../../shared/src/must.ts';\nimport {getValueAtPath} from '../../../shared/src/object-traversal.ts';\nimport type {\n DefaultContext,\n DefaultSchema,\n} from '../../../zero-types/src/default-types.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport {asQueryInternals} from './query-internals.ts';\nimport type {PullRow, Query} from './query.ts';\nimport {validateInput} from './validate-input.ts';\n\n/**\n * CustomQuery is what is returned from defineQueries. It supports a builder\n * pattern where args is set before calling toQuery(context).\n *\n * const queries = defineQueries(...);\n * queries.foo.bar satisfies CustomQuery<...>\n *\n * Usage:\n * queries.foo(args).toQuery(ctx)\n */\nexport type CustomQuery<\n TTable extends keyof TSchema['tables'] & string,\n TInput extends ReadonlyJSONValue | undefined,\n TSchema extends Schema = DefaultSchema,\n TReturn = PullRow<TTable, TSchema>,\n TContext = DefaultContext,\n THasArgs extends boolean = false,\n> = {\n /**\n * Type-only phantom property to surface query types in a covariant position.\n */\n '~': Expand<\n QueryTypes<TTable, TInput, never, TSchema, TReturn, TContext, THasArgs>\n >;\n} & (THasArgs extends true\n ? unknown\n : undefined extends TInput\n ? {\n (): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, true>;\n (\n args?: TInput,\n ): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, true>;\n }\n : {\n (\n args: TInput,\n ): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, true>;\n }) &\n (THasArgs extends true\n ? {toQuery(ctx: TContext): Query<TTable, TSchema, TReturn>}\n : unknown);\n\nexport function isQueryRegistry<\n Q extends QueryDefinitions<S, any>,\n S extends Schema = DefaultSchema,\n>(obj: unknown): obj is QueryRegistry<Q, S> {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n (obj as any)['~'] === 'QueryRegistry'\n );\n}\n\nexport type QueryTypes<\n TTable extends keyof TSchema['tables'] & string,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput,\n TSchema extends Schema,\n TReturn,\n TContext,\n THasArgs extends boolean,\n> = 'Query' & {\n readonly $tableName: TTable;\n readonly $input: TInput;\n readonly $output: TOutput;\n readonly $schema: TSchema;\n readonly $return: TReturn;\n readonly $context: TContext;\n readonly $hasArgs: THasArgs;\n};\n\nexport type QueryDefinitionTypes<\n TTable extends string,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput,\n TReturn,\n TContext,\n> = 'QueryDefinition' & {\n readonly $tableName: TTable;\n readonly $input: TInput;\n readonly $output: TOutput;\n readonly $return: TReturn;\n readonly $context: TContext;\n};\n\nexport type QueryRegistryTypes<TSchema extends Schema> = 'QueryRegistry' & {\n readonly $schema: TSchema;\n};\n\nexport type QueryRegistry<\n QD extends QueryDefinitions<S, any>,\n S extends Schema,\n> = ToQueryTree<QD, S> & {\n ['~']: Expand<QueryRegistryTypes<S>>;\n};\n\ntype AnyQueryDefinition = QueryDefinition<any, any, any, any, any>;\n\ntype ToQueryTree<QD extends QueryDefinitions<S, any>, S extends Schema> = {\n readonly [K in keyof QD]: QD[K] extends AnyQueryDefinition\n ? // pull types from the phantom property\n CustomQuery<\n QD[K]['~']['$tableName'],\n QD[K]['~']['$input'],\n S,\n QD[K]['~']['$return'],\n QD[K]['~']['$context'],\n false\n >\n : QD[K] extends QueryDefinitions<Schema, any>\n ? ToQueryTree<QD[K], S>\n : never;\n};\n\nexport type FromQueryTree<\n QD extends QueryDefinitions<S, any>,\n S extends Schema,\n> = {\n readonly [K in keyof QD]: QD[K] extends AnyQueryDefinition\n ? CustomQuery<\n QD[K]['~']['$tableName'],\n ReadonlyJSONValue | undefined, // intentionally left as generic to avoid variance issues\n S,\n QD[K]['~']['$return'],\n QD[K]['~']['$context'],\n false\n >\n : QD[K] extends QueryDefinitions<Schema, any>\n ? FromQueryTree<QD[K], S>\n : never;\n}[keyof QD];\n\ntype QueryDefinitionFunction<\n TTable extends string,\n TOutput extends ReadonlyJSONValue | undefined,\n TReturn,\n TContext,\n> = (options: {args: TOutput; ctx: TContext}) => Query<TTable, Schema, TReturn>;\n\n/**\n * A query definition is the return type of `defineQuery()`.\n */\nexport type QueryDefinition<\n TTable extends string,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n TReturn,\n TContext = DefaultContext,\n> = QueryDefinitionFunction<TTable, TOutput, TReturn, TContext> & {\n 'validator': StandardSchemaV1<TInput, TOutput> | undefined;\n\n /**\n * Type-only phantom property to surface query types in a covariant position.\n */\n readonly '~': Expand<\n QueryDefinitionTypes<TTable, TInput, TOutput, TReturn, TContext>\n >;\n};\n\nexport function isQueryDefinition<\n TTable extends keyof TSchema['tables'] & string,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n TSchema extends Schema = DefaultSchema,\n TReturn = PullRow<TTable, TSchema>,\n TContext = DefaultContext,\n>(\n f: unknown,\n): f is QueryDefinition<TTable, TInput, TOutput, TReturn, TContext> {\n return typeof f === 'function' && (f as any)['~'] === 'QueryDefinition';\n}\n\nexport type QueryDefinitions<S extends Schema, Context> = {\n readonly [key: string]:\n | QueryDefinition<any, any, any, any, Context>\n | QueryDefinitions<S, Context>;\n};\n\n/**\n * Defines a query to be used with {@link defineQueries}.\n *\n * The query function receives an object with `args` (the query arguments) and\n * `ctx` (the context). It should return a {@link Query} built using a builder\n * created from {@link createBuilder}.\n *\n * Note: A query defined with `defineQuery` must be passed to\n * {@link defineQueries} to be usable. The query name is derived from its\n * position in the `defineQueries` object.\n *\n * @example\n * ```ts\n * const builder = createBuilder(schema);\n *\n * const queries = defineQueries({\n * // Simple query with no arguments\n * allIssues: defineQuery(() => builder.issue.orderBy('created', 'desc')),\n *\n * // Query with typed arguments\n * issueById: defineQuery(({args}: {args: {id: string}}) =>\n * builder.issue.where('id', args.id).one(),\n * ),\n *\n * // Query with validation using a Standard Schema validator (e.g., Zod)\n * issuesByStatus: defineQuery(\n * z.object({status: z.enum(['open', 'closed'])}),\n * ({args}) => builder.issue.where('status', args.status),\n * ),\n *\n * // Query using context\n * myIssues: defineQuery(({ctx}: {ctx: {userID: string}}) =>\n * builder.issue.where('creatorID', ctx.userID),\n * ),\n * });\n * ```\n *\n * @param queryFn - A function that receives `{args, ctx}` and returns a Query.\n * @returns A {@link QueryDefinition} that can be passed to {@link defineQueries}.\n *\n * @overload\n * @param validator - A Standard Schema validator for the arguments.\n * @param queryFn - A function that receives `{args, ctx}` and returns a Query.\n * @returns A {@link QueryDefinition} with validated arguments.\n */\n// Overload for no validator parameter with default inference for untyped functions\nexport function defineQuery<\n TInput extends ReadonlyJSONValue | undefined,\n TContext = DefaultContext,\n TSchema extends Schema = DefaultSchema,\n TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] &\n string,\n TReturn = PullRow<TTable, TSchema>,\n>(\n queryFn: (options: {\n args: TInput;\n ctx: TContext;\n }) => Query<TTable, TSchema, TReturn>,\n): QueryDefinition<TTable, TInput, TInput, TReturn, TContext> & {};\n\n// Overload for validator parameter - Input and Output can be different\nexport function defineQuery<\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n TContext = DefaultContext,\n TSchema extends Schema = DefaultSchema,\n TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] &\n string,\n TReturn = PullRow<TTable, TSchema>,\n>(\n validator: StandardSchemaV1<TInput, TOutput>,\n queryFn: (options: {\n args: TOutput;\n ctx: TContext;\n }) => Query<TTable, TSchema, TReturn>,\n): QueryDefinition<TTable, TInput, TOutput, TReturn, TContext> & {};\n\n// Implementation\nexport function defineQuery<\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n TContext = DefaultContext,\n TSchema extends Schema = DefaultSchema,\n TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] &\n string,\n TReturn = PullRow<TTable, TSchema>,\n>(\n validatorOrQueryFn:\n | StandardSchemaV1<TInput, TOutput>\n | QueryDefinitionFunction<TTable, TOutput, TReturn, TContext>,\n queryFn?: QueryDefinitionFunction<TTable, TOutput, TReturn, TContext>,\n): QueryDefinition<TTable, TInput, TOutput, TReturn, TContext> {\n // Handle different parameter patterns\n let validator: StandardSchemaV1<TInput, TOutput> | undefined;\n let actualQueryFn: QueryDefinitionFunction<\n TTable,\n TOutput,\n TReturn,\n TContext\n >;\n\n if (typeof validatorOrQueryFn === 'function') {\n // defineQuery(queryFn) - no validator\n validator = undefined;\n actualQueryFn = validatorOrQueryFn;\n } else {\n // defineQuery(validator, queryFn) - with validator\n validator = validatorOrQueryFn;\n actualQueryFn = must(queryFn);\n }\n\n // We wrap the function to add the tag and validator and ensure we do not mutate it in place.\n const f = (options: {args: TOutput; ctx: TContext}) => actualQueryFn(options);\n f.validator = validator;\n f['~'] = 'QueryDefinition' as unknown as QueryDefinitionTypes<\n TTable,\n TInput,\n TOutput,\n TReturn,\n TContext\n >;\n\n return f;\n}\n\n/**\n * Returns a typed version of {@link defineQuery} with the schema and context\n * types pre-specified. This enables better type inference when defining\n * queries.\n *\n * @example\n * ```ts\n * const builder = createBuilder(schema);\n *\n * // With both Schema and Context types\n * const defineAppQuery = defineQueryWithType<AppSchema, AppContext>();\n * const myQuery = defineAppQuery(({ctx}) =>\n * builder.issue.where('userID', ctx.userID),\n * );\n *\n * // With just Context type (Schema inferred)\n * const defineAppQuery = defineQueryWithType<AppContext>();\n * ```\n *\n * @typeParam S - The Zero schema type.\n * @typeParam C - The context type passed to query functions.\n * @returns A function equivalent to {@link defineQuery} but with types\n * pre-bound.\n */\nexport function defineQueryWithType<\n S extends Schema,\n C = unknown,\n>(): TypedDefineQuery<S, C>;\n\n/**\n * Returns a typed version of {@link defineQuery} with the context type\n * pre-specified.\n *\n * @typeParam C - The context type passed to query functions.\n * @returns A function equivalent to {@link defineQuery} but with the context\n * type pre-bound.\n */\nexport function defineQueryWithType<C>(): TypedDefineQuery<Schema, C>;\n\nexport function defineQueryWithType() {\n return defineQuery;\n}\n\n/**\n * The return type of defineQueryWithType. A function matching the\n * defineQuery overloads but with Schema and Context pre-bound.\n */\ntype TypedDefineQuery<TSchema extends Schema, TContext> = {\n // Without validator\n <\n TArgs extends ReadonlyJSONValue | undefined,\n TReturn,\n TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] &\n string,\n >(\n queryFn: (options: {\n args: TArgs;\n ctx: TContext;\n }) => Query<TTable, TSchema, TReturn>,\n ): QueryDefinition<TTable, TArgs, TArgs, TReturn, TContext>;\n\n // With validator\n <\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n TReturn,\n TTable extends keyof TSchema['tables'] & string = keyof TSchema['tables'] &\n string,\n >(\n validator: StandardSchemaV1<TInput, TOutput>,\n queryFn: (options: {\n args: TOutput;\n ctx: TContext;\n }) => Query<TTable, TSchema, TReturn>,\n ): QueryDefinition<TTable, TInput, TOutput, TReturn, TContext>;\n};\n\nexport function createCustomQueryBuilder<\n TTable extends keyof TSchema['tables'] & string,\n TInput extends ReadonlyJSONValue | undefined,\n TOutput extends ReadonlyJSONValue | undefined,\n TSchema extends Schema,\n TReturn,\n TContext,\n THasArgs extends boolean,\n>(\n queryDef: QueryDefinition<TTable, TInput, TOutput, TReturn, TContext>,\n name: string,\n inputArgs: TInput,\n validatedArgs: TOutput,\n hasArgs: THasArgs,\n): CustomQuery<TTable, TInput, TSchema, TReturn, TContext, THasArgs> {\n const {validator} = queryDef;\n\n // The callable function that sets args\n const builder = (args: TInput) => {\n if (hasArgs) {\n throw new Error('args already set');\n }\n const validated = validateInput(name, args, validator, 'query');\n return createCustomQueryBuilder<\n TTable,\n TInput,\n TOutput,\n TSchema,\n TReturn,\n TContext,\n true\n >(queryDef, name, args, validated, true);\n };\n\n // Add create method\n builder.toQuery = (ctx: TContext) => {\n if (!hasArgs) {\n throw new Error('args not set');\n }\n\n return asQueryInternals(\n queryDef({\n args: validatedArgs,\n ctx,\n }),\n ).nameAndArgs(\n name,\n // TODO(arv): Get rid of the array?\n // Send original input args to server (not transformed output)\n inputArgs === undefined\n ? []\n : [inputArgs as unknown as ReadonlyJSONValue],\n );\n };\n\n // Add the phantom property\n builder['~'] = 'CustomQuery';\n\n return builder as unknown as CustomQuery<\n TTable,\n TInput,\n TSchema,\n TReturn,\n TContext,\n THasArgs\n >;\n}\n\n/**\n * Converts query definitions created with {@link defineQuery} into callable\n * {@link CustomQuery} objects that can be invoked with arguments and a context.\n *\n * Query definitions can be nested for organization. The resulting query names\n * are dot-separated paths (e.g., `users.byId`).\n *\n * @example\n * ```ts\n * const builder = createBuilder(schema);\n *\n * const queries = defineQueries({\n * issues: defineQuery(() => builder.issue.orderBy('created', 'desc')),\n * users: {\n * byId: defineQuery(({args}: {args: {id: string}}) =>\n * builder.user.where('id', args.id),\n * ),\n * },\n * });\n *\n * // Usage:\n * const q = queries.issues().toQuery(ctx);\n * const q2 = queries.users.byId({id: '123'}).toQuery(ctx);\n * ```\n *\n * @param defs - An object containing query definitions or nested objects of\n * query definitions.\n * @returns An object with the same structure where each query definition is\n * converted to a {@link CustomQuery}.\n */\nexport function defineQueries<\n // let QD infer freely so defaults aren't erased by a QueryDefinitions<any, any> constraint\n const QD,\n S extends Schema = DefaultSchema,\n>(\n defs: QD & AssertQueryDefinitions<QD>,\n): QueryRegistry<EnsureQueryDefinitions<QD>, S>;\n\nexport function defineQueries<\n TBase,\n TOverrides,\n S extends Schema = DefaultSchema,\n>(\n base:\n | QueryRegistry<EnsureQueryDefinitions<TBase>, S>\n | (TBase & AssertQueryDefinitions<TBase>),\n overrides: TOverrides & AssertQueryDefinitions<TOverrides>,\n): QueryRegistry<\n DeepMerge<EnsureQueryDefinitions<TBase>, EnsureQueryDefinitions<TOverrides>>,\n S\n>;\n\nexport function defineQueries<\n QD extends QueryDefinitions<S, any>,\n S extends Schema,\n>(\n defsOrBase: QD | QueryRegistry<QD, S>,\n overrides?: QueryDefinitions<S, unknown>,\n): QueryRegistry<any, S> {\n function processDefinitions(\n definitions: QueryDefinitions<Schema, unknown>,\n path: string[],\n ): Record<string | symbol, any> {\n const result: Record<string | symbol, any> = {\n ['~']: 'QueryRegistry',\n };\n\n for (const [key, value] of Object.entries(definitions)) {\n path.push(key);\n const defaultName = path.join('.');\n\n if (isQueryDefinition(value)) {\n result[key] = createCustomQueryBuilder(\n value,\n defaultName,\n undefined,\n undefined,\n false,\n );\n } else {\n // Nested definitions\n result[key] = processDefinitions(\n value as QueryDefinitions<Schema, unknown>,\n path,\n );\n }\n path.pop();\n }\n\n return result;\n }\n\n if (overrides !== undefined) {\n // Merge base and overrides\n\n let base: Record<string | symbol, any>;\n if (!isQueryRegistry(defsOrBase)) {\n base = processDefinitions(defsOrBase as QD, []);\n } else {\n base = defsOrBase;\n }\n\n const processed = processDefinitions(overrides, []);\n\n const merged = deepMerge(base, processed);\n merged['~'] = 'QueryRegistry';\n return merged as QueryRegistry<any, S>;\n }\n\n return processDefinitions(defsOrBase as QD, []) as QueryRegistry<QD, S>;\n}\n\ntype AssertQueryDefinitions<QD> =\n QD extends QueryDefinitions<any, any> ? unknown : never;\n\ntype EnsureQueryDefinitions<QD> =\n QD extends QueryDefinitions<any, any> ? QD : never;\n\n/**\n * Creates a function that can be used to define queries with a specific schema.\n */\nexport function defineQueriesWithType<\n TSchema extends Schema,\n>(): TypedDefineQueries<TSchema> {\n return defineQueries;\n}\n\n/**\n * The return type of defineQueriesWithType. A function matching the\n * defineQueries overloads but with Schema pre-bound.\n */\ntype TypedDefineQueries<S extends Schema> = {\n // Single definitions\n <QD>(\n definitions: QD & AssertQueryDefinitions<QD>,\n ): QueryRegistry<EnsureQueryDefinitions<QD>, S>;\n\n // Base and overrides\n <TBase, TOverrides>(\n base:\n | QueryRegistry<EnsureQueryDefinitions<TBase>, S>\n | (TBase & AssertQueryDefinitions<TBase>),\n overrides: TOverrides & AssertQueryDefinitions<TOverrides>,\n ): QueryRegistry<\n DeepMerge<\n EnsureQueryDefinitions<TBase>,\n EnsureQueryDefinitions<TOverrides>\n >,\n S\n >;\n};\n\nexport function getQuery<QD extends QueryDefinitions<S, any>, S extends Schema>(\n queries: QueryRegistry<QD, S>,\n name: string,\n): FromQueryTree<QD, S> | undefined {\n const q = getValueAtPath(queries, name, /[.|]/);\n return q as FromQueryTree<QD, S> | undefined;\n}\n\nexport function mustGetQuery<\n QD extends QueryDefinitions<S, any>,\n S extends Schema,\n>(queries: QueryRegistry<QD, S>, name: string): FromQueryTree<QD, S> {\n const query = getQuery(queries, name);\n if (query === undefined) {\n throw new Error(`Query not found: ${name}`);\n }\n return query;\n}\n"],"names":[],"mappings":";;;;;AA0DO,SAAS,gBAGd,KAA0C;AAC1C,SACE,OAAO,QAAQ,YACf,QAAQ,QACP,IAAY,GAAG,MAAM;AAE1B;AA4GO,SAAS,kBAQd,GACkE;AAClE,SAAO,OAAO,MAAM,cAAe,EAAU,GAAG,MAAM;AACxD;AAsFO,SAAS,YASd,oBAGA,SAC6D;AAE7D,MAAI;AACJ,MAAI;AAOJ,MAAI,OAAO,uBAAuB,YAAY;AAE5C,gBAAY;AACZ,oBAAgB;AAAA,EAClB,OAAO;AAEL,gBAAY;AACZ,oBAAgB,KAAK,OAAO;AAAA,EAC9B;AAGA,QAAM,IAAI,CAAC,YAA4C,cAAc,OAAO;AAC5E,IAAE,YAAY;AACd,IAAE,GAAG,IAAI;AAQT,SAAO;AACT;AA+EO,SAAS,yBASd,UACA,MACA,WACA,eACA,SACmE;AACnE,QAAM,EAAC,cAAa;AAGpB,QAAM,UAAU,CAAC,SAAiB;AAChC,QAAI,SAAS;AACX,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACpC;AACA,UAAM,YAAY,cAAc,MAAM,MAAM,WAAW,OAAO;AAC9D,WAAO,yBAQL,UAAU,MAAM,MAAM,WAAW,IAAI;AAAA,EACzC;AAGA,UAAQ,UAAU,CAAC,QAAkB;AACnC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,QACP,MAAM;AAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EACD;AAAA,MACA;AAAA;AAAA;AAAA,MAGA,cAAc,SACV,CAAA,IACA,CAAC,SAAyC;AAAA,IAAA;AAAA,EAElD;AAGA,UAAQ,GAAG,IAAI;AAEf,SAAO;AAQT;AAsDO,SAAS,cAId,YACA,WACuB;AACvB,WAAS,mBACP,aACA,MAC8B;AAC9B,UAAM,SAAuC;AAAA,MAC3C,CAAC,GAAG,GAAG;AAAA,IAAA;AAGT,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,GAAG;AACtD,WAAK,KAAK,GAAG;AACb,YAAM,cAAc,KAAK,KAAK,GAAG;AAEjC,UAAI,kBAAkB,KAAK,GAAG;AAC5B,eAAO,GAAG,IAAI;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,OAAO;AAEL,eAAO,GAAG,IAAI;AAAA,UACZ;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AACA,WAAK,IAAA;AAAA,IACP;AAEA,WAAO;AAAA,EACT;AAEA,MAAI,cAAc,QAAW;AAG3B,QAAI;AACJ,QAAI,CAAC,gBAAgB,UAAU,GAAG;AAChC,aAAO,mBAAmB,YAAkB,EAAE;AAAA,IAChD,OAAO;AACL,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,mBAAmB,WAAW,EAAE;AAElD,UAAM,SAAS,UAAU,MAAM,SAAS;AACxC,WAAO,GAAG,IAAI;AACd,WAAO;AAAA,EACT;AAEA,SAAO,mBAAmB,YAAkB,EAAE;AAChD;AA0CO,SAAS,SACd,SACA,MACkC;AAClC,QAAM,IAAI,eAAe,SAAS,MAAM,MAAM;AAC9C,SAAO;AACT;AAEO,SAAS,aAGd,SAA+B,MAAoC;AACnE,QAAM,QAAQ,SAAS,SAAS,IAAI;AACpC,MAAI,UAAU,QAAW;AACvB,UAAM,IAAI,MAAM,oBAAoB,IAAI,EAAE;AAAA,EAC5C;AACA,SAAO;AACT;"}
@@ -40,12 +40,25 @@ type RowNamespace<S extends Schema | TypeError> = S extends Schema ? {
40
40
  registeredTableSchema: S['tables'][K];
41
41
  };
42
42
  } : S;
43
- export type Row<T extends Schema | TableSchema | Query<string, ZeroSchema, any> | ((...args: any) => Query<string, ZeroSchema, any>) = DefaultSchema> = T extends Schema ? RowNamespace<T> : T extends TableSchema ? {
43
+ export type Row<T extends Schema | TableSchema | AnyQueryLike = DefaultSchema> = T extends Schema ? RowNamespace<T> : T extends TableSchema ? {
44
44
  readonly [K in keyof T['columns']]: SchemaValueToTSType<T['columns'][K]>;
45
- } : T extends Query<string, ZeroSchema, any> | ((...args: any) => Query<string, ZeroSchema, any>) ? QueryRowType<T> : never;
46
- export type QueryRowType<Q> = Q extends (...args: any) => Query<any, any, infer R> ? R : Q extends Query<any, any, infer R> ? R : never;
47
- export type ZeRow<Q> = QueryRowType<Q>;
48
- export type QueryResultType<Q> = Q extends Query<string, ZeroSchema, any> | ((...args: any) => Query<string, ZeroSchema, any>) ? HumanReadable<QueryRowType<Q>> : never;
45
+ } : T extends AnyQueryLike ? QueryRowType<T> : never;
46
+ /**
47
+ * The shape of a CustomQuery's phantom type property.
48
+ * CustomQuery has '~' containing QueryTypes which extends 'Query' & {...}
49
+ */
50
+ type CustomQueryPhantom = {
51
+ '~': {
52
+ readonly $return: unknown;
53
+ };
54
+ };
55
+ /**
56
+ * A Query, CustomQuery, or a function returning either.
57
+ */
58
+ export type AnyQueryLike = Query<string, ZeroSchema, any> | ((...args: any) => Query<string, ZeroSchema, any>) | CustomQueryPhantom;
59
+ export type QueryRowType<Q extends AnyQueryLike> = Q extends (...args: any) => Query<any, any, infer R> ? R : Q extends Query<any, any, infer R> ? R : Q extends CustomQueryPhantom ? Q['~']['$return'] : never;
60
+ export type ZeRow<Q extends AnyQueryLike> = QueryRowType<Q>;
61
+ export type QueryResultType<Q extends AnyQueryLike> = Q extends Query<string, ZeroSchema, any> | ((...args: any) => Query<string, ZeroSchema, any>) ? HumanReadable<QueryRowType<Q>> : Q extends CustomQueryPhantom ? HumanReadable<Q['~']['$return']> : never;
49
62
  /**
50
63
  * A hybrid query that runs on both client and server.
51
64
  * Results are returned immediately from the client followed by authoritative
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAE,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,WAAW,EACX,MAAM,IAAI,UAAU,EACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE/C,KAAK,QAAQ,CAAC,CAAC,SAAS,WAAW,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;AAE1D,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CACjE,QAAQ,CAAC,CAAC,CAAC,EACX,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CACrC,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,WAAW,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,CAAC,GAAG,KAAK;CAC9E,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEtB,KAAK,cAAc,CAAC,CAAC,SAAS,WAAW,IAAI;KAC1C,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,yBAAyB,CAC1E,GAAG,EAAE,CACN,GACG,CAAC,GACD,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEtB,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5E,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC;AAE5C,MAAM,MAAM,aAAa,CACvB,OAAO,SAAS,WAAW,EAC3B,OAAO,SAAS,MAAM,OAAO,CAAC,SAAS,CAAC,EACxC,SAAS,SAAS,cAAc,IAC9B,SAAS,SAAS,IAAI,GAAG,QAAQ,GAIjC,AAHA,yEAAyE;AAGzE,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,GACvD,SAAS,SAAS,IAAI,GAAG,QAAQ,GAI/B,SAAS,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAC1E,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEtE,MAAM,MAAM,sBAAsB,CAChC,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,UAAU,IACxB,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEpD,MAAM,MAAM,aAAa,CACvB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,UAAU,EAC1B,aAAa,SAAS,MAAM,IAC1B,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AAE/E,KAAK,OAAO,CACV,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,UAAU,EAC1B,aAAa,SAAS,MAAM,IAC1B,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,MAAM,GAChF,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,GAC/D,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AAEhF,KAAK,YAAY,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,SAAS,MAAM,IAAI;IACzE,QAAQ,EAAE,CAAC,IAAI,GAAG,GAAG,SAAS,SAAS,gBAAgB,GACnD,gBAAgB,GAChB,SAAS,gBAAgB,EAAE;CAChC,SAAS,MAAM,gBAAgB,GAC5B,SAAS,SAAS,eAAe,GAC/B,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAAC,GAAG,SAAS,GACpE,eAAe,GAAG,gBAAgB,GACpC,KAAK,CAAC;AAEV,MAAM,MAAM,eAAe,CACzB,MAAM,SAAS,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,EAClD,QAAQ,SAAS,UAAU,IACzB,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/B,MAAM,MAAM,OAAO,CACjB,MAAM,SAAS,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,EAClD,OAAO,SAAS,UAAU,GAAG,aAAa,IACxC;IACF,QAAQ,EAAE,CAAC,IAAI,MAAM,eAAe,CAClC,MAAM,EACN,OAAO,CACR,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAChC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC/C;CACF,GAAG,EAAE,CAAC;AAEP,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI,CAAC,SAAS,MAAM,GAC9D;IACE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,GAC9B,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,GACzC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GACnB;QACE,KAAK,EAAE,8BAA8B,CAAC,GAAG,MAAM,6EAA6E,CAAC;QAC7H,qBAAqB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KACvC;CACN,GACD,CAAC,CAAC;AAEN,MAAM,MAAM,GAAG,CACb,CAAC,SACG,MAAM,GACN,WAAW,GACX,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,GAC9B,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,aAAa,IACpE,CAAC,SAAS,MAAM,GAChB,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,SAAS,WAAW,GACnB;IACE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,mBAAmB,CACrD,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAChB;CACF,GACD,CAAC,SACK,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,GAC9B,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,GACtD,YAAY,CAAC,CAAC,CAAC,GACf,KAAK,CAAC;AAEd,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CACtC,GAAG,IAAI,EAAE,GAAG,KACT,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GACzB,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAChC,CAAC,GACD,KAAK,CAAC;AAEZ,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAC9B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,GAC9B,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,GAClD,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC9B,KAAK,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,KAAK,CACpB,MAAM,SAAS,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,EAC/C,OAAO,SAAS,UAAU,GAAG,aAAa,EAC1C,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAClC,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,OAAO,CAAC,aAAa,SAAS,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,YAAY,EAAE,aAAa,GAC1B,KAAK,CACN,MAAM,EACN,OAAO,EACP,YAAY,CACV,OAAO,EACP,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EACvC,aAAa,CACd,CACF,CAAC;IACF,OAAO,CACL,aAAa,SAAS,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,IAAI,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAExC,YAAY,EAAE,aAAa,EAC3B,EAAE,EAAE,CACF,CAAC,EAAE,KAAK,CACN,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAC7C,OAAO,EACP,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CACxC,KACE,IAAI,GACR,KAAK,CACN,MAAM,EACN,OAAO,EACP,YAAY,CACV,OAAO,EACP,IAAI,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC,GACjD,UAAU,GACV,KAAK,EACT,aAAa,CACd,CACF,CAAC;IAEF,KAAK,CACH,SAAS,SAAS,sBAAsB,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC1E,SAAS,SAAS,cAAc,EAEhC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,SAAS,EACb,KAAK,EACD,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,GACrE,kBAAkB,GACrB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CACH,SAAS,SAAS,sBAAsB,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAE1E,KAAK,EAAE,SAAS,EAChB,KAAK,EACD,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAC/D,kBAAkB,GACrB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CACH,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GACpD,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnC,WAAW,CACT,YAAY,EAAE,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,EACrD,OAAO,CAAC,EAAE,aAAa,GACtB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,aAAa,SAAS,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,YAAY,EAAE,aAAa,EAC3B,EAAE,EAAE,CACF,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,KAC7D,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnC,KAAK,CACH,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACtC,IAAI,CAAC,EAAE;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAC1B,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtD,OAAO,CAAC,SAAS,SAAS,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAClE,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,KAAK,GAAG,MAAM,GACxB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnC,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;IAEnD;;OAEG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D;;OAEG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG;QACjC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,CAAC;IAEF;;OAEG;IACH,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D;;OAEG;IACH,WAAW,CAAC,CAAC,EACX,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EACjD,GAAG,CAAC,EAAE,GAAG,GACR,CAAC,CAAC;CACN;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAE7E;;GAEG;AAEH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,SAAS,SAAS,CAAC,GACvD,eAAe,CAAC,CAAC,CAAC,GAClB,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAEzB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,2BAA2B;;CAE9B,CAAC;AAEX,eAAO,MAAM,4BAA4B;;CAE/B,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,OAAO,CACtB,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,EACpC,CAAC,SAAS,MAAM,EAChB,CAAC,EACD,CAAC;IAED,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACrC"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-source.d.ts","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAK7D,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAC,GAAG,EAAQ,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAe3E,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAC,QAAQ,EAAY,MAAM,SAAS,CAAC;AAqBjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,MAAM;;IAcxC;;;;;OAKG;gBAED,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,gBAAc;IAiB3B,IAAI,WAAW;;;;MAMd;IAED;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,QAAQ;IA4FlB,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,SAAS,EACnB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,KAAK,CAAC,EAAE,aAAa;IAuCvB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IA4G1B,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAM/B,OAAO,CAAC,MAAM,EAAE,YAAY;IA2F7B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;CA6BrC;AA6BD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACvC,SAAS,OAAO,EAAE,CAEpB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,wCAa/C;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB,GAAG,CAaL;AAwCD,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"table-source.d.ts","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAK7D,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAC,GAAG,EAAQ,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAe3E,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAC,QAAQ,EAAY,MAAM,SAAS,CAAC;AAqBjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,MAAM;;IAexC;;;;;OAKG;gBAED,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,gBAAc;IAiB3B,IAAI,WAAW;;;;MAMd;IAED;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,QAAQ;IA4FlB,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,SAAS,EACnB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,KAAK,CAAC,EAAE,aAAa;IAuCvB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAqG1B,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAM/B,OAAO,CAAC,MAAM,EAAE,YAAY;IA4F7B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;CA6BrC;AA6BD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACvC,SAAS,OAAO,EAAE,CAEpB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,wCAa/C;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB,GAAG,CAaL;AAwCD,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}