@supabase/postgrest-js 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,12 @@ declare type Letter = Alphabet | Digit | '_';
7
7
  declare type Json = string | number | boolean | null | {
8
8
  [key: string]: Json;
9
9
  } | Json[];
10
+ declare type SingleValuePostgreSQLTypes = 'bool' | 'int2' | 'int4' | 'int8' | 'float4' | 'float8' | 'numeric' | 'bytea' | 'bpchar' | 'varchar' | 'date' | 'text' | 'citext' | 'time' | 'timetz' | 'timestamp' | 'timestamptz' | 'uuid' | 'vector' | 'json' | 'jsonb' | 'void' | 'record' | string;
11
+ declare type ArrayPostgreSQLTypes = `_${SingleValuePostgreSQLTypes}`;
12
+ declare type PostgreSQLTypes = SingleValuePostgreSQLTypes | ArrayPostgreSQLTypes;
13
+ declare type TypeScriptSingleValueTypes<T extends SingleValuePostgreSQLTypes> = T extends 'bool' ? boolean : T extends 'int2' | 'int4' | 'int8' | 'float4' | 'float8' | 'numeric' ? number : T extends 'bytea' | 'bpchar' | 'varchar' | 'date' | 'text' | 'citext' | 'time' | 'timetz' | 'timestamp' | 'timestamptz' | 'uuid' | 'vector' ? string : T extends 'json' | 'jsonb' ? Json : T extends 'void' ? undefined : T extends 'record' ? Record<string, unknown> : unknown;
14
+ declare type StripUnderscore<T extends string> = T extends `_${infer U}` ? U : T;
15
+ declare type TypeScriptTypes<T extends PostgreSQLTypes> = T extends ArrayPostgreSQLTypes ? TypeScriptSingleValueTypes<StripUnderscore<Extract<T, SingleValuePostgreSQLTypes>>>[] : TypeScriptSingleValueTypes<T>;
10
16
  /**
11
17
  * Parser errors.
12
18
  */
@@ -17,17 +23,31 @@ declare type GenericStringError = ParserError<'Received a generic string'>;
17
23
  export declare type SelectQueryError<Message extends string> = {
18
24
  error: true;
19
25
  } & Message;
26
+ /**
27
+ * Creates a new {@link ParserError} if the given input is not already a parser error.
28
+ */
29
+ declare type CreateParserErrorIfRequired<Input, Message extends string> = Input extends ParserError<string> ? Input : ParserError<Message>;
20
30
  /**
21
31
  * Trims whitespace from the left of the input.
22
32
  */
23
33
  declare type EatWhitespace<Input extends string> = string extends Input ? GenericStringError : Input extends `${Whitespace}${infer Remainder}` ? EatWhitespace<Remainder> : Input;
34
+ /**
35
+ * Returns a boolean representing whether there is a foreign key with the given name.
36
+ */
24
37
  declare type HasFKey<FKeyName, Relationships> = Relationships extends [infer R] ? R extends {
25
38
  foreignKeyName: FKeyName;
26
39
  } ? true : false : Relationships extends [infer R, ...infer Rest] ? HasFKey<FKeyName, [R]> extends true ? true : HasFKey<FKeyName, Rest> : false;
40
+ /**
41
+ * Returns a boolean representing whether there the foreign key has a unique constraint.
42
+ */
27
43
  declare type HasUniqueFKey<FKeyName, Relationships> = Relationships extends [infer R] ? R extends {
28
44
  foreignKeyName: FKeyName;
29
45
  isOneToOne: true;
30
46
  } ? true : false : Relationships extends [infer R, ...infer Rest] ? HasUniqueFKey<FKeyName, [R]> extends true ? true : HasUniqueFKey<FKeyName, Rest> : false;
47
+ /**
48
+ * Returns a boolean representing whether there is a foreign key referencing
49
+ * a given relation.
50
+ */
31
51
  declare type HasFKeyToFRel<FRelName, Relationships> = Relationships extends [infer R] ? R extends {
32
52
  referencedRelation: FRelName;
33
53
  } ? true : false : Relationships extends [infer R, ...infer Rest] ? HasFKeyToFRel<FRelName, [R]> extends true ? true : HasFKeyToFRel<FRelName, Rest> : false;
@@ -38,13 +58,22 @@ declare type HasUniqueFKeyToFRel<FRelName, Relationships> = Relationships extend
38
58
  /**
39
59
  * Constructs a type definition for a single field of an object.
40
60
  *
41
- * @param Definitions Record of definitions, possibly generated from PostgREST's OpenAPI spec.
42
- * @param Name Name of the table being queried.
61
+ * @param Schema Database schema.
62
+ * @param Row Type of a row in the given table.
63
+ * @param Relationships Relationships between different tables in the database.
43
64
  * @param Field Single field parsed by `ParseQuery`.
44
65
  */
45
66
  declare type ConstructFieldDefinition<Schema extends GenericSchema, Row extends Record<string, unknown>, RelationName, Relationships, Field> = Field extends {
46
67
  star: true;
47
68
  } ? Row : Field extends {
69
+ spread: true;
70
+ original: string;
71
+ children: unknown[];
72
+ } ? GetResultHelper<Schema, (Schema['Tables'] & Schema['Views'])[Field['original']]['Row'], Field['original'], (Schema['Tables'] & Schema['Views'])[Field['original']] extends {
73
+ Relationships: infer R;
74
+ } ? R : unknown, Field['children'], unknown> : Field extends {
75
+ children: [];
76
+ } ? {} : Field extends {
48
77
  name: string;
49
78
  original: string;
50
79
  hint: string;
@@ -66,70 +95,61 @@ declare type ConstructFieldDefinition<Schema extends GenericSchema, Row extends
66
95
  Relationships: infer R;
67
96
  } ? R : unknown> extends true ? Child | null : Relationships extends unknown[] ? HasFKeyToFRel<Field['original'], Relationships> extends true ? Child | null : Child[] : Child[] : never;
68
97
  } : Field extends {
69
- name: string;
70
- original: string;
71
- } ? Field['original'] extends keyof Row ? {
72
- [K in Field['name']]: Row[Field['original']];
73
- } : SelectQueryError<`Referencing missing column \`${Field['original']}\``> : Field extends {
74
98
  name: string;
75
99
  type: infer T;
76
100
  } ? {
77
101
  [K in Field['name']]: T;
78
- } : Record<string, unknown>;
102
+ } : Field extends {
103
+ name: string;
104
+ original: string;
105
+ } ? Field['original'] extends keyof Row ? {
106
+ [K in Field['name']]: Row[Field['original']];
107
+ } : SelectQueryError<`Referencing missing column \`${Field['original']}\``> : Record<string, unknown>;
79
108
  /**
80
109
  * Notes: all `Parse*` types assume that their input strings have their whitespace
81
110
  * removed. They return tuples of ["Return Value", "Remainder of text"] or
82
111
  * a `ParserError`.
83
112
  */
84
113
  /**
85
- * Reads a consecutive sequence of more than 1 letter,
86
- * where letters are `[0-9a-zA-Z_]`.
114
+ * Reads a consecutive sequence of 1 or more letter, where letters are `[0-9a-zA-Z_]`.
87
115
  */
88
116
  declare type ReadLetters<Input extends string> = string extends Input ? GenericStringError : ReadLettersHelper<Input, ''> extends [`${infer Letters}`, `${infer Remainder}`] ? Letters extends '' ? ParserError<`Expected letter at \`${Input}\``> : [Letters, Remainder] : ReadLettersHelper<Input, ''>;
89
117
  declare type ReadLettersHelper<Input extends string, Acc extends string> = string extends Input ? GenericStringError : Input extends `${infer L}${infer Remainder}` ? L extends Letter ? ReadLettersHelper<Remainder, `${Acc}${L}`> : [Acc, Input] : [Acc, ''];
90
118
  /**
91
- * Reads a consecutive sequence of more than 1 double-quoted letters,
119
+ * Reads a consecutive sequence of 1 or more double-quoted letters,
92
120
  * where letters are `[^"]`.
93
121
  */
94
122
  declare type ReadQuotedLetters<Input extends string> = string extends Input ? GenericStringError : Input extends `"${infer Remainder}` ? ReadQuotedLettersHelper<Remainder, ''> extends [`${infer Letters}`, `${infer Remainder}`] ? Letters extends '' ? ParserError<`Expected string at \`${Remainder}\``> : [Letters, Remainder] : ReadQuotedLettersHelper<Remainder, ''> : ParserError<`Not a double-quoted string at \`${Input}\``>;
95
123
  declare type ReadQuotedLettersHelper<Input extends string, Acc extends string> = string extends Input ? GenericStringError : Input extends `${infer L}${infer Remainder}` ? L extends '"' ? [Acc, Remainder] : ReadQuotedLettersHelper<Remainder, `${Acc}${L}`> : ParserError<`Missing closing double-quote in \`"${Acc}${Input}\``>;
96
124
  /**
97
125
  * Parses a (possibly double-quoted) identifier.
98
- * For now, identifiers are just sequences of more than 1 letter.
126
+ * Identifiers are sequences of 1 or more letters.
99
127
  */
