nedb-engine-client 3.2.2 → 3.3.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.
package/dist/index.d.ts CHANGED
@@ -164,10 +164,59 @@ export declare class NedbClient {
164
164
  * ```
165
165
  */
166
166
  put(coll: string, id: string, doc: Record<string, unknown>, opts?: PutOptions): Promise<PutResult>;
167
+ /**
168
+ * Discard a response body we are not going to read.
169
+ *
170
+ * Node's `fetch` (undici) keeps the socket checked out until the body is
171
+ * consumed or cancelled. Every early return that skipped this leaked a
172
+ * connection: `queryFull()` returning `[]` for a missing database is a
173
+ * DOCUMENTED resilient path, so a long-running service leaked one socket per
174
+ * such call until the pool starved. It also kept the event loop alive, which
175
+ * is how this was found — the test suite passed every assertion and then
176
+ * hung forever instead of exiting.
177
+ */
178
+ private static drain;
179
+ /**
180
+ * Percent-encode one URL path segment.
181
+ *
182
+ * `delete("t", "a/slash")` used to interpolate the id straight into the
183
+ * path, so the `/` split it and the route matched a different id — the call
184
+ * returned false ("no such document") for a document that existed.
185
+ * `encodeURIComponent` encodes `/`, which is exactly what is needed here.
186
+ */
187
+ private static seg;
188
+ /**
189
+ * Escape a value for use inside a double-quoted NQL string literal.
190
+ *
191
+ * The engine's lexer collapses `\"` to a literal quote and leaves every
192
+ * OTHER backslash alone, so only the quote needs escaping. One case is
193
+ * genuinely unrepresentable: a value ENDING in a backslash produces `...\"`,
194
+ * which the lexer reads as an escaped quote, and the string never
195
+ * terminates. That is why {@link get} prefers the `rows/:coll/:id` route,
196
+ * which takes the id from the URL path and has no quoting to get wrong.
197
+ */
198
+ private static nqlStr;
167
199
  /**
168
200
  * Fetch the current version of a document. Returns null if not found.
201
+ *
202
+ * With `asOf`, returns the version at or before that sequence number — the
203
+ * single-document form of time travel.
204
+ *
205
+ * Uses `GET /v1/databases/<db>/rows/<coll>/<id>`, which takes the id from
206
+ * the URL path. This used to build `FROM coll WHERE _id = "..."` and
207
+ * interpolate the id into it, which made every id containing a double quote
208
+ * unreachable: the call returned null — meaning "no such document" — for a
209
+ * document `put()` had stored and `FROM coll` returned. An id ending in a
210
+ * backslash could not be escaped at all.
211
+ *
212
+ * A missing document is `200 {"row": null}` on this route, not 404 —
213
+ * deliberately, so that a 404/405 unambiguously means "the server does not
214
+ * have this route" and the client can fall back to the query path.
215
+ * Requires nedb-engine >= 3.3.0; older servers take the fallback.
169
216
  */
170
- get(coll: string, id: string): Promise<Record<string, unknown> | null>;
217
+ get(coll: string, id: string, asOf?: number): Promise<Record<string, unknown> | null>;
218
+ /** Pre-3.3.0 fallback for {@link get} — a point lookup built as NQL. */
219
+ private getViaQuery;
171
220
  /**
172
221
  * Tombstone-delete a document.
173
222
  * History is preserved in the DAG; returns true if the document existed.
@@ -180,13 +229,42 @@ export declare class NedbClient {
180
229
  * NQL: FROM <coll>
181
230
  * [AS OF <seq>]
182
231
  * [VALID AS OF "<date>"]
183
- * [WHERE field = value [AND ...]]
184
- * [ORDER BY field [DESC]]
185
- * [LIMIT n]
186
- * [GROUP BY field COUNT|SUM|AVG|MIN|MAX]
187
- * [TRACE caused_by [REVERSE]]
232
+ * [WHERE <predicate>]
188
233
  * [SEARCH "text"]
234
+ * [TRAVERSE <relation>]
235
+ * [TRACE caused_by [REVERSE]]
236
+ * [GROUP BY field [COUNT|SUM f|AVG f|MIN f|MAX f]]
237
+ * [COUNT | SUM f | AVG f | MIN f | MAX f]
238
+ * [HAVING <predicate>]
239
+ * [ORDER BY field [ASC|DESC] (, field [ASC|DESC])*]
240
+ * [LIMIT n] [OFFSET n]
189
241
  * ```
242
+ *
243
+ * Clauses are evaluated in SQL's order regardless of how they are written:
244
+ * FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> OFFSET -> LIMIT.
245
+ *
246
+ * `<predicate>` is a full boolean expression (AND binds tighter than OR;
247
+ * parentheses nest to any depth):
248
+ *
249
+ * ```
250
+ * field = != < <= > >= value
251
+ * field [NOT] IN (v1, v2, ...)
252
+ * field [NOT] BETWEEN low AND high // inclusive, as in SQL
253
+ * field [NOT] LIKE|ILIKE "pat" // % any run, _ any one char
254
+ * field IS [NOT] NULL // absent OR explicitly null
255
+ * NOT (...) / (... OR ...) / ...
256
+ * ```
257
+ *
258
+ * An ordering comparison against a missing or null field is never true, so
259
+ * `WHERE fee < 5` will not return a row that has no `fee`. Use `IS NULL` to
260
+ * select those rows.
261
+ *
262
+ * A clause the server does not implement is REJECTED rather than silently
263
+ * ignored, so a typo throws instead of quietly answering a different
264
+ * question.
265
+ *
266
+ * Requires nedb-engine >= 3.3.0 for IN / BETWEEN / LIKE / IS NULL / OR /
267
+ * NOT / OFFSET / HAVING / multi-key ORDER BY and bare aggregates.
190
268
  */
191
269
  query(nql: string): Promise<Record<string, unknown>[]>;
192
270
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,sFAAsF;IACtF,KAAK,EAAE,OAAO,CAAC;IACf,4EAA4E;IAC5E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uDAAuD;IACvD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uFAAuF;IACvF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gFAAgF;AAChF,qBAAa,SAAU,SAAQ,KAAK;aAEhB,MAAM,EAAE,MAAM;aACd,OAAO,EAAE,MAAM;gBADf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM;CAKlC;AAID,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,EAAE,iBAAiB;YAYrB,KAAK;YAoBL,KAAK;YASL,QAAQ;IAOtB;;;;;;;;OAQG;IACG,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,SAAS,CAAC;IAqBrB;;;;;;;;;;OAUG;mBACkB,KAAK;IAQ1B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,GAAG;IAIlB;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,MAAM;IAIrB;;;;;;;;;;;;;;;;;OAiBG;IACG,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAkB1C,wEAAwE;YAC1D,WAAW;IAYzB;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAK5D;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAYlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBjF,kEAAkE;IAC5D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9C;;;;;;;;;;OAUG;IACG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBjD,wEAAwE;IAClE,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,QAAQ,GAAG,IAAe,GAC/B,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAa3B,iEAAiE;IAC3D,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAMrC,8DAA8D;IACxD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAO7B,iDAAiD;IAC3C,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAO5B,6EAA6E;IACvE,UAAU,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAWvE,gDAAgD;IAC1C,GAAG,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAYzD,mDAAmD;IAC7C,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAMrC,2DAA2D;IACrD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9B,8CAA8C;IACxC,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOxC,mDAAmD;IAC7C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC,yDAAyD;IACnD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;CAWvC;AAED,eAAe,UAAU,CAAC"}
package/dist/index.esm.js CHANGED
@@ -99,6 +99,7 @@ class NedbClient {
99
99
  payload.client = opts.clientId;
100
100
  let resp = await this.fetch("POST", `/v1/databases/${this.db}/put`, payload, this.writeMs);
101
101
  if (resp.status === 404 && this.autoCreate) {
102
+ await NedbClient.drain(resp);
102
103
  await this.ensureDb();
103
104
  resp = await this.fetch("POST", `/v1/databases/${this.db}/put`, payload, this.writeMs);
104
105
  }
@@ -106,11 +107,88 @@ class NedbClient {
106
107
  await this.raise(resp);
107
108
  return resp.json();
108
109
  }
110
+ /**
111
+ * Discard a response body we are not going to read.
112
+ *
113
+ * Node's `fetch` (undici) keeps the socket checked out until the body is
114
+ * consumed or cancelled. Every early return that skipped this leaked a
115
+ * connection: `queryFull()` returning `[]` for a missing database is a
116
+ * DOCUMENTED resilient path, so a long-running service leaked one socket per
117
+ * such call until the pool starved. It also kept the event loop alive, which
118
+ * is how this was found — the test suite passed every assertion and then
119
+ * hung forever instead of exiting.
120
+ */
121
+ static async drain(resp) {
122
+ try {
123
+ if (resp.body && !resp.bodyUsed)
124
+ await resp.body.cancel();
125
+ }
126
+ catch {
127
+ /* best effort — the socket is being discarded either way */
128
+ }
129
+ }
130
+ /**
131
+ * Percent-encode one URL path segment.
132
+ *
133
+ * `delete("t", "a/slash")` used to interpolate the id straight into the
134
+ * path, so the `/` split it and the route matched a different id — the call
135
+ * returned false ("no such document") for a document that existed.
136
+ * `encodeURIComponent` encodes `/`, which is exactly what is needed here.
137
+ */
138
+ static seg(value) {
139
+ return encodeURIComponent(String(value));
140
+ }
141
+ /**
142
+ * Escape a value for use inside a double-quoted NQL string literal.
143
+ *
144
+ * The engine's lexer collapses `\"` to a literal quote and leaves every
145
+ * OTHER backslash alone, so only the quote needs escaping. One case is
146
+ * genuinely unrepresentable: a value ENDING in a backslash produces `...\"`,
147
+ * which the lexer reads as an escaped quote, and the string never
148
+ * terminates. That is why {@link get} prefers the `rows/:coll/:id` route,
149
+ * which takes the id from the URL path and has no quoting to get wrong.
150
+ */
151
+ static nqlStr(value) {
152
+ return String(value).replace(/"/g, '\\"');
153
+ }
109
154
  /**
110
155
  * Fetch the current version of a document. Returns null if not found.
156
+ *
157
+ * With `asOf`, returns the version at or before that sequence number — the
158
+ * single-document form of time travel.
159
+ *
160
+ * Uses `GET /v1/databases/<db>/rows/<coll>/<id>`, which takes the id from
161
+ * the URL path. This used to build `FROM coll WHERE _id = "..."` and
162
+ * interpolate the id into it, which made every id containing a double quote
163
+ * unreachable: the call returned null — meaning "no such document" — for a
164
+ * document `put()` had stored and `FROM coll` returned. An id ending in a
165
+ * backslash could not be escaped at all.
166
+ *
167
+ * A missing document is `200 {"row": null}` on this route, not 404 —
168
+ * deliberately, so that a 404/405 unambiguously means "the server does not
169
+ * have this route" and the client can fall back to the query path.
170
+ * Requires nedb-engine >= 3.3.0; older servers take the fallback.
111
171
  */
112
- async get(coll, id) {
113
- const rows = await this.query(`FROM ${coll} WHERE _id = "${id}" LIMIT 1`);
172
+ async get(coll, id, asOf) {
173
+ const qs = asOf !== undefined ? `?as_of=${encodeURIComponent(String(asOf))}` : "";
174
+ const path = `/v1/databases/${this.db}/rows/${NedbClient.seg(coll)}/${NedbClient.seg(id)}${qs}`;
175
+ const resp = await this.fetch("GET", path);
176
+ // The route answers 200 with `row: null` for a missing document,
177
+ // precisely so this cannot be confused with "no such route". A 404/405
178
+ // therefore means the server predates the route.
179
+ if (resp.status === 404 || resp.status === 405) {
180
+ await NedbClient.drain(resp);
181
+ return this.getViaQuery(coll, id, asOf);
182
+ }
183
+ if (!resp.ok)
184
+ await this.raise(resp);
185
+ const body = await resp.json();
186
+ return body.row ?? null;
187
+ }
188
+ /** Pre-3.3.0 fallback for {@link get} — a point lookup built as NQL. */
189
+ async getViaQuery(coll, id, asOf) {
190
+ const asOfClause = asOf !== undefined ? ` AS OF ${Math.trunc(asOf)}` : "";
191
+ const rows = await this.query(`FROM ${coll}${asOfClause} WHERE _id = "${NedbClient.nqlStr(id)}" LIMIT 1`);
114
192
  return rows[0] ?? null;
115
193
  }
116
194
  /**
@@ -118,9 +196,11 @@ class NedbClient {
118
196
  * History is preserved in the DAG; returns true if the document existed.
119
197
  */
120
198
  async delete(coll, id) {
121
- const resp = await this.fetch("DELETE", `/v1/databases/${this.db}/rows/${coll}/${id}`, undefined, this.writeMs);
122
- if (resp.status === 404)
199
+ const resp = await this.fetch("DELETE", `/v1/databases/${this.db}/rows/${NedbClient.seg(coll)}/${NedbClient.seg(id)}`, undefined, this.writeMs);
200
+ if (resp.status === 404) {
201
+ await NedbClient.drain(resp);
123
202
  return false;
203
+ }
124
204
  if (!resp.ok)
125
205
  await this.raise(resp);
126
206
  const body = await resp.json();
@@ -133,13 +213,42 @@ class NedbClient {
133
213
  * NQL: FROM <coll>
134
214
  * [AS OF <seq>]
135
215
  * [VALID AS OF "<date>"]
136
- * [WHERE field = value [AND ...]]
137
- * [ORDER BY field [DESC]]
138
- * [LIMIT n]
139
- * [GROUP BY field COUNT|SUM|AVG|MIN|MAX]
140
- * [TRACE caused_by [REVERSE]]
216
+ * [WHERE <predicate>]
141
217
  * [SEARCH "text"]
218
+ * [TRAVERSE <relation>]
219
+ * [TRACE caused_by [REVERSE]]
220
+ * [GROUP BY field [COUNT|SUM f|AVG f|MIN f|MAX f]]
221
+ * [COUNT | SUM f | AVG f | MIN f | MAX f]
222
+ * [HAVING <predicate>]
223
+ * [ORDER BY field [ASC|DESC] (, field [ASC|DESC])*]
224
+ * [LIMIT n] [OFFSET n]
142
225
  * ```
226
+ *
227
+ * Clauses are evaluated in SQL's order regardless of how they are written:
228
+ * FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> OFFSET -> LIMIT.
229
+ *
230
+ * `<predicate>` is a full boolean expression (AND binds tighter than OR;
231
+ * parentheses nest to any depth):
232
+ *
233
+ * ```
234
+ * field = != < <= > >= value
235
+ * field [NOT] IN (v1, v2, ...)
236
+ * field [NOT] BETWEEN low AND high // inclusive, as in SQL
237
+ * field [NOT] LIKE|ILIKE "pat" // % any run, _ any one char
238
+ * field IS [NOT] NULL // absent OR explicitly null
239
+ * NOT (...) / (... OR ...) / ...
240
+ * ```
241
+ *
242
+ * An ordering comparison against a missing or null field is never true, so
243
+ * `WHERE fee < 5` will not return a row that has no `fee`. Use `IS NULL` to
244
+ * select those rows.
245
+ *
246
+ * A clause the server does not implement is REJECTED rather than silently
247
+ * ignored, so a typo throws instead of quietly answering a different
248
+ * question.
249
+ *
250
+ * Requires nedb-engine >= 3.3.0 for IN / BETWEEN / LIKE / IS NULL / OR /
251
+ * NOT / OFFSET / HAVING / multi-key ORDER BY and bare aggregates.
143
252
  */
144
253
  async query(nql) {
145
254
  const result = await this.queryFull(nql);
@@ -151,6 +260,7 @@ class NedbClient {
151
260
  async queryFull(nql) {
152
261
  const resp = await this.fetch("POST", `/v1/databases/${this.db}/query`, { nql });
153
262
  if (resp.status === 400 || resp.status === 404) {
263
+ await NedbClient.drain(resp);
154
264
  return { rows: [], count: 0, seq: 0, head: "" };
155
265
  }
156
266
  if (!resp.ok)
@@ -227,6 +337,7 @@ class NedbClient {
227
337
  async batch(ops) {
228
338
  let resp = await this.fetch("POST", `/v1/databases/${this.db}/batch`, { ops }, this.writeMs);
229
339
  if (resp.status === 404 && this.autoCreate) {
340
+ await NedbClient.drain(resp);
230
341
  await this.ensureDb();
231
342
  resp = await this.fetch("POST", `/v1/databases/${this.db}/batch`, { ops }, this.writeMs);
232
343
  }
package/dist/index.js CHANGED
@@ -99,6 +99,7 @@ class NedbClient {
99
99
  payload.client = opts.clientId;
100
100
  let resp = await this.fetch("POST", `/v1/databases/${this.db}/put`, payload, this.writeMs);
101
101
  if (resp.status === 404 && this.autoCreate) {
102
+ await NedbClient.drain(resp);
102
103
  await this.ensureDb();
103
104
  resp = await this.fetch("POST", `/v1/databases/${this.db}/put`, payload, this.writeMs);
104
105
  }
@@ -106,11 +107,88 @@ class NedbClient {
106
107
  await this.raise(resp);
107
108
  return resp.json();
108
109
  }
110
+ /**
111
+ * Discard a response body we are not going to read.
112
+ *
113
+ * Node's `fetch` (undici) keeps the socket checked out until the body is
114
+ * consumed or cancelled. Every early return that skipped this leaked a
115
+ * connection: `queryFull()` returning `[]` for a missing database is a
116
+ * DOCUMENTED resilient path, so a long-running service leaked one socket per
117
+ * such call until the pool starved. It also kept the event loop alive, which
118
+ * is how this was found — the test suite passed every assertion and then
119
+ * hung forever instead of exiting.
120
+ */
121
+ static async drain(resp) {
122
+ try {
123
+ if (resp.body && !resp.bodyUsed)
124
+ await resp.body.cancel();
125
+ }
126
+ catch {
127
+ /* best effort — the socket is being discarded either way */
128
+ }
129
+ }
130
+ /**
131
+ * Percent-encode one URL path segment.
132
+ *
133
+ * `delete("t", "a/slash")` used to interpolate the id straight into the
134
+ * path, so the `/` split it and the route matched a different id — the call
135
+ * returned false ("no such document") for a document that existed.
136
+ * `encodeURIComponent` encodes `/`, which is exactly what is needed here.
137
+ */
138
+ static seg(value) {
139
+ return encodeURIComponent(String(value));
140
+ }
141
+ /**
142
+ * Escape a value for use inside a double-quoted NQL string literal.
143
+ *
144
+ * The engine's lexer collapses `\"` to a literal quote and leaves every
145
+ * OTHER backslash alone, so only the quote needs escaping. One case is
146
+ * genuinely unrepresentable: a value ENDING in a backslash produces `...\"`,
147
+ * which the lexer reads as an escaped quote, and the string never
148
+ * terminates. That is why {@link get} prefers the `rows/:coll/:id` route,
149
+ * which takes the id from the URL path and has no quoting to get wrong.
150
+ */
151
+ static nqlStr(value) {
152
+ return String(value).replace(/"/g, '\\"');
153
+ }
109
154
  /**
110
155
  * Fetch the current version of a document. Returns null if not found.
156
+ *
157
+ * With `asOf`, returns the version at or before that sequence number — the
158
+ * single-document form of time travel.
159
+ *
160
+ * Uses `GET /v1/databases/<db>/rows/<coll>/<id>`, which takes the id from
161
+ * the URL path. This used to build `FROM coll WHERE _id = "..."` and
162
+ * interpolate the id into it, which made every id containing a double quote
163
+ * unreachable: the call returned null — meaning "no such document" — for a
164
+ * document `put()` had stored and `FROM coll` returned. An id ending in a
165
+ * backslash could not be escaped at all.
166
+ *
167
+ * A missing document is `200 {"row": null}` on this route, not 404 —
168
+ * deliberately, so that a 404/405 unambiguously means "the server does not
169
+ * have this route" and the client can fall back to the query path.
170
+ * Requires nedb-engine >= 3.3.0; older servers take the fallback.
111
171
  */
112
- async get(coll, id) {
113
- const rows = await this.query(`FROM ${coll} WHERE _id = "${id}" LIMIT 1`);
172
+ async get(coll, id, asOf) {
173
+ const qs = asOf !== undefined ? `?as_of=${encodeURIComponent(String(asOf))}` : "";
174
+ const path = `/v1/databases/${this.db}/rows/${NedbClient.seg(coll)}/${NedbClient.seg(id)}${qs}`;
175
+ const resp = await this.fetch("GET", path);
176
+ // The route answers 200 with `row: null` for a missing document,
177
+ // precisely so this cannot be confused with "no such route". A 404/405
178
+ // therefore means the server predates the route.
179
+ if (resp.status === 404 || resp.status === 405) {
180
+ await NedbClient.drain(resp);
181
+ return this.getViaQuery(coll, id, asOf);
182
+ }
183
+ if (!resp.ok)
184
+ await this.raise(resp);
185
+ const body = await resp.json();
186
+ return body.row ?? null;
187
+ }
188
+ /** Pre-3.3.0 fallback for {@link get} — a point lookup built as NQL. */
189
+ async getViaQuery(coll, id, asOf) {
190
+ const asOfClause = asOf !== undefined ? ` AS OF ${Math.trunc(asOf)}` : "";
191
+ const rows = await this.query(`FROM ${coll}${asOfClause} WHERE _id = "${NedbClient.nqlStr(id)}" LIMIT 1`);
114
192
  return rows[0] ?? null;
115
193
  }
116
194
  /**
@@ -118,9 +196,11 @@ class NedbClient {
118
196
  * History is preserved in the DAG; returns true if the document existed.
119
197
  */
120
198
  async delete(coll, id) {
121
- const resp = await this.fetch("DELETE", `/v1/databases/${this.db}/rows/${coll}/${id}`, undefined, this.writeMs);
122
- if (resp.status === 404)
199
+ const resp = await this.fetch("DELETE", `/v1/databases/${this.db}/rows/${NedbClient.seg(coll)}/${NedbClient.seg(id)}`, undefined, this.writeMs);
200
+ if (resp.status === 404) {
201
+ await NedbClient.drain(resp);
123
202
  return false;
203
+ }
124
204
  if (!resp.ok)
125
205
  await this.raise(resp);
126
206
  const body = await resp.json();
@@ -133,13 +213,42 @@ class NedbClient {
133
213
  * NQL: FROM <coll>
134
214
  * [AS OF <seq>]
135
215
  * [VALID AS OF "<date>"]
136
- * [WHERE field = value [AND ...]]
137
- * [ORDER BY field [DESC]]
138
- * [LIMIT n]
139
- * [GROUP BY field COUNT|SUM|AVG|MIN|MAX]
140
- * [TRACE caused_by [REVERSE]]
216
+ * [WHERE <predicate>]
141
217
  * [SEARCH "text"]
218
+ * [TRAVERSE <relation>]
219
+ * [TRACE caused_by [REVERSE]]
220
+ * [GROUP BY field [COUNT|SUM f|AVG f|MIN f|MAX f]]
221
+ * [COUNT | SUM f | AVG f | MIN f | MAX f]
222
+ * [HAVING <predicate>]
223
+ * [ORDER BY field [ASC|DESC] (, field [ASC|DESC])*]
224
+ * [LIMIT n] [OFFSET n]
142
225
  * ```
226
+ *
227
+ * Clauses are evaluated in SQL's order regardless of how they are written:
228
+ * FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> OFFSET -> LIMIT.
229
+ *
230
+ * `<predicate>` is a full boolean expression (AND binds tighter than OR;
231
+ * parentheses nest to any depth):
232
+ *
233
+ * ```
234
+ * field = != < <= > >= value
235
+ * field [NOT] IN (v1, v2, ...)
236
+ * field [NOT] BETWEEN low AND high // inclusive, as in SQL
237
+ * field [NOT] LIKE|ILIKE "pat" // % any run, _ any one char
238
+ * field IS [NOT] NULL // absent OR explicitly null
239
+ * NOT (...) / (... OR ...) / ...
240
+ * ```
241
+ *
242
+ * An ordering comparison against a missing or null field is never true, so
243
+ * `WHERE fee < 5` will not return a row that has no `fee`. Use `IS NULL` to
244
+ * select those rows.
245
+ *
246
+ * A clause the server does not implement is REJECTED rather than silently
247
+ * ignored, so a typo throws instead of quietly answering a different
248
+ * question.
249
+ *
250
+ * Requires nedb-engine >= 3.3.0 for IN / BETWEEN / LIKE / IS NULL / OR /
251
+ * NOT / OFFSET / HAVING / multi-key ORDER BY and bare aggregates.
143
252
  */
144
253
  async query(nql) {
145
254
  const result = await this.queryFull(nql);
@@ -151,6 +260,7 @@ class NedbClient {
151
260
  async queryFull(nql) {
152
261
  const resp = await this.fetch("POST", `/v1/databases/${this.db}/query`, { nql });
153
262
  if (resp.status === 400 || resp.status === 404) {
263
+ await NedbClient.drain(resp);
154
264
  return { rows: [], count: 0, seq: 0, head: "" };
155
265
  }
156
266
  if (!resp.ok)
@@ -227,6 +337,7 @@ class NedbClient {
227
337
  async batch(ops) {
228
338
  let resp = await this.fetch("POST", `/v1/databases/${this.db}/batch`, { ops }, this.writeMs);
229
339
  if (resp.status === 404 && this.autoCreate) {
340
+ await NedbClient.drain(resp);
230
341
  await this.ensureDb();
231
342
  resp = await this.fetch("POST", `/v1/databases/${this.db}/batch`, { ops }, this.writeMs);
232
343
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAmIH,gFAAgF;AAChF,MAAa,SAAU,SAAQ,KAAK;IAClC,YACkB,MAAc,EACd,OAAe;QAE/B,KAAK,CAAC,aAAa,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAHzB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QAG/B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AARD,8BAQC;AAED,6EAA6E;AAE7E,MAAa,UAAU;IAQrB,YAAY,IAAuB;QACjC,IAAI,CAAC,IAAI,GAAS,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,GAAW,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAO,IAAI,CAAC,aAAa,IAAK,IAAK,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAM,IAAI,CAAC,cAAc,IAAI,KAAM,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,KAAK,CACjB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,SAAkB;QAElB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE;gBACxC,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,IAAc;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAwB,CAAC;YACrD,IAAI,IAAI,CAAC,KAAK;gBAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,kDAAkD;IACpD,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,EAAU,EACV,GAA4B,EAC5B,OAAmB,EAAE;QAErB,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,QAAQ;YAAI,OAAO,CAAC,SAAS,GAAI,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,CAAC,SAAS;YAAG,OAAO,CAAC,UAAU,GAAI,IAAI,CAAC,SAAS,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO;YAAK,OAAO,CAAC,QAAQ,GAAM,IAAI,CAAC,OAAO,CAAC;QACxD,IAAI,IAAI,CAAC,QAAQ;YAAI,OAAO,CAAC,QAAQ,GAAM,IAAI,CAAC,QAAQ,CAAC;QACzD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACxE,IAAI,IAAI,CAAC,IAAI;YAAQ,OAAO,CAAC,IAAI,GAAU,IAAI,CAAC,IAAI,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAO,OAAO,CAAC,KAAK,GAAQ,IAAI,CAAC,KAAK,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAI,OAAO,CAAC,MAAM,GAAQ,IAAI,CAAC,QAAQ,CAAC;QAEzD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3F,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAAwB,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,EAAU;QAEV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,EAAU;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,QAAQ,EACR,iBAAiB,IAAI,CAAC,EAAE,SAAS,IAAI,IAAI,EAAE,EAAE,EAC7C,SAAS,EACT,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAqB,CAAC;QAClD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA0B,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAA8B,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,OAAO,EAAE;YACrE,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,oEAAoE;YACpE,wDAAwD;YACxD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAsC,CAAC;gBACnE,IAAI,IAAI,CAAC,KAAK;oBAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;gBACjC,IAAI,IAAI,CAAC,GAAG;oBAAE,GAAG,GAAG,GAAG,GAAG,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACxB,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAyB,CAAC;IAC5C,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,GAAc;QACxB,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CACzB,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAChC,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CACrB,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAChC,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA0B,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAE7E,wEAAwE;IACxE,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,KAAa,EACb,OAAwB,QAAQ;QAEhC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAChC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EACrB,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA8B,CAAC;IACjD,CAAC;IAED,6EAA6E;IAE7E,iEAAiE;IACjE,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA2B,CAAC;IAC9C,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAsB,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAqB,CAAC;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,aAAa,EACrC,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAAyD,CAAC;IAC5E,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,KAAK,EACL,iBAAiB,IAAI,CAAC,EAAE,cAAc,KAAK,EAAE,CAC9C,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAwC,CAAC;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,6EAA6E;IAE7E,mDAAmD;IACnD,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA2B,CAAC;IAC9C,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,EAAE,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA4C,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,MAAM,EACN,eAAe,EACf,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EACjB,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,QAAQ,EACR,iBAAiB,IAAI,CAAC,EAAE,EAAE,EAC1B,SAAS,EACT,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA0B,CAAC;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAlWD,gCAkWC;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAmIH,gFAAgF;AAChF,MAAa,SAAU,SAAQ,KAAK;IAClC,YACkB,MAAc,EACd,OAAe;QAE/B,KAAK,CAAC,aAAa,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAHzB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QAG/B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AARD,8BAQC;AAED,6EAA6E;AAE7E,MAAa,UAAU;IAQrB,YAAY,IAAuB;QACjC,IAAI,CAAC,IAAI,GAAS,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,GAAW,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAO,IAAI,CAAC,aAAa,IAAK,IAAK,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAM,IAAI,CAAC,cAAc,IAAI,KAAM,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,KAAK,CACjB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,SAAkB;QAElB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE;gBACxC,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,IAAc;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAwB,CAAC;YACrD,IAAI,IAAI,CAAC,KAAK;gBAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,kDAAkD;IACpD,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,EAAU,EACV,GAA4B,EAC5B,OAAmB,EAAE;QAErB,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,QAAQ;YAAI,OAAO,CAAC,SAAS,GAAI,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,CAAC,SAAS;YAAG,OAAO,CAAC,UAAU,GAAI,IAAI,CAAC,SAAS,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO;YAAK,OAAO,CAAC,QAAQ,GAAM,IAAI,CAAC,OAAO,CAAC;QACxD,IAAI,IAAI,CAAC,QAAQ;YAAI,OAAO,CAAC,QAAQ,GAAM,IAAI,CAAC,QAAQ,CAAC;QACzD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACxE,IAAI,IAAI,CAAC,IAAI;YAAQ,OAAO,CAAC,IAAI,GAAU,IAAI,CAAC,IAAI,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAO,OAAO,CAAC,KAAK,GAAQ,IAAI,CAAC,KAAK,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAI,OAAO,CAAC,MAAM,GAAQ,IAAI,CAAC,QAAQ,CAAC;QAEzD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3F,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAAwB,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;OAUG;IACK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc;QACvC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,GAAG,CAAC,KAAa;QAC9B,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;OASG;IACK,MAAM,CAAC,MAAM,CAAC,KAAa;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,EAAU,EACV,IAAa;QAEb,MAAM,EAAE,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,GACR,iBAAiB,IAAI,CAAC,EAAE,SAAS,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACrF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE3C,iEAAiE;QACjE,uEAAuE;QACvE,iDAAiD;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA8C,CAAC;QAC3E,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IAC1B,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,WAAW,CACvB,IAAY,EACZ,EAAU,EACV,IAAa;QAEb,MAAM,UAAU,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,QAAQ,IAAI,GAAG,UAAU,iBAAiB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAC3E,CAAC;QACF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,EAAU;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,QAAQ,EACR,iBAAiB,IAAI,CAAC,EAAE,SAAS,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAC7E,SAAS,EACT,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAqB,CAAC;QAClD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA0B,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAA8B,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,EAAE,OAAO,EAAE;YACrE,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,oEAAoE;YACpE,wDAAwD;YACxD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAsC,CAAC;gBACnE,IAAI,IAAI,CAAC,KAAK;oBAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;gBACjC,IAAI,IAAI,CAAC,GAAG;oBAAE,GAAG,GAAG,GAAG,GAAG,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACxB,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAyB,CAAC;IAC5C,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,GAAc;QACxB,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CACzB,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAChC,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CACrB,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAChC,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA0B,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAE7E,wEAAwE;IACxE,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,KAAa,EACb,OAAwB,QAAQ;QAEhC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAChC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EACrB,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA8B,CAAC;IACjD,CAAC;IAED,6EAA6E;IAE7E,iEAAiE;IACjE,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA2B,CAAC;IAC9C,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAsB,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAqB,CAAC;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,MAAM,EACN,iBAAiB,IAAI,CAAC,EAAE,aAAa,EACrC,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAAyD,CAAC;IAC5E,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;QAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,KAAK,EACL,iBAAiB,IAAI,CAAC,EAAE,cAAc,KAAK,EAAE,CAC9C,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAwC,CAAC;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,6EAA6E;IAE7E,mDAAmD;IACnD,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,EAA2B,CAAC;IAC9C,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,EAAE,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA4C,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,MAAM,EACN,eAAe,EACf,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EACjB,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC3B,QAAQ,EACR,iBAAiB,IAAI,CAAC,EAAE,EAAE,EAC1B,SAAS,EACT,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA0B,CAAC;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AA5dD,gCA4dC;AAED,kBAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nedb-engine-client",
3
- "version": "3.2.2",
3
+ "version": "3.3.0",
4
4
  "description": "TypeScript/JavaScript client for the nedbd HTTP API (nedb-engine)",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",