@pawabase/client 0.0.0-stage → 0.1.3

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 (243) hide show
  1. package/README.md +313 -2
  2. package/dist/cjs/admin.d.ts +187 -0
  3. package/dist/cjs/admin.d.ts.map +1 -0
  4. package/dist/cjs/admin.js +235 -0
  5. package/dist/cjs/admin.js.map +1 -0
  6. package/dist/cjs/auth.d.ts +448 -0
  7. package/dist/cjs/auth.d.ts.map +1 -0
  8. package/dist/cjs/auth.js +1016 -0
  9. package/dist/cjs/auth.js.map +1 -0
  10. package/dist/cjs/client.d.ts +103 -0
  11. package/dist/cjs/client.d.ts.map +1 -0
  12. package/dist/cjs/client.js +144 -0
  13. package/dist/cjs/client.js.map +1 -0
  14. package/dist/cjs/data.d.ts +220 -0
  15. package/dist/cjs/data.d.ts.map +1 -0
  16. package/dist/cjs/data.js +490 -0
  17. package/dist/cjs/data.js.map +1 -0
  18. package/dist/cjs/errors.d.ts +167 -0
  19. package/dist/cjs/errors.d.ts.map +1 -0
  20. package/dist/cjs/errors.js +316 -0
  21. package/dist/cjs/errors.js.map +1 -0
  22. package/dist/cjs/files.d.ts +80 -0
  23. package/dist/cjs/files.d.ts.map +1 -0
  24. package/dist/cjs/files.js +167 -0
  25. package/dist/cjs/files.js.map +1 -0
  26. package/dist/cjs/functions.d.ts +66 -0
  27. package/dist/cjs/functions.d.ts.map +1 -0
  28. package/dist/cjs/functions.js +109 -0
  29. package/dist/cjs/functions.js.map +1 -0
  30. package/dist/cjs/http.d.ts +101 -0
  31. package/dist/cjs/http.d.ts.map +1 -0
  32. package/dist/cjs/http.js +249 -0
  33. package/dist/cjs/http.js.map +1 -0
  34. package/dist/cjs/index.d.ts +22 -0
  35. package/dist/cjs/index.d.ts.map +1 -0
  36. package/dist/cjs/index.js +45 -0
  37. package/dist/cjs/index.js.map +1 -0
  38. package/dist/cjs/manage/access.d.ts +136 -0
  39. package/dist/cjs/manage/access.d.ts.map +1 -0
  40. package/dist/cjs/manage/access.js +162 -0
  41. package/dist/cjs/manage/access.js.map +1 -0
  42. package/dist/cjs/manage/automation.d.ts +106 -0
  43. package/dist/cjs/manage/automation.d.ts.map +1 -0
  44. package/dist/cjs/manage/automation.js +144 -0
  45. package/dist/cjs/manage/automation.js.map +1 -0
  46. package/dist/cjs/manage/base.d.ts +52 -0
  47. package/dist/cjs/manage/base.d.ts.map +1 -0
  48. package/dist/cjs/manage/base.js +69 -0
  49. package/dist/cjs/manage/base.js.map +1 -0
  50. package/dist/cjs/manage/data.d.ts +100 -0
  51. package/dist/cjs/manage/data.d.ts.map +1 -0
  52. package/dist/cjs/manage/data.js +141 -0
  53. package/dist/cjs/manage/data.js.map +1 -0
  54. package/dist/cjs/manage/files.d.ts +45 -0
  55. package/dist/cjs/manage/files.d.ts.map +1 -0
  56. package/dist/cjs/manage/files.js +73 -0
  57. package/dist/cjs/manage/files.js.map +1 -0
  58. package/dist/cjs/manage/functions.d.ts +48 -0
  59. package/dist/cjs/manage/functions.d.ts.map +1 -0
  60. package/dist/cjs/manage/functions.js +61 -0
  61. package/dist/cjs/manage/functions.js.map +1 -0
  62. package/dist/cjs/manage/index.d.ts +76 -0
  63. package/dist/cjs/manage/index.d.ts.map +1 -0
  64. package/dist/cjs/manage/index.js +134 -0
  65. package/dist/cjs/manage/index.js.map +1 -0
  66. package/dist/cjs/manage/lifecycle.d.ts +128 -0
  67. package/dist/cjs/manage/lifecycle.d.ts.map +1 -0
  68. package/dist/cjs/manage/lifecycle.js +167 -0
  69. package/dist/cjs/manage/lifecycle.js.map +1 -0
  70. package/dist/cjs/manage/mail.d.ts +16 -0
  71. package/dist/cjs/manage/mail.d.ts.map +1 -0
  72. package/dist/cjs/manage/mail.js +24 -0
  73. package/dist/cjs/manage/mail.js.map +1 -0
  74. package/dist/cjs/manage/observe.d.ts +149 -0
  75. package/dist/cjs/manage/observe.d.ts.map +1 -0
  76. package/dist/cjs/manage/observe.js +168 -0
  77. package/dist/cjs/manage/observe.js.map +1 -0
  78. package/dist/cjs/manage/realtime.d.ts +52 -0
  79. package/dist/cjs/manage/realtime.d.ts.map +1 -0
  80. package/dist/cjs/manage/realtime.js +71 -0
  81. package/dist/cjs/manage/realtime.js.map +1 -0
  82. package/dist/cjs/package.json +1 -0
  83. package/dist/cjs/realtime.d.ts +207 -0
  84. package/dist/cjs/realtime.d.ts.map +1 -0
  85. package/dist/cjs/realtime.js +704 -0
  86. package/dist/cjs/realtime.js.map +1 -0
  87. package/dist/cjs/session-store.d.ts +16 -0
  88. package/dist/cjs/session-store.d.ts.map +1 -0
  89. package/dist/cjs/session-store.js +37 -0
  90. package/dist/cjs/session-store.js.map +1 -0
  91. package/dist/cjs/typegen.d.ts +26 -0
  92. package/dist/cjs/typegen.d.ts.map +1 -0
  93. package/dist/cjs/typegen.js +167 -0
  94. package/dist/cjs/typegen.js.map +1 -0
  95. package/dist/cjs/types.d.ts +178 -0
  96. package/dist/cjs/types.d.ts.map +1 -0
  97. package/dist/cjs/types.js +4 -0
  98. package/dist/cjs/types.js.map +1 -0
  99. package/dist/cjs/util.d.ts +27 -0
  100. package/dist/cjs/util.d.ts.map +1 -0
  101. package/dist/cjs/util.js +115 -0
  102. package/dist/cjs/util.js.map +1 -0
  103. package/dist/cjs/version.d.ts +2 -0
  104. package/dist/cjs/version.d.ts.map +1 -0
  105. package/dist/cjs/version.js +5 -0
  106. package/dist/cjs/version.js.map +1 -0
  107. package/dist/esm/admin.d.ts +187 -0
  108. package/dist/esm/admin.d.ts.map +1 -0
  109. package/dist/esm/admin.js +222 -0
  110. package/dist/esm/admin.js.map +1 -0
  111. package/dist/esm/auth.d.ts +448 -0
  112. package/dist/esm/auth.d.ts.map +1 -0
  113. package/dist/esm/auth.js +1012 -0
  114. package/dist/esm/auth.js.map +1 -0
  115. package/dist/esm/cli/gen-types.d.ts +2 -0
  116. package/dist/esm/cli/gen-types.d.ts.map +1 -0
  117. package/dist/esm/cli/gen-types.js +100 -0
  118. package/dist/esm/cli/gen-types.js.map +1 -0
  119. package/dist/esm/client.d.ts +103 -0
  120. package/dist/esm/client.d.ts.map +1 -0
  121. package/dist/esm/client.js +139 -0
  122. package/dist/esm/client.js.map +1 -0
  123. package/dist/esm/data.d.ts +220 -0
  124. package/dist/esm/data.d.ts.map +1 -0
  125. package/dist/esm/data.js +485 -0
  126. package/dist/esm/data.js.map +1 -0
  127. package/dist/esm/errors.d.ts +167 -0
  128. package/dist/esm/errors.d.ts.map +1 -0
  129. package/dist/esm/errors.js +293 -0
  130. package/dist/esm/errors.js.map +1 -0
  131. package/dist/esm/files.d.ts +80 -0
  132. package/dist/esm/files.d.ts.map +1 -0
  133. package/dist/esm/files.js +162 -0
  134. package/dist/esm/files.js.map +1 -0
  135. package/dist/esm/functions.d.ts +66 -0
  136. package/dist/esm/functions.d.ts.map +1 -0
  137. package/dist/esm/functions.js +103 -0
  138. package/dist/esm/functions.js.map +1 -0
  139. package/dist/esm/http.d.ts +101 -0
  140. package/dist/esm/http.d.ts.map +1 -0
  141. package/dist/esm/http.js +245 -0
  142. package/dist/esm/http.js.map +1 -0
  143. package/dist/esm/index.d.ts +22 -0
  144. package/dist/esm/index.d.ts.map +1 -0
  145. package/dist/esm/index.js +12 -0
  146. package/dist/esm/index.js.map +1 -0
  147. package/dist/esm/manage/access.d.ts +136 -0
  148. package/dist/esm/manage/access.d.ts.map +1 -0
  149. package/dist/esm/manage/access.js +155 -0
  150. package/dist/esm/manage/access.js.map +1 -0
  151. package/dist/esm/manage/automation.d.ts +106 -0
  152. package/dist/esm/manage/automation.d.ts.map +1 -0
  153. package/dist/esm/manage/automation.js +134 -0
  154. package/dist/esm/manage/automation.js.map +1 -0
  155. package/dist/esm/manage/base.d.ts +52 -0
  156. package/dist/esm/manage/base.d.ts.map +1 -0
  157. package/dist/esm/manage/base.js +63 -0
  158. package/dist/esm/manage/base.js.map +1 -0
  159. package/dist/esm/manage/data.d.ts +100 -0
  160. package/dist/esm/manage/data.d.ts.map +1 -0
  161. package/dist/esm/manage/data.js +130 -0
  162. package/dist/esm/manage/data.js.map +1 -0
  163. package/dist/esm/manage/files.d.ts +45 -0
  164. package/dist/esm/manage/files.d.ts.map +1 -0
  165. package/dist/esm/manage/files.js +68 -0
  166. package/dist/esm/manage/files.js.map +1 -0
  167. package/dist/esm/manage/functions.d.ts +48 -0
  168. package/dist/esm/manage/functions.d.ts.map +1 -0
  169. package/dist/esm/manage/functions.js +57 -0
  170. package/dist/esm/manage/functions.js.map +1 -0
  171. package/dist/esm/manage/index.d.ts +76 -0
  172. package/dist/esm/manage/index.d.ts.map +1 -0
  173. package/dist/esm/manage/index.js +115 -0
  174. package/dist/esm/manage/index.js.map +1 -0
  175. package/dist/esm/manage/lifecycle.d.ts +128 -0
  176. package/dist/esm/manage/lifecycle.d.ts.map +1 -0
  177. package/dist/esm/manage/lifecycle.js +161 -0
  178. package/dist/esm/manage/lifecycle.js.map +1 -0
  179. package/dist/esm/manage/mail.d.ts +16 -0
  180. package/dist/esm/manage/mail.d.ts.map +1 -0
  181. package/dist/esm/manage/mail.js +19 -0
  182. package/dist/esm/manage/mail.js.map +1 -0
  183. package/dist/esm/manage/observe.d.ts +149 -0
  184. package/dist/esm/manage/observe.d.ts.map +1 -0
  185. package/dist/esm/manage/observe.js +161 -0
  186. package/dist/esm/manage/observe.js.map +1 -0
  187. package/dist/esm/manage/realtime.d.ts +52 -0
  188. package/dist/esm/manage/realtime.d.ts.map +1 -0
  189. package/dist/esm/manage/realtime.js +66 -0
  190. package/dist/esm/manage/realtime.js.map +1 -0
  191. package/dist/esm/package.json +1 -0
  192. package/dist/esm/realtime.d.ts +207 -0
  193. package/dist/esm/realtime.d.ts.map +1 -0
  194. package/dist/esm/realtime.js +699 -0
  195. package/dist/esm/realtime.js.map +1 -0
  196. package/dist/esm/session-store.d.ts +16 -0
  197. package/dist/esm/session-store.d.ts.map +1 -0
  198. package/dist/esm/session-store.js +32 -0
  199. package/dist/esm/session-store.js.map +1 -0
  200. package/dist/esm/typegen.d.ts +26 -0
  201. package/dist/esm/typegen.d.ts.map +1 -0
  202. package/dist/esm/typegen.js +163 -0
  203. package/dist/esm/typegen.js.map +1 -0
  204. package/dist/esm/types.d.ts +178 -0
  205. package/dist/esm/types.d.ts.map +1 -0
  206. package/dist/esm/types.js +3 -0
  207. package/dist/esm/types.js.map +1 -0
  208. package/dist/esm/util.d.ts +27 -0
  209. package/dist/esm/util.d.ts.map +1 -0
  210. package/dist/esm/util.js +102 -0
  211. package/dist/esm/util.js.map +1 -0
  212. package/dist/esm/version.d.ts +2 -0
  213. package/dist/esm/version.d.ts.map +1 -0
  214. package/dist/esm/version.js +2 -0
  215. package/dist/esm/version.js.map +1 -0
  216. package/package.json +92 -4
  217. package/src/admin.ts +311 -0
  218. package/src/auth.ts +1180 -0
  219. package/src/cli/gen-types.ts +105 -0
  220. package/src/client.ts +189 -0
  221. package/src/data.ts +576 -0
  222. package/src/errors.ts +330 -0
  223. package/src/files.ts +208 -0
  224. package/src/functions.ts +131 -0
  225. package/src/http.ts +354 -0
  226. package/src/index.ts +56 -0
  227. package/src/manage/access.ts +206 -0
  228. package/src/manage/automation.ts +162 -0
  229. package/src/manage/base.ts +83 -0
  230. package/src/manage/data.ts +159 -0
  231. package/src/manage/files.ts +79 -0
  232. package/src/manage/functions.ts +69 -0
  233. package/src/manage/index.ts +132 -0
  234. package/src/manage/lifecycle.ts +208 -0
  235. package/src/manage/mail.ts +22 -0
  236. package/src/manage/observe.ts +226 -0
  237. package/src/manage/realtime.ts +95 -0
  238. package/src/realtime.ts +765 -0
  239. package/src/session-store.ts +36 -0
  240. package/src/typegen.ts +192 -0
  241. package/src/types.ts +195 -0
  242. package/src/util.ts +114 -0
  243. package/src/version.ts +1 -0
