@supabase/postgrest-js 0.37.2 → 1.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +4 -4
  2. package/dist/main/PostgrestBuilder.d.ts +24 -0
  3. package/dist/main/PostgrestBuilder.d.ts.map +1 -0
  4. package/dist/main/{lib/types.js → PostgrestBuilder.js} +36 -26
  5. package/dist/main/PostgrestBuilder.js.map +1 -0
  6. package/dist/main/PostgrestClient.d.ts +19 -20
  7. package/dist/main/PostgrestClient.d.ts.map +1 -1
  8. package/dist/main/PostgrestClient.js +37 -14
  9. package/dist/main/PostgrestClient.js.map +1 -1
  10. package/dist/main/{lib/PostgrestFilterBuilder.d.ts → PostgrestFilterBuilder.d.ts} +47 -90
  11. package/dist/main/PostgrestFilterBuilder.d.ts.map +1 -0
  12. package/dist/main/PostgrestFilterBuilder.js +162 -0
  13. package/dist/main/PostgrestFilterBuilder.js.map +1 -0
  14. package/dist/main/PostgrestQueryBuilder.d.ts +69 -0
  15. package/dist/main/PostgrestQueryBuilder.d.ts.map +1 -0
  16. package/dist/main/{lib/PostgrestQueryBuilder.js → PostgrestQueryBuilder.js} +81 -44
  17. package/dist/main/PostgrestQueryBuilder.js.map +1 -0
  18. package/dist/{module/lib → main}/PostgrestTransformBuilder.d.ts +14 -7
  19. package/dist/main/PostgrestTransformBuilder.d.ts.map +1 -0
  20. package/dist/main/{lib/PostgrestTransformBuilder.js → PostgrestTransformBuilder.js} +16 -31
  21. package/dist/main/PostgrestTransformBuilder.js.map +1 -0
  22. package/dist/main/{lib/constants.d.ts → constants.d.ts} +0 -0
  23. package/dist/main/constants.d.ts.map +1 -0
  24. package/dist/main/{lib/constants.js → constants.js} +0 -0
  25. package/dist/main/constants.js.map +1 -0
  26. package/dist/main/index.d.ts +6 -5
  27. package/dist/main/index.d.ts.map +1 -1
  28. package/dist/main/index.js +11 -9
  29. package/dist/main/index.js.map +1 -1
  30. package/dist/main/select-query-parser.d.ts +141 -0
  31. package/dist/main/select-query-parser.d.ts.map +1 -0
  32. package/dist/main/select-query-parser.js +4 -0
  33. package/dist/main/select-query-parser.js.map +1 -0
  34. package/dist/main/types.d.ts +54 -0
  35. package/dist/main/types.d.ts.map +1 -0
  36. package/dist/main/types.js +3 -0
  37. package/dist/main/types.js.map +1 -0
  38. package/dist/main/version.d.ts +2 -0
  39. package/dist/main/version.d.ts.map +1 -0
  40. package/dist/main/{lib/version.js → version.js} +1 -2
  41. package/dist/main/version.js.map +1 -0
  42. package/dist/module/PostgrestBuilder.d.ts +24 -0
  43. package/dist/module/PostgrestBuilder.d.ts.map +1 -0
  44. package/dist/module/{lib/types.js → PostgrestBuilder.js} +36 -25
  45. package/dist/module/PostgrestBuilder.js.map +1 -0
  46. package/dist/module/PostgrestClient.d.ts +19 -20
  47. package/dist/module/PostgrestClient.d.ts.map +1 -1
  48. package/dist/module/PostgrestClient.js +37 -14
  49. package/dist/module/PostgrestClient.js.map +1 -1
  50. package/dist/module/{lib/PostgrestFilterBuilder.d.ts → PostgrestFilterBuilder.d.ts} +47 -90
  51. package/dist/module/PostgrestFilterBuilder.d.ts.map +1 -0
  52. package/dist/module/PostgrestFilterBuilder.js +156 -0
  53. package/dist/module/PostgrestFilterBuilder.js.map +1 -0
  54. package/dist/module/PostgrestQueryBuilder.d.ts +69 -0
  55. package/dist/module/PostgrestQueryBuilder.d.ts.map +1 -0
  56. package/dist/module/PostgrestQueryBuilder.js +169 -0
  57. package/dist/module/PostgrestQueryBuilder.js.map +1 -0
  58. package/dist/{main/lib → module}/PostgrestTransformBuilder.d.ts +14 -7
  59. package/dist/module/PostgrestTransformBuilder.d.ts.map +1 -0
  60. package/dist/module/{lib/PostgrestTransformBuilder.js → PostgrestTransformBuilder.js} +12 -30
  61. package/dist/module/PostgrestTransformBuilder.js.map +1 -0
  62. package/dist/module/{lib/constants.d.ts → constants.d.ts} +0 -0
  63. package/dist/module/constants.d.ts.map +1 -0
  64. package/dist/module/{lib/constants.js → constants.js} +0 -0
  65. package/dist/module/constants.js.map +1 -0
  66. package/dist/module/index.d.ts +6 -5
  67. package/dist/module/index.d.ts.map +1 -1
  68. package/dist/module/index.js +5 -5
  69. package/dist/module/index.js.map +1 -1
  70. package/dist/module/select-query-parser.d.ts +141 -0
  71. package/dist/module/select-query-parser.d.ts.map +1 -0
  72. package/dist/module/select-query-parser.js +3 -0
  73. package/dist/module/select-query-parser.js.map +1 -0
  74. package/dist/module/types.d.ts +54 -0
  75. package/dist/module/types.d.ts.map +1 -0
  76. package/dist/module/types.js +2 -0
  77. package/dist/module/types.js.map +1 -0
  78. package/dist/module/version.d.ts +2 -0
  79. package/dist/module/version.d.ts.map +1 -0
  80. package/dist/module/version.js +2 -0
  81. package/dist/module/version.js.map +1 -0
  82. package/package.json +19 -20
  83. package/dist/main/lib/PostgrestFilterBuilder.d.ts.map +0 -1
  84. package/dist/main/lib/PostgrestFilterBuilder.js +0 -396
  85. package/dist/main/lib/PostgrestFilterBuilder.js.map +0 -1
  86. package/dist/main/lib/PostgrestQueryBuilder.d.ts +0 -80
  87. package/dist/main/lib/PostgrestQueryBuilder.d.ts.map +0 -1
  88. package/dist/main/lib/PostgrestQueryBuilder.js.map +0 -1
  89. package/dist/main/lib/PostgrestRpcBuilder.d.ts +0 -20
  90. package/dist/main/lib/PostgrestRpcBuilder.d.ts.map +0 -1
  91. package/dist/main/lib/PostgrestRpcBuilder.js +0 -41
  92. package/dist/main/lib/PostgrestRpcBuilder.js.map +0 -1
  93. package/dist/main/lib/PostgrestTransformBuilder.d.ts.map +0 -1
  94. package/dist/main/lib/PostgrestTransformBuilder.js.map +0 -1
  95. package/dist/main/lib/constants.d.ts.map +0 -1
  96. package/dist/main/lib/constants.js.map +0 -1
  97. package/dist/main/lib/types.d.ts +0 -64
  98. package/dist/main/lib/types.d.ts.map +0 -1
  99. package/dist/main/lib/types.js.map +0 -1
  100. package/dist/main/lib/version.d.ts +0 -2
  101. package/dist/main/lib/version.d.ts.map +0 -1
  102. package/dist/main/lib/version.js.map +0 -1
  103. package/dist/module/lib/PostgrestFilterBuilder.d.ts.map +0 -1
  104. package/dist/module/lib/PostgrestFilterBuilder.js +0 -390
  105. package/dist/module/lib/PostgrestFilterBuilder.js.map +0 -1
  106. package/dist/module/lib/PostgrestQueryBuilder.d.ts +0 -80
  107. package/dist/module/lib/PostgrestQueryBuilder.d.ts.map +0 -1
  108. package/dist/module/lib/PostgrestQueryBuilder.js +0 -132
  109. package/dist/module/lib/PostgrestQueryBuilder.js.map +0 -1
  110. package/dist/module/lib/PostgrestRpcBuilder.d.ts +0 -20
  111. package/dist/module/lib/PostgrestRpcBuilder.d.ts.map +0 -1
  112. package/dist/module/lib/PostgrestRpcBuilder.js +0 -35
  113. package/dist/module/lib/PostgrestRpcBuilder.js.map +0 -1
  114. package/dist/module/lib/PostgrestTransformBuilder.d.ts.map +0 -1
  115. package/dist/module/lib/PostgrestTransformBuilder.js.map +0 -1
  116. package/dist/module/lib/constants.d.ts.map +0 -1
  117. package/dist/module/lib/constants.js.map +0 -1
  118. package/dist/module/lib/types.d.ts +0 -64
  119. package/dist/module/lib/types.d.ts.map +0 -1
  120. package/dist/module/lib/types.js.map +0 -1
  121. package/dist/module/lib/version.d.ts +0 -2
  122. package/dist/module/lib/version.d.ts.map +0 -1
  123. package/dist/module/lib/version.js +0 -3
  124. package/dist/module/lib/version.js.map +0 -1
  125. package/src/PostgrestClient.ts +0 -94
  126. package/src/index.ts +0 -21
  127. package/src/lib/PostgrestFilterBuilder.ts +0 -469
  128. package/src/lib/PostgrestQueryBuilder.ts +0 -230
  129. package/src/lib/PostgrestRpcBuilder.ts +0 -58
  130. package/src/lib/PostgrestTransformBuilder.ts +0 -138
  131. package/src/lib/constants.ts +0 -2
  132. package/src/lib/types.ts +0 -183
  133. package/src/lib/version.ts +0 -2
