node-appwrite 17.1.0 → 18.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 (112) hide show
  1. package/README.md +67 -2
  2. package/dist/client.js +3 -3
  3. package/dist/client.js.map +1 -1
  4. package/dist/client.mjs +3 -3
  5. package/dist/client.mjs.map +1 -1
  6. package/dist/enums/{v-c-s-deployment-type.js → vcs-deployment-type.js} +1 -1
  7. package/dist/enums/vcs-deployment-type.js.map +1 -0
  8. package/dist/enums/{v-c-s-deployment-type.mjs → vcs-deployment-type.mjs} +2 -2
  9. package/dist/enums/vcs-deployment-type.mjs.map +1 -0
  10. package/dist/index.d.mts +2 -1
  11. package/dist/index.d.ts +2 -1
  12. package/dist/index.js +7 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +2 -1
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/models.d.mts +829 -145
  17. package/dist/models.d.ts +829 -145
  18. package/dist/query.d.mts +70 -0
  19. package/dist/query.d.ts +70 -0
  20. package/dist/query.js +70 -0
  21. package/dist/query.js.map +1 -1
  22. package/dist/query.mjs +70 -0
  23. package/dist/query.mjs.map +1 -1
  24. package/dist/services/account.d.mts +656 -101
  25. package/dist/services/account.d.ts +656 -101
  26. package/dist/services/account.js +592 -292
  27. package/dist/services/account.js.map +1 -1
  28. package/dist/services/account.mjs +592 -292
  29. package/dist/services/account.mjs.map +1 -1
  30. package/dist/services/avatars.d.mts +176 -45
  31. package/dist/services/avatars.d.ts +176 -45
  32. package/dist/services/avatars.js +104 -93
  33. package/dist/services/avatars.js.map +1 -1
  34. package/dist/services/avatars.mjs +104 -93
  35. package/dist/services/avatars.mjs.map +1 -1
  36. package/dist/services/databases.d.mts +1274 -271
  37. package/dist/services/databases.d.ts +1274 -271
  38. package/dist/services/databases.js +939 -584
  39. package/dist/services/databases.js.map +1 -1
  40. package/dist/services/databases.mjs +939 -584
  41. package/dist/services/databases.mjs.map +1 -1
  42. package/dist/services/functions.d.mts +537 -114
  43. package/dist/services/functions.d.ts +537 -114
  44. package/dist/services/functions.js +393 -276
  45. package/dist/services/functions.js.map +1 -1
  46. package/dist/services/functions.mjs +393 -276
  47. package/dist/services/functions.mjs.map +1 -1
  48. package/dist/services/graphql.d.mts +24 -2
  49. package/dist/services/graphql.d.ts +24 -2
  50. package/dist/services/graphql.js +20 -16
  51. package/dist/services/graphql.js.map +1 -1
  52. package/dist/services/graphql.mjs +20 -16
  53. package/dist/services/graphql.mjs.map +1 -1
  54. package/dist/services/health.d.mts +176 -17
  55. package/dist/services/health.d.ts +176 -17
  56. package/dist/services/health.js +144 -115
  57. package/dist/services/health.js.map +1 -1
  58. package/dist/services/health.mjs +144 -115
  59. package/dist/services/health.mjs.map +1 -1
  60. package/dist/services/locale.d.mts +2 -2
  61. package/dist/services/locale.d.ts +2 -2
  62. package/dist/services/locale.js +7 -7
  63. package/dist/services/locale.js.map +1 -1
  64. package/dist/services/locale.mjs +7 -7
  65. package/dist/services/locale.mjs.map +1 -1
  66. package/dist/services/messaging.d.mts +1552 -270
  67. package/dist/services/messaging.d.ts +1552 -270
  68. package/dist/services/messaging.js +1417 -592
  69. package/dist/services/messaging.js.map +1 -1
  70. package/dist/services/messaging.mjs +1417 -592
  71. package/dist/services/messaging.mjs.map +1 -1
  72. package/dist/services/sites.d.mts +499 -103
  73. package/dist/services/sites.d.ts +499 -103
  74. package/dist/services/sites.js +371 -258
  75. package/dist/services/sites.js.map +1 -1
  76. package/dist/services/sites.mjs +371 -258
  77. package/dist/services/sites.mjs.map +1 -1
  78. package/dist/services/storage.d.mts +311 -68
  79. package/dist/services/storage.d.ts +311 -68
  80. package/dist/services/storage.js +225 -158
  81. package/dist/services/storage.js.map +1 -1
  82. package/dist/services/storage.mjs +225 -158
  83. package/dist/services/storage.mjs.map +1 -1
  84. package/dist/services/tables-db.d.mts +1549 -0
  85. package/dist/services/tables-db.d.ts +1549 -0
  86. package/dist/services/tables-db.js +2374 -0
  87. package/dist/services/tables-db.js.map +1 -0
  88. package/dist/services/tables-db.mjs +2373 -0
  89. package/dist/services/tables-db.mjs.map +1 -0
  90. package/dist/services/teams.d.mts +249 -55
  91. package/dist/services/teams.d.ts +249 -55
  92. package/dist/services/teams.js +170 -135
  93. package/dist/services/teams.js.map +1 -1
  94. package/dist/services/teams.mjs +170 -135
  95. package/dist/services/teams.mjs.map +1 -1
  96. package/dist/services/tokens.d.mts +76 -11
  97. package/dist/services/tokens.d.ts +76 -11
  98. package/dist/services/tokens.js +60 -45
  99. package/dist/services/tokens.js.map +1 -1
  100. package/dist/services/tokens.mjs +60 -45
  101. package/dist/services/tokens.mjs.map +1 -1
  102. package/dist/services/users.d.mts +867 -140
  103. package/dist/services/users.d.ts +867 -140
  104. package/dist/services/users.js +719 -408
  105. package/dist/services/users.js.map +1 -1
  106. package/dist/services/users.mjs +719 -408
  107. package/dist/services/users.mjs.map +1 -1
  108. package/package.json +1 -1
  109. package/dist/enums/v-c-s-deployment-type.js.map +0 -1
  110. package/dist/enums/v-c-s-deployment-type.mjs.map +0 -1
  111. /package/dist/enums/{v-c-s-deployment-type.d.mts → vcs-deployment-type.d.mts} +0 -0
  112. /package/dist/enums/{v-c-s-deployment-type.d.ts → vcs-deployment-type.d.ts} +0 -0
