node-appwrite 18.0.0 → 19.0.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.
Files changed (55) hide show
  1. package/dist/client.js +2 -2
  2. package/dist/client.js.map +1 -1
  3. package/dist/client.mjs +2 -2
  4. package/dist/client.mjs.map +1 -1
  5. package/dist/enums/credit-card.d.mts +1 -1
  6. package/dist/enums/credit-card.d.ts +1 -1
  7. package/dist/enums/credit-card.js +1 -1
  8. package/dist/enums/credit-card.js.map +1 -1
  9. package/dist/enums/credit-card.mjs +1 -1
  10. package/dist/enums/credit-card.mjs.map +1 -1
  11. package/dist/enums/execution-method.d.mts +2 -1
  12. package/dist/enums/execution-method.d.ts +2 -1
  13. package/dist/enums/execution-method.js +1 -0
  14. package/dist/enums/execution-method.js.map +1 -1
  15. package/dist/enums/execution-method.mjs +1 -0
  16. package/dist/enums/execution-method.mjs.map +1 -1
  17. package/dist/enums/index-type.d.mts +2 -1
  18. package/dist/enums/index-type.d.ts +2 -1
  19. package/dist/enums/index-type.js +1 -0
  20. package/dist/enums/index-type.js.map +1 -1
  21. package/dist/enums/index-type.mjs +1 -0
  22. package/dist/enums/index-type.mjs.map +1 -1
  23. package/dist/models.d.mts +250 -4
  24. package/dist/models.d.ts +250 -4
  25. package/dist/query.d.mts +128 -8
  26. package/dist/query.d.ts +128 -8
  27. package/dist/query.js +123 -3
  28. package/dist/query.js.map +1 -1
  29. package/dist/query.mjs +123 -3
  30. package/dist/query.mjs.map +1 -1
  31. package/dist/services/account.d.mts +2 -2
  32. package/dist/services/account.d.ts +2 -2
  33. package/dist/services/account.js.map +1 -1
  34. package/dist/services/account.mjs.map +1 -1
  35. package/dist/services/avatars.d.mts +2 -2
  36. package/dist/services/avatars.d.ts +2 -2
  37. package/dist/services/avatars.js.map +1 -1
  38. package/dist/services/avatars.mjs.map +1 -1
  39. package/dist/services/databases.d.mts +202 -1
  40. package/dist/services/databases.d.ts +202 -1
  41. package/dist/services/databases.js +318 -9
  42. package/dist/services/databases.js.map +1 -1
  43. package/dist/services/databases.mjs +318 -9
  44. package/dist/services/databases.mjs.map +1 -1
  45. package/dist/services/functions.d.mts +2 -2
  46. package/dist/services/functions.d.ts +2 -2
  47. package/dist/services/functions.js.map +1 -1
  48. package/dist/services/functions.mjs.map +1 -1
  49. package/dist/services/tables-db.d.mts +195 -0
  50. package/dist/services/tables-db.d.ts +195 -0
  51. package/dist/services/tables-db.js +318 -0
  52. package/dist/services/tables-db.js.map +1 -1
  53. package/dist/services/tables-db.mjs +318 -0
  54. package/dist/services/tables-db.mjs.map +1 -1
  55. package/package.json +1 -1
package/dist/query.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  type QueryTypesSingle = string | number | boolean;
2
- type QueryTypesList = string[] | number[] | boolean[] | Query[];
2
+ type QueryTypesList = string[] | number[] | boolean[] | Query[] | any[];
3
3
  type QueryTypes = QueryTypesSingle | QueryTypesList;
4
4
  type AttributesTypes = string | string[];
5
5
  /**
@@ -27,18 +27,18 @@ declare class Query {
27
27
  * Filter resources where attribute is equal to value.
28
28
  *
29
29
  * @param {string} attribute
30
- * @param {QueryTypes} value
30
+ * @param {QueryTypes | any[]} value
31
31
  * @returns {string}
32
32
  */
33
- static equal: (attribute: string, value: QueryTypes) => string;
33
+ static equal: (attribute: string, value: QueryTypes | any[]) => string;
34
34
  /**
35
35
  * Filter resources where attribute is not equal to value.
36
36
  *
37
37
  * @param {string} attribute
38
- * @param {QueryTypes} value
38
+ * @param {QueryTypes | any[]} value
39
39
  * @returns {string}
40
40
  */