@@ -2,8 +2,8 @@ import PostgrestTransformBuilder from './PostgrestTransformBuilder';
2
2
  /**
3
3
  * Filters
4
4
  */
5
- declare type FilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'is' | 'in' | 'cs' | 'cd' | 'sl' | 'sr' | 'nxl' | 'nxr' | 'adj' | 'ov' | 'fts' | 'plfts' | 'phfts' | 'wfts' | 'not.eq' | 'not.neq' | 'not.gt' | 'not.gte' | 'not.lt' | 'not.lte' | 'not.like' | 'not.ilike' | 'not.is' | 'not.in' | 'not.cs' | 'not.cd' | 'not.sl' | 'not.sr' | 'not.nxl' | 'not.nxr' | 'not.adj' | 'not.ov' | 'not.fts' | 'not.plfts' | 'not.phfts' | 'not.wfts';
6
- export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder<T> {
5
+ declare type FilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'is' | 'in' | 'cs' | 'cd' | 'sl' | 'sr' | 'nxl' | 'nxr' | 'adj' | 'ov' | 'fts' | 'plfts' | 'phfts' | 'wfts';
6
+ export default class PostgrestFilterBuilder<Table extends Record<string, unknown>, Result> extends PostgrestTransformBuilder<Table, Result> {
7
7
  /**
8
8
  * Finds all rows which doesn't satisfy the filter.
9
9
  *
@@ -11,7 +11,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
11
11
  * @param operator The operator to filter with.
12
12
  * @param value The value to filter with.
13
13
  */
14
- not(column: keyof T, operator: FilterOperator, value: any): this;
14
+ not<ColumnName extends string & keyof Table>(column: ColumnName, operator: FilterOperator, value: Table[ColumnName]): this;
15
+ not(column: string, operator: string, value: unknown): this;
15
16
  /**
16
17
  * Finds all rows satisfying at least one of the filters.
17
18
  *
@@ -28,7 +29,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
28
29
  * @param column The column to filter on.
29
30
  * @param value The value to filter with.
30
31
  */
31
- eq(column: keyof T, value: T[keyof T]): this;
32
+ eq<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this;
33
+ eq(column: string, value: unknown): this;
32
34
  /**
33
35
  * Finds all rows whose value on the stated `column` doesn't match the
34
36
  * specified `value`.
@@ -36,7 +38,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
36
38
  * @param column The column to filter on.
37
39
  * @param value The value to filter with.
38
40
  */
39
- neq(column: keyof T, value: T[keyof T]): this;
41
+ neq<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this;
42
+ neq(column: string, value: unknown): this;
40
43
  /**
41
44
  * Finds all rows whose value on the stated `column` is greater than the
42
45
  * specified `value`.
@@ -44,7 +47,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
44
47
  * @param column The column to filter on.
45
48
  * @param value The value to filter with.
46
49
  */
47
- gt(column: keyof T, value: T[keyof T]): this;
50
+ gt<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this;
51
+ gt(column: string, value: unknown): this;
48
52
  /**
49
53
  * Finds all rows whose value on the stated `column` is greater than or
50
54
  * equal to the specified `value`.
@@ -52,7 +56,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
52
56
  * @param column The column to filter on.
53
57
  * @param value The value to filter with.
54
58
  */
55
- gte(column: keyof T, value: T[keyof T]): this;
59
+ gte<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this;
60
+ gte(column: string, value: unknown): this;
56
61
  /**
57
62
  * Finds all rows whose value on the stated `column` is less than the
58
63
  * specified `value`.
@@ -60,7 +65,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
60
65
  * @param column The column to filter on.
61
66
  * @param value The value to filter with.
62
67
  */
63
- lt(column: keyof T, value: T[keyof T]): this;
68
+ lt<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this;
69
+ lt(column: string, value: unknown): this;
64
70
  /**
65
71
  * Finds all rows whose value on the stated `column` is less than or equal
66
72
  * to the specified `value`.
@@ -68,7 +74,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
68
74
  * @param column The column to filter on.
69
75
  * @param value The value to filter with.
70
76
  */
71
- lte(column: keyof T, value: T[keyof T]): this;
77
+ lte<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName]): this;
78
+ lte(column: string, value: unknown): this;
72
79
  /**
73
80
  * Finds all rows whose value in the stated `column` matches the supplied
74
81
  * `pattern` (case sensitive).
@@ -76,7 +83,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
76
83
  * @param column The column to filter on.
77
84
  * @param pattern The pattern to filter with.
78
85
  */