package/dist/query.d.mts CHANGED
@@ -176,6 +176,76 @@ declare class Query {
176
176
  * @returns {string}
177
177
  */
178
178
  static contains: (attribute: string, value: string | string[]) => string;
179
+ /**
180
+ * Filter resources where attribute does not contain the specified value.
181
+ *
182
+ * @param {string} attribute
183
+ * @param {string | string[]} value
184
+ * @returns {string}
185
+ */
186
+ static notContains: (attribute: string, value: string | string[]) => string;
187
+ /**
188
+ * Filter resources by searching attribute for value (inverse of search).
189
+ * A fulltext index on attribute is required for this query to work.
190
+ *
191
+ * @param {string} attribute
192
+ * @param {string} value
193
+ * @returns {string}
194
+ */
195
+ static notSearch: (attribute: string, value: string) => string;
196
+ /**
197
+ * Filter resources where attribute is not between start and end (exclusive).
198
+ *
199
+ * @param {string} attribute
200
+ * @param {string | number} start
201
+ * @param {string | number} end
202
+ * @returns {string}
203
+ */
204
+ static notBetween: (attribute: string, start: string | number, end: string | number) => string;
205
+ /**
206
+ * Filter resources where attribute does not start with value.
207
+ *
208
+ * @param {string} attribute
209
+ * @param {string} value
210
+ * @returns {string}
211
+ */
212
+ static notStartsWith: (attribute: string, value: string) => string;
213
+ /**
214
+ * Filter resources where attribute does not end with value.
215
+ *
216
+ * @param {string} attribute
217
+ * @param {string} value
218
+ * @returns {string}
219
+ */
220
+ static notEndsWith: (attribute: string, value: string) => string;
221
+ /**
222
+ * Filter resources where document was created before date.
223
+ *
224
+ * @param {string} value
225
+ * @returns {string}
226
+ */
227
+ static createdBefore: (value: string) => string;
228
+ /**
229
+ * Filter resources where document was created after date.
230
+ *
231
+ * @param {string} value
232
+ * @returns {string}
233
+ */
234
+ static createdAfter: (value: string) => string;
235
+ /**
236
+ * Filter resources where document was updated before date.
237
+ *
238
+ * @param {string} value
239
+ * @returns {string}
240
+ */
241
+ static updatedBefore: (value: string) => string;
242
+ /**
243
+ * Filter resources where document was updated after date.
244
+ *
245
+ * @param {string} value
246
+ * @returns {string}
247
+ */
248
+ static updatedAfter: (value: string) => string;
179
249
  /**
180
250
  * Combine multiple queries using logical OR operator.
181
251
  *
package/dist/query.d.ts CHANGED
@@ -176,6 +176,76 @@ declare class Query {
176
176
  * @returns {string}
177
177
  */
178
178
  static contains: (attribute: string, value: string | string[]) => string;
179
+ /**
180
+ * Filter resources where attribute does not contain the specified value.
181
+ *
182
+ * @param {string} attribute
183
+ * @param {string | string[]} value
184
+ * @returns {string}
185
+ */
186
+ static notContains: (attribute: string, value: string | string[]) => string;
187
+ /**
188
+ * Filter resources by searching attribute for value (inverse of search).
189
+ * A fulltext index on attribute is required for this query to work.
190
+ *
191
+ * @param {string} attribute
192
+ * @param {string} value
193
+ * @returns {string}
194
+ */
195
+ static notSearch: (attribute: string, value: string) => string;
196
+ /**
197
+ * Filter resources where attribute is not between start and end (exclusive).
198
+ *
199
+ * @param {string} attribute
200
+ * @param {string | number} start
201
+ * @param {string | number} end
202
+ * @returns {string}
203
+ */
204
+ static notBetween: (attribute: string, start: string | number, end: string | number) => string;
205
+ /**
206
+ * Filter resources where attribute does not start with value.
207
+ *
208
+ * @param {string} attribute
209
+ * @param {string} value
210
+ * @returns {string}
211
+ */
212
+ static notStartsWith: (attribute: string, value: string) => string;
213
+ /**
214
+ * Filter resources where attribute does not end with value.
215
+ *
216
+ * @param {string} attribute
217
+ * @param {string} value
218
+ * @returns {string}
219
+ */
220
+ static notEndsWith: (attribute: string, value: string) => string;
221
+ /**
222
+ * Filter resources where document was created before date.
223
+ *
224
+ * @param {string} value
225
+ * @returns {string}
226
+ */
227
+ static createdBefore: (value: string) => string;
228
+ /**
229
+ * Filter resources where document was created after date.
230
+ *
231
+ * @param {string} value
232
+ * @returns {string}
233
+ */
234
+ static createdAfter: (value: string) => string;
235
+ /**
236
+ * Filter resources where document was updated before date.
237
+ *
238
+ * @param {string} value
239
+ * @returns {string}
240
+ */
241
+ static updatedBefore: (value: string) => string;
242
+ /**
243
+ * Filter resources where document was updated after date.
244
+ *
245
+ * @param {string} value
246
+ * @returns {string}
247
+ */
248
+ static updatedAfter: (value: string) => string;
179
249
  /**
180
250
  * Combine multiple queries using logical OR operator.
181
251
  *
package/dist/query.js CHANGED
@@ -185,6 +185,76 @@ _Query.offset = (offset) => new _Query("offset", void 0, offset).toString();
185
185
  * @returns {string}
186
186
  */
187
187
  _Query.contains = (attribute, value) => new _Query("contains", attribute, value).toString();
188
+ /**
189
+ * Filter resources where attribute does not contain the specified value.
190
+ *
191
+ * @param {string} attribute
192
+ * @param {string | string[]} value
193
+ * @returns {string}
194
+ */
195
+ _Query.notContains = (attribute, value) => new _Query("notContains", attribute, value).toString();
196
+ /**
197
+ * Filter resources by searching attribute for value (inverse of search).
198
+ * A fulltext index on attribute is required for this query to work.
199
+ *
200
+ * @param {string} attribute
201
+ * @param {string} value
202
+ * @returns {string}
203
+ */
204
+ _Query.notSearch = (attribute, value) => new _Query("notSearch", attribute, value).toString();
205
+ /**
206
+ * Filter resources where attribute is not between start and end (exclusive).
207
+ *
208
+ * @param {string} attribute
209
+ * @param {string | number} start
210
+ * @param {string | number} end
211
+ * @returns {string}
212
+ */
213
+ _Query.notBetween = (attribute, start, end) => new _Query("notBetween", attribute, [start, end]).toString();
214
+ /**
215
+ * Filter resources where attribute does not start with value.
216
+ *
217
+ * @param {string} attribute
218
+ * @param {string} value
219
+ * @returns {string}
220
+ */
221
+ _Query.notStartsWith = (attribute, value) => new _Query("notStartsWith", attribute, value).toString();
222
+ /**
223
+ * Filter resources where attribute does not end with value.
224
+ *
225
+ * @param {string} attribute
226
+ * @param {string} value
227
+ * @returns {string}
228
+ */
229
+ _Query.notEndsWith = (attribute, value) => new _Query("notEndsWith", attribute, value).toString();
230
+ /**
231
+ * Filter resources where document was created before date.
232
+ *
233
+ * @param {string} value
234
+ * @returns {string}
235
+ */
236
+ _Query.createdBefore = (value) => new _Query("createdBefore", void 0, value).toString();
237
+ /**
238
+ * Filter resources where document was created after date.
239
+ *
240
+ * @param {string} value
241
+ * @returns {string}
242
+ */
243
+ _Query.createdAfter = (value) => new _Query("createdAfter", void 0, value).toString();
244
+ /**
245
+ * Filter resources where document was updated before date.
246
+ *
247
+ * @param {string} value
248
+ * @returns {string}
249
+ */
250
+ _Query.updatedBefore = (value) => new _Query("updatedBefore", void 0, value).toString();
251
+ /**
252
+ * Filter resources where document was updated after date.
253
+ *
254
+ * @param {string} value
255
+ * @returns {string}
256
+ */
257
+ _Query.updatedAfter = (value) => new _Query("updatedAfter", void 0, value).toString();
188
258
  /**
189
259
  * Combine multiple queries using logical OR operator.
190
260
  *
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 * 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[];\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"]}
package/dist/query.mjs CHANGED
@@ -184,6 +184,76 @@ _Query.offset = (offset) => new _Query("offset", void 0, offset).toString();
184
184
  * @returns {string}
185
185
  */
186
186
  _Query.contains = (attribute, value) => new _Query("contains", attribute, value).toString();
187
+ /**
188
+ * Filter resources where attribute does not contain the specified value.
189
+ *
190
+ * @param {string} attribute
191
+ * @param {string | string[]} value
192
+ * @returns {string}
193
+ */
194
+ _Query.notContains = (attribute, value) => new _Query("notContains", attribute, value).toString();
195
+ /**
196
+ * Filter resources by searching attribute for value (inverse of search).
197
+ * A fulltext index on attribute is required for this query to work.
198
+ *
199
+ * @param {string} attribute
200
+ * @param {string} value
201
+ * @returns {string}
202
+ */
203
+ _Query.notSearch = (attribute, value) => new _Query("notSearch", attribute, value).toString();
204
+ /**
205
+ * Filter resources where attribute is not between start and end (exclusive).
206
+ *
207
+ * @param {string} attribute
208
+ * @param {string | number} start
209
+ * @param {string | number} end
210
+ * @returns {string}
211
+ */
212
+ _Query.notBetween = (attribute, start, end) => new _Query("notBetween", attribute, [start, end]).toString();
213
+ /**
214
+ * Filter resources where attribute does not start with value.
215
+ *
216
+ * @param {string} attribute
217
+ * @param {string} value
218
+ * @returns {string}
219
+ */
220
+ _Query.notStartsWith = (attribute, value) => new _Query("notStartsWith", attribute, value).toString();
221
+ /**
222
+ * Filter resources where attribute does not end with value.
223
+ *
224
+ * @param {string} attribute
225
+ * @param {string} value
226
+ * @returns {string}
227
+ */
228
+ _Query.notEndsWith = (attribute, value) => new _Query("notEndsWith", attribute, value).toString();
229
+ /**
230
+ * Filter resources where document was created before date.
231
+ *
232
+ * @param {string} value
233
+ * @returns {string}
234
+ */
235
+ _Query.createdBefore = (value) => new _Query("createdBefore", void 0, value).toString();
236
+ /**
237
+ * Filter resources where document was created after date.
238
+ *
239
+ * @param {string} value
240
+ * @returns {string}
241
+ */
242
+ _Query.createdAfter = (value) => new _Query("createdAfter", void 0, value).toString();
243
+ /**
244
+ * Filter resources where document was updated before date.
245
+ *
246
+ * @param {string} value
247
+ * @returns {string}
248
+ */
249
+ _Query.updatedBefore = (value) => new _Query("updatedBefore", void 0, value).toString();
250
+ /**
251
+ * Filter resources where document was updated after date.
252
+ *
253
+ * @param {string} value
254
+ * @returns {string}
255
+ */
256
+ _Query.updatedAfter = (value) => new _Query("updatedAfter", void 0, value).toString();
187
257
  /**
188
258
  * Combine multiple queries using logical OR operator.
189
259
  *
@@ -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 * 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[];\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"]}