node-appwrite 20.2.1 → 21.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 (147) 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/build-runtime.d.mts +3 -1
  6. package/dist/enums/build-runtime.d.ts +3 -1
  7. package/dist/enums/build-runtime.js +2 -0
  8. package/dist/enums/build-runtime.js.map +1 -1
  9. package/dist/enums/build-runtime.mjs +2 -0
  10. package/dist/enums/build-runtime.mjs.map +1 -1
  11. package/dist/enums/execution-status.d.mts +2 -1
  12. package/dist/enums/execution-status.d.ts +2 -1
  13. package/dist/enums/execution-status.js +1 -0
  14. package/dist/enums/execution-status.js.map +1 -1
  15. package/dist/enums/execution-status.mjs +1 -0
  16. package/dist/enums/execution-status.mjs.map +1 -1
  17. package/dist/enums/framework.d.mts +1 -0
  18. package/dist/enums/framework.d.ts +1 -0
  19. package/dist/enums/framework.js +1 -0
  20. package/dist/enums/framework.js.map +1 -1
  21. package/dist/enums/framework.mjs +1 -0
  22. package/dist/enums/framework.mjs.map +1 -1
  23. package/dist/enums/output.d.mts +11 -0
  24. package/dist/enums/output.d.ts +11 -0
  25. package/dist/enums/output.js +16 -0
  26. package/dist/enums/output.js.map +1 -0
  27. package/dist/enums/output.mjs +15 -0
  28. package/dist/enums/output.mjs.map +1 -0
  29. package/dist/enums/runtime.d.mts +3 -1
  30. package/dist/enums/runtime.d.ts +3 -1
  31. package/dist/enums/runtime.js +2 -0
  32. package/dist/enums/runtime.js.map +1 -1
  33. package/dist/enums/runtime.mjs +2 -0
  34. package/dist/enums/runtime.mjs.map +1 -1
  35. package/dist/enums/template-reference-type.d.mts +7 -0
  36. package/dist/enums/template-reference-type.d.ts +7 -0
  37. package/dist/enums/template-reference-type.js +12 -0
  38. package/dist/enums/template-reference-type.js.map +1 -0
  39. package/dist/enums/template-reference-type.mjs +11 -0
  40. package/dist/enums/template-reference-type.mjs.map +1 -0
  41. package/dist/enums/theme.d.mts +6 -0
  42. package/dist/enums/theme.d.ts +6 -0
  43. package/dist/enums/theme.js +11 -0
  44. package/dist/enums/theme.js.map +1 -0
  45. package/dist/enums/theme.mjs +10 -0
  46. package/dist/enums/theme.mjs.map +1 -0
  47. package/dist/enums/timezone.d.mts +423 -0
  48. package/dist/enums/timezone.d.ts +423 -0
  49. package/dist/enums/timezone.js +428 -0
  50. package/dist/enums/timezone.js.map +1 -0
  51. package/dist/enums/timezone.mjs +427 -0
  52. package/dist/enums/timezone.mjs.map +1 -0
  53. package/dist/enums/{vcs-deployment-type.d.mts → vcs-reference-type.d.mts} +2 -2
  54. package/dist/enums/{vcs-deployment-type.d.ts → vcs-reference-type.d.ts} +2 -2
  55. package/dist/enums/vcs-reference-type.js +12 -0
  56. package/dist/enums/vcs-reference-type.js.map +1 -0
  57. package/dist/enums/vcs-reference-type.mjs +11 -0
  58. package/dist/enums/vcs-reference-type.mjs.map +1 -0
  59. package/dist/index.d.mts +6 -1
  60. package/dist/index.d.ts +6 -1
  61. package/dist/index.js +32 -3
  62. package/dist/index.js.map +1 -1
  63. package/dist/index.mjs +6 -1
  64. package/dist/index.mjs.map +1 -1
  65. package/dist/models.d.mts +5 -1
  66. package/dist/models.d.ts +5 -1
  67. package/dist/operator.d.mts +181 -0
  68. package/dist/operator.d.ts +181 -0
  69. package/dist/operator.js +268 -0
  70. package/dist/operator.js.map +1 -0
  71. package/dist/operator.mjs +266 -0
  72. package/dist/operator.mjs.map +1 -0
  73. package/dist/query.js +6 -6
  74. package/dist/query.js.map +1 -1
  75. package/dist/query.mjs +6 -6
  76. package/dist/query.mjs.map +1 -1
  77. package/dist/services/account.d.mts +8 -2
  78. package/dist/services/account.d.ts +8 -2
  79. package/dist/services/account.js +18 -8
  80. package/dist/services/account.js.map +1 -1
  81. package/dist/services/account.mjs +18 -8
  82. package/dist/services/account.mjs.map +1 -1
  83. package/dist/services/avatars.d.mts +87 -0
  84. package/dist/services/avatars.d.ts +87 -0
  85. package/dist/services/avatars.js +123 -0
  86. package/dist/services/avatars.js.map +1 -1
  87. package/dist/services/avatars.mjs +123 -0
  88. package/dist/services/avatars.mjs.map +1 -1
  89. package/dist/services/databases.d.mts +20 -5
  90. package/dist/services/databases.d.ts +20 -5
  91. package/dist/services/databases.js +30 -5
  92. package/dist/services/databases.js.map +1 -1
  93. package/dist/services/databases.mjs +30 -5
  94. package/dist/services/databases.mjs.map +1 -1
  95. package/dist/services/functions.d.mts +25 -12
  96. package/dist/services/functions.d.ts +25 -12
  97. package/dist/services/functions.js +33 -10
  98. package/dist/services/functions.js.map +1 -1
  99. package/dist/services/functions.mjs +33 -10
  100. package/dist/services/functions.mjs.map +1 -1
  101. package/dist/services/messaging.d.mts +116 -9
  102. package/dist/services/messaging.d.ts +116 -9
  103. package/dist/services/messaging.js +182 -9
  104. package/dist/services/messaging.js.map +1 -1
  105. package/dist/services/messaging.mjs +182 -9
  106. package/dist/services/messaging.mjs.map +1 -1
  107. package/dist/services/sites.d.mts +27 -14
  108. package/dist/services/sites.d.ts +27 -14
  109. package/dist/services/sites.js +33 -10
  110. package/dist/services/sites.js.map +1 -1
  111. package/dist/services/sites.mjs +33 -10
  112. package/dist/services/sites.mjs.map +1 -1
  113. package/dist/services/storage.d.mts +18 -6
  114. package/dist/services/storage.d.ts +18 -6
  115. package/dist/services/storage.js +24 -4
  116. package/dist/services/storage.js.map +1 -1
  117. package/dist/services/storage.mjs +24 -4
  118. package/dist/services/storage.mjs.map +1 -1
  119. package/dist/services/tables-db.d.mts +22 -7
  120. package/dist/services/tables-db.d.ts +22 -7
  121. package/dist/services/tables-db.js +30 -5
  122. package/dist/services/tables-db.js.map +1 -1
  123. package/dist/services/tables-db.mjs +30 -5
  124. package/dist/services/tables-db.mjs.map +1 -1
  125. package/dist/services/teams.d.mts +8 -2
  126. package/dist/services/teams.d.ts +8 -2
  127. package/dist/services/teams.js +12 -2
  128. package/dist/services/teams.js.map +1 -1
  129. package/dist/services/teams.mjs +12 -2
  130. package/dist/services/teams.mjs.map +1 -1
  131. package/dist/services/tokens.d.mts +4 -1
  132. package/dist/services/tokens.d.ts +4 -1
  133. package/dist/services/tokens.js +6 -1
  134. package/dist/services/tokens.js.map +1 -1
  135. package/dist/services/tokens.mjs +6 -1
  136. package/dist/services/tokens.mjs.map +1 -1
  137. package/dist/services/users.d.mts +24 -6
  138. package/dist/services/users.d.ts +24 -6
  139. package/dist/services/users.js +37 -7
  140. package/dist/services/users.js.map +1 -1
  141. package/dist/services/users.mjs +37 -7
  142. package/dist/services/users.mjs.map +1 -1
  143. package/package.json +1 -1
  144. package/dist/enums/vcs-deployment-type.js +0 -12
  145. package/dist/enums/vcs-deployment-type.js.map +0 -1
  146. package/dist/enums/vcs-deployment-type.mjs +0 -11
  147. package/dist/enums/vcs-deployment-type.mjs.map +0 -1