@@ -0,0 +1,220 @@
1
+ import type { HttpClient } from "./http.js";
2
+ import type { Page } from "./types.js";
3
+ export type FilterOp = "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "like" | "ilike" | "in" | "nin" | "is" | "isnot";
4
+ type Scalar = string | number | bigint | boolean | Date | null;
5
+ /** The default row type for an untyped resource. */
6
+ export type AnyRow = Record<string, unknown>;
7
+ /** What a typed `Database` declares for one resource. */
8
+ export interface ResourceTypes<Row = AnyRow, Insert = Partial<Row>, Update = Partial<Row>> {
9
+ Row: Row;
10
+ Insert: Insert;
11
+ Update: Update;
12
+ }
13
+ /** Condition objects for {@link QueryBuilder.where}: `{ status: "live", views: { gte: 10 } }`. */
14
+ export type Condition = Scalar | {
15
+ eq?: Scalar;
16
+ neq?: Scalar;
17
+ gt?: Scalar;
18
+ gte?: Scalar;
19
+ lt?: Scalar;
20
+ lte?: Scalar;
21
+ like?: string;
22
+ ilike?: string;
23
+ in?: Scalar[];
24
+ nin?: Scalar[];
25
+ is?: null | boolean;
26
+ isnot?: null | boolean;
27
+ };
28
+ export interface QueryOptions {
29
+ signal?: AbortSignal | null | undefined;
30
+ /** Pass through to the transport: a per-call timeout or retry policy. */
31
+ timeoutMs?: number;
32
+ }
33
+ export interface IterateOptions extends QueryOptions {
34
+ /** Rows per request. Default `100`; the server's maximum is 200. */
35
+ pageSize?: number;
36
+ /** Stop after this many rows. */
37
+ maxRecords?: number;
38
+ /**
39
+ * When the server cannot count (`total: null`, a per-row policy) a short or empty page
40
+ * does not mean the end. Stop after this many empty pages in a row. Default `1`.
41
+ */
42
+ stopAfterEmptyPages?: number;
43
+ }
44
+ interface State {
45
+ filters: Map<string, string>;
46
+ sort: string[];
47
+ select: string[] | null;
48
+ expand: string[];
49
+ page: number;
50
+ perPage: number | null;
51
+ /** An `in ()` with no values matches nothing: answered locally. */
52
+ empty: boolean;
53
+ }
54
+ /**
55
+ * A query on one resource. Builders are immutable: every method returns a new one, so
56
+ * a base query can be reused. It is also a promise, so `await` runs it.
57
+ *
58
+ * ```ts
59
+ * const page = await client.from("posts").eq("status", "live").order("created_at", "desc").perPage(20);
60
+ * for await (const post of client.from("posts").eq("status", "live")) { … }
61
+ * ```
62
+ */
63
+ export declare class QueryBuilder<Row = AnyRow> implements PromiseLike<Page<Row>> {
64
+ private readonly http;
65
+ private readonly resource;
66
+ private readonly state;
67
+ private readonly options;
68
+ constructor(http: HttpClient, resource: string, state?: State, options?: QueryOptions);
69
+ private with;
70
+ /**
71
+ * Add a filter. The server accepts one filter per field and keeps only the last when
72
+ * a field repeats, so a second filter on the same field throws instead of silently
73
+ * dropping one. For a two-sided range, see the docs (a stored period field, or a route).
74
+ */
75
+ filter(column: string, op: FilterOp, value: unknown): QueryBuilder<Row>;
76
+ eq<K extends keyof Row & string>(column: K, value: Row[K] | null): QueryBuilder<Row>;
77
+ neq<K extends keyof Row & string>(column: K, value: Row[K] | null): QueryBuilder<Row>;
78
+ gt<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
79
+ gte<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
80
+ lt<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
81
+ lte<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
82
+ /** Pattern match. `*` and `%` match any run of characters. Whether it ignores case depends on the database. */
83
+ like<K extends keyof Row & string>(column: K, pattern: string): QueryBuilder<Row>;
84
+ /** Case-insensitive match on PostgreSQL; on other databases the same as {@link like}. */
85
+ ilike<K extends keyof Row & string>(column: K, pattern: string): QueryBuilder<Row>;
86
+ /** Matches any of the values. Values cannot contain commas. An empty list matches nothing. */
87
+ in<K extends keyof Row & string>(column: K, values: ReadonlyArray<Row[K]>): QueryBuilder<Row>;
88
+ notIn<K extends keyof Row & string>(column: K, values: ReadonlyArray<Row[K]>): QueryBuilder<Row>;
89
+ /** `null`, `true` or `false`. The right way to test booleans. */
90
+ is<K extends keyof Row & string>(column: K, value: null | boolean): QueryBuilder<Row>;
91
+ isNot<K extends keyof Row & string>(column: K, value: null | boolean): QueryBuilder<Row>;
92
+ /** Several filters at once: `{ status: "live", views: { gte: 10 } }`. */
93
+ where(conditions: {
94
+ [K in keyof Row & string]?: Condition;
95
+ }): QueryBuilder<Row>;
96
+ /** Order by a column. Call again for tie-breakers. The default order is the primary key. */
97
+ order<K extends keyof Row & string>(column: K, direction?: "asc" | "desc"): QueryBuilder<Row>;
98
+ /**
99
+ * Ask for only these columns (the primary key is always included). Columns you leave out
100
+ * still appear in each row, but as `null`, so the result type keeps them optional.
101
+ */
102
+ select<K extends keyof Row & string>(...columns: K[]): QueryBuilder<Pick<Row, K> & Partial<Row>>;
103
+ /** Embed `belongs_to` / `has_many` relations declared on the resource. */
104
+ expand(...relations: string[]): QueryBuilder<Row>;
105
+ /** The 1-based page. */
106
+ page(page: number): QueryBuilder<Row>;
107
+ /** Rows per page. The server allows 1 to 200 (20 by default). */
108
+ perPage(perPage: number): QueryBuilder<Row>;
109
+ /** Alias of {@link perPage}. */
110
+ limit(count: number): QueryBuilder<Row>;
111
+ /** Abort or time-limit this query. */
112
+ withOptions(options: QueryOptions): QueryBuilder<Row>;
113
+ private params;
114
+ /** Run the query and return one page. `await`ing the builder does the same. */
115
+ execute(): Promise<Page<Row>>;
116
+ then<R1 = Page<Row>, R2 = never>(onfulfilled?: ((value: Page<Row>) => R1 | PromiseLike<R1>) | null, onrejected?: ((reason: unknown) => R2 | PromiseLike<R2>) | null): Promise<R1 | R2>;
117
+ /** The first matching row, or `null`. */
118
+ first(): Promise<Row | null>;
119
+ /** The first matching row; throws {@link NotFoundError} when there is none. */
120
+ single(): Promise<Row>;
121
+ /**
122
+ * How many rows match. Throws when the server cannot count (a per-row policy
123
+ * makes `total` unknowable); use {@link all} and count instead.
124
+ */
125
+ count(): Promise<number>;
126
+ /** Whether any row matches. */
127
+ exists(): Promise<boolean>;
128
+ /** Walk the result one page at a time, from the current page on. */
129
+ pages(options?: IterateOptions): AsyncGenerator<Page<Row>, void, void>;
130
+ /** Every matching row, across pages. Mind the cost on large tables; `maxRecords` caps it. */
131
+ all(options?: IterateOptions): Promise<Row[]>;
132
+ /** Iterate rows lazily: `for await (const row of query)`. */
133
+ [Symbol.asyncIterator](): AsyncGenerator<Row, void, void>;
134
+ }
135
+ export interface ReadOptions extends QueryOptions {
136
+ expand?: string[];
137
+ }
138
+ export interface CreateManyResult<Row> {
139
+ created: Row[];
140
+ failed: Array<{
141
+ index: number;
142
+ error: unknown;
143
+ }>;
144
+ }
145
+ /** Create, read, update and delete records of one resource. */
146
+ export declare class ResourceClient<Row = AnyRow, Insert = Partial<Row>, Update = Partial<Row>> {
147
+ private readonly http;
148
+ readonly name: string;
149
+ constructor(http: HttpClient, name: string);
150
+ private path;
151
+ /** Start a query. Every filter and shape method below is a shortcut for `query().…`. */
152
+ query(): QueryBuilder<Row>;
153
+ /** One page of records, using plain parameters. For anything richer, build a query. */
154
+ list(params?: {
155
+ where?: {
156
+ [K in keyof Row & string]?: Condition;
157
+ };
158
+ sort?: string | string[];
159
+ select?: Array<keyof Row & string>;
160
+ expand?: string[];
161
+ page?: number;
162
+ perPage?: number;
163
+ signal?: AbortSignal | null;
164
+ }): Promise<Page<Row>>;
165
+ where(conditions: {
166
+ [K in keyof Row & string]?: Condition;
167
+ }): QueryBuilder<Row>;
168
+ filter(column: string, op: FilterOp, value: unknown): QueryBuilder<Row>;
169
+ eq<K extends keyof Row & string>(column: K, value: Row[K] | null): QueryBuilder<Row>;
170
+ neq<K extends keyof Row & string>(column: K, value: Row[K] | null): QueryBuilder<Row>;
171
+ gt<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
172
+ gte<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
173
+ lt<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
174
+ lte<K extends keyof Row & string>(column: K, value: Row[K] | Date): QueryBuilder<Row>;
175
+ like<K extends keyof Row & string>(column: K, pattern: string): QueryBuilder<Row>;
176
+ ilike<K extends keyof Row & string>(column: K, pattern: string): QueryBuilder<Row>;
177
+ in<K extends keyof Row & string>(column: K, values: ReadonlyArray<Row[K]>): QueryBuilder<Row>;
178
+ notIn<K extends keyof Row & string>(column: K, values: ReadonlyArray<Row[K]>): QueryBuilder<Row>;
179
+ is<K extends keyof Row & string>(column: K, value: null | boolean): QueryBuilder<Row>;
180
+ isNot<K extends keyof Row & string>(column: K, value: null | boolean): QueryBuilder<Row>;
181
+ order<K extends keyof Row & string>(column: K, direction?: "asc" | "desc"): QueryBuilder<Row>;
182
+ select<K extends keyof Row & string>(...columns: K[]): QueryBuilder<Pick<Row, K> & Partial<Row>>;
183
+ expand(...relations: string[]): QueryBuilder<Row>;
184
+ page(page: number): QueryBuilder<Row>;
185
+ perPage(count: number): QueryBuilder<Row>;
186
+ limit(count: number): QueryBuilder<Row>;
187
+ /** The first record in the default order, or `null`. */
188
+ first(): Promise<Row | null>;
189
+ /** How many records the caller can see. See {@link QueryBuilder.count}. */
190
+ count(): Promise<number>;
191
+ /** Every record, across pages. See {@link QueryBuilder.all}. */
192
+ all(options?: IterateOptions): Promise<Row[]>;
193
+ /** Walk every record page by page. */
194
+ pages(options?: IterateOptions): AsyncGenerator<Page<Row>, void, void>;
195
+ /** Iterate every record lazily: `for await (const row of client.from("posts"))`. */
196
+ [Symbol.asyncIterator](): AsyncGenerator<Row, void, void>;
197
+ /** One record. `404` also means "a read policy hides it": see {@link maybeGet}. */
198
+ get(id: string | number, options?: ReadOptions): Promise<Row>;
199
+ /** Like {@link get}, but `null` when there is no such record (or a policy hides it). */
200
+ maybeGet(id: string | number, options?: ReadOptions): Promise<Row | null>;
201
+ /** Create a record; returns it with its server-assigned fields (`id`, timestamps, defaults). */
202
+ create(row: Insert, options?: QueryOptions): Promise<Row>;
203
+ /**
204
+ * Create several records, a few at a time. This is **not atomic**: some can succeed while
205
+ * others fail, so the result lists both. With `stopOnError`, no new request starts after
206
+ * the first failure.
207
+ */
208
+ createMany(rows: Insert[], options?: QueryOptions & {
209
+ concurrency?: number;
210
+ stopOnError?: boolean;
211
+ }): Promise<CreateManyResult<Row>>;
212
+ /** Change the listed fields. (A `PATCH` accepts `null` for any field, even a required one.) */
213
+ update(id: string | number, patch: Update, options?: QueryOptions): Promise<Row>;
214
+ /** Replace the record (`PUT`). */
215
+ replace(id: string | number, row: Insert, options?: QueryOptions): Promise<Row>;
216
+ /** Delete a record. */
217
+ delete(id: string | number, options?: QueryOptions): Promise<void>;
218
+ }
219
+ export {};
220
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":"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"}