@intlayer/backend 7.1.4 → 7.1.6

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 (925) hide show
  1. package/dist/cjs/controllers/ai.controller.cjs +2 -2
  2. package/dist/cjs/controllers/ai.controller.cjs.map +1 -1
  3. package/dist/cjs/schemas/dictionary.schema.cjs +2 -2
  4. package/dist/cjs/schemas/dictionary.schema.cjs.map +1 -1
  5. package/dist/cjs/schemas/discussion.schema.cjs +2 -2
  6. package/dist/cjs/schemas/discussion.schema.cjs.map +1 -1
  7. package/dist/cjs/schemas/oAuth2.schema.cjs +2 -2
  8. package/dist/cjs/schemas/oAuth2.schema.cjs.map +1 -1
  9. package/dist/cjs/schemas/organization.schema.cjs +2 -2
  10. package/dist/cjs/schemas/organization.schema.cjs.map +1 -1
  11. package/dist/cjs/schemas/plans.schema.cjs +2 -2
  12. package/dist/cjs/schemas/plans.schema.cjs.map +1 -1
  13. package/dist/cjs/schemas/project.schema.cjs +2 -2
  14. package/dist/cjs/schemas/project.schema.cjs.map +1 -1
  15. package/dist/cjs/schemas/session.schema.cjs +2 -2
  16. package/dist/cjs/schemas/session.schema.cjs.map +1 -1
  17. package/dist/cjs/schemas/tag.schema.cjs +2 -2
  18. package/dist/cjs/schemas/tag.schema.cjs.map +1 -1
  19. package/dist/cjs/schemas/user.schema.cjs +2 -2
  20. package/dist/cjs/schemas/user.schema.cjs.map +1 -1
  21. package/dist/cjs/services/email.service.cjs +1 -1
  22. package/dist/cjs/services/email.service.cjs.map +1 -1
  23. package/dist/cjs/services/oAuth2.service.cjs +1 -1
  24. package/dist/cjs/services/oAuth2.service.cjs.map +1 -1
  25. package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs +1 -1
  26. package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs.map +1 -1
  27. package/dist/cjs/utils/filtersAndPagination/getDiscussionFiltersAndPagination.cjs +1 -1
  28. package/dist/cjs/utils/filtersAndPagination/getDiscussionFiltersAndPagination.cjs.map +1 -1
  29. package/dist/cjs/utils/filtersAndPagination/getFiltersAndPaginationFromBody.cjs +1 -1
  30. package/dist/cjs/utils/filtersAndPagination/getFiltersAndPaginationFromBody.cjs.map +1 -1
  31. package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs +1 -1
  32. package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs.map +1 -1
  33. package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs +1 -1
  34. package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs.map +1 -1
  35. package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs +1 -1
  36. package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs.map +1 -1
  37. package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs +1 -1
  38. package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs.map +1 -1
  39. package/dist/cjs/utils/mapper/user.cjs +1 -1
  40. package/dist/cjs/utils/mapper/user.cjs.map +1 -1
  41. package/dist/esm/controllers/ai.controller.mjs +2 -2
  42. package/dist/esm/controllers/ai.controller.mjs.map +1 -1
  43. package/dist/esm/schemas/dictionary.schema.mjs +2 -2
  44. package/dist/esm/schemas/dictionary.schema.mjs.map +1 -1
  45. package/dist/esm/schemas/discussion.schema.mjs +2 -2
  46. package/dist/esm/schemas/discussion.schema.mjs.map +1 -1
  47. package/dist/esm/schemas/oAuth2.schema.mjs +2 -2
  48. package/dist/esm/schemas/oAuth2.schema.mjs.map +1 -1
  49. package/dist/esm/schemas/organization.schema.mjs +2 -2
  50. package/dist/esm/schemas/organization.schema.mjs.map +1 -1
  51. package/dist/esm/schemas/plans.schema.mjs +2 -2
  52. package/dist/esm/schemas/plans.schema.mjs.map +1 -1
  53. package/dist/esm/schemas/project.schema.mjs +2 -2
  54. package/dist/esm/schemas/project.schema.mjs.map +1 -1
  55. package/dist/esm/schemas/session.schema.mjs +2 -2
  56. package/dist/esm/schemas/session.schema.mjs.map +1 -1
  57. package/dist/esm/schemas/tag.schema.mjs +2 -2
  58. package/dist/esm/schemas/tag.schema.mjs.map +1 -1
  59. package/dist/esm/schemas/user.schema.mjs +2 -2
  60. package/dist/esm/schemas/user.schema.mjs.map +1 -1
  61. package/dist/esm/services/email.service.mjs +1 -1
  62. package/dist/esm/services/email.service.mjs.map +1 -1
  63. package/dist/esm/services/oAuth2.service.mjs +1 -1
  64. package/dist/esm/services/oAuth2.service.mjs.map +1 -1
  65. package/dist/esm/utils/filtersAndPagination/getDictionaryFiltersAndPagination.mjs +1 -1
  66. package/dist/esm/utils/filtersAndPagination/getDictionaryFiltersAndPagination.mjs.map +1 -1
  67. package/dist/esm/utils/filtersAndPagination/getDiscussionFiltersAndPagination.mjs +1 -1
  68. package/dist/esm/utils/filtersAndPagination/getDiscussionFiltersAndPagination.mjs.map +1 -1
  69. package/dist/esm/utils/filtersAndPagination/getFiltersAndPaginationFromBody.mjs +1 -1
  70. package/dist/esm/utils/filtersAndPagination/getFiltersAndPaginationFromBody.mjs.map +1 -1
  71. package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs +1 -1
  72. package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs.map +1 -1
  73. package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs +1 -1
  74. package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs.map +1 -1
  75. package/dist/esm/utils/filtersAndPagination/getTagFiltersAndPagination.mjs +1 -1
  76. package/dist/esm/utils/filtersAndPagination/getTagFiltersAndPagination.mjs.map +1 -1
  77. package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs +1 -1
  78. package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs.map +1 -1
  79. package/dist/esm/utils/mapper/user.mjs +1 -1
  80. package/dist/esm/utils/mapper/user.mjs.map +1 -1
  81. package/dist/types/controllers/ai.controller.d.ts.map +1 -1
  82. package/dist/types/controllers/project.controller.d.ts.map +1 -1
  83. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  84. package/dist/types/emails/InviteUserEmail.d.ts +4 -4
  85. package/dist/types/emails/MagicLinkEmail.d.ts +4 -4
  86. package/dist/types/emails/MagicLinkEmail.d.ts.map +1 -1
  87. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +4 -4
  88. package/dist/types/emails/PasswordChangeConfirmation.d.ts +4 -4
  89. package/dist/types/emails/ResetUserPassword.d.ts +4 -4
  90. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +4 -4
  91. package/dist/types/emails/SubscriptionPaymentError.d.ts +4 -4
  92. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +4 -4
  93. package/dist/types/emails/ValidateUserEmail.d.ts +4 -4
  94. package/dist/types/emails/ValidateUserEmail.d.ts.map +1 -1
  95. package/dist/types/models/dictionary.model.d.ts +4 -4
  96. package/dist/types/models/dictionary.model.d.ts.map +1 -1
  97. package/dist/types/models/discussion.model.d.ts +2 -2
  98. package/dist/types/models/discussion.model.d.ts.map +1 -1
  99. package/dist/types/models/oAuth2.model.d.ts +3 -3
  100. package/dist/types/models/oAuth2.model.d.ts.map +1 -1
  101. package/dist/types/schemas/dictionary.schema.d.ts +6 -6
  102. package/dist/types/schemas/discussion.schema.d.ts +6 -6
  103. package/dist/types/schemas/discussion.schema.d.ts.map +1 -1
  104. package/dist/types/schemas/oAuth2.schema.d.ts +5 -5
  105. package/dist/types/schemas/oAuth2.schema.d.ts.map +1 -1
  106. package/dist/types/schemas/organization.schema.d.ts +6 -6
  107. package/dist/types/schemas/plans.schema.d.ts +6 -6
  108. package/dist/types/schemas/project.schema.d.ts +6 -6
  109. package/dist/types/schemas/session.schema.d.ts +6 -6
  110. package/dist/types/schemas/tag.schema.d.ts +6 -6
  111. package/dist/types/schemas/user.schema.d.ts +6 -6
  112. package/dist/types/schemas/user.schema.d.ts.map +1 -1
  113. package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts +2 -2
  114. package/dist/types/utils/filtersAndPagination/getDiscussionFiltersAndPagination.d.ts +2 -2
  115. package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +2 -2
  116. package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +2 -2
  117. package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +2 -2
  118. package/package.json +7 -7
  119. package/dist/cjs/controllers/audit.controller.cjs +0 -186
  120. package/dist/cjs/controllers/audit.controller.cjs.map +0 -1
  121. package/dist/cjs/models/audit.model.cjs +0 -10
  122. package/dist/cjs/models/audit.model.cjs.map +0 -1
  123. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs +0 -16
  124. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs.map +0 -1
  125. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs +0 -25
  126. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs.map +0 -1
  127. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs +0 -31
  128. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs.map +0 -1
  129. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs +0 -38
  130. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs.map +0 -1
  131. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs +0 -231
  132. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs.map +0 -1
  133. package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs +0 -1210
  134. package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs.map +0 -1
  135. package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs +0 -362
  136. package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs.map +0 -1
  137. package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs +0 -89
  138. package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs.map +0 -1
  139. package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs +0 -110
  140. package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs.map +0 -1
  141. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs +0 -248
  142. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs.map +0 -1
  143. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs +0 -1309
  144. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs.map +0 -1
  145. package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs +0 -2176
  146. package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs.map +0 -1
  147. package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs +0 -20
  148. package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs.map +0 -1
  149. package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs +0 -499
  150. package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs.map +0 -1
  151. package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs +0 -20
  152. package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs.map +0 -1
  153. package/dist/cjs/node_modules/asn1/lib/ber/index.cjs +0 -28
  154. package/dist/cjs/node_modules/asn1/lib/ber/index.cjs.map +0 -1
  155. package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs +0 -167
  156. package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs.map +0 -1
  157. package/dist/cjs/node_modules/asn1/lib/ber/types.cjs +0 -47
  158. package/dist/cjs/node_modules/asn1/lib/ber/types.cjs.map +0 -1
  159. package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs +0 -223
  160. package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs.map +0 -1
  161. package/dist/cjs/node_modules/asn1/lib/index.cjs +0 -21
  162. package/dist/cjs/node_modules/asn1/lib/index.cjs.map +0 -1
  163. package/dist/cjs/node_modules/camelcase/index.cjs +0 -78
  164. package/dist/cjs/node_modules/camelcase/index.cjs.map +0 -1
  165. package/dist/cjs/node_modules/escape-html/index.cjs +0 -71
  166. package/dist/cjs/node_modules/escape-html/index.cjs.map +0 -1
  167. package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs +0 -9
  168. package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs.map +0 -1
  169. package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs +0 -29
  170. package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs.map +0 -1
  171. package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs +0 -244
  172. package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs.map +0 -1
  173. package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs +0 -14
  174. package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs.map +0 -1
  175. package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs +0 -10
  176. package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs.map +0 -1
  177. package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs +0 -17
  178. package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs.map +0 -1
  179. package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs +0 -20
  180. package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs.map +0 -1
  181. package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs +0 -32
  182. package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs.map +0 -1
  183. package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs +0 -28
  184. package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs.map +0 -1
  185. package/dist/cjs/node_modules/node-forge/lib/aes.cjs +0 -604
  186. package/dist/cjs/node_modules/node-forge/lib/aes.cjs.map +0 -1
  187. package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs +0 -202
  188. package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs.map +0 -1
  189. package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs +0 -83
  190. package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs.map +0 -1
  191. package/dist/cjs/node_modules/node-forge/lib/asn1.cjs +0 -945
  192. package/dist/cjs/node_modules/node-forge/lib/asn1.cjs.map +0 -1
  193. package/dist/cjs/node_modules/node-forge/lib/baseN.cjs +0 -144
  194. package/dist/cjs/node_modules/node-forge/lib/baseN.cjs.map +0 -1
  195. package/dist/cjs/node_modules/node-forge/lib/cipher.cjs +0 -193
  196. package/dist/cjs/node_modules/node-forge/lib/cipher.cjs.map +0 -1
  197. package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs +0 -604
  198. package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs.map +0 -1
  199. package/dist/cjs/node_modules/node-forge/lib/des.cjs +0 -1194
  200. package/dist/cjs/node_modules/node-forge/lib/des.cjs.map +0 -1
  201. package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs +0 -1027
  202. package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs.map +0 -1
  203. package/dist/cjs/node_modules/node-forge/lib/forge.cjs +0 -22
  204. package/dist/cjs/node_modules/node-forge/lib/forge.cjs.map +0 -1
  205. package/dist/cjs/node_modules/node-forge/lib/hmac.cjs +0 -114
  206. package/dist/cjs/node_modules/node-forge/lib/hmac.cjs.map +0 -1
  207. package/dist/cjs/node_modules/node-forge/lib/index.cjs +0 -73
  208. package/dist/cjs/node_modules/node-forge/lib/index.cjs.map +0 -1
  209. package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs +0 -1263
  210. package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs.map +0 -1
  211. package/dist/cjs/node_modules/node-forge/lib/kem.cjs +0 -153
  212. package/dist/cjs/node_modules/node-forge/lib/kem.cjs.map +0 -1
  213. package/dist/cjs/node_modules/node-forge/lib/log.cjs +0 -248
  214. package/dist/cjs/node_modules/node-forge/lib/log.cjs.map +0 -1
  215. package/dist/cjs/node_modules/node-forge/lib/md.all.cjs +0 -31
  216. package/dist/cjs/node_modules/node-forge/lib/md.all.cjs.map +0 -1
  217. package/dist/cjs/node_modules/node-forge/lib/md.cjs +0 -25
  218. package/dist/cjs/node_modules/node-forge/lib/md.cjs.map +0 -1
  219. package/dist/cjs/node_modules/node-forge/lib/md5.cjs +0 -331
  220. package/dist/cjs/node_modules/node-forge/lib/md5.cjs.map +0 -1
  221. package/dist/cjs/node_modules/node-forge/lib/mgf.cjs +0 -27
  222. package/dist/cjs/node_modules/node-forge/lib/mgf.cjs.map +0 -1
  223. package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs +0 -51
  224. package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs.map +0 -1
  225. package/dist/cjs/node_modules/node-forge/lib/oids.cjs +0 -160
  226. package/dist/cjs/node_modules/node-forge/lib/oids.cjs.map +0 -1
  227. package/dist/cjs/node_modules/node-forge/lib/pbe.cjs +0 -822
  228. package/dist/cjs/node_modules/node-forge/lib/pbe.cjs.map +0 -1
  229. package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs +0 -132
  230. package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs.map +0 -1
  231. package/dist/cjs/node_modules/node-forge/lib/pem.cjs +0 -182
  232. package/dist/cjs/node_modules/node-forge/lib/pem.cjs.map +0 -1
  233. package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs +0 -207
  234. package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs.map +0 -1
  235. package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs +0 -730
  236. package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs.map +0 -1
  237. package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs +0 -648
  238. package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs.map +0 -1
  239. package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs +0 -412
  240. package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs.map +0 -1
  241. package/dist/cjs/node_modules/node-forge/lib/pki.cjs +0 -108
  242. package/dist/cjs/node_modules/node-forge/lib/pki.cjs.map +0 -1
  243. package/dist/cjs/node_modules/node-forge/lib/prime.cjs +0 -200
  244. package/dist/cjs/node_modules/node-forge/lib/prime.cjs.map +0 -1
  245. package/dist/cjs/node_modules/node-forge/lib/prng.cjs +0 -297
  246. package/dist/cjs/node_modules/node-forge/lib/prng.cjs.map +0 -1
  247. package/dist/cjs/node_modules/node-forge/lib/pss.cjs +0 -148
  248. package/dist/cjs/node_modules/node-forge/lib/pss.cjs.map +0 -1
  249. package/dist/cjs/node_modules/node-forge/lib/random.cjs +0 -148
  250. package/dist/cjs/node_modules/node-forge/lib/random.cjs.map +0 -1
  251. package/dist/cjs/node_modules/node-forge/lib/rc2.cjs +0 -545
  252. package/dist/cjs/node_modules/node-forge/lib/rc2.cjs.map +0 -1
  253. package/dist/cjs/node_modules/node-forge/lib/rsa.cjs +0 -1306
  254. package/dist/cjs/node_modules/node-forge/lib/rsa.cjs.map +0 -1
  255. package/dist/cjs/node_modules/node-forge/lib/sha1.cjs +0 -237
  256. package/dist/cjs/node_modules/node-forge/lib/sha1.cjs.map +0 -1
  257. package/dist/cjs/node_modules/node-forge/lib/sha256.cjs +0 -274
  258. package/dist/cjs/node_modules/node-forge/lib/sha256.cjs.map +0 -1
  259. package/dist/cjs/node_modules/node-forge/lib/sha512.cjs +0 -420
  260. package/dist/cjs/node_modules/node-forge/lib/sha512.cjs.map +0 -1
  261. package/dist/cjs/node_modules/node-forge/lib/ssh.cjs +0 -201
  262. package/dist/cjs/node_modules/node-forge/lib/ssh.cjs.map +0 -1
  263. package/dist/cjs/node_modules/node-forge/lib/tls.cjs +0 -3662
  264. package/dist/cjs/node_modules/node-forge/lib/tls.cjs.map +0 -1
  265. package/dist/cjs/node_modules/node-forge/lib/util.cjs +0 -2124
  266. package/dist/cjs/node_modules/node-forge/lib/util.cjs.map +0 -1
  267. package/dist/cjs/node_modules/node-forge/lib/x509.cjs +0 -2171
  268. package/dist/cjs/node_modules/node-forge/lib/x509.cjs.map +0 -1
  269. package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs +0 -341
  270. package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs.map +0 -1
  271. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs +0 -26
  272. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs.map +0 -1
  273. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs +0 -65
  274. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs.map +0 -1
  275. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs +0 -44
  276. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs.map +0 -1
  277. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs +0 -49
  278. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs.map +0 -1
  279. package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs +0 -55
  280. package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs.map +0 -1
  281. package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs +0 -86
  282. package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs.map +0 -1
  283. package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs +0 -177
  284. package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs.map +0 -1
  285. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs +0 -104
  286. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs.map +0 -1
  287. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs +0 -131
  288. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs.map +0 -1
  289. package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs +0 -1347
  290. package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs.map +0 -1
  291. package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs +0 -231
  292. package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs.map +0 -1
  293. package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs +0 -123
  294. package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs.map +0 -1
  295. package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs +0 -175
  296. package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs.map +0 -1
  297. package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs +0 -123
  298. package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs.map +0 -1
  299. package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs +0 -28
  300. package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs.map +0 -1
  301. package/dist/cjs/node_modules/node-rsa/src/utils.cjs +0 -84
  302. package/dist/cjs/node_modules/node-rsa/src/utils.cjs.map +0 -1
  303. package/dist/cjs/node_modules/pako/index.cjs +0 -25
  304. package/dist/cjs/node_modules/pako/index.cjs.map +0 -1
  305. package/dist/cjs/node_modules/pako/lib/deflate.cjs +0 -311
  306. package/dist/cjs/node_modules/pako/lib/deflate.cjs.map +0 -1
  307. package/dist/cjs/node_modules/pako/lib/inflate.cjs +0 -317
  308. package/dist/cjs/node_modules/pako/lib/inflate.cjs.map +0 -1
  309. package/dist/cjs/node_modules/pako/lib/utils/common.cjs +0 -77
  310. package/dist/cjs/node_modules/pako/lib/utils/common.cjs.map +0 -1
  311. package/dist/cjs/node_modules/pako/lib/utils/strings.cjs +0 -131
  312. package/dist/cjs/node_modules/pako/lib/utils/strings.cjs.map +0 -1
  313. package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs +0 -29
  314. package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs.map +0 -1
  315. package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs +0 -43
  316. package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs.map +0 -1
  317. package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs +0 -31
  318. package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs.map +0 -1
  319. package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs +0 -889
  320. package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs.map +0 -1
  321. package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs +0 -27
  322. package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs.map +0 -1
  323. package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs +0 -227
  324. package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs.map +0 -1
  325. package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs +0 -1038
  326. package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs.map +0 -1
  327. package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs +0 -278
  328. package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs.map +0 -1
  329. package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs +0 -25
  330. package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs.map +0 -1
  331. package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs +0 -626
  332. package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs.map +0 -1
  333. package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs +0 -29
  334. package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs.map +0 -1
  335. package/dist/cjs/node_modules/safer-buffer/safer.cjs +0 -52
  336. package/dist/cjs/node_modules/safer-buffer/safer.cjs.map +0 -1
  337. package/dist/cjs/node_modules/samlify/build/index.cjs +0 -120
  338. package/dist/cjs/node_modules/samlify/build/index.cjs.map +0 -1
  339. package/dist/cjs/node_modules/samlify/build/src/api.cjs +0 -36
  340. package/dist/cjs/node_modules/samlify/build/src/api.cjs.map +0 -1
  341. package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs +0 -507
  342. package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs.map +0 -1
  343. package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs +0 -342
  344. package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs.map +0 -1
  345. package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs +0 -361
  346. package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs.map +0 -1
  347. package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs +0 -282
  348. package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs.map +0 -1
  349. package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs +0 -145
  350. package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs.map +0 -1
  351. package/dist/cjs/node_modules/samlify/build/src/entity.cjs +0 -256
  352. package/dist/cjs/node_modules/samlify/build/src/entity.cjs.map +0 -1
  353. package/dist/cjs/node_modules/samlify/build/src/extractor.cjs +0 -355
  354. package/dist/cjs/node_modules/samlify/build/src/extractor.cjs.map +0 -1
  355. package/dist/cjs/node_modules/samlify/build/src/flow.cjs +0 -392
  356. package/dist/cjs/node_modules/samlify/build/src/flow.cjs.map +0 -1
  357. package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs +0 -547
  358. package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs.map +0 -1
  359. package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs +0 -174
  360. package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs.map +0 -1
  361. package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs +0 -217
  362. package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs.map +0 -1
  363. package/dist/cjs/node_modules/samlify/build/src/metadata.cjs +0 -203
  364. package/dist/cjs/node_modules/samlify/build/src/metadata.cjs.map +0 -1
  365. package/dist/cjs/node_modules/samlify/build/src/urn.cjs +0 -228
  366. package/dist/cjs/node_modules/samlify/build/src/urn.cjs.map +0 -1
  367. package/dist/cjs/node_modules/samlify/build/src/utility.cjs +0 -280
  368. package/dist/cjs/node_modules/samlify/build/src/utility.cjs.map +0 -1
  369. package/dist/cjs/node_modules/samlify/build/src/validator.cjs +0 -56
  370. package/dist/cjs/node_modules/samlify/build/src/validator.cjs.map +0 -1
  371. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs +0 -50
  372. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs.map +0 -1
  373. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs +0 -25
  374. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs.map +0 -1
  375. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs +0 -18
  376. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs.map +0 -1
  377. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs +0 -42
  378. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs.map +0 -1
  379. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs +0 -18
  380. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs.map +0 -1
  381. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs +0 -28
  382. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs.map +0 -1
  383. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs +0 -25
  384. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs.map +0 -1
  385. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs +0 -27
  386. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs.map +0 -1
  387. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs +0 -69
  388. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs.map +0 -1
  389. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs +0 -23
  390. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs.map +0 -1
  391. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs +0 -54
  392. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs.map +0 -1
  393. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs +0 -34
  394. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs.map +0 -1
  395. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs +0 -23
  396. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs.map +0 -1
  397. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs +0 -23
  398. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs.map +0 -1
  399. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs +0 -24
  400. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs.map +0 -1
  401. package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs +0 -27
  402. package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs.map +0 -1
  403. package/dist/cjs/node_modules/xml/lib/xml.cjs +0 -186
  404. package/dist/cjs/node_modules/xml/lib/xml.cjs.map +0 -1
  405. package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs +0 -202
  406. package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs.map +0 -1
  407. package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs +0 -52
  408. package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs.map +0 -1
  409. package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs +0 -223
  410. package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs.map +0 -1
  411. package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs +0 -56
  412. package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs.map +0 -1
  413. package/dist/cjs/node_modules/xml-crypto/lib/index.cjs +0 -73
  414. package/dist/cjs/node_modules/xml-crypto/lib/index.cjs.map +0 -1
  415. package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs +0 -91
  416. package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs.map +0 -1
  417. package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs +0 -695
  418. package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs.map +0 -1
  419. package/dist/cjs/node_modules/xml-crypto/lib/types.cjs +0 -58
  420. package/dist/cjs/node_modules/xml-crypto/lib/types.cjs.map +0 -1
  421. package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs +0 -213
  422. package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs.map +0 -1
  423. package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs +0 -3445
  424. package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs.map +0 -1
  425. package/dist/cjs/node_modules/xml-escape/index.cjs +0 -30
  426. package/dist/cjs/node_modules/xml-escape/index.cjs.map +0 -1
  427. package/dist/cjs/node_modules/xpath/xpath.cjs +0 -3410
  428. package/dist/cjs/node_modules/xpath/xpath.cjs.map +0 -1
  429. package/dist/cjs/node_modules/zod/v4/classic/errors.cjs +0 -31
  430. package/dist/cjs/node_modules/zod/v4/classic/errors.cjs.map +0 -1
  431. package/dist/cjs/node_modules/zod/v4/classic/iso.cjs +0 -42
  432. package/dist/cjs/node_modules/zod/v4/classic/iso.cjs.map +0 -1
  433. package/dist/cjs/node_modules/zod/v4/classic/parse.cjs +0 -32
  434. package/dist/cjs/node_modules/zod/v4/classic/parse.cjs.map +0 -1
  435. package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs +0 -527
  436. package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs.map +0 -1
  437. package/dist/cjs/node_modules/zod/v4/core/api.cjs +0 -443
  438. package/dist/cjs/node_modules/zod/v4/core/api.cjs.map +0 -1
  439. package/dist/cjs/node_modules/zod/v4/core/checks.cjs +0 -238
  440. package/dist/cjs/node_modules/zod/v4/core/checks.cjs.map +0 -1
  441. package/dist/cjs/node_modules/zod/v4/core/core.cjs +0 -63
  442. package/dist/cjs/node_modules/zod/v4/core/core.cjs.map +0 -1
  443. package/dist/cjs/node_modules/zod/v4/core/doc.cjs +0 -36
  444. package/dist/cjs/node_modules/zod/v4/core/doc.cjs.map +0 -1
  445. package/dist/cjs/node_modules/zod/v4/core/errors.cjs +0 -67
  446. package/dist/cjs/node_modules/zod/v4/core/errors.cjs.map +0 -1
  447. package/dist/cjs/node_modules/zod/v4/core/parse.cjs +0 -124
  448. package/dist/cjs/node_modules/zod/v4/core/parse.cjs.map +0 -1
  449. package/dist/cjs/node_modules/zod/v4/core/regexes.cjs +0 -87
  450. package/dist/cjs/node_modules/zod/v4/core/regexes.cjs.map +0 -1
  451. package/dist/cjs/node_modules/zod/v4/core/registries.cjs +0 -55
  452. package/dist/cjs/node_modules/zod/v4/core/registries.cjs.map +0 -1
  453. package/dist/cjs/node_modules/zod/v4/core/schemas.cjs +0 -1115
  454. package/dist/cjs/node_modules/zod/v4/core/schemas.cjs.map +0 -1
  455. package/dist/cjs/node_modules/zod/v4/core/util.cjs +0 -333
  456. package/dist/cjs/node_modules/zod/v4/core/util.cjs.map +0 -1
  457. package/dist/cjs/node_modules/zod/v4/core/versions.cjs +0 -12
  458. package/dist/cjs/node_modules/zod/v4/core/versions.cjs.map +0 -1
  459. package/dist/esm/_virtual/rolldown_runtime.mjs +0 -43
  460. package/dist/esm/controllers/audit.controller.mjs +0 -182
  461. package/dist/esm/controllers/audit.controller.mjs.map +0 -1
  462. package/dist/esm/models/audit.model.mjs +0 -9
  463. package/dist/esm/models/audit.model.mjs.map +0 -1
  464. package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs +0 -13
  465. package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs.map +0 -1
  466. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs +0 -22
  467. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs.map +0 -1
  468. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs +0 -28
  469. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs.map +0 -1
  470. package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs +0 -35
  471. package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs.map +0 -1
  472. package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs +0 -228
  473. package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs.map +0 -1
  474. package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs +0 -1210
  475. package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs.map +0 -1
  476. package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs +0 -359
  477. package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs.map +0 -1
  478. package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs +0 -86
  479. package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs.map +0 -1
  480. package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs +0 -107
  481. package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs.map +0 -1
  482. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs +0 -245
  483. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs.map +0 -1
  484. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs +0 -1306
  485. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs.map +0 -1
  486. package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs +0 -2173
  487. package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs.map +0 -1
  488. package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs +0 -17
  489. package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs.map +0 -1
  490. package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs +0 -496
  491. package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs.map +0 -1
  492. package/dist/esm/node_modules/asn1/lib/ber/errors.mjs +0 -17
  493. package/dist/esm/node_modules/asn1/lib/ber/errors.mjs.map +0 -1
  494. package/dist/esm/node_modules/asn1/lib/ber/index.mjs +0 -25
  495. package/dist/esm/node_modules/asn1/lib/ber/index.mjs.map +0 -1
  496. package/dist/esm/node_modules/asn1/lib/ber/reader.mjs +0 -164
  497. package/dist/esm/node_modules/asn1/lib/ber/reader.mjs.map +0 -1
  498. package/dist/esm/node_modules/asn1/lib/ber/types.mjs +0 -44
  499. package/dist/esm/node_modules/asn1/lib/ber/types.mjs.map +0 -1
  500. package/dist/esm/node_modules/asn1/lib/ber/writer.mjs +0 -220
  501. package/dist/esm/node_modules/asn1/lib/ber/writer.mjs.map +0 -1
  502. package/dist/esm/node_modules/asn1/lib/index.mjs +0 -18
  503. package/dist/esm/node_modules/asn1/lib/index.mjs.map +0 -1
  504. package/dist/esm/node_modules/available-typed-arrays/index.mjs +0 -20
  505. package/dist/esm/node_modules/available-typed-arrays/index.mjs.map +0 -1
  506. package/dist/esm/node_modules/base64-js/index.mjs +0 -95
  507. package/dist/esm/node_modules/base64-js/index.mjs.map +0 -1
  508. package/dist/esm/node_modules/buffer/index.mjs +0 -1114
  509. package/dist/esm/node_modules/buffer/index.mjs.map +0 -1
  510. package/dist/esm/node_modules/call-bind/index.mjs +0 -26
  511. package/dist/esm/node_modules/call-bind/index.mjs.map +0 -1
  512. package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs +0 -21
  513. package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs.map +0 -1
  514. package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs +0 -21
  515. package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs.map +0 -1
  516. package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs +0 -13
  517. package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs.map +0 -1
  518. package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs +0 -13
  519. package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs.map +0 -1
  520. package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs +0 -24
  521. package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs.map +0 -1
  522. package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs +0 -13
  523. package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs.map +0 -1
  524. package/dist/esm/node_modules/call-bound/index.mjs +0 -23
  525. package/dist/esm/node_modules/call-bound/index.mjs.map +0 -1
  526. package/dist/esm/node_modules/camelcase/index.mjs +0 -75
  527. package/dist/esm/node_modules/camelcase/index.mjs.map +0 -1
  528. package/dist/esm/node_modules/define-data-property/index.mjs +0 -41
  529. package/dist/esm/node_modules/define-data-property/index.mjs.map +0 -1
  530. package/dist/esm/node_modules/dunder-proto/get.mjs +0 -28
  531. package/dist/esm/node_modules/dunder-proto/get.mjs.map +0 -1
  532. package/dist/esm/node_modules/es-define-property/index.mjs +0 -19
  533. package/dist/esm/node_modules/es-define-property/index.mjs.map +0 -1
  534. package/dist/esm/node_modules/es-errors/eval.mjs +0 -13
  535. package/dist/esm/node_modules/es-errors/eval.mjs.map +0 -1
  536. package/dist/esm/node_modules/es-errors/index.mjs +0 -13
  537. package/dist/esm/node_modules/es-errors/index.mjs.map +0 -1
  538. package/dist/esm/node_modules/es-errors/range.mjs +0 -13
  539. package/dist/esm/node_modules/es-errors/range.mjs.map +0 -1
  540. package/dist/esm/node_modules/es-errors/ref.mjs +0 -13
  541. package/dist/esm/node_modules/es-errors/ref.mjs.map +0 -1
  542. package/dist/esm/node_modules/es-errors/syntax.mjs +0 -13
  543. package/dist/esm/node_modules/es-errors/syntax.mjs.map +0 -1
  544. package/dist/esm/node_modules/es-errors/type.mjs +0 -13
  545. package/dist/esm/node_modules/es-errors/type.mjs.map +0 -1
  546. package/dist/esm/node_modules/es-errors/uri.mjs +0 -13
  547. package/dist/esm/node_modules/es-errors/uri.mjs.map +0 -1
  548. package/dist/esm/node_modules/es-object-atoms/index.mjs +0 -13
  549. package/dist/esm/node_modules/es-object-atoms/index.mjs.map +0 -1
  550. package/dist/esm/node_modules/escape-html/index.mjs +0 -68
  551. package/dist/esm/node_modules/escape-html/index.mjs.map +0 -1
  552. package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs +0 -8
  553. package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs.map +0 -1
  554. package/dist/esm/node_modules/fast-xml-parser/src/util.mjs +0 -26
  555. package/dist/esm/node_modules/fast-xml-parser/src/util.mjs.map +0 -1
  556. package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs +0 -243
  557. package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs.map +0 -1
  558. package/dist/esm/node_modules/for-each/index.mjs +0 -43
  559. package/dist/esm/node_modules/for-each/index.mjs.map +0 -1
  560. package/dist/esm/node_modules/function-bind/implementation.mjs +0 -59
  561. package/dist/esm/node_modules/function-bind/implementation.mjs.map +0 -1
  562. package/dist/esm/node_modules/function-bind/index.mjs +0 -14
  563. package/dist/esm/node_modules/function-bind/index.mjs.map +0 -1
  564. package/dist/esm/node_modules/generator-function/index.mjs +0 -14
  565. package/dist/esm/node_modules/generator-function/index.mjs.map +0 -1
  566. package/dist/esm/node_modules/get-intrinsic/index.mjs +0 -358
  567. package/dist/esm/node_modules/get-intrinsic/index.mjs.map +0 -1
  568. package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs +0 -15
  569. package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs.map +0 -1
  570. package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs +0 -13
  571. package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs.map +0 -1
  572. package/dist/esm/node_modules/get-proto/index.mjs +0 -26
  573. package/dist/esm/node_modules/get-proto/index.mjs.map +0 -1
  574. package/dist/esm/node_modules/gopd/gOPD.mjs +0 -13
  575. package/dist/esm/node_modules/gopd/gOPD.mjs.map +0 -1
  576. package/dist/esm/node_modules/gopd/index.mjs +0 -20
  577. package/dist/esm/node_modules/gopd/index.mjs.map +0 -1
  578. package/dist/esm/node_modules/has-property-descriptors/index.mjs +0 -25
  579. package/dist/esm/node_modules/has-property-descriptors/index.mjs.map +0 -1
  580. package/dist/esm/node_modules/has-symbols/index.mjs +0 -22
  581. package/dist/esm/node_modules/has-symbols/index.mjs.map +0 -1
  582. package/dist/esm/node_modules/has-symbols/shams.mjs +0 -36
  583. package/dist/esm/node_modules/has-symbols/shams.mjs.map +0 -1
  584. package/dist/esm/node_modules/has-tostringtag/shams.mjs +0 -17
  585. package/dist/esm/node_modules/has-tostringtag/shams.mjs.map +0 -1
  586. package/dist/esm/node_modules/hasown/index.mjs +0 -17
  587. package/dist/esm/node_modules/hasown/index.mjs.map +0 -1
  588. package/dist/esm/node_modules/ieee754/index.mjs +0 -80
  589. package/dist/esm/node_modules/ieee754/index.mjs.map +0 -1
  590. package/dist/esm/node_modules/inherits/inherits_browser.mjs +0 -31
  591. package/dist/esm/node_modules/inherits/inherits_browser.mjs.map +0 -1
  592. package/dist/esm/node_modules/is-arguments/index.mjs +0 -31
  593. package/dist/esm/node_modules/is-arguments/index.mjs.map +0 -1
  594. package/dist/esm/node_modules/is-callable/index.mjs +0 -87
  595. package/dist/esm/node_modules/is-callable/index.mjs.map +0 -1
  596. package/dist/esm/node_modules/is-generator-function/index.mjs +0 -32
  597. package/dist/esm/node_modules/is-generator-function/index.mjs.map +0 -1
  598. package/dist/esm/node_modules/is-regex/index.mjs +0 -58
  599. package/dist/esm/node_modules/is-regex/index.mjs.map +0 -1
  600. package/dist/esm/node_modules/is-typed-array/index.mjs +0 -17
  601. package/dist/esm/node_modules/is-typed-array/index.mjs.map +0 -1
  602. package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs +0 -12
  603. package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs.map +0 -1
  604. package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs +0 -8
  605. package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs.map +0 -1
  606. package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs +0 -15
  607. package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs.map +0 -1
  608. package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs +0 -19
  609. package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs.map +0 -1
  610. package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs +0 -31
  611. package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs.map +0 -1
  612. package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs +0 -26
  613. package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs.map +0 -1
  614. package/dist/esm/node_modules/math-intrinsics/abs.mjs +0 -13
  615. package/dist/esm/node_modules/math-intrinsics/abs.mjs.map +0 -1
  616. package/dist/esm/node_modules/math-intrinsics/floor.mjs +0 -13
  617. package/dist/esm/node_modules/math-intrinsics/floor.mjs.map +0 -1
  618. package/dist/esm/node_modules/math-intrinsics/isNaN.mjs +0 -15
  619. package/dist/esm/node_modules/math-intrinsics/isNaN.mjs.map +0 -1
  620. package/dist/esm/node_modules/math-intrinsics/max.mjs +0 -13
  621. package/dist/esm/node_modules/math-intrinsics/max.mjs.map +0 -1
  622. package/dist/esm/node_modules/math-intrinsics/min.mjs +0 -13
  623. package/dist/esm/node_modules/math-intrinsics/min.mjs.map +0 -1
  624. package/dist/esm/node_modules/math-intrinsics/pow.mjs +0 -13
  625. package/dist/esm/node_modules/math-intrinsics/pow.mjs.map +0 -1
  626. package/dist/esm/node_modules/math-intrinsics/round.mjs +0 -13
  627. package/dist/esm/node_modules/math-intrinsics/round.mjs.map +0 -1
  628. package/dist/esm/node_modules/math-intrinsics/sign.mjs +0 -18
  629. package/dist/esm/node_modules/math-intrinsics/sign.mjs.map +0 -1
  630. package/dist/esm/node_modules/node-forge/lib/aes.mjs +0 -601
  631. package/dist/esm/node_modules/node-forge/lib/aes.mjs.map +0 -1
  632. package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs +0 -199
  633. package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs.map +0 -1
  634. package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs +0 -80
  635. package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs.map +0 -1
  636. package/dist/esm/node_modules/node-forge/lib/asn1.mjs +0 -942
  637. package/dist/esm/node_modules/node-forge/lib/asn1.mjs.map +0 -1
  638. package/dist/esm/node_modules/node-forge/lib/baseN.mjs +0 -141
  639. package/dist/esm/node_modules/node-forge/lib/baseN.mjs.map +0 -1
  640. package/dist/esm/node_modules/node-forge/lib/cipher.mjs +0 -190
  641. package/dist/esm/node_modules/node-forge/lib/cipher.mjs.map +0 -1
  642. package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs +0 -601
  643. package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs.map +0 -1
  644. package/dist/esm/node_modules/node-forge/lib/des.mjs +0 -1191
  645. package/dist/esm/node_modules/node-forge/lib/des.mjs.map +0 -1
  646. package/dist/esm/node_modules/node-forge/lib/ed25519.mjs +0 -1024
  647. package/dist/esm/node_modules/node-forge/lib/ed25519.mjs.map +0 -1
  648. package/dist/esm/node_modules/node-forge/lib/forge.mjs +0 -19
  649. package/dist/esm/node_modules/node-forge/lib/forge.mjs.map +0 -1
  650. package/dist/esm/node_modules/node-forge/lib/hmac.mjs +0 -111
  651. package/dist/esm/node_modules/node-forge/lib/hmac.mjs.map +0 -1
  652. package/dist/esm/node_modules/node-forge/lib/index.mjs +0 -70
  653. package/dist/esm/node_modules/node-forge/lib/index.mjs.map +0 -1
  654. package/dist/esm/node_modules/node-forge/lib/jsbn.mjs +0 -1260
  655. package/dist/esm/node_modules/node-forge/lib/jsbn.mjs.map +0 -1
  656. package/dist/esm/node_modules/node-forge/lib/kem.mjs +0 -150
  657. package/dist/esm/node_modules/node-forge/lib/kem.mjs.map +0 -1
  658. package/dist/esm/node_modules/node-forge/lib/log.mjs +0 -245
  659. package/dist/esm/node_modules/node-forge/lib/log.mjs.map +0 -1
  660. package/dist/esm/node_modules/node-forge/lib/md.all.mjs +0 -28
  661. package/dist/esm/node_modules/node-forge/lib/md.all.mjs.map +0 -1
  662. package/dist/esm/node_modules/node-forge/lib/md.mjs +0 -22
  663. package/dist/esm/node_modules/node-forge/lib/md.mjs.map +0 -1
  664. package/dist/esm/node_modules/node-forge/lib/md5.mjs +0 -328
  665. package/dist/esm/node_modules/node-forge/lib/md5.mjs.map +0 -1
  666. package/dist/esm/node_modules/node-forge/lib/mgf.mjs +0 -24
  667. package/dist/esm/node_modules/node-forge/lib/mgf.mjs.map +0 -1
  668. package/dist/esm/node_modules/node-forge/lib/mgf1.mjs +0 -48
  669. package/dist/esm/node_modules/node-forge/lib/mgf1.mjs.map +0 -1
  670. package/dist/esm/node_modules/node-forge/lib/oids.mjs +0 -157
  671. package/dist/esm/node_modules/node-forge/lib/oids.mjs.map +0 -1
  672. package/dist/esm/node_modules/node-forge/lib/pbe.mjs +0 -819
  673. package/dist/esm/node_modules/node-forge/lib/pbe.mjs.map +0 -1
  674. package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs +0 -130
  675. package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs.map +0 -1
  676. package/dist/esm/node_modules/node-forge/lib/pem.mjs +0 -179
  677. package/dist/esm/node_modules/node-forge/lib/pem.mjs.map +0 -1
  678. package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs +0 -204
  679. package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs.map +0 -1
  680. package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs +0 -727
  681. package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs.map +0 -1
  682. package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs +0 -645
  683. package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs.map +0 -1
  684. package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs +0 -409
  685. package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs.map +0 -1
  686. package/dist/esm/node_modules/node-forge/lib/pki.mjs +0 -105
  687. package/dist/esm/node_modules/node-forge/lib/pki.mjs.map +0 -1
  688. package/dist/esm/node_modules/node-forge/lib/prime.mjs +0 -197
  689. package/dist/esm/node_modules/node-forge/lib/prime.mjs.map +0 -1
  690. package/dist/esm/node_modules/node-forge/lib/prng.mjs +0 -295
  691. package/dist/esm/node_modules/node-forge/lib/prng.mjs.map +0 -1
  692. package/dist/esm/node_modules/node-forge/lib/pss.mjs +0 -145
  693. package/dist/esm/node_modules/node-forge/lib/pss.mjs.map +0 -1
  694. package/dist/esm/node_modules/node-forge/lib/random.mjs +0 -145
  695. package/dist/esm/node_modules/node-forge/lib/random.mjs.map +0 -1
  696. package/dist/esm/node_modules/node-forge/lib/rc2.mjs +0 -542
  697. package/dist/esm/node_modules/node-forge/lib/rc2.mjs.map +0 -1
  698. package/dist/esm/node_modules/node-forge/lib/rsa.mjs +0 -1304
  699. package/dist/esm/node_modules/node-forge/lib/rsa.mjs.map +0 -1
  700. package/dist/esm/node_modules/node-forge/lib/sha1.mjs +0 -234
  701. package/dist/esm/node_modules/node-forge/lib/sha1.mjs.map +0 -1
  702. package/dist/esm/node_modules/node-forge/lib/sha256.mjs +0 -271
  703. package/dist/esm/node_modules/node-forge/lib/sha256.mjs.map +0 -1
  704. package/dist/esm/node_modules/node-forge/lib/sha512.mjs +0 -417
  705. package/dist/esm/node_modules/node-forge/lib/sha512.mjs.map +0 -1
  706. package/dist/esm/node_modules/node-forge/lib/ssh.mjs +0 -198
  707. package/dist/esm/node_modules/node-forge/lib/ssh.mjs.map +0 -1
  708. package/dist/esm/node_modules/node-forge/lib/tls.mjs +0 -3659
  709. package/dist/esm/node_modules/node-forge/lib/tls.mjs.map +0 -1
  710. package/dist/esm/node_modules/node-forge/lib/util.mjs +0 -2121
  711. package/dist/esm/node_modules/node-forge/lib/util.mjs.map +0 -1
  712. package/dist/esm/node_modules/node-forge/lib/x509.mjs +0 -2168
  713. package/dist/esm/node_modules/node-forge/lib/x509.mjs.map +0 -1
  714. package/dist/esm/node_modules/node-forge/lib.mjs +0 -10
  715. package/dist/esm/node_modules/node-forge/lib.mjs.map +0 -1
  716. package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs +0 -338
  717. package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs.map +0 -1
  718. package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs +0 -23
  719. package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs.map +0 -1
  720. package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs +0 -62
  721. package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs.map +0 -1
  722. package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs +0 -41
  723. package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs.map +0 -1
  724. package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs +0 -46
  725. package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs.map +0 -1
  726. package/dist/esm/node_modules/node-rsa/src/formats/components.mjs +0 -52
  727. package/dist/esm/node_modules/node-rsa/src/formats/components.mjs.map +0 -1
  728. package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs +0 -83
  729. package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs.map +0 -1
  730. package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs +0 -174
  731. package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs.map +0 -1
  732. package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs +0 -101
  733. package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs.map +0 -1
  734. package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs +0 -128
  735. package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs.map +0 -1
  736. package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs +0 -1344
  737. package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs.map +0 -1
  738. package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs +0 -228
  739. package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs.map +0 -1
  740. package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs +0 -120
  741. package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs.map +0 -1
  742. package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs +0 -172
  743. package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs.map +0 -1
  744. package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs +0 -120
  745. package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs.map +0 -1
  746. package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs +0 -25
  747. package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs.map +0 -1
  748. package/dist/esm/node_modules/node-rsa/src/utils.mjs +0 -81
  749. package/dist/esm/node_modules/node-rsa/src/utils.mjs.map +0 -1
  750. package/dist/esm/node_modules/pako/index.mjs +0 -22
  751. package/dist/esm/node_modules/pako/index.mjs.map +0 -1
  752. package/dist/esm/node_modules/pako/lib/deflate.mjs +0 -308
  753. package/dist/esm/node_modules/pako/lib/deflate.mjs.map +0 -1
  754. package/dist/esm/node_modules/pako/lib/inflate.mjs +0 -314
  755. package/dist/esm/node_modules/pako/lib/inflate.mjs.map +0 -1
  756. package/dist/esm/node_modules/pako/lib/utils/common.mjs +0 -74
  757. package/dist/esm/node_modules/pako/lib/utils/common.mjs.map +0 -1
  758. package/dist/esm/node_modules/pako/lib/utils/strings.mjs +0 -128
  759. package/dist/esm/node_modules/pako/lib/utils/strings.mjs.map +0 -1
  760. package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs +0 -26
  761. package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs.map +0 -1
  762. package/dist/esm/node_modules/pako/lib/zlib/constants.mjs +0 -40
  763. package/dist/esm/node_modules/pako/lib/zlib/constants.mjs.map +0 -1
  764. package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs +0 -28
  765. package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs.map +0 -1
  766. package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs +0 -886
  767. package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs.map +0 -1
  768. package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs +0 -24
  769. package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs.map +0 -1
  770. package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs +0 -224
  771. package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs.map +0 -1
  772. package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs +0 -1035
  773. package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs.map +0 -1
  774. package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs +0 -275
  775. package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs.map +0 -1
  776. package/dist/esm/node_modules/pako/lib/zlib/messages.mjs +0 -22
  777. package/dist/esm/node_modules/pako/lib/zlib/messages.mjs.map +0 -1
  778. package/dist/esm/node_modules/pako/lib/zlib/trees.mjs +0 -623
  779. package/dist/esm/node_modules/pako/lib/zlib/trees.mjs.map +0 -1
  780. package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs +0 -26
  781. package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs.map +0 -1
  782. package/dist/esm/node_modules/possible-typed-array-names/index.mjs +0 -26
  783. package/dist/esm/node_modules/possible-typed-array-names/index.mjs.map +0 -1
  784. package/dist/esm/node_modules/safe-regex-test/index.mjs +0 -25
  785. package/dist/esm/node_modules/safe-regex-test/index.mjs.map +0 -1
  786. package/dist/esm/node_modules/safer-buffer/safer.mjs +0 -50
  787. package/dist/esm/node_modules/safer-buffer/safer.mjs.map +0 -1
  788. package/dist/esm/node_modules/samlify/build/index.mjs +0 -117
  789. package/dist/esm/node_modules/samlify/build/index.mjs.map +0 -1
  790. package/dist/esm/node_modules/samlify/build/src/api.mjs +0 -33
  791. package/dist/esm/node_modules/samlify/build/src/api.mjs.map +0 -1
  792. package/dist/esm/node_modules/samlify/build/src/binding-post.mjs +0 -504
  793. package/dist/esm/node_modules/samlify/build/src/binding-post.mjs.map +0 -1
  794. package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs +0 -339
  795. package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs.map +0 -1
  796. package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs +0 -358
  797. package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs.map +0 -1
  798. package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs +0 -279
  799. package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs.map +0 -1
  800. package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs +0 -142
  801. package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs.map +0 -1
  802. package/dist/esm/node_modules/samlify/build/src/entity.mjs +0 -253
  803. package/dist/esm/node_modules/samlify/build/src/entity.mjs.map +0 -1
  804. package/dist/esm/node_modules/samlify/build/src/extractor.mjs +0 -352
  805. package/dist/esm/node_modules/samlify/build/src/extractor.mjs.map +0 -1
  806. package/dist/esm/node_modules/samlify/build/src/flow.mjs +0 -389
  807. package/dist/esm/node_modules/samlify/build/src/flow.mjs.map +0 -1
  808. package/dist/esm/node_modules/samlify/build/src/libsaml.mjs +0 -544
  809. package/dist/esm/node_modules/samlify/build/src/libsaml.mjs.map +0 -1
  810. package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs +0 -171
  811. package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs.map +0 -1
  812. package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs +0 -214
  813. package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs.map +0 -1
  814. package/dist/esm/node_modules/samlify/build/src/metadata.mjs +0 -200
  815. package/dist/esm/node_modules/samlify/build/src/metadata.mjs.map +0 -1
  816. package/dist/esm/node_modules/samlify/build/src/urn.mjs +0 -225
  817. package/dist/esm/node_modules/samlify/build/src/urn.mjs.map +0 -1
  818. package/dist/esm/node_modules/samlify/build/src/utility.mjs +0 -277
  819. package/dist/esm/node_modules/samlify/build/src/utility.mjs.map +0 -1
  820. package/dist/esm/node_modules/samlify/build/src/validator.mjs +0 -53
  821. package/dist/esm/node_modules/samlify/build/src/validator.mjs.map +0 -1
  822. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs +0 -39
  823. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs.map +0 -1
  824. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs +0 -154
  825. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs.map +0 -1
  826. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs +0 -12
  827. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs.map +0 -1
  828. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs +0 -36
  829. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs.map +0 -1
  830. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs +0 -12
  831. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs.map +0 -1
  832. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs +0 -20
  833. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs.map +0 -1
  834. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs +0 -101
  835. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs.map +0 -1
  836. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs +0 -22
  837. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs.map +0 -1
  838. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs +0 -63
  839. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs.map +0 -1
  840. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs +0 -17
  841. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs.map +0 -1
  842. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs +0 -48
  843. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs.map +0 -1
  844. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs +0 -28
  845. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs.map +0 -1
  846. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs +0 -17
  847. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs.map +0 -1
  848. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs +0 -17
  849. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs.map +0 -1
  850. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs +0 -18
  851. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs.map +0 -1
  852. package/dist/esm/node_modules/set-function-length/index.mjs +0 -38
  853. package/dist/esm/node_modules/set-function-length/index.mjs.map +0 -1
  854. package/dist/esm/node_modules/util/support/isBufferBrowser.mjs +0 -14
  855. package/dist/esm/node_modules/util/support/isBufferBrowser.mjs.map +0 -1
  856. package/dist/esm/node_modules/util/support/types.mjs +0 -218
  857. package/dist/esm/node_modules/util/support/types.mjs.map +0 -1
  858. package/dist/esm/node_modules/util/util.mjs +0 -443
  859. package/dist/esm/node_modules/util/util.mjs.map +0 -1
  860. package/dist/esm/node_modules/which-typed-array/index.mjs +0 -93
  861. package/dist/esm/node_modules/which-typed-array/index.mjs.map +0 -1
  862. package/dist/esm/node_modules/xml/lib/escapeForXML.mjs +0 -24
  863. package/dist/esm/node_modules/xml/lib/escapeForXML.mjs.map +0 -1
  864. package/dist/esm/node_modules/xml/lib/xml.mjs +0 -183
  865. package/dist/esm/node_modules/xml/lib/xml.mjs.map +0 -1
  866. package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs +0 -199
  867. package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs.map +0 -1
  868. package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs +0 -49
  869. package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs.map +0 -1
  870. package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs +0 -220
  871. package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs.map +0 -1
  872. package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs +0 -53
  873. package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs.map +0 -1
  874. package/dist/esm/node_modules/xml-crypto/lib/index.mjs +0 -70
  875. package/dist/esm/node_modules/xml-crypto/lib/index.mjs.map +0 -1
  876. package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs +0 -88
  877. package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs.map +0 -1
  878. package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs +0 -693
  879. package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs.map +0 -1
  880. package/dist/esm/node_modules/xml-crypto/lib/types.mjs +0 -55
  881. package/dist/esm/node_modules/xml-crypto/lib/types.mjs.map +0 -1
  882. package/dist/esm/node_modules/xml-crypto/lib/utils.mjs +0 -210
  883. package/dist/esm/node_modules/xml-crypto/lib/utils.mjs.map +0 -1
  884. package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs +0 -3442
  885. package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs.map +0 -1
  886. package/dist/esm/node_modules/xml-escape/index.mjs +0 -27
  887. package/dist/esm/node_modules/xml-escape/index.mjs.map +0 -1
  888. package/dist/esm/node_modules/xpath/xpath.mjs +0 -3407
  889. package/dist/esm/node_modules/xpath/xpath.mjs.map +0 -1
  890. package/dist/esm/node_modules/zod/v4/classic/errors.mjs +0 -30
  891. package/dist/esm/node_modules/zod/v4/classic/errors.mjs.map +0 -1
  892. package/dist/esm/node_modules/zod/v4/classic/iso.mjs +0 -38
  893. package/dist/esm/node_modules/zod/v4/classic/iso.mjs.map +0 -1
  894. package/dist/esm/node_modules/zod/v4/classic/parse.mjs +0 -20
  895. package/dist/esm/node_modules/zod/v4/classic/parse.mjs.map +0 -1
  896. package/dist/esm/node_modules/zod/v4/classic/schemas.mjs +0 -519
  897. package/dist/esm/node_modules/zod/v4/classic/schemas.mjs.map +0 -1
  898. package/dist/esm/node_modules/zod/v4/core/api.mjs +0 -395
  899. package/dist/esm/node_modules/zod/v4/core/api.mjs.map +0 -1
  900. package/dist/esm/node_modules/zod/v4/core/checks.mjs +0 -226
  901. package/dist/esm/node_modules/zod/v4/core/checks.mjs.map +0 -1
  902. package/dist/esm/node_modules/zod/v4/core/core.mjs +0 -57
  903. package/dist/esm/node_modules/zod/v4/core/core.mjs.map +0 -1
  904. package/dist/esm/node_modules/zod/v4/core/doc.mjs +0 -34
  905. package/dist/esm/node_modules/zod/v4/core/doc.mjs.map +0 -1
  906. package/dist/esm/node_modules/zod/v4/core/errors.mjs +0 -63
  907. package/dist/esm/node_modules/zod/v4/core/errors.mjs.map +0 -1
  908. package/dist/esm/node_modules/zod/v4/core/parse.mjs +0 -110
  909. package/dist/esm/node_modules/zod/v4/core/parse.mjs.map +0 -1
  910. package/dist/esm/node_modules/zod/v4/core/regexes.mjs +0 -60
  911. package/dist/esm/node_modules/zod/v4/core/regexes.mjs.map +0 -1
  912. package/dist/esm/node_modules/zod/v4/core/registries.mjs +0 -53
  913. package/dist/esm/node_modules/zod/v4/core/registries.mjs.map +0 -1
  914. package/dist/esm/node_modules/zod/v4/core/schemas.mjs +0 -1069
  915. package/dist/esm/node_modules/zod/v4/core/schemas.mjs.map +0 -1
  916. package/dist/esm/node_modules/zod/v4/core/util.mjs +0 -302
  917. package/dist/esm/node_modules/zod/v4/core/util.mjs.map +0 -1
  918. package/dist/esm/node_modules/zod/v4/core/versions.mjs +0 -10
  919. package/dist/esm/node_modules/zod/v4/core/versions.mjs.map +0 -1
  920. package/dist/types/MagicLinkEmail.d.ts +0 -8
  921. package/dist/types/MagicLinkEmail.d.ts.map +0 -1
  922. package/dist/types/controllers/audit.controller.d.ts +0 -32
  923. package/dist/types/controllers/audit.controller.d.ts.map +0 -1
  924. package/dist/types/models/audit.model.d.ts +0 -5
  925. package/dist/types/models/audit.model.d.ts.map +0 -1