100
128
  declare type ParseIdentifier<Input extends string> = ReadLetters<Input> extends [
101
129
  infer Name,
102
130
  `${infer Remainder}`
103
131
  ] ? [Name, `${Remainder}`] : ReadQuotedLetters<Input> extends [infer Name, `${infer Remainder}`] ? [Name, `${Remainder}`] : ParserError<`No (possibly double-quoted) identifier at \`${Input}\``>;
104
132
  /**
105
- * Parses a node.
106
- * A node is one of the following:
107
- * - `*`
133
+ * Parses a field without preceding field renaming.
134
+ * A field is one of the following:
108
135
  * - `field`
136
+ * - `field::type`
109
137
  * - `field->json...`
110
138
  * - `field(nodes)`
111
139
  * - `field!hint(nodes)`
112
140
  * - `field!inner(nodes)`
113
141
  * - `field!hint!inner(nodes)`
114
- * - `renamed_field:field`
115
- * - `renamed_field:field->json...`
116
- * - `renamed_field:field(nodes)`
117
- * - `renamed_field:field!hint(nodes)`
118
- * - `renamed_field:field!inner(nodes)`
119
- * - `renamed_field:field!hint!inner(nodes)`
120
142
  *
121
- * TODO: casting operators `::text`, more support for JSON operators `->`, `->>`.
143
+ * TODO: support type casting of JSON operators `a->b::type`, `a->>b::type`.
122
144
  */
123
- declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'Empty string'> : Input extends `*${infer Remainder}` ? [{
124
- star: true;
125
- }, EatWhitespace<Remainder>] : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
145
+ declare type ParseField<Input extends string> = Input extends '' ? ParserError<'Empty string'> : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
126
146
  {
127
147
  name: Name;
128
148
  original: Name;
129
149
  children: Fields;
130
150
  },
131
151
  EatWhitespace<Remainder>
132
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : EatWhitespace<Remainder> extends `!${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
152
+ ] : CreateParserErrorIfRequired<ParseEmbeddedResource<EatWhitespace<Remainder>>, 'Expected embedded resource after `!inner`'> : EatWhitespace<Remainder> extends `!${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
133
153
  infer Fields,
134
154
  `${infer Remainder}`
135
155
  ] ? [
@@ -140,7 +160,7 @@ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'E
140
160
  children: Fields;
141
161
  },
142
162
  EatWhitespace<Remainder>
143
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
163
+ ] : CreateParserErrorIfRequired<ParseEmbeddedResource<EatWhitespace<Remainder>>, 'Expected embedded resource after `!inner`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
144
164
  infer Fields,
145
165
  `${infer Remainder}`
146
166
  ] ? [
@@ -151,65 +171,7 @@ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'E
151
171
  children: Fields;
152
172
  },
153
173
  EatWhitespace<Remainder>