41
- static notEqual: (attribute: string, value: QueryTypes) => string;
41
+ static notEqual: (attribute: string, value: QueryTypes | any[]) => string;
42
42
  /**
43
43
  * Filter resources where attribute is less than value.
44
44
  *
@@ -175,15 +175,15 @@ declare class Query {
175
175
  * @param {string | string[]} value
176
176
  * @returns {string}
177
177
  */
178
- static contains: (attribute: string, value: string | string[]) => string;
178
+ static contains: (attribute: string, value: string | any[]) => string;
179
179
  /**
180
180
  * Filter resources where attribute does not contain the specified value.
181
181
  *
182
182
  * @param {string} attribute
183
- * @param {string | string[]} value
183
+ * @param {string | any[]} value
184
184
  * @returns {string}
185
185
  */
186
- static notContains: (attribute: string, value: string | string[]) => string;
186
+ static notContains: (attribute: string, value: string | any[]) => string;
187
187
  /**
188
188
  * Filter resources by searching attribute for value (inverse of search).
189
189
  * A fulltext index on attribute is required for this query to work.
@@ -232,6 +232,14 @@ declare class Query {
232
232
  * @returns {string}
233
233
  */
234
234
  static createdAfter: (value: string) => string;
235
+ /**
236
+ * Filter resources where document was created between dates.
237
+ *
238
+ * @param {string} start
239
+ * @param {string} end
240
+ * @returns {string}
241
+ */
242
+ static createdBetween: (start: string, end: string) => string;
235
243
  /**
236
244
  * Filter resources where document was updated before date.
237
245
  *
@@ -246,6 +254,14 @@ declare class Query {
246
254
  * @returns {string}
247
255
  */
248
256
  static updatedAfter: (value: string) => string;
257
+ /**
258
+ * Filter resources where document was updated between dates.
259
+ *
260
+ * @param {string} start
261
+ * @param {string} end
262
+ * @returns {string}
263
+ */
264
+ static updatedBetween: (start: string, end: string) => string;
249
265
  /**
250
266
  * Combine multiple queries using logical OR operator.
251
267
  *
@@ -260,6 +276,110 @@ declare class Query {
260
276
  * @returns {string}
261
277
  */
262
278
  static and: (queries: string[]) => string;
279
+ /**
280
+ * Filter resources where attribute is at a specific distance from the given coordinates.
281
+ *
282
+ * @param {string} attribute
283
+ * @param {any[]} values
284
+ * @param {number} distance
285
+ * @param {boolean} meters
286
+ * @returns {string}
287
+ */
288
+ static distanceEqual: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
289
+ /**
290
+ * Filter resources where attribute is not at a specific distance from the given coordinates.
291
+ *
292
+ * @param {string} attribute
293
+ * @param {any[]} values
294
+ * @param {number} distance
295
+ * @param {boolean} meters
296
+ * @returns {string}
297
+ */
298
+ static distanceNotEqual: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
299
+ /**
300
+ * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.
301
+ *
302
+ * @param {string} attribute
303
+ * @param {any[]} values
304
+ * @param {number} distance
305
+ * @param {boolean} meters
306
+ * @returns {string}
307
+ */
308
+ static distanceGreaterThan: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
309
+ /**
310
+ * Filter resources where attribute is at a distance less than the specified value from the given coordinates.
311
+ *
312
+ * @param {string} attribute
313
+ * @param {any[]} values
314
+ * @param {number} distance
315
+ * @param {boolean} meters
316
+ * @returns {string}
317
+ */
318
+ static distanceLessThan: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
319
+ /**
320
+ * Filter resources where attribute intersects with the given geometry.
321
+ *
322
+ * @param {string} attribute
323
+ * @param {any[]} values
324
+ * @returns {string}
325
+ */
326
+ static intersects: (attribute: string, values: any[]) => string;
327
+ /**
328
+ * Filter resources where attribute does not intersect with the given geometry.
329
+ *
330
+ * @param {string} attribute
331
+ * @param {any[]} values
332
+ * @returns {string}
333
+ */
334
+ static notIntersects: (attribute: string, values: any[]) => string;
335
+ /**
336
+ * Filter resources where attribute crosses the given geometry.
337
+ *
338
+ * @param {string} attribute
339
+ * @param {any[]} values
340
+ * @returns {string}
341
+ */
342
+ static crosses: (attribute: string, values: any[]) => string;
343
+ /**
344
+ * Filter resources where attribute does not cross the given geometry.
345
+ *
346
+ * @param {string} attribute
347
+ * @param {any[]} values
348
+ * @returns {string}
349
+ */
350
+ static notCrosses: (attribute: string, values: any[]) => string;
351
+ /**
352
+ * Filter resources where attribute overlaps with the given geometry.
353
+ *
354
+ * @param {string} attribute
355
+ * @param {any[]} values
356
+ * @returns {string}
357
+ */
358
+ static overlaps: (attribute: string, values: any[]) => string;
359
+ /**
360
+ * Filter resources where attribute does not overlap with the given geometry.
361
+ *
362
+ * @param {string} attribute
363
+ * @param {any[]} values
364
+ * @returns {string}
365
+ */
366
+ static notOverlaps: (attribute: string, values: any[]) => string;
367
+ /**
368
+ * Filter resources where attribute touches the given geometry.
369
+ *
370
+ * @param {string} attribute
371
+ * @param {any[]} values
372
+ * @returns {string}
373
+ */
374
+ static touches: (attribute: string, values: any[]) => string;
375
+ /**
376
+ * Filter resources where attribute does not touch the given geometry.
377
+ *
378
+ * @param {string} attribute
379
+ * @param {any[]} values
380
+ * @returns {string}
381
+ */
382
+ static notTouches: (attribute: string, values: any[]) => string;
263
383
  }