@@ -0,0 +1,268 @@
1
+ 'use strict';
2
+
3
+ var Condition = /* @__PURE__ */ ((Condition2) => {
4
+ Condition2["Equal"] = "equal";
5
+ Condition2["NotEqual"] = "notEqual";
6
+ Condition2["GreaterThan"] = "greaterThan";
7
+ Condition2["GreaterThanEqual"] = "greaterThanEqual";
8
+ Condition2["LessThan"] = "lessThan";
9
+ Condition2["LessThanEqual"] = "lessThanEqual";
10
+ Condition2["Contains"] = "contains";
11
+ Condition2["IsNull"] = "isNull";
12
+ Condition2["IsNotNull"] = "isNotNull";
13
+ return Condition2;
14
+ })(Condition || {});
15
+ const _Operator = class _Operator {
16
+ /**
17
+ * Constructor for Operator class.
18
+ *
19
+ * @param {string} method
20
+ * @param {OperatorValues} values
21
+ */
22
+ constructor(method, values) {
23
+ this.method = method;
24
+ if (values !== void 0) {
25
+ if (Array.isArray(values)) {
26
+ this.values = values;
27
+ } else {
28
+ this.values = [values];
29
+ }
30
+ }
31
+ }
32
+ /**
33
+ * Convert the operator object to a JSON string.
34
+ *
35
+ * @returns {string}
36
+ */
37
+ toString() {
38
+ return JSON.stringify({
39
+ method: this.method,
40
+ values: this.values
41
+ });
42
+ }
43
+ };
44
+ /**
45
+ * Increment a numeric attribute by a specified value.
46
+ *
47
+ * @param {number} value
48
+ * @param {number} max
49
+ * @returns {string}
50
+ */
51
+ _Operator.increment = (value = 1, max) => {
52
+ if (isNaN(value) || !isFinite(value)) {
53
+ throw new Error("Value cannot be NaN or Infinity");
54
+ }
55
+ if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
56
+ throw new Error("Max cannot be NaN or Infinity");
57
+ }
58
+ const values = [value];
59
+ if (max !== void 0) {
60
+ values.push(max);
61
+ }
62
+ return new _Operator("increment", values).toString();
63
+ };
64
+ /**
65
+ * Decrement a numeric attribute by a specified value.
66
+ *
67
+ * @param {number} value
68
+ * @param {number} min
69
+ * @returns {string}
70
+ */
71
+ _Operator.decrement = (value = 1, min) => {
72
+ if (isNaN(value) || !isFinite(value)) {
73
+ throw new Error("Value cannot be NaN or Infinity");
74
+ }
75
+ if (min !== void 0 && (isNaN(min) || !isFinite(min))) {
76
+ throw new Error("Min cannot be NaN or Infinity");
77
+ }
78
+ const values = [value];
79
+ if (min !== void 0) {
80
+ values.push(min);
81
+ }
82
+ return new _Operator("decrement", values).toString();
83
+ };
84
+ /**
85
+ * Multiply a numeric attribute by a specified factor.
86
+ *
87
+ * @param {number} factor
88
+ * @param {number} max
89
+ * @returns {string}
90
+ */
91
+ _Operator.multiply = (factor, max) => {
92
+ if (isNaN(factor) || !isFinite(factor)) {
93
+ throw new Error("Factor cannot be NaN or Infinity");
94
+ }
95
+ if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
96
+ throw new Error("Max cannot be NaN or Infinity");
97
+ }
98
+ const values = [factor];
99
+ if (max !== void 0) {
100
+ values.push(max);
101
+ }
102
+ return new _Operator("multiply", values).toString();
103
+ };
104
+ /**
105
+ * Divide a numeric attribute by a specified divisor.
106
+ *
107
+ * @param {number} divisor
108
+ * @param {number} min
109
+ * @returns {string}
110
+ */
111
+ _Operator.divide = (divisor, min) => {
112
+ if (isNaN(divisor) || !isFinite(divisor)) {
113
+ throw new Error("Divisor cannot be NaN or Infinity");
114
+ }
115
+ if (min !== void 0 && (isNaN(min) || !isFinite(min))) {
116
+ throw new Error("Min cannot be NaN or Infinity");
117
+ }
118
+ if (divisor === 0) {
119
+ throw new Error("Divisor cannot be zero");
120
+ }
121
+ const values = [divisor];
122
+ if (min !== void 0) {
123
+ values.push(min);
124
+ }
125
+ return new _Operator("divide", values).toString();
126
+ };
127
+ /**
128
+ * Apply modulo operation on a numeric attribute.
129
+ *
130
+ * @param {number} divisor
131
+ * @returns {string}
132
+ */
133
+ _Operator.modulo = (divisor) => {
134
+ if (isNaN(divisor) || !isFinite(divisor)) {
135
+ throw new Error("Divisor cannot be NaN or Infinity");
136
+ }
137
+ if (divisor === 0) {
138
+ throw new Error("Divisor cannot be zero");
139
+ }
140
+ return new _Operator("modulo", [divisor]).toString();
141
+ };
142
+ /**
143
+ * Raise a numeric attribute to a specified power.
144
+ *
145
+ * @param {number} exponent
146
+ * @param {number} max
147
+ * @returns {string}
148
+ */
149
+ _Operator.power = (exponent, max) => {
150
+ if (isNaN(exponent) || !isFinite(exponent)) {
151
+ throw new Error("Exponent cannot be NaN or Infinity");
152
+ }
153
+ if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
154
+ throw new Error("Max cannot be NaN or Infinity");
155
+ }
156
+ const values = [exponent];
157
+ if (max !== void 0) {
158
+ values.push(max);
159
+ }
160
+ return new _Operator("power", values).toString();
161
+ };
162
+ /**
163
+ * Append values to an array attribute.
164
+ *
165
+ * @param {any[]} values
166
+ * @returns {string}
167
+ */
168
+ _Operator.arrayAppend = (values) => new _Operator("arrayAppend", values).toString();
169
+ /**
170
+ * Prepend values to an array attribute.
171
+ *
172
+ * @param {any[]} values
173
+ * @returns {string}
174
+ */
175
+ _Operator.arrayPrepend = (values) => new _Operator("arrayPrepend", values).toString();
176
+ /**
177
+ * Insert a value at a specific index in an array attribute.
178
+ *
179
+ * @param {number} index
180
+ * @param {any} value
181
+ * @returns {string}
182
+ */
183
+ _Operator.arrayInsert = (index, value) => new _Operator("arrayInsert", [index, value]).toString();
184
+ /**
185
+ * Remove a value from an array attribute.
186
+ *
187
+ * @param {any} value
188
+ * @returns {string}
189
+ */
190
+ _Operator.arrayRemove = (value) => new _Operator("arrayRemove", [value]).toString();
191
+ /**
192
+ * Remove duplicate values from an array attribute.
193
+ *
194
+ * @returns {string}
195
+ */
196
+ _Operator.arrayUnique = () => new _Operator("arrayUnique", []).toString();
197
+ /**
198
+ * Keep only values that exist in both the current array and the provided array.
199
+ *
200
+ * @param {any[]} values
201
+ * @returns {string}
202
+ */
203
+ _Operator.arrayIntersect = (values) => new _Operator("arrayIntersect", values).toString();
204
+ /**
205
+ * Remove values from the array that exist in the provided array.
206
+ *
207
+ * @param {any[]} values
208
+ * @returns {string}
209
+ */
210
+ _Operator.arrayDiff = (values) => new _Operator("arrayDiff", values).toString();
211
+ /**
212
+ * Filter array values based on a condition.
213
+ *
214
+ * @param {Condition} condition
215
+ * @param {any} value
216
+ * @returns {string}
217
+ */
218
+ _Operator.arrayFilter = (condition, value) => {
219
+ const values = [condition, value === void 0 ? null : value];
220
+ return new _Operator("arrayFilter", values).toString();
221
+ };
222
+ /**
223
+ * Concatenate a value to a string or array attribute.
224
+ *
225
+ * @param {any} value
226
+ * @returns {string}
227
+ */
228
+ _Operator.stringConcat = (value) => new _Operator("stringConcat", [value]).toString();
229
+ /**
230
+ * Replace occurrences of a search string with a replacement string.
231
+ *
232
+ * @param {string} search
233
+ * @param {string} replace
234
+ * @returns {string}
235
+ */
236
+ _Operator.stringReplace = (search, replace) => new _Operator("stringReplace", [search, replace]).toString();
237
+ /**
238
+ * Toggle a boolean attribute.
239
+ *
240
+ * @returns {string}
241
+ */
242
+ _Operator.toggle = () => new _Operator("toggle", []).toString();
243
+ /**
244
+ * Add days to a date attribute.
245
+ *
246
+ * @param {number} days
247
+ * @returns {string}
248
+ */
249
+ _Operator.dateAddDays = (days) => new _Operator("dateAddDays", [days]).toString();
250
+ /**
251
+ * Subtract days from a date attribute.
252
+ *
253
+ * @param {number} days
254
+ * @returns {string}
255
+ */
256
+ _Operator.dateSubDays = (days) => new _Operator("dateSubDays", [days]).toString();
257
+ /**
258
+ * Set a date attribute to the current date and time.
259
+ *
260
+ * @returns {string}
261
+ */
262
+ _Operator.dateSetNow = () => new _Operator("dateSetNow", []).toString();
263
+ let Operator = _Operator;
264
+
265
+ exports.Condition = Condition;
266
+ exports.Operator = Operator;
267
+ //# sourceMappingURL=out.js.map
268
+ //# sourceMappingURL=operator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/operator.ts"],"names":["Condition"],"mappings":"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","sourcesContent":["type OperatorValuesSingle = string | number | boolean;\nexport type OperatorValuesList = string[] | number[] | boolean[] | any[];\nexport type OperatorValues = OperatorValuesSingle | OperatorValuesList;\n\nexport enum Condition {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n GreaterThan = \"greaterThan\",\n GreaterThanEqual = \"greaterThanEqual\",\n LessThan = \"lessThan\",\n LessThanEqual = \"lessThanEqual\",\n Contains = \"contains\",\n IsNull = \"isNull\",\n IsNotNull = \"isNotNull\",\n}\n\n/**\n * Helper class to generate operator strings for atomic operations.\n */\nexport class Operator {\n method: string;\n values: OperatorValuesList | undefined;\n\n /**\n * Constructor for Operator class.\n *\n * @param {string} method\n * @param {OperatorValues} values\n */\n constructor(\n method: string,\n values?: OperatorValues\n ) {\n this.method = method;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as OperatorValuesList;\n }\n }\n }\n\n /**\n * Convert the operator object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n values: this.values,\n });\n }\n\n /**\n * Increment a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} max\n * @returns {string}\n */\n static increment = (value: number = 1, max?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"increment\", values).toString();\n };\n\n /**\n * Decrement a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} min\n * @returns {string}\n */\n static decrement = (value: number = 1, min?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"decrement\", values).toString();\n };\n\n /**\n * Multiply a numeric attribute by a specified factor.\n *\n * @param {number} factor\n * @param {number} max\n * @returns {string}\n */\n static multiply = (factor: number, max?: number): string => {\n if (isNaN(factor) || !isFinite(factor)) {\n throw new Error(\"Factor cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [factor];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"multiply\", values).toString();\n };\n\n /**\n * Divide a numeric attribute by a specified divisor.\n *\n * @param {number} divisor\n * @param {number} min\n * @returns {string}\n */\n static divide = (divisor: number, min?: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n const values: any[] = [divisor];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"divide\", values).toString();\n };\n\n /**\n * Apply modulo operation on a numeric attribute.\n *\n * @param {number} divisor\n * @returns {string}\n */\n static modulo = (divisor: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n return new Operator(\"modulo\", [divisor]).toString();\n };\n\n /**\n * Raise a numeric attribute to a specified power.\n *\n * @param {number} exponent\n * @param {number} max\n * @returns {string}\n */\n static power = (exponent: number, max?: number): string => {\n if (isNaN(exponent) || !isFinite(exponent)) {\n throw new Error(\"Exponent cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [exponent];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"power\", values).toString();\n };\n\n /**\n * Append values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayAppend = (values: any[]): string =>\n new Operator(\"arrayAppend\", values).toString();\n\n /**\n * Prepend values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayPrepend = (values: any[]): string =>\n new Operator(\"arrayPrepend\", values).toString();\n\n /**\n * Insert a value at a specific index in an array attribute.\n *\n * @param {number} index\n * @param {any} value\n * @returns {string}\n */\n static arrayInsert = (index: number, value: any): string =>\n new Operator(\"arrayInsert\", [index, value]).toString();\n\n /**\n * Remove a value from an array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static arrayRemove = (value: any): string =>\n new Operator(\"arrayRemove\", [value]).toString();\n\n /**\n * Remove duplicate values from an array attribute.\n *\n * @returns {string}\n */\n static arrayUnique = (): string =>\n new Operator(\"arrayUnique\", []).toString();\n\n /**\n * Keep only values that exist in both the current array and the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayIntersect = (values: any[]): string =>\n new Operator(\"arrayIntersect\", values).toString();\n\n /**\n * Remove values from the array that exist in the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayDiff = (values: any[]): string =>\n new Operator(\"arrayDiff\", values).toString();\n\n /**\n * Filter array values based on a condition.\n *\n * @param {Condition} condition\n * @param {any} value\n * @returns {string}\n */\n static arrayFilter = (condition: Condition, value?: any): string => {\n const values: any[] = [condition as string, value === undefined ? null : value];\n return new Operator(\"arrayFilter\", values).toString();\n };\n\n /**\n * Concatenate a value to a string or array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static stringConcat = (value: any): string =>\n new Operator(\"stringConcat\", [value]).toString();\n\n /**\n * Replace occurrences of a search string with a replacement string.\n *\n * @param {string} search\n * @param {string} replace\n * @returns {string}\n */\n static stringReplace = (search: string, replace: string): string =>\n new Operator(\"stringReplace\", [search, replace]).toString();\n\n /**\n * Toggle a boolean attribute.\n *\n * @returns {string}\n */\n static toggle = (): string =>\n new Operator(\"toggle\", []).toString();\n\n /**\n * Add days to a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateAddDays = (days: number): string =>\n new Operator(\"dateAddDays\", [days]).toString();\n\n /**\n * Subtract days from a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateSubDays = (days: number): string =>\n new Operator(\"dateSubDays\", [days]).toString();\n\n /**\n * Set a date attribute to the current date and time.\n *\n * @returns {string}\n */\n static dateSetNow = (): string =>\n new Operator(\"dateSetNow\", []).toString();\n}\n"]}
@@ -0,0 +1,266 @@
1
+ // src/operator.ts
2
+ var Condition = /* @__PURE__ */ ((Condition2) => {
3
+ Condition2["Equal"] = "equal";
4
+ Condition2["NotEqual"] = "notEqual";
5
+ Condition2["GreaterThan"] = "greaterThan";
6
+ Condition2["GreaterThanEqual"] = "greaterThanEqual";
7
+ Condition2["LessThan"] = "lessThan";
8
+ Condition2["LessThanEqual"] = "lessThanEqual";
9
+ Condition2["Contains"] = "contains";
10
+ Condition2["IsNull"] = "isNull";
11
+ Condition2["IsNotNull"] = "isNotNull";
12
+ return Condition2;
13
+ })(Condition || {});
14
+ var _Operator = class _Operator {
15
+ /**
16
+ * Constructor for Operator class.
17
+ *
18
+ * @param {string} method
19
+ * @param {OperatorValues} values
20
+ */
21
+ constructor(method, values) {
22
+ this.method = method;
23
+ if (values !== void 0) {
24
+ if (Array.isArray(values)) {
25
+ this.values = values;
26
+ } else {
27
+ this.values = [values];
28
+ }
29
+ }
30
+ }
31
+ /**
32
+ * Convert the operator object to a JSON string.
33
+ *
34
+ * @returns {string}
35
+ */
36
+ toString() {
37
+ return JSON.stringify({
38
+ method: this.method,
39
+ values: this.values
40
+ });
41
+ }
42
+ };
43
+ /**
44
+ * Increment a numeric attribute by a specified value.
45
+ *
46
+ * @param {number} value
47
+ * @param {number} max
48
+ * @returns {string}
49
+ */
50
+ _Operator.increment = (value = 1, max) => {
51
+ if (isNaN(value) || !isFinite(value)) {
52
+ throw new Error("Value cannot be NaN or Infinity");
53
+ }
54
+ if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
55
+ throw new Error("Max cannot be NaN or Infinity");
56
+ }
57
+ const values = [value];
58
+ if (max !== void 0) {
59
+ values.push(max);
60
+ }
61
+ return new _Operator("increment", values).toString();
62
+ };
63
+ /**
64
+ * Decrement a numeric attribute by a specified value.
65
+ *
66
+ * @param {number} value
67
+ * @param {number} min
68
+ * @returns {string}
69
+ */
70
+ _Operator.decrement = (value = 1, min) => {
71
+ if (isNaN(value) || !isFinite(value)) {
72
+ throw new Error("Value cannot be NaN or Infinity");
73
+ }
74
+ if (min !== void 0 && (isNaN(min) || !isFinite(min))) {
75
+ throw new Error("Min cannot be NaN or Infinity");
76
+ }
77
+ const values = [value];
78
+ if (min !== void 0) {
79
+ values.push(min);
80
+ }
81
+ return new _Operator("decrement", values).toString();
82
+ };
83
+ /**
84
+ * Multiply a numeric attribute by a specified factor.
85
+ *
86
+ * @param {number} factor
87
+ * @param {number} max
88
+ * @returns {string}
89
+ */
90
+ _Operator.multiply = (factor, max) => {
91
+ if (isNaN(factor) || !isFinite(factor)) {
92
+ throw new Error("Factor cannot be NaN or Infinity");
93
+ }
94
+ if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
95
+ throw new Error("Max cannot be NaN or Infinity");
96
+ }
97
+ const values = [factor];
98
+ if (max !== void 0) {
99
+ values.push(max);
100
+ }
101
+ return new _Operator("multiply", values).toString();
102
+ };
103
+ /**
104
+ * Divide a numeric attribute by a specified divisor.
105
+ *
106
+ * @param {number} divisor
107
+ * @param {number} min
108
+ * @returns {string}
109
+ */
110
+ _Operator.divide = (divisor, min) => {
111
+ if (isNaN(divisor) || !isFinite(divisor)) {
112
+ throw new Error("Divisor cannot be NaN or Infinity");
113
+ }
114
+ if (min !== void 0 && (isNaN(min) || !isFinite(min))) {
115
+ throw new Error("Min cannot be NaN or Infinity");
116
+ }
117
+ if (divisor === 0) {
118
+ throw new Error("Divisor cannot be zero");
119
+ }
120
+ const values = [divisor];
121
+ if (min !== void 0) {
122
+ values.push(min);
123
+ }
124
+ return new _Operator("divide", values).toString();
125
+ };
126
+ /**
127
+ * Apply modulo operation on a numeric attribute.
128
+ *
129
+ * @param {number} divisor
130
+ * @returns {string}
131
+ */
132
+ _Operator.modulo = (divisor) => {
133
+ if (isNaN(divisor) || !isFinite(divisor)) {
134
+ throw new Error("Divisor cannot be NaN or Infinity");
135
+ }
136
+ if (divisor === 0) {
137
+ throw new Error("Divisor cannot be zero");
138
+ }
139
+ return new _Operator("modulo", [divisor]).toString();
140
+ };
141
+ /**
142
+ * Raise a numeric attribute to a specified power.
143
+ *
144
+ * @param {number} exponent
145
+ * @param {number} max
146
+ * @returns {string}
147
+ */
148
+ _Operator.power = (exponent, max) => {
149
+ if (isNaN(exponent) || !isFinite(exponent)) {
150
+ throw new Error("Exponent cannot be NaN or Infinity");
151
+ }
152
+ if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
153
+ throw new Error("Max cannot be NaN or Infinity");
154
+ }
155
+ const values = [exponent];
156
+ if (max !== void 0) {
157
+ values.push(max);
158
+ }
159
+ return new _Operator("power", values).toString();
160
+ };
161
+ /**
162
+ * Append values to an array attribute.
163
+ *
164
+ * @param {any[]} values
165
+ * @returns {string}
166
+ */
167
+ _Operator.arrayAppend = (values) => new _Operator("arrayAppend", values).toString();
168
+ /**
169
+ * Prepend values to an array attribute.
170
+ *
171
+ * @param {any[]} values
172
+ * @returns {string}
173
+ */
174
+ _Operator.arrayPrepend = (values) => new _Operator("arrayPrepend", values).toString();
175
+ /**
176
+ * Insert a value at a specific index in an array attribute.
177
+ *
178
+ * @param {number} index
179
+ * @param {any} value
180
+ * @returns {string}
181
+ */
182
+ _Operator.arrayInsert = (index, value) => new _Operator("arrayInsert", [index, value]).toString();
183
+ /**
184
+ * Remove a value from an array attribute.
185
+ *
186
+ * @param {any} value
187
+ * @returns {string}
188
+ */
189
+ _Operator.arrayRemove = (value) => new _Operator("arrayRemove", [value]).toString();
190
+ /**
191
+ * Remove duplicate values from an array attribute.
192
+ *
193
+ * @returns {string}
194
+ */
195
+ _Operator.arrayUnique = () => new _Operator("arrayUnique", []).toString();
196
+ /**
197
+ * Keep only values that exist in both the current array and the provided array.
198
+ *
199
+ * @param {any[]} values
200
+ * @returns {string}
201
+ */
202
+ _Operator.arrayIntersect = (values) => new _Operator("arrayIntersect", values).toString();
203
+ /**
204
+ * Remove values from the array that exist in the provided array.
205
+ *
206
+ * @param {any[]} values
207
+ * @returns {string}
208
+ */
209
+ _Operator.arrayDiff = (values) => new _Operator("arrayDiff", values).toString();
210
+ /**
211
+ * Filter array values based on a condition.
212
+ *
213
+ * @param {Condition} condition
214
+ * @param {any} value
215
+ * @returns {string}
216
+ */
217
+ _Operator.arrayFilter = (condition, value) => {
218
+ const values = [condition, value === void 0 ? null : value];
219
+ return new _Operator("arrayFilter", values).toString();
220
+ };
221
+ /**
222
+ * Concatenate a value to a string or array attribute.
223
+ *
224
+ * @param {any} value
225
+ * @returns {string}
226
+ */
227
+ _Operator.stringConcat = (value) => new _Operator("stringConcat", [value]).toString();
228
+ /**
229
+ * Replace occurrences of a search string with a replacement string.
230
+ *
231
+ * @param {string} search
232
+ * @param {string} replace
233
+ * @returns {string}
234
+ */
235
+ _Operator.stringReplace = (search, replace) => new _Operator("stringReplace", [search, replace]).toString();
236
+ /**
237
+ * Toggle a boolean attribute.
238
+ *
239
+ * @returns {string}
240
+ */
241
+ _Operator.toggle = () => new _Operator("toggle", []).toString();
242
+ /**
243
+ * Add days to a date attribute.
244
+ *
245
+ * @param {number} days
246
+ * @returns {string}
247
+ */
248
+ _Operator.dateAddDays = (days) => new _Operator("dateAddDays", [days]).toString();
249
+ /**
250
+ * Subtract days from a date attribute.
251
+ *
252
+ * @param {number} days
253
+ * @returns {string}
254
+ */
255
+ _Operator.dateSubDays = (days) => new _Operator("dateSubDays", [days]).toString();
256
+ /**
257
+ * Set a date attribute to the current date and time.
258
+ *
259
+ * @returns {string}
260
+ */
261
+ _Operator.dateSetNow = () => new _Operator("dateSetNow", []).toString();
262
+ var Operator = _Operator;
263
+
264
+ export { Condition, Operator };
265
+ //# sourceMappingURL=out.js.map
266
+ //# sourceMappingURL=operator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/operator.ts"],"names":["Condition"],"mappings":"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","sourcesContent":["type OperatorValuesSingle = string | number | boolean;\nexport type OperatorValuesList = string[] | number[] | boolean[] | any[];\nexport type OperatorValues = OperatorValuesSingle | OperatorValuesList;\n\nexport enum Condition {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n GreaterThan = \"greaterThan\",\n GreaterThanEqual = \"greaterThanEqual\",\n LessThan = \"lessThan\",\n LessThanEqual = \"lessThanEqual\",\n Contains = \"contains\",\n IsNull = \"isNull\",\n IsNotNull = \"isNotNull\",\n}\n\n/**\n * Helper class to generate operator strings for atomic operations.\n */\nexport class Operator {\n method: string;\n values: OperatorValuesList | undefined;\n\n /**\n * Constructor for Operator class.\n *\n * @param {string} method\n * @param {OperatorValues} values\n */\n constructor(\n method: string,\n values?: OperatorValues\n ) {\n this.method = method;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as OperatorValuesList;\n }\n }\n }\n\n /**\n * Convert the operator object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n values: this.values,\n });\n }\n\n /**\n * Increment a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} max\n * @returns {string}\n */\n static increment = (value: number = 1, max?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"increment\", values).toString();\n };\n\n /**\n * Decrement a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} min\n * @returns {string}\n */\n static decrement = (value: number = 1, min?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"decrement\", values).toString();\n };\n\n /**\n * Multiply a numeric attribute by a specified factor.\n *\n * @param {number} factor\n * @param {number} max\n * @returns {string}\n */\n static multiply = (factor: number, max?: number): string => {\n if (isNaN(factor) || !isFinite(factor)) {\n throw new Error(\"Factor cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [factor];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"multiply\", values).toString();\n };\n\n /**\n * Divide a numeric attribute by a specified divisor.\n *\n * @param {number} divisor\n * @param {number} min\n * @returns {string}\n */\n static divide = (divisor: number, min?: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n const values: any[] = [divisor];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"divide\", values).toString();\n };\n\n /**\n * Apply modulo operation on a numeric attribute.\n *\n * @param {number} divisor\n * @returns {string}\n */\n static modulo = (divisor: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n return new Operator(\"modulo\", [divisor]).toString();\n };\n\n /**\n * Raise a numeric attribute to a specified power.\n *\n * @param {number} exponent\n * @param {number} max\n * @returns {string}\n */\n static power = (exponent: number, max?: number): string => {\n if (isNaN(exponent) || !isFinite(exponent)) {\n throw new Error(\"Exponent cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [exponent];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"power\", values).toString();\n };\n\n /**\n * Append values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayAppend = (values: any[]): string =>\n new Operator(\"arrayAppend\", values).toString();\n\n /**\n * Prepend values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayPrepend = (values: any[]): string =>\n new Operator(\"arrayPrepend\", values).toString();\n\n /**\n * Insert a value at a specific index in an array attribute.\n *\n * @param {number} index\n * @param {any} value\n * @returns {string}\n */\n static arrayInsert = (index: number, value: any): string =>\n new Operator(\"arrayInsert\", [index, value]).toString();\n\n /**\n * Remove a value from an array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static arrayRemove = (value: any): string =>\n new Operator(\"arrayRemove\", [value]).toString();\n\n /**\n * Remove duplicate values from an array attribute.\n *\n * @returns {string}\n */\n static arrayUnique = (): string =>\n new Operator(\"arrayUnique\", []).toString();\n\n /**\n * Keep only values that exist in both the current array and the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayIntersect = (values: any[]): string =>\n new Operator(\"arrayIntersect\", values).toString();\n\n /**\n * Remove values from the array that exist in the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayDiff = (values: any[]): string =>\n new Operator(\"arrayDiff\", values).toString();\n\n /**\n * Filter array values based on a condition.\n *\n * @param {Condition} condition\n * @param {any} value\n * @returns {string}\n */\n static arrayFilter = (condition: Condition, value?: any): string => {\n const values: any[] = [condition as string, value === undefined ? null : value];\n return new Operator(\"arrayFilter\", values).toString();\n };\n\n /**\n * Concatenate a value to a string or array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static stringConcat = (value: any): string =>\n new Operator(\"stringConcat\", [value]).toString();\n\n /**\n * Replace occurrences of a search string with a replacement string.\n *\n * @param {string} search\n * @param {string} replace\n * @returns {string}\n */\n static stringReplace = (search: string, replace: string): string =>\n new Operator(\"stringReplace\", [search, replace]).toString();\n\n /**\n * Toggle a boolean attribute.\n *\n * @returns {string}\n */\n static toggle = (): string =>\n new Operator(\"toggle\", []).toString();\n\n /**\n * Add days to a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateAddDays = (days: number): string =>\n new Operator(\"dateAddDays\", [days]).toString();\n\n /**\n * Subtract days from a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateSubDays = (days: number): string =>\n new Operator(\"dateSubDays\", [days]).toString();\n\n /**\n * Set a date attribute to the current date and time.\n *\n * @returns {string}\n */\n static dateSetNow = (): string =>\n new Operator(\"dateSetNow\", []).toString();\n}\n"]}
package/dist/query.js CHANGED
@@ -239,14 +239,14 @@ _Query.notEndsWith = (attribute, value) => new _Query("notEndsWith", attribute,
239
239
  * @param {string} value
240
240
  * @returns {string}
241
241
  */
242
- _Query.createdBefore = (value) => new _Query("createdBefore", void 0, value).toString();
242
+ _Query.createdBefore = (value) => _Query.lessThan("$createdAt", value);
243
243
  /**
244
244
  * Filter resources where document was created after date.
245
245
  *
246
246
  * @param {string} value
247
247
  * @returns {string}
248
248
  */
249
- _Query.createdAfter = (value) => new _Query("createdAfter", void 0, value).toString();
249
+ _Query.createdAfter = (value) => _Query.greaterThan("$createdAt", value);
250
250
  /**
251
251
  * Filter resources where document was created between dates.
252
252
  *
@@ -254,21 +254,21 @@ _Query.createdAfter = (value) => new _Query("createdAfter", void 0, value).toStr
254
254
  * @param {string} end
255
255
  * @returns {string}
256
256
  */
257
- _Query.createdBetween = (start, end) => new _Query("createdBetween", void 0, [start, end]).toString();
257
+ _Query.createdBetween = (start, end) => _Query.between("$createdAt", start, end);
258
258
  /**
259
259
  * Filter resources where document was updated before date.
260
260
  *
261
261
  * @param {string} value
262
262
  * @returns {string}
263
263
  */
264
- _Query.updatedBefore = (value) => new _Query("updatedBefore", void 0, value).toString();
264
+ _Query.updatedBefore = (value) => _Query.lessThan("$updatedAt", value);
265
265
  /**
266
266
  * Filter resources where document was updated after date.
267
267
  *
268
268
  * @param {string} value
269
269
  * @returns {string}
270
270
  */
271
- _Query.updatedAfter = (value) => new _Query("updatedAfter", void 0, value).toString();
271
+ _Query.updatedAfter = (value) => _Query.greaterThan("$updatedAt", value);
272
272
  /**
273
273
  * Filter resources where document was updated between dates.
274
274
  *
@@ -276,7 +276,7 @@ _Query.updatedAfter = (value) => new _Query("updatedAfter", void 0, value).toStr
276
276
  * @param {string} end
277
277
  * @returns {string}
278
278
  */
279
- _Query.updatedBetween = (start, end) => new _Query("updatedBetween", void 0, [start, end]).toString();
279
+ _Query.updatedBetween = (start, end) => _Query.between("$updatedAt", start, end);
280
280
  /**
281
281
  * Combine multiple queries using logical OR operator.
282
282
  *