node-appwrite 23.0.0 → 24.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 (350) hide show
  1. package/README.md +1 -1
  2. package/dist/client.d.mts +11 -1
  3. package/dist/client.d.ts +11 -1
  4. package/dist/client.js +18 -9
  5. package/dist/client.js.map +1 -1
  6. package/dist/client.mjs +17 -8
  7. package/dist/client.mjs.map +1 -1
  8. package/dist/enums/adapter.js +1 -1
  9. package/dist/enums/adapter.js.map +1 -1
  10. package/dist/enums/adapter.mjs +1 -1
  11. package/dist/enums/adapter.mjs.map +1 -1
  12. package/dist/enums/attribute-status.js +1 -1
  13. package/dist/enums/attribute-status.js.map +1 -1
  14. package/dist/enums/attribute-status.mjs +1 -1
  15. package/dist/enums/attribute-status.mjs.map +1 -1
  16. package/dist/enums/authentication-factor.js +1 -1
  17. package/dist/enums/authentication-factor.js.map +1 -1
  18. package/dist/enums/authentication-factor.mjs +1 -1
  19. package/dist/enums/authentication-factor.mjs.map +1 -1
  20. package/dist/enums/authenticator-type.js +1 -1
  21. package/dist/enums/authenticator-type.js.map +1 -1
  22. package/dist/enums/authenticator-type.mjs +1 -1
  23. package/dist/enums/authenticator-type.mjs.map +1 -1
  24. package/dist/enums/backup-services.js +1 -1
  25. package/dist/enums/backup-services.js.map +1 -1
  26. package/dist/enums/backup-services.mjs +1 -1
  27. package/dist/enums/backup-services.mjs.map +1 -1
  28. package/dist/enums/browser-permission.js +1 -1
  29. package/dist/enums/browser-permission.js.map +1 -1
  30. package/dist/enums/browser-permission.mjs +1 -1
  31. package/dist/enums/browser-permission.mjs.map +1 -1
  32. package/dist/enums/browser.js +1 -1
  33. package/dist/enums/browser.js.map +1 -1
  34. package/dist/enums/browser.mjs +1 -1
  35. package/dist/enums/browser.mjs.map +1 -1
  36. package/dist/enums/build-runtime.d.mts +3 -1
  37. package/dist/enums/build-runtime.d.ts +3 -1
  38. package/dist/enums/build-runtime.js +3 -1
  39. package/dist/enums/build-runtime.js.map +1 -1
  40. package/dist/enums/build-runtime.mjs +3 -1
  41. package/dist/enums/build-runtime.mjs.map +1 -1
  42. package/dist/enums/column-status.js +1 -1
  43. package/dist/enums/column-status.js.map +1 -1
  44. package/dist/enums/column-status.mjs +1 -1
  45. package/dist/enums/column-status.mjs.map +1 -1
  46. package/dist/enums/compression.js +1 -1
  47. package/dist/enums/compression.js.map +1 -1
  48. package/dist/enums/compression.mjs +1 -1
  49. package/dist/enums/compression.mjs.map +1 -1
  50. package/dist/enums/credit-card.js +1 -1
  51. package/dist/enums/credit-card.js.map +1 -1
  52. package/dist/enums/credit-card.mjs +1 -1
  53. package/dist/enums/credit-card.mjs.map +1 -1
  54. package/dist/enums/database-type.js +1 -1
  55. package/dist/enums/database-type.js.map +1 -1
  56. package/dist/enums/database-type.mjs +1 -1
  57. package/dist/enums/database-type.mjs.map +1 -1
  58. package/dist/enums/databases-index-type.js +1 -1
  59. package/dist/enums/databases-index-type.js.map +1 -1
  60. package/dist/enums/databases-index-type.mjs +1 -1
  61. package/dist/enums/databases-index-type.mjs.map +1 -1
  62. package/dist/enums/deployment-download-type.js +1 -1
  63. package/dist/enums/deployment-download-type.js.map +1 -1
  64. package/dist/enums/deployment-download-type.mjs +1 -1
  65. package/dist/enums/deployment-download-type.mjs.map +1 -1
  66. package/dist/enums/deployment-status.js +1 -1
  67. package/dist/enums/deployment-status.js.map +1 -1
  68. package/dist/enums/deployment-status.mjs +1 -1
  69. package/dist/enums/deployment-status.mjs.map +1 -1
  70. package/dist/enums/execution-method.js +1 -1
  71. package/dist/enums/execution-method.js.map +1 -1
  72. package/dist/enums/execution-method.mjs +1 -1
  73. package/dist/enums/execution-method.mjs.map +1 -1
  74. package/dist/enums/execution-status.js +1 -1
  75. package/dist/enums/execution-status.js.map +1 -1
  76. package/dist/enums/execution-status.mjs +1 -1
  77. package/dist/enums/execution-status.mjs.map +1 -1
  78. package/dist/enums/execution-trigger.js +1 -1
  79. package/dist/enums/execution-trigger.js.map +1 -1
  80. package/dist/enums/execution-trigger.mjs +1 -1
  81. package/dist/enums/execution-trigger.mjs.map +1 -1
  82. package/dist/enums/flag.js +1 -1
  83. package/dist/enums/flag.js.map +1 -1
  84. package/dist/enums/flag.mjs +1 -1
  85. package/dist/enums/flag.mjs.map +1 -1
  86. package/dist/enums/framework.js +1 -1
  87. package/dist/enums/framework.js.map +1 -1
  88. package/dist/enums/framework.mjs +1 -1
  89. package/dist/enums/framework.mjs.map +1 -1
  90. package/dist/enums/health-antivirus-status.js +1 -1
  91. package/dist/enums/health-antivirus-status.js.map +1 -1
  92. package/dist/enums/health-antivirus-status.mjs +1 -1
  93. package/dist/enums/health-antivirus-status.mjs.map +1 -1
  94. package/dist/enums/health-check-status.js +1 -1
  95. package/dist/enums/health-check-status.js.map +1 -1
  96. package/dist/enums/health-check-status.mjs +1 -1
  97. package/dist/enums/health-check-status.mjs.map +1 -1
  98. package/dist/enums/image-format.js +1 -1
  99. package/dist/enums/image-format.js.map +1 -1
  100. package/dist/enums/image-format.mjs +1 -1
  101. package/dist/enums/image-format.mjs.map +1 -1
  102. package/dist/enums/image-gravity.js +1 -1
  103. package/dist/enums/image-gravity.js.map +1 -1
  104. package/dist/enums/image-gravity.mjs +1 -1
  105. package/dist/enums/image-gravity.mjs.map +1 -1
  106. package/dist/enums/index-status.js +1 -1
  107. package/dist/enums/index-status.js.map +1 -1
  108. package/dist/enums/index-status.mjs +1 -1
  109. package/dist/enums/index-status.mjs.map +1 -1
  110. package/dist/enums/message-priority.js +1 -1
  111. package/dist/enums/message-priority.js.map +1 -1
  112. package/dist/enums/message-priority.mjs +1 -1
  113. package/dist/enums/message-priority.mjs.map +1 -1
  114. package/dist/enums/message-status.js +1 -1
  115. package/dist/enums/message-status.js.map +1 -1
  116. package/dist/enums/message-status.mjs +1 -1
  117. package/dist/enums/message-status.mjs.map +1 -1
  118. package/dist/enums/messaging-provider-type.js +1 -1
  119. package/dist/enums/messaging-provider-type.js.map +1 -1
  120. package/dist/enums/messaging-provider-type.mjs +1 -1
  121. package/dist/enums/messaging-provider-type.mjs.map +1 -1
  122. package/dist/enums/name.js +1 -1
  123. package/dist/enums/name.js.map +1 -1
  124. package/dist/enums/name.mjs +1 -1
  125. package/dist/enums/name.mjs.map +1 -1
  126. package/dist/enums/o-auth-provider.d.mts +1 -0
  127. package/dist/enums/o-auth-provider.d.ts +1 -0
  128. package/dist/enums/o-auth-provider.js +2 -1
  129. package/dist/enums/o-auth-provider.js.map +1 -1
  130. package/dist/enums/o-auth-provider.mjs +2 -1
  131. package/dist/enums/o-auth-provider.mjs.map +1 -1
  132. package/dist/enums/order-by.js +1 -1
  133. package/dist/enums/order-by.js.map +1 -1
  134. package/dist/enums/order-by.mjs +1 -1
  135. package/dist/enums/order-by.mjs.map +1 -1
  136. package/dist/enums/password-hash.js +1 -1
  137. package/dist/enums/password-hash.js.map +1 -1
  138. package/dist/enums/password-hash.mjs +1 -1
  139. package/dist/enums/password-hash.mjs.map +1 -1
  140. package/dist/enums/platform-type.d.mts +9 -0
  141. package/dist/enums/platform-type.d.ts +9 -0
  142. package/dist/enums/platform-type.js +14 -0
  143. package/dist/enums/platform-type.js.map +1 -0
  144. package/dist/enums/platform-type.mjs +13 -0
  145. package/dist/enums/platform-type.mjs.map +1 -0
  146. package/dist/enums/protocol-id.d.mts +7 -0
  147. package/dist/enums/protocol-id.d.ts +7 -0
  148. package/dist/enums/protocol-id.js +12 -0
  149. package/dist/enums/protocol-id.js.map +1 -0
  150. package/dist/enums/protocol-id.mjs +11 -0
  151. package/dist/enums/protocol-id.mjs.map +1 -0
  152. package/dist/enums/relation-mutate.js +1 -1
  153. package/dist/enums/relation-mutate.js.map +1 -1
  154. package/dist/enums/relation-mutate.mjs +1 -1
  155. package/dist/enums/relation-mutate.mjs.map +1 -1
  156. package/dist/enums/relationship-type.js +1 -1
  157. package/dist/enums/relationship-type.js.map +1 -1
  158. package/dist/enums/relationship-type.mjs +1 -1
  159. package/dist/enums/relationship-type.mjs.map +1 -1
  160. package/dist/enums/runtime.d.mts +3 -1
  161. package/dist/enums/runtime.d.ts +3 -1
  162. package/dist/enums/runtime.js +3 -1
  163. package/dist/enums/runtime.js.map +1 -1
  164. package/dist/enums/runtime.mjs +3 -1
  165. package/dist/enums/runtime.mjs.map +1 -1
  166. package/dist/enums/scopes.d.mts +4 -0
  167. package/dist/enums/scopes.d.ts +4 -0
  168. package/dist/enums/scopes.js +5 -1
  169. package/dist/enums/scopes.js.map +1 -1
  170. package/dist/enums/scopes.mjs +5 -1
  171. package/dist/enums/scopes.mjs.map +1 -1
  172. package/dist/enums/service-id.d.mts +21 -0
  173. package/dist/enums/service-id.d.ts +21 -0
  174. package/dist/enums/service-id.js +26 -0
  175. package/dist/enums/service-id.js.map +1 -0
  176. package/dist/enums/service-id.mjs +25 -0
  177. package/dist/enums/service-id.mjs.map +1 -0
  178. package/dist/enums/smtp-encryption.js +1 -1
  179. package/dist/enums/smtp-encryption.js.map +1 -1
  180. package/dist/enums/smtp-encryption.mjs +1 -1
  181. package/dist/enums/smtp-encryption.mjs.map +1 -1
  182. package/dist/enums/tables-db-index-type.js +1 -1
  183. package/dist/enums/tables-db-index-type.js.map +1 -1
  184. package/dist/enums/tables-db-index-type.mjs +1 -1
  185. package/dist/enums/tables-db-index-type.mjs.map +1 -1
  186. package/dist/enums/template-reference-type.js +1 -1
  187. package/dist/enums/template-reference-type.js.map +1 -1
  188. package/dist/enums/template-reference-type.mjs +1 -1
  189. package/dist/enums/template-reference-type.mjs.map +1 -1
  190. package/dist/enums/theme.js +1 -1
  191. package/dist/enums/theme.js.map +1 -1
  192. package/dist/enums/theme.mjs +1 -1
  193. package/dist/enums/theme.mjs.map +1 -1
  194. package/dist/enums/timezone.js +1 -1
  195. package/dist/enums/timezone.js.map +1 -1
  196. package/dist/enums/timezone.mjs +1 -1
  197. package/dist/enums/timezone.mjs.map +1 -1
  198. package/dist/enums/vcs-reference-type.js +1 -1
  199. package/dist/enums/vcs-reference-type.js.map +1 -1
  200. package/dist/enums/vcs-reference-type.mjs +1 -1
  201. package/dist/enums/vcs-reference-type.mjs.map +1 -1
  202. package/dist/id.js +1 -1
  203. package/dist/id.js.map +1 -1
  204. package/dist/id.mjs +1 -1
  205. package/dist/id.mjs.map +1 -1
  206. package/dist/index.d.mts +3 -0
  207. package/dist/index.d.ts +3 -0
  208. package/dist/index.js +84 -69
  209. package/dist/index.js.map +1 -1
  210. package/dist/index.mjs +4 -1
  211. package/dist/index.mjs.map +1 -1
  212. package/dist/inputFile.js +1 -1
  213. package/dist/inputFile.js.map +1 -1
  214. package/dist/inputFile.mjs +1 -1
  215. package/dist/inputFile.mjs.map +1 -1
  216. package/dist/models.d.mts +678 -7
  217. package/dist/models.d.ts +678 -7
  218. package/dist/models.js +1 -1
  219. package/dist/models.js.map +1 -1
  220. package/dist/models.mjs +1 -1
  221. package/dist/models.mjs.map +1 -1
  222. package/dist/operator.d.mts +1 -1
  223. package/dist/operator.d.ts +1 -1
  224. package/dist/operator.js +1 -1
  225. package/dist/operator.js.map +1 -1
  226. package/dist/operator.mjs +1 -1
  227. package/dist/operator.mjs.map +1 -1
  228. package/dist/permission.js +1 -1
  229. package/dist/permission.js.map +1 -1
  230. package/dist/permission.mjs +1 -1
  231. package/dist/permission.mjs.map +1 -1
  232. package/dist/query.d.mts +1 -1
  233. package/dist/query.d.ts +1 -1
  234. package/dist/query.js +1 -1
  235. package/dist/query.js.map +1 -1
  236. package/dist/query.mjs +1 -1
  237. package/dist/query.mjs.map +1 -1
  238. package/dist/role.js +1 -1
  239. package/dist/role.js.map +1 -1
  240. package/dist/role.mjs +1 -1
  241. package/dist/role.mjs.map +1 -1
  242. package/dist/services/account.d.mts +3 -2
  243. package/dist/services/account.d.ts +3 -2
  244. package/dist/services/account.js +1 -1
  245. package/dist/services/account.js.map +1 -1
  246. package/dist/services/account.mjs +1 -1
  247. package/dist/services/account.mjs.map +1 -1
  248. package/dist/services/activities.d.mts +1 -0
  249. package/dist/services/activities.d.ts +1 -0
  250. package/dist/services/activities.js +1 -1
  251. package/dist/services/activities.js.map +1 -1
  252. package/dist/services/activities.mjs +1 -1
  253. package/dist/services/activities.mjs.map +1 -1
  254. package/dist/services/avatars.d.mts +1 -0
  255. package/dist/services/avatars.d.ts +1 -0
  256. package/dist/services/avatars.js +1 -1
  257. package/dist/services/avatars.js.map +1 -1
  258. package/dist/services/avatars.mjs +1 -1
  259. package/dist/services/avatars.mjs.map +1 -1
  260. package/dist/services/backups.d.mts +1 -0
  261. package/dist/services/backups.d.ts +1 -0
  262. package/dist/services/backups.js +1 -1
  263. package/dist/services/backups.js.map +1 -1
  264. package/dist/services/backups.mjs +1 -1
  265. package/dist/services/backups.mjs.map +1 -1
  266. package/dist/services/databases.d.mts +7 -3
  267. package/dist/services/databases.d.ts +7 -3
  268. package/dist/services/databases.js +7 -2
  269. package/dist/services/databases.js.map +1 -1
  270. package/dist/services/databases.mjs +7 -2
  271. package/dist/services/databases.mjs.map +1 -1
  272. package/dist/services/functions.d.mts +1 -0
  273. package/dist/services/functions.d.ts +1 -0
  274. package/dist/services/functions.js +1 -1
  275. package/dist/services/functions.js.map +1 -1
  276. package/dist/services/functions.mjs +1 -1
  277. package/dist/services/functions.mjs.map +1 -1
  278. package/dist/services/graphql.d.mts +1 -0
  279. package/dist/services/graphql.d.ts +1 -0
  280. package/dist/services/graphql.js +1 -1
  281. package/dist/services/graphql.js.map +1 -1
  282. package/dist/services/graphql.mjs +1 -1
  283. package/dist/services/graphql.mjs.map +1 -1
  284. package/dist/services/health.d.mts +3 -0
  285. package/dist/services/health.d.ts +3 -0
  286. package/dist/services/health.js +1 -1
  287. package/dist/services/health.js.map +1 -1
  288. package/dist/services/health.mjs +1 -1
  289. package/dist/services/health.mjs.map +1 -1
  290. package/dist/services/locale.d.mts +1 -0
  291. package/dist/services/locale.d.ts +1 -0
  292. package/dist/services/locale.js +1 -1
  293. package/dist/services/locale.js.map +1 -1
  294. package/dist/services/locale.mjs +1 -1
  295. package/dist/services/locale.mjs.map +1 -1
  296. package/dist/services/messaging.d.mts +1 -0
  297. package/dist/services/messaging.d.ts +1 -0
  298. package/dist/services/messaging.js +1 -1
  299. package/dist/services/messaging.js.map +1 -1
  300. package/dist/services/messaging.mjs +1 -1
  301. package/dist/services/messaging.mjs.map +1 -1
  302. package/dist/services/project.d.mts +493 -0
  303. package/dist/services/project.d.ts +493 -0
  304. package/dist/services/project.js +788 -1
  305. package/dist/services/project.js.map +1 -1
  306. package/dist/services/project.mjs +788 -1
  307. package/dist/services/project.mjs.map +1 -1
  308. package/dist/services/sites.d.mts +1 -0
  309. package/dist/services/sites.d.ts +1 -0
  310. package/dist/services/sites.js +1 -1
  311. package/dist/services/sites.js.map +1 -1
  312. package/dist/services/sites.mjs +1 -1
  313. package/dist/services/sites.mjs.map +1 -1
  314. package/dist/services/storage.d.mts +1 -0
  315. package/dist/services/storage.d.ts +1 -0
  316. package/dist/services/storage.js +1 -1
  317. package/dist/services/storage.js.map +1 -1
  318. package/dist/services/storage.mjs +1 -1
  319. package/dist/services/storage.mjs.map +1 -1
  320. package/dist/services/tables-db.d.mts +7 -3
  321. package/dist/services/tables-db.d.ts +7 -3
  322. package/dist/services/tables-db.js +7 -2
  323. package/dist/services/tables-db.js.map +1 -1
  324. package/dist/services/tables-db.mjs +7 -2
  325. package/dist/services/tables-db.mjs.map +1 -1
  326. package/dist/services/teams.d.mts +1 -0
  327. package/dist/services/teams.d.ts +1 -0
  328. package/dist/services/teams.js +1 -1
  329. package/dist/services/teams.js.map +1 -1
  330. package/dist/services/teams.mjs +1 -1
  331. package/dist/services/teams.mjs.map +1 -1
  332. package/dist/services/tokens.d.mts +1 -0
  333. package/dist/services/tokens.d.ts +1 -0
  334. package/dist/services/tokens.js +1 -1
  335. package/dist/services/tokens.js.map +1 -1
  336. package/dist/services/tokens.mjs +1 -1
  337. package/dist/services/tokens.mjs.map +1 -1
  338. package/dist/services/users.d.mts +1 -0
  339. package/dist/services/users.d.ts +1 -0
  340. package/dist/services/users.js +1 -1
  341. package/dist/services/users.js.map +1 -1
  342. package/dist/services/users.mjs +1 -1
  343. package/dist/services/users.mjs.map +1 -1
  344. package/dist/services/webhooks.d.mts +33 -26
  345. package/dist/services/webhooks.d.ts +33 -26
  346. package/dist/services/webhooks.js +38 -28
  347. package/dist/services/webhooks.js.map +1 -1
  348. package/dist/services/webhooks.mjs +38 -28
  349. package/dist/services/webhooks.mjs.map +1 -1
  350. package/package.json +2 -2