264
384
 
265
385
  export { Query, QueryTypes, QueryTypesList };
package/dist/query.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  type QueryTypesSingle = string | number | boolean;
2
- type QueryTypesList = string[] | number[] | boolean[] | Query[];
2
+ type QueryTypesList = string[] | number[] | boolean[] | Query[] | any[];
3
3
  type QueryTypes = QueryTypesSingle | QueryTypesList;
4
4
  type AttributesTypes = string | string[];
5
5
  /**
@@ -27,18 +27,18 @@ declare class Query {
27
27
  * Filter resources where attribute is equal to value.
28
28
  *
29
29
  * @param {string} attribute
30
- * @param {QueryTypes} value
30
+ * @param {QueryTypes | any[]} value
31
31
  * @returns {string}
32
32
  */
33
- static equal: (attribute: string, value: QueryTypes) => string;
33
+ static equal: (attribute: string, value: QueryTypes | any[]) => string;
34
34
  /**
35
35
  * Filter resources where attribute is not equal to value.
36
36
  *
37
37
  * @param {string} attribute
38
- * @param {QueryTypes} value
38
+ * @param {QueryTypes | any[]} value
39
39
  * @returns {string}
40
40
  */
41
- static notEqual: (attribute: string, value: QueryTypes) => string;
41
+ static notEqual: (attribute: string, value: QueryTypes | any[]) => string;
42
42
  /**
43
43
  * Filter resources where attribute is less than value.
44
44
  *
@@ -175,15 +175,15 @@ declare class Query {
175
175
  * @param {string | string[]} value
176
176
  * @returns {string}
177
177
  */
178
- static contains: (attribute: string, value: string | string[]) => string;
178
+ static contains: (attribute: string, value: string | any[]) => string;
179
179
  /**
180
180
  * Filter resources where attribute does not contain the specified value.
181
181
  *
182
182
  * @param {string} attribute
183
- * @param {string | string[]} value
183
+ * @param {string | any[]} value
184
184
  * @returns {string}
185
185
  */
186
- static notContains: (attribute: string, value: string | string[]) => string;
186
+ static notContains: (attribute: string, value: string | any[]) => string;
187
187
  /**
188
188
  * Filter resources by searching attribute for value (inverse of search).
189
189
  * A fulltext index on attribute is required for this query to work.
@@ -232,6 +232,14 @@ declare class Query {
232
232
  * @returns {string}
233
233
  */
234
234
  static createdAfter: (value: string) => string;
235
+ /**
236
+ * Filter resources where document was created between dates.
237
+ *
238
+ * @param {string} start
239
+ * @param {string} end
240
+ * @returns {string}
241
+ */
242
+ static createdBetween: (start: string, end: string) => string;
235
243
  /**
236
244
  * Filter resources where document was updated before date.
237
245
  *
@@ -246,6 +254,14 @@ declare class Query {
246
254
  * @returns {string}
247
255
  */