154
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!hint`'> : ParserError<'Expected identifier after `!`'> : EatWhitespace<Remainder> extends `:${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer OriginalName, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
155
- infer Fields,
156
- `${infer Remainder}`
157
- ] ? [
158
- {
159
- name: Name;
160
- original: OriginalName;
161
- children: Fields;
162
- },
163
- EatWhitespace<Remainder>
164
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : EatWhitespace<Remainder> extends `!${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
165
- infer Fields,
166
- `${infer Remainder}`
167
- ] ? [
168
- {
169
- name: Name;
170
- original: OriginalName;
171
- hint: Hint;
172
- children: Fields;
173
- },
174
- EatWhitespace<Remainder>
175
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
176
- infer Fields,
177
- `${infer Remainder}`
178
- ] ? [
179
- {
180
- name: Name;
181
- original: OriginalName;
182
- hint: Hint;
183
- children: Fields;
184
- },
185
- EatWhitespace<Remainder>
186
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!hint`'> : ParserError<'Expected identifier after `!`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
187
- infer Fields,
188
- `${infer Remainder}`
189
- ] ? [
190
- {
191
- name: Name;
192
- original: OriginalName;
193
- children: Fields;
194
- },
195
- EatWhitespace<Remainder>
196
- ] : ParseJsonAccessor<EatWhitespace<Remainder>> extends [
197
- infer _PropertyName,
198
- infer PropertyType,
199
- `${infer Remainder}`
200
- ] ? [
201
- {
202
- name: Name;
203
- type: PropertyType;
204
- },
205
- EatWhitespace<Remainder>
206
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : [
207
- {
208
- name: Name;
209
- original: OriginalName;
210
- },
211
- EatWhitespace<Remainder>
212
- ] : ParseIdentifier<EatWhitespace<Remainder>> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
174
+ ] : CreateParserErrorIfRequired<ParseEmbeddedResource<EatWhitespace<Remainder>>, 'Expected embedded resource after `!hint`'> : ParserError<'Expected identifier after `!`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
213
175
  {
214
176
  name: Name;
215
177
  original: Name;
@@ -223,16 +185,39 @@ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'E
223
185
  ] ? [
224
186
  {
225
187
  name: PropertyName;
188
+ original: PropertyName;
226
189
  type: PropertyType;
227
190
  },
228
191
  EatWhitespace<Remainder>
229
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : [
192
+ ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : EatWhitespace<Remainder> extends `::${infer Remainder}` ? ParseIdentifier<Remainder> extends [`${infer CastType}`, `${infer Remainder}`] ? CastType extends PostgreSQLTypes ? [{
193
+ name: Name;
194
+ type: TypeScriptTypes<CastType>;
195
+ }, EatWhitespace<Remainder>] : ParserError<`Invalid type for \`::\` operator \`${CastType}\``> : ParserError<`Invalid type for \`::\` operator at \`${Remainder}\``> : [
230
196
  {
231
197
  name: Name;
232
198
  original: Name;
233
199
  },
234
200
  EatWhitespace<Remainder>
235
201
  ] : ParserError<`Expected identifier at \`${Input}\``>;
202
+ /**
203
+ * Parses a node.
204
+ * A node is one of the following:
205
+ * - `*`
206
+ * - a field, as defined above
207
+ * - a renamed field, `renamed_field:field`
208
+ * - a spread field, `...field`
209
+ */
210
+ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'Empty string'> : Input extends `*${infer Remainder}` ? [{
211
+ star: true;
212
+ }, EatWhitespace<Remainder>] : Input extends `...${infer Remainder}` ? ParseField<EatWhitespace<Remainder>> extends [infer Field, `${infer Remainder}`] ? Field extends {
213
+ children: unknown[];
214
+ } ? [Prettify<{
215
+ spread: true;
216
+ } & Field>, EatWhitespace<Remainder>] : ParserError<'Unable to parse spread resource'> : ParserError<'Unable to parse spread resource'> : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `::${infer _Remainder}` ? ParseField<Input> : EatWhitespace<Remainder> extends `:${infer Remainder}` ? ParseField<EatWhitespace<Remainder>> extends [infer Field, `${infer Remainder}`] ? Field extends {
217
+ name: string;
218
+ } ? [Prettify<Omit<Field, 'name'> & {
219
+ name: Name;
220
+ }>, EatWhitespace<Remainder>] : ParserError<`Unable to parse renamed field`> : ParserError<`Unable to parse renamed field`> : ParseField<Input> : ParserError<`Expected identifier at \`${Input}\``>;
236
221
  /**
237
222
  * Parses a JSON property accessor of the shape `->a->b->c`. The last accessor in
238
223
  * the series may convert to text by using the ->> operator instead of ->.
@@ -247,12 +232,12 @@ declare type ParseJsonAccessor<Input extends string> = Input extends `->${infer
247
232
  ] ? [PropertyName, PropertyType, EatWhitespace<Remainder>] : [Name, Json, EatWhitespace<Remainder>] : ParserError<'Expected property name after `->`'> : Input;
248
233
  /**
249
234
  * Parses an embedded resource, which is an opening `(`, followed by a sequence of
250
- * nodes, separated by `,`, then a closing `)`.
235
+ * 0 or more nodes separated by `,`, then a closing `)`.
251
236
  *
252
237
  * Returns a tuple of ["Parsed fields", "Remainder of text"], an error,
253
238
  * or the original string input indicating that no opening `(` was found.
254
239
  */
255
- declare type ParseEmbeddedResource<Input extends string> = Input extends `(${infer Remainder}` ? ParseNodes<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `)${infer Remainder}` ? Fields extends [] ? ParserError<'Expected fields after `(`'> : [Fields, EatWhitespace<Remainder>] : ParserError<`Expected ")"`> : ParseNodes<EatWhitespace<Remainder>> : Input;
240
+ declare type ParseEmbeddedResource<Input extends string> = Input extends `(${infer Remainder}` ? ParseNodes<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `)${infer Remainder}` ? [Fields, EatWhitespace<Remainder>] : ParserError<`Expected ")"`> : ParseNodes<EatWhitespace<Remainder>> extends ParserError<string> ? EatWhitespace<Remainder> extends `)${infer Remainder}` ? [[], EatWhitespace<Remainder>] : ParseNodes<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource fields or `)`'> : Input;
256
241
  /**
257
242
  * Parses a sequence of nodes, separated by `,`.
258
243
  *
@@ -276,7 +261,9 @@ declare type GetResultHelper<Schema extends GenericSchema, Row extends Record<st
276
261
  /**
277
262
  * Constructs a type definition for an object based on a given PostgREST query.
278
263
  *
279
- * @param Row Record<string, unknown>.
264
+ * @param Schema Database schema.
265
+ * @param Row Type of a row in the given table.
266
+ * @param Relationships Relationships between different tables in the database.
280
267
  * @param Query Select query string literal to parse.
281
268
  */
282
269
  export declare type GetResult<Schema extends GenericSchema, Row extends Record<string, unknown>, RelationName, Relationships, Query extends string> = ParseQuery<Query> extends unknown[] ? GetResultHelper<Schema, Row, RelationName, Relationships, ParseQuery<Query>, unknown> : ParseQuery<Query>;
@@ -1 +1 @@
1
- {"version":3,"file":"select-query-parser.d.ts","sourceRoot":"","sources":["../../src/select-query-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEjD,aAAK,UAAU,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAEnC,aAAK,aAAa,GACd,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAA;AAEP,aAAK,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;AAExD,aAAK,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAEtE,aAAK,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAA;AAEpC,aAAK,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,EAAE,CAAA;AAE/E;;GAEG;AACH,aAAK,WAAW,CAAC,OAAO,SAAS,MAAM,IAAI;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAAA;AACpE,aAAK,kBAAkB,GAAG,WAAW,CAAC,2BAA2B,CAAC,CAAA;AAClE,oBAAY,gBAAgB,CAAC,OAAO,SAAS,MAAM,IAAI;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAAA;AAEhF;;GAEG;AACH,aAAK,aAAa,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GAC3D,kBAAkB,GAClB,KAAK,SAAS,GAAG,UAAU,GAAG,MAAM,SAAS,EAAE,GAC/C,aAAa,CAAC,SAAS,CAAC,GACxB,KAAK,CAAA;AAET,aAAK,OAAO,CAAC,QAAQ,EAAE,aAAa,IAAI,aAAa,SAAS,CAAC,MAAM,CAAC,CAAC,GACnE,CAAC,SAAS;IAAE,cAAc,EAAE,QAAQ,CAAA;CAAE,GACpC,IAAI,GACJ,KAAK,GACP,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,IAAI,GACJ,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GACzB,KAAK,CAAA;AAET,aAAK,aAAa,CAAC,QAAQ,EAAE,aAAa,IAAI,aAAa,SAAS,CAAC,MAAM,CAAC,CAAC,GACzE,CAAC,SAAS;IAAE,cAAc,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GACtD,IAAI,GACJ,KAAK,GACP,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9C,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACvC,IAAI,GACJ,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC/B,KAAK,CAAA;AAET,aAAK,aAAa,CAAC,QAAQ,EAAE,aAAa,IAAI,aAAa,SAAS,CAAC,MAAM,CAAC,CAAC,GACzE,CAAC,SAAS;IAAE,kBAAkB,EAAE,QAAQ,CAAA;CAAE,GACxC,IAAI,GACJ,KAAK,GACP,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9C,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACvC,IAAI,GACJ,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC/B,KAAK,CAAA;AAET,aAAK,mBAAmB,CAAC,QAAQ,EAAE,aAAa,IAAI,aAAa,SAAS,CAAC,MAAM,CAAC,CAAC,GAC/E,CAAC,SAAS;IAAE,kBAAkB,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GAC1D,IAAI,GACJ,KAAK,GACP,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9C,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7C,IAAI,GACJ,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,GACrC,KAAK,CAAA;AAET;;;;;;GAMG;AACH,aAAK,wBAAwB,CAC3B,MAAM,SAAS,aAAa,EAC5B,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,YAAY,EACZ,aAAa,EACb,KAAK,IACH,KAAK,SAAS;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAC5B,GAAG,GACH,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,GACnF;KACG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,eAAe,CACnC,MAAM,EACN,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAC9D,KAAK,CAAC,UAAU,CAAC,EACjB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS;QAAE,aAAa,EAAE,MAAM,CAAC,CAAA;KAAE,GACtF,CAAC,GACD,OAAO,EACX,KAAK,CAAC,UAAU,CAAC,EACjB,OAAO,CACR,SAAS,MAAM,KAAK,GAEjB,aAAa,CACX,KAAK,CAAC,MAAM,CAAC,EACb,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS;QAC9D,aAAa,EAAE,MAAM,CAAC,CAAA;KACvB,GACG,CAAC,GACD,OAAO,CACZ,SAAS,IAAI,GACZ,KAAK,GAAG,IAAI,GACZ,aAAa,SAAS,OAAO,EAAE,GAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,SAAS,IAAI,GAChD,KAAK,GAAG,IAAI,GACZ,KAAK,EAAE,GACT,KAAK,EAAE,GACT,KAAK;CACV,GACD,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,GACrE;KACG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,eAAe,CACnC,MAAM,EACN,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAC9D,KAAK,CAAC,UAAU,CAAC,EACjB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS;QAAE,aAAa,EAAE,MAAM,CAAC,CAAA;KAAE,GACtF,CAAC,GACD,OAAO,EACX,KAAK,CAAC,UAAU,CAAC,EACjB,OAAO,CACR,SAAS,MAAM,KAAK,GAEjB,mBAAmB,CACjB,YAAY,EACZ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS;QAC9D,aAAa,EAAE,MAAM,CAAC,CAAA;KACvB,GACG,CAAC,GACD,OAAO,CACZ,SAAS,IAAI,GACZ,KAAK,GAAG,IAAI,GACZ,aAAa,SAAS,OAAO,EAAE,GAC/B,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,IAAI,GAC1D,KAAK,GAAG,IAAI,GACZ,KAAK,EAAE,GACT,KAAK,EAAE,GACT,KAAK;CACV,GACD,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChD,KAAK,CAAC,UAAU,CAAC,SAAS,MAAM,GAAG,GACjC;KAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAAE,GAChD,gBAAgB,CAAC,gCAAgC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GACzE,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GAC7C;KAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;CAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE3B;;;;GAIG;AAEH;;;GAGG;AACH,aAAK,WAAW,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GACzD,kBAAkB,GAClB,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,OAAO,EAAE,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAC/E,OAAO,SAAS,EAAE,GAChB,WAAW,CAAC,wBAAwB,KAAK,IAAI,CAAC,GAC9C,CAAC,OAAO,EAAE,SAAS,CAAC,GACtB,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAEhC,aAAK,iBAAiB,CAAC,KAAK,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GACnF,kBAAkB,GAClB,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,GAC5C,CAAC,SAAS,MAAM,GACd,iBAAiB,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAC1C,CAAC,GAAG,EAAE,KAAK,CAAC,GACd,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAEb;;;GAGG;AACH,aAAK,iBAAiB,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GAC/D,kBAAkB,GAClB,KAAK,SAAS,IAAI,MAAM,SAAS,EAAE,GACnC,uBAAuB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,OAAO,EAAE,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GACvF,OAAO,SAAS,EAAE,GAChB,WAAW,CAAC,wBAAwB,SAAS,IAAI,CAAC,GAClD,CAAC,OAAO,EAAE,SAAS,CAAC,GACtB,uBAAuB,CAAC,SAAS,EAAE,EAAE,CAAC,GACxC,WAAW,CAAC,mCAAmC,KAAK,IAAI,CAAC,CAAA;AAE7D,aAAK,uBAAuB,CAAC,KAAK,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GACzF,kBAAkB,GAClB,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,GAC5C,CAAC,SAAS,GAAG,GACX,CAAC,GAAG,EAAE,SAAS,CAAC,GAChB,uBAAuB,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAClD,WAAW,CAAC,sCAAsC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;AAEtE;;;GAGG;AACH,aAAK,eAAe,CAAC,KAAK,SAAS,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS;IACtE,MAAM,IAAI;IACV,GAAG,MAAM,SAAS,EAAE;CACrB,GACG,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,GACtB,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GACnE,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,GACtB,WAAW,CAAC,+CAA+C,KAAK,IAAI,CAAC,CAAA;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,aAAK,SAAS,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,SAAS,EAAE,GACnD,WAAW,CAAC,cAAc,CAAC,GAE7B,KAAK,SAAS,IAAI,MAAM,SAAS,EAAE,GACjC,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAC1C,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GACjE,aAAa,CAAC,SAAS,CAAC,SAAS,SAAS,MAAM,SAAS,EAAE,GACzD,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAE1F;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GAC5E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAC/C,WAAW,CAAC,2CAA2C,CAAC,GAC1D,aAAa,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,SAAS,EAAE,GACtD,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAClF,aAAa,CAAC,SAAS,CAAC,SAAS,SAAS,MAAM,SAAS,EAAE,GACzD,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IACtD,MAAM,MAAM;IACZ,GAAG,MAAM,SAAS,EAAE;CACrB,GAEC;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GACxF,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAC/C,WAAW,CAAC,2CAA2C,CAAC,GAC1D,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IACtD,MAAM,MAAM;IACZ,GAAG,MAAM,SAAS,EAAE;CACrB,GAED;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GACxF,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAC/C,WAAW,CAAC,0CAA0C,CAAC,GACzD,WAAW,CAAC,+BAA+B,CAAC,GAC9C,aAAa,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,SAAS,EAAE,GACtD,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,YAAY,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAC1F,aAAa,CAAC,SAAS,CAAC,SAAS,SAAS,MAAM,SAAS,EAAE,GACzD,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IACtD,MAAM,MAAM;IACZ,GAAG,MAAM,SAAS,EAAE;CACrB,GAEC;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GACpF,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAC/C,WAAW,CAAC,2CAA2C,CAAC,GAC1D,aAAa,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,SAAS,EAAE,GACtD,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAClF,aAAa,CAAC,SAAS,CAAC,SAAS,SAAS,MAAM,SAAS,EAAE,GACzD,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IACtD,MAAM,MAAM;IACZ,GAAG,MAAM,SAAS,EAAE;CACrB,GAEC;IACE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IACpE,aAAa,CAAC,SAAS,CAAC;CACzB,GACD,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAC/C,WAAW,CAAC,2CAA2C,CAAC,GAC1D,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IACtD,MAAM,MAAM;IACZ,GAAG,MAAM,SAAS,EAAE;CACrB,GAED;IACE;QACE,IAAI,EAAE,IAAI,CAAA;QACV,QAAQ,EAAE,YAAY,CAAA;QACtB,IAAI,EAAE,IAAI,CAAA;QACV,QAAQ,EAAE,MAAM,CAAA;KACjB;IACD,aAAa,CAAC,SAAS,CAAC;CACzB,GACD,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAC/C,WAAW,CAAC,0CAA0C,CAAC,GACzD,WAAW,CAAC,+BAA+B,CAAC,GAC9C,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IACtD,MAAM,MAAM;IACZ,GAAG,MAAM,SAAS,EAAE;CACrB,GAED;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GACpF,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IAClD,MAAM,aAAa;IACnB,MAAM,YAAY;IAClB,GAAG,MAAM,SAAS,EAAE;CACrB,GAED;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GAC9D,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAE/C;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GACpE,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAC3C,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAE5F;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GAC5E,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;IAClD,MAAM,YAAY;IAClB,MAAM,YAAY;IAClB,GAAG,MAAM,SAAS,EAAE;CACrB,GAED;IAAC;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GACtE,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,GAC3E,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAE/C;IAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;IAAE,aAAa,CAAC,SAAS,CAAC;CAAC,GAC5D,WAAW,CAAC,4BAA4B,KAAK,IAAI,CAAC,CAAA;AAEtD;;;;;;GAMG;AACH,aAAK,iBAAiB,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,SAAS,KAAK,MAAM,SAAS,EAAE,GAC/E,SAAS,SAAS,IAAI,MAAM,SAAS,EAAE,GACrC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GACnE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GACxC,WAAW,CAAC,oCAAoC,CAAC,GACnD,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GACrE,iBAAiB,CAAC,SAAS,CAAC,SAAS;IACnC,MAAM,YAAY;IAClB,MAAM,YAAY;IAClB,GAAG,MAAM,SAAS,EAAE;CACrB,GACC,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GACtD,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GACxC,WAAW,CAAC,mCAAmC,CAAC,GAClD,KAAK,CAAA;AAET;;;;;;GAMG;AACH,aAAK,qBAAqB,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,SAAS,IAAI,MAAM,SAAS,EAAE,GAClF,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAC/E,aAAa,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,SAAS,EAAE,GACpD,MAAM,SAAS,EAAE,GACf,WAAW,CAAC,2BAA2B,CAAC,GACxC,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GACpC,WAAW,CAAC,cAAc,CAAC,GAC7B,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GACtC,KAAK,CAAA;AAET;;;;GAIG;AACH,aAAK,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GACxD,kBAAkB,GAClB,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAE/B,aAAK,gBAAgB,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,SAAS,OAAO,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS;IAC/F,MAAM,KAAK;IACX,GAAG,MAAM,SAAS,EAAE;CACrB,GACG,aAAa,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,SAAS,EAAE,GACpD,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,GAC9D,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAChD,SAAS,CAAC,KAAK,CAAC,CAAA;AAEpB;;;;;;GAMG;AACH,aAAK,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GACxD,kBAAkB,GAClB,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC,GAC7E,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,GACjC,MAAM,GACN,WAAW,CAAC,qBAAqB,SAAS,EAAE,CAAC,GAC/C,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AAEpC,aAAK,eAAe,CAClB,MAAM,SAAS,aAAa,EAC5B,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,YAAY,EACZ,aAAa,EACb,MAAM,SAAS,OAAO,EAAE,EACxB,GAAG,IACD,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,GACxB,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,SAAS,gBAAgB,CAC5F,MAAM,CAAC,CACR,GACC,gBAAgB,CAAC,CAAC,CAAC,GACnB,eAAe,CACb,MAAM,EACN,GAAG,EACH,YAAY,EACZ,aAAa,EACb;CAAE,EACF,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,CAC5E,GACH,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GACvC,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,SAAS,gBAAgB,CAC5F,MAAM,CAAC,CACR,GACC,gBAAgB,CAAC,CAAC,CAAC,GACnB,eAAe,CACb,MAAM,EACN,GAAG,EACH,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,GAAG,CAC5E,GACH,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEjB;;;;;GAKG;AACH,oBAAY,SAAS,CACnB,MAAM,SAAS,aAAa,EAC5B,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,YAAY,EACZ,aAAa,EACb,KAAK,SAAS,MAAM,IAClB,UAAU,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE,GACnC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GACrF,UAAU,CAAC,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"select-query-parser.d.ts","sourceRoot":"","sources":["../../src/select-query-parser.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.10.0";
1
+ export declare const version = "1.12.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '1.10.0';
4
+ exports.version = '1.12.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -7,6 +7,12 @@ declare type Letter = Alphabet | Digit | '_';
7
7
  declare type Json = string | number | boolean | null | {
8
8
  [key: string]: Json;
9
9
  } | Json[];
10
+ declare type SingleValuePostgreSQLTypes = 'bool' | 'int2' | 'int4' | 'int8' | 'float4' | 'float8' | 'numeric' | 'bytea' | 'bpchar' | 'varchar' | 'date' | 'text' | 'citext' | 'time' | 'timetz' | 'timestamp' | 'timestamptz' | 'uuid' | 'vector' | 'json' | 'jsonb' | 'void' | 'record' | string;
11
+ declare type ArrayPostgreSQLTypes = `_${SingleValuePostgreSQLTypes}`;
12
+ declare type PostgreSQLTypes = SingleValuePostgreSQLTypes | ArrayPostgreSQLTypes;
13
+ declare type TypeScriptSingleValueTypes<T extends SingleValuePostgreSQLTypes> = T extends 'bool' ? boolean : T extends 'int2' | 'int4' | 'int8' | 'float4' | 'float8' | 'numeric' ? number : T extends 'bytea' | 'bpchar' | 'varchar' | 'date' | 'text' | 'citext' | 'time' | 'timetz' | 'timestamp' | 'timestamptz' | 'uuid' | 'vector' ? string : T extends 'json' | 'jsonb' ? Json : T extends 'void' ? undefined : T extends 'record' ? Record<string, unknown> : unknown;
14
+ declare type StripUnderscore<T extends string> = T extends `_${infer U}` ? U : T;
15
+ declare type TypeScriptTypes<T extends PostgreSQLTypes> = T extends ArrayPostgreSQLTypes ? TypeScriptSingleValueTypes<StripUnderscore<Extract<T, SingleValuePostgreSQLTypes>>>[] : TypeScriptSingleValueTypes<T>;
10
16
  /**
11
17
  * Parser errors.
12
18
  */
@@ -17,17 +23,31 @@ declare type GenericStringError = ParserError<'Received a generic string'>;
17
23
  export declare type SelectQueryError<Message extends string> = {
18
24
  error: true;
19
25
  } & Message;
26
+ /**
27
+ * Creates a new {@link ParserError} if the given input is not already a parser error.
28
+ */
29
+ declare type CreateParserErrorIfRequired<Input, Message extends string> = Input extends ParserError<string> ? Input : ParserError<Message>;
20
30
  /**
21
31
  * Trims whitespace from the left of the input.
22
32
  */
23
33
  declare type EatWhitespace<Input extends string> = string extends Input ? GenericStringError : Input extends `${Whitespace}${infer Remainder}` ? EatWhitespace<Remainder> : Input;
34
+ /**
35
+ * Returns a boolean representing whether there is a foreign key with the given name.
36
+ */
24
37
  declare type HasFKey<FKeyName, Relationships> = Relationships extends [infer R] ? R extends {
25
38
  foreignKeyName: FKeyName;
26
39
  } ? true : false : Relationships extends [infer R, ...infer Rest] ? HasFKey<FKeyName, [R]> extends true ? true : HasFKey<FKeyName, Rest> : false;
40
+ /**
41
+ * Returns a boolean representing whether there the foreign key has a unique constraint.
42
+ */
27
43
  declare type HasUniqueFKey<FKeyName, Relationships> = Relationships extends [infer R] ? R extends {
28
44
  foreignKeyName: FKeyName;
29
45
  isOneToOne: true;
30
46
  } ? true : false : Relationships extends [infer R, ...infer Rest] ? HasUniqueFKey<FKeyName, [R]> extends true ? true : HasUniqueFKey<FKeyName, Rest> : false;
47
+ /**
48
+ * Returns a boolean representing whether there is a foreign key referencing
49
+ * a given relation.
50
+ */
31
51
  declare type HasFKeyToFRel<FRelName, Relationships> = Relationships extends [infer R] ? R extends {
32
52
  referencedRelation: FRelName;
33
53
  } ? true : false : Relationships extends [infer R, ...infer Rest] ? HasFKeyToFRel<FRelName, [R]> extends true ? true : HasFKeyToFRel<FRelName, Rest> : false;
@@ -38,13 +58,22 @@ declare type HasUniqueFKeyToFRel<FRelName, Relationships> = Relationships extend
38
58
  /**
39
59
  * Constructs a type definition for a single field of an object.
40
60
  *
41
- * @param Definitions Record of definitions, possibly generated from PostgREST's OpenAPI spec.
42
- * @param Name Name of the table being queried.
61
+ * @param Schema Database schema.
62
+ * @param Row Type of a row in the given table.
63
+ * @param Relationships Relationships between different tables in the database.
43
64
  * @param Field Single field parsed by `ParseQuery`.
44
65
  */
45
66
  declare type ConstructFieldDefinition<Schema extends GenericSchema, Row extends Record<string, unknown>, RelationName, Relationships, Field> = Field extends {
46
67
  star: true;
47
68
  } ? Row : Field extends {
69
+ spread: true;
70
+ original: string;
71
+ children: unknown[];
72
+ } ? GetResultHelper<Schema, (Schema['Tables'] & Schema['Views'])[Field['original']]['Row'], Field['original'], (Schema['Tables'] & Schema['Views'])[Field['original']] extends {
73
+ Relationships: infer R;
74
+ } ? R : unknown, Field['children'], unknown> : Field extends {
75
+ children: [];
76
+ } ? {} : Field extends {
48
77
  name: string;
49
78
  original: string;
50
79
  hint: string;
@@ -66,70 +95,61 @@ declare type ConstructFieldDefinition<Schema extends GenericSchema, Row extends
66
95
  Relationships: infer R;
67
96
  } ? R : unknown> extends true ? Child | null : Relationships extends unknown[] ? HasFKeyToFRel<Field['original'], Relationships> extends true ? Child | null : Child[] : Child[] : never;
68
97
  } : Field extends {
69
- name: string;
70
- original: string;
71
- } ? Field['original'] extends keyof Row ? {
72
- [K in Field['name']]: Row[Field['original']];
73
- } : SelectQueryError<`Referencing missing column \`${Field['original']}\``> : Field extends {
74
98
  name: string;
75
99
  type: infer T;
76
100
  } ? {
77
101
  [K in Field['name']]: T;
78
- } : Record<string, unknown>;
102
+ } : Field extends {
103
+ name: string;
104
+ original: string;
105
+ } ? Field['original'] extends keyof Row ? {
106
+ [K in Field['name']]: Row[Field['original']];
107
+ } : SelectQueryError<`Referencing missing column \`${Field['original']}\``> : Record<string, unknown>;
79
108
  /**
80
109
  * Notes: all `Parse*` types assume that their input strings have their whitespace
81
110
  * removed. They return tuples of ["Return Value", "Remainder of text"] or
82
111
  * a `ParserError`.
83
112
  */
84
113
  /**
85
- * Reads a consecutive sequence of more than 1 letter,
86
- * where letters are `[0-9a-zA-Z_]`.
114
+ * Reads a consecutive sequence of 1 or more letter, where letters are `[0-9a-zA-Z_]`.
87
115
  */
88
116
  declare type ReadLetters<Input extends string> = string extends Input ? GenericStringError : ReadLettersHelper<Input, ''> extends [`${infer Letters}`, `${infer Remainder}`] ? Letters extends '' ? ParserError<`Expected letter at \`${Input}\``> : [Letters, Remainder] : ReadLettersHelper<Input, ''>;
89
117
  declare type ReadLettersHelper<Input extends string, Acc extends string> = string extends Input ? GenericStringError : Input extends `${infer L}${infer Remainder}` ? L extends Letter ? ReadLettersHelper<Remainder, `${Acc}${L}`> : [Acc, Input] : [Acc, ''];
90
118
  /**
91
- * Reads a consecutive sequence of more than 1 double-quoted letters,
119
+ * Reads a consecutive sequence of 1 or more double-quoted letters,
92
120
  * where letters are `[^"]`.
93
121
  */
94
122
  declare type ReadQuotedLetters<Input extends string> = string extends Input ? GenericStringError : Input extends `"${infer Remainder}` ? ReadQuotedLettersHelper<Remainder, ''> extends [`${infer Letters}`, `${infer Remainder}`] ? Letters extends '' ? ParserError<`Expected string at \`${Remainder}\``> : [Letters, Remainder] : ReadQuotedLettersHelper<Remainder, ''> : ParserError<`Not a double-quoted string at \`${Input}\``>;
95
123
  declare type ReadQuotedLettersHelper<Input extends string, Acc extends string> = string extends Input ? GenericStringError : Input extends `${infer L}${infer Remainder}` ? L extends '"' ? [Acc, Remainder] : ReadQuotedLettersHelper<Remainder, `${Acc}${L}`> : ParserError<`Missing closing double-quote in \`"${Acc}${Input}\``>;
96
124
  /**
97
125
  * Parses a (possibly double-quoted) identifier.
98
- * For now, identifiers are just sequences of more than 1 letter.
126
+ * Identifiers are sequences of 1 or more letters.
99
127
  */
100
128
  declare type ParseIdentifier<Input extends string> = ReadLetters<Input> extends [
101
129
  infer Name,
102
130
  `${infer Remainder}`
103
131
  ] ? [Name, `${Remainder}`] : ReadQuotedLetters<Input> extends [infer Name, `${infer Remainder}`] ? [Name, `${Remainder}`] : ParserError<`No (possibly double-quoted) identifier at \`${Input}\``>;
104
132
  /**
105
- * Parses a node.
106
- * A node is one of the following:
107
- * - `*`
133
+ * Parses a field without preceding field renaming.
134
+ * A field is one of the following:
108
135
  * - `field`
136
+ * - `field::type`
109
137
  * - `field->json...`
110
138
  * - `field(nodes)`
111
139
  * - `field!hint(nodes)`
112
140
  * - `field!inner(nodes)`
113
141
  * - `field!hint!inner(nodes)`
114
- * - `renamed_field:field`
115
- * - `renamed_field:field->json...`
116
- * - `renamed_field:field(nodes)`
117
- * - `renamed_field:field!hint(nodes)`
118
- * - `renamed_field:field!inner(nodes)`
119
- * - `renamed_field:field!hint!inner(nodes)`
120
142
  *
121
- * TODO: casting operators `::text`, more support for JSON operators `->`, `->>`.
143
+ * TODO: support type casting of JSON operators `a->b::type`, `a->>b::type`.
122
144
  */
123
- declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'Empty string'> : Input extends `*${infer Remainder}` ? [{
124
- star: true;
125
- }, EatWhitespace<Remainder>] : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
145
+ declare type ParseField<Input extends string> = Input extends '' ? ParserError<'Empty string'> : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
126
146
  {
127
147
  name: Name;
128
148
  original: Name;
129
149
  children: Fields;
130
150
  },
131
151
  EatWhitespace<Remainder>
132
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : EatWhitespace<Remainder> extends `!${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
152
+ ] : CreateParserErrorIfRequired<ParseEmbeddedResource<EatWhitespace<Remainder>>, 'Expected embedded resource after `!inner`'> : EatWhitespace<Remainder> extends `!${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
133
153
  infer Fields,
134
154
  `${infer Remainder}`
135
155
  ] ? [
@@ -140,7 +160,7 @@ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'E
140
160
  children: Fields;
141
161
  },
142
162
  EatWhitespace<Remainder>
143
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
163
+ ] : CreateParserErrorIfRequired<ParseEmbeddedResource<EatWhitespace<Remainder>>, 'Expected embedded resource after `!inner`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
144
164
  infer Fields,
145
165
  `${infer Remainder}`
146
166
  ] ? [
@@ -151,65 +171,7 @@ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'E
151
171
  children: Fields;
152
172
  },