package/dist/models.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use strict';
2
2
 
3
- //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=models.js.map
4
4
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"models.js"}
package/dist/models.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=models.mjs.map
3
3
  //# sourceMappingURL=models.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"models.mjs"}
@@ -178,4 +178,4 @@ declare class Operator {
178
178
  static dateSetNow: () => string;
179
179
  }
180
180
 
181
- export { Condition, Operator, OperatorValues, OperatorValuesList };
181
+ export { Condition, Operator, type OperatorValues, type OperatorValuesList };
@@ -178,4 +178,4 @@ declare class Operator {
178
178
  static dateSetNow: () => string;
179
179
  }
180
180
 
181
- export { Condition, Operator, OperatorValues, OperatorValuesList };
181
+ export { Condition, Operator, type OperatorValues, type OperatorValuesList };
package/dist/operator.js CHANGED
@@ -264,5 +264,5 @@ let Operator = _Operator;
264
264
 
265
265
  exports.Condition = Condition;
266
266
  exports.Operator = Operator;
267
- //# sourceMappingURL=out.js.map
267
+ //# sourceMappingURL=operator.js.map
268
268
  //# sourceMappingURL=operator.js.map
@@ -1 +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"]}
1
+ {"version":3,"sources":["../src/operator.ts"],"names":["Condition"],"mappings":"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","file":"operator.js","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/operator.mjs CHANGED
@@ -262,5 +262,5 @@ _Operator.dateSetNow = () => new _Operator("dateSetNow", []).toString();
262
262
  var Operator = _Operator;
263
263
 
264
264
  export { Condition, Operator };
265
- //# sourceMappingURL=out.js.map
265
+ //# sourceMappingURL=operator.mjs.map
266
266
  //# sourceMappingURL=operator.mjs.map
@@ -1 +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"]}
1
+ {"version":3,"sources":["../src/operator.ts"],"names":["Condition"],"mappings":"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","file":"operator.mjs","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"]}
@@ -52,5 +52,5 @@ Permission.delete = (role) => {
52
52
  };