@@ -8,7 +8,7 @@ const require_utils_filtersAndPagination_getFiltersAndPaginationFromBody = requi
8
8
  * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.
9
9
  */
10
10
  const getDictionaryFiltersAndPagination = (req, res) => {
11
- const { filters: filtersRequest,...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
11
+ const { filters: filtersRequest, ...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
12
12
  const { roles, project } = res.locals;
13
13
  let filters = {};
14
14
  let sortOptions = { updatedAt: -1 };
@@ -1 +1 @@
1
- {"version":3,"file":"getDictionaryFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: DictionaryFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getDictionaryFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Dictionary } from '@/types/dictionary.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type DictionaryFiltersParams = {\n ids?: string | string[];\n projectId?: string;\n projectIds?: string[];\n organizationId?: string;\n organizationIds?: string[];\n userId?: string;\n userIds?: string[];\n creatorId?: string;\n creatorIds?: string[];\n title?: string;\n description?: string;\n key?: string;\n keys?: string[];\n tags?: string | string[];\n version?: string;\n search?: string;\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all users without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type DictionaryFilters = RootFilterQuery<Dictionary>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getDictionaryFiltersAndPagination = (\n req: Request<FiltersAndPagination<DictionaryFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<DictionaryFiltersParams>(req);\n const { roles, project } = res.locals;\n\n let filters: DictionaryFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n key,\n search,\n keys,\n tags,\n ids,\n projectId,\n projectIds,\n userId,\n userIds,\n creatorId,\n creatorIds,\n title,\n description,\n version,\n sortBy,\n sortOrder,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (projectId) {\n filters = { ...filters, projectIds: projectId };\n }\n\n if (projectIds) {\n filters = {\n ...filters,\n projectIds: { $in: ensureArrayQueryFilter(projectIds) },\n };\n }\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, projectIds: { $in: project?.id } };\n }\n\n if (userId) {\n filters = { ...filters, creatorId: userId };\n }\n\n if (userIds) {\n filters = {\n ...filters,\n creatorId: { $in: ensureArrayQueryFilter(userIds) },\n };\n }\n\n if (creatorId) {\n filters = { ...filters, creatorId: creatorId };\n }\n\n if (creatorIds) {\n filters = {\n ...filters,\n creatorId: { $in: ensureArrayQueryFilter(creatorIds) },\n };\n }\n\n if (title) {\n filters = { ...filters, title: new RegExp(title, 'i') };\n }\n\n if (description) {\n filters = { ...filters, description: new RegExp(description, 'i') };\n }\n\n if (key) {\n filters = { ...filters, key: new RegExp(key, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { key: searchRegex },\n { title: searchRegex },\n { description: searchRegex },\n { tags: { $in: [searchRegex] } },\n ],\n };\n }\n\n if (keys) {\n filters = { ...filters, key: { $in: ensureArrayQueryFilter(keys) } };\n }\n\n if (tags) {\n filters = { ...filters, tags: { $in: ensureArrayQueryFilter(tags) } };\n }\n\n if (version) {\n filters = { ...filters, content: { [version]: `$content.${version}` } };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AAyCA,MAAa,qCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,eAAgB,GAAG,eAClCA,mGAAyD,IAAI;CAC/D,MAAM,EAAE,OAAO,YAAY,IAAI;CAE/B,IAAIC,UAA6B,EAAE;CACnC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,KACA,QACA,MACA,MACA,KACA,WACA,YACA,QACA,SACA,WACA,YACA,OACA,aACA,SACA,QACA,WACA,aACE,kBAAkB,EAAE;AAExB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,UACF,WAAU;EAAE,GAAG;EAAS,YAAY;EAAW;AAGjD,KAAI,WACF,WAAU;EACR,GAAG;EACH,YAAY,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACxD;AAGH,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,YAAY,EAAE,KAAK,SAAS,IAAI;EAAE;AAG5D,KAAI,OACF,WAAU;EAAE,GAAG;EAAS,WAAW;EAAQ;AAG7C,KAAI,QACF,WAAU;EACR,GAAG;EACH,WAAW,EAAE,KAAKA,4DAAuB,QAAQ,EAAE;EACpD;AAGH,KAAI,UACF,WAAU;EAAE,GAAG;EAAoB;EAAW;AAGhD,KAAI,WACF,WAAU;EACR,GAAG;EACH,WAAW,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACvD;AAGH,KAAI,MACF,WAAU;EAAE,GAAG;EAAS,OAAO,IAAI,OAAO,OAAO,IAAI;EAAE;AAGzD,KAAI,YACF,WAAU;EAAE,GAAG;EAAS,aAAa,IAAI,OAAO,aAAa,IAAI;EAAE;AAGrE,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,IAAI,OAAO,KAAK,IAAI;EAAE;AAGrD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,KAAK,aAAa;IACpB,EAAE,OAAO,aAAa;IACtB,EAAE,aAAa,aAAa;IAC5B,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE;IACjC;GACF;;AAGH,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKA,4DAAuB,KAAK,EAAE;EAAE;AAGtE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,EAAE,KAAKA,4DAAuB,KAAK,EAAE;EAAE;AAGvE,KAAI,QACF,WAAU;EAAE,GAAG;EAAS,SAAS,GAAG,UAAU,YAAY,WAAW;EAAE;AAGzE,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
1
+ {"version":3,"file":"getDictionaryFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: DictionaryFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getDictionaryFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Dictionary } from '@/types/dictionary.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type DictionaryFiltersParams = {\n ids?: string | string[];\n projectId?: string;\n projectIds?: string[];\n organizationId?: string;\n organizationIds?: string[];\n userId?: string;\n userIds?: string[];\n creatorId?: string;\n creatorIds?: string[];\n title?: string;\n description?: string;\n key?: string;\n keys?: string[];\n tags?: string | string[];\n version?: string;\n search?: string;\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all users without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type DictionaryFilters = RootFilterQuery<Dictionary>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getDictionaryFiltersAndPagination = (\n req: Request<FiltersAndPagination<DictionaryFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<DictionaryFiltersParams>(req);\n const { roles, project } = res.locals;\n\n let filters: DictionaryFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n key,\n search,\n keys,\n tags,\n ids,\n projectId,\n projectIds,\n userId,\n userIds,\n creatorId,\n creatorIds,\n title,\n description,\n version,\n sortBy,\n sortOrder,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (projectId) {\n filters = { ...filters, projectIds: projectId };\n }\n\n if (projectIds) {\n filters = {\n ...filters,\n projectIds: { $in: ensureArrayQueryFilter(projectIds) },\n };\n }\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, projectIds: { $in: project?.id } };\n }\n\n if (userId) {\n filters = { ...filters, creatorId: userId };\n }\n\n if (userIds) {\n filters = {\n ...filters,\n creatorId: { $in: ensureArrayQueryFilter(userIds) },\n };\n }\n\n if (creatorId) {\n filters = { ...filters, creatorId: creatorId };\n }\n\n if (creatorIds) {\n filters = {\n ...filters,\n creatorId: { $in: ensureArrayQueryFilter(creatorIds) },\n };\n }\n\n if (title) {\n filters = { ...filters, title: new RegExp(title, 'i') };\n }\n\n if (description) {\n filters = { ...filters, description: new RegExp(description, 'i') };\n }\n\n if (key) {\n filters = { ...filters, key: new RegExp(key, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { key: searchRegex },\n { title: searchRegex },\n { description: searchRegex },\n { tags: { $in: [searchRegex] } },\n ],\n };\n }\n\n if (keys) {\n filters = { ...filters, key: { $in: ensureArrayQueryFilter(keys) } };\n }\n\n if (tags) {\n filters = { ...filters, tags: { $in: ensureArrayQueryFilter(tags) } };\n }\n\n if (version) {\n filters = { ...filters, content: { [version]: `$content.${version}` } };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AAyCA,MAAa,qCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,gBAAgB,GAAG,eAClCA,mGAAyD,IAAI;CAC/D,MAAM,EAAE,OAAO,YAAY,IAAI;CAE/B,IAAIC,UAA6B,EAAE;CACnC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,KACA,QACA,MACA,MACA,KACA,WACA,YACA,QACA,SACA,WACA,YACA,OACA,aACA,SACA,QACA,WACA,aACE,kBAAkB,EAAE;AAExB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,UACF,WAAU;EAAE,GAAG;EAAS,YAAY;EAAW;AAGjD,KAAI,WACF,WAAU;EACR,GAAG;EACH,YAAY,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACxD;AAGH,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,YAAY,EAAE,KAAK,SAAS,IAAI;EAAE;AAG5D,KAAI,OACF,WAAU;EAAE,GAAG;EAAS,WAAW;EAAQ;AAG7C,KAAI,QACF,WAAU;EACR,GAAG;EACH,WAAW,EAAE,KAAKA,4DAAuB,QAAQ,EAAE;EACpD;AAGH,KAAI,UACF,WAAU;EAAE,GAAG;EAAoB;EAAW;AAGhD,KAAI,WACF,WAAU;EACR,GAAG;EACH,WAAW,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACvD;AAGH,KAAI,MACF,WAAU;EAAE,GAAG;EAAS,OAAO,IAAI,OAAO,OAAO,IAAI;EAAE;AAGzD,KAAI,YACF,WAAU;EAAE,GAAG;EAAS,aAAa,IAAI,OAAO,aAAa,IAAI;EAAE;AAGrE,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,IAAI,OAAO,KAAK,IAAI;EAAE;AAGrD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,KAAK,aAAa;IACpB,EAAE,OAAO,aAAa;IACtB,EAAE,aAAa,aAAa;IAC5B,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE;IACjC;GACF;;AAGH,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKA,4DAAuB,KAAK,EAAE;EAAE;AAGtE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,EAAE,KAAKA,4DAAuB,KAAK,EAAE;EAAE;AAGvE,KAAI,QACF,WAAU;EAAE,GAAG;EAAS,SAAS,GAAG,UAAU,YAAY,WAAW;EAAE;AAGzE,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
@@ -7,7 +7,7 @@ const require_utils_filtersAndPagination_getFiltersAndPaginationFromBody = requi
7
7
  * Enforces that non-admin users can only see their own discussions.
8
8
  */
9
9
  const getDiscussionFiltersAndPagination = (req, res) => {
10
- const { filters: filtersRequest,...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
10
+ const { filters: filtersRequest, ...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
11
11
  const { roles, user } = res.locals;
12
12
  let filters = {};
13
13
  let sortOptions = { updatedAt: -1 };
@@ -1 +1 @@
1
- {"version":3,"file":"getDiscussionFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: DiscussionFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getDiscussionFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Discussion } from '@/types/discussion.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type DiscussionFiltersParams = {\n ids?: string | string[];\n userId?: string;\n userIds?: string[];\n discussionId?: string;\n search?: string;\n isArchived?: 'true' | 'false';\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users only: if true, will not restrict to current user\n */\n fetchAll?: 'true' | 'false';\n};\nexport type DiscussionFilters = RootFilterQuery<Discussion>;\n\n/**\n * Extracts filters and pagination information for discussions.\n * Enforces that non-admin users can only see their own discussions.\n */\nexport const getDiscussionFiltersAndPagination = (\n req: Request<FiltersAndPagination<DiscussionFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<DiscussionFiltersParams>(req);\n const { roles, user } = res.locals;\n\n let filters: DiscussionFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n ids,\n userId,\n userIds,\n discussionId,\n search,\n isArchived,\n sortBy,\n sortOrder,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (discussionId) {\n filters = { ...filters, discussionId };\n }\n\n if (typeof isArchived !== 'undefined') {\n filters = { ...filters, isArchived: isArchived === 'true' };\n }\n\n if (userId) {\n filters = { ...filters, userId: userId };\n }\n\n if (userIds) {\n filters = { ...filters, userId: { $in: ensureArrayQueryFilter(userIds) } };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { discussionId: searchRegex },\n { title: searchRegex },\n // search within messages content\n { 'messages.content': searchRegex },\n ],\n } as DiscussionFilters;\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n // Enforce user scope for non-admins\n const isAdmin = roles.includes('admin');\n if (!isAdmin && user?.id) {\n filters = { ...filters, userId: user.id };\n } else if (isAdmin && fetchAll !== 'true' && user?.id) {\n // by default, even admins see their own discussions unless fetchAll=true\n filters = { ...filters, userId: user.id };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;AA8BA,MAAa,qCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,eAAgB,GAAG,eAClCA,mGAAyD,IAAI;CAC/D,MAAM,EAAE,OAAO,SAAS,IAAI;CAE5B,IAAIC,UAA6B,EAAE;CACnC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,KACA,QACA,SACA,cACA,QACA,YACA,QACA,WACA,aACE,kBAAkB,EAAE;AAExB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,aACF,WAAU;EAAE,GAAG;EAAS;EAAc;AAGxC,KAAI,OAAO,eAAe,YACxB,WAAU;EAAE,GAAG;EAAS,YAAY,eAAe;EAAQ;AAG7D,KAAI,OACF,WAAU;EAAE,GAAG;EAAiB;EAAQ;AAG1C,KAAI,QACF,WAAU;EAAE,GAAG;EAAS,QAAQ,EAAE,KAAKA,4DAAuB,QAAQ,EAAE;EAAE;AAG5E,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,cAAc,aAAa;IAC7B,EAAE,OAAO,aAAa;IAEtB,EAAE,oBAAoB,aAAa;IACpC;GACF;;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;CAI1D,MAAM,UAAU,MAAM,SAAS,QAAQ;AACvC,KAAI,CAAC,WAAW,MAAM,GACpB,WAAU;EAAE,GAAG;EAAS,QAAQ,KAAK;EAAI;UAChC,WAAW,aAAa,UAAU,MAAM,GAEjD,WAAU;EAAE,GAAG;EAAS,QAAQ,KAAK;EAAI;AAG3C,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
1
+ {"version":3,"file":"getDiscussionFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: DiscussionFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getDiscussionFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Discussion } from '@/types/discussion.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type DiscussionFiltersParams = {\n ids?: string | string[];\n userId?: string;\n userIds?: string[];\n discussionId?: string;\n search?: string;\n isArchived?: 'true' | 'false';\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users only: if true, will not restrict to current user\n */\n fetchAll?: 'true' | 'false';\n};\nexport type DiscussionFilters = RootFilterQuery<Discussion>;\n\n/**\n * Extracts filters and pagination information for discussions.\n * Enforces that non-admin users can only see their own discussions.\n */\nexport const getDiscussionFiltersAndPagination = (\n req: Request<FiltersAndPagination<DiscussionFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<DiscussionFiltersParams>(req);\n const { roles, user } = res.locals;\n\n let filters: DiscussionFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n ids,\n userId,\n userIds,\n discussionId,\n search,\n isArchived,\n sortBy,\n sortOrder,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (discussionId) {\n filters = { ...filters, discussionId };\n }\n\n if (typeof isArchived !== 'undefined') {\n filters = { ...filters, isArchived: isArchived === 'true' };\n }\n\n if (userId) {\n filters = { ...filters, userId: userId };\n }\n\n if (userIds) {\n filters = { ...filters, userId: { $in: ensureArrayQueryFilter(userIds) } };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { discussionId: searchRegex },\n { title: searchRegex },\n // search within messages content\n { 'messages.content': searchRegex },\n ],\n } as DiscussionFilters;\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n // Enforce user scope for non-admins\n const isAdmin = roles.includes('admin');\n if (!isAdmin && user?.id) {\n filters = { ...filters, userId: user.id };\n } else if (isAdmin && fetchAll !== 'true' && user?.id) {\n // by default, even admins see their own discussions unless fetchAll=true\n filters = { ...filters, userId: user.id };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;AA8BA,MAAa,qCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,gBAAgB,GAAG,eAClCA,mGAAyD,IAAI;CAC/D,MAAM,EAAE,OAAO,SAAS,IAAI;CAE5B,IAAIC,UAA6B,EAAE;CACnC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,KACA,QACA,SACA,cACA,QACA,YACA,QACA,WACA,aACE,kBAAkB,EAAE;AAExB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,aACF,WAAU;EAAE,GAAG;EAAS;EAAc;AAGxC,KAAI,OAAO,eAAe,YACxB,WAAU;EAAE,GAAG;EAAS,YAAY,eAAe;EAAQ;AAG7D,KAAI,OACF,WAAU;EAAE,GAAG;EAAiB;EAAQ;AAG1C,KAAI,QACF,WAAU;EAAE,GAAG;EAAS,QAAQ,EAAE,KAAKA,4DAAuB,QAAQ,EAAE;EAAE;AAG5E,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,cAAc,aAAa;IAC7B,EAAE,OAAO,aAAa;IAEtB,EAAE,oBAAoB,aAAa;IACpC;GACF;;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;CAI1D,MAAM,UAAU,MAAM,SAAS,QAAQ;AACvC,KAAI,CAAC,WAAW,MAAM,GACpB,WAAU;EAAE,GAAG;EAAS,QAAQ,KAAK;EAAI;UAChC,WAAW,aAAa,UAAU,MAAM,GAEjD,WAAU;EAAE,GAAG;EAAS,QAAQ,KAAK;EAAI;AAG3C,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
@@ -13,7 +13,7 @@ const getFiltersAndPaginationFromBody = (req) => {
13
13
  let page = DEFAULT_PAGE;
14
14
  const query = req.query;
15
15
  if (typeof query === "object") {
16
- const { pageSize: pageSizeRequest, page: pageRequest,...filtersRequest } = query;
16
+ const { pageSize: pageSizeRequest, page: pageRequest, ...filtersRequest } = query;
17
17
  if (typeof pageSizeRequest === "string") pageSize = parseInt(pageSizeRequest, 10);
18
18
  else if (typeof pageSizeRequest === "number") pageSize = pageSizeRequest;
19
19
  if (typeof pageRequest === "string") page = parseInt(pageRequest, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"getFiltersAndPaginationFromBody.cjs","names":[],"sources":["../../../../src/utils/filtersAndPagination/getFiltersAndPaginationFromBody.ts"],"sourcesContent":["import type { Request } from 'express';\nimport type { ObjectId } from 'mongoose';\n\nconst DEFAULT_PAGE_SIZE = 1000;\nconst DEFAULT_PAGE = 1;\n\ntype Filters = Record<string, string | string[] | ObjectId | ObjectId[]>;\n\nexport type FiltersAndPagination<T extends Filters> =\n | ({\n page?: string | number;\n pageSize?: string | number;\n } & T)\n | undefined;\n\nexport type FiltersAndPaginationResult<T extends Filters> = {\n filters: T;\n page: number;\n skip: number;\n pageSize: number;\n getNumberOfPages: (totalItems: number) => number;\n};\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getFiltersAndPaginationFromBody = <T extends Filters>(\n req: Request<FiltersAndPagination<T>>\n): FiltersAndPaginationResult<T> => {\n let filters = {} as T;\n let pageSize = DEFAULT_PAGE_SIZE;\n let page = DEFAULT_PAGE;\n\n const query = req.query as unknown as FiltersAndPagination<T>;\n\n if (typeof query === 'object') {\n const {\n pageSize: pageSizeRequest,\n page: pageRequest,\n ...filtersRequest\n } = query;\n\n if (typeof pageSizeRequest === 'string') {\n pageSize = parseInt(pageSizeRequest, 10);\n } else if (typeof pageSizeRequest === 'number') {\n pageSize = pageSizeRequest;\n }\n\n if (typeof pageRequest === 'string') {\n page = parseInt(pageRequest, 10);\n } else if (typeof pageRequest === 'number') {\n page = pageRequest;\n }\n\n if (filtersRequest && Object.keys(filtersRequest).length > 0) {\n filters = filtersRequest as T;\n }\n }\n\n const skip = (page - 1) * pageSize;\n\n const getNumberOfPages = (totalItems: number) =>\n Math.ceil(totalItems / pageSize);\n\n return {\n filters,\n skip,\n page,\n pageSize,\n getNumberOfPages,\n };\n};\n"],"mappings":";;AAGA,MAAM,oBAAoB;AAC1B,MAAM,eAAe;;;;;;AAwBrB,MAAa,mCACX,QACkC;CAClC,IAAI,UAAU,EAAE;CAChB,IAAI,WAAW;CACf,IAAI,OAAO;CAEX,MAAM,QAAQ,IAAI;AAElB,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,EACJ,UAAU,iBACV,MAAM,YACN,GAAG,mBACD;AAEJ,MAAI,OAAO,oBAAoB,SAC7B,YAAW,SAAS,iBAAiB,GAAG;WAC/B,OAAO,oBAAoB,SACpC,YAAW;AAGb,MAAI,OAAO,gBAAgB,SACzB,QAAO,SAAS,aAAa,GAAG;WACvB,OAAO,gBAAgB,SAChC,QAAO;AAGT,MAAI,kBAAkB,OAAO,KAAK,eAAe,CAAC,SAAS,EACzD,WAAU;;CAId,MAAM,QAAQ,OAAO,KAAK;CAE1B,MAAM,oBAAoB,eACxB,KAAK,KAAK,aAAa,SAAS;AAElC,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
1
+ {"version":3,"file":"getFiltersAndPaginationFromBody.cjs","names":[],"sources":["../../../../src/utils/filtersAndPagination/getFiltersAndPaginationFromBody.ts"],"sourcesContent":["import type { Request } from 'express';\nimport type { ObjectId } from 'mongoose';\n\nconst DEFAULT_PAGE_SIZE = 1000;\nconst DEFAULT_PAGE = 1;\n\ntype Filters = Record<string, string | string[] | ObjectId | ObjectId[]>;\n\nexport type FiltersAndPagination<T extends Filters> =\n | ({\n page?: string | number;\n pageSize?: string | number;\n } & T)\n | undefined;\n\nexport type FiltersAndPaginationResult<T extends Filters> = {\n filters: T;\n page: number;\n skip: number;\n pageSize: number;\n getNumberOfPages: (totalItems: number) => number;\n};\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getFiltersAndPaginationFromBody = <T extends Filters>(\n req: Request<FiltersAndPagination<T>>\n): FiltersAndPaginationResult<T> => {\n let filters = {} as T;\n let pageSize = DEFAULT_PAGE_SIZE;\n let page = DEFAULT_PAGE;\n\n const query = req.query as unknown as FiltersAndPagination<T>;\n\n if (typeof query === 'object') {\n const {\n pageSize: pageSizeRequest,\n page: pageRequest,\n ...filtersRequest\n } = query;\n\n if (typeof pageSizeRequest === 'string') {\n pageSize = parseInt(pageSizeRequest, 10);\n } else if (typeof pageSizeRequest === 'number') {\n pageSize = pageSizeRequest;\n }\n\n if (typeof pageRequest === 'string') {\n page = parseInt(pageRequest, 10);\n } else if (typeof pageRequest === 'number') {\n page = pageRequest;\n }\n\n if (filtersRequest && Object.keys(filtersRequest).length > 0) {\n filters = filtersRequest as T;\n }\n }\n\n const skip = (page - 1) * pageSize;\n\n const getNumberOfPages = (totalItems: number) =>\n Math.ceil(totalItems / pageSize);\n\n return {\n filters,\n skip,\n page,\n pageSize,\n getNumberOfPages,\n };\n};\n"],"mappings":";;AAGA,MAAM,oBAAoB;AAC1B,MAAM,eAAe;;;;;;AAwBrB,MAAa,mCACX,QACkC;CAClC,IAAI,UAAU,EAAE;CAChB,IAAI,WAAW;CACf,IAAI,OAAO;CAEX,MAAM,QAAQ,IAAI;AAElB,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,EACJ,UAAU,iBACV,MAAM,aACN,GAAG,mBACD;AAEJ,MAAI,OAAO,oBAAoB,SAC7B,YAAW,SAAS,iBAAiB,GAAG;WAC/B,OAAO,oBAAoB,SACpC,YAAW;AAGb,MAAI,OAAO,gBAAgB,SACzB,QAAO,SAAS,aAAa,GAAG;WACvB,OAAO,gBAAgB,SAChC,QAAO;AAGT,MAAI,kBAAkB,OAAO,KAAK,eAAe,CAAC,SAAS,EACzD,WAAU;;CAId,MAAM,QAAQ,OAAO,KAAK;CAE1B,MAAM,oBAAoB,eACxB,KAAK,KAAK,aAAa,SAAS;AAElC,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
@@ -8,7 +8,7 @@ const require_utils_filtersAndPagination_getFiltersAndPaginationFromBody = requi
8
8
  * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.
9
9
  */
10
10
  const getOrganizationFiltersAndPagination = (req, res) => {
11
- const { filters: filtersRequest,...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
11
+ const { filters: filtersRequest, ...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
12
12
  const { roles, user } = res.locals;
13
13
  let filters = {};
14
14
  let sortOptions = { updatedAt: -1 };
@@ -1 +1 @@
1
- {"version":3,"file":"getOrganizationFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: OrganizationFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getOrganizationFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Organization } from '@/types/organization.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type OrganizationFiltersParams = {\n /**\n * Comma separated list of ids\n *\n * ```\n * GET /organizations?ids=5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\n * -> ids: \"5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\"\n * ```\n */\n ids?: string | string[];\n name?: string;\n search?: string;\n membersIds?: string[];\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all organizations without filtering by members\n */\n fetchAll?: 'true' | 'false';\n};\nexport type OrganizationFilters = RootFilterQuery<Organization>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getOrganizationFiltersAndPagination = (\n req: Request<FiltersAndPagination<OrganizationFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<OrganizationFiltersParams>(req);\n const { roles, user } = res.locals;\n\n let filters: OrganizationFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const { name, search, ids, membersIds, fetchAll, sortBy, sortOrder } =\n filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n // Non-admins can only see organizations they are members of\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, membersIds: { $in: [user?.id] } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = { ...filters, $or: [{ name: searchRegex }] };\n }\n\n if (membersIds) {\n filters = {\n ...filters,\n membersIds: { $in: ensureArrayQueryFilter(membersIds) },\n };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AAqCA,MAAa,uCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,eAAgB,GAAG,eAClCA,mGAA2D,IAAI;CACjE,MAAM,EAAE,OAAO,SAAS,IAAI;CAE5B,IAAIC,UAA+B,EAAE;CACrC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EAAE,MAAM,QAAQ,KAAK,YAAY,UAAU,QAAQ,cACvD,kBAAkB,EAAE;AAEtB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAIrE,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE;EAAE;AAG3D,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,IAAI,OAAO,MAAM,IAAI;EAAE;AAGvD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GAAE,GAAG;GAAS,KAAK,CAAC,EAAE,MAAM,aAAa,CAAC;GAAE;;AAGxD,KAAI,WACF,WAAU;EACR,GAAG;EACH,YAAY,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACxD;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
1
+ {"version":3,"file":"getOrganizationFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: OrganizationFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getOrganizationFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Organization } from '@/types/organization.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type OrganizationFiltersParams = {\n /**\n * Comma separated list of ids\n *\n * ```\n * GET /organizations?ids=5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\n * -> ids: \"5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\"\n * ```\n */\n ids?: string | string[];\n name?: string;\n search?: string;\n membersIds?: string[];\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all organizations without filtering by members\n */\n fetchAll?: 'true' | 'false';\n};\nexport type OrganizationFilters = RootFilterQuery<Organization>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getOrganizationFiltersAndPagination = (\n req: Request<FiltersAndPagination<OrganizationFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<OrganizationFiltersParams>(req);\n const { roles, user } = res.locals;\n\n let filters: OrganizationFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const { name, search, ids, membersIds, fetchAll, sortBy, sortOrder } =\n filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n // Non-admins can only see organizations they are members of\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, membersIds: { $in: [user?.id] } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = { ...filters, $or: [{ name: searchRegex }] };\n }\n\n if (membersIds) {\n filters = {\n ...filters,\n membersIds: { $in: ensureArrayQueryFilter(membersIds) },\n };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AAqCA,MAAa,uCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,gBAAgB,GAAG,eAClCA,mGAA2D,IAAI;CACjE,MAAM,EAAE,OAAO,SAAS,IAAI;CAE5B,IAAIC,UAA+B,EAAE;CACrC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EAAE,MAAM,QAAQ,KAAK,YAAY,UAAU,QAAQ,cACvD,kBAAkB,EAAE;AAEtB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAIrE,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE;EAAE;AAG3D,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,IAAI,OAAO,MAAM,IAAI;EAAE;AAGvD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GAAE,GAAG;GAAS,KAAK,CAAC,EAAE,MAAM,aAAa,CAAC;GAAE;;AAGxD,KAAI,WACF,WAAU;EACR,GAAG;EACH,YAAY,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACxD;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
@@ -8,7 +8,7 @@ const require_utils_filtersAndPagination_getFiltersAndPaginationFromBody = requi
8
8
  * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.
9
9
  */
10
10
  const getProjectFiltersAndPagination = (req, res) => {
11
- const { filters: filtersRequest,...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
11
+ const { filters: filtersRequest, ...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
12
12
  const { roles, organization } = res.locals;
13
13
  let filters = {};
14
14
  let sortOptions = { updatedAt: -1 };
@@ -1 +1 @@
1
- {"version":3,"file":"getProjectFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: ProjectFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getProjectFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Project } from '@/types/project.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type ProjectFiltersParams = {\n ids?: string | string[];\n name?: string;\n search?: string;\n organizationId?: string;\n membersIds?: string[];\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all projects without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type ProjectFilters = RootFilterQuery<Project>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getProjectFiltersAndPagination = (\n req: Request<FiltersAndPagination<ProjectFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<ProjectFiltersParams>(req);\n const { roles, organization } = res.locals;\n\n let filters: ProjectFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n name,\n search,\n ids,\n organizationId,\n membersIds,\n sortBy,\n sortOrder,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [{ name: searchRegex }],\n };\n }\n\n if (organizationId) {\n filters = { ...filters, organizationId };\n }\n\n if (membersIds) {\n filters = {\n ...filters,\n membersIds: { $in: ensureArrayQueryFilter(membersIds) },\n };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, organizationId: organization?.id };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AA8BA,MAAa,kCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,eAAgB,GAAG,eAClCA,mGAAsD,IAAI;CAC5D,MAAM,EAAE,OAAO,iBAAiB,IAAI;CAEpC,IAAIC,UAA0B,EAAE;CAChC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,MACA,QACA,KACA,gBACA,YACA,QACA,WACA,aACE,kBAAkB,EAAE;AAExB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,IAAI,OAAO,MAAM,IAAI;EAAE;AAGvD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK,CAAC,EAAE,MAAM,aAAa,CAAC;GAC7B;;AAGH,KAAI,eACF,WAAU;EAAE,GAAG;EAAS;EAAgB;AAG1C,KAAI,WACF,WAAU;EACR,GAAG;EACH,YAAY,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACxD;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,gBAAgB,cAAc;EAAI;AAG5D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
1
+ {"version":3,"file":"getProjectFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: ProjectFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getProjectFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Project } from '@/types/project.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type ProjectFiltersParams = {\n ids?: string | string[];\n name?: string;\n search?: string;\n organizationId?: string;\n membersIds?: string[];\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all projects without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type ProjectFilters = RootFilterQuery<Project>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getProjectFiltersAndPagination = (\n req: Request<FiltersAndPagination<ProjectFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<ProjectFiltersParams>(req);\n const { roles, organization } = res.locals;\n\n let filters: ProjectFilters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n name,\n search,\n ids,\n organizationId,\n membersIds,\n sortBy,\n sortOrder,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [{ name: searchRegex }],\n };\n }\n\n if (organizationId) {\n filters = { ...filters, organizationId };\n }\n\n if (membersIds) {\n filters = {\n ...filters,\n membersIds: { $in: ensureArrayQueryFilter(membersIds) },\n };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, organizationId: organization?.id };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AA8BA,MAAa,kCACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,gBAAgB,GAAG,eAClCA,mGAAsD,IAAI;CAC5D,MAAM,EAAE,OAAO,iBAAiB,IAAI;CAEpC,IAAIC,UAA0B,EAAE;CAChC,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,MACA,QACA,KACA,gBACA,YACA,QACA,WACA,aACE,kBAAkB,EAAE;AAExB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,IAAI,OAAO,MAAM,IAAI;EAAE;AAGvD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK,CAAC,EAAE,MAAM,aAAa,CAAC;GAC7B;;AAGH,KAAI,eACF,WAAU;EAAE,GAAG;EAAS;EAAgB;AAG1C,KAAI,WACF,WAAU;EACR,GAAG;EACH,YAAY,EAAE,KAAKA,4DAAuB,WAAW,EAAE;EACxD;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,gBAAgB,cAAc;EAAI;AAG5D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
@@ -8,7 +8,7 @@ const require_utils_filtersAndPagination_getFiltersAndPaginationFromBody = requi
8
8
  * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.
9
9
  */
10
10
  const getTagFiltersAndPagination = (req, res) => {
11
- const { filters: filtersRequest,...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
11
+ const { filters: filtersRequest, ...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
12
12
  const { roles, organization } = res.locals;
13
13
  let filters = {};
14
14
  const sortOptions = { updatedAt: -1 };
@@ -1 +1 @@
1
- {"version":3,"file":"getTagFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: TagFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getTagFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Tag } from '@/types/tag.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type TagFiltersParams = {\n ids?: string | string[];\n keys?: string | string[];\n name?: string;\n search?: string;\n organizationId?: string;\n /**\n * For admin users, if true, will fetch all tags without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type TagFilters = RootFilterQuery<Tag>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getTagFiltersAndPagination = (\n req: Request<FiltersAndPagination<TagFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<TagFiltersParams>(req);\n const { roles, organization } = res.locals;\n\n let filters: TagFilters = {};\n const sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const { name, search, ids, keys, organizationId, fetchAll } =\n filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (keys) {\n filters = { ...filters, key: { $in: ensureArrayQueryFilter(keys) } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { name: searchRegex },\n { key: searchRegex },\n { description: searchRegex },\n { instructions: searchRegex },\n ],\n };\n }\n\n if (organizationId) {\n filters = { ...filters, organizationId };\n }\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, organizationId: organization?.id };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AA4BA,MAAa,8BACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,eAAgB,GAAG,eAClCA,mGAAkD,IAAI;CACxD,MAAM,EAAE,OAAO,iBAAiB,IAAI;CAEpC,IAAIC,UAAsB,EAAE;CAC5B,MAAMC,cAAsC,EAAE,WAAW,IAAI;CAE7D,MAAM,EAAE,MAAM,QAAQ,KAAK,MAAM,gBAAgB,aAC/C,kBAAkB,EAAE;AAEtB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKA,4DAAuB,KAAK,EAAE;EAAE;AAGtE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,IAAI,OAAO,MAAM,IAAI;EAAE;AAGvD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,MAAM,aAAa;IACrB,EAAE,KAAK,aAAa;IACpB,EAAE,aAAa,aAAa;IAC5B,EAAE,cAAc,aAAa;IAC9B;GACF;;AAGH,KAAI,eACF,WAAU;EAAE,GAAG;EAAS;EAAgB;AAG1C,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,gBAAgB,cAAc;EAAI;AAG5D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
1
+ {"version":3,"file":"getTagFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","filters: TagFilters","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter"],"sources":["../../../../src/utils/filtersAndPagination/getTagFiltersAndPagination.ts"],"sourcesContent":["import type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { Tag } from '@/types/tag.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type TagFiltersParams = {\n ids?: string | string[];\n keys?: string | string[];\n name?: string;\n search?: string;\n organizationId?: string;\n /**\n * For admin users, if true, will fetch all tags without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type TagFilters = RootFilterQuery<Tag>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getTagFiltersAndPagination = (\n req: Request<FiltersAndPagination<TagFiltersParams>>,\n res: ResponseWithSession\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<TagFiltersParams>(req);\n const { roles, organization } = res.locals;\n\n let filters: TagFilters = {};\n const sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const { name, search, ids, keys, organizationId, fetchAll } =\n filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (keys) {\n filters = { ...filters, key: { $in: ensureArrayQueryFilter(keys) } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { name: searchRegex },\n { key: searchRegex },\n { description: searchRegex },\n { instructions: searchRegex },\n ],\n };\n }\n\n if (organizationId) {\n filters = { ...filters, organizationId };\n }\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n filters = { ...filters, organizationId: organization?.id };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AA4BA,MAAa,8BACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,gBAAgB,GAAG,eAClCA,mGAAkD,IAAI;CACxD,MAAM,EAAE,OAAO,iBAAiB,IAAI;CAEpC,IAAIC,UAAsB,EAAE;CAC5B,MAAMC,cAAsC,EAAE,WAAW,IAAI;CAE7D,MAAM,EAAE,MAAM,QAAQ,KAAK,MAAM,gBAAgB,aAC/C,kBAAkB,EAAE;AAEtB,KAAI,IACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;EAAE;AAGrE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,KAAK,EAAE,KAAKA,4DAAuB,KAAK,EAAE;EAAE;AAGtE,KAAI,KACF,WAAU;EAAE,GAAG;EAAS,MAAM,IAAI,OAAO,MAAM,IAAI;EAAE;AAGvD,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,MAAM,aAAa;IACrB,EAAE,KAAK,aAAa;IACpB,EAAE,aAAa,aAAa;IAC5B,EAAE,cAAc,aAAa;IAC9B;GACF;;AAGH,KAAI,eACF,WAAU;EAAE,GAAG;EAAS;EAAgB;AAG1C,KAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,QAC5C,WAAU;EAAE,GAAG;EAAS,gBAAgB,cAAc;EAAI;AAG5D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
@@ -8,7 +8,7 @@ const require_utils_filtersAndPagination_getFiltersAndPaginationFromBody = requi
8
8
  * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.
9
9
  */
10
10
  const getUserFiltersAndPagination = (req, res) => {
11
- const { filters: filtersRequest,...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
11
+ const { filters: filtersRequest, ...pagination } = require_utils_filtersAndPagination_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody(req);
12
12
  const { roles, organization } = res.locals;
13
13
  let filters = {};
14
14
  let sortOptions = { updatedAt: -1 };
@@ -1 +1 @@
1
- {"version":3,"file":"getUserFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter","secureMembersIds: string[]"],"sources":["../../../../src/utils/filtersAndPagination/getUserFiltersAndPagination.ts"],"sourcesContent":["import type { GetUsersResult } from '@controllers/user.controller';\nimport type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { User } from '@/types/user.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type UserFiltersParam = {\n ids?: string | string[];\n firstName?: string;\n lastName?: string;\n email?: string;\n emailVerified?: string;\n role?: string;\n search?: string;\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all users without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type UserFilters = RootFilterQuery<User>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getUserFiltersAndPagination = (\n req: Request<FiltersAndPagination<UserFiltersParam>>,\n res: ResponseWithSession<GetUsersResult>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<UserFiltersParam>(req);\n const { roles, organization } = res.locals;\n\n let filters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n firstName,\n lastName,\n email,\n emailVerified,\n role,\n search,\n sortBy,\n sortOrder,\n ids,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n const secureMembersIds: string[] =\n ensureArrayQueryFilter(ids)?.filter((id) =>\n organization?.membersIds?.map(String).includes(id)\n ) ?? [];\n\n filters = {\n ...filters,\n _id: {\n $in: secureMembersIds,\n },\n };\n }\n }\n\n if (firstName) {\n filters = { ...filters, firstName: new RegExp(firstName, 'i') };\n }\n\n if (lastName) {\n filters = { ...filters, lastName: new RegExp(lastName, 'i') };\n }\n\n if (email) {\n filters = { ...filters, email: new RegExp(email, 'i') };\n }\n\n if (emailVerified !== undefined) {\n const isVerified = emailVerified === 'true';\n filters = { ...filters, emailVerified: isVerified };\n }\n\n if (role) {\n filters = { ...filters, role };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { firstName: searchRegex },\n { lastName: searchRegex },\n { email: searchRegex },\n { name: searchRegex },\n ],\n };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AAiCA,MAAa,+BACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,eAAgB,GAAG,eAClCA,mGAAkD,IAAI;CACxD,MAAM,EAAE,OAAO,iBAAiB,IAAI;CAEpC,IAAI,UAAU,EAAE;CAChB,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,WACA,UACA,OACA,eACA,MACA,QACA,QACA,WACA,KACA,aACE,kBAAkB,EAAE;AAExB,KAAI,KAAK;AACP,YAAU;GAAE,GAAG;GAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;GAAE;AAEnE,MAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,SAAS;GACrD,MAAMC,mBACJD,4DAAuB,IAAI,EAAE,QAAQ,OACnC,cAAc,YAAY,IAAI,OAAO,CAAC,SAAS,GAAG,CACnD,IAAI,EAAE;AAET,aAAU;IACR,GAAG;IACH,KAAK,EACH,KAAK,kBACN;IACF;;;AAIL,KAAI,UACF,WAAU;EAAE,GAAG;EAAS,WAAW,IAAI,OAAO,WAAW,IAAI;EAAE;AAGjE,KAAI,SACF,WAAU;EAAE,GAAG;EAAS,UAAU,IAAI,OAAO,UAAU,IAAI;EAAE;AAG/D,KAAI,MACF,WAAU;EAAE,GAAG;EAAS,OAAO,IAAI,OAAO,OAAO,IAAI;EAAE;AAGzD,KAAI,kBAAkB,QAAW;EAC/B,MAAM,aAAa,kBAAkB;AACrC,YAAU;GAAE,GAAG;GAAS,eAAe;GAAY;;AAGrD,KAAI,KACF,WAAU;EAAE,GAAG;EAAS;EAAM;AAGhC,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,WAAW,aAAa;IAC1B,EAAE,UAAU,aAAa;IACzB,EAAE,OAAO,aAAa;IACtB,EAAE,MAAM,aAAa;IACtB;GACF;;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
1
+ {"version":3,"file":"getUserFiltersAndPagination.cjs","names":["getFiltersAndPaginationFromBody","sortOptions: Record<string, 1 | -1>","ensureArrayQueryFilter","secureMembersIds: string[]"],"sources":["../../../../src/utils/filtersAndPagination/getUserFiltersAndPagination.ts"],"sourcesContent":["import type { GetUsersResult } from '@controllers/user.controller';\nimport type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport type { User } from '@/types/user.types';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\n\nexport type UserFiltersParam = {\n ids?: string | string[];\n firstName?: string;\n lastName?: string;\n email?: string;\n emailVerified?: string;\n role?: string;\n search?: string;\n sortBy?: string;\n sortOrder?: string;\n /**\n * For admin users, if true, will fetch all users without filtering by organization\n */\n fetchAll?: 'true' | 'false';\n};\nexport type UserFilters = RootFilterQuery<User>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getUserFiltersAndPagination = (\n req: Request<FiltersAndPagination<UserFiltersParam>>,\n res: ResponseWithSession<GetUsersResult>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<UserFiltersParam>(req);\n const { roles, organization } = res.locals;\n\n let filters = {};\n let sortOptions: Record<string, 1 | -1> = { updatedAt: -1 };\n\n const {\n firstName,\n lastName,\n email,\n emailVerified,\n role,\n search,\n sortBy,\n sortOrder,\n ids,\n fetchAll,\n } = filtersRequest ?? {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n\n if (!(roles.includes('admin') && fetchAll === 'true')) {\n const secureMembersIds: string[] =\n ensureArrayQueryFilter(ids)?.filter((id) =>\n organization?.membersIds?.map(String).includes(id)\n ) ?? [];\n\n filters = {\n ...filters,\n _id: {\n $in: secureMembersIds,\n },\n };\n }\n }\n\n if (firstName) {\n filters = { ...filters, firstName: new RegExp(firstName, 'i') };\n }\n\n if (lastName) {\n filters = { ...filters, lastName: new RegExp(lastName, 'i') };\n }\n\n if (email) {\n filters = { ...filters, email: new RegExp(email, 'i') };\n }\n\n if (emailVerified !== undefined) {\n const isVerified = emailVerified === 'true';\n filters = { ...filters, emailVerified: isVerified };\n }\n\n if (role) {\n filters = { ...filters, role };\n }\n\n if (search) {\n const searchRegex = new RegExp(search, 'i');\n filters = {\n ...filters,\n $or: [\n { firstName: searchRegex },\n { lastName: searchRegex },\n { email: searchRegex },\n { name: searchRegex },\n ],\n };\n }\n\n if (sortBy && sortOrder && (sortOrder === 'asc' || sortOrder === 'desc')) {\n sortOptions = { [sortBy]: sortOrder === 'asc' ? 1 : -1 };\n }\n\n return { filters, sortOptions, ...pagination };\n};\n"],"mappings":";;;;;;;;;AAiCA,MAAa,+BACX,KACA,QACG;CACH,MAAM,EAAE,SAAS,gBAAgB,GAAG,eAClCA,mGAAkD,IAAI;CACxD,MAAM,EAAE,OAAO,iBAAiB,IAAI;CAEpC,IAAI,UAAU,EAAE;CAChB,IAAIC,cAAsC,EAAE,WAAW,IAAI;CAE3D,MAAM,EACJ,WACA,UACA,OACA,eACA,MACA,QACA,QACA,WACA,KACA,aACE,kBAAkB,EAAE;AAExB,KAAI,KAAK;AACP,YAAU;GAAE,GAAG;GAAS,KAAK,EAAE,KAAKC,4DAAuB,IAAI,EAAE;GAAE;AAEnE,MAAI,EAAE,MAAM,SAAS,QAAQ,IAAI,aAAa,SAAS;GACrD,MAAMC,mBACJD,4DAAuB,IAAI,EAAE,QAAQ,OACnC,cAAc,YAAY,IAAI,OAAO,CAAC,SAAS,GAAG,CACnD,IAAI,EAAE;AAET,aAAU;IACR,GAAG;IACH,KAAK,EACH,KAAK,kBACN;IACF;;;AAIL,KAAI,UACF,WAAU;EAAE,GAAG;EAAS,WAAW,IAAI,OAAO,WAAW,IAAI;EAAE;AAGjE,KAAI,SACF,WAAU;EAAE,GAAG;EAAS,UAAU,IAAI,OAAO,UAAU,IAAI;EAAE;AAG/D,KAAI,MACF,WAAU;EAAE,GAAG;EAAS,OAAO,IAAI,OAAO,OAAO,IAAI;EAAE;AAGzD,KAAI,kBAAkB,QAAW;EAC/B,MAAM,aAAa,kBAAkB;AACrC,YAAU;GAAE,GAAG;GAAS,eAAe;GAAY;;AAGrD,KAAI,KACF,WAAU;EAAE,GAAG;EAAS;EAAM;AAGhC,KAAI,QAAQ;EACV,MAAM,cAAc,IAAI,OAAO,QAAQ,IAAI;AAC3C,YAAU;GACR,GAAG;GACH,KAAK;IACH,EAAE,WAAW,aAAa;IAC1B,EAAE,UAAU,aAAa;IACzB,EAAE,OAAO,aAAa;IACtB,EAAE,MAAM,aAAa;IACtB;GACF;;AAGH,KAAI,UAAU,cAAc,cAAc,SAAS,cAAc,QAC/D,eAAc,GAAG,SAAS,cAAc,QAAQ,IAAI,IAAI;AAG1D,QAAO;EAAE;EAAS;EAAa,GAAG;EAAY"}
@@ -8,7 +8,7 @@ const require_utils_ensureMongoDocumentToObject = require('../ensureMongoDocumen
8
8
  */
9
9
  const mapUserToAPI = (user) => {
10
10
  if (!user) return null;
11
- const { provider, session,...userAPI } = require_utils_ensureMongoDocumentToObject.ensureMongoDocumentToObject(user);
11
+ const { provider, session, ...userAPI } = require_utils_ensureMongoDocumentToObject.ensureMongoDocumentToObject(user);
12
12
  return userAPI;
13
13
  };
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"user.cjs","names":["ensureMongoDocumentToObject"],"sources":["../../../../src/utils/mapper/user.ts"],"sourcesContent":["import { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport type { User, UserAPI } from '@/types/user.types';\n\n/**\n * Formats a user for API response. Removes sensitive information and adds role.\n * @param user - The user object to format.\n * @returns The formatted user object.\n */\nexport const mapUserToAPI = <T extends User | UserAPI | null>(\n user?: T\n): T extends null ? null : UserAPI => {\n if (!user) {\n return null as any;\n }\n\n const userObject = ensureMongoDocumentToObject(user);\n\n // biome-ignore lint/correctness/noUnusedVariables: Just filter out provider and session\n const { provider, session, ...userAPI } = userObject as any;\n\n return userAPI as any;\n};\n\n/**\n * Formats an array of users for API response. Removes sensitive information and adds role.\n * @param users - The array of user objects to format.\n * @returns The formatted array of user objects.\n */\nexport const mapUsersToAPI = (users: (User | UserAPI)[]): UserAPI[] =>\n users.map(mapUserToAPI).filter(Boolean) as UserAPI[];\n"],"mappings":";;;;;;;;AAQA,MAAa,gBACX,SACoC;AACpC,KAAI,CAAC,KACH,QAAO;CAMT,MAAM,EAAE,UAAU,QAAS,GAAG,YAHXA,sEAA4B,KAAK;AAKpD,QAAO;;;;;;;AAQT,MAAa,iBAAiB,UAC5B,MAAM,IAAI,aAAa,CAAC,OAAO,QAAQ"}
1
+ {"version":3,"file":"user.cjs","names":["ensureMongoDocumentToObject"],"sources":["../../../../src/utils/mapper/user.ts"],"sourcesContent":["import { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport type { User, UserAPI } from '@/types/user.types';\n\n/**\n * Formats a user for API response. Removes sensitive information and adds role.\n * @param user - The user object to format.\n * @returns The formatted user object.\n */\nexport const mapUserToAPI = <T extends User | UserAPI | null>(\n user?: T\n): T extends null ? null : UserAPI => {\n if (!user) {\n return null as any;\n }\n\n const userObject = ensureMongoDocumentToObject(user);\n\n // biome-ignore lint/correctness/noUnusedVariables: Just filter out provider and session\n const { provider, session, ...userAPI } = userObject as any;\n\n return userAPI as any;\n};\n\n/**\n * Formats an array of users for API response. Removes sensitive information and adds role.\n * @param users - The array of user objects to format.\n * @returns The formatted array of user objects.\n */\nexport const mapUsersToAPI = (users: (User | UserAPI)[]): UserAPI[] =>\n users.map(mapUserToAPI).filter(Boolean) as UserAPI[];\n"],"mappings":";;;;;;;;AAQA,MAAa,gBACX,SACoC;AACpC,KAAI,CAAC,KACH,QAAO;CAMT,MAAM,EAAE,UAAU,SAAS,GAAG,YAHXA,sEAA4B,KAAK;AAKpD,QAAO;;;;;;;AAQT,MAAa,iBAAiB,UAC5B,MAAM,IAAI,aAAa,CAAC,OAAO,QAAQ"}
@@ -16,7 +16,7 @@ import { DiscussionModel } from "../models/discussion.model.mjs";
16
16
 
17
17
  //#region src/controllers/ai.controller.ts
18
18
  const customQuery = async (req, res, _next) => {
19
- const { aiOptions, tagsKeys,...rest } = req.body;
19
+ const { aiOptions, tagsKeys, ...rest } = req.body;
20
20
  let aiConfig;
21
21
  try {
22
22
  aiConfig = await getAIConfig(res, {
@@ -48,7 +48,7 @@ const customQuery = async (req, res, _next) => {
48
48
  };
49
49
  const translateJSON = async (req, res, _next) => {
50
50
  const { project } = res.locals;
51
- const { aiOptions, tagsKeys,...rest } = req.body;
51
+ const { aiOptions, tagsKeys, ...rest } = req.body;
52
52
  let aiConfig;
53
53
  try {
54
54
  aiConfig = await getAIConfig(res, {
@@ -1 +1 @@
1
- {"version":3,"file":"ai.controller.mjs","names":["aiConfig: AIConfig","customQueryUtil.aiDefaultOptions","customQueryUtil.customQuery","translateJSONUtil.aiDefaultOptions","tags: Tag[]","translateJSONUtil.translateJSON","auditContentDeclarationUtil.aiDefaultOptions","auditContentDeclarationUtil.auditDictionary","auditContentDeclarationFieldUtil.aiDefaultOptions","auditContentDeclarationFieldUtil.auditDictionaryField","auditContentDeclarationMetadataUtil.aiDefaultOptions","tagService.findTags","auditContentDeclarationMetadataUtil.auditDictionaryMetadata","auditTagUtil.aiDefaultOptions","dictionaries: Dictionary[]","auditTagUtil.auditTag","askDocQuestionUtil.aiDefaultOptions","autocompleteUtil.aiDefaultOptions","autocompleteUtil.autocomplete","numberOfMessagesById: Record<string, number>"],"sources":["../../../src/controllers/ai.controller.ts"],"sourcesContent":["import type { KeyPath, Locale } from '@intlayer/types';\nimport type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { getDictionariesByTags } from '@services/dictionary.service';\nimport * as tagService from '@services/tag.service';\nimport { getTagsByKeys } from '@services/tag.service';\nimport {\n type AIConfig,\n type AIOptions,\n type ChatCompletionRequestMessage,\n getAIConfig,\n} from '@utils/AI/aiSdk';\nimport * as askDocQuestionUtil from '@utils/AI/askDocQuestion/askDocQuestion';\nimport * as auditContentDeclarationUtil from '@utils/AI/auditDictionary';\nimport * as auditContentDeclarationFieldUtil from '@utils/AI/auditDictionaryField';\nimport * as auditContentDeclarationMetadataUtil from '@utils/AI/auditDictionaryMetadata';\nimport * as auditTagUtil from '@utils/AI/auditTag';\nimport * as autocompleteUtil from '@utils/AI/autocomplete';\nimport * as customQueryUtil from '@utils/AI/customQuery';\nimport * as translateJSONUtil from '@utils/AI/translateJSON';\nimport { type AppError, ErrorHandler } from '@utils/errors';\nimport {\n type DiscussionFiltersParams,\n getDiscussionFiltersAndPagination,\n} from '@utils/filtersAndPagination/getDiscussionFiltersAndPagination';\nimport {\n formatPaginatedResponse,\n formatResponse,\n type PaginatedResponse,\n type ResponseData,\n} from '@utils/responseData';\nimport type { NextFunction, Request } from 'express';\nimport { DiscussionModel } from '@/models/discussion.model';\nimport type { Dictionary } from '@/types/dictionary.types';\nimport type { DiscussionAPI } from '@/types/discussion.types';\nimport type { Tag, TagAPI } from '@/types/tag.types';\n\ntype ReplaceAIConfigByOptions<T> = Omit<T, 'aiConfig'> & {\n aiOptions?: AIOptions;\n};\n\nexport type CustomQueryBody =\n ReplaceAIConfigByOptions<customQueryUtil.CustomQueryOptions> & {\n tagsKeys?: string[];\n applicationContext?: string;\n };\nexport type CustomQueryResult =\n ResponseData<customQueryUtil.CustomQueryResultData>;\n\nexport const customQuery = async (\n req: Request<CustomQueryBody>,\n res: ResponseWithSession<CustomQueryResult>,\n _next: NextFunction\n): Promise<void> => {\n // biome-ignore lint/correctness/noUnusedVariables: Just filter out tagsKeys\n const { aiOptions, tagsKeys, ...rest } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: customQueryUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n const auditResponse = await customQueryUtil.customQuery({\n ...rest,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'QUERY_FAILED');\n return;\n }\n\n const responseData = formatResponse<customQueryUtil.CustomQueryResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type TranslateJSONBody = Omit<\n ReplaceAIConfigByOptions<translateJSONUtil.TranslateJSONOptions>,\n 'tags'\n> & {\n tagsKeys?: string[];\n};\nexport type TranslateJSONResult =\n ResponseData<translateJSONUtil.TranslateJSONResultData>;\n\nexport const translateJSON = async (\n req: Request<TranslateJSONBody>,\n res: ResponseWithSession<TranslateJSONResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { aiOptions, tagsKeys, ...rest } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: translateJSONUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let tags: Tag[] = [];\n\n if (project?.organizationId && tagsKeys) {\n tags = await getTagsByKeys(tagsKeys, project.organizationId);\n }\n\n const auditResponse = await translateJSONUtil.translateJSON({\n ...rest,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n tags,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<translateJSONUtil.TranslateJSONResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditContentDeclarationBody = {\n aiOptions?: AIOptions;\n locales: Locale[];\n defaultLocale: Locale;\n fileContent: string;\n filePath?: string;\n tagsKeys?: string[];\n};\nexport type AuditContentDeclarationResult =\n ResponseData<auditContentDeclarationUtil.AuditFileResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditContentDeclaration = async (\n req: Request<AuditContentDeclarationBody>,\n res: ResponseWithSession<AuditContentDeclarationResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { fileContent, filePath, aiOptions, locales, defaultLocale, tagsKeys } =\n req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditContentDeclarationUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let tags: Tag[] = [];\n\n if (project?.organizationId) {\n tags = await getTagsByKeys(tagsKeys, project.organizationId);\n }\n\n const auditResponse = await auditContentDeclarationUtil.auditDictionary({\n fileContent,\n filePath,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n locales,\n defaultLocale,\n tags,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<auditContentDeclarationUtil.AuditFileResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditContentDeclarationFieldBody = {\n aiOptions?: AIOptions;\n locales: Locale[];\n fileContent: string;\n filePath?: string;\n tagsKeys?: string[];\n keyPath: KeyPath[];\n};\nexport type AuditContentDeclarationFieldResult =\n ResponseData<auditContentDeclarationFieldUtil.AuditDictionaryFieldResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditContentDeclarationField = async (\n req: Request<AuditContentDeclarationFieldBody>,\n res: ResponseWithSession<AuditContentDeclarationFieldResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { fileContent, aiOptions, locales, tagsKeys, keyPath } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditContentDeclarationFieldUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let tags: Tag[] = [];\n\n if (project?.organizationId) {\n tags = await getTagsByKeys(tagsKeys, project.organizationId);\n }\n\n const auditResponse =\n await auditContentDeclarationFieldUtil.auditDictionaryField({\n fileContent,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n locales,\n tags,\n keyPath,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<auditContentDeclarationFieldUtil.AuditDictionaryFieldResultData>(\n {\n data: auditResponse,\n }\n );\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditContentDeclarationMetadataBody = {\n aiOptions?: AIOptions;\n fileContent: string;\n};\n\nexport type AuditContentDeclarationMetadataResult =\n ResponseData<auditContentDeclarationMetadataUtil.AuditFileResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditContentDeclarationMetadata = async (\n req: Request<AuditContentDeclarationMetadataBody>,\n res: ResponseWithSession<AuditContentDeclarationMetadataResult>,\n _next: NextFunction\n): Promise<void> => {\n const { organization } = res.locals;\n const { fileContent, aiOptions } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditContentDeclarationMetadataUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n const tags: Tag[] = await tagService.findTags(\n {\n organizationId: organization?.id,\n },\n 0,\n 1000\n );\n\n const auditResponse =\n await auditContentDeclarationMetadataUtil.auditDictionaryMetadata({\n fileContent,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n tags,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<auditContentDeclarationMetadataUtil.AuditFileResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditTagBody = {\n aiOptions?: AIOptions;\n tag: TagAPI;\n};\nexport type AuditTagResult = ResponseData<auditTagUtil.TranslateJSONResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditTag = async (\n req: Request<undefined, undefined, AuditTagBody>,\n res: ResponseWithSession<AuditTagResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { aiOptions, tag } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditTagUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let dictionaries: Dictionary[] = [];\n if (project?.organizationId) {\n dictionaries = await getDictionariesByTags([tag.key], project.id);\n }\n\n const auditResponse = await auditTagUtil.auditTag({\n aiConfig,\n dictionaries,\n tag,\n applicationContext: aiOptions?.applicationContext,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData = formatResponse<auditTagUtil.TranslateJSONResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AskDocQuestionBody = {\n messages: ChatCompletionRequestMessage[];\n discussionId: string;\n};\nexport type AskDocQuestionResult =\n ResponseData<askDocQuestionUtil.AskDocQuestionResult>;\n\nexport const askDocQuestion = async (\n req: Request<undefined, undefined, AskDocQuestionBody>,\n res: ResponseWithSession<AskDocQuestionResult>,\n _next: NextFunction\n): Promise<void> => {\n const { messages = [], discussionId } = req.body;\n const { user, project, organization } = res.locals;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: {},\n defaultOptions: askDocQuestionUtil.aiDefaultOptions,\n accessType: ['public'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n // 1. Prepare SSE headers and flush them NOW\n res.setHeader('Content-Type', 'text/event-stream; charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache, no-transform');\n res.setHeader('Connection', 'keep-alive');\n res.setHeader('X-Accel-Buffering', 'no'); // disable nginx buffering\n res.flushHeaders?.();\n res.write(': connected\\n\\n'); // initial comment keeps some browsers happy\n res.flush?.();\n\n // 2. Kick off the upstream stream WITHOUT awaiting it\n askDocQuestionUtil\n .askDocQuestion(messages, aiConfig, {\n onMessage: (chunk) => {\n res.write(`data: ${JSON.stringify({ chunk })}\\n\\n`);\n res.flush?.();\n },\n })\n .then(async (fullResponse) => {\n const lastUserMessageContent = messages.findLast(\n (message) => message.role === 'user'\n )?.content;\n const lastUserMessageNbWords = lastUserMessageContent\n ? lastUserMessageContent.split(' ').length\n : 0;\n if (lastUserMessageNbWords > 2) {\n // If the last user message is less than 3 words, don't persist the discussion\n // Example: \"Hello\", \"Hi\", \"Hey\", \"test\", etc.\n\n // 3. Persist discussion while the client already has all chunks\n await DiscussionModel.findOneAndUpdate(\n { discussionId },\n {\n $set: {\n discussionId,\n userId: user?.id,\n projectId: project?.id,\n organizationId: organization?.id,\n messages: [\n ...messages.map((msg) => ({\n role: msg.role,\n content: msg.content,\n timestamp: msg.timestamp,\n })),\n {\n role: 'assistant',\n content: fullResponse.response,\n relatedFiles: fullResponse.relatedFiles,\n timestamp: new Date(),\n },\n ],\n },\n },\n { upsert: true, new: true }\n );\n }\n\n // 4. Tell the client we're done and close the stream\n res.write(\n `data: ${JSON.stringify({ done: true, response: fullResponse })}\\n\\n`\n );\n res.end();\n })\n .catch((err) => {\n // propagate error as an SSE event so the client knows why it closed\n res.write(\n `event: error\\ndata: ${JSON.stringify({ message: err.message })}\\n\\n`\n );\n res.end();\n });\n};\n\nexport type AutocompleteBody = {\n text: string;\n aiOptions?: AIOptions;\n contextBefore?: string;\n currentLine?: string;\n contextAfter?: string;\n};\n\nexport type AutocompleteResponse = ResponseData<{\n autocompletion: string;\n}>;\n\nexport const autocomplete = async (\n req: Request<AutocompleteBody>,\n res: ResponseWithSession<AutocompleteResponse>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const { text, aiOptions, contextBefore, currentLine, contextAfter } =\n req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: autocompleteUtil.aiDefaultOptions,\n accessType: ['public'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n const response = (await autocompleteUtil.autocomplete({\n text,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n contextBefore,\n currentLine,\n contextAfter,\n })) ?? {\n autocompletion: '',\n tokenUsed: 0,\n };\n\n const responseData =\n formatResponse<autocompleteUtil.AutocompleteFileResultData>({\n data: response,\n });\n\n res.json(responseData);\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDiscussionsParams =\n | ({\n page?: string | number;\n pageSize?: string | number;\n includeMessages?: 'true' | 'false';\n } & DiscussionFiltersParams)\n | undefined;\n\nexport type GetDiscussionsResult = PaginatedResponse<DiscussionAPI>;\n\n/**\n * Retrieves a list of discussions with filters and pagination.\n * Only the owner or admins can access. By default, users only see their own.\n */\nexport const getDiscussions = async (\n req: Request<GetDiscussionsParams>,\n res: ResponseWithSession<GetDiscussionsResult>,\n _next: NextFunction\n): Promise<void> => {\n const { user, roles } = res.locals;\n const { filters, sortOptions, pageSize, skip, page, getNumberOfPages } =\n getDiscussionFiltersAndPagination(req, res);\n const includeMessagesParam = (req.query as any)?.includeMessages as\n | 'true'\n | 'false'\n | undefined;\n const includeMessages = includeMessagesParam !== 'false';\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n try {\n const projection = includeMessages ? {} : { messages: 0 };\n const discussions = await DiscussionModel.find(filters, projection)\n .sort(sortOptions)\n .skip(skip)\n .limit(pageSize)\n .lean();\n\n // Compute number of messages for each discussion\n const numberOfMessagesById: Record<string, number> = {};\n if (!includeMessages && discussions.length > 0) {\n const ids = discussions.map((d: any) => d._id);\n const counts = await DiscussionModel.aggregate([\n { $match: { _id: { $in: ids } } },\n {\n $project: {\n numberOfMessages: { $size: { $ifNull: ['$messages', []] } },\n },\n },\n ]);\n for (const c of counts as any[]) {\n numberOfMessagesById[String(c._id)] = c.numberOfMessages ?? 0;\n }\n }\n\n // Permission: allow admin, or the owner for all returned entries\n const allOwnedByUser = discussions.every(\n (d) => String(d.userId) === String(user.id)\n );\n const isAllowed = roles.includes('admin') || allOwnedByUser;\n\n if (!isAllowed) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const totalItems = await DiscussionModel.countDocuments(filters);\n\n const responseData = formatPaginatedResponse({\n data: discussions.map((d: any) => ({\n ...d,\n id: String(d._id ?? d.id),\n numberOfMessages: includeMessages\n ? Array.isArray(d.messages)\n ? d.messages.length\n : 0\n : (numberOfMessagesById[String(d._id ?? d.id)] ?? 0),\n })),\n page,\n pageSize,\n totalPages: getNumberOfPages(totalItems),\n totalItems,\n });\n\n res.json(responseData as any);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"ai.controller.mjs","names":["aiConfig: AIConfig","customQueryUtil.aiDefaultOptions","customQueryUtil.customQuery","translateJSONUtil.aiDefaultOptions","tags: Tag[]","translateJSONUtil.translateJSON","auditContentDeclarationUtil.aiDefaultOptions","auditContentDeclarationUtil.auditDictionary","auditContentDeclarationFieldUtil.aiDefaultOptions","auditContentDeclarationFieldUtil.auditDictionaryField","auditContentDeclarationMetadataUtil.aiDefaultOptions","tagService.findTags","auditContentDeclarationMetadataUtil.auditDictionaryMetadata","auditTagUtil.aiDefaultOptions","dictionaries: Dictionary[]","auditTagUtil.auditTag","askDocQuestionUtil.aiDefaultOptions","autocompleteUtil.aiDefaultOptions","autocompleteUtil.autocomplete","numberOfMessagesById: Record<string, number>"],"sources":["../../../src/controllers/ai.controller.ts"],"sourcesContent":["import type { KeyPath, Locale } from '@intlayer/types';\nimport type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport { getDictionariesByTags } from '@services/dictionary.service';\nimport * as tagService from '@services/tag.service';\nimport { getTagsByKeys } from '@services/tag.service';\nimport {\n type AIConfig,\n type AIOptions,\n type ChatCompletionRequestMessage,\n getAIConfig,\n} from '@utils/AI/aiSdk';\nimport * as askDocQuestionUtil from '@utils/AI/askDocQuestion/askDocQuestion';\nimport * as auditContentDeclarationUtil from '@utils/AI/auditDictionary';\nimport * as auditContentDeclarationFieldUtil from '@utils/AI/auditDictionaryField';\nimport * as auditContentDeclarationMetadataUtil from '@utils/AI/auditDictionaryMetadata';\nimport * as auditTagUtil from '@utils/AI/auditTag';\nimport * as autocompleteUtil from '@utils/AI/autocomplete';\nimport * as customQueryUtil from '@utils/AI/customQuery';\nimport * as translateJSONUtil from '@utils/AI/translateJSON';\nimport { type AppError, ErrorHandler } from '@utils/errors';\nimport {\n type DiscussionFiltersParams,\n getDiscussionFiltersAndPagination,\n} from '@utils/filtersAndPagination/getDiscussionFiltersAndPagination';\nimport {\n formatPaginatedResponse,\n formatResponse,\n type PaginatedResponse,\n type ResponseData,\n} from '@utils/responseData';\nimport type { NextFunction, Request } from 'express';\nimport { DiscussionModel } from '@/models/discussion.model';\nimport type { Dictionary } from '@/types/dictionary.types';\nimport type { DiscussionAPI } from '@/types/discussion.types';\nimport type { Tag, TagAPI } from '@/types/tag.types';\n\ntype ReplaceAIConfigByOptions<T> = Omit<T, 'aiConfig'> & {\n aiOptions?: AIOptions;\n};\n\nexport type CustomQueryBody =\n ReplaceAIConfigByOptions<customQueryUtil.CustomQueryOptions> & {\n tagsKeys?: string[];\n applicationContext?: string;\n };\nexport type CustomQueryResult =\n ResponseData<customQueryUtil.CustomQueryResultData>;\n\nexport const customQuery = async (\n req: Request<CustomQueryBody>,\n res: ResponseWithSession<CustomQueryResult>,\n _next: NextFunction\n): Promise<void> => {\n // biome-ignore lint/correctness/noUnusedVariables: Just filter out tagsKeys\n const { aiOptions, tagsKeys, ...rest } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: customQueryUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n const auditResponse = await customQueryUtil.customQuery({\n ...rest,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'QUERY_FAILED');\n return;\n }\n\n const responseData = formatResponse<customQueryUtil.CustomQueryResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type TranslateJSONBody = Omit<\n ReplaceAIConfigByOptions<translateJSONUtil.TranslateJSONOptions>,\n 'tags'\n> & {\n tagsKeys?: string[];\n};\nexport type TranslateJSONResult =\n ResponseData<translateJSONUtil.TranslateJSONResultData>;\n\nexport const translateJSON = async (\n req: Request<TranslateJSONBody>,\n res: ResponseWithSession<TranslateJSONResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { aiOptions, tagsKeys, ...rest } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: translateJSONUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let tags: Tag[] = [];\n\n if (project?.organizationId && tagsKeys) {\n tags = await getTagsByKeys(tagsKeys, project.organizationId);\n }\n\n const auditResponse = await translateJSONUtil.translateJSON({\n ...rest,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n tags,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<translateJSONUtil.TranslateJSONResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditContentDeclarationBody = {\n aiOptions?: AIOptions;\n locales: Locale[];\n defaultLocale: Locale;\n fileContent: string;\n filePath?: string;\n tagsKeys?: string[];\n};\nexport type AuditContentDeclarationResult =\n ResponseData<auditContentDeclarationUtil.AuditFileResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditContentDeclaration = async (\n req: Request<AuditContentDeclarationBody>,\n res: ResponseWithSession<AuditContentDeclarationResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { fileContent, filePath, aiOptions, locales, defaultLocale, tagsKeys } =\n req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditContentDeclarationUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let tags: Tag[] = [];\n\n if (project?.organizationId) {\n tags = await getTagsByKeys(tagsKeys, project.organizationId);\n }\n\n const auditResponse = await auditContentDeclarationUtil.auditDictionary({\n fileContent,\n filePath,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n locales,\n defaultLocale,\n tags,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<auditContentDeclarationUtil.AuditFileResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditContentDeclarationFieldBody = {\n aiOptions?: AIOptions;\n locales: Locale[];\n fileContent: string;\n filePath?: string;\n tagsKeys?: string[];\n keyPath: KeyPath[];\n};\nexport type AuditContentDeclarationFieldResult =\n ResponseData<auditContentDeclarationFieldUtil.AuditDictionaryFieldResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditContentDeclarationField = async (\n req: Request<AuditContentDeclarationFieldBody>,\n res: ResponseWithSession<AuditContentDeclarationFieldResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { fileContent, aiOptions, locales, tagsKeys, keyPath } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditContentDeclarationFieldUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let tags: Tag[] = [];\n\n if (project?.organizationId) {\n tags = await getTagsByKeys(tagsKeys, project.organizationId);\n }\n\n const auditResponse =\n await auditContentDeclarationFieldUtil.auditDictionaryField({\n fileContent,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n locales,\n tags,\n keyPath,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<auditContentDeclarationFieldUtil.AuditDictionaryFieldResultData>(\n {\n data: auditResponse,\n }\n );\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditContentDeclarationMetadataBody = {\n aiOptions?: AIOptions;\n fileContent: string;\n};\n\nexport type AuditContentDeclarationMetadataResult =\n ResponseData<auditContentDeclarationMetadataUtil.AuditFileResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditContentDeclarationMetadata = async (\n req: Request<AuditContentDeclarationMetadataBody>,\n res: ResponseWithSession<AuditContentDeclarationMetadataResult>,\n _next: NextFunction\n): Promise<void> => {\n const { organization } = res.locals;\n const { fileContent, aiOptions } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditContentDeclarationMetadataUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n const tags: Tag[] = await tagService.findTags(\n {\n organizationId: organization?.id,\n },\n 0,\n 1000\n );\n\n const auditResponse =\n await auditContentDeclarationMetadataUtil.auditDictionaryMetadata({\n fileContent,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n tags,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData =\n formatResponse<auditContentDeclarationMetadataUtil.AuditFileResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AuditTagBody = {\n aiOptions?: AIOptions;\n tag: TagAPI;\n};\nexport type AuditTagResult = ResponseData<auditTagUtil.TranslateJSONResultData>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const auditTag = async (\n req: Request<undefined, undefined, AuditTagBody>,\n res: ResponseWithSession<AuditTagResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project } = res.locals;\n const { aiOptions, tag } = req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: auditTagUtil.aiDefaultOptions,\n accessType: ['registered_user', 'apiKey'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n try {\n let dictionaries: Dictionary[] = [];\n if (project?.organizationId) {\n dictionaries = await getDictionariesByTags([tag.key], project.id);\n }\n\n const auditResponse = await auditTagUtil.auditTag({\n aiConfig,\n dictionaries,\n tag,\n applicationContext: aiOptions?.applicationContext,\n });\n\n if (!auditResponse) {\n ErrorHandler.handleGenericErrorResponse(res, 'AUDIT_FAILED');\n return;\n }\n\n const responseData = formatResponse<auditTagUtil.TranslateJSONResultData>({\n data: auditResponse,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AskDocQuestionBody = {\n messages: ChatCompletionRequestMessage[];\n discussionId: string;\n};\nexport type AskDocQuestionResult =\n ResponseData<askDocQuestionUtil.AskDocQuestionResult>;\n\nexport const askDocQuestion = async (\n req: Request<undefined, undefined, AskDocQuestionBody>,\n res: ResponseWithSession<AskDocQuestionResult>,\n _next: NextFunction\n): Promise<void> => {\n const { messages = [], discussionId } = req.body;\n const { user, project, organization } = res.locals;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: {},\n defaultOptions: askDocQuestionUtil.aiDefaultOptions,\n accessType: ['public'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n // 1. Prepare SSE headers and flush them NOW\n res.setHeader('Content-Type', 'text/event-stream; charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache, no-transform');\n res.setHeader('Connection', 'keep-alive');\n res.setHeader('X-Accel-Buffering', 'no'); // disable nginx buffering\n res.flushHeaders?.();\n res.write(': connected\\n\\n'); // initial comment keeps some browsers happy\n res.flush?.();\n\n // 2. Kick off the upstream stream WITHOUT awaiting it\n askDocQuestionUtil\n .askDocQuestion(messages, aiConfig, {\n onMessage: (chunk) => {\n res.write(`data: ${JSON.stringify({ chunk })}\\n\\n`);\n res.flush?.();\n },\n })\n .then(async (fullResponse) => {\n const lastUserMessageContent = messages.findLast(\n (message) => message.role === 'user'\n )?.content;\n const lastUserMessageNbWords = lastUserMessageContent\n ? lastUserMessageContent.split(' ').length\n : 0;\n if (lastUserMessageNbWords > 2) {\n // If the last user message is less than 3 words, don't persist the discussion\n // Example: \"Hello\", \"Hi\", \"Hey\", \"test\", etc.\n\n // 3. Persist discussion while the client already has all chunks\n await DiscussionModel.findOneAndUpdate(\n { discussionId },\n {\n $set: {\n discussionId,\n userId: user?.id,\n projectId: project?.id,\n organizationId: organization?.id,\n messages: [\n ...messages.map((msg) => ({\n role: msg.role,\n content: msg.content,\n timestamp: msg.timestamp,\n })),\n {\n role: 'assistant',\n content: fullResponse.response,\n relatedFiles: fullResponse.relatedFiles,\n timestamp: new Date(),\n },\n ],\n },\n },\n { upsert: true, new: true }\n );\n }\n\n // 4. Tell the client we're done and close the stream\n res.write(\n `data: ${JSON.stringify({ done: true, response: fullResponse })}\\n\\n`\n );\n res.end();\n })\n .catch((err) => {\n // propagate error as an SSE event so the client knows why it closed\n res.write(\n `event: error\\ndata: ${JSON.stringify({ message: err.message })}\\n\\n`\n );\n res.end();\n });\n};\n\nexport type AutocompleteBody = {\n text: string;\n aiOptions?: AIOptions;\n contextBefore?: string;\n currentLine?: string;\n contextAfter?: string;\n};\n\nexport type AutocompleteResponse = ResponseData<{\n autocompletion: string;\n}>;\n\nexport const autocomplete = async (\n req: Request<AutocompleteBody>,\n res: ResponseWithSession<AutocompleteResponse>,\n _next: NextFunction\n): Promise<void> => {\n try {\n const { text, aiOptions, contextBefore, currentLine, contextAfter } =\n req.body;\n\n let aiConfig: AIConfig;\n try {\n aiConfig = await getAIConfig(res, {\n userOptions: aiOptions,\n defaultOptions: autocompleteUtil.aiDefaultOptions,\n accessType: ['public'],\n });\n } catch (_error) {\n ErrorHandler.handleGenericErrorResponse(res, 'AI_ACCESS_DENIED');\n return;\n }\n\n const response = (await autocompleteUtil.autocomplete({\n text,\n aiConfig,\n applicationContext: aiOptions?.applicationContext,\n contextBefore,\n currentLine,\n contextAfter,\n })) ?? {\n autocompletion: '',\n tokenUsed: 0,\n };\n\n const responseData =\n formatResponse<autocompleteUtil.AutocompleteFileResultData>({\n data: response,\n });\n\n res.json(responseData);\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDiscussionsParams =\n | ({\n page?: string | number;\n pageSize?: string | number;\n includeMessages?: 'true' | 'false';\n } & DiscussionFiltersParams)\n | undefined;\n\nexport type GetDiscussionsResult = PaginatedResponse<DiscussionAPI>;\n\n/**\n * Retrieves a list of discussions with filters and pagination.\n * Only the owner or admins can access. By default, users only see their own.\n */\nexport const getDiscussions = async (\n req: Request<GetDiscussionsParams>,\n res: ResponseWithSession<GetDiscussionsResult>,\n _next: NextFunction\n): Promise<void> => {\n const { user, roles } = res.locals;\n const { filters, sortOptions, pageSize, skip, page, getNumberOfPages } =\n getDiscussionFiltersAndPagination(req, res);\n const includeMessagesParam = (req.query as any)?.includeMessages as\n | 'true'\n | 'false'\n | undefined;\n const includeMessages = includeMessagesParam !== 'false';\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n try {\n const projection = includeMessages ? {} : { messages: 0 };\n const discussions = await DiscussionModel.find(filters, projection)\n .sort(sortOptions)\n .skip(skip)\n .limit(pageSize)\n .lean();\n\n // Compute number of messages for each discussion\n const numberOfMessagesById: Record<string, number> = {};\n if (!includeMessages && discussions.length > 0) {\n const ids = discussions.map((d: any) => d._id);\n const counts = await DiscussionModel.aggregate([\n { $match: { _id: { $in: ids } } },\n {\n $project: {\n numberOfMessages: { $size: { $ifNull: ['$messages', []] } },\n },\n },\n ]);\n for (const c of counts as any[]) {\n numberOfMessagesById[String(c._id)] = c.numberOfMessages ?? 0;\n }\n }\n\n // Permission: allow admin, or the owner for all returned entries\n const allOwnedByUser = discussions.every(\n (d) => String(d.userId) === String(user.id)\n );\n const isAllowed = roles.includes('admin') || allOwnedByUser;\n\n if (!isAllowed) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const totalItems = await DiscussionModel.countDocuments(filters);\n\n const responseData = formatPaginatedResponse({\n data: discussions.map((d: any) => ({\n ...d,\n id: String(d._id ?? d.id),\n numberOfMessages: includeMessages\n ? Array.isArray(d.messages)\n ? d.messages.length\n : 0\n : (numberOfMessagesById[String(d._id ?? d.id)] ?? 0),\n })),\n page,\n pageSize,\n totalPages: getNumberOfPages(totalItems),\n totalItems,\n });\n\n res.json(responseData as any);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n"],"mappings":"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"}
@@ -48,7 +48,7 @@ const dictionarySchema = new Schema({
48
48
  virtuals: true,
49
49
  versionKey: false,
50
50
  transform(_doc, ret) {
51
- const { _id,...rest } = ret;
51
+ const { _id, ...rest } = ret;
52
52
  return {
53
53
  ...rest,
54
54
  id: _id.toString()
@@ -58,7 +58,7 @@ const dictionarySchema = new Schema({
58
58
  toObject: {
59
59
  virtuals: true,
60
60
  transform(_doc, ret) {
61
- const { _id,...rest } = ret;
61
+ const { _id, ...rest } = ret;
62
62
  return {
63
63
  ...rest,
64
64
  id: _id
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.schema.mjs","names":[],"sources":["../../../src/schemas/dictionary.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type {\n DictionarySchema,\n VersionedContentEl,\n} from '@/types/dictionary.types';\n\nconst versionedContentElSchema = new Schema<VersionedContentEl>(\n {\n name: {\n type: String,\n },\n description: {\n type: String,\n },\n content: {\n type: Schema.Types.Mixed,\n required: true,\n },\n },\n {\n timestamps: true,\n }\n);\n\nexport const dictionarySchema = new Schema<DictionarySchema>(\n {\n projectIds: {\n type: [Schema.Types.ObjectId],\n ref: 'Project',\n required: true,\n },\n key: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n default: '',\n },\n description: {\n type: String,\n default: '',\n },\n tags: {\n type: [String],\n default: [],\n },\n content: {\n type: Map,\n of: versionedContentElSchema,\n required: true,\n default: null,\n },\n creatorId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n"],"mappings":";;;AAMA,MAAM,2BAA2B,IAAI,OACnC;CACE,MAAM,EACJ,MAAM,QACP;CACD,aAAa,EACX,MAAM,QACP;CACD,SAAS;EACP,MAAM,OAAO,MAAM;EACnB,UAAU;EACX;CACF,EACD,EACE,YAAY,MACb,CACF;AAED,MAAa,mBAAmB,IAAI,OAClC;CACE,YAAY;EACV,MAAM,CAAC,OAAO,MAAM,SAAS;EAC7B,KAAK;EACL,UAAU;EACX;CACD,KAAK;EACH,MAAM;EACN,UAAU;EACX;CACD,OAAO;EACL,MAAM;EACN,SAAS;EACV;CACD,aAAa;EACX,MAAM;EACN,SAAS;EACV;CACD,MAAM;EACJ,MAAM,CAAC,OAAO;EACd,SAAS,EAAE;EACZ;CACD,SAAS;EACP,MAAM;EACN,IAAI;EACJ,UAAU;EACV,SAAS;EACV;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF"}
1
+ {"version":3,"file":"dictionary.schema.mjs","names":[],"sources":["../../../src/schemas/dictionary.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type {\n DictionarySchema,\n VersionedContentEl,\n} from '@/types/dictionary.types';\n\nconst versionedContentElSchema = new Schema<VersionedContentEl>(\n {\n name: {\n type: String,\n },\n description: {\n type: String,\n },\n content: {\n type: Schema.Types.Mixed,\n required: true,\n },\n },\n {\n timestamps: true,\n }\n);\n\nexport const dictionarySchema = new Schema<DictionarySchema>(\n {\n projectIds: {\n type: [Schema.Types.ObjectId],\n ref: 'Project',\n required: true,\n },\n key: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n default: '',\n },\n description: {\n type: String,\n default: '',\n },\n tags: {\n type: [String],\n default: [],\n },\n content: {\n type: Map,\n of: versionedContentElSchema,\n required: true,\n default: null,\n },\n creatorId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n"],"mappings":";;;AAMA,MAAM,2BAA2B,IAAI,OACnC;CACE,MAAM,EACJ,MAAM,QACP;CACD,aAAa,EACX,MAAM,QACP;CACD,SAAS;EACP,MAAM,OAAO,MAAM;EACnB,UAAU;EACX;CACF,EACD,EACE,YAAY,MACb,CACF;AAED,MAAa,mBAAmB,IAAI,OAClC;CACE,YAAY;EACV,MAAM,CAAC,OAAO,MAAM,SAAS;EAC7B,KAAK;EACL,UAAU;EACX;CACD,KAAK;EACH,MAAM;EACN,UAAU;EACX;CACD,OAAO;EACL,MAAM;EACN,SAAS;EACV;CACD,aAAa;EACX,MAAM;EACN,SAAS;EACV;CACD,MAAM;EACJ,MAAM,CAAC,OAAO;EACd,SAAS,EAAE;EACZ;CACD,SAAS;EACP,MAAM;EACN,IAAI;EACJ,UAAU;EACV,SAAS;EACV;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF"}
@@ -56,7 +56,7 @@ const discussionSchema = new Schema({
56
56
  virtuals: true,
57
57
  versionKey: false,
58
58
  transform(_doc, ret) {
59
- const { _id,...rest } = ret;
59
+ const { _id, ...rest } = ret;
60
60
  return {
61
61
  ...rest,
62
62
  id: _id.toString()
@@ -66,7 +66,7 @@ const discussionSchema = new Schema({
66
66
  toObject: {
67
67
  virtuals: true,
68
68
  transform(_doc, ret) {
69
- const { _id,...rest } = ret;
69
+ const { _id, ...rest } = ret;
70
70
  return {
71
71
  ...rest,
72
72
  id: _id
@@ -1 +1 @@
1
- {"version":3,"file":"discussion.schema.mjs","names":[],"sources":["../../../src/schemas/discussion.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type { DiscussionSchema } from '@/types/discussion.types';\n\nexport const discussionSchema = new Schema<DiscussionSchema>(\n {\n discussionId: {\n type: String,\n required: true,\n unique: true,\n },\n messages: [\n {\n role: {\n type: String,\n required: true,\n enum: ['user', 'assistant', 'system'],\n },\n content: {\n type: String,\n required: true,\n },\n timestamp: {\n type: Date,\n default: Date.now,\n },\n relatedFiles: {\n type: [String],\n },\n },\n ],\n userId: {\n type: Schema.Types.ObjectId,\n ref: 'user',\n required: true,\n },\n projectId: {\n type: Schema.Types.ObjectId,\n ref: 'project',\n required: true,\n },\n organizationId: {\n type: Schema.Types.ObjectId,\n ref: 'organization',\n required: true,\n },\n title: {\n type: String,\n required: false,\n },\n isArchived: {\n type: Boolean,\n default: false,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,IAAI,OAClC;CACE,cAAc;EACZ,MAAM;EACN,UAAU;EACV,QAAQ;EACT;CACD,UAAU,CACR;EACE,MAAM;GACJ,MAAM;GACN,UAAU;GACV,MAAM;IAAC;IAAQ;IAAa;IAAS;GACtC;EACD,SAAS;GACP,MAAM;GACN,UAAU;GACX;EACD,WAAW;GACT,MAAM;GACN,SAAS,KAAK;GACf;EACD,cAAc,EACZ,MAAM,CAAC,OAAO,EACf;EACF,CACF;CACD,QAAQ;EACN,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,gBAAgB;EACd,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,OAAO;EACL,MAAM;EACN,UAAU;EACX;CACD,YAAY;EACV,MAAM;EACN,SAAS;EACV;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF"}
1
+ {"version":3,"file":"discussion.schema.mjs","names":[],"sources":["../../../src/schemas/discussion.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type { DiscussionSchema } from '@/types/discussion.types';\n\nexport const discussionSchema = new Schema<DiscussionSchema>(\n {\n discussionId: {\n type: String,\n required: true,\n unique: true,\n },\n messages: [\n {\n role: {\n type: String,\n required: true,\n enum: ['user', 'assistant', 'system'],\n },\n content: {\n type: String,\n required: true,\n },\n timestamp: {\n type: Date,\n default: Date.now,\n },\n relatedFiles: {\n type: [String],\n },\n },\n ],\n userId: {\n type: Schema.Types.ObjectId,\n ref: 'user',\n required: true,\n },\n projectId: {\n type: Schema.Types.ObjectId,\n ref: 'project',\n required: true,\n },\n organizationId: {\n type: Schema.Types.ObjectId,\n ref: 'organization',\n required: true,\n },\n title: {\n type: String,\n required: false,\n },\n isArchived: {\n type: Boolean,\n default: false,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,IAAI,OAClC;CACE,cAAc;EACZ,MAAM;EACN,UAAU;EACV,QAAQ;EACT;CACD,UAAU,CACR;EACE,MAAM;GACJ,MAAM;GACN,UAAU;GACV,MAAM;IAAC;IAAQ;IAAa;IAAS;GACtC;EACD,SAAS;GACP,MAAM;GACN,UAAU;GACX;EACD,WAAW;GACT,MAAM;GACN,SAAS,KAAK;GACf;EACD,cAAc,EACZ,MAAM,CAAC,OAAO,EACf;EACF,CACF;CACD,QAAQ;EACN,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,gBAAgB;EACd,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,OAAO;EACL,MAAM;EACN,UAAU;EACX;CACD,YAAY;EACV,MAAM;EACN,SAAS;EACV;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF"}
@@ -23,7 +23,7 @@ const accessTokenSchema = new Schema({
23
23
  virtuals: true,
24
24
  versionKey: false,
25
25
  transform(_doc, ret) {
26
- const { _id,...rest } = ret;
26
+ const { _id, ...rest } = ret;
27
27
  return {
28
28
  ...rest,
29
29
  id: _id.toString()
@@ -33,7 +33,7 @@ const accessTokenSchema = new Schema({
33
33
  toObject: {
34
34
  virtuals: true,
35
35
  transform(_doc, ret) {
36
- const { _id,...rest } = ret;
36
+ const { _id, ...rest } = ret;
37
37
  return {
38
38
  ...rest,
39
39
  id: _id
@@ -1 +1 @@
1
- {"version":3,"file":"oAuth2.schema.mjs","names":[],"sources":["../../../src/schemas/oAuth2.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type { Client, Token as TokenType } from 'oauth2-server';\nimport type { User } from '@/types/user.types';\n\nexport type Token = Omit<TokenType, 'client' | 'user'> & {\n clientId: Client['id'];\n userId: User['id'];\n};\n\nexport const accessTokenSchema = new Schema<Token>(\n {\n accessToken: {\n type: String,\n required: true,\n },\n accessTokenExpiresAt: {\n type: Date,\n },\n clientId: {\n type: String,\n ref: 'Project',\n required: true,\n },\n userId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n\naccessTokenSchema.index(\n { createdAt: 1 },\n {\n expireAfterSeconds: 60 * 60 * 24 * 10, // 10 Days\n }\n);\n"],"mappings":";;;AASA,MAAa,oBAAoB,IAAI,OACnC;CACE,aAAa;EACX,MAAM;EACN,UAAU;EACX;CACD,sBAAsB,EACpB,MAAM,MACP;CACD,UAAU;EACR,MAAM;EACN,KAAK;EACL,UAAU;EACX;CACD,QAAQ;EACN,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF;AAED,kBAAkB,MAChB,EAAE,WAAW,GAAG,EAChB,EACE,oBAAoB,OAAU,KAAK,IACpC,CACF"}
1
+ {"version":3,"file":"oAuth2.schema.mjs","names":[],"sources":["../../../src/schemas/oAuth2.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type { Client, Token as TokenType } from 'oauth2-server';\nimport type { User } from '@/types/user.types';\n\nexport type Token = Omit<TokenType, 'client' | 'user'> & {\n clientId: Client['id'];\n userId: User['id'];\n};\n\nexport const accessTokenSchema = new Schema<Token>(\n {\n accessToken: {\n type: String,\n required: true,\n },\n accessTokenExpiresAt: {\n type: Date,\n },\n clientId: {\n type: String,\n ref: 'Project',\n required: true,\n },\n userId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n\naccessTokenSchema.index(\n { createdAt: 1 },\n {\n expireAfterSeconds: 60 * 60 * 24 * 10, // 10 Days\n }\n);\n"],"mappings":";;;AASA,MAAa,oBAAoB,IAAI,OACnC;CACE,aAAa;EACX,MAAM;EACN,UAAU;EACX;CACD,sBAAsB,EACpB,MAAM,MACP;CACD,UAAU;EACR,MAAM;EACN,KAAK;EACL,UAAU;EACX;CACD,QAAQ;EACN,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF;AAED,kBAAkB,MAChB,EAAE,WAAW,GAAG,EAChB,EACE,oBAAoB,OAAU,KAAK,IACpC,CACF"}
@@ -34,7 +34,7 @@ const organizationSchema = new Schema({
34
34
  virtuals: true,
35
35
  versionKey: false,
36
36
  transform(_doc, ret) {
37
- const { _id,...rest } = ret;
37
+ const { _id, ...rest } = ret;
38
38
  return {
39
39
  ...rest,
40
40
  id: _id.toString()
@@ -44,7 +44,7 @@ const organizationSchema = new Schema({
44
44
  toObject: {
45
45
  virtuals: true,
46
46
  transform(_doc, ret) {
47
- const { _id,...rest } = ret;
47
+ const { _id, ...rest } = ret;
48
48
  return {
49
49
  ...rest,
50
50
  id: _id
@@ -1 +1 @@
1
- {"version":3,"file":"organization.schema.mjs","names":[],"sources":["../../../src/schemas/organization.schema.ts"],"sourcesContent":["import {\n MEMBERS_MIN_LENGTH,\n NAME_MAX_LENGTH,\n NAME_MIN_LENGTH,\n} from '@utils/validation/validateOrganization';\nimport { Schema } from 'mongoose';\nimport type { OrganizationSchema } from '@/types/organization.types';\nimport { planSchema } from './plans.schema';\n\nexport const organizationSchema = new Schema<OrganizationSchema>(\n {\n name: {\n type: String,\n required: true,\n minlength: NAME_MIN_LENGTH,\n maxlength: NAME_MAX_LENGTH,\n },\n membersIds: {\n type: [Schema.Types.ObjectId],\n ref: 'User',\n required: true,\n minlength: MEMBERS_MIN_LENGTH,\n },\n adminsIds: {\n type: [Schema.Types.ObjectId],\n ref: 'User',\n required: true,\n minlength: MEMBERS_MIN_LENGTH,\n },\n creatorId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n plan: {\n type: planSchema,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n\n// Add virtual field for id\norganizationSchema.virtual('id').get(function () {\n return this._id.toString();\n});\n"],"mappings":";;;;;AASA,MAAa,qBAAqB,IAAI,OACpC;CACE,MAAM;EACJ,MAAM;EACN,UAAU;EACV,WAAW;EACX,WAAW;EACZ;CACD,YAAY;EACV,MAAM,CAAC,OAAO,MAAM,SAAS;EAC7B,KAAK;EACL,UAAU;EACV,WAAW;EACZ;CACD,WAAW;EACT,MAAM,CAAC,OAAO,MAAM,SAAS;EAC7B,KAAK;EACL,UAAU;EACV,WAAW;EACZ;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,MAAM,EACJ,MAAM,YACP;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF;AAGD,mBAAmB,QAAQ,KAAK,CAAC,IAAI,WAAY;AAC/C,QAAO,KAAK,IAAI,UAAU;EAC1B"}
1
+ {"version":3,"file":"organization.schema.mjs","names":[],"sources":["../../../src/schemas/organization.schema.ts"],"sourcesContent":["import {\n MEMBERS_MIN_LENGTH,\n NAME_MAX_LENGTH,\n NAME_MIN_LENGTH,\n} from '@utils/validation/validateOrganization';\nimport { Schema } from 'mongoose';\nimport type { OrganizationSchema } from '@/types/organization.types';\nimport { planSchema } from './plans.schema';\n\nexport const organizationSchema = new Schema<OrganizationSchema>(\n {\n name: {\n type: String,\n required: true,\n minlength: NAME_MIN_LENGTH,\n maxlength: NAME_MAX_LENGTH,\n },\n membersIds: {\n type: [Schema.Types.ObjectId],\n ref: 'User',\n required: true,\n minlength: MEMBERS_MIN_LENGTH,\n },\n adminsIds: {\n type: [Schema.Types.ObjectId],\n ref: 'User',\n required: true,\n minlength: MEMBERS_MIN_LENGTH,\n },\n creatorId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n plan: {\n type: planSchema,\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n\n// Add virtual field for id\norganizationSchema.virtual('id').get(function () {\n return this._id.toString();\n});\n"],"mappings":";;;;;AASA,MAAa,qBAAqB,IAAI,OACpC;CACE,MAAM;EACJ,MAAM;EACN,UAAU;EACV,WAAW;EACX,WAAW;EACZ;CACD,YAAY;EACV,MAAM,CAAC,OAAO,MAAM,SAAS;EAC7B,KAAK;EACL,UAAU;EACV,WAAW;EACZ;CACD,WAAW;EACT,MAAM,CAAC,OAAO,MAAM,SAAS;EAC7B,KAAK;EACL,UAAU;EACV,WAAW;EACZ;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,MAAM,EACJ,MAAM,YACP;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF;AAGD,mBAAmB,QAAQ,KAAK,CAAC,IAAI,WAAY;AAC/C,QAAO,KAAK,IAAI,UAAU;EAC1B"}
@@ -50,7 +50,7 @@ const planSchema = new Schema({
50
50
  virtuals: true,
51
51
  versionKey: false,
52
52
  transform(_doc, ret) {
53
- const { _id,...rest } = ret;
53
+ const { _id, ...rest } = ret;
54
54
  return {
55
55
  ...rest,
56
56
  id: _id.toString()
@@ -60,7 +60,7 @@ const planSchema = new Schema({
60
60
  toObject: {
61
61
  virtuals: true,
62
62
  transform(_doc, ret) {
63
- const { _id,...rest } = ret;
63
+ const { _id, ...rest } = ret;
64
64
  return {
65
65
  ...rest,
66
66
  id: _id
@@ -1 +1 @@
1
- {"version":3,"file":"plans.schema.mjs","names":[],"sources":["../../../src/schemas/plans.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type { PlanSchema } from '@/types/plan.types';\n\nexport const planSchema = new Schema<PlanSchema>(\n {\n type: {\n type: String,\n required: true,\n enum: ['PREMIUM', 'ENTERPRISE'],\n },\n period: {\n type: String,\n required: true,\n enum: ['MONTHLY', 'YEARLY'],\n default: 'MONTHLY',\n },\n creatorId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n subscriptionId: {\n type: String,\n required: true,\n },\n customerId: {\n type: String,\n required: true,\n },\n priceId: {\n type: String,\n required: true,\n },\n status: {\n type: String,\n required: true,\n enum: [\n 'active',\n 'canceled',\n 'past_due',\n 'unpaid',\n 'incomplete',\n 'incomplete_expired',\n 'paused',\n 'trialing',\n ],\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n"],"mappings":";;;AAGA,MAAa,aAAa,IAAI,OAC5B;CACE,MAAM;EACJ,MAAM;EACN,UAAU;EACV,MAAM,CAAC,WAAW,aAAa;EAChC;CACD,QAAQ;EACN,MAAM;EACN,UAAU;EACV,MAAM,CAAC,WAAW,SAAS;EAC3B,SAAS;EACV;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,gBAAgB;EACd,MAAM;EACN,UAAU;EACX;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACX;CACD,SAAS;EACP,MAAM;EACN,UAAU;EACX;CACD,QAAQ;EACN,MAAM;EACN,UAAU;EACV,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACF;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,IAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF"}
1
+ {"version":3,"file":"plans.schema.mjs","names":[],"sources":["../../../src/schemas/plans.schema.ts"],"sourcesContent":["import { Schema } from 'mongoose';\nimport type { PlanSchema } from '@/types/plan.types';\n\nexport const planSchema = new Schema<PlanSchema>(\n {\n type: {\n type: String,\n required: true,\n enum: ['PREMIUM', 'ENTERPRISE'],\n },\n period: {\n type: String,\n required: true,\n enum: ['MONTHLY', 'YEARLY'],\n default: 'MONTHLY',\n },\n creatorId: {\n type: Schema.Types.ObjectId,\n ref: 'User',\n required: true,\n },\n subscriptionId: {\n type: String,\n required: true,\n },\n customerId: {\n type: String,\n required: true,\n },\n priceId: {\n type: String,\n required: true,\n },\n status: {\n type: String,\n required: true,\n enum: [\n 'active',\n 'canceled',\n 'past_due',\n 'unpaid',\n 'incomplete',\n 'incomplete_expired',\n 'paused',\n 'trialing',\n ],\n },\n },\n {\n timestamps: true,\n\n toJSON: {\n virtuals: true, // keep the automatic `id` getter\n versionKey: false, // drop __v\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id.toString(),\n };\n },\n },\n toObject: {\n virtuals: true,\n transform(_doc, ret: any) {\n const { _id, ...rest } = ret;\n return {\n ...rest,\n id: _id,\n };\n },\n },\n }\n);\n"],"mappings":";;;AAGA,MAAa,aAAa,IAAI,OAC5B;CACE,MAAM;EACJ,MAAM;EACN,UAAU;EACV,MAAM,CAAC,WAAW,aAAa;EAChC;CACD,QAAQ;EACN,MAAM;EACN,UAAU;EACV,MAAM,CAAC,WAAW,SAAS;EAC3B,SAAS;EACV;CACD,WAAW;EACT,MAAM,OAAO,MAAM;EACnB,KAAK;EACL,UAAU;EACX;CACD,gBAAgB;EACd,MAAM;EACN,UAAU;EACX;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACX;CACD,SAAS;EACP,MAAM;EACN,UAAU;EACX;CACD,QAAQ;EACN,MAAM;EACN,UAAU;EACV,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACF;CACF,EACD;CACE,YAAY;CAEZ,QAAQ;EACN,UAAU;EACV,YAAY;EACZ,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI,IAAI,UAAU;IACnB;;EAEJ;CACD,UAAU;EACR,UAAU;EACV,UAAU,MAAM,KAAU;GACxB,MAAM,EAAE,KAAK,GAAG,SAAS;AACzB,UAAO;IACL,GAAG;IACH,IAAI;IACL;;EAEJ;CACF,CACF"}