79
- like(column: keyof T, pattern: string): this;
86
+ like<ColumnName extends string & keyof Table>(column: ColumnName, pattern: string): this;
87
+ like(column: string, pattern: string): this;
80
88
  /**
81
89
  * Finds all rows whose value in the stated `column` matches the supplied
82
90
  * `pattern` (case insensitive).
@@ -84,7 +92,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
84
92
  * @param column The column to filter on.
85
93
  * @param pattern The pattern to filter with.
86
94
  */
87
- ilike(column: keyof T, pattern: string): this;
95
+ ilike<ColumnName extends string & keyof Table>(column: ColumnName, pattern: string): this;
96
+ ilike(column: string, pattern: string): this;
88
97
  /**
89
98
  * A check for exact equality (null, true, false), finds all rows whose
90
99
  * value on the stated `column` exactly match the specified `value`.
@@ -92,7 +101,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
92
101
  * @param column The column to filter on.
93
102
  * @param value The value to filter with.
94
103
  */
95
- is(column: keyof T, value: boolean | null): this;
104
+ is<ColumnName extends string & keyof Table>(column: ColumnName, value: Table[ColumnName] & (boolean | null)): this;
105
+ is(column: string, value: boolean | null): this;
96
106
  /**
97
107
  * Finds all rows whose value on the stated `column` is found on the
98
108
  * specified `values`.
@@ -100,7 +110,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
100
110
  * @param column The column to filter on.
101
111
  * @param values The values to filter with.
102
112
  */
