@instantdb/core 0.22.163 → 0.22.164

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.
@@ -923,18 +923,58 @@ test('pagination parameters can only be used at top-level namespaces', () => {
923
923
  },
924
924
  });
925
925
 
926
+ beValid({
927
+ posts: {
928
+ $: {
929
+ before: cursor,
930
+ beforeInclusive: true,
931
+ },
932
+ },
933
+ });
934
+
935
+ beValid({
936
+ posts: {
937
+ $: {
938
+ after: cursor,
939
+ afterInclusive: true,
940
+ },
941
+ },
942
+ });
943
+
944
+ beWrong({
945
+ users: {
946
+ posts: {
947
+ $: {
948
+ beforeInclusive: true,
949
+ },
950
+ },
951
+ },
952
+ });
953
+
954
+ beWrong({
955
+ users: {
956
+ posts: {
957
+ $: {
958
+ afterInclusive: true,
959
+ },
960
+ },
961
+ },
962
+ });
963
+
926
964
  // Valid - multiple top-level entities with different pagination params
927
965
  beValid({
928
966
  posts: {
929
967
  $: {
930
968
  limit: 10,
931
969
  offset: 5,
970
+ afterInclusive: true,
932
971
  },
933
972
  },
934
973
  users: {
935
974
  $: {
936
975
  first: 20,
937
976
  after: cursor,
977
+ beforeInclusive: false,
938
978
  },
939
979
  },
940
980
  });
@@ -73,7 +73,9 @@ type $Option<S extends IContainEntitiesAndLinks<any, any>, K extends keyof S['en
73
73
  first?: number;
74
74
  offset?: number;
75
75
  after?: Cursor;
76
+ afterInclusive?: boolean;
76
77
  before?: Cursor;
78
+ beforeInclusive?: boolean;
77
79
  fields?: InstaQLFields<S, K>;
78
80
  };
79
81
  };
@@ -197,7 +199,7 @@ type ValidQueryObject<T extends Record<string, any>, Schema extends IContainEnti
197
199
  } & {
198
200
  $?: ValidDollarSignQuery<T['$'], Schema, EntityName, TopLevel>;
199
201
  } : never;
200
- type PaginationKeys = 'limit' | 'last' | 'first' | 'offset' | 'after' | 'before';
202
+ type PaginationKeys = 'limit' | 'last' | 'first' | 'offset' | 'after' | 'afterInclusive' | 'before' | 'beforeInclusive';
201
203
  type AllowedDollarSignKeys<TopLevel extends boolean> = TopLevel extends true ? PaginationKeys | 'where' | 'fields' | 'order' : 'where' | 'fields' | 'order' | 'limit';
202
204
  type ValidFieldNames<S extends IContainEntitiesAndLinks<any, any>, EntityName extends keyof S['entities']> = Extract<keyof ResolveEntityAttrs<S['entities'][EntityName]>, string> | 'id';
203
205
  type ValidDollarSignQuery<Input extends {
@@ -212,7 +214,9 @@ type ValidDollarSignQuery<Input extends {
212
214
  first?: number;
213
215
  offset?: number;
214
216
  after?: Cursor;
217
+ afterInclusive?: boolean;
215
218
  before?: Cursor;
219
+ beforeInclusive?: boolean;
216
220
  } : {}) : never;
217
221
  type StringifiableKey<T> = Extract<T, string | number | bigint | boolean>;