153
173
  EatWhitespace<Remainder>
154
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!hint`'> : ParserError<'Expected identifier after `!`'> : EatWhitespace<Remainder> extends `:${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer OriginalName, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
155
- infer Fields,
156
- `${infer Remainder}`
157
- ] ? [
158
- {
159
- name: Name;
160
- original: OriginalName;
161
- children: Fields;
162
- },
163
- EatWhitespace<Remainder>
164
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : EatWhitespace<Remainder> extends `!${infer Remainder}` ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `!inner${infer Remainder}` ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
165
- infer Fields,
166
- `${infer Remainder}`
167
- ] ? [
168
- {
169
- name: Name;
170
- original: OriginalName;
171
- hint: Hint;
172
- children: Fields;
173
- },
174
- EatWhitespace<Remainder>
175
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!inner`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
176
- infer Fields,
177
- `${infer Remainder}`
178
- ] ? [
179
- {
180
- name: Name;
181
- original: OriginalName;
182
- hint: Hint;
183
- children: Fields;
184
- },
185
- EatWhitespace<Remainder>
186
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource after `!hint`'> : ParserError<'Expected identifier after `!`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
187
- infer Fields,
188
- `${infer Remainder}`
189
- ] ? [
190
- {
191
- name: Name;
192
- original: OriginalName;
193
- children: Fields;
194
- },
195
- EatWhitespace<Remainder>
196
- ] : ParseJsonAccessor<EatWhitespace<Remainder>> extends [
197
- infer _PropertyName,
198
- infer PropertyType,
199
- `${infer Remainder}`
200
- ] ? [
201
- {
202
- name: Name;
203
- type: PropertyType;
204
- },
205
- EatWhitespace<Remainder>
206
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : [
207
- {
208
- name: Name;
209
- original: OriginalName;
210
- },
211
- EatWhitespace<Remainder>
212
- ] : ParseIdentifier<EatWhitespace<Remainder>> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
174
+ ] : CreateParserErrorIfRequired<ParseEmbeddedResource<EatWhitespace<Remainder>>, 'Expected embedded resource after `!hint`'> : ParserError<'Expected identifier after `!`'> : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? [
213
175
  {
214
176
  name: Name;
215
177
  original: Name;
@@ -223,16 +185,39 @@ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'E
223
185
  ] ? [
224
186
  {
225
187
  name: PropertyName;
188
+ original: PropertyName;
226
189
  type: PropertyType;
227
190
  },
228
191
  EatWhitespace<Remainder>
229
- ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : [
192
+ ] : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string> ? ParseEmbeddedResource<EatWhitespace<Remainder>> : EatWhitespace<Remainder> extends `::${infer Remainder}` ? ParseIdentifier<Remainder> extends [`${infer CastType}`, `${infer Remainder}`] ? CastType extends PostgreSQLTypes ? [{
193
+ name: Name;
194
+ type: TypeScriptTypes<CastType>;
195
+ }, EatWhitespace<Remainder>] : ParserError<`Invalid type for \`::\` operator \`${CastType}\``> : ParserError<`Invalid type for \`::\` operator at \`${Remainder}\``> : [
230
196
  {
231
197
  name: Name;
232
198
  original: Name;
233
199
  },
234
200
  EatWhitespace<Remainder>
235
201
  ] : ParserError<`Expected identifier at \`${Input}\``>;
202
+ /**
203
+ * Parses a node.
204
+ * A node is one of the following:
205
+ * - `*`
206
+ * - a field, as defined above
207
+ * - a renamed field, `renamed_field:field`
208
+ * - a spread field, `...field`
209
+ */
210
+ declare type ParseNode<Input extends string> = Input extends '' ? ParserError<'Empty string'> : Input extends `*${infer Remainder}` ? [{
211
+ star: true;
212
+ }, EatWhitespace<Remainder>] : Input extends `...${infer Remainder}` ? ParseField<EatWhitespace<Remainder>> extends [infer Field, `${infer Remainder}`] ? Field extends {
213
+ children: unknown[];
214
+ } ? [Prettify<{
215
+ spread: true;
216
+ } & Field>, EatWhitespace<Remainder>] : ParserError<'Unable to parse spread resource'> : ParserError<'Unable to parse spread resource'> : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `::${infer _Remainder}` ? ParseField<Input> : EatWhitespace<Remainder> extends `:${infer Remainder}` ? ParseField<EatWhitespace<Remainder>> extends [infer Field, `${infer Remainder}`] ? Field extends {
217
+ name: string;
218
+ } ? [Prettify<Omit<Field, 'name'> & {
219
+ name: Name;
220
+ }>, EatWhitespace<Remainder>] : ParserError<`Unable to parse renamed field`> : ParserError<`Unable to parse renamed field`> : ParseField<Input> : ParserError<`Expected identifier at \`${Input}\``>;
236
221
  /**
237
222
  * Parses a JSON property accessor of the shape `->a->b->c`. The last accessor in
238
223
  * the series may convert to text by using the ->> operator instead of ->.
@@ -247,12 +232,12 @@ declare type ParseJsonAccessor<Input extends string> = Input extends `->${infer
247
232
  ] ? [PropertyName, PropertyType, EatWhitespace<Remainder>] : [Name, Json, EatWhitespace<Remainder>] : ParserError<'Expected property name after `->`'> : Input;
248
233
  /**
249
234
  * Parses an embedded resource, which is an opening `(`, followed by a sequence of
250
- * nodes, separated by `,`, then a closing `)`.
235
+ * 0 or more nodes separated by `,`, then a closing `)`.
251
236
  *
252
237
  * Returns a tuple of ["Parsed fields", "Remainder of text"], an error,
253
238
  * or the original string input indicating that no opening `(` was found.
254
239
  */
255
- declare type ParseEmbeddedResource<Input extends string> = Input extends `(${infer Remainder}` ? ParseNodes<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `)${infer Remainder}` ? Fields extends [] ? ParserError<'Expected fields after `(`'> : [Fields, EatWhitespace<Remainder>] : ParserError<`Expected ")"`> : ParseNodes<EatWhitespace<Remainder>> : Input;
240
+ declare type ParseEmbeddedResource<Input extends string> = Input extends `(${infer Remainder}` ? ParseNodes<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`] ? EatWhitespace<Remainder> extends `)${infer Remainder}` ? [Fields, EatWhitespace<Remainder>] : ParserError<`Expected ")"`> : ParseNodes<EatWhitespace<Remainder>> extends ParserError<string> ? EatWhitespace<Remainder> extends `)${infer Remainder}` ? [[], EatWhitespace<Remainder>] : ParseNodes<EatWhitespace<Remainder>> : ParserError<'Expected embedded resource fields or `)`'> : Input;
256
241
  /**
257
242
  * Parses a sequence of nodes, separated by `,`.
258
243
  *
@@ -276,7 +261,9 @@ declare type GetResultHelper<Schema extends GenericSchema, Row extends Record<st
276
261
  /**
277
262
  * Constructs a type definition for an object based on a given PostgREST query.
278
263
  *
279
- * @param Row Record<string, unknown>.
264
+ * @param Schema Database schema.
265
+ * @param Row Type of a row in the given table.
266
+ * @param Relationships Relationships between different tables in the database.
280
267
  * @param Query Select query string literal to parse.
281
268
  */
282
269
  export declare type GetResult<Schema extends GenericSchema, Row extends Record<string, unknown>, RelationName, Relationships, Query extends string> = ParseQuery<Query> extends unknown[] ? GetResultHelper<Schema, Row, RelationName, Relationships, ParseQuery<Query>, unknown> : ParseQuery<Query>;
@@ -1 +1 @@
1
- {"version":3,"file":"select-query-parser.d.ts","sourceRoot":"","sources":["../../src/select-query-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-query-parser.d.ts","sourceRoot":"","sources":["../../src/select-query-parser.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.10.0";
1
+ export declare const version = "1.12.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const version = '1.10.0';
1
+ export const version = '1.12.0';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/postgrest-js",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "description": "Isomorphic PostgREST client",
5
5
  "keywords": [
6
6
  "postgrest",
@@ -40,6 +40,68 @@ type Letter = Alphabet | Digit | '_'
40
40
 
41
41
  type Json = string | number | boolean | null | { [key: string]: Json } | Json[]
42
42
 
43
+ type SingleValuePostgreSQLTypes =
44
+ | 'bool'
45
+ | 'int2'
46
+ | 'int4'
47
+ | 'int8'
48
+ | 'float4'
49
+ | 'float8'
50
+ | 'numeric'
51
+ | 'bytea'
52
+ | 'bpchar'
53
+ | 'varchar'
54
+ | 'date'
55
+ | 'text'
56
+ | 'citext'
57
+ | 'time'
58
+ | 'timetz'
59
+ | 'timestamp'
60
+ | 'timestamptz'
61
+ | 'uuid'
62
+ | 'vector'
63
+ | 'json'
64
+ | 'jsonb'
65
+ | 'void'
66
+ | 'record'
67
+ | string
68
+
69
+ type ArrayPostgreSQLTypes = `_${SingleValuePostgreSQLTypes}`
70
+
71
+ type PostgreSQLTypes = SingleValuePostgreSQLTypes | ArrayPostgreSQLTypes
72
+
73
+ type TypeScriptSingleValueTypes<T extends SingleValuePostgreSQLTypes> = T extends 'bool'
74
+ ? boolean
75
+ : T extends 'int2' | 'int4' | 'int8' | 'float4' | 'float8' | 'numeric'
76
+ ? number
77
+ : T extends
78
+ | 'bytea'
79
+ | 'bpchar'
80
+ | 'varchar'
81
+ | 'date'
82
+ | 'text'
83
+ | 'citext'
84
+ | 'time'
85
+ | 'timetz'
86
+ | 'timestamp'
87
+ | 'timestamptz'
88
+ | 'uuid'
89
+ | 'vector'
90
+ ? string
91
+ : T extends 'json' | 'jsonb'
92
+ ? Json
93
+ : T extends 'void'
94
+ ? undefined
95
+ : T extends 'record'
96
+ ? Record<string, unknown>
97
+ : unknown
98
+
99
+ type StripUnderscore<T extends string> = T extends `_${infer U}` ? U : T
100
+
101
+ type TypeScriptTypes<T extends PostgreSQLTypes> = T extends ArrayPostgreSQLTypes
102
+ ? TypeScriptSingleValueTypes<StripUnderscore<Extract<T, SingleValuePostgreSQLTypes>>>[]
103
+ : TypeScriptSingleValueTypes<T>
104
+
43
105
  /**
44
106
  * Parser errors.
45
107
  */
@@ -47,6 +109,13 @@ type ParserError<Message extends string> = { error: true } & Message
47
109
  type GenericStringError = ParserError<'Received a generic string'>
48
110
  export type SelectQueryError<Message extends string> = { error: true } & Message
49
111
 
112
+ /**
113
+ * Creates a new {@link ParserError} if the given input is not already a parser error.
114
+ */
115
+ type CreateParserErrorIfRequired<Input, Message extends string> = Input extends ParserError<string>
116
+ ? Input
117
+ : ParserError<Message>
118
+
50
119
  /**
51
120
  * Trims whitespace from the left of the input.
52
121
  */
@@ -56,6 +125,9 @@ type EatWhitespace<Input extends string> = string extends Input
56
125
  ? EatWhitespace<Remainder>
57
126
  : Input
58
127
 
128
+ /**
129
+ * Returns a boolean representing whether there is a foreign key with the given name.
130
+ */
59
131
  type HasFKey<FKeyName, Relationships> = Relationships extends [infer R]
60
132
  ? R extends { foreignKeyName: FKeyName }
61
133
  ? true
@@ -66,6 +138,9 @@ type HasFKey<FKeyName, Relationships> = Relationships extends [infer R]
66
138
  : HasFKey<FKeyName, Rest>
67
139
  : false
68
140
 
141
+ /**
142
+ * Returns a boolean representing whether there the foreign key has a unique constraint.
143
+ */
69
144
  type HasUniqueFKey<FKeyName, Relationships> = Relationships extends [infer R]
70
145
  ? R extends { foreignKeyName: FKeyName; isOneToOne: true }
71
146
  ? true
@@ -76,6 +151,10 @@ type HasUniqueFKey<FKeyName, Relationships> = Relationships extends [infer R]
76
151
  : HasUniqueFKey<FKeyName, Rest>
77
152
  : false
78
153
 
154
+ /**
155
+ * Returns a boolean representing whether there is a foreign key referencing
156
+ * a given relation.
157
+ */
79
158
  type HasFKeyToFRel<FRelName, Relationships> = Relationships extends [infer R]
80
159
  ? R extends { referencedRelation: FRelName }
81
160
  ? true
@@ -99,8 +178,9 @@ type HasUniqueFKeyToFRel<FRelName, Relationships> = Relationships extends [infer
99
178
  /**
100
179
  * Constructs a type definition for a single field of an object.
101
180
  *
102
- * @param Definitions Record of definitions, possibly generated from PostgREST's OpenAPI spec.
103
- * @param Name Name of the table being queried.
181
+ * @param Schema Database schema.
182
+ * @param Row Type of a row in the given table.
183
+ * @param Relationships Relationships between different tables in the database.
104
184
  * @param Field Single field parsed by `ParseQuery`.
105
185
  */
106
186
  type ConstructFieldDefinition<
@@ -111,6 +191,19 @@ type ConstructFieldDefinition<
111
191
  Field
112
192
  > = Field extends { star: true }
113
193
  ? Row
194
+ : Field extends { spread: true; original: string; children: unknown[] }
195
+ ? GetResultHelper<
196
+ Schema,
197
+ (Schema['Tables'] & Schema['Views'])[Field['original']]['Row'],
198
+ Field['original'],
199
+ (Schema['Tables'] & Schema['Views'])[Field['original']] extends { Relationships: infer R }
200
+ ? R
201
+ : unknown,
202
+ Field['children'],
203
+ unknown
204
+ >
205
+ : Field extends { children: [] }
206
+ ? {}
114
207
  : Field extends { name: string; original: string; hint: string; children: unknown[] }
115
208
  ? {
116
209
  [_ in Field['name']]: GetResultHelper<
@@ -169,12 +262,12 @@ type ConstructFieldDefinition<
169
262
  : Child[]
170
263
  : never
171
264
  }
265
+ : Field extends { name: string; type: infer T }
266
+ ? { [K in Field['name']]: T }
172
267
  : Field extends { name: string; original: string }
173
268
  ? Field['original'] extends keyof Row
174
269
  ? { [K in Field['name']]: Row[Field['original']] }
175
270
  : SelectQueryError<`Referencing missing column \`${Field['original']}\``>