103
- in(column: keyof T, values: T[keyof T][]): this;
113
+ in<ColumnName extends string & keyof Table>(column: ColumnName, values: Table[ColumnName][]): this;
114
+ in(column: string, values: unknown[]): this;
104
115
  /**
105
116
  * Finds all rows whose json, array, or range value on the stated `column`
106
117
  * contains the values specified in `value`.
@@ -108,9 +119,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
108
119
  * @param column The column to filter on.
109
120
  * @param value The value to filter with.
110
121
  */
111
- contains(column: keyof T, value: string | T[keyof T][] | object): this;
112
- /** @deprecated Use `contains()` instead. */
113
- cs: (column: keyof T, value: string | T[keyof T][] | object) => this;
122
+ contains<ColumnName extends string & keyof Table>(column: ColumnName, value: string | Table[ColumnName][] | Record<string, unknown>): this;
123
+ contains(column: string, value: string | unknown[] | Record<string, unknown>): this;
114
124
  /**
115
125
  * Finds all rows whose json, array, or range value on the stated `column` is
116
126
  * contained by the specified `value`.
@@ -118,9 +128,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
118
128
  * @param column The column to filter on.
119
129
  * @param value The value to filter with.
120
130
  */
121
- containedBy(column: keyof T, value: string | T[keyof T][] | object): this;
122
- /** @deprecated Use `containedBy()` instead. */
123
- cd: (column: keyof T, value: string | T[keyof T][] | object) => this;
131
+ containedBy<ColumnName extends string & keyof Table>(column: ColumnName, value: string | Table[ColumnName][] | Record<string, unknown>): this;
132
+ containedBy(column: string, value: string | unknown[] | Record<string, unknown>): this;
124
133
  /**
125
134
  * Finds all rows whose range value on the stated `column` is strictly to the
126
135
  * left of the specified `range`.
@@ -128,9 +137,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
128
137
  * @param column The column to filter on.
129
138
  * @param range The range to filter with.
130
139
  */