218
222
  type ValidWhereNestedPath<T, K extends string | number | symbol, Schema extends IContainEntitiesAndLinks<any, any>> = T extends object ? K extends keyof T ? K : K extends `${infer K0}.${infer KR}` ? K0 extends keyof T ? T[K0] extends keyof Schema['entities'] ? `${K0}.${ValidWhereNestedPath<{
@@ -1 +1 @@
1
- {"version":3,"file":"queryTypes.d.ts","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryTypes.d.ts","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryTypes.js","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":";AAAA,QAAQ;AACR,QAAQ","sourcesContent":["// Query\n// -----\n\nimport type {\n EntitiesDef,\n IContainEntitiesAndLinks,\n InstantGraph,\n LinkAttrDef,\n RuleParams,\n ResolveAttrs,\n ResolveEntityAttrs,\n DataAttrDef,\n AttrsDefs,\n EntityDefFromSchema,\n InstantUnknownSchemaDef,\n} from './schemaTypes.ts';\n\ntype BuiltIn = Date | Function | Error | RegExp;\n\ntype Primitive = string | number | boolean | symbol | null | undefined;\n\nexport type Expand<T> = T extends BuiltIn | Primitive\n ? T\n : T extends object\n ? T extends infer O\n ? { [K in keyof O]: Expand<O[K]> }\n : never\n : T;\n\n// NonEmpty disallows {}, so that you must provide at least one field\nexport type NonEmpty<T> = {\n [K in keyof T]-?: Required<Pick<T, K>>;\n}[keyof T];\n\ntype BaseWhereClauseValueComplex<V> = {\n /** @deprecated use `$in` instead of `in` */\n in?: V[];\n $in?: V[];\n /** @deprecated use `$ne` instead of `not` */\n $not?: V;\n $ne?: V;\n $gt?: V;\n $lt?: V;\n $gte?: V;\n $lte?: V;\n};\n\ntype IsAny<T> = boolean extends (T extends never ? true : false) ? true : false;\n\ntype WhereClauseValueComplex<V, R, I> = BaseWhereClauseValueComplex<V> &\n (IsAny<V> extends true\n ? {\n $ilike?: string;\n $like?: string;\n $isNull?: boolean;\n }\n : (V extends string\n ? {\n $like?: string;\n }\n : {}) &\n (R extends false\n ? {\n $isNull?: boolean;\n }\n : {}) &\n (I extends true\n ? {\n $ilike?: string;\n }\n : {}));\n\n// Make type display better\ntype WhereClauseValue<\n D extends DataAttrDef<string | number | boolean, boolean, boolean, boolean>,\n> =\n D extends DataAttrDef<infer V, infer R, infer I, boolean>\n ?\n | (IsAny<V> extends true ? string | number | boolean : V)\n | NonEmpty<WhereClauseValueComplex<V, R, I>>\n : never;\n\ntype WhereClauseColumnEntries<\n T extends {\n [key: string]: DataAttrDef<any, boolean, boolean, boolean>;\n },\n> = {\n [key in keyof T]?: WhereClauseValue<T[key]>;\n};\n\ntype WhereClauseComboEntries<\n T extends Record<any, DataAttrDef<any, boolean, boolean, boolean>>,\n> = {\n or?:\n | WhereClauses<T>[]\n | WhereClauseValue<DataAttrDef<any, false, true, boolean>>;\n and?:\n | WhereClauses<T>[]\n | WhereClauseValue<DataAttrDef<any, false, true, boolean>>;\n};\n\ntype WhereClauses<\n T extends Record<any, DataAttrDef<any, boolean, boolean, boolean>>,\n> = (\n | WhereClauseComboEntries<T>\n | (WhereClauseComboEntries<T> & WhereClauseColumnEntries<T>)\n) & {\n id?: WhereClauseValue<DataAttrDef<string, false, true, boolean>>;\n [key: `${string}.${string}`]: WhereClauseValue<\n DataAttrDef<any, false, true, boolean>\n >;\n};\n\n/**\n * A tuple representing a cursor.\n * These should not be constructed manually. The current format\n * is an implementation detail that may change in the future.\n * Use the `endCursor` or `startCursor` from the PageInfoResponse as the\n * `before` or `after` field in the query options.\n */\ntype Cursor = [string, string, any, number];\n\ntype Direction = 'asc' | 'desc';\n\ntype IndexedKeys<Attrs extends AttrsDefs> = {\n [K in keyof Attrs]: Attrs[K] extends DataAttrDef<\n any,\n any,\n infer IsIndexed,\n boolean\n >\n ? IsIndexed extends true\n ? K\n : never\n : never;\n}[keyof Attrs];\n\nexport type Order<\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> =\n IndexedKeys<Schema['entities'][EntityName]['attrs']> extends never\n ? {\n serverCreatedAt?: Direction;\n }\n : {\n [K in IndexedKeys<Schema['entities'][EntityName]['attrs']>]?: Direction;\n } & {\n serverCreatedAt?: Direction;\n };\n\ntype $Option<\n S extends IContainEntitiesAndLinks<any, any>,\n K extends keyof S['entities'],\n> = {\n $?: {\n where?: WhereClauses<EntityDefFromSchema<S, K>>;\n order?: Order<S, K>;\n limit?: number;\n last?: number;\n first?: number;\n offset?: number;\n after?: Cursor;\n before?: Cursor;\n fields?: InstaQLFields<S, K>;\n };\n};\n\ntype NamespaceVal =\n | $Option<IContainEntitiesAndLinks<any, any>, keyof EntitiesDef>\n | ($Option<IContainEntitiesAndLinks<any, any>, keyof EntitiesDef> & Subquery);\n\ntype Subquery = { [namespace: string]: NamespaceVal };\n\ninterface Query {\n [namespace: string]: NamespaceVal;\n}\n\ntype InstantObject = {\n id: string;\n [prop: string]: any;\n};\n\ntype ResponseObject<K, Schema> = K extends keyof Schema\n ? { id: string } & Schema[K]\n : InstantObject;\n\ntype IsEmptyObject<T> = T extends Record<string, never> ? true : false;\n\ntype ResponseOf<Q, Schema> = {\n [K in keyof Q]: IsEmptyObject<Q[K]> extends true\n ? ResponseObject<K, Schema>[]\n : (ResponseOf<Q[K], Schema> & ResponseObject<K, Schema>)[];\n};\n\ntype Remove$<T> = T extends object\n ? { [K in keyof T as Exclude<K, '$'>]: Remove$<T[K]> }\n : T;\n\ntype Remove$NonRecursive<T> = T extends object\n ? { [K in keyof T as Exclude<K, '$'>]: T[K] }\n : T;\n\ntype QueryResponse<\n Q,\n Schema,\n WithCardinalityInference extends boolean = false,\n UseDates extends boolean = false,\n> =\n Schema extends InstantGraph<infer E, any>\n ? InstaQLQueryResult<E, Q, WithCardinalityInference, UseDates>\n : ResponseOf<{ [K in keyof Q]: Remove$<Q[K]> }, Schema>;\n\ntype InstaQLResponse<Schema, Q, UseDates extends boolean = false> =\n Schema extends IContainEntitiesAndLinks<any, any>\n ? Q extends InstaQLParams<Schema> | undefined\n ? InstaQLResult<Schema, Q, UseDates>\n : never\n : never;\n\ntype PageInfoResponse<T> = {\n [K in keyof T]: {\n startCursor: Cursor;\n endCursor: Cursor;\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n };\n};\n\n/**\n * (XXX)\n * https://github.com/microsoft/TypeScript/issues/26051\n *\n * TypeScript can permit extra keys when a generic extends a type.\n *\n * For some reason, it makes it possible to write a query like so:\n *\n * dummyQuery({\n * users: {\n * $: { where: { \"foo\": 1 } },\n * posts: {\n * $: { \"far\": {} }\n * }\n * }\n *\n * The problem: $: { \"far\": {} }\n *\n * This passes, when it should in reality fail. I don't know why\n * adding `Exactly` fixes this, but it does.\n *\n * */\ntype Exactly<Parent, Child> = Parent & {\n [K in keyof Child]: K extends keyof Parent ? Child[K] : never;\n};\n\n// SafeLookup<T, ['A', 'B', number]> is like doing\n// T['A']['B'][number], but it will merge with undefined if any\n// of the intermediates are undefined\ntype SafeLookup<T, K extends readonly PropertyKey[]> = K extends [\n infer First,\n ...infer Rest extends readonly PropertyKey[],\n]\n ? First extends keyof NonNullable<T>\n ?\n | SafeLookup<NonNullable<T>[First], Rest>\n | (T extends null | undefined ? undefined : never)\n : undefined\n : T;\n\n// ==========\n// InstaQL helpers\n\ntype InstaQLEntitySubqueryResult<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n EntityName extends keyof Schema['entities'],\n Query extends InstaQLEntitySubquery<Schema, EntityName> | undefined = {},\n UseDates extends boolean = false,\n> = {\n [QueryPropName in keyof Query]: Schema['entities'][EntityName]['links'][QueryPropName] extends LinkAttrDef<\n infer Cardinality,\n infer LinkedEntityName\n >\n ? LinkedEntityName extends keyof Schema['entities']\n ? Cardinality extends 'one'\n ?\n | InstaQLEntity<\n Schema,\n LinkedEntityName,\n Remove$NonRecursive<SafeLookup<Query, [QueryPropName]>>,\n SafeLookup<Query, [QueryPropName, '$', 'fields']>,\n UseDates\n >\n | undefined\n : InstaQLEntity<\n Schema,\n LinkedEntityName,\n Remove$NonRecursive<SafeLookup<Query, [QueryPropName]>>,\n SafeLookup<Query, [QueryPropName, '$', 'fields']>,\n UseDates\n >[]\n : never\n : never;\n};\n\ntype InstaQLQueryEntityLinksResult<\n Entities extends EntitiesDef,\n EntityName extends keyof Entities,\n Query extends {\n [LinkAttrName in keyof Entities[EntityName]['links']]?: any;\n },\n WithCardinalityInference extends boolean,\n UseDates extends boolean = false,\n> = {\n [QueryPropName in keyof Query]: Entities[EntityName]['links'][QueryPropName] extends LinkAttrDef<\n infer Cardinality,\n infer LinkedEntityName\n >\n ? LinkedEntityName extends keyof Entities\n ? WithCardinalityInference extends true\n ? Cardinality extends 'one'\n ?\n | InstaQLQueryEntityResult<\n Entities,\n LinkedEntityName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >\n | undefined\n : InstaQLQueryEntityResult<\n Entities,\n LinkedEntityName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >[]\n : InstaQLQueryEntityResult<\n Entities,\n LinkedEntityName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >[]\n : never\n : never;\n};\n\n// Pick, but applies the pick to each union\ntype DistributePick<T, K extends string> = T extends any\n ? { [P in K]: P extends keyof T ? T[P] : never }\n : never;\n\ntype InstaQLFields<\n S extends IContainEntitiesAndLinks<any, any>,\n K extends keyof S['entities'],\n> = (Extract<keyof ResolveEntityAttrs<S['entities'][K]>, string> | 'id')[];\n\ntype ComputeAttrs<\n AllAttrs,\n Fields extends readonly string[] | undefined,\n> = Fields extends readonly string[]\n ? DistributePick<AllAttrs, Exclude<Fields[number], 'id'>>\n : AllAttrs;\n\ntype InstaQLEntity<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n EntityName extends keyof Schema['entities'],\n Subquery extends InstaQLEntitySubquery<Schema, EntityName> | undefined = {},\n Fields extends InstaQLFields<Schema, EntityName> | undefined = undefined,\n UseDates extends boolean = false,\n> = Expand<\n { id: string } & ComputeAttrs<\n ResolveEntityAttrs<Schema['entities'][EntityName], UseDates>,\n Fields\n > &\n InstaQLEntitySubqueryResult<Schema, EntityName, Subquery, UseDates>\n>;\n\ntype InstaQLQueryEntityResult<\n Entities extends EntitiesDef,\n EntityName extends keyof Entities,\n Query extends {\n [QueryPropName in keyof Entities[EntityName]['links']]?: any;\n },\n WithCardinalityInference extends boolean,\n UseDates extends boolean,\n> = { id: string } & ResolveAttrs<Entities, EntityName, UseDates> &\n InstaQLQueryEntityLinksResult<\n Entities,\n EntityName,\n Query,\n WithCardinalityInference,\n UseDates\n >;\n\ntype InstaQLQueryResult<\n Entities extends EntitiesDef,\n Query,\n WithCardinalityInference extends boolean,\n UseDates extends boolean,\n> = {\n [QueryPropName in keyof Query]: QueryPropName extends keyof Entities\n ? InstaQLQueryEntityResult<\n Entities,\n QueryPropName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >[]\n : never;\n};\n\ntype InstaQLResult<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n Query extends InstaQLParams<Schema> | undefined,\n UseDates extends boolean = false,\n> = Expand<{\n [QueryPropName in keyof Query]: QueryPropName extends keyof Schema['entities']\n ? InstaQLEntity<\n Schema,\n QueryPropName,\n Remove$NonRecursive<SafeLookup<Query, [QueryPropName]>>,\n SafeLookup<Query, [QueryPropName, '$', 'fields']>,\n UseDates\n >[]\n : never;\n}>;\n\ntype InstaQLEntitySubquery<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n EntityName extends keyof Schema['entities'],\n> = {\n [QueryPropName in keyof Schema['entities'][EntityName]['links']]?:\n | $Option<Schema, EntityName>\n | ($Option<Schema, EntityName> &\n InstaQLEntitySubquery<\n Schema,\n Schema['entities'][EntityName]['links'][QueryPropName]['entityName']\n >);\n};\n\ntype InstaQLQuerySubqueryParams<\n S extends IContainEntitiesAndLinks<any, any>,\n E extends keyof S['entities'],\n> = {\n [K in keyof S['entities'][E]['links']]?:\n | $Option<S, S['entities'][E]['links'][K]['entityName']>\n | ($Option<S, S['entities'][E]['links'][K]['entityName']> &\n InstaQLQuerySubqueryParams<\n S,\n S['entities'][E]['links'][K]['entityName']\n >);\n};\n\ntype InstaQLParams<S extends IContainEntitiesAndLinks<any, any>> = {\n [K in keyof S['entities']]?:\n | $Option<S, K>\n | ($Option<S, K> & InstaQLQuerySubqueryParams<S, K>);\n};\n\n/**\n * @deprecated\n * `InstaQLQueryParams` is deprecated. Use `InstaQLParams` instead.\n *\n * @example\n * // Before\n * const myQuery = {...} satisfies InstaQLQueryParams<Schema>\n * // After\n * const myQuery = {...} satisfies InstaQLParams<Schema>\n */\ntype InstaQLQueryParams<S extends IContainEntitiesAndLinks<any, any>> =\n InstaQLParams<S>;\n\ntype InstaQLOptions = {\n ruleParams: RuleParams;\n};\n\n// Start of new types\n\ntype ValidQueryObject<\n T extends Record<string, any>,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n TopLevel extends boolean,\n> = keyof T extends keyof Schema['entities'][EntityName]['links'] | '$'\n ? {\n [K in keyof Schema['entities'][EntityName]['links']]?: ValidQueryObject<\n T[K],\n Schema,\n Schema['entities'][EntityName]['links'][K]['entityName'],\n false\n >;\n } & {\n $?: ValidDollarSignQuery<T['$'], Schema, EntityName, TopLevel>;\n }\n : never;\n\ntype PaginationKeys =\n | 'limit'\n | 'last'\n | 'first'\n | 'offset'\n | 'after'\n | 'before';\n\ntype AllowedDollarSignKeys<TopLevel extends boolean> = TopLevel extends true\n ? PaginationKeys | 'where' | 'fields' | 'order'\n : 'where' | 'fields' | 'order' | 'limit';\n\ntype ValidFieldNames<\n S extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof S['entities'],\n> = Extract<keyof ResolveEntityAttrs<S['entities'][EntityName]>, string> | 'id';\n\ntype ValidDollarSignQuery<\n Input extends { [key: string]: any },\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n TopLevel extends boolean,\n> =\n keyof Input extends AllowedDollarSignKeys<TopLevel>\n ? {\n where?: ValidWhereObject<Input['where'], Schema, EntityName>;\n fields?: ValidFieldNames<Schema, EntityName>[];\n order?: Order<Schema, EntityName>;\n limit?: number;\n } & (TopLevel extends true\n ? {\n last?: number;\n first?: number;\n offset?: number;\n after?: Cursor;\n before?: Cursor;\n }\n : {})\n : never;\n\ntype StringifiableKey<T> = Extract<T, string | number | bigint | boolean>;\n\ntype ValidWhereNestedPath<\n T,\n K extends string | number | symbol,\n Schema extends IContainEntitiesAndLinks<any, any>,\n> = T extends object\n ? K extends keyof T\n ? K // Allow link names as valid paths (they'll default to id)\n : K extends `${infer K0}.${infer KR}`\n ? K0 extends keyof T\n ? T[K0] extends keyof Schema['entities']\n ? `${K0}.${\n | ValidWhereNestedPath<\n {\n [K in keyof Schema['entities'][T[K0]]['links']]: Schema['entities'][T[K0]]['links'][K]['entityName'];\n },\n KR,\n Schema\n >\n | StringifiableKey<keyof Schema['entities'][T[K0]]['attrs']>\n | 'id'}`\n : string & keyof T\n : string & keyof T\n : string & keyof T\n : never;\n\ntype ValidDotPath<\n Input extends string | number | symbol,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> = ValidWhereNestedPath<\n {\n [K in keyof Schema['entities'][EntityName]['links']]: Schema['entities'][EntityName]['links'][K]['entityName'];\n },\n Input,\n Schema\n>;\n\ntype WhereOperatorObject<Input, V, R, I> = keyof Input extends\n | keyof BaseWhereClauseValueComplex<V>\n | '$ilike'\n | '$like'\n | '$isNull'\n ? BaseWhereClauseValueComplex<V> &\n (IsAny<V> extends true\n ? {\n $ilike?: string;\n $like?: string;\n $isNull?: boolean;\n }\n : (V extends string\n ? {\n $like?: string;\n }\n : {}) &\n (R extends false\n ? {\n $isNull?: boolean;\n }\n : {}) &\n (I extends true\n ? {\n $ilike?: string;\n }\n : {}))\n : never;\n\ntype ValidWhereValue<\n Input,\n AttrDef extends DataAttrDef<any, any, any, boolean>,\n> =\n AttrDef extends DataAttrDef<infer V, infer R, infer I, boolean>\n ? Input extends V\n ? V\n : NonEmpty<WhereOperatorObject<Input, V, R, I>>\n : never;\n\ntype NoDistribute<T> = [T] extends [any] ? T : never;\n\ntype ValidWhereObject<\n Input extends { [key: string]: any } | undefined,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> = Input extends undefined\n ? undefined\n : keyof Input extends\n | ValidDotPath<keyof Input, Schema, EntityName>\n | keyof Schema['entities'][EntityName]['attrs']\n | 'and'\n | 'or'\n | 'id'\n ? {\n [K in ValidDotPath<keyof Input, Schema, EntityName>]?: ValidWhereValue<\n Input[K],\n ExtractAttrFromDotPath<K, Schema, EntityName>\n >;\n } & {\n [K in keyof Schema['entities'][EntityName]['attrs']]?: ValidWhereValue<\n Input[K],\n Schema['entities'][EntityName]['attrs'][K]\n >;\n } & {\n and?: Input extends {\n and: Array<infer Item extends { [key: string]: any } | undefined>;\n }\n ? ValidWhereObject<NoDistribute<Item>, Schema, EntityName>[]\n : never;\n or?: Input extends {\n or: Array<infer Item extends { [key: string]: any } | undefined>;\n }\n ? ValidWhereObject<NoDistribute<Item>, Schema, EntityName>[]\n : never;\n } & {\n // Special case for id\n id?: ValidWhereValue<\n SafeLookup<Input, ['id']>,\n DataAttrDef<string, false, false, boolean>\n >;\n }\n : never;\n\n/**\n * Extracts the attribute definition from a valid dot path.\n * Given a dot path like \"user.posts.title\", this will resolve to the type of the \"title\" attribute.\n * If the path is just a link name (e.g., \"posts\"), it defaults to the id field.\n * Returns DataAttrDef or never\n */\ntype ExtractAttrFromDotPath<\n Path extends string | number | symbol,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> = Path extends keyof Schema['entities'][EntityName]['attrs']\n ? Schema['entities'][EntityName]['attrs'][Path]\n : Path extends 'id'\n ? DataAttrDef<string, false, false, boolean>\n : Path extends `${infer LinkName}.${infer RestPath}`\n ? LinkName extends keyof Schema['entities'][EntityName]['links']\n ? ExtractAttrFromDotPath<\n RestPath,\n Schema,\n Schema['entities'][EntityName]['links'][LinkName]['entityName']\n >\n : never\n : Path extends keyof Schema['entities'][EntityName]['links']\n ? DataAttrDef<string, false, false, boolean>\n : never;\n\ntype ValidQuery<\n Q extends Record<string, any>,\n S extends IContainEntitiesAndLinks<any, any>,\n> = S extends InstantUnknownSchemaDef\n ? InstaQLParams<S>\n : keyof Q extends keyof S['entities']\n ? {\n [K in keyof S['entities']]?: ValidQueryObject<Q[K], S, K, true>;\n }\n : never;\n\nexport {\n Query,\n QueryResponse,\n InstaQLResponse,\n PageInfoResponse,\n InstantObject,\n Exactly,\n Remove$,\n ValidQuery,\n InstaQLQueryResult,\n InstaQLParams,\n InstaQLOptions,\n InstaQLQueryEntityResult,\n InstaQLEntitySubquery,\n InstaQLEntity,\n InstaQLResult,\n InstaQLFields,\n Cursor,\n InstaQLQueryParams,\n};\n"]}
1
+ {"version":3,"file":"queryTypes.js","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":";AAAA,QAAQ;AACR,QAAQ","sourcesContent":["// Query\n// -----\n\nimport type {\n EntitiesDef,\n IContainEntitiesAndLinks,\n InstantGraph,\n LinkAttrDef,\n RuleParams,\n ResolveAttrs,\n ResolveEntityAttrs,\n DataAttrDef,\n AttrsDefs,\n EntityDefFromSchema,\n InstantUnknownSchemaDef,\n} from './schemaTypes.ts';\n\ntype BuiltIn = Date | Function | Error | RegExp;\n\ntype Primitive = string | number | boolean | symbol | null | undefined;\n\nexport type Expand<T> = T extends BuiltIn | Primitive\n ? T\n : T extends object\n ? T extends infer O\n ? { [K in keyof O]: Expand<O[K]> }\n : never\n : T;\n\n// NonEmpty disallows {}, so that you must provide at least one field\nexport type NonEmpty<T> = {\n [K in keyof T]-?: Required<Pick<T, K>>;\n}[keyof T];\n\ntype BaseWhereClauseValueComplex<V> = {\n /** @deprecated use `$in` instead of `in` */\n in?: V[];\n $in?: V[];\n /** @deprecated use `$ne` instead of `not` */\n $not?: V;\n $ne?: V;\n $gt?: V;\n $lt?: V;\n $gte?: V;\n $lte?: V;\n};\n\ntype IsAny<T> = boolean extends (T extends never ? true : false) ? true : false;\n\ntype WhereClauseValueComplex<V, R, I> = BaseWhereClauseValueComplex<V> &\n (IsAny<V> extends true\n ? {\n $ilike?: string;\n $like?: string;\n $isNull?: boolean;\n }\n : (V extends string\n ? {\n $like?: string;\n }\n : {}) &\n (R extends false\n ? {\n $isNull?: boolean;\n }\n : {}) &\n (I extends true\n ? {\n $ilike?: string;\n }\n : {}));\n\n// Make type display better\ntype WhereClauseValue<\n D extends DataAttrDef<string | number | boolean, boolean, boolean, boolean>,\n> =\n D extends DataAttrDef<infer V, infer R, infer I, boolean>\n ?\n | (IsAny<V> extends true ? string | number | boolean : V)\n | NonEmpty<WhereClauseValueComplex<V, R, I>>\n : never;\n\ntype WhereClauseColumnEntries<\n T extends {\n [key: string]: DataAttrDef<any, boolean, boolean, boolean>;\n },\n> = {\n [key in keyof T]?: WhereClauseValue<T[key]>;\n};\n\ntype WhereClauseComboEntries<\n T extends Record<any, DataAttrDef<any, boolean, boolean, boolean>>,\n> = {\n or?:\n | WhereClauses<T>[]\n | WhereClauseValue<DataAttrDef<any, false, true, boolean>>;\n and?:\n | WhereClauses<T>[]\n | WhereClauseValue<DataAttrDef<any, false, true, boolean>>;\n};\n\ntype WhereClauses<\n T extends Record<any, DataAttrDef<any, boolean, boolean, boolean>>,\n> = (\n | WhereClauseComboEntries<T>\n | (WhereClauseComboEntries<T> & WhereClauseColumnEntries<T>)\n) & {\n id?: WhereClauseValue<DataAttrDef<string, false, true, boolean>>;\n [key: `${string}.${string}`]: WhereClauseValue<\n DataAttrDef<any, false, true, boolean>\n >;\n};\n\n/**\n * A tuple representing a cursor.\n * These should not be constructed manually. The current format\n * is an implementation detail that may change in the future.\n * Use the `endCursor` or `startCursor` from the PageInfoResponse as the\n * `before` or `after` field in the query options.\n */\ntype Cursor = [string, string, any, number];\n\ntype Direction = 'asc' | 'desc';\n\ntype IndexedKeys<Attrs extends AttrsDefs> = {\n [K in keyof Attrs]: Attrs[K] extends DataAttrDef<\n any,\n any,\n infer IsIndexed,\n boolean\n >\n ? IsIndexed extends true\n ? K\n : never\n : never;\n}[keyof Attrs];\n\nexport type Order<\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> =\n IndexedKeys<Schema['entities'][EntityName]['attrs']> extends never\n ? {\n serverCreatedAt?: Direction;\n }\n : {\n [K in IndexedKeys<Schema['entities'][EntityName]['attrs']>]?: Direction;\n } & {\n serverCreatedAt?: Direction;\n };\n\ntype $Option<\n S extends IContainEntitiesAndLinks<any, any>,\n K extends keyof S['entities'],\n> = {\n $?: {\n where?: WhereClauses<EntityDefFromSchema<S, K>>;\n order?: Order<S, K>;\n limit?: number;\n last?: number;\n first?: number;\n offset?: number;\n after?: Cursor;\n afterInclusive?: boolean;\n before?: Cursor;\n beforeInclusive?: boolean;\n fields?: InstaQLFields<S, K>;\n };\n};\n\ntype NamespaceVal =\n | $Option<IContainEntitiesAndLinks<any, any>, keyof EntitiesDef>\n | ($Option<IContainEntitiesAndLinks<any, any>, keyof EntitiesDef> & Subquery);\n\ntype Subquery = { [namespace: string]: NamespaceVal };\n\ninterface Query {\n [namespace: string]: NamespaceVal;\n}\n\ntype InstantObject = {\n id: string;\n [prop: string]: any;\n};\n\ntype ResponseObject<K, Schema> = K extends keyof Schema\n ? { id: string } & Schema[K]\n : InstantObject;\n\ntype IsEmptyObject<T> = T extends Record<string, never> ? true : false;\n\ntype ResponseOf<Q, Schema> = {\n [K in keyof Q]: IsEmptyObject<Q[K]> extends true\n ? ResponseObject<K, Schema>[]\n : (ResponseOf<Q[K], Schema> & ResponseObject<K, Schema>)[];\n};\n\ntype Remove$<T> = T extends object\n ? { [K in keyof T as Exclude<K, '$'>]: Remove$<T[K]> }\n : T;\n\ntype Remove$NonRecursive<T> = T extends object\n ? { [K in keyof T as Exclude<K, '$'>]: T[K] }\n : T;\n\ntype QueryResponse<\n Q,\n Schema,\n WithCardinalityInference extends boolean = false,\n UseDates extends boolean = false,\n> =\n Schema extends InstantGraph<infer E, any>\n ? InstaQLQueryResult<E, Q, WithCardinalityInference, UseDates>\n : ResponseOf<{ [K in keyof Q]: Remove$<Q[K]> }, Schema>;\n\ntype InstaQLResponse<Schema, Q, UseDates extends boolean = false> =\n Schema extends IContainEntitiesAndLinks<any, any>\n ? Q extends InstaQLParams<Schema> | undefined\n ? InstaQLResult<Schema, Q, UseDates>\n : never\n : never;\n\ntype PageInfoResponse<T> = {\n [K in keyof T]: {\n startCursor: Cursor;\n endCursor: Cursor;\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n };\n};\n\n/**\n * (XXX)\n * https://github.com/microsoft/TypeScript/issues/26051\n *\n * TypeScript can permit extra keys when a generic extends a type.\n *\n * For some reason, it makes it possible to write a query like so:\n *\n * dummyQuery({\n * users: {\n * $: { where: { \"foo\": 1 } },\n * posts: {\n * $: { \"far\": {} }\n * }\n * }\n *\n * The problem: $: { \"far\": {} }\n *\n * This passes, when it should in reality fail. I don't know why\n * adding `Exactly` fixes this, but it does.\n *\n * */\ntype Exactly<Parent, Child> = Parent & {\n [K in keyof Child]: K extends keyof Parent ? Child[K] : never;\n};\n\n// SafeLookup<T, ['A', 'B', number]> is like doing\n// T['A']['B'][number], but it will merge with undefined if any\n// of the intermediates are undefined\ntype SafeLookup<T, K extends readonly PropertyKey[]> = K extends [\n infer First,\n ...infer Rest extends readonly PropertyKey[],\n]\n ? First extends keyof NonNullable<T>\n ?\n | SafeLookup<NonNullable<T>[First], Rest>\n | (T extends null | undefined ? undefined : never)\n : undefined\n : T;\n\n// ==========\n// InstaQL helpers\n\ntype InstaQLEntitySubqueryResult<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n EntityName extends keyof Schema['entities'],\n Query extends InstaQLEntitySubquery<Schema, EntityName> | undefined = {},\n UseDates extends boolean = false,\n> = {\n [QueryPropName in keyof Query]: Schema['entities'][EntityName]['links'][QueryPropName] extends LinkAttrDef<\n infer Cardinality,\n infer LinkedEntityName\n >\n ? LinkedEntityName extends keyof Schema['entities']\n ? Cardinality extends 'one'\n ?\n | InstaQLEntity<\n Schema,\n LinkedEntityName,\n Remove$NonRecursive<SafeLookup<Query, [QueryPropName]>>,\n SafeLookup<Query, [QueryPropName, '$', 'fields']>,\n UseDates\n >\n | undefined\n : InstaQLEntity<\n Schema,\n LinkedEntityName,\n Remove$NonRecursive<SafeLookup<Query, [QueryPropName]>>,\n SafeLookup<Query, [QueryPropName, '$', 'fields']>,\n UseDates\n >[]\n : never\n : never;\n};\n\ntype InstaQLQueryEntityLinksResult<\n Entities extends EntitiesDef,\n EntityName extends keyof Entities,\n Query extends {\n [LinkAttrName in keyof Entities[EntityName]['links']]?: any;\n },\n WithCardinalityInference extends boolean,\n UseDates extends boolean = false,\n> = {\n [QueryPropName in keyof Query]: Entities[EntityName]['links'][QueryPropName] extends LinkAttrDef<\n infer Cardinality,\n infer LinkedEntityName\n >\n ? LinkedEntityName extends keyof Entities\n ? WithCardinalityInference extends true\n ? Cardinality extends 'one'\n ?\n | InstaQLQueryEntityResult<\n Entities,\n LinkedEntityName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >\n | undefined\n : InstaQLQueryEntityResult<\n Entities,\n LinkedEntityName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >[]\n : InstaQLQueryEntityResult<\n Entities,\n LinkedEntityName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >[]\n : never\n : never;\n};\n\n// Pick, but applies the pick to each union\ntype DistributePick<T, K extends string> = T extends any\n ? { [P in K]: P extends keyof T ? T[P] : never }\n : never;\n\ntype InstaQLFields<\n S extends IContainEntitiesAndLinks<any, any>,\n K extends keyof S['entities'],\n> = (Extract<keyof ResolveEntityAttrs<S['entities'][K]>, string> | 'id')[];\n\ntype ComputeAttrs<\n AllAttrs,\n Fields extends readonly string[] | undefined,\n> = Fields extends readonly string[]\n ? DistributePick<AllAttrs, Exclude<Fields[number], 'id'>>\n : AllAttrs;\n\ntype InstaQLEntity<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n EntityName extends keyof Schema['entities'],\n Subquery extends InstaQLEntitySubquery<Schema, EntityName> | undefined = {},\n Fields extends InstaQLFields<Schema, EntityName> | undefined = undefined,\n UseDates extends boolean = false,\n> = Expand<\n { id: string } & ComputeAttrs<\n ResolveEntityAttrs<Schema['entities'][EntityName], UseDates>,\n Fields\n > &\n InstaQLEntitySubqueryResult<Schema, EntityName, Subquery, UseDates>\n>;\n\ntype InstaQLQueryEntityResult<\n Entities extends EntitiesDef,\n EntityName extends keyof Entities,\n Query extends {\n [QueryPropName in keyof Entities[EntityName]['links']]?: any;\n },\n WithCardinalityInference extends boolean,\n UseDates extends boolean,\n> = { id: string } & ResolveAttrs<Entities, EntityName, UseDates> &\n InstaQLQueryEntityLinksResult<\n Entities,\n EntityName,\n Query,\n WithCardinalityInference,\n UseDates\n >;\n\ntype InstaQLQueryResult<\n Entities extends EntitiesDef,\n Query,\n WithCardinalityInference extends boolean,\n UseDates extends boolean,\n> = {\n [QueryPropName in keyof Query]: QueryPropName extends keyof Entities\n ? InstaQLQueryEntityResult<\n Entities,\n QueryPropName,\n Query[QueryPropName],\n WithCardinalityInference,\n UseDates\n >[]\n : never;\n};\n\ntype InstaQLResult<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n Query extends InstaQLParams<Schema> | undefined,\n UseDates extends boolean = false,\n> = Expand<{\n [QueryPropName in keyof Query]: QueryPropName extends keyof Schema['entities']\n ? InstaQLEntity<\n Schema,\n QueryPropName,\n Remove$NonRecursive<SafeLookup<Query, [QueryPropName]>>,\n SafeLookup<Query, [QueryPropName, '$', 'fields']>,\n UseDates\n >[]\n : never;\n}>;\n\ntype InstaQLEntitySubquery<\n Schema extends IContainEntitiesAndLinks<EntitiesDef, any>,\n EntityName extends keyof Schema['entities'],\n> = {\n [QueryPropName in keyof Schema['entities'][EntityName]['links']]?:\n | $Option<Schema, EntityName>\n | ($Option<Schema, EntityName> &\n InstaQLEntitySubquery<\n Schema,\n Schema['entities'][EntityName]['links'][QueryPropName]['entityName']\n >);\n};\n\ntype InstaQLQuerySubqueryParams<\n S extends IContainEntitiesAndLinks<any, any>,\n E extends keyof S['entities'],\n> = {\n [K in keyof S['entities'][E]['links']]?:\n | $Option<S, S['entities'][E]['links'][K]['entityName']>\n | ($Option<S, S['entities'][E]['links'][K]['entityName']> &\n InstaQLQuerySubqueryParams<\n S,\n S['entities'][E]['links'][K]['entityName']\n >);\n};\n\ntype InstaQLParams<S extends IContainEntitiesAndLinks<any, any>> = {\n [K in keyof S['entities']]?:\n | $Option<S, K>\n | ($Option<S, K> & InstaQLQuerySubqueryParams<S, K>);\n};\n\n/**\n * @deprecated\n * `InstaQLQueryParams` is deprecated. Use `InstaQLParams` instead.\n *\n * @example\n * // Before\n * const myQuery = {...} satisfies InstaQLQueryParams<Schema>\n * // After\n * const myQuery = {...} satisfies InstaQLParams<Schema>\n */\ntype InstaQLQueryParams<S extends IContainEntitiesAndLinks<any, any>> =\n InstaQLParams<S>;\n\ntype InstaQLOptions = {\n ruleParams: RuleParams;\n};\n\n// Start of new types\n\ntype ValidQueryObject<\n T extends Record<string, any>,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n TopLevel extends boolean,\n> = keyof T extends keyof Schema['entities'][EntityName]['links'] | '$'\n ? {\n [K in keyof Schema['entities'][EntityName]['links']]?: ValidQueryObject<\n T[K],\n Schema,\n Schema['entities'][EntityName]['links'][K]['entityName'],\n false\n >;\n } & {\n $?: ValidDollarSignQuery<T['$'], Schema, EntityName, TopLevel>;\n }\n : never;\n\ntype PaginationKeys =\n | 'limit'\n | 'last'\n | 'first'\n | 'offset'\n | 'after'\n | 'afterInclusive'\n | 'before'\n | 'beforeInclusive';\n\ntype AllowedDollarSignKeys<TopLevel extends boolean> = TopLevel extends true\n ? PaginationKeys | 'where' | 'fields' | 'order'\n : 'where' | 'fields' | 'order' | 'limit';\n\ntype ValidFieldNames<\n S extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof S['entities'],\n> = Extract<keyof ResolveEntityAttrs<S['entities'][EntityName]>, string> | 'id';\n\ntype ValidDollarSignQuery<\n Input extends { [key: string]: any },\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n TopLevel extends boolean,\n> =\n keyof Input extends AllowedDollarSignKeys<TopLevel>\n ? {\n where?: ValidWhereObject<Input['where'], Schema, EntityName>;\n fields?: ValidFieldNames<Schema, EntityName>[];\n order?: Order<Schema, EntityName>;\n limit?: number;\n } & (TopLevel extends true\n ? {\n last?: number;\n first?: number;\n offset?: number;\n after?: Cursor;\n afterInclusive?: boolean;\n before?: Cursor;\n beforeInclusive?: boolean;\n }\n : {})\n : never;\n\ntype StringifiableKey<T> = Extract<T, string | number | bigint | boolean>;\n\ntype ValidWhereNestedPath<\n T,\n K extends string | number | symbol,\n Schema extends IContainEntitiesAndLinks<any, any>,\n> = T extends object\n ? K extends keyof T\n ? K // Allow link names as valid paths (they'll default to id)\n : K extends `${infer K0}.${infer KR}`\n ? K0 extends keyof T\n ? T[K0] extends keyof Schema['entities']\n ? `${K0}.${\n | ValidWhereNestedPath<\n {\n [K in keyof Schema['entities'][T[K0]]['links']]: Schema['entities'][T[K0]]['links'][K]['entityName'];\n },\n KR,\n Schema\n >\n | StringifiableKey<keyof Schema['entities'][T[K0]]['attrs']>\n | 'id'}`\n : string & keyof T\n : string & keyof T\n : string & keyof T\n : never;\n\ntype ValidDotPath<\n Input extends string | number | symbol,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> = ValidWhereNestedPath<\n {\n [K in keyof Schema['entities'][EntityName]['links']]: Schema['entities'][EntityName]['links'][K]['entityName'];\n },\n Input,\n Schema\n>;\n\ntype WhereOperatorObject<Input, V, R, I> = keyof Input extends\n | keyof BaseWhereClauseValueComplex<V>\n | '$ilike'\n | '$like'\n | '$isNull'\n ? BaseWhereClauseValueComplex<V> &\n (IsAny<V> extends true\n ? {\n $ilike?: string;\n $like?: string;\n $isNull?: boolean;\n }\n : (V extends string\n ? {\n $like?: string;\n }\n : {}) &\n (R extends false\n ? {\n $isNull?: boolean;\n }\n : {}) &\n (I extends true\n ? {\n $ilike?: string;\n }\n : {}))\n : never;\n\ntype ValidWhereValue<\n Input,\n AttrDef extends DataAttrDef<any, any, any, boolean>,\n> =\n AttrDef extends DataAttrDef<infer V, infer R, infer I, boolean>\n ? Input extends V\n ? V\n : NonEmpty<WhereOperatorObject<Input, V, R, I>>\n : never;\n\ntype NoDistribute<T> = [T] extends [any] ? T : never;\n\ntype ValidWhereObject<\n Input extends { [key: string]: any } | undefined,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> = Input extends undefined\n ? undefined\n : keyof Input extends\n | ValidDotPath<keyof Input, Schema, EntityName>\n | keyof Schema['entities'][EntityName]['attrs']\n | 'and'\n | 'or'\n | 'id'\n ? {\n [K in ValidDotPath<keyof Input, Schema, EntityName>]?: ValidWhereValue<\n Input[K],\n ExtractAttrFromDotPath<K, Schema, EntityName>\n >;\n } & {\n [K in keyof Schema['entities'][EntityName]['attrs']]?: ValidWhereValue<\n Input[K],\n Schema['entities'][EntityName]['attrs'][K]\n >;\n } & {\n and?: Input extends {\n and: Array<infer Item extends { [key: string]: any } | undefined>;\n }\n ? ValidWhereObject<NoDistribute<Item>, Schema, EntityName>[]\n : never;\n or?: Input extends {\n or: Array<infer Item extends { [key: string]: any } | undefined>;\n }\n ? ValidWhereObject<NoDistribute<Item>, Schema, EntityName>[]\n : never;\n } & {\n // Special case for id\n id?: ValidWhereValue<\n SafeLookup<Input, ['id']>,\n DataAttrDef<string, false, false, boolean>\n >;\n }\n : never;\n\n/**\n * Extracts the attribute definition from a valid dot path.\n * Given a dot path like \"user.posts.title\", this will resolve to the type of the \"title\" attribute.\n * If the path is just a link name (e.g., \"posts\"), it defaults to the id field.\n * Returns DataAttrDef or never\n */\ntype ExtractAttrFromDotPath<\n Path extends string | number | symbol,\n Schema extends IContainEntitiesAndLinks<any, any>,\n EntityName extends keyof Schema['entities'],\n> = Path extends keyof Schema['entities'][EntityName]['attrs']\n ? Schema['entities'][EntityName]['attrs'][Path]\n : Path extends 'id'\n ? DataAttrDef<string, false, false, boolean>\n : Path extends `${infer LinkName}.${infer RestPath}`\n ? LinkName extends keyof Schema['entities'][EntityName]['links']\n ? ExtractAttrFromDotPath<\n RestPath,\n Schema,\n Schema['entities'][EntityName]['links'][LinkName]['entityName']\n >\n : never\n : Path extends keyof Schema['entities'][EntityName]['links']\n ? DataAttrDef<string, false, false, boolean>\n : never;\n\ntype ValidQuery<\n Q extends Record<string, any>,\n S extends IContainEntitiesAndLinks<any, any>,\n> = S extends InstantUnknownSchemaDef\n ? InstaQLParams<S>\n : keyof Q extends keyof S['entities']\n ? {\n [K in keyof S['entities']]?: ValidQueryObject<Q[K], S, K, true>;\n }\n : never;\n\nexport {\n Query,\n QueryResponse,\n InstaQLResponse,\n PageInfoResponse,\n InstantObject,\n Exactly,\n Remove$,\n ValidQuery,\n InstaQLQueryResult,\n InstaQLParams,\n InstaQLOptions,\n InstaQLQueryEntityResult,\n InstaQLEntitySubquery,\n InstaQLEntity,\n InstaQLResult,\n InstaQLFields,\n Cursor,\n InstaQLQueryParams,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"queryValidation.d.ts","sourceRoot":"","sources":["../../src/queryValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,kBAAkB,CAAC;AAG1B,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3C;AA6cD,eAAO,MAAM,aAAa,GACxB,GAAG,OAAO,EACV,SAAS,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,KAC1C,IAqDF,CAAC"}
1
+ {"version":3,"file":"queryValidation.d.ts","sourceRoot":"","sources":["../../src/queryValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,kBAAkB,CAAC;AAG1B,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3C;AAidD,eAAO,MAAM,aAAa,GACxB,GAAG,OAAO,EACV,SAAS,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,KAC1C,IAqDF,CAAC"}
@@ -19,7 +19,9 @@ const dollarSignKeys = [
19
19
  'first',
20
20
  'offset',
21
21
  'after',
22
+ 'afterInclusive',
22
23
  'before',
24
+ 'beforeInclusive',
23
25
  'fields',
24
26
  'aggregate',
25
27
  ];
@@ -211,7 +213,9 @@ const validateDollarObject = (dollarObj, entityName, schema, path, depth = 0) =>
211
213
  // 'limit', // only supported client side
212
214
  'offset',
213
215
  'before',
216
+ 'beforeInclusive',
214
217
  'after',
218
+ 'afterInclusive',
215
219
  'first',
216
220
  'last',
217
221
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"queryValidation.js","sourceRoot":"","sources":["../../src/queryValidation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IContainEntitiesAndLinks,\n DataAttrDef,\n ValueTypes,\n} from './schemaTypes.ts';\nimport { validate as validateUUID } from 'uuid';\n\nexport class QueryValidationError extends Error {\n constructor(message: string, path?: string) {\n const fullMessage = path ? `At path '${path}': ${message}` : message;\n super(fullMessage);\n this.name = 'QueryValidationError';\n }\n}\n\nconst dollarSignKeys = [\n 'where',\n 'order',\n 'limit',\n 'last',\n 'first',\n 'offset',\n 'after',\n 'before',\n 'fields',\n 'aggregate',\n];\n\ntype PossibleAttrTypes = ValueTypes | 'unknown';\n\nconst getAttrType = (\n attrDef: DataAttrDef<any, any, any>,\n): PossibleAttrTypes => {\n return attrDef.valueType || 'unknown';\n};\n\nconst isValidValueForType = (\n value: unknown,\n expectedType: PossibleAttrTypes,\n isAnyType: boolean = false,\n): boolean => {\n if (isAnyType) return true;\n if (value === null || value === undefined) return true;\n\n switch (expectedType) {\n case 'string':\n return typeof value === 'string';\n case 'number':\n return typeof value === 'number' && !isNaN(value);\n case 'boolean':\n return typeof value === 'boolean';\n case 'date':\n return (\n value instanceof Date ||\n typeof value === 'string' ||\n typeof value === 'number'\n );\n default:\n return true;\n }\n};\n\nconst validateOperator = (\n op: string,\n opValue: unknown,\n expectedType: PossibleAttrTypes,\n attrName: string,\n entityName: string,\n attrDef: DataAttrDef<any, any, any>,\n path: string,\n) => {\n const isAnyType = attrDef.valueType === 'json';\n const assertValidValue = (\n op: string,\n expectedType: PossibleAttrTypes,\n opValue: unknown,\n ) => {\n if (!isValidValueForType(opValue, expectedType, isAnyType)) {\n throw new QueryValidationError(\n `Invalid value for operator '${op}' on attribute '${attrName}' in entity '${entityName}'. Expected ${expectedType}, but received: ${typeof opValue}`,\n path,\n );\n }\n };\n\n switch (op) {\n case 'in':\n case '$in':\n if (!Array.isArray(opValue)) {\n throw new QueryValidationError(\n `Operator '${op}' for attribute '${attrName}' in entity '${entityName}' must be an array, but received: ${typeof opValue}`,\n path,\n );\n }\n for (const item of opValue) {\n assertValidValue(op, expectedType, item);\n }\n break;\n case '$not':\n case '$ne':\n case '$gt':\n case '$lt':\n case '$gte':\n case '$lte':\n assertValidValue(op, expectedType, opValue);\n break;\n case '$like':\n case '$ilike':\n assertValidValue(op, 'string', opValue);\n\n if (op === '$ilike') {\n if (!attrDef.isIndexed) {\n throw new QueryValidationError(\n `Operator '${op}' can only be used with indexed attributes, but '${attrName}' in entity '${entityName}' is not indexed`,\n path,\n );\n }\n }\n\n break;\n case '$isNull':\n assertValidValue(op, 'boolean', opValue);\n break;\n default:\n throw new QueryValidationError(\n `Unknown operator '${op}' for attribute '${attrName}' in entity '${entityName}'`,\n path,\n );\n }\n};\n\nconst validateWhereClauseValue = (\n value: unknown,\n attrName: string,\n attrDef: DataAttrDef<any, any, any>,\n entityName: string,\n path: string,\n): void => {\n const expectedType = getAttrType(attrDef);\n const isAnyType = attrDef.valueType === 'json';\n\n const isComplexObject =\n typeof value === 'object' && value !== null && !Array.isArray(value);\n if (isComplexObject) {\n // For any type, allow complex objects without treating them as operators\n if (isAnyType) {\n return; // Any type accepts any value, including complex objects\n }\n\n const operators = value as Record<string, unknown>;\n\n for (const [op, opValue] of Object.entries(operators)) {\n validateOperator(\n op,\n opValue,\n expectedType,\n attrName,\n entityName,\n attrDef,\n `${path}.${op}`,\n );\n }\n } else {\n if (!isValidValueForType(value, expectedType, isAnyType)) {\n throw new QueryValidationError(\n `Invalid value for attribute '${attrName}' in entity '${entityName}'. Expected ${expectedType}, but received: ${typeof value}`,\n path,\n );\n }\n }\n};\n\nconst validateDotNotationAttribute = (\n dotPath: string,\n value: unknown,\n startEntityName: string,\n schema: IContainEntitiesAndLinks<any, any>,\n path: string,\n): void => {\n const pathParts = dotPath.split('.');\n if (pathParts.length < 2) {\n throw new QueryValidationError(\n `Invalid dot notation path '${dotPath}'. Must contain at least one dot.`,\n path,\n );\n }\n\n let currentEntityName = startEntityName;\n\n // Traverse all path parts except the last one (which should be an attribute)\n for (let i = 0; i < pathParts.length - 1; i++) {\n const linkName = pathParts[i];\n const currentEntity = schema.entities[currentEntityName];\n\n if (!currentEntity) {\n throw new QueryValidationError(\n `Entity '${currentEntityName}' does not exist in schema while traversing dot notation path '${dotPath}'.`,\n path,\n );\n }\n\n const link = currentEntity.links[linkName];\n if (!link) {\n const availableLinks = Object.keys(currentEntity.links);\n throw new QueryValidationError(\n `Link '${linkName}' does not exist on entity '${currentEntityName}' in dot notation path '${dotPath}'. Available links: ${availableLinks.length > 0 ? availableLinks.join(', ') : 'none'}`,\n path,\n );\n }\n\n currentEntityName = link.entityName;\n }\n\n // Validate the final attribute\n const finalAttrName = pathParts[pathParts.length - 1];\n const finalEntity = schema.entities[currentEntityName];\n\n if (!finalEntity) {\n throw new QueryValidationError(\n `Target entity '${currentEntityName}' does not exist in schema for dot notation path '${dotPath}'.`,\n path,\n );\n }\n\n // Handle 'id' field specially - every entity has an id field\n if (finalAttrName === 'id') {\n if (typeof value == 'string' && !validateUUID(value)) {\n throw new QueryValidationError(\n `Invalid value for id field in entity '${currentEntityName}'. Expected a UUID, but received: ${value}`,\n path,\n );\n }\n validateWhereClauseValue(\n value,\n dotPath,\n new DataAttrDef('string', false, true),\n startEntityName,\n path,\n );\n return;\n }\n\n const attrDef = finalEntity.attrs[finalAttrName];\n\n if (Object.keys(finalEntity.links).includes(finalAttrName)) {\n if (typeof value === 'string' && !validateUUID(value)) {\n throw new QueryValidationError(\n `Invalid value for link '${finalAttrName}' in entity '${currentEntityName}'. Expected a UUID, but received: ${value}`,\n path,\n );\n }\n\n validateWhereClauseValue(\n value,\n dotPath,\n new DataAttrDef('string', false, true),\n startEntityName,\n path,\n );\n return;\n }\n\n if (!attrDef) {\n const availableAttrs = Object.keys(finalEntity.attrs);\n throw new QueryValidationError(\n `Attribute '${finalAttrName}' does not exist on entity '${currentEntityName}' in dot notation path '${dotPath}'. Available attributes: ${availableAttrs.length > 0 ? availableAttrs.join(', ') + ', id' : 'id'}`,\n path,\n );\n }\n\n // Validate the value against the attribute type\n validateWhereClauseValue(value, dotPath, attrDef, startEntityName, path);\n};\n\nconst validateWhereClause = (\n whereClause: Record<string, unknown>,\n entityName: string,\n schema: IContainEntitiesAndLinks<any, any>,\n path: string,\n): void => {\n for (const [key, value] of Object.entries(whereClause)) {\n if (key === 'or' || key === 'and') {\n if (Array.isArray(value)) {\n for (const clause of value) {\n if (typeof clause === 'object' && clause !== null) {\n validateWhereClause(\n clause as Record<string, unknown>,\n entityName,\n schema,\n `${path}.${key}[${clause}]`,\n );\n }\n }\n }\n continue;\n }\n\n if (key === 'id') {\n validateWhereClauseValue(\n value,\n 'id',\n new DataAttrDef('string', false, true),\n entityName,\n `${path}.id`,\n );\n continue;\n }\n\n if (key.includes('.')) {\n validateDotNotationAttribute(\n key,\n value,\n entityName,\n schema,\n `${path}.${key}`,\n );\n continue;\n }\n\n const entityDef = schema.entities[entityName];\n if (!entityDef) continue;\n\n const attrDef = entityDef.attrs[key];\n const linkDef = entityDef.links[key];\n\n if (!attrDef && !linkDef) {\n const availableAttrs = Object.keys(entityDef.attrs);\n const availableLinks = Object.keys(entityDef.links);\n throw new QueryValidationError(\n `Attribute or link '${key}' does not exist on entity '${entityName}'. Available attributes: ${availableAttrs.length > 0 ? availableAttrs.join(', ') : 'none'}. Available links: ${availableLinks.length > 0 ? availableLinks.join(', ') : 'none'}`,\n `${path}.${key}`,\n );\n }\n\n if (attrDef) {\n validateWhereClauseValue(\n value,\n key,\n attrDef,\n entityName,\n `${path}.${key}`,\n );\n } else if (linkDef) {\n // For links, we expect the value to be a string (ID of the linked entity)\n // Create a synthetic string attribute definition for validation\n if (typeof value === 'string' && !validateUUID(value)) {\n throw new QueryValidationError(\n `Invalid value for link '${key}' in entity '${entityName}'. Expected a UUID, but received: ${value}`,\n `${path}.${key}`,\n );\n }\n const syntheticAttrDef = new DataAttrDef('string', false, true);\n validateWhereClauseValue(\n value,\n key,\n syntheticAttrDef,\n entityName,\n `${path}.${key}`,\n );\n }\n }\n};\n\nconst validateDollarObject = (\n dollarObj: Record<string, unknown>,\n entityName: string,\n schema?: IContainEntitiesAndLinks<any, any> | null | undefined,\n path?: string,\n depth: number = 0,\n): void => {\n for (const key of Object.keys(dollarObj)) {\n if (!dollarSignKeys.includes(key)) {\n throw new QueryValidationError(\n `Invalid query parameter '${key}' in $ object. Valid parameters are: ${dollarSignKeys.join(', ')}. Found: ${key}`,\n path,\n );\n }\n }\n\n // Validate that pagination parameters are only used at top-level\n const paginationParams = [\n // 'limit', // only supported client side\n 'offset',\n 'before',\n 'after',\n 'first',\n 'last',\n ];\n for (const param of paginationParams) {\n if (dollarObj[param] !== undefined && depth > 0) {\n throw new QueryValidationError(\n `'${param}' can only be used on top-level namespaces. It cannot be used in nested queries.`,\n path,\n );\n }\n }\n\n if (dollarObj.where && schema) {\n if (typeof dollarObj.where !== 'object' || dollarObj.where === null) {\n throw new QueryValidationError(\n `'where' clause must be an object in entity '${entityName}', but received: ${typeof dollarObj.where}`,\n path ? `${path}.where` : undefined,\n );\n }\n validateWhereClause(\n dollarObj.where as Record<string, unknown>,\n entityName,\n schema,\n path ? `${path}.where` : 'where',\n );\n }\n};\n\nconst validateEntityInQuery = (\n queryPart: Record<string, unknown>,\n entityName: string,\n schema: IContainEntitiesAndLinks<any, any> | null | undefined,\n path: string,\n depth: number = 0,\n): void => {\n if (!queryPart || typeof queryPart !== 'object') {\n throw new QueryValidationError(\n `Query part for entity '${entityName}' must be an object, but received: ${typeof queryPart}`,\n path,\n );\n }\n\n for (const key of Object.keys(queryPart)) {\n if (key !== '$') {\n // Validate link exists\n if (schema && !(key in schema.entities[entityName].links)) {\n const availableLinks = Object.keys(schema.entities[entityName].links);\n throw new QueryValidationError(\n `Link '${key}' does not exist on entity '${entityName}'. Available links: ${availableLinks.length > 0 ? availableLinks.join(', ') : 'none'}`,\n `${path}.${key}`,\n );\n }\n\n // Recursively validate nested query\n const nestedQuery = queryPart[key];\n if (typeof nestedQuery === 'object' && nestedQuery !== null) {\n const linkedEntityName =\n schema?.entities[entityName].links[key]?.entityName;\n if (linkedEntityName) {\n validateEntityInQuery(\n nestedQuery as Record<string, unknown>,\n linkedEntityName,\n schema,\n `${path}.${key}`,\n depth + 1,\n );\n }\n }\n } else {\n // Validate $ object\n const dollarObj = queryPart[key];\n if (typeof dollarObj !== 'object' || dollarObj === null) {\n throw new QueryValidationError(\n `Query parameter '$' must be an object in entity '${entityName}', but received: ${typeof dollarObj}`,\n `${path}.$`,\n );\n }\n\n validateDollarObject(\n dollarObj as Record<string, unknown>,\n entityName,\n schema,\n `${path}.$`,\n depth,\n );\n }\n }\n};\n\nexport const validateQuery = (\n q: unknown,\n schema?: IContainEntitiesAndLinks<any, any>,\n): void => {\n if (typeof q !== 'object' || q === null) {\n throw new QueryValidationError(\n `Query must be an object, but received: ${typeof q}${q === null ? ' (null)' : ''}`,\n );\n }\n\n if (Array.isArray(q)) {\n throw new QueryValidationError(\n `Query must be an object, but received: ${typeof q}`,\n );\n }\n\n const queryObj = q as Record<string, unknown>;\n\n for (const topLevelKey of Object.keys(queryObj)) {\n if (Array.isArray(q[topLevelKey])) {\n throw new QueryValidationError(\n `Query keys must be strings, but found key of type: ${typeof topLevelKey}`,\n topLevelKey,\n );\n }\n\n if (typeof topLevelKey !== 'string') {\n throw new QueryValidationError(\n `Query keys must be strings, but found key of type: ${typeof topLevelKey}`,\n topLevelKey,\n );\n }\n\n if (topLevelKey === '$$ruleParams') {\n continue;\n }\n\n // Check if the key is top level entity\n if (schema) {\n if (!schema.entities[topLevelKey]) {\n const availableEntities = Object.keys(schema.entities);\n throw new QueryValidationError(\n `Entity '${topLevelKey}' does not exist in schema. Available entities: ${availableEntities.length > 0 ? availableEntities.join(', ') : 'none'}`,\n topLevelKey,\n );\n }\n }\n\n validateEntityInQuery(\n queryObj[topLevelKey] as Record<string, unknown>,\n topLevelKey,\n schema,\n topLevelKey,\n 0, // Start at depth 0 for top-level entities\n );\n }\n};\n"]}
1
+ {"version":3,"file":"queryValidation.js","sourceRoot":"","sources":["../../src/queryValidation.ts"],"names":[],"mappings":";;;AAAA,qDAI0B;AAC1B,+BAAgD;AAEhD,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAE,IAAa;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAND,oDAMC;AAED,MAAM,cAAc,GAAG;IACrB,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,gBAAgB;IAChB,QAAQ;IACR,iBAAiB;IACjB,QAAQ;IACR,WAAW;CACZ,CAAC;AAIF,MAAM,WAAW,GAAG,CAClB,OAAmC,EAChB,EAAE;IACrB,OAAO,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAAc,EACd,YAA+B,EAC/B,YAAqB,KAAK,EACjB,EAAE;IACX,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEvD,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,KAAK,SAAS;YACZ,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,CACL,KAAK,YAAY,IAAI;gBACrB,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAC;QACJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,EAAU,EACV,OAAgB,EAChB,YAA+B,EAC/B,QAAgB,EAChB,UAAkB,EAClB,OAAmC,EACnC,IAAY,EACZ,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC;IAC/C,MAAM,gBAAgB,GAAG,CACvB,EAAU,EACV,YAA+B,EAC/B,OAAgB,EAChB,EAAE;QACF,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,oBAAoB,CAC5B,+BAA+B,EAAE,mBAAmB,QAAQ,gBAAgB,UAAU,eAAe,YAAY,mBAAmB,OAAO,OAAO,EAAE,EACpJ,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,IAAI,CAAC;QACV,KAAK,KAAK;YACR,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,oBAAoB,CAC5B,aAAa,EAAE,oBAAoB,QAAQ,gBAAgB,UAAU,qCAAqC,OAAO,OAAO,EAAE,EAC1H,IAAI,CACL,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM;QACR,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAExC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACvB,MAAM,IAAI,oBAAoB,CAC5B,aAAa,EAAE,oDAAoD,QAAQ,gBAAgB,UAAU,kBAAkB,EACvH,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM;QACR,KAAK,SAAS;YACZ,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM;QACR;YACE,MAAM,IAAI,oBAAoB,CAC5B,qBAAqB,EAAE,oBAAoB,QAAQ,gBAAgB,UAAU,GAAG,EAChF,IAAI,CACL,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,KAAc,EACd,QAAgB,EAChB,OAAmC,EACnC,UAAkB,EAClB,IAAY,EACN,EAAE;IACR,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC;IAE/C,MAAM,eAAe,GACnB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,eAAe,EAAE,CAAC;QACpB,yEAAyE;QACzE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,wDAAwD;QAClE,CAAC;QAED,MAAM,SAAS,GAAG,KAAgC,CAAC;QAEnD,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,gBAAgB,CACd,EAAE,EACF,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,OAAO,EACP,GAAG,IAAI,IAAI,EAAE,EAAE,CAChB,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,oBAAoB,CAC5B,gCAAgC,QAAQ,gBAAgB,UAAU,eAAe,YAAY,mBAAmB,OAAO,KAAK,EAAE,EAC9H,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CACnC,OAAe,EACf,KAAc,EACd,eAAuB,EACvB,MAA0C,EAC1C,IAAY,EACN,EAAE;IACR,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,oBAAoB,CAC5B,8BAA8B,OAAO,mCAAmC,EACxE,IAAI,CACL,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,GAAG,eAAe,CAAC;IAExC,6EAA6E;IAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,oBAAoB,CAC5B,WAAW,iBAAiB,kEAAkE,OAAO,IAAI,EACzG,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,IAAI,oBAAoB,CAC5B,SAAS,QAAQ,+BAA+B,iBAAiB,2BAA2B,OAAO,uBAAuB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAC1L,IAAI,CACL,CAAC;QACJ,CAAC;QAED,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,oBAAoB,CAC5B,kBAAkB,iBAAiB,qDAAqD,OAAO,IAAI,EACnG,IAAI,CACL,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,IAAI,QAAQ,IAAI,CAAC,IAAA,eAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,oBAAoB,CAC5B,yCAAyC,iBAAiB,qCAAqC,KAAK,EAAE,EACtG,IAAI,CACL,CAAC;QACJ,CAAC;QACD,wBAAwB,CACtB,KAAK,EACL,OAAO,EACP,IAAI,4BAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EACtC,eAAe,EACf,IAAI,CACL,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,eAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,oBAAoB,CAC5B,2BAA2B,aAAa,gBAAgB,iBAAiB,qCAAqC,KAAK,EAAE,EACrH,IAAI,CACL,CAAC;QACJ,CAAC;QAED,wBAAwB,CACtB,KAAK,EACL,OAAO,EACP,IAAI,4BAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EACtC,eAAe,EACf,IAAI,CACL,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,IAAI,oBAAoB,CAC5B,cAAc,aAAa,+BAA+B,iBAAiB,2BAA2B,OAAO,4BAA4B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAChN,IAAI,CACL,CAAC;IACJ,CAAC;IAED,gDAAgD;IAChD,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,WAAoC,EACpC,UAAkB,EAClB,MAA0C,EAC1C,IAAY,EACN,EAAE;IACR,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBAClD,mBAAmB,CACjB,MAAiC,EACjC,UAAU,EACV,MAAM,EACN,GAAG,IAAI,IAAI,GAAG,IAAI,MAAM,GAAG,CAC5B,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,wBAAwB,CACtB,KAAK,EACL,IAAI,EACJ,IAAI,4BAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EACtC,UAAU,EACV,GAAG,IAAI,KAAK,CACb,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,4BAA4B,CAC1B,GAAG,EACH,KAAK,EACL,UAAU,EACV,MAAM,EACN,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,GAAG,+BAA+B,UAAU,4BAA4B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,sBAAsB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAClP,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,wBAAwB,CACtB,KAAK,EACL,GAAG,EACH,OAAO,EACP,UAAU,EACV,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,0EAA0E;YAC1E,gEAAgE;YAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,eAAY,EAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,oBAAoB,CAC5B,2BAA2B,GAAG,gBAAgB,UAAU,qCAAqC,KAAK,EAAE,EACpG,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;YACJ,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAI,4BAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAChE,wBAAwB,CACtB,KAAK,EACL,GAAG,EACH,gBAAgB,EAChB,UAAU,EACV,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,SAAkC,EAClC,UAAkB,EAClB,MAA8D,EAC9D,IAAa,EACb,QAAgB,CAAC,EACX,EAAE;IACR,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,oBAAoB,CAC5B,4BAA4B,GAAG,wCAAwC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,EACjH,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,gBAAgB,GAAG;QACvB,yCAAyC;QACzC,QAAQ;QACR,QAAQ;QACR,iBAAiB;QACjB,OAAO;QACP,gBAAgB;QAChB,OAAO;QACP,MAAM;KACP,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAoB,CAC5B,IAAI,KAAK,kFAAkF,EAC3F,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;QAC9B,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACpE,MAAM,IAAI,oBAAoB,CAC5B,+CAA+C,UAAU,oBAAoB,OAAO,SAAS,CAAC,KAAK,EAAE,EACrG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CACnC,CAAC;QACJ,CAAC;QACD,mBAAmB,CACjB,SAAS,CAAC,KAAgC,EAC1C,UAAU,EACV,MAAM,EACN,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CACjC,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,SAAkC,EAClC,UAAkB,EAClB,MAA6D,EAC7D,IAAY,EACZ,QAAgB,CAAC,EACX,EAAE;IACR,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,oBAAoB,CAC5B,0BAA0B,UAAU,sCAAsC,OAAO,SAAS,EAAE,EAC5F,IAAI,CACL,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,uBAAuB;YACvB,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1D,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM,IAAI,oBAAoB,CAC5B,SAAS,GAAG,+BAA+B,UAAU,uBAAuB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAC5I,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;YACJ,CAAC;YAED,oCAAoC;YACpC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC5D,MAAM,gBAAgB,GACpB,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;gBACtD,IAAI,gBAAgB,EAAE,CAAC;oBACrB,qBAAqB,CACnB,WAAsC,EACtC,gBAAgB,EAChB,MAAM,EACN,GAAG,IAAI,IAAI,GAAG,EAAE,EAChB,KAAK,GAAG,CAAC,CACV,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,oBAAoB,CAC5B,oDAAoD,UAAU,oBAAoB,OAAO,SAAS,EAAE,EACpG,GAAG,IAAI,IAAI,CACZ,CAAC;YACJ,CAAC;YAED,oBAAoB,CAClB,SAAoC,EACpC,UAAU,EACV,MAAM,EACN,GAAG,IAAI,IAAI,EACX,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAC3B,CAAU,EACV,MAA2C,EACrC,EAAE;IACR,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,oBAAoB,CAC5B,0CAA0C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,oBAAoB,CAC5B,0CAA0C,OAAO,CAAC,EAAE,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,CAA4B,CAAC;IAE9C,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,oBAAoB,CAC5B,sDAAsD,OAAO,WAAW,EAAE,EAC1E,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAoB,CAC5B,sDAAsD,OAAO,WAAW,EAAE,EAC1E,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvD,MAAM,IAAI,oBAAoB,CAC5B,WAAW,WAAW,mDAAmD,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAC/I,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qBAAqB,CACnB,QAAQ,CAAC,WAAW,CAA4B,EAChD,WAAW,EACX,MAAM,EACN,WAAW,EACX,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAxDW,QAAA,aAAa,iBAwDxB","sourcesContent":["import {\n IContainEntitiesAndLinks,\n DataAttrDef,\n ValueTypes,\n} from './schemaTypes.ts';\nimport { validate as validateUUID } from 'uuid';\n\nexport class QueryValidationError extends Error {\n constructor(message: string, path?: string) {\n const fullMessage = path ? `At path '${path}': ${message}` : message;\n super(fullMessage);\n this.name = 'QueryValidationError';\n }\n}\n\nconst dollarSignKeys = [\n 'where',\n 'order',\n 'limit',\n 'last',\n 'first',\n 'offset',\n 'after',\n 'afterInclusive',\n 'before',\n 'beforeInclusive',\n 'fields',\n 'aggregate',\n];\n\ntype PossibleAttrTypes = ValueTypes | 'unknown';\n\nconst getAttrType = (\n attrDef: DataAttrDef<any, any, any>,\n): PossibleAttrTypes => {\n return attrDef.valueType || 'unknown';\n};\n\nconst isValidValueForType = (\n value: unknown,\n expectedType: PossibleAttrTypes,\n isAnyType: boolean = false,\n): boolean => {\n if (isAnyType) return true;\n if (value === null || value === undefined) return true;\n\n switch (expectedType) {\n case 'string':\n return typeof value === 'string';\n case 'number':\n return typeof value === 'number' && !isNaN(value);\n case 'boolean':\n return typeof value === 'boolean';\n case 'date':\n return (\n value instanceof Date ||\n typeof value === 'string' ||\n typeof value === 'number'\n );\n default:\n return true;\n }\n};\n\nconst validateOperator = (\n op: string,\n opValue: unknown,\n expectedType: PossibleAttrTypes,\n attrName: string,\n entityName: string,\n attrDef: DataAttrDef<any, any, any>,\n path: string,\n) => {\n const isAnyType = attrDef.valueType === 'json';\n const assertValidValue = (\n op: string,\n expectedType: PossibleAttrTypes,\n opValue: unknown,\n ) => {\n if (!isValidValueForType(opValue, expectedType, isAnyType)) {\n throw new QueryValidationError(\n `Invalid value for operator '${op}' on attribute '${attrName}' in entity '${entityName}'. Expected ${expectedType}, but received: ${typeof opValue}`,\n path,\n );\n }\n };\n\n switch (op) {\n case 'in':\n case '$in':\n if (!Array.isArray(opValue)) {\n throw new QueryValidationError(\n `Operator '${op}' for attribute '${attrName}' in entity '${entityName}' must be an array, but received: ${typeof opValue}`,\n path,\n );\n }\n for (const item of opValue) {\n assertValidValue(op, expectedType, item);\n }\n break;\n case '$not':\n case '$ne':\n case '$gt':\n case '$lt':\n case '$gte':\n case '$lte':\n assertValidValue(op, expectedType, opValue);\n break;\n case '$like':\n case '$ilike':\n assertValidValue(op, 'string', opValue);\n\n if (op === '$ilike') {\n if (!attrDef.isIndexed) {\n throw new QueryValidationError(\n `Operator '${op}' can only be used with indexed attributes, but '${attrName}' in entity '${entityName}' is not indexed`,\n path,\n );\n }\n }\n\n break;\n case '$isNull':\n assertValidValue(op, 'boolean', opValue);\n break;\n default:\n throw new QueryValidationError(\n `Unknown operator '${op}' for attribute '${attrName}' in entity '${entityName}'`,\n path,\n );\n }\n};\n\nconst validateWhereClauseValue = (\n value: unknown,\n attrName: string,\n attrDef: DataAttrDef<any, any, any>,\n entityName: string,\n path: string,\n): void => {\n const expectedType = getAttrType(attrDef);\n const isAnyType = attrDef.valueType === 'json';\n\n const isComplexObject =\n typeof value === 'object' && value !== null && !Array.isArray(value);\n if (isComplexObject) {\n // For any type, allow complex objects without treating them as operators\n if (isAnyType) {\n return; // Any type accepts any value, including complex objects\n }\n\n const operators = value as Record<string, unknown>;\n\n for (const [op, opValue] of Object.entries(operators)) {\n validateOperator(\n op,\n opValue,\n expectedType,\n attrName,\n entityName,\n attrDef,\n `${path}.${op}`,\n );\n }\n } else {\n if (!isValidValueForType(value, expectedType, isAnyType)) {\n throw new QueryValidationError(\n `Invalid value for attribute '${attrName}' in entity '${entityName}'. Expected ${expectedType}, but received: ${typeof value}`,\n path,\n );\n }\n }\n};\n\nconst validateDotNotationAttribute = (\n dotPath: string,\n value: unknown,\n startEntityName: string,\n schema: IContainEntitiesAndLinks<any, any>,\n path: string,\n): void => {\n const pathParts = dotPath.split('.');\n if (pathParts.length < 2) {\n throw new QueryValidationError(\n `Invalid dot notation path '${dotPath}'. Must contain at least one dot.`,\n path,\n );\n }\n\n let currentEntityName = startEntityName;\n\n // Traverse all path parts except the last one (which should be an attribute)\n for (let i = 0; i < pathParts.length - 1; i++) {\n const linkName = pathParts[i];\n const currentEntity = schema.entities[currentEntityName];\n\n if (!currentEntity) {\n throw new QueryValidationError(\n `Entity '${currentEntityName}' does not exist in schema while traversing dot notation path '${dotPath}'.`,\n path,\n );\n }\n\n const link = currentEntity.links[linkName];\n if (!link) {\n const availableLinks = Object.keys(currentEntity.links);\n throw new QueryValidationError(\n `Link '${linkName}' does not exist on entity '${currentEntityName}' in dot notation path '${dotPath}'. Available links: ${availableLinks.length > 0 ? availableLinks.join(', ') : 'none'}`,\n path,\n );\n }\n\n currentEntityName = link.entityName;\n }\n\n // Validate the final attribute\n const finalAttrName = pathParts[pathParts.length - 1];\n const finalEntity = schema.entities[currentEntityName];\n\n if (!finalEntity) {\n throw new QueryValidationError(\n `Target entity '${currentEntityName}' does not exist in schema for dot notation path '${dotPath}'.`,\n path,\n );\n }\n\n // Handle 'id' field specially - every entity has an id field\n if (finalAttrName === 'id') {\n if (typeof value == 'string' && !validateUUID(value)) {\n throw new QueryValidationError(\n `Invalid value for id field in entity '${currentEntityName}'. Expected a UUID, but received: ${value}`,\n path,\n );\n }\n validateWhereClauseValue(\n value,\n dotPath,\n new DataAttrDef('string', false, true),\n startEntityName,\n path,\n );\n return;\n }\n\n const attrDef = finalEntity.attrs[finalAttrName];\n\n if (Object.keys(finalEntity.links).includes(finalAttrName)) {\n if (typeof value === 'string' && !validateUUID(value)) {\n throw new QueryValidationError(\n `Invalid value for link '${finalAttrName}' in entity '${currentEntityName}'. Expected a UUID, but received: ${value}`,\n path,\n );\n }\n\n validateWhereClauseValue(\n value,\n dotPath,\n new DataAttrDef('string', false, true),\n startEntityName,\n path,\n );\n return;\n }\n\n if (!attrDef) {\n const availableAttrs = Object.keys(finalEntity.attrs);\n throw new QueryValidationError(\n `Attribute '${finalAttrName}' does not exist on entity '${currentEntityName}' in dot notation path '${dotPath}'. Available attributes: ${availableAttrs.length > 0 ? availableAttrs.join(', ') + ', id' : 'id'}`,\n path,\n );\n }\n\n // Validate the value against the attribute type\n validateWhereClauseValue(value, dotPath, attrDef, startEntityName, path);\n};\n\nconst validateWhereClause = (\n whereClause: Record<string, unknown>,\n entityName: string,\n schema: IContainEntitiesAndLinks<any, any>,\n path: string,\n): void => {\n for (const [key, value] of Object.entries(whereClause)) {\n if (key === 'or' || key === 'and') {\n if (Array.isArray(value)) {\n for (const clause of value) {\n if (typeof clause === 'object' && clause !== null) {\n validateWhereClause(\n clause as Record<string, unknown>,\n entityName,\n schema,\n `${path}.${key}[${clause}]`,\n );\n }\n }\n }\n continue;\n }\n\n if (key === 'id') {\n validateWhereClauseValue(\n value,\n 'id',\n new DataAttrDef('string', false, true),\n entityName,\n `${path}.id`,\n );\n continue;\n }\n\n if (key.includes('.')) {\n validateDotNotationAttribute(\n key,\n value,\n entityName,\n schema,\n `${path}.${key}`,\n );\n continue;\n }\n\n const entityDef = schema.entities[entityName];\n if (!entityDef) continue;\n\n const attrDef = entityDef.attrs[key];\n const linkDef = entityDef.links[key];\n\n if (!attrDef && !linkDef) {\n const availableAttrs = Object.keys(entityDef.attrs);\n const availableLinks = Object.keys(entityDef.links);\n throw new QueryValidationError(\n `Attribute or link '${key}' does not exist on entity '${entityName}'. Available attributes: ${availableAttrs.length > 0 ? availableAttrs.join(', ') : 'none'}. Available links: ${availableLinks.length > 0 ? availableLinks.join(', ') : 'none'}`,\n `${path}.${key}`,\n );\n }\n\n if (attrDef) {\n validateWhereClauseValue(\n value,\n key,\n attrDef,\n entityName,\n `${path}.${key}`,\n );\n } else if (linkDef) {\n // For links, we expect the value to be a string (ID of the linked entity)\n // Create a synthetic string attribute definition for validation\n if (typeof value === 'string' && !validateUUID(value)) {\n throw new QueryValidationError(\n `Invalid value for link '${key}' in entity '${entityName}'. Expected a UUID, but received: ${value}`,\n `${path}.${key}`,\n );\n }\n const syntheticAttrDef = new DataAttrDef('string', false, true);\n validateWhereClauseValue(\n value,\n key,\n syntheticAttrDef,\n entityName,\n `${path}.${key}`,\n );\n }\n }\n};\n\nconst validateDollarObject = (\n dollarObj: Record<string, unknown>,\n entityName: string,\n schema?: IContainEntitiesAndLinks<any, any> | null | undefined,\n path?: string,\n depth: number = 0,\n): void => {\n for (const key of Object.keys(dollarObj)) {\n if (!dollarSignKeys.includes(key)) {\n throw new QueryValidationError(\n `Invalid query parameter '${key}' in $ object. Valid parameters are: ${dollarSignKeys.join(', ')}. Found: ${key}`,\n path,\n );\n }\n }\n\n // Validate that pagination parameters are only used at top-level\n const paginationParams = [\n // 'limit', // only supported client side\n 'offset',\n 'before',\n 'beforeInclusive',\n 'after',\n 'afterInclusive',\n 'first',\n 'last',\n ];\n for (const param of paginationParams) {\n if (dollarObj[param] !== undefined && depth > 0) {\n throw new QueryValidationError(\n `'${param}' can only be used on top-level namespaces. It cannot be used in nested queries.`,\n path,\n );\n }\n }\n\n if (dollarObj.where && schema) {\n if (typeof dollarObj.where !== 'object' || dollarObj.where === null) {\n throw new QueryValidationError(\n `'where' clause must be an object in entity '${entityName}', but received: ${typeof dollarObj.where}`,\n path ? `${path}.where` : undefined,\n );\n }\n validateWhereClause(\n dollarObj.where as Record<string, unknown>,\n entityName,\n schema,\n path ? `${path}.where` : 'where',\n );\n }\n};\n\nconst validateEntityInQuery = (\n queryPart: Record<string, unknown>,\n entityName: string,\n schema: IContainEntitiesAndLinks<any, any> | null | undefined,\n path: string,\n depth: number = 0,\n): void => {\n if (!queryPart || typeof queryPart !== 'object') {\n throw new QueryValidationError(\n `Query part for entity '${entityName}' must be an object, but received: ${typeof queryPart}`,\n path,\n );\n }\n\n for (const key of Object.keys(queryPart)) {\n if (key !== '$') {\n // Validate link exists\n if (schema && !(key in schema.entities[entityName].links)) {\n const availableLinks = Object.keys(schema.entities[entityName].links);\n throw new QueryValidationError(\n `Link '${key}' does not exist on entity '${entityName}'. Available links: ${availableLinks.length > 0 ? availableLinks.join(', ') : 'none'}`,\n `${path}.${key}`,\n );\n }\n\n // Recursively validate nested query\n const nestedQuery = queryPart[key];\n if (typeof nestedQuery === 'object' && nestedQuery !== null) {\n const linkedEntityName =\n schema?.entities[entityName].links[key]?.entityName;\n if (linkedEntityName) {\n validateEntityInQuery(\n nestedQuery as Record<string, unknown>,\n linkedEntityName,\n schema,\n `${path}.${key}`,\n depth + 1,\n );\n }\n }\n } else {\n // Validate $ object\n const dollarObj = queryPart[key];\n if (typeof dollarObj !== 'object' || dollarObj === null) {\n throw new QueryValidationError(\n `Query parameter '$' must be an object in entity '${entityName}', but received: ${typeof dollarObj}`,\n `${path}.$`,\n );\n }\n\n validateDollarObject(\n dollarObj as Record<string, unknown>,\n entityName,\n schema,\n `${path}.$`,\n depth,\n );\n }\n }\n};\n\nexport const validateQuery = (\n q: unknown,\n schema?: IContainEntitiesAndLinks<any, any>,\n): void => {\n if (typeof q !== 'object' || q === null) {\n throw new QueryValidationError(\n `Query must be an object, but received: ${typeof q}${q === null ? ' (null)' : ''}`,\n );\n }\n\n if (Array.isArray(q)) {\n throw new QueryValidationError(\n `Query must be an object, but received: ${typeof q}`,\n );\n }\n\n const queryObj = q as Record<string, unknown>;\n\n for (const topLevelKey of Object.keys(queryObj)) {\n if (Array.isArray(q[topLevelKey])) {\n throw new QueryValidationError(\n `Query keys must be strings, but found key of type: ${typeof topLevelKey}`,\n topLevelKey,\n );\n }\n\n if (typeof topLevelKey !== 'string') {\n throw new QueryValidationError(\n `Query keys must be strings, but found key of type: ${typeof topLevelKey}`,\n topLevelKey,\n );\n }\n\n if (topLevelKey === '$$ruleParams') {\n continue;\n }\n\n // Check if the key is top level entity\n if (schema) {\n if (!schema.entities[topLevelKey]) {\n const availableEntities = Object.keys(schema.entities);\n throw new QueryValidationError(\n `Entity '${topLevelKey}' does not exist in schema. Available entities: ${availableEntities.length > 0 ? availableEntities.join(', ') : 'none'}`,\n topLevelKey,\n );\n }\n }\n\n validateEntityInQuery(\n queryObj[topLevelKey] as Record<string, unknown>,\n topLevelKey,\n schema,\n topLevelKey,\n 0, // Start at depth 0 for top-level entities\n );\n }\n};\n"]}
@@ -73,7 +73,9 @@ type $Option<S extends IContainEntitiesAndLinks<any, any>, K extends keyof S['en
73
73
  first?: number;
74
74
  offset?: number;
75
75
  after?: Cursor;
76
+ afterInclusive?: boolean;
76
77
  before?: Cursor;
78
+ beforeInclusive?: boolean;
77
79
  fields?: InstaQLFields<S, K>;
78
80
  };
79
81
  };
@@ -197,7 +199,7 @@ type ValidQueryObject<T extends Record<string, any>, Schema extends IContainEnti
197
199
  } & {
198
200
  $?: ValidDollarSignQuery<T['$'], Schema, EntityName, TopLevel>;
199
201
  } : never;
200
- type PaginationKeys = 'limit' | 'last' | 'first' | 'offset' | 'after' | 'before';
202
+ type PaginationKeys = 'limit' | 'last' | 'first' | 'offset' | 'after' | 'afterInclusive' | 'before' | 'beforeInclusive';
201
203
  type AllowedDollarSignKeys<TopLevel extends boolean> = TopLevel extends true ? PaginationKeys | 'where' | 'fields' | 'order' : 'where' | 'fields' | 'order' | 'limit';
202
204
  type ValidFieldNames<S extends IContainEntitiesAndLinks<any, any>, EntityName extends keyof S['entities']> = Extract<keyof ResolveEntityAttrs<S['entities'][EntityName]>, string> | 'id';
203
205
  type ValidDollarSignQuery<Input extends {
@@ -212,7 +214,9 @@ type ValidDollarSignQuery<Input extends {
212
214
  first?: number;
213
215
  offset?: number;
214
216
  after?: Cursor;
217
+ afterInclusive?: boolean;
215
218
  before?: Cursor;
219
+ beforeInclusive?: boolean;
216
220
  } : {}) : never;
217
221
  type StringifiableKey<T> = Extract<T, string | number | bigint | boolean>;
218
222
  type ValidWhereNestedPath<T, K extends string | number | symbol, Schema extends IContainEntitiesAndLinks<any, any>> = T extends object ? K extends keyof T ? K : K extends `${infer K0}.${infer KR}` ? K0 extends keyof T ? T[K0] extends keyof Schema['entities'] ? `${K0}.${ValidWhereNestedPath<{
@@ -1 +1 @@
1
- {"version":3,"file":"queryTypes.d.ts","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryTypes.d.ts","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":"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"}