176
- : Field extends { name: string; type: infer T }
177
- ? { [K in Field['name']]: T }
178
271
  : Record<string, unknown>
179
272
 
180
273
  /**
@@ -184,8 +277,7 @@ type ConstructFieldDefinition<
184
277
  */
185
278
 
186
279
  /**
187
- * Reads a consecutive sequence of more than 1 letter,
188
- * where letters are `[0-9a-zA-Z_]`.
280
+ * Reads a consecutive sequence of 1 or more letter, where letters are `[0-9a-zA-Z_]`.
189
281
  */
190
282
  type ReadLetters<Input extends string> = string extends Input
191
283
  ? GenericStringError
@@ -204,7 +296,7 @@ type ReadLettersHelper<Input extends string, Acc extends string> = string extend
204
296
  : [Acc, '']
205
297
 
206
298
  /**
207
- * Reads a consecutive sequence of more than 1 double-quoted letters,
299
+ * Reads a consecutive sequence of 1 or more double-quoted letters,
208
300
  * where letters are `[^"]`.
209
301
  */
210
302
  type ReadQuotedLetters<Input extends string> = string extends Input
@@ -227,7 +319,7 @@ type ReadQuotedLettersHelper<Input extends string, Acc extends string> = string
227
319
 
228
320
  /**
229
321
  * Parses a (possibly double-quoted) identifier.
230
- * For now, identifiers are just sequences of more than 1 letter.
322
+ * Identifiers are sequences of 1 or more letters.
231
323
  */
