pppakot 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1554) hide show
  1. package/backend/.env +1 -0
  2. package/backend/index.js +29 -0
  3. package/backend/models/feed.js +37 -0
  4. package/backend/node_modules/.package-lock.json +1103 -0
  5. package/backend/node_modules/@mongodb-js/saslprep/LICENSE +22 -0
  6. package/backend/node_modules/@mongodb-js/saslprep/dist/.esm-wrapper.mjs +4 -0
  7. package/backend/node_modules/@mongodb-js/saslprep/dist/browser.d.ts +5 -0
  8. package/backend/node_modules/@mongodb-js/saslprep/dist/browser.d.ts.map +1 -0
  9. package/backend/node_modules/@mongodb-js/saslprep/dist/browser.js +12 -0
  10. package/backend/node_modules/@mongodb-js/saslprep/dist/browser.js.map +1 -0
  11. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.d.ts +3 -0
  12. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.d.ts.map +1 -0
  13. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.js +5 -0
  14. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.js.map +1 -0
  15. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data.d.ts +3 -0
  16. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data.d.ts.map +1 -0
  17. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data.js +5 -0
  18. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-data.js.map +1 -0
  19. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-src.d.ts +7 -0
  20. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-src.d.ts.map +1 -0
  21. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-src.js +881 -0
  22. package/backend/node_modules/@mongodb-js/saslprep/dist/code-points-src.js.map +1 -0
  23. package/backend/node_modules/@mongodb-js/saslprep/dist/generate-code-points.d.ts +2 -0
  24. package/backend/node_modules/@mongodb-js/saslprep/dist/generate-code-points.d.ts.map +1 -0
  25. package/backend/node_modules/@mongodb-js/saslprep/dist/generate-code-points.js +83 -0
  26. package/backend/node_modules/@mongodb-js/saslprep/dist/generate-code-points.js.map +1 -0
  27. package/backend/node_modules/@mongodb-js/saslprep/dist/index.d.ts +11 -0
  28. package/backend/node_modules/@mongodb-js/saslprep/dist/index.d.ts.map +1 -0
  29. package/backend/node_modules/@mongodb-js/saslprep/dist/index.js +65 -0
  30. package/backend/node_modules/@mongodb-js/saslprep/dist/index.js.map +1 -0
  31. package/backend/node_modules/@mongodb-js/saslprep/dist/memory-code-points.d.ts +10 -0
  32. package/backend/node_modules/@mongodb-js/saslprep/dist/memory-code-points.d.ts.map +1 -0
  33. package/backend/node_modules/@mongodb-js/saslprep/dist/memory-code-points.js +32 -0
  34. package/backend/node_modules/@mongodb-js/saslprep/dist/memory-code-points.js.map +1 -0
  35. package/backend/node_modules/@mongodb-js/saslprep/dist/node.d.ts +10 -0
  36. package/backend/node_modules/@mongodb-js/saslprep/dist/node.d.ts.map +1 -0
  37. package/backend/node_modules/@mongodb-js/saslprep/dist/node.js +15 -0
  38. package/backend/node_modules/@mongodb-js/saslprep/dist/node.js.map +1 -0
  39. package/backend/node_modules/@mongodb-js/saslprep/dist/util.d.ts +2 -0
  40. package/backend/node_modules/@mongodb-js/saslprep/dist/util.d.ts.map +1 -0
  41. package/backend/node_modules/@mongodb-js/saslprep/dist/util.js +11 -0
  42. package/backend/node_modules/@mongodb-js/saslprep/dist/util.js.map +1 -0
  43. package/backend/node_modules/@mongodb-js/saslprep/package.json +87 -0
  44. package/backend/node_modules/@mongodb-js/saslprep/readme.md +29 -0
  45. package/backend/node_modules/@standard-schema/spec/LICENSE +21 -0
  46. package/backend/node_modules/@standard-schema/spec/README.md +198 -0
  47. package/backend/node_modules/@standard-schema/spec/dist/index.cjs +18 -0
  48. package/backend/node_modules/@standard-schema/spec/dist/index.d.cts +119 -0
  49. package/backend/node_modules/@standard-schema/spec/dist/index.d.ts +119 -0
  50. package/backend/node_modules/@standard-schema/spec/dist/index.js +0 -0
  51. package/backend/node_modules/@standard-schema/spec/package.json +52 -0
  52. package/backend/node_modules/@types/webidl-conversions/LICENSE +21 -0
  53. package/backend/node_modules/@types/webidl-conversions/README.md +15 -0
  54. package/backend/node_modules/@types/webidl-conversions/index.d.ts +91 -0
  55. package/backend/node_modules/@types/webidl-conversions/package.json +30 -0
  56. package/backend/node_modules/@types/whatwg-url/LICENSE +21 -0
  57. package/backend/node_modules/@types/whatwg-url/README.md +15 -0
  58. package/backend/node_modules/@types/whatwg-url/index.d.ts +172 -0
  59. package/backend/node_modules/@types/whatwg-url/lib/URL-impl.d.ts +22 -0
  60. package/backend/node_modules/@types/whatwg-url/lib/URL.d.ts +66 -0
  61. package/backend/node_modules/@types/whatwg-url/lib/URLSearchParams-impl.d.ts +20 -0
  62. package/backend/node_modules/@types/whatwg-url/lib/URLSearchParams.d.ts +92 -0
  63. package/backend/node_modules/@types/whatwg-url/package.json +38 -0
  64. package/backend/node_modules/@types/whatwg-url/webidl2js-wrapper.d.ts +4 -0
  65. package/backend/node_modules/accepts/HISTORY.md +250 -0
  66. package/backend/node_modules/accepts/LICENSE +23 -0
  67. package/backend/node_modules/accepts/README.md +140 -0
  68. package/backend/node_modules/accepts/index.js +238 -0
  69. package/backend/node_modules/accepts/package.json +47 -0
  70. package/backend/node_modules/body-parser/LICENSE +23 -0
  71. package/backend/node_modules/body-parser/README.md +509 -0
  72. package/backend/node_modules/body-parser/index.js +55 -0
  73. package/backend/node_modules/body-parser/lib/read.js +247 -0
  74. package/backend/node_modules/body-parser/lib/types/json.js +186 -0
  75. package/backend/node_modules/body-parser/lib/types/raw.js +42 -0
  76. package/backend/node_modules/body-parser/lib/types/text.js +36 -0
  77. package/backend/node_modules/body-parser/lib/types/urlencoded.js +138 -0
  78. package/backend/node_modules/body-parser/lib/utils.js +100 -0
  79. package/backend/node_modules/body-parser/node_modules/content-type/LICENSE +22 -0
  80. package/backend/node_modules/body-parser/node_modules/content-type/README.md +69 -0
  81. package/backend/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +26 -0
  82. package/backend/node_modules/body-parser/node_modules/content-type/dist/index.js +170 -0
  83. package/backend/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -0
  84. package/backend/node_modules/body-parser/node_modules/content-type/package.json +52 -0
  85. package/backend/node_modules/body-parser/package.json +65 -0
  86. package/backend/node_modules/bson/LICENSE.md +201 -0
  87. package/backend/node_modules/bson/README.md +297 -0
  88. package/backend/node_modules/bson/bson.d.ts +1894 -0
  89. package/backend/node_modules/bson/etc/prepare.js +19 -0
  90. package/backend/node_modules/bson/lib/bson.bundle.js +4750 -0
  91. package/backend/node_modules/bson/lib/bson.bundle.js.map +1 -0
  92. package/backend/node_modules/bson/lib/bson.cjs +4745 -0
  93. package/backend/node_modules/bson/lib/bson.cjs.map +1 -0
  94. package/backend/node_modules/bson/lib/bson.mjs +4712 -0
  95. package/backend/node_modules/bson/lib/bson.mjs.map +1 -0
  96. package/backend/node_modules/bson/lib/bson.node.mjs +4712 -0
  97. package/backend/node_modules/bson/lib/bson.node.mjs.map +1 -0
  98. package/backend/node_modules/bson/lib/bson.rn.cjs +4753 -0
  99. package/backend/node_modules/bson/lib/bson.rn.cjs.map +1 -0
  100. package/backend/node_modules/bson/package.json +118 -0
  101. package/backend/node_modules/bson/src/binary.ts +751 -0
  102. package/backend/node_modules/bson/src/bson.ts +253 -0
  103. package/backend/node_modules/bson/src/bson_value.ts +55 -0
  104. package/backend/node_modules/bson/src/code.ts +69 -0
  105. package/backend/node_modules/bson/src/constants.ts +147 -0
  106. package/backend/node_modules/bson/src/db_ref.ts +128 -0
  107. package/backend/node_modules/bson/src/decimal128.ts +855 -0
  108. package/backend/node_modules/bson/src/double.ts +115 -0
  109. package/backend/node_modules/bson/src/error.ts +105 -0
  110. package/backend/node_modules/bson/src/extended_json.ts +554 -0
  111. package/backend/node_modules/bson/src/index.ts +19 -0
  112. package/backend/node_modules/bson/src/int_32.ts +101 -0
  113. package/backend/node_modules/bson/src/long.ts +1240 -0
  114. package/backend/node_modules/bson/src/max_key.ts +31 -0
  115. package/backend/node_modules/bson/src/min_key.ts +31 -0
  116. package/backend/node_modules/bson/src/objectid.ts +396 -0
  117. package/backend/node_modules/bson/src/parse_utf8.ts +35 -0
  118. package/backend/node_modules/bson/src/parser/calculate_size.ts +225 -0
  119. package/backend/node_modules/bson/src/parser/deserializer.ts +793 -0
  120. package/backend/node_modules/bson/src/parser/on_demand/index.ts +32 -0
  121. package/backend/node_modules/bson/src/parser/on_demand/parse_to_elements.ts +190 -0
  122. package/backend/node_modules/bson/src/parser/serializer.ts +748 -0
  123. package/backend/node_modules/bson/src/parser/utils.ts +69 -0
  124. package/backend/node_modules/bson/src/regexp.ts +114 -0
  125. package/backend/node_modules/bson/src/symbol.ts +55 -0
  126. package/backend/node_modules/bson/src/timestamp.ts +330 -0
  127. package/backend/node_modules/bson/src/utils/byte_utils.ts +80 -0
  128. package/backend/node_modules/bson/src/utils/latin.ts +104 -0
  129. package/backend/node_modules/bson/src/utils/node_byte_utils.ts +193 -0
  130. package/backend/node_modules/bson/src/utils/number_utils.ts +204 -0
  131. package/backend/node_modules/bson/src/utils/string_utils.ts +44 -0
  132. package/backend/node_modules/bson/src/utils/web_byte_utils.ts +304 -0
  133. package/backend/node_modules/bytes/History.md +97 -0
  134. package/backend/node_modules/bytes/LICENSE +23 -0
  135. package/backend/node_modules/bytes/Readme.md +152 -0
  136. package/backend/node_modules/bytes/index.js +170 -0
  137. package/backend/node_modules/bytes/package.json +42 -0
  138. package/backend/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  139. package/backend/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  140. package/backend/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  141. package/backend/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  142. package/backend/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  143. package/backend/node_modules/call-bind-apply-helpers/README.md +62 -0
  144. package/backend/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  145. package/backend/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  146. package/backend/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  147. package/backend/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  148. package/backend/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  149. package/backend/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  150. package/backend/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  151. package/backend/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  152. package/backend/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  153. package/backend/node_modules/call-bind-apply-helpers/index.js +15 -0
  154. package/backend/node_modules/call-bind-apply-helpers/package.json +85 -0
  155. package/backend/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  156. package/backend/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  157. package/backend/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  158. package/backend/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  159. package/backend/node_modules/call-bound/.eslintrc +13 -0
  160. package/backend/node_modules/call-bound/.github/FUNDING.yml +12 -0
  161. package/backend/node_modules/call-bound/.nycrc +9 -0
  162. package/backend/node_modules/call-bound/CHANGELOG.md +42 -0
  163. package/backend/node_modules/call-bound/LICENSE +21 -0
  164. package/backend/node_modules/call-bound/README.md +53 -0
  165. package/backend/node_modules/call-bound/index.d.ts +94 -0
  166. package/backend/node_modules/call-bound/index.js +19 -0
  167. package/backend/node_modules/call-bound/package.json +99 -0
  168. package/backend/node_modules/call-bound/test/index.js +61 -0
  169. package/backend/node_modules/call-bound/tsconfig.json +10 -0
  170. package/backend/node_modules/content-disposition/LICENSE +22 -0
  171. package/backend/node_modules/content-disposition/README.md +141 -0
  172. package/backend/node_modules/content-disposition/index.js +536 -0
  173. package/backend/node_modules/content-disposition/package.json +40 -0
  174. package/backend/node_modules/content-type/HISTORY.md +29 -0
  175. package/backend/node_modules/content-type/LICENSE +22 -0
  176. package/backend/node_modules/content-type/README.md +94 -0
  177. package/backend/node_modules/content-type/index.js +225 -0
  178. package/backend/node_modules/content-type/package.json +42 -0
  179. package/backend/node_modules/cookie/LICENSE +24 -0
  180. package/backend/node_modules/cookie/README.md +317 -0
  181. package/backend/node_modules/cookie/SECURITY.md +25 -0
  182. package/backend/node_modules/cookie/index.js +335 -0
  183. package/backend/node_modules/cookie/package.json +44 -0
  184. package/backend/node_modules/cookie-signature/History.md +70 -0
  185. package/backend/node_modules/cookie-signature/LICENSE +22 -0
  186. package/backend/node_modules/cookie-signature/Readme.md +23 -0
  187. package/backend/node_modules/cookie-signature/index.js +47 -0
  188. package/backend/node_modules/cookie-signature/package.json +24 -0
  189. package/backend/node_modules/cors/LICENSE +22 -0
  190. package/backend/node_modules/cors/README.md +277 -0
  191. package/backend/node_modules/cors/lib/index.js +238 -0
  192. package/backend/node_modules/cors/package.json +42 -0
  193. package/backend/node_modules/debug/LICENSE +20 -0
  194. package/backend/node_modules/debug/README.md +481 -0
  195. package/backend/node_modules/debug/package.json +64 -0
  196. package/backend/node_modules/debug/src/browser.js +272 -0
  197. package/backend/node_modules/debug/src/common.js +292 -0
  198. package/backend/node_modules/debug/src/index.js +10 -0
  199. package/backend/node_modules/debug/src/node.js +263 -0
  200. package/backend/node_modules/depd/History.md +103 -0
  201. package/backend/node_modules/depd/LICENSE +22 -0
  202. package/backend/node_modules/depd/Readme.md +280 -0
  203. package/backend/node_modules/depd/index.js +538 -0
  204. package/backend/node_modules/depd/lib/browser/index.js +77 -0
  205. package/backend/node_modules/depd/package.json +45 -0
  206. package/backend/node_modules/dotenv/CHANGELOG.md +643 -0
  207. package/backend/node_modules/dotenv/LICENSE +23 -0
  208. package/backend/node_modules/dotenv/README-es.md +757 -0
  209. package/backend/node_modules/dotenv/README.md +812 -0
  210. package/backend/node_modules/dotenv/SECURITY.md +1 -0
  211. package/backend/node_modules/dotenv/config.d.ts +1 -0
  212. package/backend/node_modules/dotenv/config.js +9 -0
  213. package/backend/node_modules/dotenv/lib/cli-options.js +17 -0
  214. package/backend/node_modules/dotenv/lib/env-options.js +28 -0
  215. package/backend/node_modules/dotenv/lib/main.d.ts +179 -0
  216. package/backend/node_modules/dotenv/lib/main.js +423 -0
  217. package/backend/node_modules/dotenv/package.json +62 -0
  218. package/backend/node_modules/dotenv/skills/dotenv/SKILL.md +200 -0
  219. package/backend/node_modules/dotenv/skills/dotenvx/SKILL.md +118 -0
  220. package/backend/node_modules/dunder-proto/.eslintrc +5 -0
  221. package/backend/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  222. package/backend/node_modules/dunder-proto/.nycrc +13 -0
  223. package/backend/node_modules/dunder-proto/CHANGELOG.md +24 -0
  224. package/backend/node_modules/dunder-proto/LICENSE +21 -0
  225. package/backend/node_modules/dunder-proto/README.md +54 -0
  226. package/backend/node_modules/dunder-proto/get.d.ts +5 -0
  227. package/backend/node_modules/dunder-proto/get.js +30 -0
  228. package/backend/node_modules/dunder-proto/package.json +76 -0
  229. package/backend/node_modules/dunder-proto/set.d.ts +5 -0
  230. package/backend/node_modules/dunder-proto/set.js +35 -0
  231. package/backend/node_modules/dunder-proto/test/get.js +34 -0
  232. package/backend/node_modules/dunder-proto/test/index.js +4 -0
  233. package/backend/node_modules/dunder-proto/test/set.js +50 -0
  234. package/backend/node_modules/dunder-proto/tsconfig.json +9 -0
  235. package/backend/node_modules/ee-first/LICENSE +22 -0
  236. package/backend/node_modules/ee-first/README.md +80 -0
  237. package/backend/node_modules/ee-first/index.js +95 -0
  238. package/backend/node_modules/ee-first/package.json +29 -0
  239. package/backend/node_modules/encodeurl/LICENSE +22 -0
  240. package/backend/node_modules/encodeurl/README.md +109 -0
  241. package/backend/node_modules/encodeurl/index.js +60 -0
  242. package/backend/node_modules/encodeurl/package.json +40 -0
  243. package/backend/node_modules/es-define-property/.eslintrc +13 -0
  244. package/backend/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  245. package/backend/node_modules/es-define-property/.nycrc +9 -0
  246. package/backend/node_modules/es-define-property/CHANGELOG.md +29 -0
  247. package/backend/node_modules/es-define-property/LICENSE +21 -0
  248. package/backend/node_modules/es-define-property/README.md +49 -0
  249. package/backend/node_modules/es-define-property/index.d.ts +3 -0
  250. package/backend/node_modules/es-define-property/index.js +14 -0
  251. package/backend/node_modules/es-define-property/package.json +81 -0
  252. package/backend/node_modules/es-define-property/test/index.js +56 -0
  253. package/backend/node_modules/es-define-property/tsconfig.json +10 -0
  254. package/backend/node_modules/es-errors/.eslintrc +5 -0
  255. package/backend/node_modules/es-errors/.github/FUNDING.yml +12 -0
  256. package/backend/node_modules/es-errors/CHANGELOG.md +40 -0
  257. package/backend/node_modules/es-errors/LICENSE +21 -0
  258. package/backend/node_modules/es-errors/README.md +55 -0
  259. package/backend/node_modules/es-errors/eval.d.ts +3 -0
  260. package/backend/node_modules/es-errors/eval.js +4 -0
  261. package/backend/node_modules/es-errors/index.d.ts +3 -0
  262. package/backend/node_modules/es-errors/index.js +4 -0
  263. package/backend/node_modules/es-errors/package.json +80 -0
  264. package/backend/node_modules/es-errors/range.d.ts +3 -0
  265. package/backend/node_modules/es-errors/range.js +4 -0
  266. package/backend/node_modules/es-errors/ref.d.ts +3 -0
  267. package/backend/node_modules/es-errors/ref.js +4 -0
  268. package/backend/node_modules/es-errors/syntax.d.ts +3 -0
  269. package/backend/node_modules/es-errors/syntax.js +4 -0
  270. package/backend/node_modules/es-errors/test/index.js +19 -0
  271. package/backend/node_modules/es-errors/tsconfig.json +49 -0
  272. package/backend/node_modules/es-errors/type.d.ts +3 -0
  273. package/backend/node_modules/es-errors/type.js +4 -0
  274. package/backend/node_modules/es-errors/uri.d.ts +3 -0
  275. package/backend/node_modules/es-errors/uri.js +4 -0
  276. package/backend/node_modules/es-object-atoms/.eslintrc +16 -0
  277. package/backend/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  278. package/backend/node_modules/es-object-atoms/CHANGELOG.md +44 -0
  279. package/backend/node_modules/es-object-atoms/LICENSE +21 -0
  280. package/backend/node_modules/es-object-atoms/README.md +63 -0
  281. package/backend/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  282. package/backend/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  283. package/backend/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  284. package/backend/node_modules/es-object-atoms/ToObject.js +10 -0
  285. package/backend/node_modules/es-object-atoms/index.d.ts +3 -0
  286. package/backend/node_modules/es-object-atoms/index.js +4 -0
  287. package/backend/node_modules/es-object-atoms/isObject.d.ts +3 -0
  288. package/backend/node_modules/es-object-atoms/isObject.js +6 -0
  289. package/backend/node_modules/es-object-atoms/package.json +79 -0
  290. package/backend/node_modules/es-object-atoms/test/index.js +38 -0
  291. package/backend/node_modules/es-object-atoms/tsconfig.json +7 -0
  292. package/backend/node_modules/escape-html/LICENSE +24 -0
  293. package/backend/node_modules/escape-html/Readme.md +43 -0
  294. package/backend/node_modules/escape-html/index.js +78 -0
  295. package/backend/node_modules/escape-html/package.json +24 -0
  296. package/backend/node_modules/etag/HISTORY.md +83 -0
  297. package/backend/node_modules/etag/LICENSE +22 -0
  298. package/backend/node_modules/etag/README.md +159 -0
  299. package/backend/node_modules/etag/index.js +131 -0
  300. package/backend/node_modules/etag/package.json +47 -0
  301. package/backend/node_modules/express/LICENSE +24 -0
  302. package/backend/node_modules/express/Readme.md +276 -0
  303. package/backend/node_modules/express/index.js +11 -0
  304. package/backend/node_modules/express/lib/application.js +631 -0
  305. package/backend/node_modules/express/lib/express.js +81 -0
  306. package/backend/node_modules/express/lib/request.js +514 -0
  307. package/backend/node_modules/express/lib/response.js +1053 -0
  308. package/backend/node_modules/express/lib/utils.js +271 -0
  309. package/backend/node_modules/express/lib/view.js +205 -0
  310. package/backend/node_modules/express/package.json +99 -0
  311. package/backend/node_modules/finalhandler/HISTORY.md +239 -0
  312. package/backend/node_modules/finalhandler/LICENSE +22 -0
  313. package/backend/node_modules/finalhandler/README.md +150 -0
  314. package/backend/node_modules/finalhandler/index.js +293 -0
  315. package/backend/node_modules/finalhandler/package.json +47 -0
  316. package/backend/node_modules/forwarded/HISTORY.md +21 -0
  317. package/backend/node_modules/forwarded/LICENSE +22 -0
  318. package/backend/node_modules/forwarded/README.md +57 -0
  319. package/backend/node_modules/forwarded/index.js +90 -0
  320. package/backend/node_modules/forwarded/package.json +45 -0
  321. package/backend/node_modules/fresh/HISTORY.md +80 -0
  322. package/backend/node_modules/fresh/LICENSE +23 -0
  323. package/backend/node_modules/fresh/README.md +117 -0
  324. package/backend/node_modules/fresh/index.js +136 -0
  325. package/backend/node_modules/fresh/package.json +46 -0
  326. package/backend/node_modules/function-bind/.eslintrc +21 -0
  327. package/backend/node_modules/function-bind/.github/FUNDING.yml +12 -0
  328. package/backend/node_modules/function-bind/.github/SECURITY.md +3 -0
  329. package/backend/node_modules/function-bind/.nycrc +13 -0
  330. package/backend/node_modules/function-bind/CHANGELOG.md +136 -0
  331. package/backend/node_modules/function-bind/LICENSE +20 -0
  332. package/backend/node_modules/function-bind/README.md +46 -0
  333. package/backend/node_modules/function-bind/implementation.js +84 -0
  334. package/backend/node_modules/function-bind/index.js +5 -0
  335. package/backend/node_modules/function-bind/package.json +87 -0
  336. package/backend/node_modules/function-bind/test/.eslintrc +9 -0
  337. package/backend/node_modules/function-bind/test/index.js +252 -0
  338. package/backend/node_modules/get-intrinsic/.eslintrc +42 -0
  339. package/backend/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  340. package/backend/node_modules/get-intrinsic/.nycrc +9 -0
  341. package/backend/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  342. package/backend/node_modules/get-intrinsic/LICENSE +21 -0
  343. package/backend/node_modules/get-intrinsic/README.md +71 -0
  344. package/backend/node_modules/get-intrinsic/index.js +378 -0
  345. package/backend/node_modules/get-intrinsic/package.json +97 -0
  346. package/backend/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  347. package/backend/node_modules/get-proto/.eslintrc +10 -0
  348. package/backend/node_modules/get-proto/.github/FUNDING.yml +12 -0
  349. package/backend/node_modules/get-proto/.nycrc +9 -0
  350. package/backend/node_modules/get-proto/CHANGELOG.md +21 -0
  351. package/backend/node_modules/get-proto/LICENSE +21 -0
  352. package/backend/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  353. package/backend/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  354. package/backend/node_modules/get-proto/README.md +50 -0
  355. package/backend/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  356. package/backend/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  357. package/backend/node_modules/get-proto/index.d.ts +5 -0
  358. package/backend/node_modules/get-proto/index.js +27 -0
  359. package/backend/node_modules/get-proto/package.json +81 -0
  360. package/backend/node_modules/get-proto/test/index.js +68 -0
  361. package/backend/node_modules/get-proto/tsconfig.json +9 -0
  362. package/backend/node_modules/gopd/.eslintrc +16 -0
  363. package/backend/node_modules/gopd/.github/FUNDING.yml +12 -0
  364. package/backend/node_modules/gopd/CHANGELOG.md +45 -0
  365. package/backend/node_modules/gopd/LICENSE +21 -0
  366. package/backend/node_modules/gopd/README.md +40 -0
  367. package/backend/node_modules/gopd/gOPD.d.ts +1 -0
  368. package/backend/node_modules/gopd/gOPD.js +4 -0
  369. package/backend/node_modules/gopd/index.d.ts +5 -0
  370. package/backend/node_modules/gopd/index.js +15 -0
  371. package/backend/node_modules/gopd/package.json +77 -0
  372. package/backend/node_modules/gopd/test/index.js +36 -0
  373. package/backend/node_modules/gopd/tsconfig.json +9 -0
  374. package/backend/node_modules/has-symbols/.eslintrc +11 -0
  375. package/backend/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  376. package/backend/node_modules/has-symbols/.nycrc +9 -0
  377. package/backend/node_modules/has-symbols/CHANGELOG.md +91 -0
  378. package/backend/node_modules/has-symbols/LICENSE +21 -0
  379. package/backend/node_modules/has-symbols/README.md +46 -0
  380. package/backend/node_modules/has-symbols/index.d.ts +3 -0
  381. package/backend/node_modules/has-symbols/index.js +14 -0
  382. package/backend/node_modules/has-symbols/package.json +111 -0
  383. package/backend/node_modules/has-symbols/shams.d.ts +3 -0
  384. package/backend/node_modules/has-symbols/shams.js +45 -0
  385. package/backend/node_modules/has-symbols/test/index.js +22 -0
  386. package/backend/node_modules/has-symbols/test/shams/core-js.js +29 -0
  387. package/backend/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  388. package/backend/node_modules/has-symbols/test/tests.js +58 -0
  389. package/backend/node_modules/has-symbols/tsconfig.json +10 -0
  390. package/backend/node_modules/hasown/.github/FUNDING.yml +12 -0
  391. package/backend/node_modules/hasown/.nycrc +13 -0
  392. package/backend/node_modules/hasown/CHANGELOG.md +58 -0
  393. package/backend/node_modules/hasown/LICENSE +21 -0
  394. package/backend/node_modules/hasown/README.md +40 -0
  395. package/backend/node_modules/hasown/eslint.config.mjs +6 -0
  396. package/backend/node_modules/hasown/index.d.ts +3 -0
  397. package/backend/node_modules/hasown/index.js +8 -0
  398. package/backend/node_modules/hasown/package.json +91 -0
  399. package/backend/node_modules/hasown/tsconfig.json +6 -0
  400. package/backend/node_modules/http-errors/HISTORY.md +186 -0
  401. package/backend/node_modules/http-errors/LICENSE +23 -0
  402. package/backend/node_modules/http-errors/README.md +169 -0
  403. package/backend/node_modules/http-errors/index.js +290 -0
  404. package/backend/node_modules/http-errors/package.json +54 -0
  405. package/backend/node_modules/iconv-lite/LICENSE +21 -0
  406. package/backend/node_modules/iconv-lite/README.md +138 -0
  407. package/backend/node_modules/iconv-lite/encodings/dbcs-codec.js +532 -0
  408. package/backend/node_modules/iconv-lite/encodings/dbcs-data.js +185 -0
  409. package/backend/node_modules/iconv-lite/encodings/index.js +23 -0
  410. package/backend/node_modules/iconv-lite/encodings/internal.js +218 -0
  411. package/backend/node_modules/iconv-lite/encodings/sbcs-codec.js +75 -0
  412. package/backend/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  413. package/backend/node_modules/iconv-lite/encodings/sbcs-data.js +180 -0
  414. package/backend/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  415. package/backend/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  416. package/backend/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  417. package/backend/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  418. package/backend/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  419. package/backend/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  420. package/backend/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
  421. package/backend/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  422. package/backend/node_modules/iconv-lite/encodings/utf16.js +187 -0
  423. package/backend/node_modules/iconv-lite/encodings/utf32.js +314 -0
  424. package/backend/node_modules/iconv-lite/encodings/utf7.js +283 -0
  425. package/backend/node_modules/iconv-lite/lib/bom-handling.js +48 -0
  426. package/backend/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
  427. package/backend/node_modules/iconv-lite/lib/index.d.ts +129 -0
  428. package/backend/node_modules/iconv-lite/lib/index.js +182 -0
  429. package/backend/node_modules/iconv-lite/lib/streams.js +105 -0
  430. package/backend/node_modules/iconv-lite/package.json +70 -0
  431. package/backend/node_modules/iconv-lite/types/encodings.d.ts +425 -0
  432. package/backend/node_modules/inherits/LICENSE +16 -0
  433. package/backend/node_modules/inherits/README.md +42 -0
  434. package/backend/node_modules/inherits/inherits.js +9 -0
  435. package/backend/node_modules/inherits/inherits_browser.js +27 -0
  436. package/backend/node_modules/inherits/package.json +29 -0
  437. package/backend/node_modules/ipaddr.js/LICENSE +19 -0
  438. package/backend/node_modules/ipaddr.js/README.md +233 -0
  439. package/backend/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  440. package/backend/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  441. package/backend/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  442. package/backend/node_modules/ipaddr.js/package.json +35 -0
  443. package/backend/node_modules/is-promise/LICENSE +19 -0
  444. package/backend/node_modules/is-promise/index.d.ts +2 -0
  445. package/backend/node_modules/is-promise/index.js +6 -0
  446. package/backend/node_modules/is-promise/index.mjs +3 -0
  447. package/backend/node_modules/is-promise/package.json +30 -0
  448. package/backend/node_modules/is-promise/readme.md +33 -0
  449. package/backend/node_modules/kareem/CHANGELOG.md +845 -0
  450. package/backend/node_modules/kareem/LICENSE +202 -0
  451. package/backend/node_modules/kareem/README.md +385 -0
  452. package/backend/node_modules/kareem/SECURITY.md +5 -0
  453. package/backend/node_modules/kareem/index.d.ts +31 -0
  454. package/backend/node_modules/kareem/index.js +553 -0
  455. package/backend/node_modules/kareem/package.json +28 -0
  456. package/backend/node_modules/math-intrinsics/.eslintrc +16 -0
  457. package/backend/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  458. package/backend/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  459. package/backend/node_modules/math-intrinsics/LICENSE +21 -0
  460. package/backend/node_modules/math-intrinsics/README.md +50 -0
  461. package/backend/node_modules/math-intrinsics/abs.d.ts +1 -0
  462. package/backend/node_modules/math-intrinsics/abs.js +4 -0
  463. package/backend/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  464. package/backend/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  465. package/backend/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  466. package/backend/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  467. package/backend/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  468. package/backend/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  469. package/backend/node_modules/math-intrinsics/floor.d.ts +1 -0
  470. package/backend/node_modules/math-intrinsics/floor.js +4 -0
  471. package/backend/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  472. package/backend/node_modules/math-intrinsics/isFinite.js +12 -0
  473. package/backend/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  474. package/backend/node_modules/math-intrinsics/isInteger.js +16 -0
  475. package/backend/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  476. package/backend/node_modules/math-intrinsics/isNaN.js +6 -0
  477. package/backend/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  478. package/backend/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  479. package/backend/node_modules/math-intrinsics/max.d.ts +1 -0
  480. package/backend/node_modules/math-intrinsics/max.js +4 -0
  481. package/backend/node_modules/math-intrinsics/min.d.ts +1 -0
  482. package/backend/node_modules/math-intrinsics/min.js +4 -0
  483. package/backend/node_modules/math-intrinsics/mod.d.ts +3 -0
  484. package/backend/node_modules/math-intrinsics/mod.js +9 -0
  485. package/backend/node_modules/math-intrinsics/package.json +86 -0
  486. package/backend/node_modules/math-intrinsics/pow.d.ts +1 -0
  487. package/backend/node_modules/math-intrinsics/pow.js +4 -0
  488. package/backend/node_modules/math-intrinsics/round.d.ts +1 -0
  489. package/backend/node_modules/math-intrinsics/round.js +4 -0
  490. package/backend/node_modules/math-intrinsics/sign.d.ts +3 -0
  491. package/backend/node_modules/math-intrinsics/sign.js +11 -0
  492. package/backend/node_modules/math-intrinsics/test/index.js +192 -0
  493. package/backend/node_modules/math-intrinsics/tsconfig.json +3 -0
  494. package/backend/node_modules/media-typer/HISTORY.md +50 -0
  495. package/backend/node_modules/media-typer/LICENSE +22 -0
  496. package/backend/node_modules/media-typer/README.md +93 -0
  497. package/backend/node_modules/media-typer/index.js +143 -0
  498. package/backend/node_modules/media-typer/package.json +33 -0
  499. package/backend/node_modules/memory-pager/.travis.yml +4 -0
  500. package/backend/node_modules/memory-pager/LICENSE +21 -0
  501. package/backend/node_modules/memory-pager/README.md +65 -0
  502. package/backend/node_modules/memory-pager/index.js +160 -0
  503. package/backend/node_modules/memory-pager/package.json +24 -0
  504. package/backend/node_modules/memory-pager/test.js +80 -0
  505. package/backend/node_modules/merge-descriptors/index.d.ts +11 -0
  506. package/backend/node_modules/merge-descriptors/index.js +26 -0
  507. package/backend/node_modules/merge-descriptors/license +11 -0
  508. package/backend/node_modules/merge-descriptors/package.json +50 -0
  509. package/backend/node_modules/merge-descriptors/readme.md +55 -0
  510. package/backend/node_modules/mime-db/HISTORY.md +541 -0
  511. package/backend/node_modules/mime-db/LICENSE +23 -0
  512. package/backend/node_modules/mime-db/README.md +109 -0
  513. package/backend/node_modules/mime-db/db.json +9342 -0
  514. package/backend/node_modules/mime-db/index.js +12 -0
  515. package/backend/node_modules/mime-db/package.json +56 -0
  516. package/backend/node_modules/mime-types/HISTORY.md +428 -0
  517. package/backend/node_modules/mime-types/LICENSE +23 -0
  518. package/backend/node_modules/mime-types/README.md +126 -0
  519. package/backend/node_modules/mime-types/index.js +211 -0
  520. package/backend/node_modules/mime-types/mimeScore.js +57 -0
  521. package/backend/node_modules/mime-types/package.json +49 -0
  522. package/backend/node_modules/mongodb/LICENSE.md +201 -0
  523. package/backend/node_modules/mongodb/README.md +366 -0
  524. package/backend/node_modules/mongodb/etc/prepare.js +12 -0
  525. package/backend/node_modules/mongodb/lib/admin.js +136 -0
  526. package/backend/node_modules/mongodb/lib/admin.js.map +1 -0
  527. package/backend/node_modules/mongodb/lib/bson.js +106 -0
  528. package/backend/node_modules/mongodb/lib/bson.js.map +1 -0
  529. package/backend/node_modules/mongodb/lib/bulk/common.js +835 -0
  530. package/backend/node_modules/mongodb/lib/bulk/common.js.map +1 -0
  531. package/backend/node_modules/mongodb/lib/bulk/ordered.js +67 -0
  532. package/backend/node_modules/mongodb/lib/bulk/ordered.js.map +1 -0
  533. package/backend/node_modules/mongodb/lib/bulk/unordered.js +92 -0
  534. package/backend/node_modules/mongodb/lib/bulk/unordered.js.map +1 -0
  535. package/backend/node_modules/mongodb/lib/change_stream.js +517 -0
  536. package/backend/node_modules/mongodb/lib/change_stream.js.map +1 -0
  537. package/backend/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.js +281 -0
  538. package/backend/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.js.map +1 -0
  539. package/backend/node_modules/mongodb/lib/client-side-encryption/client_encryption.js +607 -0
  540. package/backend/node_modules/mongodb/lib/client-side-encryption/client_encryption.js.map +1 -0
  541. package/backend/node_modules/mongodb/lib/client-side-encryption/errors.js +138 -0
  542. package/backend/node_modules/mongodb/lib/client-side-encryption/errors.js.map +1 -0
  543. package/backend/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.js +85 -0
  544. package/backend/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.js.map +1 -0
  545. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/aws.js +23 -0
  546. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/aws.js.map +1 -0
  547. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/azure.js +132 -0
  548. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/azure.js.map +1 -0
  549. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/gcp.js +16 -0
  550. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/gcp.js.map +1 -0
  551. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/index.js +43 -0
  552. package/backend/node_modules/mongodb/lib/client-side-encryption/providers/index.js.map +1 -0
  553. package/backend/node_modules/mongodb/lib/client-side-encryption/state_machine.js +427 -0
  554. package/backend/node_modules/mongodb/lib/client-side-encryption/state_machine.js.map +1 -0
  555. package/backend/node_modules/mongodb/lib/cmap/auth/auth_provider.js +51 -0
  556. package/backend/node_modules/mongodb/lib/cmap/auth/auth_provider.js.map +1 -0
  557. package/backend/node_modules/mongodb/lib/cmap/auth/aws4.js +161 -0
  558. package/backend/node_modules/mongodb/lib/cmap/auth/aws4.js.map +1 -0
  559. package/backend/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.js +103 -0
  560. package/backend/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.js.map +1 -0
  561. package/backend/node_modules/mongodb/lib/cmap/auth/gssapi.js +152 -0
  562. package/backend/node_modules/mongodb/lib/cmap/auth/gssapi.js.map +1 -0
  563. package/backend/node_modules/mongodb/lib/cmap/auth/mongo_credentials.js +169 -0
  564. package/backend/node_modules/mongodb/lib/cmap/auth/mongo_credentials.js.map +1 -0
  565. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_aws.js +129 -0
  566. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_aws.js.map +1 -0
  567. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +84 -0
  568. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js.map +1 -0
  569. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +62 -0
  570. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js.map +1 -0
  571. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +141 -0
  572. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js.map +1 -0
  573. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +44 -0
  574. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js.map +1 -0
  575. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +39 -0
  576. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js.map +1 -0
  577. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +122 -0
  578. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js.map +1 -0
  579. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +32 -0
  580. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js.map +1 -0
  581. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +52 -0
  582. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js.map +1 -0
  583. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +23 -0
  584. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js.map +1 -0
  585. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.js +73 -0
  586. package/backend/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.js.map +1 -0
  587. package/backend/node_modules/mongodb/lib/cmap/auth/plain.js +26 -0
  588. package/backend/node_modules/mongodb/lib/cmap/auth/plain.js.map +1 -0
  589. package/backend/node_modules/mongodb/lib/cmap/auth/providers.js +22 -0
  590. package/backend/node_modules/mongodb/lib/cmap/auth/providers.js.map +1 -0
  591. package/backend/node_modules/mongodb/lib/cmap/auth/scram.js +267 -0
  592. package/backend/node_modules/mongodb/lib/cmap/auth/scram.js.map +1 -0
  593. package/backend/node_modules/mongodb/lib/cmap/auth/x509.js +36 -0
  594. package/backend/node_modules/mongodb/lib/cmap/auth/x509.js.map +1 -0
  595. package/backend/node_modules/mongodb/lib/cmap/command_monitoring_events.js +223 -0
  596. package/backend/node_modules/mongodb/lib/cmap/command_monitoring_events.js.map +1 -0
  597. package/backend/node_modules/mongodb/lib/cmap/commands.js +542 -0
  598. package/backend/node_modules/mongodb/lib/cmap/commands.js.map +1 -0
  599. package/backend/node_modules/mongodb/lib/cmap/connect.js +398 -0
  600. package/backend/node_modules/mongodb/lib/cmap/connect.js.map +1 -0
  601. package/backend/node_modules/mongodb/lib/cmap/connection.js +574 -0
  602. package/backend/node_modules/mongodb/lib/cmap/connection.js.map +1 -0
  603. package/backend/node_modules/mongodb/lib/cmap/connection_pool.js +558 -0
  604. package/backend/node_modules/mongodb/lib/cmap/connection_pool.js.map +1 -0
  605. package/backend/node_modules/mongodb/lib/cmap/connection_pool_events.js +190 -0
  606. package/backend/node_modules/mongodb/lib/cmap/connection_pool_events.js.map +1 -0
  607. package/backend/node_modules/mongodb/lib/cmap/errors.js +108 -0
  608. package/backend/node_modules/mongodb/lib/cmap/errors.js.map +1 -0
  609. package/backend/node_modules/mongodb/lib/cmap/handshake/client_metadata.js +241 -0
  610. package/backend/node_modules/mongodb/lib/cmap/handshake/client_metadata.js.map +1 -0
  611. package/backend/node_modules/mongodb/lib/cmap/metrics.js +62 -0
  612. package/backend/node_modules/mongodb/lib/cmap/metrics.js.map +1 -0
  613. package/backend/node_modules/mongodb/lib/cmap/stream_description.js +70 -0
  614. package/backend/node_modules/mongodb/lib/cmap/stream_description.js.map +1 -0
  615. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/compression.js +179 -0
  616. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/compression.js.map +1 -0
  617. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/constants.js +21 -0
  618. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/constants.js.map +1 -0
  619. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/on_data.js +111 -0
  620. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/on_data.js.map +1 -0
  621. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.js +222 -0
  622. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.js.map +1 -0
  623. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/responses.js +315 -0
  624. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/responses.js.map +1 -0
  625. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/shared.js +35 -0
  626. package/backend/node_modules/mongodb/lib/cmap/wire_protocol/shared.js.map +1 -0
  627. package/backend/node_modules/mongodb/lib/collection.js +751 -0
  628. package/backend/node_modules/mongodb/lib/collection.js.map +1 -0
  629. package/backend/node_modules/mongodb/lib/connection_string.js +1106 -0
  630. package/backend/node_modules/mongodb/lib/connection_string.js.map +1 -0
  631. package/backend/node_modules/mongodb/lib/constants.js +170 -0
  632. package/backend/node_modules/mongodb/lib/constants.js.map +1 -0
  633. package/backend/node_modules/mongodb/lib/cursor/abstract_cursor.js +924 -0
  634. package/backend/node_modules/mongodb/lib/cursor/abstract_cursor.js.map +1 -0
  635. package/backend/node_modules/mongodb/lib/cursor/aggregation_cursor.js +164 -0
  636. package/backend/node_modules/mongodb/lib/cursor/aggregation_cursor.js.map +1 -0
  637. package/backend/node_modules/mongodb/lib/cursor/change_stream_cursor.js +104 -0
  638. package/backend/node_modules/mongodb/lib/cursor/change_stream_cursor.js.map +1 -0
  639. package/backend/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.js +52 -0
  640. package/backend/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.js.map +1 -0
  641. package/backend/node_modules/mongodb/lib/cursor/explainable_cursor.js +36 -0
  642. package/backend/node_modules/mongodb/lib/cursor/explainable_cursor.js.map +1 -0
  643. package/backend/node_modules/mongodb/lib/cursor/find_cursor.js +399 -0
  644. package/backend/node_modules/mongodb/lib/cursor/find_cursor.js.map +1 -0
  645. package/backend/node_modules/mongodb/lib/cursor/list_collections_cursor.js +34 -0
  646. package/backend/node_modules/mongodb/lib/cursor/list_collections_cursor.js.map +1 -0
  647. package/backend/node_modules/mongodb/lib/cursor/list_indexes_cursor.js +32 -0
  648. package/backend/node_modules/mongodb/lib/cursor/list_indexes_cursor.js.map +1 -0
  649. package/backend/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.js +14 -0
  650. package/backend/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.js.map +1 -0
  651. package/backend/node_modules/mongodb/lib/cursor/run_command_cursor.js +94 -0
  652. package/backend/node_modules/mongodb/lib/cursor/run_command_cursor.js.map +1 -0
  653. package/backend/node_modules/mongodb/lib/db.js +419 -0
  654. package/backend/node_modules/mongodb/lib/db.js.map +1 -0
  655. package/backend/node_modules/mongodb/lib/deps.js +112 -0
  656. package/backend/node_modules/mongodb/lib/deps.js.map +1 -0
  657. package/backend/node_modules/mongodb/lib/encrypter.js +106 -0
  658. package/backend/node_modules/mongodb/lib/encrypter.js.map +1 -0
  659. package/backend/node_modules/mongodb/lib/error.js +1380 -0
  660. package/backend/node_modules/mongodb/lib/error.js.map +1 -0
  661. package/backend/node_modules/mongodb/lib/explain.js +59 -0
  662. package/backend/node_modules/mongodb/lib/explain.js.map +1 -0
  663. package/backend/node_modules/mongodb/lib/gridfs/download.js +306 -0
  664. package/backend/node_modules/mongodb/lib/gridfs/download.js.map +1 -0
  665. package/backend/node_modules/mongodb/lib/gridfs/index.js +164 -0
  666. package/backend/node_modules/mongodb/lib/gridfs/index.js.map +1 -0
  667. package/backend/node_modules/mongodb/lib/gridfs/upload.js +358 -0
  668. package/backend/node_modules/mongodb/lib/gridfs/upload.js.map +1 -0
  669. package/backend/node_modules/mongodb/lib/index.js +193 -0
  670. package/backend/node_modules/mongodb/lib/index.js.map +1 -0
  671. package/backend/node_modules/mongodb/lib/mongo_client.js +557 -0
  672. package/backend/node_modules/mongodb/lib/mongo_client.js.map +1 -0
  673. package/backend/node_modules/mongodb/lib/mongo_client_auth_providers.js +80 -0
  674. package/backend/node_modules/mongodb/lib/mongo_client_auth_providers.js.map +1 -0
  675. package/backend/node_modules/mongodb/lib/mongo_logger.js +655 -0
  676. package/backend/node_modules/mongodb/lib/mongo_logger.js.map +1 -0
  677. package/backend/node_modules/mongodb/lib/mongo_types.js +56 -0
  678. package/backend/node_modules/mongodb/lib/mongo_types.js.map +1 -0
  679. package/backend/node_modules/mongodb/lib/operations/aggregate.js +90 -0
  680. package/backend/node_modules/mongodb/lib/operations/aggregate.js.map +1 -0
  681. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +51 -0
  682. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.js.map +1 -0
  683. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.js +340 -0
  684. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.js.map +1 -0
  685. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/common.js +3 -0
  686. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/common.js.map +1 -0
  687. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/executor.js +120 -0
  688. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/executor.js.map +1 -0
  689. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.js +204 -0
  690. package/backend/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.js.map +1 -0
  691. package/backend/node_modules/mongodb/lib/operations/command.js +83 -0
  692. package/backend/node_modules/mongodb/lib/operations/command.js.map +1 -0
  693. package/backend/node_modules/mongodb/lib/operations/count.js +45 -0
  694. package/backend/node_modules/mongodb/lib/operations/count.js.map +1 -0
  695. package/backend/node_modules/mongodb/lib/operations/create_collection.js +109 -0
  696. package/backend/node_modules/mongodb/lib/operations/create_collection.js.map +1 -0
  697. package/backend/node_modules/mongodb/lib/operations/delete.js +125 -0
  698. package/backend/node_modules/mongodb/lib/operations/delete.js.map +1 -0
  699. package/backend/node_modules/mongodb/lib/operations/distinct.js +61 -0
  700. package/backend/node_modules/mongodb/lib/operations/distinct.js.map +1 -0
  701. package/backend/node_modules/mongodb/lib/operations/drop.js +93 -0
  702. package/backend/node_modules/mongodb/lib/operations/drop.js.map +1 -0
  703. package/backend/node_modules/mongodb/lib/operations/end_sessions.js +34 -0
  704. package/backend/node_modules/mongodb/lib/operations/end_sessions.js.map +1 -0
  705. package/backend/node_modules/mongodb/lib/operations/estimated_document_count.js +41 -0
  706. package/backend/node_modules/mongodb/lib/operations/estimated_document_count.js.map +1 -0
  707. package/backend/node_modules/mongodb/lib/operations/execute_operation.js +312 -0
  708. package/backend/node_modules/mongodb/lib/operations/execute_operation.js.map +1 -0
  709. package/backend/node_modules/mongodb/lib/operations/find.js +148 -0
  710. package/backend/node_modules/mongodb/lib/operations/find.js.map +1 -0
  711. package/backend/node_modules/mongodb/lib/operations/find_and_modify.js +158 -0
  712. package/backend/node_modules/mongodb/lib/operations/find_and_modify.js.map +1 -0
  713. package/backend/node_modules/mongodb/lib/operations/get_more.js +62 -0
  714. package/backend/node_modules/mongodb/lib/operations/get_more.js.map +1 -0
  715. package/backend/node_modules/mongodb/lib/operations/indexes.js +186 -0
  716. package/backend/node_modules/mongodb/lib/operations/indexes.js.map +1 -0
  717. package/backend/node_modules/mongodb/lib/operations/insert.js +70 -0
  718. package/backend/node_modules/mongodb/lib/operations/insert.js.map +1 -0
  719. package/backend/node_modules/mongodb/lib/operations/kill_cursors.js +43 -0
  720. package/backend/node_modules/mongodb/lib/operations/kill_cursors.js.map +1 -0
  721. package/backend/node_modules/mongodb/lib/operations/list_collections.js +53 -0
  722. package/backend/node_modules/mongodb/lib/operations/list_collections.js.map +1 -0
  723. package/backend/node_modules/mongodb/lib/operations/list_databases.js +40 -0
  724. package/backend/node_modules/mongodb/lib/operations/list_databases.js.map +1 -0
  725. package/backend/node_modules/mongodb/lib/operations/operation.js +103 -0
  726. package/backend/node_modules/mongodb/lib/operations/operation.js.map +1 -0
  727. package/backend/node_modules/mongodb/lib/operations/profiling_level.js +43 -0
  728. package/backend/node_modules/mongodb/lib/operations/profiling_level.js.map +1 -0
  729. package/backend/node_modules/mongodb/lib/operations/remove_user.js +27 -0
  730. package/backend/node_modules/mongodb/lib/operations/remove_user.js.map +1 -0
  731. package/backend/node_modules/mongodb/lib/operations/rename.js +38 -0
  732. package/backend/node_modules/mongodb/lib/operations/rename.js.map +1 -0
  733. package/backend/node_modules/mongodb/lib/operations/run_command.js +47 -0
  734. package/backend/node_modules/mongodb/lib/operations/run_command.js.map +1 -0
  735. package/backend/node_modules/mongodb/lib/operations/search_indexes/create.js +33 -0
  736. package/backend/node_modules/mongodb/lib/operations/search_indexes/create.js.map +1 -0
  737. package/backend/node_modules/mongodb/lib/operations/search_indexes/drop.js +43 -0
  738. package/backend/node_modules/mongodb/lib/operations/search_indexes/drop.js.map +1 -0
  739. package/backend/node_modules/mongodb/lib/operations/search_indexes/update.js +35 -0
  740. package/backend/node_modules/mongodb/lib/operations/search_indexes/update.js.map +1 -0
  741. package/backend/node_modules/mongodb/lib/operations/set_profiling_level.js +53 -0
  742. package/backend/node_modules/mongodb/lib/operations/set_profiling_level.js.map +1 -0
  743. package/backend/node_modules/mongodb/lib/operations/stats.js +27 -0
  744. package/backend/node_modules/mongodb/lib/operations/stats.js.map +1 -0
  745. package/backend/node_modules/mongodb/lib/operations/update.js +188 -0
  746. package/backend/node_modules/mongodb/lib/operations/update.js.map +1 -0
  747. package/backend/node_modules/mongodb/lib/operations/validate_collection.js +37 -0
  748. package/backend/node_modules/mongodb/lib/operations/validate_collection.js.map +1 -0
  749. package/backend/node_modules/mongodb/lib/read_concern.js +73 -0
  750. package/backend/node_modules/mongodb/lib/read_concern.js.map +1 -0
  751. package/backend/node_modules/mongodb/lib/read_preference.js +191 -0
  752. package/backend/node_modules/mongodb/lib/read_preference.js.map +1 -0
  753. package/backend/node_modules/mongodb/lib/runtime_adapters.js +32 -0
  754. package/backend/node_modules/mongodb/lib/runtime_adapters.js.map +1 -0
  755. package/backend/node_modules/mongodb/lib/sdam/common.js +49 -0
  756. package/backend/node_modules/mongodb/lib/sdam/common.js.map +1 -0
  757. package/backend/node_modules/mongodb/lib/sdam/events.js +146 -0
  758. package/backend/node_modules/mongodb/lib/sdam/events.js.map +1 -0
  759. package/backend/node_modules/mongodb/lib/sdam/monitor.js +544 -0
  760. package/backend/node_modules/mongodb/lib/sdam/monitor.js.map +1 -0
  761. package/backend/node_modules/mongodb/lib/sdam/server.js +404 -0
  762. package/backend/node_modules/mongodb/lib/sdam/server.js.map +1 -0
  763. package/backend/node_modules/mongodb/lib/sdam/server_description.js +204 -0
  764. package/backend/node_modules/mongodb/lib/sdam/server_description.js.map +1 -0
  765. package/backend/node_modules/mongodb/lib/sdam/server_selection.js +294 -0
  766. package/backend/node_modules/mongodb/lib/sdam/server_selection.js.map +1 -0
  767. package/backend/node_modules/mongodb/lib/sdam/server_selection_events.js +85 -0
  768. package/backend/node_modules/mongodb/lib/sdam/server_selection_events.js.map +1 -0
  769. package/backend/node_modules/mongodb/lib/sdam/srv_polling.js +108 -0
  770. package/backend/node_modules/mongodb/lib/sdam/srv_polling.js.map +1 -0
  771. package/backend/node_modules/mongodb/lib/sdam/topology.js +654 -0
  772. package/backend/node_modules/mongodb/lib/sdam/topology.js.map +1 -0
  773. package/backend/node_modules/mongodb/lib/sdam/topology_description.js +383 -0
  774. package/backend/node_modules/mongodb/lib/sdam/topology_description.js.map +1 -0
  775. package/backend/node_modules/mongodb/lib/sessions.js +937 -0
  776. package/backend/node_modules/mongodb/lib/sessions.js.map +1 -0
  777. package/backend/node_modules/mongodb/lib/sort.js +103 -0
  778. package/backend/node_modules/mongodb/lib/sort.js.map +1 -0
  779. package/backend/node_modules/mongodb/lib/timeout.js +296 -0
  780. package/backend/node_modules/mongodb/lib/timeout.js.map +1 -0
  781. package/backend/node_modules/mongodb/lib/transactions.js +135 -0
  782. package/backend/node_modules/mongodb/lib/transactions.js.map +1 -0
  783. package/backend/node_modules/mongodb/lib/utils.js +1155 -0
  784. package/backend/node_modules/mongodb/lib/utils.js.map +1 -0
  785. package/backend/node_modules/mongodb/lib/write_concern.js +100 -0
  786. package/backend/node_modules/mongodb/lib/write_concern.js.map +1 -0
  787. package/backend/node_modules/mongodb/mongodb.d.ts +9061 -0
  788. package/backend/node_modules/mongodb/package.json +182 -0
  789. package/backend/node_modules/mongodb/src/admin.ts +173 -0
  790. package/backend/node_modules/mongodb/src/bson.ts +172 -0
  791. package/backend/node_modules/mongodb/src/bulk/common.ts +1251 -0
  792. package/backend/node_modules/mongodb/src/bulk/ordered.ts +83 -0
  793. package/backend/node_modules/mongodb/src/bulk/unordered.ts +115 -0
  794. package/backend/node_modules/mongodb/src/change_stream.ts +1165 -0
  795. package/backend/node_modules/mongodb/src/client-side-encryption/auto_encrypter.ts +475 -0
  796. package/backend/node_modules/mongodb/src/client-side-encryption/client_encryption.ts +1148 -0
  797. package/backend/node_modules/mongodb/src/client-side-encryption/errors.ts +144 -0
  798. package/backend/node_modules/mongodb/src/client-side-encryption/mongocryptd_manager.ts +100 -0
  799. package/backend/node_modules/mongodb/src/client-side-encryption/providers/aws.ts +33 -0
  800. package/backend/node_modules/mongodb/src/client-side-encryption/providers/azure.ts +181 -0
  801. package/backend/node_modules/mongodb/src/client-side-encryption/providers/gcp.ts +16 -0
  802. package/backend/node_modules/mongodb/src/client-side-encryption/providers/index.ts +207 -0
  803. package/backend/node_modules/mongodb/src/client-side-encryption/state_machine.ts +651 -0
  804. package/backend/node_modules/mongodb/src/cmap/auth/auth_provider.ts +77 -0
  805. package/backend/node_modules/mongodb/src/cmap/auth/aws4.ts +207 -0
  806. package/backend/node_modules/mongodb/src/cmap/auth/aws_temporary_credentials.ts +129 -0
  807. package/backend/node_modules/mongodb/src/cmap/auth/gssapi.ts +206 -0
  808. package/backend/node_modules/mongodb/src/cmap/auth/mongo_credentials.ts +292 -0
  809. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_aws.ts +179 -0
  810. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/automated_callback_workflow.ts +88 -0
  811. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/azure_machine_workflow.ts +73 -0
  812. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/callback_workflow.ts +188 -0
  813. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/command_builders.ts +53 -0
  814. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/gcp_machine_workflow.ts +46 -0
  815. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/human_callback_workflow.ts +141 -0
  816. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/k8s_machine_workflow.ts +31 -0
  817. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/token_cache.ts +62 -0
  818. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc/token_machine_workflow.ts +22 -0
  819. package/backend/node_modules/mongodb/src/cmap/auth/mongodb_oidc.ts +185 -0
  820. package/backend/node_modules/mongodb/src/cmap/auth/plain.ts +25 -0
  821. package/backend/node_modules/mongodb/src/cmap/auth/providers.ts +22 -0
  822. package/backend/node_modules/mongodb/src/cmap/auth/scram.ts +371 -0
  823. package/backend/node_modules/mongodb/src/cmap/auth/x509.ts +43 -0
  824. package/backend/node_modules/mongodb/src/cmap/command_monitoring_events.ts +316 -0
  825. package/backend/node_modules/mongodb/src/cmap/commands.ts +807 -0
  826. package/backend/node_modules/mongodb/src/cmap/connect.ts +538 -0
  827. package/backend/node_modules/mongodb/src/cmap/connection.ts +938 -0
  828. package/backend/node_modules/mongodb/src/cmap/connection_pool.ts +831 -0
  829. package/backend/node_modules/mongodb/src/cmap/connection_pool_events.ts +300 -0
  830. package/backend/node_modules/mongodb/src/cmap/errors.ts +119 -0
  831. package/backend/node_modules/mongodb/src/cmap/handshake/client_metadata.ts +353 -0
  832. package/backend/node_modules/mongodb/src/cmap/metrics.ts +58 -0
  833. package/backend/node_modules/mongodb/src/cmap/stream_description.ts +96 -0
  834. package/backend/node_modules/mongodb/src/cmap/wire_protocol/compression.ts +215 -0
  835. package/backend/node_modules/mongodb/src/cmap/wire_protocol/constants.ts +17 -0
  836. package/backend/node_modules/mongodb/src/cmap/wire_protocol/on_data.ts +139 -0
  837. package/backend/node_modules/mongodb/src/cmap/wire_protocol/on_demand/document.ts +356 -0
  838. package/backend/node_modules/mongodb/src/cmap/wire_protocol/responses.ts +393 -0
  839. package/backend/node_modules/mongodb/src/cmap/wire_protocol/shared.ts +48 -0
  840. package/backend/node_modules/mongodb/src/collection.ts +1314 -0
  841. package/backend/node_modules/mongodb/src/connection_string.ts +1315 -0
  842. package/backend/node_modules/mongodb/src/constants.ts +176 -0
  843. package/backend/node_modules/mongodb/src/cursor/abstract_cursor.ts +1247 -0
  844. package/backend/node_modules/mongodb/src/cursor/aggregation_cursor.ts +245 -0
  845. package/backend/node_modules/mongodb/src/cursor/change_stream_cursor.ts +171 -0
  846. package/backend/node_modules/mongodb/src/cursor/client_bulk_write_cursor.ts +83 -0
  847. package/backend/node_modules/mongodb/src/cursor/explainable_cursor.ts +51 -0
  848. package/backend/node_modules/mongodb/src/cursor/find_cursor.ts +497 -0
  849. package/backend/node_modules/mongodb/src/cursor/list_collections_cursor.ts +50 -0
  850. package/backend/node_modules/mongodb/src/cursor/list_indexes_cursor.ts +37 -0
  851. package/backend/node_modules/mongodb/src/cursor/list_search_indexes_cursor.ts +20 -0
  852. package/backend/node_modules/mongodb/src/cursor/run_command_cursor.ts +178 -0
  853. package/backend/node_modules/mongodb/src/db.ts +621 -0
  854. package/backend/node_modules/mongodb/src/deps.ts +227 -0
  855. package/backend/node_modules/mongodb/src/encrypter.ts +127 -0
  856. package/backend/node_modules/mongodb/src/error.ts +1567 -0
  857. package/backend/node_modules/mongodb/src/explain.ts +124 -0
  858. package/backend/node_modules/mongodb/src/gridfs/download.ts +483 -0
  859. package/backend/node_modules/mongodb/src/gridfs/index.ts +264 -0
  860. package/backend/node_modules/mongodb/src/gridfs/upload.ts +538 -0
  861. package/backend/node_modules/mongodb/src/index.ts +634 -0
  862. package/backend/node_modules/mongodb/src/mongo_client.ts +1179 -0
  863. package/backend/node_modules/mongodb/src/mongo_client_auth_providers.ts +87 -0
  864. package/backend/node_modules/mongodb/src/mongo_logger.ts +1081 -0
  865. package/backend/node_modules/mongodb/src/mongo_types.ts +678 -0
  866. package/backend/node_modules/mongodb/src/operations/aggregate.ts +153 -0
  867. package/backend/node_modules/mongodb/src/operations/client_bulk_write/client_bulk_write.ts +72 -0
  868. package/backend/node_modules/mongodb/src/operations/client_bulk_write/command_builder.ts +487 -0
  869. package/backend/node_modules/mongodb/src/operations/client_bulk_write/common.ts +276 -0
  870. package/backend/node_modules/mongodb/src/operations/client_bulk_write/executor.ts +149 -0
  871. package/backend/node_modules/mongodb/src/operations/client_bulk_write/results_merger.ts +260 -0
  872. package/backend/node_modules/mongodb/src/operations/command.ts +171 -0
  873. package/backend/node_modules/mongodb/src/operations/count.ts +74 -0
  874. package/backend/node_modules/mongodb/src/operations/create_collection.ts +218 -0
  875. package/backend/node_modules/mongodb/src/operations/delete.ts +183 -0
  876. package/backend/node_modules/mongodb/src/operations/distinct.ts +92 -0
  877. package/backend/node_modules/mongodb/src/operations/drop.ts +130 -0
  878. package/backend/node_modules/mongodb/src/operations/end_sessions.ts +44 -0
  879. package/backend/node_modules/mongodb/src/operations/estimated_document_count.ts +61 -0
  880. package/backend/node_modules/mongodb/src/operations/execute_operation.ts +420 -0
  881. package/backend/node_modules/mongodb/src/operations/find.ts +254 -0
  882. package/backend/node_modules/mongodb/src/operations/find_and_modify.ts +319 -0
  883. package/backend/node_modules/mongodb/src/operations/get_more.ts +108 -0
  884. package/backend/node_modules/mongodb/src/operations/indexes.ts +418 -0
  885. package/backend/node_modules/mongodb/src/operations/insert.ts +108 -0
  886. package/backend/node_modules/mongodb/src/operations/kill_cursors.ts +64 -0
  887. package/backend/node_modules/mongodb/src/operations/list_collections.ts +108 -0
  888. package/backend/node_modules/mongodb/src/operations/list_databases.ts +68 -0
  889. package/backend/node_modules/mongodb/src/operations/operation.ts +189 -0
  890. package/backend/node_modules/mongodb/src/operations/profiling_level.ts +46 -0
  891. package/backend/node_modules/mongodb/src/operations/remove_user.ts +36 -0
  892. package/backend/node_modules/mongodb/src/operations/rename.ts +60 -0
  893. package/backend/node_modules/mongodb/src/operations/run_command.ts +79 -0
  894. package/backend/node_modules/mongodb/src/operations/search_indexes/create.ts +56 -0
  895. package/backend/node_modules/mongodb/src/operations/search_indexes/drop.ts +58 -0
  896. package/backend/node_modules/mongodb/src/operations/search_indexes/update.ts +45 -0
  897. package/backend/node_modules/mongodb/src/operations/set_profiling_level.ts +74 -0
  898. package/backend/node_modules/mongodb/src/operations/stats.ts +37 -0
  899. package/backend/node_modules/mongodb/src/operations/update.ts +318 -0
  900. package/backend/node_modules/mongodb/src/operations/validate_collection.ts +50 -0
  901. package/backend/node_modules/mongodb/src/read_concern.ts +88 -0
  902. package/backend/node_modules/mongodb/src/read_preference.ts +256 -0
  903. package/backend/node_modules/mongodb/src/runtime_adapters.ts +64 -0
  904. package/backend/node_modules/mongodb/src/sdam/common.ts +74 -0
  905. package/backend/node_modules/mongodb/src/sdam/events.ts +219 -0
  906. package/backend/node_modules/mongodb/src/sdam/monitor.ts +771 -0
  907. package/backend/node_modules/mongodb/src/sdam/server.ts +595 -0
  908. package/backend/node_modules/mongodb/src/sdam/server_description.ts +297 -0
  909. package/backend/node_modules/mongodb/src/sdam/server_selection.ts +415 -0
  910. package/backend/node_modules/mongodb/src/sdam/server_selection_events.ts +142 -0
  911. package/backend/node_modules/mongodb/src/sdam/srv_polling.ts +146 -0
  912. package/backend/node_modules/mongodb/src/sdam/topology.ts +1103 -0
  913. package/backend/node_modules/mongodb/src/sdam/topology_description.ts +548 -0
  914. package/backend/node_modules/mongodb/src/sessions.ts +1288 -0
  915. package/backend/node_modules/mongodb/src/sort.ts +141 -0
  916. package/backend/node_modules/mongodb/src/timeout.ts +405 -0
  917. package/backend/node_modules/mongodb/src/transactions.ts +181 -0
  918. package/backend/node_modules/mongodb/src/utils.ts +1429 -0
  919. package/backend/node_modules/mongodb/src/write_concern.ts +183 -0
  920. package/backend/node_modules/mongodb/tsconfig.json +46 -0
  921. package/backend/node_modules/mongodb-connection-string-url/.esm-wrapper.mjs +6 -0
  922. package/backend/node_modules/mongodb-connection-string-url/LICENSE +192 -0
  923. package/backend/node_modules/mongodb-connection-string-url/README.md +25 -0
  924. package/backend/node_modules/mongodb-connection-string-url/lib/index.d.ts +63 -0
  925. package/backend/node_modules/mongodb-connection-string-url/lib/index.js +239 -0
  926. package/backend/node_modules/mongodb-connection-string-url/lib/index.js.map +1 -0
  927. package/backend/node_modules/mongodb-connection-string-url/lib/redact.d.ts +7 -0
  928. package/backend/node_modules/mongodb-connection-string-url/lib/redact.js +97 -0
  929. package/backend/node_modules/mongodb-connection-string-url/lib/redact.js.map +1 -0
  930. package/backend/node_modules/mongodb-connection-string-url/package.json +71 -0
  931. package/backend/node_modules/mongoose/LICENSE.md +22 -0
  932. package/backend/node_modules/mongoose/README.md +397 -0
  933. package/backend/node_modules/mongoose/SECURITY.md +1 -0
  934. package/backend/node_modules/mongoose/eslint.config.mjs +201 -0
  935. package/backend/node_modules/mongoose/index.js +64 -0
  936. package/backend/node_modules/mongoose/lib/aggregate.js +1253 -0
  937. package/backend/node_modules/mongoose/lib/cast/bigint.js +46 -0
  938. package/backend/node_modules/mongoose/lib/cast/boolean.js +32 -0
  939. package/backend/node_modules/mongoose/lib/cast/date.js +41 -0
  940. package/backend/node_modules/mongoose/lib/cast/decimal128.js +39 -0
  941. package/backend/node_modules/mongoose/lib/cast/double.js +50 -0
  942. package/backend/node_modules/mongoose/lib/cast/int32.js +36 -0
  943. package/backend/node_modules/mongoose/lib/cast/number.js +42 -0
  944. package/backend/node_modules/mongoose/lib/cast/objectid.js +29 -0
  945. package/backend/node_modules/mongoose/lib/cast/string.js +37 -0
  946. package/backend/node_modules/mongoose/lib/cast/uuid.js +35 -0
  947. package/backend/node_modules/mongoose/lib/cast.js +436 -0
  948. package/backend/node_modules/mongoose/lib/collection.js +321 -0
  949. package/backend/node_modules/mongoose/lib/connection.js +1853 -0
  950. package/backend/node_modules/mongoose/lib/connectionState.js +26 -0
  951. package/backend/node_modules/mongoose/lib/constants.js +73 -0
  952. package/backend/node_modules/mongoose/lib/cursor/aggregationCursor.js +497 -0
  953. package/backend/node_modules/mongoose/lib/cursor/changeStream.js +218 -0
  954. package/backend/node_modules/mongoose/lib/cursor/queryCursor.js +641 -0
  955. package/backend/node_modules/mongoose/lib/document.js +5714 -0
  956. package/backend/node_modules/mongoose/lib/driver.js +15 -0
  957. package/backend/node_modules/mongoose/lib/drivers/SPEC.md +4 -0
  958. package/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/bulkWriteResult.js +5 -0
  959. package/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js +426 -0
  960. package/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js +519 -0
  961. package/backend/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js +10 -0
  962. package/backend/node_modules/mongoose/lib/error/browserMissingSchema.js +29 -0
  963. package/backend/node_modules/mongoose/lib/error/bulkSaveIncompleteError.js +44 -0
  964. package/backend/node_modules/mongoose/lib/error/bulkWriteError.js +41 -0
  965. package/backend/node_modules/mongoose/lib/error/cast.js +167 -0
  966. package/backend/node_modules/mongoose/lib/error/createCollectionsError.js +26 -0
  967. package/backend/node_modules/mongoose/lib/error/divergentArray.js +40 -0
  968. package/backend/node_modules/mongoose/lib/error/eachAsyncMultiError.js +41 -0
  969. package/backend/node_modules/mongoose/lib/error/index.js +237 -0
  970. package/backend/node_modules/mongoose/lib/error/invalidSchemaOption.js +32 -0
  971. package/backend/node_modules/mongoose/lib/error/messages.js +48 -0
  972. package/backend/node_modules/mongoose/lib/error/missingSchema.js +33 -0
  973. package/backend/node_modules/mongoose/lib/error/mongooseError.js +13 -0
  974. package/backend/node_modules/mongoose/lib/error/notFound.js +47 -0
  975. package/backend/node_modules/mongoose/lib/error/objectExpected.js +31 -0
  976. package/backend/node_modules/mongoose/lib/error/objectParameter.js +31 -0
  977. package/backend/node_modules/mongoose/lib/error/overwriteModel.js +31 -0
  978. package/backend/node_modules/mongoose/lib/error/parallelSave.js +33 -0
  979. package/backend/node_modules/mongoose/lib/error/parallelValidate.js +33 -0
  980. package/backend/node_modules/mongoose/lib/error/serverSelection.js +62 -0
  981. package/backend/node_modules/mongoose/lib/error/setOptionError.js +103 -0
  982. package/backend/node_modules/mongoose/lib/error/strict.js +35 -0
  983. package/backend/node_modules/mongoose/lib/error/strictPopulate.js +31 -0
  984. package/backend/node_modules/mongoose/lib/error/syncIndexes.js +30 -0
  985. package/backend/node_modules/mongoose/lib/error/validation.js +97 -0
  986. package/backend/node_modules/mongoose/lib/error/validator.js +100 -0
  987. package/backend/node_modules/mongoose/lib/error/version.js +38 -0
  988. package/backend/node_modules/mongoose/lib/helpers/aggregate/prepareDiscriminatorPipeline.js +39 -0
  989. package/backend/node_modules/mongoose/lib/helpers/aggregate/stringifyFunctionOperators.js +50 -0
  990. package/backend/node_modules/mongoose/lib/helpers/arrayDepth.js +33 -0
  991. package/backend/node_modules/mongoose/lib/helpers/buildMiddlewareFilter.js +24 -0
  992. package/backend/node_modules/mongoose/lib/helpers/clone.js +253 -0
  993. package/backend/node_modules/mongoose/lib/helpers/common.js +127 -0
  994. package/backend/node_modules/mongoose/lib/helpers/cursor/eachAsync.js +225 -0
  995. package/backend/node_modules/mongoose/lib/helpers/discriminator/applyEmbeddedDiscriminators.js +36 -0
  996. package/backend/node_modules/mongoose/lib/helpers/discriminator/areDiscriminatorValuesEqual.js +16 -0
  997. package/backend/node_modules/mongoose/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js +12 -0
  998. package/backend/node_modules/mongoose/lib/helpers/discriminator/getConstructor.js +29 -0
  999. package/backend/node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js +28 -0
  1000. package/backend/node_modules/mongoose/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js +27 -0
  1001. package/backend/node_modules/mongoose/lib/helpers/discriminator/mergeDiscriminatorSchema.js +96 -0
  1002. package/backend/node_modules/mongoose/lib/helpers/document/applyDefaults.js +137 -0
  1003. package/backend/node_modules/mongoose/lib/helpers/document/applyTimestamps.js +106 -0
  1004. package/backend/node_modules/mongoose/lib/helpers/document/applyVirtuals.js +147 -0
  1005. package/backend/node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js +45 -0
  1006. package/backend/node_modules/mongoose/lib/helpers/document/compile.js +241 -0
  1007. package/backend/node_modules/mongoose/lib/helpers/document/getDeepestSubdocumentForPath.js +38 -0
  1008. package/backend/node_modules/mongoose/lib/helpers/document/getEmbeddedDiscriminatorPath.js +53 -0
  1009. package/backend/node_modules/mongoose/lib/helpers/document/handleSpreadDoc.js +35 -0
  1010. package/backend/node_modules/mongoose/lib/helpers/document/isInPathsToSave.js +24 -0
  1011. package/backend/node_modules/mongoose/lib/helpers/each.js +25 -0
  1012. package/backend/node_modules/mongoose/lib/helpers/error/combinePathErrors.js +22 -0
  1013. package/backend/node_modules/mongoose/lib/helpers/firstKey.js +8 -0
  1014. package/backend/node_modules/mongoose/lib/helpers/get.js +65 -0
  1015. package/backend/node_modules/mongoose/lib/helpers/getConstructorName.js +16 -0
  1016. package/backend/node_modules/mongoose/lib/helpers/getDefaultBulkwriteResult.js +18 -0
  1017. package/backend/node_modules/mongoose/lib/helpers/getFunctionName.js +10 -0
  1018. package/backend/node_modules/mongoose/lib/helpers/immediate.js +16 -0
  1019. package/backend/node_modules/mongoose/lib/helpers/indexes/applySchemaCollation.js +13 -0
  1020. package/backend/node_modules/mongoose/lib/helpers/indexes/decorateDiscriminatorIndexOptions.js +14 -0
  1021. package/backend/node_modules/mongoose/lib/helpers/indexes/getRelatedIndexes.js +63 -0
  1022. package/backend/node_modules/mongoose/lib/helpers/indexes/isDefaultIdIndex.js +18 -0
  1023. package/backend/node_modules/mongoose/lib/helpers/indexes/isIndexEqual.js +95 -0
  1024. package/backend/node_modules/mongoose/lib/helpers/indexes/isIndexSpecEqual.js +32 -0
  1025. package/backend/node_modules/mongoose/lib/helpers/indexes/isTextIndex.js +16 -0
  1026. package/backend/node_modules/mongoose/lib/helpers/indexes/isTimeseriesIndex.js +16 -0
  1027. package/backend/node_modules/mongoose/lib/helpers/isAsyncFunction.js +9 -0
  1028. package/backend/node_modules/mongoose/lib/helpers/isBsonType.js +15 -0
  1029. package/backend/node_modules/mongoose/lib/helpers/isMongooseObject.js +22 -0
  1030. package/backend/node_modules/mongoose/lib/helpers/isObject.js +16 -0
  1031. package/backend/node_modules/mongoose/lib/helpers/isPOJO.js +12 -0
  1032. package/backend/node_modules/mongoose/lib/helpers/isPromise.js +6 -0
  1033. package/backend/node_modules/mongoose/lib/helpers/isSimpleValidator.js +22 -0
  1034. package/backend/node_modules/mongoose/lib/helpers/minimize.js +41 -0
  1035. package/backend/node_modules/mongoose/lib/helpers/model/applyDefaultsToPOJO.js +52 -0
  1036. package/backend/node_modules/mongoose/lib/helpers/model/applyHooks.js +151 -0
  1037. package/backend/node_modules/mongoose/lib/helpers/model/applyMethods.js +70 -0
  1038. package/backend/node_modules/mongoose/lib/helpers/model/applyStaticHooks.js +33 -0
  1039. package/backend/node_modules/mongoose/lib/helpers/model/applyStatics.js +13 -0
  1040. package/backend/node_modules/mongoose/lib/helpers/model/castBulkWrite.js +322 -0
  1041. package/backend/node_modules/mongoose/lib/helpers/model/decorateBulkWriteResult.js +8 -0
  1042. package/backend/node_modules/mongoose/lib/helpers/model/discriminator.js +265 -0
  1043. package/backend/node_modules/mongoose/lib/helpers/model/pushNestedArrayPaths.js +15 -0
  1044. package/backend/node_modules/mongoose/lib/helpers/omitUndefined.js +20 -0
  1045. package/backend/node_modules/mongoose/lib/helpers/once.js +12 -0
  1046. package/backend/node_modules/mongoose/lib/helpers/parallelLimit.js +37 -0
  1047. package/backend/node_modules/mongoose/lib/helpers/path/parentPaths.js +18 -0
  1048. package/backend/node_modules/mongoose/lib/helpers/path/setDottedPath.js +33 -0
  1049. package/backend/node_modules/mongoose/lib/helpers/pluralize.js +95 -0
  1050. package/backend/node_modules/mongoose/lib/helpers/populate/assignRawDocsToIdStructure.js +129 -0
  1051. package/backend/node_modules/mongoose/lib/helpers/populate/assignVals.js +360 -0
  1052. package/backend/node_modules/mongoose/lib/helpers/populate/createPopulateQueryFilter.js +105 -0
  1053. package/backend/node_modules/mongoose/lib/helpers/populate/getModelsMapForPopulate.js +896 -0
  1054. package/backend/node_modules/mongoose/lib/helpers/populate/getSchemaTypes.js +229 -0
  1055. package/backend/node_modules/mongoose/lib/helpers/populate/getVirtual.js +103 -0
  1056. package/backend/node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js +7 -0
  1057. package/backend/node_modules/mongoose/lib/helpers/populate/lookupLocalFields.js +40 -0
  1058. package/backend/node_modules/mongoose/lib/helpers/populate/markArraySubdocsPopulated.js +49 -0
  1059. package/backend/node_modules/mongoose/lib/helpers/populate/modelNamesFromRefPath.js +74 -0
  1060. package/backend/node_modules/mongoose/lib/helpers/populate/removeDeselectedForeignField.js +31 -0
  1061. package/backend/node_modules/mongoose/lib/helpers/populate/setPopulatedVirtualValue.js +33 -0
  1062. package/backend/node_modules/mongoose/lib/helpers/populate/skipPopulateValue.js +10 -0
  1063. package/backend/node_modules/mongoose/lib/helpers/populate/splitPopulateQuery.js +81 -0
  1064. package/backend/node_modules/mongoose/lib/helpers/populate/validateRef.js +19 -0
  1065. package/backend/node_modules/mongoose/lib/helpers/printJestWarning.js +21 -0
  1066. package/backend/node_modules/mongoose/lib/helpers/processConnectionOptions.js +65 -0
  1067. package/backend/node_modules/mongoose/lib/helpers/projection/applyProjection.js +83 -0
  1068. package/backend/node_modules/mongoose/lib/helpers/projection/hasIncludedChildren.js +41 -0
  1069. package/backend/node_modules/mongoose/lib/helpers/projection/isDefiningProjection.js +18 -0
  1070. package/backend/node_modules/mongoose/lib/helpers/projection/isExclusive.js +37 -0
  1071. package/backend/node_modules/mongoose/lib/helpers/projection/isInclusive.js +39 -0
  1072. package/backend/node_modules/mongoose/lib/helpers/projection/isNestedProjection.js +8 -0
  1073. package/backend/node_modules/mongoose/lib/helpers/projection/isPathExcluded.js +40 -0
  1074. package/backend/node_modules/mongoose/lib/helpers/projection/isPathSelectedInclusive.js +28 -0
  1075. package/backend/node_modules/mongoose/lib/helpers/projection/isSubpath.js +14 -0
  1076. package/backend/node_modules/mongoose/lib/helpers/projection/parseProjection.js +38 -0
  1077. package/backend/node_modules/mongoose/lib/helpers/query/applyGlobalOption.js +29 -0
  1078. package/backend/node_modules/mongoose/lib/helpers/query/cast$expr.js +287 -0
  1079. package/backend/node_modules/mongoose/lib/helpers/query/castFilterPath.js +54 -0
  1080. package/backend/node_modules/mongoose/lib/helpers/query/castUpdate.js +647 -0
  1081. package/backend/node_modules/mongoose/lib/helpers/query/getEmbeddedDiscriminatorPath.js +103 -0
  1082. package/backend/node_modules/mongoose/lib/helpers/query/handleImmutable.js +44 -0
  1083. package/backend/node_modules/mongoose/lib/helpers/query/handleReadPreferenceAliases.js +23 -0
  1084. package/backend/node_modules/mongoose/lib/helpers/query/hasDollarKeys.js +23 -0
  1085. package/backend/node_modules/mongoose/lib/helpers/query/isOperator.js +14 -0
  1086. package/backend/node_modules/mongoose/lib/helpers/query/sanitizeFilter.js +41 -0
  1087. package/backend/node_modules/mongoose/lib/helpers/query/sanitizeProjection.js +14 -0
  1088. package/backend/node_modules/mongoose/lib/helpers/query/selectPopulatedFields.js +62 -0
  1089. package/backend/node_modules/mongoose/lib/helpers/query/trusted.js +13 -0
  1090. package/backend/node_modules/mongoose/lib/helpers/query/validOps.js +3 -0
  1091. package/backend/node_modules/mongoose/lib/helpers/schema/addAutoId.js +7 -0
  1092. package/backend/node_modules/mongoose/lib/helpers/schema/applyBuiltinPlugins.js +12 -0
  1093. package/backend/node_modules/mongoose/lib/helpers/schema/applyPlugins.js +55 -0
  1094. package/backend/node_modules/mongoose/lib/helpers/schema/applyReadConcern.js +20 -0
  1095. package/backend/node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js +39 -0
  1096. package/backend/node_modules/mongoose/lib/helpers/schema/cleanPositionalOperators.js +12 -0
  1097. package/backend/node_modules/mongoose/lib/helpers/schema/getIndexes.js +171 -0
  1098. package/backend/node_modules/mongoose/lib/helpers/schema/getKeysInSchemaOrder.js +25 -0
  1099. package/backend/node_modules/mongoose/lib/helpers/schema/getPath.js +43 -0
  1100. package/backend/node_modules/mongoose/lib/helpers/schema/getSubdocumentStrictValue.js +32 -0
  1101. package/backend/node_modules/mongoose/lib/helpers/schema/handleIdOption.js +20 -0
  1102. package/backend/node_modules/mongoose/lib/helpers/schema/handleTimestampOption.js +24 -0
  1103. package/backend/node_modules/mongoose/lib/helpers/schema/idGetter.js +34 -0
  1104. package/backend/node_modules/mongoose/lib/helpers/schema/merge.js +36 -0
  1105. package/backend/node_modules/mongoose/lib/helpers/schematype/handleImmutable.js +50 -0
  1106. package/backend/node_modules/mongoose/lib/helpers/setDefaultsOnInsert.js +174 -0
  1107. package/backend/node_modules/mongoose/lib/helpers/specialProperties.js +3 -0
  1108. package/backend/node_modules/mongoose/lib/helpers/symbols.js +20 -0
  1109. package/backend/node_modules/mongoose/lib/helpers/timers.js +3 -0
  1110. package/backend/node_modules/mongoose/lib/helpers/timestamps/setDocumentTimestamps.js +26 -0
  1111. package/backend/node_modules/mongoose/lib/helpers/timestamps/setupTimestamps.js +132 -0
  1112. package/backend/node_modules/mongoose/lib/helpers/topology/allServersUnknown.js +12 -0
  1113. package/backend/node_modules/mongoose/lib/helpers/topology/isAtlas.js +31 -0
  1114. package/backend/node_modules/mongoose/lib/helpers/topology/isSSLError.js +16 -0
  1115. package/backend/node_modules/mongoose/lib/helpers/update/applyTimestampsToChildren.js +193 -0
  1116. package/backend/node_modules/mongoose/lib/helpers/update/applyTimestampsToUpdate.js +133 -0
  1117. package/backend/node_modules/mongoose/lib/helpers/update/castArrayFilters.js +113 -0
  1118. package/backend/node_modules/mongoose/lib/helpers/update/decorateUpdateWithVersionKey.js +35 -0
  1119. package/backend/node_modules/mongoose/lib/helpers/update/modifiedPaths.js +33 -0
  1120. package/backend/node_modules/mongoose/lib/helpers/update/moveImmutableProperties.js +53 -0
  1121. package/backend/node_modules/mongoose/lib/helpers/update/removeUnusedArrayFilters.js +37 -0
  1122. package/backend/node_modules/mongoose/lib/helpers/update/updatedPathsByArrayFilter.js +27 -0
  1123. package/backend/node_modules/mongoose/lib/helpers/updateValidators.js +186 -0
  1124. package/backend/node_modules/mongoose/lib/index.js +17 -0
  1125. package/backend/node_modules/mongoose/lib/internal.js +46 -0
  1126. package/backend/node_modules/mongoose/lib/model.js +5310 -0
  1127. package/backend/node_modules/mongoose/lib/modifiedPathsSnapshot.js +9 -0
  1128. package/backend/node_modules/mongoose/lib/mongoose.js +1435 -0
  1129. package/backend/node_modules/mongoose/lib/options/populateOptions.js +36 -0
  1130. package/backend/node_modules/mongoose/lib/options/propertyOptions.js +8 -0
  1131. package/backend/node_modules/mongoose/lib/options/saveOptions.js +16 -0
  1132. package/backend/node_modules/mongoose/lib/options/schemaArrayOptions.js +78 -0
  1133. package/backend/node_modules/mongoose/lib/options/schemaBufferOptions.js +38 -0
  1134. package/backend/node_modules/mongoose/lib/options/schemaDateOptions.js +71 -0
  1135. package/backend/node_modules/mongoose/lib/options/schemaDocumentArrayOptions.js +91 -0
  1136. package/backend/node_modules/mongoose/lib/options/schemaMapOptions.js +43 -0
  1137. package/backend/node_modules/mongoose/lib/options/schemaNumberOptions.js +101 -0
  1138. package/backend/node_modules/mongoose/lib/options/schemaObjectIdOptions.js +64 -0
  1139. package/backend/node_modules/mongoose/lib/options/schemaStringOptions.js +138 -0
  1140. package/backend/node_modules/mongoose/lib/options/schemaSubdocumentOptions.js +89 -0
  1141. package/backend/node_modules/mongoose/lib/options/schemaTypeOptions.js +258 -0
  1142. package/backend/node_modules/mongoose/lib/options/schemaUnionOptions.js +32 -0
  1143. package/backend/node_modules/mongoose/lib/options/virtualOptions.js +164 -0
  1144. package/backend/node_modules/mongoose/lib/options.js +18 -0
  1145. package/backend/node_modules/mongoose/lib/plugins/index.js +5 -0
  1146. package/backend/node_modules/mongoose/lib/plugins/saveSubdocs.js +97 -0
  1147. package/backend/node_modules/mongoose/lib/plugins/sharding.js +101 -0
  1148. package/backend/node_modules/mongoose/lib/plugins/trackTransaction.js +89 -0
  1149. package/backend/node_modules/mongoose/lib/query.js +5861 -0
  1150. package/backend/node_modules/mongoose/lib/queryHelpers.js +396 -0
  1151. package/backend/node_modules/mongoose/lib/schema/array.js +700 -0
  1152. package/backend/node_modules/mongoose/lib/schema/bigint.js +280 -0
  1153. package/backend/node_modules/mongoose/lib/schema/boolean.js +330 -0
  1154. package/backend/node_modules/mongoose/lib/schema/buffer.js +341 -0
  1155. package/backend/node_modules/mongoose/lib/schema/date.js +467 -0
  1156. package/backend/node_modules/mongoose/lib/schema/decimal128.js +261 -0
  1157. package/backend/node_modules/mongoose/lib/schema/documentArray.js +664 -0
  1158. package/backend/node_modules/mongoose/lib/schema/documentArrayElement.js +136 -0
  1159. package/backend/node_modules/mongoose/lib/schema/double.js +244 -0
  1160. package/backend/node_modules/mongoose/lib/schema/index.js +32 -0
  1161. package/backend/node_modules/mongoose/lib/schema/int32.js +287 -0
  1162. package/backend/node_modules/mongoose/lib/schema/map.js +194 -0
  1163. package/backend/node_modules/mongoose/lib/schema/mixed.js +146 -0
  1164. package/backend/node_modules/mongoose/lib/schema/number.js +508 -0
  1165. package/backend/node_modules/mongoose/lib/schema/objectId.js +337 -0
  1166. package/backend/node_modules/mongoose/lib/schema/operators/bitwise.js +38 -0
  1167. package/backend/node_modules/mongoose/lib/schema/operators/exists.js +12 -0
  1168. package/backend/node_modules/mongoose/lib/schema/operators/geospatial.js +107 -0
  1169. package/backend/node_modules/mongoose/lib/schema/operators/helpers.js +32 -0
  1170. package/backend/node_modules/mongoose/lib/schema/operators/text.js +39 -0
  1171. package/backend/node_modules/mongoose/lib/schema/operators/type.js +20 -0
  1172. package/backend/node_modules/mongoose/lib/schema/string.js +748 -0
  1173. package/backend/node_modules/mongoose/lib/schema/subdocument.js +434 -0
  1174. package/backend/node_modules/mongoose/lib/schema/symbols.js +5 -0
  1175. package/backend/node_modules/mongoose/lib/schema/union.js +163 -0
  1176. package/backend/node_modules/mongoose/lib/schema/uuid.js +303 -0
  1177. package/backend/node_modules/mongoose/lib/schema.js +3248 -0
  1178. package/backend/node_modules/mongoose/lib/schemaType.js +1923 -0
  1179. package/backend/node_modules/mongoose/lib/standardSchema/convertErrorToIssues.js +20 -0
  1180. package/backend/node_modules/mongoose/lib/stateMachine.js +234 -0
  1181. package/backend/node_modules/mongoose/lib/tracing.js +38 -0
  1182. package/backend/node_modules/mongoose/lib/types/array/index.js +119 -0
  1183. package/backend/node_modules/mongoose/lib/types/array/isMongooseArray.js +5 -0
  1184. package/backend/node_modules/mongoose/lib/types/array/methods/index.js +1095 -0
  1185. package/backend/node_modules/mongoose/lib/types/arraySubdocument.js +208 -0
  1186. package/backend/node_modules/mongoose/lib/types/buffer.js +294 -0
  1187. package/backend/node_modules/mongoose/lib/types/decimal128.js +13 -0
  1188. package/backend/node_modules/mongoose/lib/types/documentArray/index.js +113 -0
  1189. package/backend/node_modules/mongoose/lib/types/documentArray/isMongooseDocumentArray.js +5 -0
  1190. package/backend/node_modules/mongoose/lib/types/documentArray/methods/index.js +529 -0
  1191. package/backend/node_modules/mongoose/lib/types/double.js +13 -0
  1192. package/backend/node_modules/mongoose/lib/types/index.js +23 -0
  1193. package/backend/node_modules/mongoose/lib/types/map.js +368 -0
  1194. package/backend/node_modules/mongoose/lib/types/objectid.js +41 -0
  1195. package/backend/node_modules/mongoose/lib/types/subdocument.js +443 -0
  1196. package/backend/node_modules/mongoose/lib/types/uuid.js +13 -0
  1197. package/backend/node_modules/mongoose/lib/utils.js +1064 -0
  1198. package/backend/node_modules/mongoose/lib/validOptions.js +43 -0
  1199. package/backend/node_modules/mongoose/lib/virtualType.js +204 -0
  1200. package/backend/node_modules/mongoose/package.json +141 -0
  1201. package/backend/node_modules/mongoose/tstyche.json +7 -0
  1202. package/backend/node_modules/mongoose/types/aggregate.d.ts +185 -0
  1203. package/backend/node_modules/mongoose/types/augmentations.d.ts +9 -0
  1204. package/backend/node_modules/mongoose/types/callback.d.ts +8 -0
  1205. package/backend/node_modules/mongoose/types/collection.d.ts +49 -0
  1206. package/backend/node_modules/mongoose/types/connection.d.ts +297 -0
  1207. package/backend/node_modules/mongoose/types/cursor.d.ts +67 -0
  1208. package/backend/node_modules/mongoose/types/document.d.ts +345 -0
  1209. package/backend/node_modules/mongoose/types/error.d.ts +143 -0
  1210. package/backend/node_modules/mongoose/types/expressions.d.ts +3069 -0
  1211. package/backend/node_modules/mongoose/types/helpers.d.ts +32 -0
  1212. package/backend/node_modules/mongoose/types/index.d.ts +1162 -0
  1213. package/backend/node_modules/mongoose/types/indexes.d.ts +97 -0
  1214. package/backend/node_modules/mongoose/types/inferhydrateddoctype.d.ts +135 -0
  1215. package/backend/node_modules/mongoose/types/inferrawdoctype.d.ts +185 -0
  1216. package/backend/node_modules/mongoose/types/inferschematype.d.ts +387 -0
  1217. package/backend/node_modules/mongoose/types/middlewares.d.ts +66 -0
  1218. package/backend/node_modules/mongoose/types/models.d.ts +1272 -0
  1219. package/backend/node_modules/mongoose/types/mongooseoptions.d.ts +232 -0
  1220. package/backend/node_modules/mongoose/types/pipelinestage.d.ts +334 -0
  1221. package/backend/node_modules/mongoose/types/populate.d.ts +97 -0
  1222. package/backend/node_modules/mongoose/types/query.d.ts +982 -0
  1223. package/backend/node_modules/mongoose/types/schemaoptions.d.ts +284 -0
  1224. package/backend/node_modules/mongoose/types/schematypes.d.ts +667 -0
  1225. package/backend/node_modules/mongoose/types/session.d.ts +32 -0
  1226. package/backend/node_modules/mongoose/types/tracing.d.ts +10 -0
  1227. package/backend/node_modules/mongoose/types/types.d.ts +109 -0
  1228. package/backend/node_modules/mongoose/types/utility.d.ts +175 -0
  1229. package/backend/node_modules/mongoose/types/validation.d.ts +39 -0
  1230. package/backend/node_modules/mongoose/types/virtuals.d.ts +14 -0
  1231. package/backend/node_modules/mpath/.travis.yml +9 -0
  1232. package/backend/node_modules/mpath/History.md +88 -0
  1233. package/backend/node_modules/mpath/LICENSE +22 -0
  1234. package/backend/node_modules/mpath/README.md +278 -0
  1235. package/backend/node_modules/mpath/SECURITY.md +5 -0
  1236. package/backend/node_modules/mpath/index.js +3 -0
  1237. package/backend/node_modules/mpath/lib/index.js +336 -0
  1238. package/backend/node_modules/mpath/lib/stringToParts.js +48 -0
  1239. package/backend/node_modules/mpath/package.json +144 -0
  1240. package/backend/node_modules/mpath/test/.eslintrc.yml +4 -0
  1241. package/backend/node_modules/mpath/test/index.js +1879 -0
  1242. package/backend/node_modules/mpath/test/stringToParts.js +30 -0
  1243. package/backend/node_modules/mquery/.github/ISSUE_TEMPLATE.md +11 -0
  1244. package/backend/node_modules/mquery/.github/PULL_REQUEST_TEMPLATE.md +9 -0
  1245. package/backend/node_modules/mquery/History.md +393 -0
  1246. package/backend/node_modules/mquery/LICENSE +22 -0
  1247. package/backend/node_modules/mquery/README.md +1387 -0
  1248. package/backend/node_modules/mquery/SECURITY.md +1 -0
  1249. package/backend/node_modules/mquery/lib/collection/collection.js +47 -0
  1250. package/backend/node_modules/mquery/lib/collection/index.js +13 -0
  1251. package/backend/node_modules/mquery/lib/collection/node.js +128 -0
  1252. package/backend/node_modules/mquery/lib/env.js +22 -0
  1253. package/backend/node_modules/mquery/lib/mquery.js +2748 -0
  1254. package/backend/node_modules/mquery/lib/permissions.js +93 -0
  1255. package/backend/node_modules/mquery/lib/utils.js +297 -0
  1256. package/backend/node_modules/mquery/package.json +35 -0
  1257. package/backend/node_modules/ms/index.js +162 -0
  1258. package/backend/node_modules/ms/license.md +21 -0
  1259. package/backend/node_modules/ms/package.json +38 -0
  1260. package/backend/node_modules/ms/readme.md +59 -0
  1261. package/backend/node_modules/negotiator/HISTORY.md +114 -0
  1262. package/backend/node_modules/negotiator/LICENSE +24 -0
  1263. package/backend/node_modules/negotiator/README.md +212 -0
  1264. package/backend/node_modules/negotiator/index.js +83 -0
  1265. package/backend/node_modules/negotiator/lib/charset.js +169 -0
  1266. package/backend/node_modules/negotiator/lib/encoding.js +205 -0
  1267. package/backend/node_modules/negotiator/lib/language.js +179 -0
  1268. package/backend/node_modules/negotiator/lib/mediaType.js +294 -0
  1269. package/backend/node_modules/negotiator/package.json +43 -0
  1270. package/backend/node_modules/object-assign/index.js +90 -0
  1271. package/backend/node_modules/object-assign/license +21 -0
  1272. package/backend/node_modules/object-assign/package.json +42 -0
  1273. package/backend/node_modules/object-assign/readme.md +61 -0
  1274. package/backend/node_modules/object-inspect/.eslintrc +53 -0
  1275. package/backend/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  1276. package/backend/node_modules/object-inspect/.nycrc +13 -0
  1277. package/backend/node_modules/object-inspect/CHANGELOG.md +424 -0
  1278. package/backend/node_modules/object-inspect/LICENSE +21 -0
  1279. package/backend/node_modules/object-inspect/example/all.js +23 -0
  1280. package/backend/node_modules/object-inspect/example/circular.js +6 -0
  1281. package/backend/node_modules/object-inspect/example/fn.js +5 -0
  1282. package/backend/node_modules/object-inspect/example/inspect.js +10 -0
  1283. package/backend/node_modules/object-inspect/index.js +544 -0
  1284. package/backend/node_modules/object-inspect/package-support.json +20 -0
  1285. package/backend/node_modules/object-inspect/package.json +105 -0
  1286. package/backend/node_modules/object-inspect/readme.markdown +84 -0
  1287. package/backend/node_modules/object-inspect/test/bigint.js +58 -0
  1288. package/backend/node_modules/object-inspect/test/browser/dom.js +15 -0
  1289. package/backend/node_modules/object-inspect/test/circular.js +16 -0
  1290. package/backend/node_modules/object-inspect/test/deep.js +12 -0
  1291. package/backend/node_modules/object-inspect/test/element.js +53 -0
  1292. package/backend/node_modules/object-inspect/test/err.js +48 -0
  1293. package/backend/node_modules/object-inspect/test/fakes.js +29 -0
  1294. package/backend/node_modules/object-inspect/test/fn.js +76 -0
  1295. package/backend/node_modules/object-inspect/test/global.js +17 -0
  1296. package/backend/node_modules/object-inspect/test/has.js +15 -0
  1297. package/backend/node_modules/object-inspect/test/holes.js +15 -0
  1298. package/backend/node_modules/object-inspect/test/indent-option.js +271 -0
  1299. package/backend/node_modules/object-inspect/test/inspect.js +139 -0
  1300. package/backend/node_modules/object-inspect/test/lowbyte.js +12 -0
  1301. package/backend/node_modules/object-inspect/test/number.js +58 -0
  1302. package/backend/node_modules/object-inspect/test/quoteStyle.js +26 -0
  1303. package/backend/node_modules/object-inspect/test/toStringTag.js +40 -0
  1304. package/backend/node_modules/object-inspect/test/undef.js +12 -0
  1305. package/backend/node_modules/object-inspect/test/values.js +261 -0
  1306. package/backend/node_modules/object-inspect/test-core-js.js +26 -0
  1307. package/backend/node_modules/object-inspect/util.inspect.js +1 -0
  1308. package/backend/node_modules/on-finished/HISTORY.md +98 -0
  1309. package/backend/node_modules/on-finished/LICENSE +23 -0
  1310. package/backend/node_modules/on-finished/README.md +162 -0
  1311. package/backend/node_modules/on-finished/index.js +234 -0
  1312. package/backend/node_modules/on-finished/package.json +39 -0
  1313. package/backend/node_modules/once/LICENSE +15 -0
  1314. package/backend/node_modules/once/README.md +79 -0
  1315. package/backend/node_modules/once/once.js +42 -0
  1316. package/backend/node_modules/once/package.json +33 -0
  1317. package/backend/node_modules/parseurl/HISTORY.md +58 -0
  1318. package/backend/node_modules/parseurl/LICENSE +24 -0
  1319. package/backend/node_modules/parseurl/README.md +133 -0
  1320. package/backend/node_modules/parseurl/index.js +158 -0
  1321. package/backend/node_modules/parseurl/package.json +40 -0
  1322. package/backend/node_modules/path-to-regexp/LICENSE +21 -0
  1323. package/backend/node_modules/path-to-regexp/Readme.md +224 -0
  1324. package/backend/node_modules/path-to-regexp/dist/index.d.ts +147 -0
  1325. package/backend/node_modules/path-to-regexp/dist/index.js +431 -0
  1326. package/backend/node_modules/path-to-regexp/dist/index.js.map +1 -0
  1327. package/backend/node_modules/path-to-regexp/package.json +64 -0
  1328. package/backend/node_modules/proxy-addr/HISTORY.md +161 -0
  1329. package/backend/node_modules/proxy-addr/LICENSE +22 -0
  1330. package/backend/node_modules/proxy-addr/README.md +139 -0
  1331. package/backend/node_modules/proxy-addr/index.js +327 -0
  1332. package/backend/node_modules/proxy-addr/package.json +47 -0
  1333. package/backend/node_modules/punycode/LICENSE-MIT.txt +20 -0
  1334. package/backend/node_modules/punycode/README.md +148 -0
  1335. package/backend/node_modules/punycode/package.json +58 -0
  1336. package/backend/node_modules/punycode/punycode.es6.js +444 -0
  1337. package/backend/node_modules/punycode/punycode.js +443 -0
  1338. package/backend/node_modules/qs/.editorconfig +46 -0
  1339. package/backend/node_modules/qs/.github/FUNDING.yml +12 -0
  1340. package/backend/node_modules/qs/.github/SECURITY.md +11 -0
  1341. package/backend/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  1342. package/backend/node_modules/qs/.nycrc +13 -0
  1343. package/backend/node_modules/qs/CHANGELOG.md +833 -0
  1344. package/backend/node_modules/qs/LICENSE.md +29 -0
  1345. package/backend/node_modules/qs/README.md +758 -0
  1346. package/backend/node_modules/qs/dist/qs.js +141 -0
  1347. package/backend/node_modules/qs/eslint.config.mjs +57 -0
  1348. package/backend/node_modules/qs/lib/formats.js +23 -0
  1349. package/backend/node_modules/qs/lib/index.js +11 -0
  1350. package/backend/node_modules/qs/lib/parse.js +414 -0
  1351. package/backend/node_modules/qs/lib/stringify.js +363 -0
  1352. package/backend/node_modules/qs/lib/utils.js +381 -0
  1353. package/backend/node_modules/qs/package.json +95 -0
  1354. package/backend/node_modules/qs/test/empty-keys-cases.js +267 -0
  1355. package/backend/node_modules/qs/test/parse.js +1933 -0
  1356. package/backend/node_modules/qs/test/stringify.js +1448 -0
  1357. package/backend/node_modules/qs/test/utils.js +626 -0
  1358. package/backend/node_modules/range-parser/HISTORY.md +56 -0
  1359. package/backend/node_modules/range-parser/LICENSE +23 -0
  1360. package/backend/node_modules/range-parser/README.md +85 -0
  1361. package/backend/node_modules/range-parser/index.js +181 -0
  1362. package/backend/node_modules/range-parser/package.json +48 -0
  1363. package/backend/node_modules/raw-body/LICENSE +22 -0
  1364. package/backend/node_modules/raw-body/README.md +223 -0
  1365. package/backend/node_modules/raw-body/index.d.ts +85 -0
  1366. package/backend/node_modules/raw-body/index.js +336 -0
  1367. package/backend/node_modules/raw-body/package.json +46 -0
  1368. package/backend/node_modules/router/HISTORY.md +228 -0
  1369. package/backend/node_modules/router/LICENSE +23 -0
  1370. package/backend/node_modules/router/README.md +416 -0
  1371. package/backend/node_modules/router/index.js +748 -0
  1372. package/backend/node_modules/router/lib/layer.js +247 -0
  1373. package/backend/node_modules/router/lib/route.js +242 -0
  1374. package/backend/node_modules/router/package.json +44 -0
  1375. package/backend/node_modules/safer-buffer/LICENSE +21 -0
  1376. package/backend/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  1377. package/backend/node_modules/safer-buffer/Readme.md +156 -0
  1378. package/backend/node_modules/safer-buffer/dangerous.js +58 -0
  1379. package/backend/node_modules/safer-buffer/package.json +34 -0
  1380. package/backend/node_modules/safer-buffer/safer.js +77 -0
  1381. package/backend/node_modules/safer-buffer/tests.js +406 -0
  1382. package/backend/node_modules/send/LICENSE +23 -0
  1383. package/backend/node_modules/send/README.md +317 -0
  1384. package/backend/node_modules/send/index.js +997 -0
  1385. package/backend/node_modules/send/package.json +63 -0
  1386. package/backend/node_modules/serve-static/LICENSE +25 -0
  1387. package/backend/node_modules/serve-static/README.md +253 -0
  1388. package/backend/node_modules/serve-static/index.js +208 -0
  1389. package/backend/node_modules/serve-static/package.json +44 -0
  1390. package/backend/node_modules/setprototypeof/LICENSE +13 -0
  1391. package/backend/node_modules/setprototypeof/README.md +31 -0
  1392. package/backend/node_modules/setprototypeof/index.d.ts +2 -0
  1393. package/backend/node_modules/setprototypeof/index.js +17 -0
  1394. package/backend/node_modules/setprototypeof/package.json +38 -0
  1395. package/backend/node_modules/setprototypeof/test/index.js +24 -0
  1396. package/backend/node_modules/side-channel/.editorconfig +9 -0
  1397. package/backend/node_modules/side-channel/.eslintrc +12 -0
  1398. package/backend/node_modules/side-channel/.github/FUNDING.yml +12 -0
  1399. package/backend/node_modules/side-channel/.nycrc +13 -0
  1400. package/backend/node_modules/side-channel/CHANGELOG.md +120 -0
  1401. package/backend/node_modules/side-channel/LICENSE +21 -0
  1402. package/backend/node_modules/side-channel/README.md +61 -0
  1403. package/backend/node_modules/side-channel/index.d.ts +14 -0
  1404. package/backend/node_modules/side-channel/index.js +46 -0
  1405. package/backend/node_modules/side-channel/package.json +85 -0
  1406. package/backend/node_modules/side-channel/test/index.js +120 -0
  1407. package/backend/node_modules/side-channel/tsconfig.json +9 -0
  1408. package/backend/node_modules/side-channel-list/.editorconfig +9 -0
  1409. package/backend/node_modules/side-channel-list/.eslintrc +11 -0
  1410. package/backend/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  1411. package/backend/node_modules/side-channel-list/.nycrc +13 -0
  1412. package/backend/node_modules/side-channel-list/CHANGELOG.md +36 -0
  1413. package/backend/node_modules/side-channel-list/LICENSE +21 -0
  1414. package/backend/node_modules/side-channel-list/README.md +62 -0
  1415. package/backend/node_modules/side-channel-list/index.d.ts +13 -0
  1416. package/backend/node_modules/side-channel-list/index.js +111 -0
  1417. package/backend/node_modules/side-channel-list/list.d.ts +14 -0
  1418. package/backend/node_modules/side-channel-list/package.json +77 -0
  1419. package/backend/node_modules/side-channel-list/test/index.js +154 -0
  1420. package/backend/node_modules/side-channel-list/tsconfig.json +9 -0
  1421. package/backend/node_modules/side-channel-map/.editorconfig +9 -0
  1422. package/backend/node_modules/side-channel-map/.eslintrc +11 -0
  1423. package/backend/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  1424. package/backend/node_modules/side-channel-map/.nycrc +13 -0
  1425. package/backend/node_modules/side-channel-map/CHANGELOG.md +22 -0
  1426. package/backend/node_modules/side-channel-map/LICENSE +21 -0
  1427. package/backend/node_modules/side-channel-map/README.md +62 -0
  1428. package/backend/node_modules/side-channel-map/index.d.ts +15 -0
  1429. package/backend/node_modules/side-channel-map/index.js +68 -0
  1430. package/backend/node_modules/side-channel-map/package.json +80 -0
  1431. package/backend/node_modules/side-channel-map/test/index.js +114 -0
  1432. package/backend/node_modules/side-channel-map/tsconfig.json +9 -0
  1433. package/backend/node_modules/side-channel-weakmap/.editorconfig +9 -0
  1434. package/backend/node_modules/side-channel-weakmap/.eslintrc +12 -0
  1435. package/backend/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  1436. package/backend/node_modules/side-channel-weakmap/.nycrc +13 -0
  1437. package/backend/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  1438. package/backend/node_modules/side-channel-weakmap/LICENSE +21 -0
  1439. package/backend/node_modules/side-channel-weakmap/README.md +62 -0
  1440. package/backend/node_modules/side-channel-weakmap/index.d.ts +15 -0
  1441. package/backend/node_modules/side-channel-weakmap/index.js +84 -0
  1442. package/backend/node_modules/side-channel-weakmap/package.json +87 -0
  1443. package/backend/node_modules/side-channel-weakmap/test/index.js +114 -0
  1444. package/backend/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  1445. package/backend/node_modules/sift/MIT-LICENSE.txt +20 -0
  1446. package/backend/node_modules/sift/README.md +465 -0
  1447. package/backend/node_modules/sift/es/index.js +632 -0
  1448. package/backend/node_modules/sift/es/index.js.map +1 -0
  1449. package/backend/node_modules/sift/es5m/index.js +743 -0
  1450. package/backend/node_modules/sift/es5m/index.js.map +1 -0
  1451. package/backend/node_modules/sift/index.d.ts +4 -0
  1452. package/backend/node_modules/sift/index.js +4 -0
  1453. package/backend/node_modules/sift/lib/core.d.ts +116 -0
  1454. package/backend/node_modules/sift/lib/index.d.ts +6 -0
  1455. package/backend/node_modules/sift/lib/index.js +781 -0
  1456. package/backend/node_modules/sift/lib/index.js.map +1 -0
  1457. package/backend/node_modules/sift/lib/operations.d.ts +88 -0
  1458. package/backend/node_modules/sift/lib/utils.d.ts +11 -0
  1459. package/backend/node_modules/sift/package.json +61 -0
  1460. package/backend/node_modules/sift/sift.csp.min.js +778 -0
  1461. package/backend/node_modules/sift/sift.csp.min.js.map +1 -0
  1462. package/backend/node_modules/sift/sift.min.js +2 -0
  1463. package/backend/node_modules/sift/sift.min.js.map +1 -0
  1464. package/backend/node_modules/sift/src/core.ts +494 -0
  1465. package/backend/node_modules/sift/src/index.ts +54 -0
  1466. package/backend/node_modules/sift/src/operations.ts +422 -0
  1467. package/backend/node_modules/sift/src/utils.ts +74 -0
  1468. package/backend/node_modules/sparse-bitfield/.travis.yml +6 -0
  1469. package/backend/node_modules/sparse-bitfield/LICENSE +21 -0
  1470. package/backend/node_modules/sparse-bitfield/README.md +62 -0
  1471. package/backend/node_modules/sparse-bitfield/index.js +95 -0
  1472. package/backend/node_modules/sparse-bitfield/package.json +27 -0
  1473. package/backend/node_modules/sparse-bitfield/test.js +79 -0
  1474. package/backend/node_modules/statuses/HISTORY.md +87 -0
  1475. package/backend/node_modules/statuses/LICENSE +23 -0
  1476. package/backend/node_modules/statuses/README.md +139 -0
  1477. package/backend/node_modules/statuses/codes.json +65 -0
  1478. package/backend/node_modules/statuses/index.js +146 -0
  1479. package/backend/node_modules/statuses/package.json +49 -0
  1480. package/backend/node_modules/toidentifier/HISTORY.md +9 -0
  1481. package/backend/node_modules/toidentifier/LICENSE +21 -0
  1482. package/backend/node_modules/toidentifier/README.md +61 -0
  1483. package/backend/node_modules/toidentifier/index.js +32 -0
  1484. package/backend/node_modules/toidentifier/package.json +38 -0
  1485. package/backend/node_modules/tr46/LICENSE.md +21 -0
  1486. package/backend/node_modules/tr46/README.md +76 -0
  1487. package/backend/node_modules/tr46/index.js +344 -0
  1488. package/backend/node_modules/tr46/lib/mappingTable.json +1 -0
  1489. package/backend/node_modules/tr46/lib/regexes.js +29 -0
  1490. package/backend/node_modules/tr46/lib/statusMapping.js +9 -0
  1491. package/backend/node_modules/tr46/package.json +44 -0
  1492. package/backend/node_modules/type-is/HISTORY.md +292 -0
  1493. package/backend/node_modules/type-is/LICENSE +23 -0
  1494. package/backend/node_modules/type-is/README.md +198 -0
  1495. package/backend/node_modules/type-is/index.js +240 -0
  1496. package/backend/node_modules/type-is/node_modules/content-type/LICENSE +22 -0
  1497. package/backend/node_modules/type-is/node_modules/content-type/README.md +69 -0
  1498. package/backend/node_modules/type-is/node_modules/content-type/dist/index.d.ts +26 -0
  1499. package/backend/node_modules/type-is/node_modules/content-type/dist/index.js +170 -0
  1500. package/backend/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -0
  1501. package/backend/node_modules/type-is/node_modules/content-type/package.json +52 -0
  1502. package/backend/node_modules/type-is/package.json +51 -0
  1503. package/backend/node_modules/unpipe/HISTORY.md +4 -0
  1504. package/backend/node_modules/unpipe/LICENSE +22 -0
  1505. package/backend/node_modules/unpipe/README.md +43 -0
  1506. package/backend/node_modules/unpipe/index.js +69 -0
  1507. package/backend/node_modules/unpipe/package.json +27 -0
  1508. package/backend/node_modules/vary/HISTORY.md +39 -0
  1509. package/backend/node_modules/vary/LICENSE +22 -0
  1510. package/backend/node_modules/vary/README.md +101 -0
  1511. package/backend/node_modules/vary/index.js +149 -0
  1512. package/backend/node_modules/vary/package.json +43 -0
  1513. package/backend/node_modules/webidl-conversions/LICENSE.md +12 -0
  1514. package/backend/node_modules/webidl-conversions/README.md +99 -0
  1515. package/backend/node_modules/webidl-conversions/lib/index.js +450 -0
  1516. package/backend/node_modules/webidl-conversions/package.json +35 -0
  1517. package/backend/node_modules/whatwg-url/LICENSE.txt +21 -0
  1518. package/backend/node_modules/whatwg-url/README.md +106 -0
  1519. package/backend/node_modules/whatwg-url/index.js +27 -0
  1520. package/backend/node_modules/whatwg-url/lib/Function.js +42 -0
  1521. package/backend/node_modules/whatwg-url/lib/URL-impl.js +233 -0
  1522. package/backend/node_modules/whatwg-url/lib/URL.js +499 -0
  1523. package/backend/node_modules/whatwg-url/lib/URLSearchParams-impl.js +135 -0
  1524. package/backend/node_modules/whatwg-url/lib/URLSearchParams.js +505 -0
  1525. package/backend/node_modules/whatwg-url/lib/VoidFunction.js +26 -0
  1526. package/backend/node_modules/whatwg-url/lib/encoding.js +16 -0
  1527. package/backend/node_modules/whatwg-url/lib/infra.js +26 -0
  1528. package/backend/node_modules/whatwg-url/lib/percent-encoding.js +142 -0
  1529. package/backend/node_modules/whatwg-url/lib/url-state-machine.js +1274 -0
  1530. package/backend/node_modules/whatwg-url/lib/urlencoded.js +89 -0
  1531. package/backend/node_modules/whatwg-url/lib/utils.js +190 -0
  1532. package/backend/node_modules/whatwg-url/package.json +53 -0
  1533. package/backend/node_modules/whatwg-url/webidl2js-wrapper.js +7 -0
  1534. package/backend/node_modules/wrappy/LICENSE +15 -0
  1535. package/backend/node_modules/wrappy/README.md +36 -0
  1536. package/backend/node_modules/wrappy/package.json +29 -0
  1537. package/backend/node_modules/wrappy/wrappy.js +33 -0
  1538. package/backend/package-lock.json +1114 -0
  1539. package/backend/package.json +18 -0
  1540. package/backend/routes/feedsRoutes.js +134 -0
  1541. package/frontend/index.html +13 -0
  1542. package/frontend/package-lock.json +872 -0
  1543. package/frontend/package.json +14 -0
  1544. package/frontend/public/favicon.svg +1 -0
  1545. package/frontend/public/icons.svg +24 -0
  1546. package/frontend/src/App.css +0 -0
  1547. package/frontend/src/App.jsx +121 -0
  1548. package/frontend/src/FeedCard.jsx +0 -0
  1549. package/frontend/src/assets/hero.png +0 -0
  1550. package/frontend/src/assets/javascript.svg +1 -0
  1551. package/frontend/src/assets/vite.svg +1 -0
  1552. package/frontend/src/main.jsx +10 -0
  1553. package/frontend/src/style.css +296 -0
  1554. package/package.json +13 -0