131
- rangeLt(column: keyof T, range: string): this;
132
- /** @deprecated Use `rangeLt()` instead. */
133
- sl: (column: keyof T, range: string) => this;
140
+ rangeLt<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this;
141
+ rangeLt(column: string, range: string): this;
134
142
  /**
135
143
  * Finds all rows whose range value on the stated `column` is strictly to
136
144
  * the right of the specified `range`.
@@ -138,9 +146,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
138
146
  * @param column The column to filter on.
139
147
  * @param range The range to filter with.
140
148
  */
141
- rangeGt(column: keyof T, range: string): this;
142
- /** @deprecated Use `rangeGt()` instead. */
143
- sr: (column: keyof T, range: string) => this;
149
+ rangeGt<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this;
150
+ rangeGt(column: string, range: string): this;
144
151
  /**
145
152
  * Finds all rows whose range value on the stated `column` does not extend
146
153
  * to the left of the specified `range`.
@@ -148,9 +155,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
148
155
  * @param column The column to filter on.
149
156
  * @param range The range to filter with.
150
157
  */
151
- rangeGte(column: keyof T, range: string): this;
152
- /** @deprecated Use `rangeGte()` instead. */
153
- nxl: (column: keyof T, range: string) => this;
158
+ rangeGte<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this;
159
+ rangeGte(column: string, range: string): this;
154
160
  /**
155
161
  * Finds all rows whose range value on the stated `column` does not extend
156
162
  * to the right of the specified `range`.
@@ -158,9 +164,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
158
164
  * @param column The column to filter on.
159
165
  * @param range The range to filter with.
160
166
  */
161
- rangeLte(column: keyof T, range: string): this;
162
- /** @deprecated Use `rangeLte()` instead. */
163
- nxr: (column: keyof T, range: string) => this;
167
+ rangeLte<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this;
168
+ rangeLte(column: string, range: string): this;
164
169
  /**
165
170
  * Finds all rows whose range value on the stated `column` is adjacent to
166
171
  * the specified `range`.
@@ -168,9 +173,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
168
173
  * @param column The column to filter on.
169
174
  * @param range The range to filter with.
170
175
  */
171
- rangeAdjacent(column: keyof T, range: string): this;
172
- /** @deprecated Use `rangeAdjacent()` instead. */
173
- adj: (column: keyof T, range: string) => this;
176
+ rangeAdjacent<ColumnName extends string & keyof Table>(column: ColumnName, range: string): this;
177
+ rangeAdjacent(column: string, range: string): this;
174
178
  /**
175
179
  * Finds all rows whose array or range value on the stated `column` overlaps
176
180
  * (has a value in common) with the specified `value`.
@@ -178,9 +182,8 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
178
182
  * @param column The column to filter on.
179
183
  * @param value The value to filter with.
180
184
  */
181
- overlaps(column: keyof T, value: string | T[keyof T][]): this;
182
- /** @deprecated Use `overlaps()` instead. */
183
- ov: (column: keyof T, value: string | T[keyof T][]) => this;
185
+ overlaps<ColumnName extends string & keyof Table>(column: ColumnName, value: string | Table[ColumnName][]): this;
186
+ overlaps(column: string, value: string | unknown[]): this;
184
187
  /**
185
188
  * Finds all rows whose text or tsvector value on the stated `column` matches
186
189
  * the tsquery in `query`.
@@ -190,61 +193,13 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
190
193
  * @param config The text search configuration to use.
191
194
  * @param type The type of tsquery conversion to use on `query`.
192
195
  */