232
324
  type ParseIdentifier<Input extends string> = ReadLetters<Input> extends [
233
325
  infer Name,
@@ -239,37 +331,29 @@ type ParseIdentifier<Input extends string> = ReadLetters<Input> extends [
239
331
  : ParserError<`No (possibly double-quoted) identifier at \`${Input}\``>
240
332
 
241
333
  /**
242
- * Parses a node.
243
- * A node is one of the following:
244
- * - `*`
334
+ * Parses a field without preceding field renaming.
335
+ * A field is one of the following:
245
336
  * - `field`
337
+ * - `field::type`
246
338
  * - `field->json...`
247
339
  * - `field(nodes)`
248
340
  * - `field!hint(nodes)`
249
341
  * - `field!inner(nodes)`
250
342
  * - `field!hint!inner(nodes)`
251
- * - `renamed_field:field`
252
- * - `renamed_field:field->json...`
253
- * - `renamed_field:field(nodes)`
254
- * - `renamed_field:field!hint(nodes)`
255
- * - `renamed_field:field!inner(nodes)`
256
- * - `renamed_field:field!hint!inner(nodes)`
257
343
  *
258
- * TODO: casting operators `::text`, more support for JSON operators `->`, `->>`.
344
+ * TODO: support type casting of JSON operators `a->b::type`, `a->>b::type`.
259
345
  */
260
- type ParseNode<Input extends string> = Input extends ''
346
+ type ParseField<Input extends string> = Input extends ''
261
347
  ? ParserError<'Empty string'>
262
- : // `*`
263
- Input extends `*${infer Remainder}`
264
- ? [{ star: true }, EatWhitespace<Remainder>]
265
348
  : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`]
266
349
  ? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
267
350
  ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`]
268
351
  ? // `field!inner(nodes)`
269
352
  [{ name: Name; original: Name; children: Fields }, EatWhitespace<Remainder>]
270
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
271
- ? ParseEmbeddedResource<EatWhitespace<Remainder>>
272
- : ParserError<'Expected embedded resource after `!inner`'>
353
+ : CreateParserErrorIfRequired<
354
+ ParseEmbeddedResource<EatWhitespace<Remainder>>,
355
+ 'Expected embedded resource after `!inner`'
356
+ >
273
357
  : EatWhitespace<Remainder> extends `!${infer Remainder}`
274
358
  ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`]
275
359
  ? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
@@ -279,82 +363,21 @@ type ParseNode<Input extends string> = Input extends ''
279
363
  ]
280
364
  ? // `field!hint!inner(nodes)`
281
365
  [{ name: Name; original: Name; hint: Hint; children: Fields }, EatWhitespace<Remainder>]
282
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
283
- ? ParseEmbeddedResource<EatWhitespace<Remainder>>
284
- : ParserError<'Expected embedded resource after `!inner`'>
366
+ : CreateParserErrorIfRequired<
367
+ ParseEmbeddedResource<EatWhitespace<Remainder>>,
368
+ 'Expected embedded resource after `!inner`'
369
+ >
285
370
  : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
286
371
  infer Fields,
287
372
  `${infer Remainder}`
288
373
  ]
289
374
  ? // `field!hint(nodes)`
290
375
  [{ name: Name; original: Name; hint: Hint; children: Fields }, EatWhitespace<Remainder>]
291
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
292
- ? ParseEmbeddedResource<EatWhitespace<Remainder>>
293
- : ParserError<'Expected embedded resource after `!hint`'>
376
+ : CreateParserErrorIfRequired<
377
+ ParseEmbeddedResource<EatWhitespace<Remainder>>,
378
+ 'Expected embedded resource after `!hint`'
379
+ >
294
380
  : ParserError<'Expected identifier after `!`'>
295
- : EatWhitespace<Remainder> extends `:${infer Remainder}`
296
- ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer OriginalName, `${infer Remainder}`]
297
- ? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
298
- ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
299
- infer Fields,
300
- `${infer Remainder}`
301
- ]
302
- ? // `renamed_field:field!inner(nodes)`
303
- [{ name: Name; original: OriginalName; children: Fields }, EatWhitespace<Remainder>]
304
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
305
- ? ParseEmbeddedResource<EatWhitespace<Remainder>>
306
- : ParserError<'Expected embedded resource after `!inner`'>
307
- : EatWhitespace<Remainder> extends `!${infer Remainder}`
308
- ? ParseIdentifier<EatWhitespace<Remainder>> extends [infer Hint, `${infer Remainder}`]
309
- ? EatWhitespace<Remainder> extends `!inner${infer Remainder}`
310
- ? ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
311
- infer Fields,
312
- `${infer Remainder}`
313
- ]
314
- ? // `renamed_field:field!hint!inner(nodes)`
315
- [
316
- { name: Name; original: OriginalName; hint: Hint; children: Fields },
317
- EatWhitespace<Remainder>
318
- ]
319
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
320
- ? ParseEmbeddedResource<EatWhitespace<Remainder>>
321
- : ParserError<'Expected embedded resource after `!inner`'>
322
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
323
- infer Fields,
324
- `${infer Remainder}`
325
- ]
326
- ? // `renamed_field:field!hint(nodes)`
327
- [
328
- {
329
- name: Name
330
- original: OriginalName
331
- hint: Hint
332
- children: Fields
333
- },
334
- EatWhitespace<Remainder>
335
- ]
336
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
337
- ? ParseEmbeddedResource<EatWhitespace<Remainder>>
338
- : ParserError<'Expected embedded resource after `!hint`'>
339
- : ParserError<'Expected identifier after `!`'>
340
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [
341
- infer Fields,
342
- `${infer Remainder}`
343
- ]
344
- ? // `renamed_field:field(nodes)`
345
- [{ name: Name; original: OriginalName; children: Fields }, EatWhitespace<Remainder>]
346
- : ParseJsonAccessor<EatWhitespace<Remainder>> extends [
347
- infer _PropertyName,
348
- infer PropertyType,
349
- `${infer Remainder}`
350
- ]
351
- ? // `renamed_field:field->json...`
352
- [{ name: Name; type: PropertyType }, EatWhitespace<Remainder>]
353
- : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
354
- ? ParseEmbeddedResource<EatWhitespace<Remainder>>
355
- : // `renamed_field:field`
356
- [{ name: Name; original: OriginalName }, EatWhitespace<Remainder>]
357
- : ParseIdentifier<EatWhitespace<Remainder>>
358
381
  : ParseEmbeddedResource<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`]