248
256
  static updatedAfter: (value: string) => string;
257
+ /**
258
+ * Filter resources where document was updated between dates.
259
+ *
260
+ * @param {string} start
261
+ * @param {string} end
262
+ * @returns {string}
263
+ */
264
+ static updatedBetween: (start: string, end: string) => string;
249
265
  /**
250
266
  * Combine multiple queries using logical OR operator.
251
267
  *
@@ -260,6 +276,110 @@ declare class Query {
260
276
  * @returns {string}
261
277
  */
262
278
  static and: (queries: string[]) => string;
279
+ /**
280
+ * Filter resources where attribute is at a specific distance from the given coordinates.
281
+ *
282
+ * @param {string} attribute
283
+ * @param {any[]} values
284
+ * @param {number} distance
285
+ * @param {boolean} meters
286
+ * @returns {string}
287
+ */
288
+ static distanceEqual: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
289
+ /**
290
+ * Filter resources where attribute is not at a specific distance from the given coordinates.
291
+ *
292
+ * @param {string} attribute
293
+ * @param {any[]} values
294
+ * @param {number} distance
295
+ * @param {boolean} meters
296
+ * @returns {string}
297
+ */
298
+ static distanceNotEqual: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
299
+ /**
300
+ * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.
301
+ *
302
+ * @param {string} attribute
303
+ * @param {any[]} values
304
+ * @param {number} distance
305
+ * @param {boolean} meters
306
+ * @returns {string}
307
+ */
308
+ static distanceGreaterThan: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
309
+ /**
310
+ * Filter resources where attribute is at a distance less than the specified value from the given coordinates.
311
+ *
312
+ * @param {string} attribute
313
+ * @param {any[]} values
314
+ * @param {number} distance
315
+ * @param {boolean} meters
316
+ * @returns {string}
317
+ */
318
+ static distanceLessThan: (attribute: string, values: any[], distance: number, meters?: boolean) => string;
319
+ /**
320
+ * Filter resources where attribute intersects with the given geometry.
321
+ *
322
+ * @param {string} attribute
323
+ * @param {any[]} values
324
+ * @returns {string}
325
+ */
326
+ static intersects: (attribute: string, values: any[]) => string;
327
+ /**
328
+ * Filter resources where attribute does not intersect with the given geometry.
329
+ *
330
+ * @param {string} attribute
331
+ * @param {any[]} values
332
+ * @returns {string}
333
+ */
334
+ static notIntersects: (attribute: string, values: any[]) => string;
335
+ /**
336
+ * Filter resources where attribute crosses the given geometry.
337
+ *
338
+ * @param {string} attribute
339
+ * @param {any[]} values
340
+ * @returns {string}
341
+ */
342
+ static crosses: (attribute: string, values: any[]) => string;
343
+ /**
344
+ * Filter resources where attribute does not cross the given geometry.
345
+ *
346
+ * @param {string} attribute
347
+ * @param {any[]} values
348
+ * @returns {string}
349
+ */
350
+ static notCrosses: (attribute: string, values: any[]) => string;
351
+ /**
352
+ * Filter resources where attribute overlaps with the given geometry.
353
+ *
354
+ * @param {string} attribute
355
+ * @param {any[]} values
356
+ * @returns {string}
357
+ */
358
+ static overlaps: (attribute: string, values: any[]) => string;
359
+ /**
360
+ * Filter resources where attribute does not overlap with the given geometry.
361
+ *
362
+ * @param {string} attribute
363
+ * @param {any[]} values
364
+ * @returns {string}
365
+ */
366
+ static notOverlaps: (attribute: string, values: any[]) => string;
367
+ /**
368
+ * Filter resources where attribute touches the given geometry.
369
+ *
370
+ * @param {string} attribute
371
+ * @param {any[]} values
372
+ * @returns {string}
373
+ */
374
+ static touches: (attribute: string, values: any[]) => string;
375
+ /**
376
+ * Filter resources where attribute does not touch the given geometry.
377
+ *
378
+ * @param {string} attribute
379
+ * @param {any[]} values
380
+ * @returns {string}
381
+ */
382
+ static notTouches: (attribute: string, values: any[]) => string;
263
383
  }