@@ -0,0 +1,1923 @@
1
+ 'use strict';
2
+
3
+ /*!
4
+ * Module dependencies.
5
+ */
6
+
7
+ const MongooseError = require('./error/index');
8
+ const SchemaTypeOptions = require('./options/schemaTypeOptions');
9
+ const $exists = require('./schema/operators/exists');
10
+ const $type = require('./schema/operators/type');
11
+ const clone = require('./helpers/clone');
12
+ const handleImmutable = require('./helpers/schematype/handleImmutable');
13
+ const isAsyncFunction = require('./helpers/isAsyncFunction');
14
+ const isSimpleValidator = require('./helpers/isSimpleValidator');
15
+ const schemaTypeSymbol = require('./helpers/symbols').schemaTypeSymbol;
16
+ const utils = require('./utils');
17
+ const validatorErrorSymbol = require('./helpers/symbols').validatorErrorSymbol;
18
+ const documentIsModified = require('./helpers/symbols').documentIsModified;
19
+
20
+ const populateModelSymbol = require('./helpers/symbols').populateModelSymbol;
21
+
22
+ const CastError = MongooseError.CastError;
23
+ const ValidatorError = MongooseError.ValidatorError;
24
+
25
+ const setOptionsForDefaults = { _skipMarkModified: true };
26
+
27
+ /**
28
+ * SchemaType constructor. Do **not** instantiate `SchemaType` directly.
29
+ * Mongoose converts your schema paths into SchemaTypes automatically.
30
+ *
31
+ * #### Example:
32
+ *
33
+ * const schema = new Schema({ name: String });
34
+ * schema.path('name') instanceof SchemaType; // true
35
+ *
36
+ * @param {string} path
37
+ * @param {SchemaTypeOptions} [options] See [SchemaTypeOptions docs](https://mongoosejs.com/docs/api/schematypeoptions.html)
38
+ * @param {string} [instance]
39
+ * @param {Schema} [parentSchema]
40
+ * @api public
41
+ */
42
+
43
+ function SchemaType(path, options, instance, parentSchema) {
44
+ this[schemaTypeSymbol] = true;
45
+ this.path = path;
46
+ this.instance = instance;
47
+ this.schemaName = this.constructor.schemaName;
48
+ this.validators = [];
49
+ this.getters = Object.hasOwn(this.constructor, 'getters') ?
50
+ this.constructor.getters.slice() :
51
+ [];
52
+ this.setters = Object.hasOwn(this.constructor, 'setters') ?
53
+ this.constructor.setters.slice() :
54
+ [];
55
+
56
+ this.splitPath();
57
+
58
+ options = options || {};
59
+ const defaultOptions = this.constructor.defaultOptions || {};
60
+ const defaultOptionsKeys = Object.keys(defaultOptions);
61
+
62
+ for (const option of defaultOptionsKeys) {
63
+ if (option === 'validate') {
64
+ this.validate(defaultOptions.validate);
65
+ } else if (Object.hasOwn(defaultOptions, option) && !Object.hasOwn(options, option)) {
66
+ options[option] = defaultOptions[option];
67
+ }
68
+ }
69
+
70
+ if (options.select == null) {
71
+ delete options.select;
72
+ }
73
+
74
+ const Options = this.OptionsConstructor || SchemaTypeOptions;
75
+ this.options = new Options(options);
76
+ this.parentSchema = parentSchema;
77
+ this._index = null;
78
+
79
+ if (utils.hasUserDefinedProperty(this.options, 'immutable')) {
80
+ this.$immutable = this.options.immutable;
81
+
82
+ handleImmutable(this);
83
+ }
84
+
85
+ const keys = Object.keys(this.options);
86
+ for (const prop of keys) {
87
+ if (prop === 'cast') {
88
+ if (Array.isArray(this.options[prop])) {
89
+ this.castFunction.apply(this, this.options[prop]);
90
+ } else {
91
+ this.castFunction(this.options[prop]);
92
+ }
93
+ continue;
94
+ }
95
+ if (utils.hasUserDefinedProperty(this.options, prop) && typeof this[prop] === 'function') {
96
+ // { unique: true, index: true }
97
+ if (prop === 'index' && this._index) {
98
+ if (options.index === false) {
99
+ const index = this._index;
100
+ if (typeof index === 'object' && index != null) {
101
+ if (index.unique) {
102
+ throw new MongooseError('Path "' + this.path + '" may not have `index` ' +
103
+ 'set to false and `unique` set to true');
104
+ }
105
+ if (index.sparse) {
106
+ throw new MongooseError('Path "' + this.path + '" may not have `index` ' +
107
+ 'set to false and `sparse` set to true');
108
+ }
109
+ }
110
+
111
+ this._index = false;
112
+ }
113
+ continue;
114
+ }
115
+
116
+ const val = options[prop];
117
+ // Special case so we don't screw up array defaults, see gh-5780
118
+ if (prop === 'default') {
119
+ this.default(val);
120
+ continue;
121
+ }
122
+
123
+ const opts = Array.isArray(val) ? val : [val];
124
+
125
+ this[prop].apply(this, opts);
126
+ }
127
+ }
128
+
129
+ Object.defineProperty(this, '$$context', {
130
+ enumerable: false,
131
+ configurable: false,
132
+ writable: true,
133
+ value: null
134
+ });
135
+ }
136
+
137
+ /**
138
+ * The class that Mongoose uses internally to instantiate this SchemaType's `options` property.
139
+ * @memberOf SchemaType
140
+ * @instance
141
+ * @api private
142
+ */
143
+
144
+ SchemaType.prototype.OptionsConstructor = SchemaTypeOptions;
145
+
146
+ /**
147
+ * The path to this SchemaType in a Schema.
148
+ *
149
+ * #### Example:
150
+ *
151
+ * const schema = new Schema({ name: String });
152
+ * schema.path('name').path; // 'name'
153
+ *
154
+ * @property path
155
+ * @api public
156
+ * @memberOf SchemaType
157
+ */
158
+
159
+ SchemaType.prototype.path;
160
+
161
+ /**
162
+ * Returns a plain JavaScript object representing this SchemaType.
163
+ *
164
+ * Typically used by `JSON.stringify()` or when calling `.toJSON()` on a SchemaType instance.
165
+ * Omits certain internal properties such as `parentSchema` that can cause circular references.
166
+ *
167
+ * #### Example:
168
+ *
169
+ * const schema = new Schema({ name: String });
170
+ * const schematype = schema.path('name');
171
+ * console.log(schematype.toJSON());
172
+ *
173
+ * @memberOf SchemaType
174
+ * @instance
175
+ * @api public
176
+ */
177
+
178
+ SchemaType.prototype.toJSON = function toJSON() {
179
+ const res = { ...this };
180
+ delete res.parentSchema;
181
+ return res;
182
+ };
183
+
184
+ /**
185
+ * Helper for creating `{ type: 'object' }` vs `{ bsonType: 'object' }` vs nullable variants.
186
+ *
187
+ * @param {string} type
188
+ * @param {string} bsonType
189
+ * @param {object} [options]
190
+ * @param {boolean} [options.useBsonType=false]
191
+ * @param {boolean} [options._defaultRequired=false]
192
+ * @param {boolean} [options._overrideRequired]
193
+ * @returns {object}
194
+ * @api private
195
+ */
196
+
197
+ SchemaType.prototype._createJSONSchemaTypeDefinition = function _createJSONSchemaTypeDefinition(type, bsonType, options) {
198
+ const useBsonType = options?.useBsonType;
199
+ const isRequired = options?._overrideRequired ??
200
+ (this.options.required == null ?
201
+ (options?._defaultRequired === true || this.path === '_id') :
202
+ this.options.required && typeof this.options.required !== 'function');
203
+ const allowNull = this.options.allowNull !== false;
204
+
205
+ if (useBsonType) {
206
+ if (isRequired || !allowNull) {
207
+ return { bsonType };
208
+ }
209
+ return { bsonType: [bsonType, 'null'] };
210
+ }
211
+
212
+ if (isRequired || !allowNull) {
213
+ return { type };
214
+ }
215
+ return { type: [type, 'null'] };
216
+ };
217
+
218
+ /**
219
+ * The validators that Mongoose should run to validate properties at this SchemaType's path.
220
+ *
221
+ * #### Example:
222
+ *
223
+ * const schema = new Schema({ name: { type: String, required: true } });
224
+ * schema.path('name').validators.length; // 1, the `required` validator
225
+ *
226
+ * @property validators
227
+ * @api public
228
+ * @memberOf SchemaType
229
+ */
230
+
231
+ SchemaType.prototype.validators;
232
+
233
+ /**
234
+ * True if this SchemaType has a required validator. False otherwise.
235
+ *
236
+ * #### Example:
237
+ *
238
+ * const schema = new Schema({ name: { type: String, required: true } });
239
+ * schema.path('name').isRequired; // true
240
+ *
241
+ * schema.path('name').required(false);
242
+ * schema.path('name').isRequired; // false
243
+ *
244
+ * @property isRequired
245
+ * @api public
246
+ * @memberOf SchemaType
247
+ */
248
+
249
+ SchemaType.prototype.isRequired;
250
+
251
+ /**
252
+ * Split the current dotted path into segments
253
+ *
254
+ * @return {string[]|undefined}
255
+ * @api private
256
+ */
257
+
258
+ SchemaType.prototype.splitPath = function() {
259
+ if (this._presplitPath != null) {
260
+ return this._presplitPath;
261
+ }
262
+ if (this.path == null) {
263
+ return undefined;
264
+ }
265
+
266
+ this._presplitPath = this.path.indexOf('.') === -1 ? [this.path] : this.path.split('.');
267
+ return this._presplitPath;
268
+ };
269
+
270
+ /**
271
+ * Get/set the function used to cast arbitrary values to this type.
272
+ *
273
+ * #### Example:
274
+ *
275
+ * // Disallow `null` for numbers, and don't try to cast any values to
276
+ * // numbers, so even strings like '123' will cause a CastError.
277
+ * mongoose.Number.cast(function(v) {
278
+ * assert.ok(v === undefined || typeof v === 'number');
279
+ * return v;
280
+ * });
281
+ *
282
+ * @param {Function|false} caster Function that casts arbitrary values to this type, or throws an error if casting failed
283
+ * @return {Function}
284
+ * @static
285
+ * @memberOf SchemaType
286
+ * @function cast
287
+ * @api public
288
+ */
289
+
290
+ SchemaType.cast = function cast(caster) {
291
+ if (arguments.length === 0) {
292
+ return this._cast;
293
+ }
294
+ if (caster === false) {
295
+ caster = v => v;
296
+ }
297
+ this._cast = caster;
298
+
299
+ return this._cast;
300
+ };
301
+
302
+ /**
303
+ * Get/set the function used to cast arbitrary values to this particular schematype instance.
304
+ * Overrides `SchemaType.cast()`.
305
+ *
306
+ * #### Example:
307
+ *
308
+ * // Disallow `null` for numbers, and don't try to cast any values to
309
+ * // numbers, so even strings like '123' will cause a CastError.
310
+ * const number = new mongoose.Number('mypath', {});
311
+ * number.cast(function(v) {
312
+ * assert.ok(v === undefined || typeof v === 'number');
313
+ * return v;
314
+ * });
315
+ *
316
+ * @param {Function|false} caster Function that casts arbitrary values to this type, or throws an error if casting failed
317
+ * @return {Function}
318
+ * @memberOf SchemaType
319
+ * @api public
320
+ */
321
+
322
+ SchemaType.prototype.castFunction = function castFunction(caster, message) {
323
+ if (arguments.length === 0) {
324
+ return this._castFunction;
325
+ }
326
+
327
+ if (caster === false) {
328
+ caster = this.constructor._defaultCaster || (v => v);
329
+ }
330
+ if (typeof caster === 'string') {
331
+ this._castErrorMessage = caster;
332
+ return this._castFunction;
333
+ }
334
+ if (caster != null) {
335
+ this._castFunction = caster;
336
+ }
337
+ if (message != null) {
338
+ this._castErrorMessage = message;
339
+ }
340
+
341
+ return this._castFunction;
342
+ };
343
+
344
+ /**
345
+ * The function that Mongoose calls to cast arbitrary values to this SchemaType.
346
+ *
347
+ * @param {object} value value to cast
348
+ * @param {Document} doc document that triggers the casting
349
+ * @param {boolean} init
350
+ * @api public
351
+ */
352
+
353
+ SchemaType.prototype.cast = function cast() {
354
+ throw new MongooseError('Base SchemaType class does not implement a `cast()` function');
355
+ };
356
+
357
+ /**
358
+ * Sets a default option for this schema type.
359
+ *
360
+ * #### Example:
361
+ *
362
+ * // Make all strings be trimmed by default
363
+ * mongoose.SchemaTypes.String.set('trim', true);
364
+ *
365
+ * @param {string} option The name of the option you'd like to set (e.g. trim, lowercase, etc...)
366
+ * @param {any} value The value of the option you'd like to set.
367
+ * @return {void}
368
+ * @static
369
+ * @memberOf SchemaType
370
+ * @function set
371
+ * @api public
372
+ */
373
+
374
+ SchemaType.set = function set(option, value) {
375
+ if (!Object.hasOwn(this, 'defaultOptions')) {
376
+ this.defaultOptions = Object.assign({}, this.defaultOptions);
377
+ }
378
+ this.defaultOptions[option] = value;
379
+ };
380
+
381
+ /**
382
+ * Attaches a getter for all instances of this schema type.
383
+ *
384
+ * #### Example:
385
+ *
386
+ * // Make all numbers round down
387
+ * mongoose.Number.get(function(v) { return Math.floor(v); });
388
+ *
389
+ * @param {Function} getter
390
+ * @return {this}
391
+ * @static
392
+ * @memberOf SchemaType
393
+ * @function get
394
+ * @api public
395
+ */
396
+
397
+ SchemaType.get = function(getter) {
398
+ this.getters = Object.hasOwn(this, 'getters') ? this.getters : [];
399
+ this.getters.push(getter);
400
+ };
401
+
402
+ /**
403
+ * Sets a default value for this SchemaType.
404
+ *
405
+ * #### Example:
406
+ *
407
+ * const schema = new Schema({ n: { type: Number, default: 10 })
408
+ * const M = db.model('M', schema)
409
+ * const m = new M;
410
+ * console.log(m.n) // 10
411
+ *
412
+ * Defaults can be either `functions` which return the value to use as the default or the literal value itself. Either way, the value will be cast based on its schema type before being set during document creation.
413
+ *
414
+ * #### Example:
415
+ *
416
+ * // values are cast:
417
+ * const schema = new Schema({ num: { type: Number, default: 4.815162342 }})
418
+ * const M = db.model('M', schema)
419
+ * const m = new M;
420
+ * console.log(m.num) // 4.815162342
421
+ *
422
+ * // default unique objects for Mixed types:
423
+ * const schema = new Schema({ mixed: Schema.Types.Mixed });
424
+ * schema.path('mixed').default(function () {
425
+ * return {};
426
+ * });
427
+ *
428
+ * // if we don't use a function to return object literals for Mixed defaults,
429
+ * // each document will receive a reference to the same object literal creating
430
+ * // a "shared" object instance:
431
+ * const schema = new Schema({ mixed: Schema.Types.Mixed });
432
+ * schema.path('mixed').default({});
433
+ * const M = db.model('M', schema);
434
+ * const m1 = new M;
435
+ * m1.mixed.added = 1;
436
+ * console.log(m1.mixed); // { added: 1 }
437
+ * const m2 = new M;
438
+ * console.log(m2.mixed); // { added: 1 }
439
+ *
440
+ * @param {Function|any} val The default value to set
441
+ * @return {any|undefined} Returns the set default value.
442
+ * @api public
443
+ */
444
+
445
+ SchemaType.prototype.default = function(val) {
446
+ if (arguments.length === 1) {
447
+ if (val === void 0) {
448
+ this.defaultValue = void 0;
449
+ return void 0;
450
+ }
451
+
452
+ if (val?.instanceOfSchema) {
453
+ throw new MongooseError('Cannot set default value of path `' + this.path +
454
+ '` to a mongoose Schema instance.');
455
+ }
456
+
457
+ this.defaultValue = val;
458
+ return this.defaultValue;
459
+ } else if (arguments.length > 1) {
460
+ this.defaultValue = [...arguments];
461
+ }
462
+ return this.defaultValue;
463
+ };
464
+
465
+ /**
466
+ * Declares the index options for this schematype.
467
+ *
468
+ * #### Example:
469
+ *
470
+ * const s = new Schema({ name: { type: String, index: true })
471
+ * const s = new Schema({ name: { type: String, index: -1 })
472
+ * const s = new Schema({ loc: { type: [Number], index: 'hashed' })
473
+ * const s = new Schema({ loc: { type: [Number], index: '2d', sparse: true })
474
+ * const s = new Schema({ loc: { type: [Number], index: { type: '2dsphere', sparse: true }})
475
+ * const s = new Schema({ date: { type: Date, index: { unique: true, expires: '1d' }})
476
+ * s.path('my.path').index(true);
477
+ * s.path('my.date').index({ expires: 60 });
478
+ * s.path('my.path').index({ unique: true, sparse: true });
479
+ *
480
+ * @param {object|boolean|string|number} options
481
+ * @return {SchemaType} this
482
+ * @api public
483
+ */
484
+
485
+ SchemaType.prototype.index = function(options) {
486
+ this._index = options;
487
+ utils.expires(this._index);
488
+ return this;
489
+ };
490
+
491
+ /**
492
+ * Declares an unique index.
493
+ *
494
+ * #### Example:
495
+ *
496
+ * const s = new Schema({ name: { type: String, unique: true } });
497
+ * s.path('name').index({ unique: true });
498
+ *
499
+ * _NOTE: violating the constraint returns an `E11000` error from MongoDB when saving, not a Mongoose validation error._
500
+ *
501
+ * You can optionally specify an error message to replace MongoDB's default `E11000 duplicate key error` message.
502
+ * The following will throw a "Email must be unique" error if `save()`, `updateOne()`, `updateMany()`, `replaceOne()`,
503
+ * `findOneAndUpdate()`, or `findOneAndReplace()` throws a duplicate key error:
504
+ *
505
+ * ```javascript
506
+ * new Schema({
507
+ * email: {
508
+ * type: String,
509
+ * unique: [true, 'Email must be unique']
510
+ * }
511
+ * });
512
+ * ```
513
+ *
514
+ * Note that the above syntax does **not** work for `bulkWrite()` or `insertMany()`. `bulkWrite()` and `insertMany()`
515
+ * will still throw MongoDB's default `E11000 duplicate key error` message.
516
+ *
517
+ * @param {boolean} value
518
+ * @param {string} [message]
519
+ * @return {SchemaType} this
520
+ * @api public
521
+ */
522
+
523
+ SchemaType.prototype.unique = function unique(value, message) {
524
+ if (this._index === false) {
525
+ if (!value) {
526
+ return;
527
+ }
528
+ throw new MongooseError('Path "' + this.path + '" may not have `index` set to ' +
529
+ 'false and `unique` set to true');
530
+ }
531
+
532
+ if (!Object.hasOwn(this.options, 'index') && value === false) {
533
+ return this;
534
+ }
535
+
536
+ if (this._index == null || this._index === true) {
537
+ this._index = {};
538
+ } else if (typeof this._index === 'string') {
539
+ this._index = { type: this._index };
540
+ }
541
+
542
+ this._index.unique = !!value;
543
+ if (typeof message === 'string') {
544
+ this._duplicateKeyErrorMessage = message;
545
+ }
546
+ return this;
547
+ };
548
+
549
+ /**
550
+ * Declares a full text index.
551
+ *
552
+ * ### Example:
553
+ *
554
+ * const s = new Schema({ name : { type: String, text : true } })
555
+ * s.path('name').index({ text : true });
556
+ *
557
+ * @param {boolean} bool
558
+ * @return {SchemaType} this
559
+ * @api public
560
+ */
561
+
562
+ SchemaType.prototype.text = function(bool) {
563
+ if (this._index === false) {
564
+ if (!bool) {
565
+ return this;
566
+ }
567
+ throw new MongooseError('Path "' + this.path + '" may not have `index` set to ' +
568
+ 'false and `text` set to true');
569
+ }
570
+
571
+ if (!Object.hasOwn(this.options, 'index') && bool === false) {
572
+ return this;
573
+ }
574
+
575
+ if (this._index === null || this._index === undefined ||
576
+ typeof this._index === 'boolean') {
577
+ this._index = {};
578
+ } else if (typeof this._index === 'string') {
579
+ this._index = { type: this._index };
580
+ }
581
+
582
+ this._index.text = bool;
583
+ return this;
584
+ };
585
+
586
+ /**
587
+ * Declares a sparse index.
588
+ *
589
+ * #### Example:
590
+ *
591
+ * const s = new Schema({ name: { type: String, sparse: true } });
592
+ * s.path('name').index({ sparse: true });
593
+ *
594
+ * @param {boolean} bool
595
+ * @return {SchemaType} this
596
+ * @api public
597
+ */
598
+
599
+ SchemaType.prototype.sparse = function(bool) {
600
+ if (this._index === false) {
601
+ if (!bool) {
602
+ return this;
603
+ }
604
+ throw new MongooseError('Path "' + this.path + '" may not have `index` set to ' +
605
+ 'false and `sparse` set to true');
606
+ }
607
+
608
+ if (!Object.hasOwn(this.options, 'index') && bool === false) {
609
+ return this;
610
+ }
611
+
612
+ if (this._index == null || typeof this._index === 'boolean') {
613
+ this._index = {};
614
+ } else if (typeof this._index === 'string') {
615
+ this._index = { type: this._index };
616
+ }
617
+
618
+ this._index.sparse = bool;
619
+ return this;
620
+ };
621
+
622
+ /**
623
+ * Defines this path as immutable. Mongoose prevents you from changing
624
+ * immutable paths unless the parent document has [`isNew: true`](https://mongoosejs.com/docs/api/document.html#Document.prototype.isNew()).
625
+ *
626
+ * #### Example:
627
+ *
628
+ * const schema = new Schema({
629
+ * name: { type: String, immutable: true },
630
+ * age: Number
631
+ * });
632
+ * const Model = mongoose.model('Test', schema);
633
+ *
634
+ * await Model.create({ name: 'test' });
635
+ * const doc = await Model.findOne();
636
+ *
637
+ * doc.isNew; // false
638
+ * doc.name = 'new name';
639
+ * doc.name; // 'test', because `name` is immutable
640
+ *
641
+ * Mongoose also prevents changing immutable properties using `updateOne()`
642
+ * and `updateMany()` based on [strict mode](https://mongoosejs.com/docs/guide.html#strict).
643
+ *
644
+ * #### Example:
645
+ *
646
+ * // Mongoose will strip out the `name` update, because `name` is immutable
647
+ * Model.updateOne({}, { $set: { name: 'test2' }, $inc: { age: 1 } });
648
+ *
649
+ * // If `strict` is set to 'throw', Mongoose will throw an error if you
650
+ * // update `name`
651
+ * const err = await Model.updateOne({}, { name: 'test2' }, { strict: 'throw' }).
652
+ * then(() => null, err => err);
653
+ * err.name; // StrictModeError
654
+ *
655
+ * // If `strict` is `false`, Mongoose allows updating `name` even though
656
+ * // the property is immutable.
657
+ * Model.updateOne({}, { name: 'test2' }, { strict: false });
658
+ *
659
+ * @param {boolean} bool
660
+ * @return {SchemaType} this
661
+ * @see isNew https://mongoosejs.com/docs/api/document.html#Document.prototype.isNew()
662
+ * @api public
663
+ */
664
+
665
+ SchemaType.prototype.immutable = function(bool) {
666
+ this.$immutable = bool;
667
+ handleImmutable(this);
668
+
669
+ return this;
670
+ };
671
+
672
+ /**
673
+ * Defines a custom function for transforming this path when converting a document to JSON.
674
+ *
675
+ * Mongoose calls this function with one parameter: the current `value` of the path. Mongoose
676
+ * then uses the return value in the JSON output.
677
+ *
678
+ * #### Example:
679
+ *
680
+ * const schema = new Schema({
681
+ * date: { type: Date, transform: v => v.getFullYear() }
682
+ * });
683
+ * const Model = mongoose.model('Test', schema);
684
+ *
685
+ * await Model.create({ date: new Date('2016-06-01') });
686
+ * const doc = await Model.findOne();
687
+ *
688
+ * doc.date instanceof Date; // true
689
+ *
690
+ * doc.toJSON().date; // 2016 as a number
691
+ * JSON.stringify(doc); // '{"_id":...,"date":2016}'
692
+ *
693
+ * @param {Function} fn
694
+ * @return {SchemaType} this
695
+ * @api public
696
+ */
697
+
698
+ SchemaType.prototype.transform = function(fn) {
699
+ this.options.transform = fn;
700
+
701
+ return this;
702
+ };
703
+
704
+ /**
705
+ * Adds a setter to this schematype.
706
+ *
707
+ * #### Example:
708
+ *
709
+ * function capitalize (val) {
710
+ * if (typeof val !== 'string') val = '';
711
+ * return val.charAt(0).toUpperCase() + val.substring(1);
712
+ * }
713
+ *
714
+ * // defining within the schema
715
+ * const s = new Schema({ name: { type: String, set: capitalize }});
716
+ *
717
+ * // or with the SchemaType
718
+ * const s = new Schema({ name: String })
719
+ * s.path('name').set(capitalize);
720
+ *
721
+ * Setters allow you to transform the data before it gets to the raw mongodb
722
+ * document or query.
723
+ *
724
+ * Suppose you are implementing user registration for a website. Users provide
725
+ * an email and password, which gets saved to mongodb. The email is a string
726
+ * that you will want to normalize to lower case, in order to avoid one email
727
+ * having more than one account -- e.g., otherwise, avenue@q.com can be registered for 2 accounts via avenue@q.com and AvEnUe@Q.CoM.
728
+ *
729
+ * You can set up email lower case normalization easily via a Mongoose setter.
730
+ *
731
+ * function toLower(v) {
732
+ * return v.toLowerCase();
733
+ * }
734
+ *
735
+ * const UserSchema = new Schema({
736
+ * email: { type: String, set: toLower }
737
+ * });
738
+ *
739
+ * const User = db.model('User', UserSchema);
740
+ *
741
+ * const user = new User({email: 'AVENUE@Q.COM'});
742
+ * console.log(user.email); // 'avenue@q.com'
743
+ *
744
+ * // or
745
+ * const user = new User();
746
+ * user.email = 'Avenue@Q.com';
747
+ * console.log(user.email); // 'avenue@q.com'
748
+ * User.updateOne({ _id: _id }, { $set: { email: 'AVENUE@Q.COM' } }); // update to 'avenue@q.com'
749
+ *
750
+ * // Setters also transform query filters
751
+ * const user = await User.find({ email: 'AVENUE@Q.COM' }); // query for 'avenue@q.com'
752
+ *
753
+ * As you can see above, setters allow you to transform the data before it
754
+ * stored in MongoDB, or before executing a query.
755
+ *
756
+ * _NOTE: we could have also just used the built-in [`lowercase: true` SchemaType option](https://mongoosejs.com/docs/api/schemastringoptions.html#SchemaStringOptions.prototype.lowercase) instead of defining our own function._
757
+ *
758
+ * new Schema({ email: { type: String, lowercase: true }})
759
+ *
760
+ * Setters are also passed a second argument, the schematype on which the setter was defined. This allows for tailored behavior based on options passed in the schema.
761
+ *
762
+ * function inspector (val, priorValue, schematype) {
763
+ * if (schematype.options.required) {
764
+ * return schematype.path + ' is required';
765
+ * } else {
766
+ * return val;
767
+ * }
768
+ * }
769
+ *
770
+ * const VirusSchema = new Schema({
771
+ * name: { type: String, required: true, set: inspector },
772
+ * taxonomy: { type: String, set: inspector }
773
+ * })
774
+ *
775
+ * const Virus = db.model('Virus', VirusSchema);
776
+ * const v = new Virus({ name: 'Parvoviridae', taxonomy: 'Parvovirinae' });
777
+ *
778
+ * console.log(v.name); // name is required
779
+ * console.log(v.taxonomy); // Parvovirinae
780
+ *
781
+ * You can also use setters to modify other properties on the document. If
782
+ * you're setting a property `name` on a document, the setter will run with
783
+ * `this` as the document. Be careful, in mongoose 5 setters will also run
784
+ * when querying by `name` with `this` as the query.
785
+ *
786
+ * const nameSchema = new Schema({ name: String, keywords: [String] });
787
+ * nameSchema.path('name').set(function(v) {
788
+ * // Need to check if `this` is a document, because in mongoose 5
789
+ * // setters will also run on queries, in which case `this` will be a
790
+ * // mongoose query object.
791
+ * if (this instanceof Document && v != null) {
792
+ * this.keywords = v.split(' ');
793
+ * }
794
+ * return v;
795
+ * });
796
+ *
797
+ * @param {Function} fn
798
+ * @return {SchemaType} this
799
+ * @api public
800
+ */
801
+
802
+ SchemaType.prototype.set = function(fn) {
803
+ if (typeof fn !== 'function') {
804
+ throw new TypeError('A setter must be a function.');
805
+ }
806
+ this.setters.push(fn);
807
+ return this;
808
+ };
809
+
810
+ /**
811
+ * Adds a getter to this schematype.
812
+ *
813
+ * #### Example:
814
+ *
815
+ * function dob (val) {
816
+ * if (!val) return val;
817
+ * return (val.getMonth() + 1) + "/" + val.getDate() + "/" + val.getFullYear();
818
+ * }
819
+ *
820
+ * // defining within the schema
821
+ * const s = new Schema({ born: { type: Date, get: dob })
822
+ *
823
+ * // or by retrieving its SchemaType
824
+ * const s = new Schema({ born: Date })
825
+ * s.path('born').get(dob)
826
+ *
827
+ * Getters allow you to transform the representation of the data as it travels from the raw mongodb document to the value that you see.
828
+ *
829
+ * Suppose you are storing credit card numbers and you want to hide everything except the last 4 digits to the mongoose user. You can do so by defining a getter in the following way:
830
+ *
831
+ * function obfuscate (cc) {
832
+ * return '****-****-****-' + cc.slice(cc.length-4, cc.length);
833
+ * }
834
+ *
835
+ * const AccountSchema = new Schema({
836
+ * creditCardNumber: { type: String, get: obfuscate }
837
+ * });
838
+ *
839
+ * const Account = db.model('Account', AccountSchema);
840
+ *
841
+ * Account.findById(id, function (err, found) {
842
+ * console.log(found.creditCardNumber); // '****-****-****-1234'
843
+ * });
844
+ *
845
+ * Getters are also passed a second argument, the schematype on which the getter was defined. This allows for tailored behavior based on options passed in the schema.
846
+ *
847
+ * function inspector (val, priorValue, schematype) {
848
+ * if (schematype.options.required) {
849
+ * return schematype.path + ' is required';
850
+ * } else {
851
+ * return schematype.path + ' is not';
852
+ * }
853
+ * }
854
+ *
855
+ * const VirusSchema = new Schema({
856
+ * name: { type: String, required: true, get: inspector },
857
+ * taxonomy: { type: String, get: inspector }
858
+ * })
859
+ *
860
+ * const Virus = db.model('Virus', VirusSchema);
861
+ *
862
+ * Virus.findById(id, function (err, virus) {
863
+ * console.log(virus.name); // name is required
864
+ * console.log(virus.taxonomy); // taxonomy is not
865
+ * })
866
+ *
867
+ * @param {Function} fn
868
+ * @return {SchemaType} this
869
+ * @api public
870
+ */
871
+
872
+ SchemaType.prototype.get = function(fn) {
873
+ if (typeof fn !== 'function') {
874
+ throw new TypeError('A getter must be a function.');
875
+ }
876
+ this.getters.push(fn);
877
+ return this;
878
+ };
879
+
880
+ /**
881
+ * Adds multiple validators for this document path.
882
+ * Calls `validate()` for every element in validators.
883
+ *
884
+ * @param {(RegExp|Function|object)[]} validators
885
+ * @returns {SchemaType}
886
+ */
887
+
888
+ SchemaType.prototype.validateAll = function(validators) {
889
+ for (let i = 0; i < validators.length; i++) {
890
+ this.validate(validators[i]);
891
+ }
892
+ return this;
893
+ };
894
+
895
+ /**
896
+ * Adds validator(s) for this document path.
897
+ *
898
+ * Validators always receive the value to validate as their first argument and
899
+ * must return `Boolean`. Returning `false` or throwing an error means
900
+ * validation failed.
901
+ *
902
+ * The error message argument is optional. If not passed, the [default generic error message template](https://mongoosejs.com/docs/api/error.html#Error.messages) will be used.
903
+ *
904
+ * #### Example:
905
+ *
906
+ * // make sure every value is equal to "something"
907
+ * function validator (val) {
908
+ * return val === 'something';
909
+ * }
910
+ * new Schema({ name: { type: String, validate: validator }});
911
+ *
912
+ * // with a custom error message
913
+ *
914
+ * const custom = [validator, 'Uh oh, {PATH} does not equal "something".']
915
+ * new Schema({ name: { type: String, validate: custom }});
916
+ *
917
+ * // adding many validators at a time
918
+ *
919
+ * const many = [
920
+ * { validator: validator, message: 'uh oh' }
921
+ * , { validator: anotherValidator, message: 'failed' }
922
+ * ]
923
+ * new Schema({ name: { type: String, validate: many }});
924
+ *
925
+ * // or utilizing SchemaType methods directly:
926
+ *
927
+ * const schema = new Schema({ name: 'string' });
928
+ * schema.path('name').validate(validator, 'validation of `{PATH}` failed with value `{VALUE}`');
929
+ *
930
+ * #### Error message templates:
931
+ *
932
+ * Below is a list of supported template keywords:
933
+ *
934
+ * - PATH: The schema path where the error is being triggered.
935
+ * - VALUE: The value assigned to the PATH that is triggering the error.
936
+ * - KIND: The validation property that triggered the error i.e. required.
937
+ * - REASON: The error object that caused this error if there was one.
938
+ *
939
+ * If Mongoose's built-in error message templating isn't enough, Mongoose
940
+ * supports setting the `message` property to a function.
941
+ *
942
+ * schema.path('name').validate({
943
+ * validator: function(v) { return v.length > 5; },
944
+ * // `errors['name']` will be "name must have length 5, got 'foo'"
945
+ * message: function(props) {
946
+ * return `${props.path} must have length 5, got '${props.value}'`;
947
+ * }
948
+ * });
949
+ *
950
+ * To bypass Mongoose's error messages and just copy the error message that
951
+ * the validator throws, do this:
952
+ *
953
+ * schema.path('name').validate({
954
+ * validator: function() { throw new Error('Oops!'); },
955
+ * // `errors['name'].message` will be "Oops!"
956
+ * message: function(props) { return props.reason.message; }
957
+ * });
958
+ *
959
+ * #### Asynchronous validation:
960
+ *
961
+ * Mongoose supports validators that return a promise. A validator that returns
962
+ * a promise is called an _async validator_. Async validators run in
963
+ * parallel, and `validate()` will wait until all async validators have settled.
964
+ *
965
+ * schema.path('name').validate({
966
+ * validator: function (value) {
967
+ * return new Promise(function (resolve, reject) {
968
+ * resolve(false); // validation failed
969
+ * });
970
+ * }
971
+ * });
972
+ *
973
+ * You might use asynchronous validators to retrieve other documents from the database to validate against or to meet other I/O bound validation needs.
974
+ *
975
+ * Validation occurs `pre('save')` or whenever you manually execute [document#validate](https://mongoosejs.com/docs/api/document.html#Document.prototype.validate()).
976
+ *
977
+ * If validation fails during `pre('save')` and no callback was passed to receive the error, an `error` event will be emitted on your Models associated db [connection](https://mongoosejs.com/docs/api/connection.html#Connection()), passing the validation error object along.
978
+ *
979
+ * const conn = mongoose.createConnection(..);
980
+ * conn.on('error', handleError);
981
+ *
982
+ * const Product = conn.model('Product', yourSchema);
983
+ * const dvd = new Product(..);
984
+ * dvd.save(); // emits error on the `conn` above
985
+ *
986
+ * If you want to handle these errors at the Model level, add an `error`
987
+ * listener to your Model as shown below.
988
+ *
989
+ * // registering an error listener on the Model lets us handle errors more locally
990
+ * Product.on('error', handleError);
991
+ *
992
+ * @param {RegExp|Function|object} obj validator function, or hash describing options
993
+ * @param {Function} [obj.validator] validator function. If the validator function returns `undefined` or a truthy value, validation succeeds. If it returns [falsy](https://masteringjs.io/tutorials/fundamentals/falsy) (except `undefined`) or throws an error, validation fails.
994
+ * @param {string|Function} [obj.message] optional error message. If function, should return the error message as a string
995
+ * @param {boolean} [obj.propsParameter=false] If true, Mongoose will pass the validator properties object (with the `validator` function, `message`, etc.) as the 2nd arg to the validator function. This is disabled by default because many validators [rely on positional args](https://github.com/chriso/validator.js#validators), so turning this on may cause unpredictable behavior in external validators.
996
+ * @param {string|Function} [errorMsg] optional error message. If function, should return the error message as a string
997
+ * @param {string} [type] optional validator type
998
+ * @return {SchemaType} this
999
+ * @api public
1000
+ */
1001
+
1002
+ SchemaType.prototype.validate = function(obj, message, type) {
1003
+ if (typeof obj === 'function' || obj && utils.getFunctionName(obj.constructor) === 'RegExp') {
1004
+ let properties;
1005
+ if (typeof message === 'function') {
1006
+ properties = { validator: obj, message: message };
1007
+ properties.type = type || 'user defined';
1008
+ } else if (message instanceof Object && !type) {
1009
+ properties = isSimpleValidator(message) ? Object.assign({}, message) : clone(message);
1010
+ if (!properties.message) {
1011
+ properties.message = properties.msg;
1012
+ }
1013
+ properties.validator = obj;
1014
+ properties.type = properties.type || 'user defined';
1015
+ } else {
1016
+ if (message == null) {
1017
+ message = MongooseError.messages.general.default;
1018
+ }
1019
+ if (!type) {
1020
+ type = 'user defined';
1021
+ }
1022
+ properties = { message: message, type: type, validator: obj };
1023
+ }
1024
+
1025
+ this.validators.push(properties);
1026
+ return this;
1027
+ }
1028
+
1029
+ let i;
1030
+ let length;
1031
+ let arg;
1032
+
1033
+ for (i = 0, length = arguments.length; i < length; i++) {
1034
+ arg = arguments[i];
1035
+ if (!utils.isPOJO(arg)) {
1036
+ const msg = 'Invalid validator. Received (' + typeof arg + ') '
1037
+ + arg
1038
+ + '. See https://mongoosejs.com/docs/api/schematype.html#SchemaType.prototype.validate()';
1039
+
1040
+ throw new MongooseError(msg);
1041
+ }
1042
+ this.validate(arg.validator, arg);
1043
+ }
1044
+
1045
+ return this;
1046
+ };
1047
+
1048
+ /**
1049
+ * Adds a required validator to this SchemaType. The validator gets added
1050
+ * to the front of this SchemaType's validators array using `unshift()`.
1051
+ *
1052
+ * #### Example:
1053
+ *
1054
+ * const s = new Schema({ born: { type: Date, required: true })
1055
+ *
1056
+ * // or with custom error message
1057
+ *
1058
+ * const s = new Schema({ born: { type: Date, required: '{PATH} is required!' })
1059
+ *
1060
+ * // or with a function
1061
+ *
1062
+ * const s = new Schema({
1063
+ * userId: ObjectId,
1064
+ * username: {
1065
+ * type: String,
1066
+ * required: function() { return this.userId != null; }
1067
+ * }
1068
+ * })
1069
+ *
1070
+ * // or with a function and a custom message
1071
+ * const s = new Schema({
1072
+ * userId: ObjectId,
1073
+ * username: {
1074
+ * type: String,
1075
+ * required: [
1076
+ * function() { return this.userId != null; },
1077
+ * 'username is required if id is specified'
1078
+ * ]
1079
+ * }
1080
+ * })
1081
+ *
1082
+ * // or through the path API
1083
+ *
1084
+ * s.path('name').required(true);
1085
+ *
1086
+ * // with custom error messaging
1087
+ *
1088
+ * s.path('name').required(true, 'grrr :( ');
1089
+ *
1090
+ * // or make a path conditionally required based on a function
1091
+ * const isOver18 = function() { return this.age >= 18; };
1092
+ * s.path('voterRegistrationId').required(isOver18);
1093
+ *
1094
+ * The required validator uses the SchemaType's `checkRequired` function to
1095
+ * determine whether a given value satisfies the required validator. By default,
1096
+ * a value satisfies the required validator if `val != null` (that is, if
1097
+ * the value is not null nor undefined). However, most built-in mongoose schema
1098
+ * types override the default `checkRequired` function:
1099
+ *
1100
+ * @param {boolean|Function|object} required enable/disable the validator, or function that returns required boolean, or options object
1101
+ * @param {boolean|Function} [options.isRequired] enable/disable the validator, or function that returns required boolean
1102
+ * @param {Function} [options.ErrorConstructor] custom error constructor. The constructor receives 1 parameter, an object containing the validator properties.
1103
+ * @param {string} [message] optional custom error message
1104
+ * @return {SchemaType} this
1105
+ * @see Customized Error Messages https://mongoosejs.com/docs/api/error.html#Error.messages
1106
+ * @see SchemaArray#checkRequired https://mongoosejs.com/docs/api/schemaarray.html#SchemaArray.prototype.checkRequired()
1107
+ * @see SchemaBoolean#checkRequired https://mongoosejs.com/docs/api/schemaboolean.html#SchemaBoolean.prototype.checkRequired()
1108
+ * @see SchemaBuffer#checkRequired https://mongoosejs.com/docs/api/schemabuffer.html#SchemaBuffer.prototype.checkRequired()
1109
+ * @see SchemaNumber#checkRequired https://mongoosejs.com/docs/api/schemanumber.html#SchemaNumber.prototype.checkRequired()
1110
+ * @see SchemaObjectId#checkRequired https://mongoosejs.com/docs/api/schemaobjectid.html#ObjectId.prototype.checkRequired()
1111
+ * @see SchemaString#checkRequired https://mongoosejs.com/docs/api/schemastring.html#SchemaString.prototype.checkRequired()
1112
+ * @api public
1113
+ */
1114
+
1115
+ SchemaType.prototype.required = function(required, message) {
1116
+ let customOptions = {};
1117
+
1118
+ if (arguments.length > 0 && required == null) {
1119
+ this.validators = this.validators.filter(function(v) {
1120
+ return v.validator !== this.requiredValidator;
1121
+ }, this);
1122
+
1123
+ this.isRequired = false;
1124
+ delete this.originalRequiredValue;
1125
+ return this;
1126
+ }
1127
+
1128
+ if (typeof required === 'object') {
1129
+ customOptions = required;
1130
+ message = customOptions.message || message;
1131
+ required = required.isRequired;
1132
+ }
1133
+
1134
+ if (required === false) {
1135
+ this.validators = this.validators.filter(function(v) {
1136
+ return v.validator !== this.requiredValidator;
1137
+ }, this);
1138
+
1139
+ this.isRequired = false;
1140
+ delete this.originalRequiredValue;
1141
+ return this;
1142
+ }
1143
+
1144
+ const _this = this;
1145
+ this.isRequired = true;
1146
+ this.originalRequiredValue = required;
1147
+
1148
+ if (typeof this.originalRequiredValue !== 'function' &&
1149
+ (utils.hasUserDefinedProperty(this.options, 'allowNull') || this.allowNullValidator != null)) {
1150
+ throw new MongooseError('Path "' + this.path + '" may not have `allowNull` specified when `required` is true');
1151
+ }
1152
+
1153
+ this.requiredValidator = function(v) {
1154
+ const cachedRequired = this?.$__?.cachedRequired;
1155
+
1156
+ // no validation when this path wasn't selected in the query.
1157
+ if (cachedRequired != null && !this.$__isSelected(_this.path) && !this[documentIsModified](_this.path)) {
1158
+ return true;
1159
+ }
1160
+
1161
+ // `$cachedRequired` gets set in `_evaluateRequiredFunctions()` so we
1162
+ // don't call required functions multiple times in one validate call
1163
+ // See gh-6801
1164
+ if (cachedRequired != null && _this.path in cachedRequired) {
1165
+ const res = cachedRequired[_this.path] ?
1166
+ _this.checkRequired(v, this) :
1167
+ true;
1168
+ delete cachedRequired[_this.path];
1169
+ return res;
1170
+ } else if (typeof required === 'function') {
1171
+ return required.apply(this) ? _this.checkRequired(v, this) : true;
1172
+ }
1173
+
1174
+ return _this.checkRequired(v, this);
1175
+ };
1176
+ if (typeof required === 'string') {
1177
+ message = required;
1178
+ required = undefined;
1179
+ }
1180
+
1181
+ const msg = message || MongooseError.messages.general.required;
1182
+ this.validators.unshift(Object.assign({}, customOptions, {
1183
+ validator: this.requiredValidator,
1184
+ message: msg,
1185
+ type: 'required'
1186
+ }));
1187
+
1188
+ return this;
1189
+ };
1190
+
1191
+ /**
1192
+ * Adds a validator that disallows `null` for this path without making the path
1193
+ * required. `undefined` values still pass validation.
1194
+ *
1195
+ * #### Example:
1196
+ *
1197
+ * const schema = new Schema({
1198
+ * name: { type: String, allowNull: false }
1199
+ * });
1200
+ *
1201
+ * new Model({}).validateSync(); // OK
1202
+ * new Model({ name: undefined }).validateSync(); // OK, Mongoose strips out `name` when its value is `undefined`
1203
+ * new Model({ name: null }).validateSync(); // ValidationError
1204
+ *
1205
+ * @param {boolean} allowNull
1206
+ * @return {SchemaType} this
1207
+ * @api public
1208
+ */
1209
+
1210
+ SchemaType.prototype.allowNull = function(allowNull) {
1211
+ if (arguments.length > 0 && this.isRequired && typeof this.originalRequiredValue !== 'function') {
1212
+ throw new MongooseError('Path "' + this.path + '" may not have `allowNull` specified when `required` is true');
1213
+ }
1214
+
1215
+ this.validators = this.validators.filter(function(v) {
1216
+ return v.validator !== this.allowNullValidator;
1217
+ }, this);
1218
+
1219
+ if (allowNull !== false) {
1220
+ delete this.options.allowNull;
1221
+ delete this.allowNullValidator;
1222
+ return this;
1223
+ }
1224
+
1225
+ this.options.allowNull = false;
1226
+ this.allowNullValidator = function(v) {
1227
+ return v !== null;
1228
+ };
1229
+
1230
+ this.validators.push({
1231
+ validator: this.allowNullValidator,
1232
+ message: MongooseError.messages.general.allowNull,
1233
+ type: 'allowNull'
1234
+ });
1235
+
1236
+ return this;
1237
+ };
1238
+
1239
+ /**
1240
+ * Set the model that this path refers to. This is the option that [populate](https://mongoosejs.com/docs/populate.html)
1241
+ * looks at to determine the foreign collection it should query.
1242
+ *
1243
+ * #### Example:
1244
+ *
1245
+ * const userSchema = new Schema({ name: String });
1246
+ * const User = mongoose.model('User', userSchema);
1247
+ *
1248
+ * const postSchema = new Schema({ user: mongoose.ObjectId });
1249
+ * postSchema.path('user').ref('User'); // Can set ref to a model name
1250
+ * postSchema.path('user').ref(User); // Or a model class
1251
+ * postSchema.path('user').ref(() => 'User'); // Or a function that returns the model name
1252
+ * postSchema.path('user').ref(() => User); // Or a function that returns the model class
1253
+ *
1254
+ * // Or you can just declare the `ref` inline in your schema
1255
+ * const postSchema2 = new Schema({
1256
+ * user: { type: mongoose.ObjectId, ref: User }
1257
+ * });
1258
+ *
1259
+ * @param {string|Model|Function} ref either a model name, a [Model](https://mongoosejs.com/docs/models.html), or a function that returns a model name or model.
1260
+ * @return {SchemaType} this
1261
+ * @api public
1262
+ */
1263
+
1264
+ SchemaType.prototype.ref = function(ref) {
1265
+ this.options.ref = ref;
1266
+ return this;
1267
+ };
1268
+
1269
+ /**
1270
+ * Gets the default value
1271
+ *
1272
+ * @param {object} parentDoc
1273
+ * @param {boolean} init
1274
+ * @param {object} options
1275
+ * @param {object} [options.context]
1276
+ * @param {boolean} [options.skipCast]
1277
+ * @return {any} The Stored default value.
1278
+ * @api private
1279
+ */
1280
+
1281
+ SchemaType.prototype.getDefault = function getDefault(parentDoc, init, options) {
1282
+ let ret;
1283
+ if (this.defaultValue == null) {
1284
+ return this.defaultValue;
1285
+ }
1286
+ if (typeof this.defaultValue === 'function') {
1287
+ // In setDefaultsOnInsert, we pass the Query as `context` option. This is used to
1288
+ // avoid passing the query as the parent doc to `applySetters()` below, because
1289
+ // applySetters assumes parentDoc is a document or null. Queries run setters
1290
+ // separately anyway.
1291
+ const context = options?.context ?? parentDoc;
1292
+ if (
1293
+ this.defaultValue === Date.now ||
1294
+ this.defaultValue === Array ||
1295
+ this.defaultValue.name.toLowerCase() === 'objectid'
1296
+ ) {
1297
+ ret = this.defaultValue.call(context);
1298
+ } else {
1299
+ ret = this.defaultValue.call(context, context);
1300
+ }
1301
+ } else {
1302
+ ret = this.defaultValue;
1303
+ }
1304
+
1305
+ if (ret != null) {
1306
+ if (typeof ret === 'object' && !this.options?.shared) {
1307
+ ret = clone(ret);
1308
+ }
1309
+
1310
+ if (options?.skipCast) {
1311
+ return this._applySetters(ret, parentDoc);
1312
+ }
1313
+
1314
+ const casted = this.applySetters(ret, parentDoc, init, undefined, setOptionsForDefaults);
1315
+ if (casted && !Array.isArray(casted) && casted.$isSingleNested) {
1316
+ casted.$__parent = parentDoc;
1317
+ }
1318
+ return casted;
1319
+ }
1320
+ return ret;
1321
+ };
1322
+
1323
+ /**
1324
+ * Applies setters without casting
1325
+ *
1326
+ * @param {any} value
1327
+ * @param {any} scope
1328
+ * @param {boolean} init
1329
+ * @param {any} priorVal
1330
+ * @param {object} [options]
1331
+ * @instance
1332
+ * @api private
1333
+ */
1334
+
1335
+ SchemaType.prototype._applySetters = function(value, scope, init, priorVal, options) {
1336
+ let v = value;
1337
+ if (init) {
1338
+ return v;
1339
+ }
1340
+ const setters = this.setters;
1341
+
1342
+ for (let i = setters.length - 1; i >= 0; i--) {
1343
+ v = setters[i].call(scope, v, priorVal, this, options);
1344
+ }
1345
+
1346
+ return v;
1347
+ };
1348
+
1349
+ /*!
1350
+ * ignore
1351
+ */
1352
+
1353
+ SchemaType.prototype._castNullish = function _castNullish(v) {
1354
+ return v;
1355
+ };
1356
+
1357
+ /**
1358
+ * Applies setters
1359
+ *
1360
+ * @param {any} value
1361
+ * @param {object} scope
1362
+ * @param {boolean} init
1363
+ * @return {any}
1364
+ * @api private
1365
+ */
1366
+
1367
+ SchemaType.prototype.applySetters = function(value, scope, init, priorVal, options) {
1368
+ let v = this._applySetters(value, scope, init, priorVal, options);
1369
+ if (v == null) {
1370
+ return this._castNullish(v);
1371
+ }
1372
+ // do not cast until all setters are applied #665
1373
+ v = this.cast(v, scope, init, priorVal, options);
1374
+
1375
+ return v;
1376
+ };
1377
+
1378
+ /**
1379
+ * Applies getters to a value
1380
+ *
1381
+ * @param {object} value
1382
+ * @param {object} scope
1383
+ * @return {any}
1384
+ * @api private
1385
+ */
1386
+
1387
+ SchemaType.prototype.applyGetters = function(value, scope) {
1388
+ let v = value;
1389
+ const getters = this.getters;
1390
+ const len = getters.length;
1391
+
1392
+ if (len === 0) {
1393
+ return v;
1394
+ }
1395
+
1396
+ for (let i = 0; i < len; ++i) {
1397
+ v = getters[i].call(scope, v, this);
1398
+ }
1399
+
1400
+ return v;
1401
+ };
1402
+
1403
+ /**
1404
+ * Sets default `select()` behavior for this path.
1405
+ *
1406
+ * Set to `true` if this path should always be included in the results, `false` if it should be excluded by default. This setting can be overridden at the query level.
1407
+ *
1408
+ * #### Example:
1409
+ *
1410
+ * T = db.model('T', new Schema({ x: { type: String, select: true }}));
1411
+ * T.find(..); // field x will always be selected ..
1412
+ * // .. unless overridden;
1413
+ * T.find().select('-x').exec(callback);
1414
+ *
1415
+ * @param {boolean} val
1416
+ * @return {SchemaType} this
1417
+ * @api public
1418
+ */
1419
+
1420
+ SchemaType.prototype.select = function select(val) {
1421
+ this.selected = !!val;
1422
+ return this;
1423
+ };
1424
+
1425
+ /**
1426
+ * Performs a validation of `value` using the validators declared for this SchemaType.
1427
+ *
1428
+ * @param {any} value
1429
+ * @param {object} scope
1430
+ * @param {object} [options]
1431
+ * @param {string} [options.path]
1432
+ * @return {any} If no validators, returns the output from calling `fn`, otherwise no return
1433
+ * @api public
1434
+ */
1435
+
1436
+ SchemaType.prototype.doValidate = async function doValidate(value, scope, options) {
1437
+ let err = false;
1438
+ const path = this.path;
1439
+
1440
+ // Avoid non-object `validators`
1441
+ const validators = this.validators.
1442
+ filter(v => typeof v === 'object' && v !== null);
1443
+
1444
+ if (!validators.length) {
1445
+ return;
1446
+ }
1447
+
1448
+ const promises = [];
1449
+ for (let i = 0, len = validators.length; i < len; ++i) {
1450
+ const v = validators[i];
1451
+ const validator = v.validator;
1452
+ let ok;
1453
+
1454
+ const validatorProperties = isSimpleValidator(v) ? Object.assign({}, v) : clone(v);
1455
+ validatorProperties.path = options?.path || path;
1456
+ validatorProperties.fullPath = this.$fullPath;
1457
+ validatorProperties.value = value;
1458
+ if (typeof value === 'string') {
1459
+ validatorProperties.length = value.length;
1460
+ }
1461
+
1462
+ if (value === undefined && validator !== this.requiredValidator) {
1463
+ continue;
1464
+ }
1465
+ if (validator instanceof RegExp) {
1466
+ ok = validator.test(value);
1467
+ if (ok === false) {
1468
+ const ErrorConstructor = validatorProperties.ErrorConstructor || ValidatorError;
1469
+ err = new ErrorConstructor(validatorProperties, scope);
1470
+ err[validatorErrorSymbol] = true;
1471
+ throw err;
1472
+ }
1473
+ continue;
1474
+ } else if (typeof validator !== 'function') {
1475
+ continue;
1476
+ }
1477
+
1478
+ try {
1479
+ if (validatorProperties.propsParameter) {
1480
+ ok = validator.call(scope, value, validatorProperties);
1481
+ } else {
1482
+ ok = validator.call(scope, value);
1483
+ }
1484
+ } catch (error) {
1485
+ ok = false;
1486
+ validatorProperties.reason = error;
1487
+ if (error.message) {
1488
+ validatorProperties.message = error.message;
1489
+ }
1490
+ }
1491
+
1492
+ if (typeof ok?.then === 'function') {
1493
+ promises.push(
1494
+ ok.then(
1495
+ function(ok) {
1496
+ if (ok === false) {
1497
+ const ErrorConstructor = validatorProperties.ErrorConstructor || ValidatorError;
1498
+ err = new ErrorConstructor(validatorProperties, scope);
1499
+ err[validatorErrorSymbol] = true;
1500
+ throw err;
1501
+ }
1502
+ },
1503
+ function(error) {
1504
+ validatorProperties.reason = error;
1505
+ validatorProperties.message = error.message;
1506
+ ok = false;
1507
+ const ErrorConstructor = validatorProperties.ErrorConstructor || ValidatorError;
1508
+ err = new ErrorConstructor(validatorProperties, scope);
1509
+ err[validatorErrorSymbol] = true;
1510
+ throw err;
1511
+ })
1512
+ );
1513
+ } else if (ok !== undefined && !ok) {
1514
+ const ErrorConstructor = validatorProperties.ErrorConstructor || ValidatorError;
1515
+ err = new ErrorConstructor(validatorProperties, scope);
1516
+ err[validatorErrorSymbol] = true;
1517
+ throw err;
1518
+ }
1519
+ }
1520
+
1521
+ await Promise.all(promises);
1522
+ };
1523
+
1524
+
1525
+ function _validate(ok, validatorProperties) {
1526
+ if (ok !== undefined && !ok) {
1527
+ const ErrorConstructor = validatorProperties.ErrorConstructor || ValidatorError;
1528
+ const err = new ErrorConstructor(validatorProperties);
1529
+ err[validatorErrorSymbol] = true;
1530
+ return err;
1531
+ }
1532
+ }
1533
+
1534
+ /**
1535
+ * Performs a validation of `value` using the validators declared for this SchemaType.
1536
+ *
1537
+ * #### Note:
1538
+ *
1539
+ * This method ignores the asynchronous validators.
1540
+ *
1541
+ * @param {any} value
1542
+ * @param {object} scope
1543
+ * @param {object} [options]
1544
+ * @param {string} [options.path]
1545
+ * @return {MongooseError|null}
1546
+ * @api private
1547
+ */
1548
+
1549
+ SchemaType.prototype.doValidateSync = function(value, scope, options) {
1550
+ const path = this.path;
1551
+ const count = this.validators.length;
1552
+
1553
+ if (!count) {
1554
+ return null;
1555
+ }
1556
+
1557
+ let validators = this.validators;
1558
+ if (value === void 0) {
1559
+ if (this.validators.length !== 0 && this.validators[0].type === 'required') {
1560
+ validators = [this.validators[0]];
1561
+ } else {
1562
+ return null;
1563
+ }
1564
+ }
1565
+
1566
+ let err = null;
1567
+ let i = 0;
1568
+ const len = validators.length;
1569
+ for (i = 0; i < len; ++i) {
1570
+ const v = validators[i];
1571
+
1572
+ if (v === null || typeof v !== 'object') {
1573
+ continue;
1574
+ }
1575
+
1576
+ const validator = v.validator;
1577
+ const validatorProperties = isSimpleValidator(v) ? Object.assign({}, v) : clone(v);
1578
+ validatorProperties.path = options?.path || path;
1579
+ validatorProperties.fullPath = this.$fullPath;
1580
+ validatorProperties.value = value;
1581
+ if (typeof value === 'string') {
1582
+ validatorProperties.length = value.length;
1583
+ }
1584
+ let ok = false;
1585
+
1586
+ // Skip any explicit async validators. Validators that return a promise
1587
+ // will still run, but won't trigger any errors.
1588
+ if (isAsyncFunction(validator)) {
1589
+ continue;
1590
+ }
1591
+
1592
+ if (validator instanceof RegExp) {
1593
+ err = _validate(validator.test(value), validatorProperties);
1594
+ continue;
1595
+ }
1596
+
1597
+ if (typeof validator !== 'function') {
1598
+ continue;
1599
+ }
1600
+
1601
+ try {
1602
+ if (validatorProperties.propsParameter) {
1603
+ ok = validator.call(scope, value, validatorProperties);
1604
+ } else {
1605
+ ok = validator.call(scope, value);
1606
+ }
1607
+ } catch (error) {
1608
+ ok = false;
1609
+ validatorProperties.reason = error;
1610
+ }
1611
+
1612
+ // Skip any validators that return a promise, we can't handle those
1613
+ // synchronously
1614
+ if (typeof ok?.then === 'function') {
1615
+ continue;
1616
+ }
1617
+ err = _validate(ok, validatorProperties);
1618
+ if (err) {
1619
+ break;
1620
+ }
1621
+ }
1622
+
1623
+ return err;
1624
+ };
1625
+
1626
+ /**
1627
+ * Determines if value is a valid Reference.
1628
+ *
1629
+ * @param {SchemaType} self
1630
+ * @param {object} value
1631
+ * @param {Document} doc
1632
+ * @param {boolean} init
1633
+ * @return {boolean}
1634
+ * @api private
1635
+ */
1636
+
1637
+ SchemaType._isRef = function(self, value, doc, init) {
1638
+ // fast path
1639
+ let ref = init && (self.options?.ref || self.options?.refPath);
1640
+
1641
+ if (!ref && doc?.$__ != null) {
1642
+ // checks for
1643
+ // - this populated with adhoc model and no ref was set in schema OR
1644
+ // - setting / pushing values after population
1645
+ const path = doc.$__fullPath(self.path, true);
1646
+
1647
+ const owner = doc.ownerDocument();
1648
+ ref = (path != null && owner.$populated(path)) || doc.$populated(self.path);
1649
+ }
1650
+
1651
+ if (ref) {
1652
+ if (value == null) {
1653
+ return true;
1654
+ }
1655
+ if (!Buffer.isBuffer(value) && // buffers are objects too
1656
+ value._bsontype !== 'Binary' // raw binary value from the db
1657
+ && utils.isObject(value) // might have deselected _id in population query
1658
+ ) {
1659
+ return true;
1660
+ }
1661
+
1662
+ return init;
1663
+ }
1664
+
1665
+ return false;
1666
+ };
1667
+
1668
+ /*!
1669
+ * ignore
1670
+ */
1671
+
1672
+ SchemaType.prototype._castRef = function _castRef(value, doc, init, options) {
1673
+ if (value == null) {
1674
+ return value;
1675
+ }
1676
+
1677
+ if (value.$__ != null) {
1678
+ value.$__.wasPopulated = value.$__.wasPopulated || { value: value._doc._id };
1679
+ return value;
1680
+ }
1681
+
1682
+ // setting a populated path
1683
+ if (Buffer.isBuffer(value) || !utils.isObject(value)) {
1684
+ if (init) {
1685
+ return value;
1686
+ }
1687
+ throw new CastError(this.instance, value, this.path, null, this);
1688
+ }
1689
+
1690
+ // Handle the case where user directly sets a populated
1691
+ // path to a plain object; cast to the Model used in
1692
+ // the population query.
1693
+ const path = doc.$__fullPath(this.path, true);
1694
+ const owner = doc.ownerDocument();
1695
+ const pop = owner.$populated(path, true);
1696
+
1697
+ let ret = value;
1698
+ if (!doc.$__.populated ||
1699
+ !doc.$__.populated[path] ||
1700
+ !doc.$__.populated[path].options ||
1701
+ !doc.$__.populated[path].options.options ||
1702
+ !doc.$__.populated[path].options.options.lean) {
1703
+ const PopulatedModel = pop ? pop.options[populateModelSymbol] : doc.constructor.db.model(this.options.ref);
1704
+ ret = PopulatedModel.hydrate(value, null, options);
1705
+ ret.$__.wasPopulated = { value: ret._doc._id, options: { [populateModelSymbol]: PopulatedModel } };
1706
+ }
1707
+
1708
+ return ret;
1709
+ };
1710
+
1711
+ /*!
1712
+ * ignore
1713
+ */
1714
+
1715
+ function handleSingle(val, context) {
1716
+ return this.castForQuery(null, val, context);
1717
+ }
1718
+
1719
+ /*!
1720
+ * ignore
1721
+ */
1722
+
1723
+ function handleArray(val, context) {
1724
+ const _this = this;
1725
+ if (!Array.isArray(val)) {
1726
+ return [this.castForQuery(null, val, context)];
1727
+ }
1728
+ return val.map(function(m) {
1729
+ return _this.castForQuery(null, m, context);
1730
+ });
1731
+ }
1732
+
1733
+ /**
1734
+ * Just like handleArray, except also allows `[]` because surprisingly
1735
+ * `$in: [1, []]` works fine
1736
+ * @api private
1737
+ */
1738
+
1739
+ function handle$in(val, context) {
1740
+ const _this = this;
1741
+ if (!Array.isArray(val)) {
1742
+ return [this.castForQuery(null, val, context)];
1743
+ }
1744
+ return val.map(function(m) {
1745
+ if (Array.isArray(m) && m.length === 0) {
1746
+ return m;
1747
+ }
1748
+ return _this.castForQuery(null, m, context);
1749
+ });
1750
+ }
1751
+
1752
+ /**
1753
+ * Contains the handlers for different query operators for this schema type.
1754
+ * For example, `$conditionalHandlers.$exists` is the function Mongoose calls to cast `$exists` filter operators.
1755
+ *
1756
+ * @property $conditionalHandlers
1757
+ * @memberOf SchemaType
1758
+ * @instance
1759
+ * @api public
1760
+ */
1761
+
1762
+ SchemaType.prototype.$conditionalHandlers = {
1763
+ $all: handleArray,
1764
+ $eq: handleSingle,
1765
+ $in: handle$in,
1766
+ $ne: handleSingle,
1767
+ $nin: handle$in,
1768
+ $exists: $exists,
1769
+ $type: $type
1770
+ };
1771
+
1772
+ /**
1773
+ * Cast the given value with the given optional query operator.
1774
+ *
1775
+ * @param {string} [$conditional] query operator, like `$eq` or `$in`
1776
+ * @param {any} val
1777
+ * @param {Query} context
1778
+ * @return {any}
1779
+ * @api private
1780
+ */
1781
+
1782
+ SchemaType.prototype.castForQuery = function($conditional, val, context) {
1783
+ let handler;
1784
+ if ($conditional != null) {
1785
+ handler = this.$conditionalHandlers[$conditional];
1786
+ if (!handler) {
1787
+ throw new MongooseError('Can\'t use ' + $conditional);
1788
+ }
1789
+ return handler.call(this, val, context);
1790
+ }
1791
+
1792
+ try {
1793
+ return this.applySetters(val, context);
1794
+ } catch (err) {
1795
+ if (err instanceof CastError && err.path === this.path && this.$fullPath != null) {
1796
+ err.path = this.$fullPath;
1797
+ }
1798
+ throw err;
1799
+ }
1800
+ };
1801
+
1802
+ /**
1803
+ * Set & Get the `checkRequired` function
1804
+ * Override the function the required validator uses to check whether a value
1805
+ * passes the `required` check. Override this on the individual SchemaType.
1806
+ *
1807
+ * #### Example:
1808
+ *
1809
+ * // Use this to allow empty strings to pass the `required` validator
1810
+ * mongoose.Schema.Types.String.checkRequired(v => typeof v === 'string');
1811
+ *
1812
+ * @param {Function} [fn] If set, will overwrite the current set function
1813
+ * @return {Function} The input `fn` or the already set function
1814
+ * @static
1815
+ * @memberOf SchemaType
1816
+ * @function checkRequired
1817
+ * @api public
1818
+ */
1819
+
1820
+ SchemaType.checkRequired = function(fn) {
1821
+ if (arguments.length !== 0) {
1822
+ this._checkRequired = fn;
1823
+ }
1824
+
1825
+ return this._checkRequired;
1826
+ };
1827
+
1828
+ /**
1829
+ * Default check for if this path satisfies the `required` validator.
1830
+ *
1831
+ * @param {any} val
1832
+ * @return {boolean} `true` when the value is not `null`, `false` otherwise
1833
+ * @api private
1834
+ */
1835
+
1836
+ SchemaType.prototype.checkRequired = function(val) {
1837
+ return val != null;
1838
+ };
1839
+
1840
+ /**
1841
+ * Clone the current SchemaType
1842
+ *
1843
+ * @return {SchemaType} The cloned SchemaType instance
1844
+ * @api private
1845
+ */
1846
+
1847
+ SchemaType.prototype.clone = function() {
1848
+ const options = Object.assign({}, this.options);
1849
+ const schematype = new this.constructor(this.path, options, this.instance, this.parentSchema);
1850
+ schematype.validators = this.validators.slice();
1851
+ if (this.requiredValidator !== undefined) schematype.requiredValidator = this.requiredValidator;
1852
+ if (this.allowNullValidator !== undefined) schematype.allowNullValidator = this.allowNullValidator;
1853
+ if (this.defaultValue !== undefined) schematype.defaultValue = this.defaultValue;
1854
+ if (this.$immutable !== undefined && this.options.immutable === undefined) {
1855
+ schematype.$immutable = this.$immutable;
1856
+
1857
+ handleImmutable(schematype);
1858
+ }
1859
+ if (this._index !== undefined) schematype._index = this._index;
1860
+ if (this.selected !== undefined) schematype.selected = this.selected;
1861
+ if (this.isRequired !== undefined) schematype.isRequired = this.isRequired;
1862
+ if (this.originalRequiredValue !== undefined) schematype.originalRequiredValue = this.originalRequiredValue;
1863
+ schematype.getters = this.getters.slice();
1864
+ schematype.setters = this.setters.slice();
1865
+ return schematype;
1866
+ };
1867
+
1868
+ /**
1869
+ * Returns the embedded schema type, if any. For arrays, document arrays, and maps, `getEmbeddedSchemaType()`
1870
+ * returns the schema type of the array's elements (or map's elements). For other types, `getEmbeddedSchemaType()`
1871
+ * returns `undefined`.
1872
+ *
1873
+ * #### Example:
1874
+ *
1875
+ * const schema = new Schema({ name: String, tags: [String] });
1876
+ * schema.path('name').getEmbeddedSchemaType(); // undefined
1877
+ * schema.path('tags').getEmbeddedSchemaType(); // SchemaString { path: 'tags', ... }
1878
+ *
1879
+ * @returns {SchemaType} embedded schematype
1880
+ * @api public
1881
+ */
1882
+
1883
+ SchemaType.prototype.getEmbeddedSchemaType = function getEmbeddedSchemaType() {
1884
+ return this.embeddedSchemaType;
1885
+ };
1886
+
1887
+ /*!
1888
+ * If _duplicateKeyErrorMessage is a string, replace unique index errors "E11000 duplicate key error" with this string.
1889
+ *
1890
+ * @api private
1891
+ */
1892
+
1893
+ SchemaType.prototype._duplicateKeyErrorMessage = null;
1894
+
1895
+ /**
1896
+ * Returns this schema type's representation in a JSON schema.
1897
+ *
1898
+ * @param {object} [options]
1899
+ * @param {boolean} [options.useBsonType=false] If true, return a representation with `bsonType` for use with MongoDB's `$jsonSchema`.
1900
+ * @returns {object} JSON schema properties
1901
+ */
1902
+
1903
+ SchemaType.prototype.toJSONSchema = function toJSONSchema(_options) { // eslint-disable-line no-unused-vars
1904
+ throw new MongooseError(`Converting unsupported SchemaType to JSON Schema: ${this.instance} at path "${this.path}"`);
1905
+ };
1906
+
1907
+ /**
1908
+ * Returns the BSON type that the schema corresponds to, for automatic encryption.
1909
+ * @api private
1910
+ */
1911
+ SchemaType.prototype.autoEncryptionType = function autoEncryptionType() {
1912
+ return null;
1913
+ };
1914
+
1915
+ /*!
1916
+ * Module exports.
1917
+ */
1918
+
1919
+ module.exports = exports = SchemaType;
1920
+
1921
+ exports.CastError = CastError;
1922
+
1923
+ exports.ValidatorError = ValidatorError;