359
382
  ? // `field(nodes)`
360
383
  [{ name: Name; original: Name; children: Fields }, EatWhitespace<Remainder>]
@@ -364,13 +387,56 @@ type ParseNode<Input extends string> = Input extends ''
364
387
  `${infer Remainder}`
365
388
  ]
366
389
  ? // `field->json...`
367
- [{ name: PropertyName; type: PropertyType }, EatWhitespace<Remainder>]
390
+ [{ name: PropertyName; original: PropertyName; type: PropertyType }, EatWhitespace<Remainder>]
368
391
  : ParseEmbeddedResource<EatWhitespace<Remainder>> extends ParserError<string>
369
392
  ? ParseEmbeddedResource<EatWhitespace<Remainder>>
393
+ : EatWhitespace<Remainder> extends `::${infer Remainder}`
394
+ ? ParseIdentifier<Remainder> extends [`${infer CastType}`, `${infer Remainder}`]
395
+ ? // `field::type`
396
+ CastType extends PostgreSQLTypes
397
+ ? [{ name: Name; type: TypeScriptTypes<CastType> }, EatWhitespace<Remainder>]
398
+ : ParserError<`Invalid type for \`::\` operator \`${CastType}\``>
399
+ : ParserError<`Invalid type for \`::\` operator at \`${Remainder}\``>
370
400
  : // `field`