53
53
 
54
54
  exports.Permission = Permission;
55
- //# sourceMappingURL=out.js.map
55
+ //# sourceMappingURL=permission.js.map
56
56
  //# sourceMappingURL=permission.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":"AAGO,MAAM,WAAW;AAqDxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDa,WAOF,OAAO,CAAC,SAAyB;AACpC,SAAO,SAAS,IAAI;AACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AATS,WAoBF,QAAQ,CAAC,SAAyB;AACrC,SAAO,UAAU,IAAI;AACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBS,WA8BF,SAAS,CAAC,SAAyB;AACtC,SAAO,WAAW,IAAI;AAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhCS,WAwCF,SAAS,CAAC,SAAyB;AACtC,SAAO,WAAW,IAAI;AAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1CS,WAkDF,SAAS,CAAC,SAAyB;AACtC,SAAO,WAAW,IAAI;AAC1B","sourcesContent":["/**\n * Helper class to generate permission strings for resources.\n */\nexport class Permission {\n /**\n * Generate read permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static read = (role: string): string => {\n return `read(\"${role}\")`;\n }\n\n /**\n * Generate write permission string for the provided role.\n *\n * This is an alias of update, delete, and possibly create.\n * Don't use write in combination with update, delete, or create.\n *\n * @param {string} role\n * @returns {string}\n */\n static write = (role: string): string => {\n return `write(\"${role}\")`;\n }\n\n /**\n * Generate create permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static create = (role: string): string => {\n return `create(\"${role}\")`;\n }\n\n /**\n * Generate update permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static update = (role: string): string => {\n return `update(\"${role}\")`;\n }\n\n /**\n * Generate delete permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static delete = (role: string): string => {\n return `delete(\"${role}\")`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":";;AAGO,MAAM,UAAA,CAAW;AAqDxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDa,UAAA,CAOF,IAAA,GAAO,CAAC,IAAA,KAAyB;AACpC,EAAA,OAAO,SAAS,IAAI,CAAA,EAAA,CAAA;AACxB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AATS,UAAA,CAoBF,KAAA,GAAQ,CAAC,IAAA,KAAyB;AACrC,EAAA,OAAO,UAAU,IAAI,CAAA,EAAA,CAAA;AACzB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBS,UAAA,CA8BF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhCS,UAAA,CAwCF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1CS,UAAA,CAkDF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA","file":"permission.js","sourcesContent":["/**\n * Helper class to generate permission strings for resources.\n */\nexport class Permission {\n /**\n * Generate read permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static read = (role: string): string => {\n return `read(\"${role}\")`;\n }\n\n /**\n * Generate write permission string for the provided role.\n *\n * This is an alias of update, delete, and possibly create.\n * Don't use write in combination with update, delete, or create.\n *\n * @param {string} role\n * @returns {string}\n */\n static write = (role: string): string => {\n return `write(\"${role}\")`;\n }\n\n /**\n * Generate create permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static create = (role: string): string => {\n return `create(\"${role}\")`;\n }\n\n /**\n * Generate update permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static update = (role: string): string => {\n return `update(\"${role}\")`;\n }\n\n /**\n * Generate delete permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static delete = (role: string): string => {\n return `delete(\"${role}\")`;\n }\n}\n"]}