264
384
 
265
385
  export { Query, QueryTypes, QueryTypesList };
package/dist/query.js CHANGED
@@ -36,7 +36,7 @@ const _Query = class _Query {
36
36
  * Filter resources where attribute is equal to value.
37
37
  *
38
38
  * @param {string} attribute
39
- * @param {QueryTypes} value
39
+ * @param {QueryTypes | any[]} value
40
40
  * @returns {string}
41
41
  */
42
42
  _Query.equal = (attribute, value) => new _Query("equal", attribute, value).toString();
@@ -44,7 +44,7 @@ _Query.equal = (attribute, value) => new _Query("equal", attribute, value).toStr
44
44
  * Filter resources where attribute is not equal to value.
45
45
  *
46
46
  * @param {string} attribute
47
- * @param {QueryTypes} value
47
+ * @param {QueryTypes | any[]} value
48
48
  * @returns {string}
49
49
  */
50
50
  _Query.notEqual = (attribute, value) => new _Query("notEqual", attribute, value).toString();
@@ -189,7 +189,7 @@ _Query.contains = (attribute, value) => new _Query("contains", attribute, value)
189
189
  * Filter resources where attribute does not contain the specified value.
190
190
  *
191
191
  * @param {string} attribute
192
- * @param {string | string[]} value
192
+ * @param {string | any[]} value
193
193
  * @returns {string}
194
194
  */
195
195
  _Query.notContains = (attribute, value) => new _Query("notContains", attribute, value).toString();
@@ -241,6 +241,14 @@ _Query.createdBefore = (value) => new _Query("createdBefore", void 0, value).toS
241
241
  * @returns {string}
242
242
  */
243
243
  _Query.createdAfter = (value) => new _Query("createdAfter", void 0, value).toString();
244
+ /**
245
+ * Filter resources where document was created between dates.
246
+ *
247
+ * @param {string} start
248
+ * @param {string} end
249
+ * @returns {string}
250
+ */
251
+ _Query.createdBetween = (start, end) => new _Query("createdBetween", void 0, [start, end]).toString();
244
252
  /**
245
253
  * Filter resources where document was updated before date.
246
254
  *
@@ -255,6 +263,14 @@ _Query.updatedBefore = (value) => new _Query("updatedBefore", void 0, value).toS
255
263
  * @returns {string}
256
264
  */
257
265
  _Query.updatedAfter = (value) => new _Query("updatedAfter", void 0, value).toString();
266
+ /**
267
+ * Filter resources where document was updated between dates.
268
+ *
269
+ * @param {string} start
270
+ * @param {string} end
271
+ * @returns {string}
272
+ */
273
+ _Query.updatedBetween = (start, end) => new _Query("updatedBetween", void 0, [start, end]).toString();
258
274
  /**
259
275
  * Combine multiple queries using logical OR operator.
260
276
  *
@@ -269,6 +285,110 @@ _Query.or = (queries) => new _Query("or", void 0, queries.map((query) => JSON.pa
269
285
  * @returns {string}
270
286
  */
271
287
  _Query.and = (queries) => new _Query("and", void 0, queries.map((query) => JSON.parse(query))).toString();
288
+ /**
289
+ * Filter resources where attribute is at a specific distance from the given coordinates.
290
+ *
291
+ * @param {string} attribute
292
+ * @param {any[]} values
293
+ * @param {number} distance
294
+ * @param {boolean} meters
295
+ * @returns {string}
296
+ */
297
+ _Query.distanceEqual = (attribute, values, distance, meters = true) => new _Query("distanceEqual", attribute, [[values, distance, meters]]).toString();
298
+ /**
299
+ * Filter resources where attribute is not at a specific distance from the given coordinates.
300
+ *
301
+ * @param {string} attribute
302
+ * @param {any[]} values
303
+ * @param {number} distance
304
+ * @param {boolean} meters
305
+ * @returns {string}
306
+ */
307
+ _Query.distanceNotEqual = (attribute, values, distance, meters = true) => new _Query("distanceNotEqual", attribute, [[values, distance, meters]]).toString();
308
+ /**
309
+ * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.
310
+ *
311
+ * @param {string} attribute
312
+ * @param {any[]} values
313
+ * @param {number} distance
314
+ * @param {boolean} meters
315
+ * @returns {string}
316
+ */
317
+ _Query.distanceGreaterThan = (attribute, values, distance, meters = true) => new _Query("distanceGreaterThan", attribute, [[values, distance, meters]]).toString();
318
+ /**
319
+ * Filter resources where attribute is at a distance less than the specified value from the given coordinates.
320
+ *
321
+ * @param {string} attribute
322
+ * @param {any[]} values
323
+ * @param {number} distance
324
+ * @param {boolean} meters
325
+ * @returns {string}
326
+ */
327
+ _Query.distanceLessThan = (attribute, values, distance, meters = true) => new _Query("distanceLessThan", attribute, [[values, distance, meters]]).toString();
328
+ /**
329
+ * Filter resources where attribute intersects with the given geometry.
330
+ *
331
+ * @param {string} attribute
332
+ * @param {any[]} values
333
+ * @returns {string}
334
+ */
335
+ _Query.intersects = (attribute, values) => new _Query("intersects", attribute, [values]).toString();
336
+ /**
337
+ * Filter resources where attribute does not intersect with the given geometry.
338
+ *
339
+ * @param {string} attribute
340
+ * @param {any[]} values
341
+ * @returns {string}
342
+ */
343
+ _Query.notIntersects = (attribute, values) => new _Query("notIntersects", attribute, [values]).toString();
344
+ /**
345
+ * Filter resources where attribute crosses the given geometry.
346
+ *
347
+ * @param {string} attribute
348
+ * @param {any[]} values
349
+ * @returns {string}
350
+ */
351
+ _Query.crosses = (attribute, values) => new _Query("crosses", attribute, [values]).toString();
352
+ /**
353
+ * Filter resources where attribute does not cross the given geometry.
354
+ *
355
+ * @param {string} attribute
356
+ * @param {any[]} values
357
+ * @returns {string}
358
+ */
359
+ _Query.notCrosses = (attribute, values) => new _Query("notCrosses", attribute, [values]).toString();
360
+ /**
361
+ * Filter resources where attribute overlaps with the given geometry.
362
+ *
363
+ * @param {string} attribute
364
+ * @param {any[]} values
365
+ * @returns {string}
366
+ */
367
+ _Query.overlaps = (attribute, values) => new _Query("overlaps", attribute, [values]).toString();
368
+ /**
369
+ * Filter resources where attribute does not overlap with the given geometry.
370
+ *
371
+ * @param {string} attribute
372
+ * @param {any[]} values
373
+ * @returns {string}
374
+ */
375
+ _Query.notOverlaps = (attribute, values) => new _Query("notOverlaps", attribute, [values]).toString();
376
+ /**
377
+ * Filter resources where attribute touches the given geometry.
378
+ *
379
+ * @param {string} attribute
380
+ * @param {any[]} values
381
+ * @returns {string}
382
+ */
383
+ _Query.touches = (attribute, values) => new _Query("touches", attribute, [values]).toString();
384
+ /**
385
+ * Filter resources where attribute does not touch the given geometry.
386
+ *
387
+ * @param {string} attribute
388
+ * @param {any[]} values
389
+ * @returns {string}
390
+ */
391
+ _Query.notTouches = (attribute, values) => new _Query("notTouches", attribute, [values]).toString();
272
392
  let Query = _Query;
273
393
 
274
394
  exports.Query = Query;
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","sourcesContent":["type QueryTypesSingle = string | number | boolean;\nexport type QueryTypesList = string[] | number[] | boolean[] | Query[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n *\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | string[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | string[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n new Query(\"createdBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n new Query(\"createdAfter\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n new Query(\"updatedBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n new Query(\"updatedAfter\", undefined, value).toString();\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSON.parse(query))).toString();\n}\n"]}
1
+ {"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","sourcesContent":["type QueryTypesSingle = string | number | boolean;\nexport type QueryTypesList = string[] | number[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes | any[]} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes | any[]): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes | any[]} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes | any[]): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n *\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n new Query(\"createdBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n new Query(\"createdAfter\", undefined, value).toString();\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n new Query(\"createdBetween\", undefined, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n new Query(\"updatedBefore\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n new Query(\"updatedAfter\", undefined, value).toString();\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n new Query(\"updatedBetween\", undefined, [start, end] as QueryTypesList).toString();\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}