371
401
  [{ name: Name; original: Name }, EatWhitespace<Remainder>]
372
402
  : ParserError<`Expected identifier at \`${Input}\``>
373
403
 
404
+ /**
405
+ * Parses a node.
406
+ * A node is one of the following:
407
+ * - `*`
408
+ * - a field, as defined above
409
+ * - a renamed field, `renamed_field:field`
410
+ * - a spread field, `...field`
411
+ */
412
+ type ParseNode<Input extends string> = Input extends ''
413
+ ? ParserError<'Empty string'>
414
+ : // `*`
415
+ Input extends `*${infer Remainder}`
416
+ ? [{ star: true }, EatWhitespace<Remainder>]
417
+ : // `...field`
418
+ Input extends `...${infer Remainder}`
419
+ ? ParseField<EatWhitespace<Remainder>> extends [infer Field, `${infer Remainder}`]
420
+ ? Field extends { children: unknown[] }
421
+ ? [Prettify<{ spread: true } & Field>, EatWhitespace<Remainder>]
422
+ : ParserError<'Unable to parse spread resource'>
423
+ : ParserError<'Unable to parse spread resource'>
424
+ : ParseIdentifier<Input> extends [infer Name, `${infer Remainder}`]
425
+ ? EatWhitespace<Remainder> extends `::${infer _Remainder}`
426
+ ? // `field::`
427
+ // Special case to detect type-casting before renaming.
428
+ ParseField<Input>
429
+ : EatWhitespace<Remainder> extends `:${infer Remainder}`
430
+ ? // `renamed_field:`
431
+ ParseField<EatWhitespace<Remainder>> extends [infer Field, `${infer Remainder}`]
432
+ ? Field extends { name: string }
433
+ ? [Prettify<Omit<Field, 'name'> & { name: Name }>, EatWhitespace<Remainder>]
434
+ : ParserError<`Unable to parse renamed field`>
435
+ : ParserError<`Unable to parse renamed field`>
436
+ : // Otherwise, just parse it as a field without renaming.
437
+ ParseField<Input>
438
+ : ParserError<`Expected identifier at \`${Input}\``>
439
+
374
440
  /**
375
441
  * Parses a JSON property accessor of the shape `->a->b->c`. The last accessor in
376
442
  * the series may convert to text by using the ->> operator instead of ->.
@@ -396,7 +462,7 @@ type ParseJsonAccessor<Input extends string> = Input extends `->${infer Remainde
396
462
 
397
463
  /**
398
464
  * Parses an embedded resource, which is an opening `(`, followed by a sequence of
399
- * nodes, separated by `,`, then a closing `)`.
465
+ * 0 or more nodes separated by `,`, then a closing `)`.
400
466
  *
401
467
  * Returns a tuple of ["Parsed fields", "Remainder of text"], an error,
402
468
  * or the original string input indicating that no opening `(` was found.
@@ -404,11 +470,14 @@ type ParseJsonAccessor<Input extends string> = Input extends `->${infer Remainde
404
470
  type ParseEmbeddedResource<Input extends string> = Input extends `(${infer Remainder}`
405
471
  ? ParseNodes<EatWhitespace<Remainder>> extends [infer Fields, `${infer Remainder}`]
406
472
  ? EatWhitespace<Remainder> extends `)${infer Remainder}`
407
- ? Fields extends []
408
- ? ParserError<'Expected fields after `(`'>
409
- : [Fields, EatWhitespace<Remainder>]
473
+ ? [Fields, EatWhitespace<Remainder>]
410
474
  : ParserError<`Expected ")"`>
411
- : ParseNodes<EatWhitespace<Remainder>>
475
+ : // If no nodes were detected, check for `)` for empty embedded resources `()`.
476
+ ParseNodes<EatWhitespace<Remainder>> extends ParserError<string>
477
+ ? EatWhitespace<Remainder> extends `)${infer Remainder}`
478
+ ? [[], EatWhitespace<Remainder>]
479
+ : ParseNodes<EatWhitespace<Remainder>>
480
+ : ParserError<'Expected embedded resource fields or `)`'>
412
481
  : Input
413
482
 
414
483
  /**
@@ -482,7 +551,9 @@ type GetResultHelper<
482
551
  /**
483
552
  * Constructs a type definition for an object based on a given PostgREST query.
484
553
  *
485
- * @param Row Record<string, unknown>.
554
+ * @param Schema Database schema.
555
+ * @param Row Type of a row in the given table.
556
+ * @param Relationships Relationships between different tables in the database.
486
557
  * @param Query Select query string literal to parse.
487
558
  */
488
559
  export type GetResult<
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '1.10.0'
1
+ export const version = '1.12.0'