193
- textSearch(column: keyof T, query: string, { config, type, }?: {
196
+ textSearch<ColumnName extends string & keyof Table>(column: ColumnName, query: string, options?: {
194
197
  config?: string;
195
- type?: 'plain' | 'phrase' | 'websearch' | null;
198
+ type?: 'plain' | 'phrase' | 'websearch';
196
199
  }): this;
197
- /**
198
- * Finds all rows whose tsvector value on the stated `column` matches
199
- * to_tsquery(`query`).
200
- *
201
- * @param column The column to filter on.
202
- * @param query The Postgres tsquery string to filter with.
203
- * @param config The text search configuration to use.
204
- *
205
- * @deprecated Use `textSearch()` instead.
206
- */
207
- fts(column: keyof T, query: string, { config }?: {
208
- config?: string;
209
- }): this;
210
- /**
211
- * Finds all rows whose tsvector value on the stated `column` matches
212
- * plainto_tsquery(`query`).
213
- *
214
- * @param column The column to filter on.
215
- * @param query The Postgres tsquery string to filter with.
216
- * @param config The text search configuration to use.
217
- *
218
- * @deprecated Use `textSearch()` with `type: 'plain'` instead.
219
- */
220
- plfts(column: keyof T, query: string, { config }?: {
221
- config?: string;
222
- }): this;
223
- /**
224
- * Finds all rows whose tsvector value on the stated `column` matches
225
- * phraseto_tsquery(`query`).
226
- *
227
- * @param column The column to filter on.
228
- * @param query The Postgres tsquery string to filter with.
229
- * @param config The text search configuration to use.
230
- *
231
- * @deprecated Use `textSearch()` with `type: 'phrase'` instead.
232
- */
233
- phfts(column: keyof T, query: string, { config }?: {
234
- config?: string;
235
- }): this;
236
- /**
237
- * Finds all rows whose tsvector value on the stated `column` matches
238
- * websearch_to_tsquery(`query`).
239
- *
240
- * @param column The column to filter on.
241
- * @param query The Postgres tsquery string to filter with.
242
- * @param config The text search configuration to use.
243
- *
244
- * @deprecated Use `textSearch()` with `type: 'websearch'` instead.
245
- */
246
- wfts(column: keyof T, query: string, { config }?: {
200
+ textSearch(column: string, query: string, options?: {
247
201
  config?: string;
202
+ type?: 'plain' | 'phrase' | 'websearch';
248
203
  }): this;
249
204
  /**
250
205
  * Finds all rows whose `column` satisfies the filter.
@@ -253,13 +208,15 @@ export default class PostgrestFilterBuilder<T> extends PostgrestTransformBuilder
253
208
  * @param operator The operator to filter with.
254
209
  * @param value The value to filter with.
255
210
  */
256
- filter(column: keyof T, operator: FilterOperator, value: any): this;
211
+ filter<ColumnName extends string & keyof Table>(column: ColumnName, operator: `${'' | 'not.'}${FilterOperator}`, value: unknown): this;
212
+ filter(column: string, operator: string, value: unknown): this;
257
213
  /**
258
214
  * Finds all rows whose columns match the specified `query` object.
259
215
  *
260
216
  * @param query The object to filter with, with column names as keys mapped
261
217
  * to their filter values.
262
218
  */
219
+ match<ColumnName extends string & keyof Table>(query: Record<ColumnName, Table[ColumnName]>): this;
263
220
  match(query: Record<string, unknown>): this;
264
221
  }
265
222
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgrestFilterBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestFilterBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const PostgrestTransformBuilder_1 = __importDefault(require("./PostgrestTransformBuilder"));
7
+ class PostgrestFilterBuilder extends PostgrestTransformBuilder_1.default {
8
+ not(column, operator, value) {
9
+ this.url.searchParams.append(column, `not.${operator}.${value}`);
10
+ return this;
11
+ }
12
+ /**
13
+ * Finds all rows satisfying at least one of the filters.
14
+ *
15
+ * @param filters The filters to use, separated by commas.
16
+ * @param foreignTable The foreign table to use (if `column` is a foreign column).
17
+ */
18
+ or(filters, { foreignTable } = {}) {
19
+ const key = foreignTable ? `${foreignTable}.or` : 'or';
20
+ this.url.searchParams.append(key, `(${filters})`);
21
+ return this;
22
+ }
23
+ eq(column, value) {
24
+ this.url.searchParams.append(column, `eq.${value}`);
25
+ return this;
26
+ }
27
+ neq(column, value) {
28
+ this.url.searchParams.append(column, `neq.${value}`);
29
+ return this;
30
+ }
31
+ gt(column, value) {
32
+ this.url.searchParams.append(column, `gt.${value}`);
33
+ return this;
34
+ }
35
+ gte(column, value) {
36
+ this.url.searchParams.append(column, `gte.${value}`);
37
+ return this;
38
+ }
39
+ lt(column, value) {
40
+ this.url.searchParams.append(column, `lt.${value}`);
41
+ return this;
42
+ }
43
+ lte(column, value) {
44
+ this.url.searchParams.append(column, `lte.${value}`);
45
+ return this;
46
+ }
47
+ like(column, pattern) {
48
+ this.url.searchParams.append(column, `like.${pattern}`);
49
+ return this;
50
+ }
51
+ ilike(column, pattern) {
52
+ this.url.searchParams.append(column, `ilike.${pattern}`);
53
+ return this;
54
+ }
55
+ is(column, value) {
56
+ this.url.searchParams.append(column, `is.${value}`);
57
+ return this;
58
+ }
59
+ in(column, values) {
60
+ const cleanedValues = values
61
+ .map((s) => {
62
+ // handle postgrest reserved characters
63
+ // https://postgrest.org/en/v7.0.0/api.html#reserved-characters
64
+ if (typeof s === 'string' && new RegExp('[,()]').test(s))
65
+ return `"${s}"`;
66
+ else
67
+ return `${s}`;
68
+ })
69
+ .join(',');
70
+ this.url.searchParams.append(column, `in.(${cleanedValues})`);
71
+ return this;
72
+ }
73
+ contains(column, value) {
74
+ if (typeof value === 'string') {
75
+ // range types can be inclusive '[', ']' or exclusive '(', ')' so just
76
+ // keep it simple and accept a string
77
+ this.url.searchParams.append(column, `cs.${value}`);
78
+ }
79
+ else if (Array.isArray(value)) {
80
+ // array
81
+ this.url.searchParams.append(column, `cs.{${value.join(',')}}`);
82
+ }
83
+ else {
84
+ // json
85
+ this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`);
86
+ }
87
+ return this;
88
+ }
89
+ containedBy(column, value) {
90
+ if (typeof value === 'string') {
91
+ // range
92
+ this.url.searchParams.append(column, `cd.${value}`);
93
+ }
94
+ else if (Array.isArray(value)) {
95
+ // array
96
+ this.url.searchParams.append(column, `cd.{${value.join(',')}}`);
97
+ }
98
+ else {
99
+ // json
100
+ this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`);
101
+ }
102
+ return this;
103
+ }
104
+ rangeLt(column, range) {
105
+ this.url.searchParams.append(column, `sl.${range}`);
106
+ return this;
107
+ }
108
+ rangeGt(column, range) {
109
+ this.url.searchParams.append(column, `sr.${range}`);
110
+ return this;
111
+ }
112
+ rangeGte(column, range) {
113
+ this.url.searchParams.append(column, `nxl.${range}`);
114
+ return this;
115
+ }
116
+ rangeLte(column, range) {
117
+ this.url.searchParams.append(column, `nxr.${range}`);
118
+ return this;
119
+ }
120
+ rangeAdjacent(column, range) {
121
+ this.url.searchParams.append(column, `adj.${range}`);
122
+ return this;
123
+ }
124
+ overlaps(column, value) {
125
+ if (typeof value === 'string') {
126
+ // range
127
+ this.url.searchParams.append(column, `ov.${value}`);
128
+ }
129
+ else {
130
+ // array
131
+ this.url.searchParams.append(column, `ov.{${value.join(',')}}`);
132
+ }
133
+ return this;
134
+ }
135
+ textSearch(column, query, { config, type } = {}) {
136
+ let typePart = '';
137
+ if (type === 'plain') {
138
+ typePart = 'pl';
139
+ }
140
+ else if (type === 'phrase') {
141
+ typePart = 'ph';
142
+ }
143
+ else if (type === 'websearch') {
144
+ typePart = 'w';
145
+ }
146
+ const configPart = config === undefined ? '' : `(${config})`;
147
+ this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`);
148
+ return this;
149
+ }
150
+ filter(column, operator, value) {
151
+ this.url.searchParams.append(column, `${operator}.${value}`);
152
+ return this;
153
+ }
154
+ match(query) {
155
+ Object.entries(query).forEach(([column, value]) => {
156
+ this.url.searchParams.append(column, `eq.${value}`);
157
+ });
158
+ return this;
159
+ }
160
+ }
161
+ exports.default = PostgrestFilterBuilder;
162
+ //# sourceMappingURL=PostgrestFilterBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgrestFilterBuilder.js","sourceRoot":"","sources":["../../src/PostgrestFilterBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import PostgrestFilterBuilder from './PostgrestFilterBuilder';
2
+ import { GetResult } from './select-query-parser';
3
+ import { Fetch, GenericTable } from './types';
4
+ export default class PostgrestQueryBuilder<Table extends GenericTable> {
5
+ url: URL;
6
+ headers: Record<string, string>;
7
+ schema?: string;
8
+ shouldThrowOnError: boolean;
9
+ signal?: AbortSignal;
10
+ fetch?: Fetch;
11
+ constructor(url: URL, { headers, schema, fetch, shouldThrowOnError, }: {
12
+ headers?: Record<string, string>;
13
+ schema?: string;
14
+ fetch?: Fetch;
15
+ shouldThrowOnError: boolean;
16
+ });
17
+ /**
18
+ * Performs vertical filtering with SELECT.
19
+ *
20
+ * @param columns The columns to retrieve, separated by commas.
21
+ * @param head When set to true, select will void data.
22
+ * @param count Count algorithm to use to count rows in a table.
23
+ */
24
+ select<Query extends string = '*', Result = GetResult<Table['Row'], Query extends '*' ? '*' : Query>>(columns?: Query, { head, count, }?: {
25
+ head?: boolean;
26
+ count?: 'exact' | 'planned' | 'estimated';
27
+ }): PostgrestFilterBuilder<Table['Row'], Result>;
28
+ /**
29
+ * Performs an INSERT into the table.
30
+ *
31
+ * @param values The values to insert.
32
+ * @param count Count algorithm to use to count rows in a table.
33
+ */
34
+ insert<Row extends Table['Insert']>(values: Row | Row[], { count, }?: {
35
+ count?: 'exact' | 'planned' | 'estimated';
36
+ }): PostgrestFilterBuilder<Table['Row'], undefined>;
37
+ /**
38
+ * Performs an UPSERT into the table.
39
+ *
40
+ * @param values The values to insert.
41
+ * @param count Count algorithm to use to count rows in a table.
42
+ * @param options Named parameters.
43
+ * @param options.onConflict By specifying the `on_conflict` query parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint.
44
+ * @param options.ignoreDuplicates Specifies if duplicate rows should be ignored and not inserted.
45
+ */
46
+ upsert<Row extends Table['Insert']>(values: Row | Row[], { onConflict, count, ignoreDuplicates, }?: {
47
+ onConflict?: string;
48
+ count?: 'exact' | 'planned' | 'estimated';
49
+ ignoreDuplicates?: boolean;
50
+ }): PostgrestFilterBuilder<Table['Row'], undefined>;
51
+ /**
52
+ * Performs an UPDATE on the table.
53
+ *
54
+ * @param values The values to update.
55
+ * @param count Count algorithm to use to count rows in a table.
56
+ */
57
+ update<Row extends Table['Update']>(values: Row, { count, }?: {
58
+ count?: 'exact' | 'planned' | 'estimated';
59
+ }): PostgrestFilterBuilder<Table['Row'], undefined>;
60
+ /**
61
+ * Performs a DELETE on the table.
62
+ *
63
+ * @param count Count algorithm to use to count rows in a table.
64
+ */
65
+ delete({ count, }?: {
66
+ count?: 'exact' | 'planned' | 'estimated';
67
+ }): PostgrestFilterBuilder<Table['Row'], undefined>;
68
+ }
69
+ //# sourceMappingURL=PostgrestQueryBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgrestQueryBuilder.d.ts","sourceRoot":"","sources":["../../src/PostgrestQueryBuilder.ts"],"names":[],"mappings":"AACA,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE7C,MAAM,CAAC,OAAO,OAAO,qBAAqB,CAAC,KAAK,SAAS,YAAY;IACnE,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,EAAE,OAAO,CAAA;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;gBAGX,GAAG,EAAE,GAAG,EACR,EACE,OAAY,EACZ,MAAM,EACN,KAAK,EACL,kBAAkB,GACnB,EAAE;QACD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,KAAK,CAAA;QACb,kBAAkB,EAAE,OAAO,CAAA;KAC5B;IASH;;;;;;OAMG;IACH,MAAM,CACJ,KAAK,SAAS,MAAM,GAAG,GAAG,EAC1B,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,EAEjE,OAAO,CAAC,EAAE,KAAK,EACf,EACE,IAAY,EACZ,KAAK,GACN,GAAE;QACD,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KACrC,GACL,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAgC/C;;;;;OAKG;IACH,MAAM,CAAC,GAAG,SAAS,KAAK,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,EACnB,EACE,KAAK,GACN,GAAE;QACD,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KACrC,GACL,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAiClD;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,SAAS,KAAK,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,EACnB,EACE,UAAU,EACV,KAAK,EACL,gBAAwB,GACzB,GAAE;QACD,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;QACzC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KACtB,GACL,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IA2BlD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,SAAS,KAAK,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,GAAG,EACX,EACE,KAAK,GACN,GAAE;QACD,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KACrC,GACL,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAwBlD;;;;OAIG;IACH,MAAM,CAAC,EACL,KAAK,GACN,GAAE;QACD,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;KACrC,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAqBzD"}