@@ -51,5 +51,5 @@ Permission.delete = (role) => {
51
51
  };
52
52
 
53
53
  export { Permission };
54
- //# sourceMappingURL=out.js.map
54
+ //# sourceMappingURL=permission.mjs.map
55
55
  //# sourceMappingURL=permission.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":";AAGO,IAAM,aAAN,MAAiB;AAqDxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDa,WAOF,OAAO,CAAC,SAAyB;AACpC,SAAO,SAAS,IAAI;AACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AATS,WAoBF,QAAQ,CAAC,SAAyB;AACrC,SAAO,UAAU,IAAI;AACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBS,WA8BF,SAAS,CAAC,SAAyB;AACtC,SAAO,WAAW,IAAI;AAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhCS,WAwCF,SAAS,CAAC,SAAyB;AACtC,SAAO,WAAW,IAAI;AAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1CS,WAkDF,SAAS,CAAC,SAAyB;AACtC,SAAO,WAAW,IAAI;AAC1B","sourcesContent":["/**\n * Helper class to generate permission strings for resources.\n */\nexport class Permission {\n /**\n * Generate read permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static read = (role: string): string => {\n return `read(\"${role}\")`;\n }\n\n /**\n * Generate write permission string for the provided role.\n *\n * This is an alias of update, delete, and possibly create.\n * Don't use write in combination with update, delete, or create.\n *\n * @param {string} role\n * @returns {string}\n */\n static write = (role: string): string => {\n return `write(\"${role}\")`;\n }\n\n /**\n * Generate create permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static create = (role: string): string => {\n return `create(\"${role}\")`;\n }\n\n /**\n * Generate update permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static update = (role: string): string => {\n return `update(\"${role}\")`;\n }\n\n /**\n * Generate delete permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static delete = (role: string): string => {\n return `delete(\"${role}\")`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":";AAGO,IAAM,aAAN,MAAiB;AAqDxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDa,UAAA,CAOF,IAAA,GAAO,CAAC,IAAA,KAAyB;AACpC,EAAA,OAAO,SAAS,IAAI,CAAA,EAAA,CAAA;AACxB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AATS,UAAA,CAoBF,KAAA,GAAQ,CAAC,IAAA,KAAyB;AACrC,EAAA,OAAO,UAAU,IAAI,CAAA,EAAA,CAAA;AACzB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBS,UAAA,CA8BF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhCS,UAAA,CAwCF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1CS,UAAA,CAkDF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA","file":"permission.mjs","sourcesContent":["/**\n * Helper class to generate permission strings for resources.\n */\nexport class Permission {\n /**\n * Generate read permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static read = (role: string): string => {\n return `read(\"${role}\")`;\n }\n\n /**\n * Generate write permission string for the provided role.\n *\n * This is an alias of update, delete, and possibly create.\n * Don't use write in combination with update, delete, or create.\n *\n * @param {string} role\n * @returns {string}\n */\n static write = (role: string): string => {\n return `write(\"${role}\")`;\n }\n\n /**\n * Generate create permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static create = (role: string): string => {\n return `create(\"${role}\")`;\n }\n\n /**\n * Generate update permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static update = (role: string): string => {\n return `update(\"${role}\")`;\n }\n\n /**\n * Generate delete permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static delete = (role: string): string => {\n return `delete(\"${role}\")`;\n }\n}\n"]}
package/dist/query.d.mts CHANGED
@@ -440,4 +440,4 @@ declare class Query {
440
440
  static notTouches: (attribute: string, values: any[]) => string;
441
441
  }
442
442
 
443
- export { Query, QueryTypes, QueryTypesList };
443
+ export { Query, type QueryTypes, type QueryTypesList };
package/dist/query.d.ts CHANGED
@@ -440,4 +440,4 @@ declare class Query {
440
440
  static notTouches: (attribute: string, values: any[]) => string;
441
441
  }
442
442
 
443
- export { Query, QueryTypes, QueryTypesList };
443
+ export { Query, type QueryTypes, type QueryTypesList };
package/dist/query.js CHANGED
@@ -461,5 +461,5 @@ _Query.notTouches = (attribute, values) => new _Query("notTouches", attribute, [
461
461
  let Query = _Query;
462
462
 
463
463
  exports.Query = Query;
464
- //# sourceMappingURL=out.js.map
464
+ //# sourceMappingURL=query.js.map
465
465
  //# sourceMappingURL=query.js.map
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.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 matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).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 the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").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 * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 Query.lessThan(\"$createdAt\", value);\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 Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\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 Query.lessThan(\"$updatedAt\", value);\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 Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\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) => JSONbig.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) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
1
+ {"version":3,"sources":["../src/query.ts"],"names":["JSONbigModule"],"mappings":"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","file":"query.js","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.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 matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).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 the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").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 * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 Query.lessThan(\"$createdAt\", value);\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 Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\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 Query.lessThan(\"$updatedAt\", value);\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 Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\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) => JSONbig.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) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
package/dist/query.mjs CHANGED
@@ -456,5 +456,5 @@ _Query.notTouches = (attribute, values) => new _Query("notTouches", attribute, [
456
456
  var Query = _Query;
457
457
 
458
458
  export { Query };
459
- //# sourceMappingURL=out.js.map
459
+ //# sourceMappingURL=query.mjs.map
460
460
  //# sourceMappingURL=query.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/query.ts"],"names":[],"mappings":";AAAA,OAAO,mBAAmB;AAC1B,IAAM,UAAU,cAAc,EAAE,iBAAiB,KAAK,CAAC;AAUhD,IAAM,SAAN,MAAM,OAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYjB,YACE,QACA,WACA,QACA;AACA,SAAK,SAAS;AACd,SAAK,YAAY;AAEjB,QAAI,WAAW,QAAW;AACxB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,aAAK,SAAS;AAAA,MAChB,OAAO;AACL,aAAK,SAAS,CAAC,MAAM;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAmB;AACjB,WAAO,QAAQ,UAAU;AAAA,MACvB,QAAQ,KAAK;AAAA,MACb,WAAW,KAAK;AAAA,MAChB,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH;AA4gBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AApjBa,OAiDJ,QAAQ,CAAC,WAAmB,UACjC,IAAI,OAAM,SAAS,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAlDrC,OA2DJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA5DxC,OAqEJ,QAAQ,CAAC,WAAmB,YACjC,IAAI,OAAM,SAAS,WAAW,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtEvC,OA+EJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhFxC,OAyFJ,gBAAgB,CAAC,WAAmB,UACzC,IAAI,OAAM,iBAAiB,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1F7C,OAmGJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AApG3C,OA6GJ,mBAAmB,CAAC,WAAmB,UAC5C,IAAI,OAAM,oBAAoB,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA9GhD,OAsHJ,SAAS,CAAC,cACf,IAAI,OAAM,UAAU,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvH/B,OA+HJ,YAAY,CAAC,cAClB,IAAI,OAAM,aAAa,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhIlC,OAwIJ,SAAS,CAAC,eACf,IAAI,OAAM,UAAU,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzI3C,OAiJJ,YAAY,CAAC,eAClB,IAAI,OAAM,aAAa,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAlJ9C,OA4JJ,UAAU,CAAC,WAAmB,OAAiC,QACpE,IAAI,OAAM,WAAW,WAAW,CAAC,OAAO,GAAG,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7JhE,OAsKJ,aAAa,CAAC,WAAmB,UACtC,IAAI,OAAM,cAAc,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvK1C,OAgLJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjLxC,OAyLJ,SAAS,CAAC,eACf,IAAI,OAAM,UAAU,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1L3C,OAoMJ,SAAS,CAAC,WAAmB,UAClC,IAAI,OAAM,UAAU,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArMtC,OA6MJ,YAAY,CAAC,cAClB,IAAI,OAAM,aAAa,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA9MlC,OAsNJ,WAAW,CAAC,cACjB,IAAI,OAAM,YAAY,SAAS,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAvNjC,OA8NJ,cAAc,MACnB,IAAI,OAAM,aAAa,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/NzB,OAuOJ,cAAc,CAAC,eACpB,IAAI,OAAM,eAAe,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAxOhD,OAgPJ,eAAe,CAAC,eACrB,IAAI,OAAM,gBAAgB,QAAW,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjPjD,OAyPJ,QAAQ,CAAC,UACd,IAAI,OAAM,SAAS,QAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1PrC,OAkQJ,SAAS,CAAC,WACf,IAAI,OAAM,UAAU,QAAW,MAAM,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnQvC,OA8QJ,WAAW,CAAC,WAAmB,UACpC,IAAI,OAAM,YAAY,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/QxC,OA0RJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3R3C,OAsSJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvS3C,OAgTJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjT3C,OA2TJ,YAAY,CAAC,WAAmB,UACrC,IAAI,OAAM,aAAa,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA5TzC,OAsUJ,aAAa,CAAC,WAAmB,OAAiC,QACvE,IAAI,OAAM,cAAc,WAAW,CAAC,OAAO,GAAG,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvUnE,OAgVJ,gBAAgB,CAAC,WAAmB,UACzC,IAAI,OAAM,iBAAiB,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjV7C,OA0VJ,cAAc,CAAC,WAAmB,UACvC,IAAI,OAAM,eAAe,WAAW,KAAK,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3V3C,OAmWJ,gBAAgB,CAAC,UACtB,OAAM,SAAS,cAAc,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AApWzB,OA4WJ,eAAe,CAAC,UACrB,OAAM,YAAY,cAAc,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7W5B,OAsXJ,iBAAiB,CAAC,OAAe,QACtC,OAAM,QAAQ,cAAc,OAAO,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvX7B,OA+XJ,gBAAgB,CAAC,UACtB,OAAM,SAAS,cAAc,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhYzB,OAwYJ,eAAe,CAAC,UACrB,OAAM,YAAY,cAAc,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzY5B,OAkZJ,iBAAiB,CAAC,OAAe,QACtC,OAAM,QAAQ,cAAc,OAAO,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnZ7B,OA2ZJ,KAAK,CAAC,YACX,IAAI,OAAM,MAAM,QAAW,QAAQ,IAAI,CAAC,UAAU,QAAQ,MAAM,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA5ZzE,OAoaJ,MAAM,CAAC,YACZ,IAAI,OAAM,OAAO,QAAW,QAAQ,IAAI,CAAC,UAAU,QAAQ,MAAM,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAra1E,OA8aJ,YAAY,CAAC,WAAmB,YACrC,IAAI;AAAA,EACF;AAAA,EACA;AAAA,EACA,QAAQ,IAAI,CAAC,UAAU,QAAQ,MAAM,KAAK,CAAC;AAC7C,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnbF,OA8bJ,gBAAgB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAC5F,IAAI,OAAM,iBAAiB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/btF,OA0cJ,mBAAmB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAC/F,IAAI,OAAM,oBAAoB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3czF,OAsdJ,sBAAsB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAClG,IAAI,OAAM,uBAAuB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvd5F,OAkeJ,mBAAmB,CAAC,WAAmB,QAAe,UAAkB,SAAkB,SAC/F,IAAI,OAAM,oBAAoB,WAAW,CAAC,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAmB,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAnezF,OA4eJ,aAAa,CAAC,WAAmB,WACtC,IAAI,OAAM,cAAc,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7e7C,OAsfJ,gBAAgB,CAAC,WAAmB,WACzC,IAAI,OAAM,iBAAiB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvfhD,OAggBJ,UAAU,CAAC,WAAmB,WACnC,IAAI,OAAM,WAAW,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjgB1C,OA0gBJ,aAAa,CAAC,WAAmB,WACtC,IAAI,OAAM,cAAc,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3gB7C,OAohBJ,WAAW,CAAC,WAAmB,WACpC,IAAI,OAAM,YAAY,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArhB3C,OA8hBJ,cAAc,CAAC,WAAmB,WACvC,IAAI,OAAM,eAAe,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/hB9C,OAwiBJ,UAAU,CAAC,WAAmB,WACnC,IAAI,OAAM,WAAW,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAziB1C,OAkjBJ,aAAa,CAAC,WAAmB,WACtC,IAAI,OAAM,cAAc,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;AAnjBnD,IAAM,QAAN","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.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 matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).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 the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").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 * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 Query.lessThan(\"$createdAt\", value);\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 Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\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 Query.lessThan(\"$updatedAt\", value);\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 Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\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) => JSONbig.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) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
1
+ {"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","file":"query.mjs","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.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 matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).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 the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").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 * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 Query.lessThan(\"$createdAt\", value);\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 Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\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 Query.lessThan(\"$updatedAt\", value);\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 Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\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) => JSONbig.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) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
package/dist/role.js CHANGED
@@ -92,5 +92,5 @@ class Role {
92
92
  }
93
93
 
94
94
  exports.Role = Role;
95
- //# sourceMappingURL=out.js.map
95
+ //# sourceMappingURL=role.js.map
96
96
  //# sourceMappingURL=role.js.map
package/dist/role.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/role.ts"],"names":[],"mappings":"AAGO,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,OAAc,MAAc;AACxB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,KAAK,IAAY,SAAiB,IAAY;AACxD,QAAI,WAAW,IAAI;AACf,aAAO,QAAQ,EAAE;AAAA,IACrB;AACA,WAAO,QAAQ,EAAE,IAAI,MAAM;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,MAAM,SAAiB,IAAY;AAC7C,QAAI,WAAW,IAAI;AACf,aAAO;AAAA,IACX;AACA,WAAO,SAAS,MAAM;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAc,SAAiB;AAC3B,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,KAAK,IAAY,OAAe,IAAY;AACtD,QAAI,SAAS,IAAI;AACb,aAAO,QAAQ,EAAE;AAAA,IACrB;AACA,WAAO,QAAQ,EAAE,IAAI,IAAI;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,OAAO,IAAoB;AACrC,WAAO,UAAU,EAAE;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,MAAM,MAAsB;AACtC,WAAO,SAAS,IAAI;AAAA,EACxB;AACJ","sourcesContent":["/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}"]}
1
+ {"version":3,"sources":["../src/role.ts"],"names":[],"mappings":";;AAGO,MAAM,IAAA,CAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,OAAc,GAAA,GAAc;AACxB,IAAA,OAAO,KAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,MAAA,GAAiB,EAAA,EAAY;AACxD,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,KAAA,CAAM,MAAA,GAAiB,EAAA,EAAY;AAC7C,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,SAAS,MAAM,CAAA,CAAA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAc,MAAA,GAAiB;AAC3B,IAAA,OAAO,QAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,IAAA,GAAe,EAAA,EAAY;AACtD,IAAA,IAAI,SAAS,EAAA,EAAI;AACb,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,OAAO,EAAA,EAAoB;AACrC,IAAA,OAAO,UAAU,EAAE,CAAA,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,MAAM,IAAA,EAAsB;AACtC,IAAA,OAAO,SAAS,IAAI,CAAA,CAAA;AAAA,EACxB;AACJ","file":"role.js","sourcesContent":["/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}"]}
package/dist/role.mjs CHANGED
@@ -91,5 +91,5 @@ var Role = class {
91
91
  };
92
92
 
93
93
  export { Role };
94
- //# sourceMappingURL=out.js.map
94
+ //# sourceMappingURL=role.mjs.map
95
95
  //# sourceMappingURL=role.mjs.map
package/dist/role.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/role.ts"],"names":[],"mappings":";AAGO,IAAM,OAAN,MAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,OAAc,MAAc;AACxB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,KAAK,IAAY,SAAiB,IAAY;AACxD,QAAI,WAAW,IAAI;AACf,aAAO,QAAQ,EAAE;AAAA,IACrB;AACA,WAAO,QAAQ,EAAE,IAAI,MAAM;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,MAAM,SAAiB,IAAY;AAC7C,QAAI,WAAW,IAAI;AACf,aAAO;AAAA,IACX;AACA,WAAO,SAAS,MAAM;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAc,SAAiB;AAC3B,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,KAAK,IAAY,OAAe,IAAY;AACtD,QAAI,SAAS,IAAI;AACb,aAAO,QAAQ,EAAE;AAAA,IACrB;AACA,WAAO,QAAQ,EAAE,IAAI,IAAI;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,OAAO,IAAoB;AACrC,WAAO,UAAU,EAAE;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,MAAM,MAAsB;AACtC,WAAO,SAAS,IAAI;AAAA,EACxB;AACJ","sourcesContent":["/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}"]}
1
+ {"version":3,"sources":["../src/role.ts"],"names":[],"mappings":";AAGO,IAAM,OAAN,MAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,OAAc,GAAA,GAAc;AACxB,IAAA,OAAO,KAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,MAAA,GAAiB,EAAA,EAAY;AACxD,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,KAAA,CAAM,MAAA,GAAiB,EAAA,EAAY;AAC7C,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,SAAS,MAAM,CAAA,CAAA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAc,MAAA,GAAiB;AAC3B,IAAA,OAAO,QAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,IAAA,GAAe,EAAA,EAAY;AACtD,IAAA,IAAI,SAAS,EAAA,EAAI;AACb,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,OAAO,EAAA,EAAoB;AACrC,IAAA,OAAO,UAAU,EAAE,CAAA,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,MAAM,IAAA,EAAsB;AACtC,IAAA,OAAO,SAAS,IAAI,CAAA,CAAA;AAAA,EACxB;AACJ","file":"role.mjs","sourcesContent":["/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}"]}